Code:
[PLEVEL 2]
telem
[PLEVEL 3]
colorm
nudgem
[PLEVEL 4]
removem
movem
[PLEVEL 7]
f_telem
f_colorm_pick
[FUNCTION movem] //Bewegt NPC oder Gegenstand zur Targ Position oder Himmelsrichtung
IF <SRC>!=<UID>
SRC.SMSG Usage: .movem
RETURN
ENDIF
IF (STRMATCH(N*,<ARGV[0]>)) || (STRMATCH(E*,<ARGV[0]>)) ||(STRMATCH(S*,<ARGV[0]>)) || (STRMATCH(W*,<ARGV[0]>))
IF <ARGV> < 2
TARGETF movem <ARGV[0]>, 1
SMSG Was willst du bewegen?
RETURN 1
ELSEIF <ARGV> < 3
REF1=<ARGO.UID>
IF !<REF1>
SMSG Du musst ein Objekt waehlen
TARGETF movem <ARGV[0]>
RETURN 1
ENDIF
IF (<REF1.ISITEM>)
IF (<REF1.CONT>)
IF !(<REF1.TOPOBJ.ISITEM>) && (<REF1.TOPOBJ.ISPLAYER>)
IF ((<REF1.TOPOBJ.ACCOUNT.PLEVEL> > <ACCOUNT.PLEVEL>) || (<REF1.TOPOBJ.TAG0.OWNER> == 1)) && (<REF1.TOPOBJ.UID> != <SRC.UID>)
SMSG Deine Rechte reichen nicht aus um dein Ziel zu bewegen!
TARGETF movem <ARGV[0]>
RETURN 1
ENDIF
ENDIF
ENDIF
ELSE
IF (<REF1.ISPLAYER>)
IF ((<REF1.ACCOUNT.PLEVEL> > <ACCOUNT.PLEVEL>) || (<REF1.TAG0.OWNER> == 1)) && (<REF1.UID> != <SRC.UID>)
SMSG Deine Rechte reichen nicht aus um dein Ziel zu bewegen!
TARGETF movem <ARGV[0]>
RETURN 1
ENDIF
ENDIF
ENDIF
REF1.MOVE <ARGV[0]>
SMSG Was willst du bewegen?
TARGETF movem <ARGV[0]>, 1
RETURN 1
ENDIF
ENDIF
IF <ARGV> < 1
TARGETF movem 1
SMSG Was willst du bewegen?
ELSE
IF <ARGV> < 2
REF1=<ARGO.UID>
IF !<REF1>
SMSG Du musst ein Objekt waehlen
TARGETF movem 1
RETURN 1
ENDIF
IF (<REF1.ISITEM>)
IF (<REF1.CONT>)
IF !(<REF1.TOPOBJ.ISITEM>) && (<REF1.TOPOBJ.ISPLAYER>)
IF ((<REF1.TOPOBJ.ACCOUNT.PLEVEL> > <ACCOUNT.PLEVEL>) || (<REF1.TOPOBJ.TAG0.OWNER> == 1)) && (<REF1.TOPOBJ.UID> != <SRC.UID>)
SMSG Deine Rechte reichen nicht aus um dein Ziel zu bewegen!
TARGETF movem 1
RETURN 1
ENDIF
ENDIF
ENDIF
ELSE
IF (<REF1.ISPLAYER>)
IF ((<REF1.ACCOUNT.PLEVEL> > <ACCOUNT.PLEVEL>) || (<REF1.TAG0.OWNER> == 1)) && (<REF1.UID> != <SRC.UID>)
SMSG Deine Rechte reichen nicht aus um dein Ziel zu bewegen!
TARGETF movem 1
RETURN 1
ENDIF
ENDIF
ENDIF
SMSG Wohin soll <ARGO.NAME> bewegt werden?
TARGETFG movem 1,<argo.uid>
ELSE
REF2=<ARGV[1]>
REF2.P <TARGP>
REF2.UPDATE
SMSG Was willst du bewegen?
TARGETF movem 1
ENDIF
ENDIF
[FUNCTION colorm] //Bewegt NPC oder Gegenstand zur Targ Position
IF <UID>!=<SRC.UID>
SMSG Usage: .colorm 0455
RETURN 1
ENDIF
IF !<ARGV[0]>
SMSG Von welchem Gegenstand willst Du die Farbe uebernehmen?
TARGETFG f_colorm_pick
RETURN 1
ENDIF
IF !<ISNUM <ARGV[0]>>
SMSG Du musst einen gueltigen Farbcode angeben
RETURN 1
ELIF <ARGV[0]> > 3000
SMSG Du musst einen gueltigen Farbcode angeben
RETURN 1
ELIF <ARGV[0]> < 0
SMSG Du musst einen gueltigen Farbcode angeben
RETURN 1
ELIF !<ARGV[1]>
SMSG Welchen Gegenstand willst Du mit dem Farbcode <ARGV[0]> faerben?
TARGETFG colorm <ARGV[0]>,1
ELSE
REF1=<ARGO.UID>
IF !<REF1.ISITEM>
SMSG Du kannst nur Gegenstaende faerben
RETURN 1
ENDIF
REF1.COLOR <ARGV[0]>
TARGETFG colorm <ARGV[0]>,1
SMSG Welchen Gegenstand willst Du mit dem Farbcode <ARGV[0]> faerben?
ENDIF
[FUNCTION f_colorm_pick]
REF1=<ARGO.UID>
IF !<REF1.ISITEM>
SMSG Du kannst nur Gegenstaende faerben
RETURN 1
ENDIF
SMSG Welchen Gegenstand willst Du mit dem Farbcode <REF1.COLOR> faerben?
TARGETFG colorm <REF1.COLOR>,1
RETURN 1
[FUNCTION nudgem] // Hoehe aendern!
IF <UID>!=<SRC.UID>
SMSG Usage: .nudgem 1 oder .nudgem -1
RETURN 1
ENDIF
IF !<ISNUM <ARGV[0]>>
SMSG Du musst einen gueltigen Zahl angeben
RETURN 1
ELIF <ARGV[0]> > 50
SMSG Keine Zahl ueber 50
RETURN 1
ELIF <ARGV[0]> < -50
SMSG Keine Zahl unter -50
RETURN 1
ELIF !<ARGV[1]>
SMSG Welchen Gegenstand willst Du in der Hoehe um <EVAL <ARGV[0]>> veraender?
TARGETFG nudgem <ARGV[0]>,1
ELSE
REF1=<ARGO.UID>
IF !<REF1.ISITEM> && !<REF1.ISCHAR>
SMSG Du kannst nur Gegenstaende oder Charaktere in der Hoehe veraendern!
TARGETFG nudgem <ARGV[0]>,1
RETURN 1
ENDIF
IF (<EVAL <REF1.Z> + <ARGV[0]>> > 120)
SMSG Der Gegenstande waere mit der angegebenen Hoehe zu hoch! (>120)
TARGETFG nudgem <ARGV[0]>,1
RETURN 1
ELIF (<EVAL <REF1.Z> + <ARGV[0]>> < -120)
SMSG Der Gegenstande waere mit der angegebenen Hoehe zu tief! (<120)
TARGETFG nudgem <ARGV[0]>,1
RETURN 1
ENDIF
REF1.NUDGEUP <ARGV[0]>
TARGETFG nudgem <ARGV[0]>,1
SMSG Welchen Gegenstand willst Du in der Hoehe um <EVAL <ARGV[0]>> veraender?
ENDIF
[FUNCTION removem] // Multi Remove Befehl
IF !<ARGS>
SMSG Was willst du loeschen?
TARGETF removem 1
ELSE
REF1=<ARGO.UID>
IF !<REF1>
SMSG Du musst ein Objekt waehlen
TARGETF removem 1
RETURN 1
ENDIF
IF (<REF1.ISITEM>)
IF (<REF1.CONT>)
IF !(<REF1.TOPOBJ.ISITEM>) && (<REF1.TOPOBJ.ISPLAYER>)
IF ((<REF1.TOPOBJ.ACCOUNT.PLEVEL> > <ACCOUNT.PLEVEL>) || (<REF1.TOPOBJ.TAG0.OWNER> == 1)) && (<ARGO.TOPOBJ.UID> != <SRC.UID>)
SMSG Du darfst diesen Gegenstand nicht entfernen!
TARGETF removem 1
RETURN 1
ENDIF
ENDIF
ENDIF
ELSE
IF (<REF1.ISPLAYER>)
SMSG Falsches Ziel - Um einen Spielercharakter zu loeschen benutze .remove 1
TARGETF removem 1
RETURN 1
ENDIF
ENDIF
REF1.REMOVE
SMSG Was willst du loeschen?
TARGETF removem 1
ENDIF
[FUNCTION telem]
TARGETFG f_telem
[FUNCTION f_telem]
IF (<TARGP.X> > 0) && (<TARGP.Y> > 0)
IF !<ISCHAR>
RETURN
ENDIF
IF !<ISPLAYER>
RETURN
ENDIF
IF <ACCOUNT.PLEVEL> < 3
RETURN
ENDIF
DIR <f_direction <TARGP>>
GO <TARGP>
TARGETFG f_telem
ENDIF
[EOF]