6. Player Manipulation
These commands will affect the player in some way.
setlevel filename; warps the player (URLs not supported) - Sends the player to the specified level.
if (playertouchsme){
  setlevel level13.graal;
}
Warps the player to level13.graal, when the NPC is touched.
setlevel2 filename,x,y; warps the player to the specified level and position - Puts the player on the specified level at the specified x,y location.
if (washit){ 
  setlevel 2,level13.graal,32,14
}
If the NPC is hit, it'll warp the player to level13.graal, and puts him/her at 32,14.
seturllevel URL;  warps the player to an URL (without the leading http://!) - Sends the player to a level hosted online (disabled a long time ago... I dunno why it's still listed).
if (playertouchsme){
  seturllevel www.graalonline.com/serverfiles/levels/level13.graal;
}
Warps the player to level13.graal on the graalonline server, when the NPC is touched.
setbody bodyimg.png; sets the body image for the player - Changes the image used for the player's sprites.
if (playersays(yes)){
  setbody magebody.png;
}
If the player says "yes" their sprite set will be changed to magebody.png.
sethead filename; sets the head image for the player - Changes the player's head image.
if (playertouchsme){
  sethead head173.gif;
}
Sets the player's head to head173.gif when touched.
setsword imgname,power; changes the players sword (-20 >= power <= 20) - Set the gifname, and power of the player's sword.  The power can go from -20 (healing) to 20 (instant death).
if (playerenters){
  setsword healsword.gif,-5;
}
Sets the player's sword to healsword.gif, with a power of -5.
setshield imgname,power; changes the players shield (0 >= power <= 10) - Sets the player's shield gif and power.  The power ranges from 0 (no shield) to 3 (it says 10, but thats wrong).  1 is normal shield.  2 is mirror shield, and 3 is lizard shield (reflects and moves player faster).
if (playertouchsme){
  setshielf aceshield.gif,3;
}
Sets the player's shield to aceshield.gif with a power of 3.
setbow imgname; sets the bow image that is displayed when playersprite==33 - Sets the gif image of the bow displayed when the player is in the shooting sprite (#33).  Ought to only be used for NPC weapons.
if (weaponfired){
  setbow wbow1.gif;
  playersprite=33;
}
Sets the player's bow to wbow1.gif.
setplayerdir direction; sets the player looking direction - Sets the direction in which the player is facing.  Directions can be numerical (0-3), up, left, down, or right; or they can be varibles.
if (playertouchsme){
  if (playerdir<3){
    setplayerdir playerdir++;
  }else{
    setplayerdir up;
  }
}
If the player is not facing right, it will add 1 to his direction (to turn him) but is he is facing right, his direction will be set to up.
setskincolor colorname; changes the player skin - Sets the color of the player's skin (usually referred to as "glove").
setcoatcolor colorname; changes the player coat - Sets color of player's coat.
setsleevecolor colorname;  changes the player sleeves - Sets color of player's sleeves.
setshoecolor colorname; changes the player shoes - Sets the color of the player's shoes.
setbeltcolor colorname; changes the player belt - Sets the color of the player's belt
if (playertouchsme){
  setskincolor darkpurple;
  setcoatcolor darkblue;
  setsleevecolor white;
  setshoecolor darkpurple;
  setbeltcolor white;
}
This makes the player wear the clothing colors I always wear =).
setplayerprop messagecode,string; sets string properties of the player (except the nickname&guildcode) - Just like setcharprop, but this time for human players.  Full list of message codes can be found in section 13.
if (playertouchsme){
  setplayerprop #c,Hello!;
}
When the NPC is touched, it'll make the player say "Hello!".
setani anifile,param1,param2...; Sets the player's animation file (instead of setting sprites).  "params" are passed by the npc, and read by the gani.
if (weaponfired){
  setani sword,sword1.png;
}
When this weapon is fired it will set the player's animation to "sword.gani" using the "sword1.png"
takeplayercarry; removes the object carried by the player - If the player is holding a object, this will remove it.
if (playertouchsme){
  takeplayercarry;
}
Removes the player's carried object when the NPC is touched.
disableweapons; disables the player's sword+bombs+darts - Doesn't allow the player to use his sword, or any weapons.
if (washit){
  disableweapons;
}
Disables the player's weapons if the NPC was hit.
enableweapons; enables the player weapons - Re-enables the player's weapons.
if (playertouchsme){
  enableweapons;
}
Re-enables the weapons after they have been disabled.
freezeplayer seconds; the player can't move for the given time - Stops the player from doing anything for the specified amount of time.
if (weaponfired){
  freezeplayer 3;
}
Stops the player from doing anything for 3 seconds.
hideplayer seconds; hides the player for the specified time - Hide's the player for the specified amount of time, but he can still be hurt.
if (weaponfired){
  hideplayer 2;
}
Hides the player for 2 seconds.
hidesword seconds; hides the player's sword for the specified time - Will hide the player's sword for the amount of time specified, but he can still swing his sword (it just doesn't do damage and isn't displayed).
if (weaponfired){
  hidesword 4;
}
Hides the player's sword for 4 seconds.
hurt halfhearts; hurts the player - Takes of the specified amount of half hearts from the player's life.
if (playertouchsme){
  hurt 3;
}
Will take off 1 and a half hearts from the player.
takeplayerhorse; removes the player's horse - Takes the horse from the player (if he/she is riding one).
if (playertouchsme){ 
  takeplayerhorse
}
When this NPC is touched, it'll remove the player's horse.
disabledefmovement turns off the normal player movement and behaviour - Disables the player's normal movement.
if (weaponfired){
  disabledefmovement;
  timeout=5;
}
Will disable the player when the weapon is fired.
enabledefmovement enables it again - Counteracts "disabledefmovement".
if (timeout){
  enabledefmovement;
}
After the timeout is reached, the player will be re-enabled.