<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.graalians.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Evil</id>
	<title>Graal Bible - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.graalians.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Evil"/>
	<link rel="alternate" type="text/html" href="https://wiki.graalians.com/Special:Contributions/Evil"/>
	<updated>2026-04-08T12:28:43Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.4</generator>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=Creation/Dev/Script_Functions:_NPC_Server&amp;diff=2704</id>
		<title>Creation/Dev/Script Functions: NPC Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=Creation/Dev/Script_Functions:_NPC_Server&amp;diff=2704"/>
		<updated>2005-03-02T00:38:21Z</updated>

		<summary type="html">&lt;p&gt;Evil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;Script functions:&lt;br /&gt;
&lt;br /&gt;
Global:&lt;br /&gt;
  allplayerscount - integer (read only)&lt;br /&gt;
  canspin - boolean (read only)&lt;br /&gt;
  carriesblackstone - boolean (read only)&lt;br /&gt;
  carriesbush - boolean (read only)&lt;br /&gt;
  carriesnpc - boolean (read only)&lt;br /&gt;
  carriessign - boolean (read only)&lt;br /&gt;
  carriesstone - boolean (read only)&lt;br /&gt;
  carriesvase - boolean (read only)&lt;br /&gt;
  graalversion - float (read only)&lt;br /&gt;
  gravity - float&lt;br /&gt;
  nwday - integer (read only)&lt;br /&gt;
  nwhour - integer (read only)&lt;br /&gt;
  nwmin - integer (read only)&lt;br /&gt;
  nwmonth - integer (read only)&lt;br /&gt;
  nwtime - integer (read only)&lt;br /&gt;
  nwweek - integer (read only)&lt;br /&gt;
  nwweekday - integer (read only)&lt;br /&gt;
  nwyear - integer (read only)&lt;br /&gt;
  timevar - integer (read only)&lt;br /&gt;
  timevar2 - float (read only)&lt;br /&gt;
  addguildmember(str, str, str)&lt;br /&gt;
  addweapon(str)&lt;br /&gt;
  aindexof(float, obj) - returns integer&lt;br /&gt;
  attachplayertoobj(int, int)&lt;br /&gt;
  bodyexists(str) - returns boolean&lt;br /&gt;
  callnpc(int, params...)&lt;br /&gt;
  callweapon(int, params...)&lt;br /&gt;
  contains(str, str) - returns boolean&lt;br /&gt;
  copylevel(str, str)&lt;br /&gt;
  copystrings(str, str)&lt;br /&gt;
  deletelevel(str)&lt;br /&gt;
  detachplayer()&lt;br /&gt;
  echo(str)&lt;br /&gt;
  fileexists(str) - returns boolean&lt;br /&gt;
  findareanpcs(float, float, float, float) - returns object&lt;br /&gt;
  findnearestplayer(float, float) - returns object&lt;br /&gt;
  findnearestplayers(float, float) - returns object&lt;br /&gt;
  findnpc(str) - returns object&lt;br /&gt;
  findplayer(str) - returns object&lt;br /&gt;
  findplayerbyid(int) - returns object&lt;br /&gt;
  findweapon(str) - returns object&lt;br /&gt;
  freezeplayer2()&lt;br /&gt;
  getareanpcs(float, float, float, float) - returns object&lt;br /&gt;
  getascii(str)&lt;br /&gt;
  getextension(str) - returns string&lt;br /&gt;
  getimgheight(str) - returns integer&lt;br /&gt;
  getimgwidth(str) - returns integer&lt;br /&gt;
  getmapx(str) - returns integer&lt;br /&gt;
  getmapy(str) - returns integer&lt;br /&gt;
  getnearestplayer(float, float) - returns integer&lt;br /&gt;
  getnearestplayers(float, float) - returns object&lt;br /&gt;
  getnpcindex(str) - returns integer&lt;br /&gt;
  getplayerindex(str) - returns integer&lt;br /&gt;
  getstringkeys(str) - returns object&lt;br /&gt;
  hasright(str, str) - returns boolean&lt;br /&gt;
  hasweapon(str) - returns boolean&lt;br /&gt;
  headexists(str) - returns boolean&lt;br /&gt;
  hitobjects(float, float, float)&lt;br /&gt;
  levelexists(str) - returns boolean&lt;br /&gt;
  makescreenshot(str)&lt;br /&gt;
  md5(str) - returns string&lt;br /&gt;
  onwall(float, float) - returns boolean&lt;br /&gt;
  onwall2(float, float, float, float) - returns boolean&lt;br /&gt;
  onwater(float, float) - returns boolean&lt;br /&gt;
  onwater2(float, float, float, float) - returns boolean&lt;br /&gt;
  passwordmatches(str, str) - returns boolean&lt;br /&gt;
  randomstring(str) - returns string&lt;br /&gt;
  removeguild(str)&lt;br /&gt;
  removeguildmember(str, str)&lt;br /&gt;
  removeweapon(str)&lt;br /&gt;
  saveinfo(str, str)&lt;br /&gt;
  savelog(str)&lt;br /&gt;
  savelog2(str, str)&lt;br /&gt;
  say(int)&lt;br /&gt;
  say2(str)&lt;br /&gt;
  sendpm(str)&lt;br /&gt;
  sendrpgmessage(str)&lt;br /&gt;
  sendtonc(str)&lt;br /&gt;
  sendtorc(str)&lt;br /&gt;
  setani(str, str)&lt;br /&gt;
  setbeltcolor(str)&lt;br /&gt;
  setcoatcolor(str)&lt;br /&gt;
  setgender(str)&lt;br /&gt;
  sethead(str)&lt;br /&gt;
  setlevel2(str, float, float)&lt;br /&gt;
  setpm(str)&lt;br /&gt;
  setshield(str, int)&lt;br /&gt;
  setshoecolor(str)&lt;br /&gt;
  setshootparams(str)&lt;br /&gt;
  setskincolor(str)&lt;br /&gt;
  setsleevecolor(str)&lt;br /&gt;
  setsword(str, int)&lt;br /&gt;
  shieldexists(str) - returns boolean&lt;br /&gt;
  swordexists(str) - returns boolean&lt;br /&gt;
  testnpc(float, float) - returns integer&lt;br /&gt;
  testplayer(float, float) - returns integer&lt;br /&gt;
  triggeraction(float, float, str, str)&lt;br /&gt;
  unfreezeplayer()&lt;br /&gt;
&lt;br /&gt;
TGraalVar:&lt;br /&gt;
  initialized - boolean (read only)&lt;br /&gt;
  joinedclasses - object (read only)&lt;br /&gt;
  name - string (read only)&lt;br /&gt;
  scriptlogmissingfunctions - boolean&lt;br /&gt;
  timeout - float&lt;br /&gt;
  addarray(obj)&lt;br /&gt;
  cancelevents(str)&lt;br /&gt;
  catchevent(str, str, str)&lt;br /&gt;
  copyfrom(obj)&lt;br /&gt;
  getdynamicvarnames() - returns object&lt;br /&gt;
  geteditvarnames() - returns object&lt;br /&gt;
  getfunctions() - returns object&lt;br /&gt;
  getstaticvarnames() - returns object&lt;br /&gt;
  getvarnames() - returns object&lt;br /&gt;
  ignoreevent(str, str)&lt;br /&gt;
  ignoreevents(str)&lt;br /&gt;
  insertarray(int, obj)&lt;br /&gt;
  isinclass(str) - returns float&lt;br /&gt;
  join(str)&lt;br /&gt;
  leave(str)&lt;br /&gt;
  loadfolder(str, int)&lt;br /&gt;
  loadlines(str)&lt;br /&gt;
  loadstring(str)&lt;br /&gt;
  loadvars(str)&lt;br /&gt;
  objecttype() - returns string&lt;br /&gt;
  savelines(str, int)&lt;br /&gt;
  savestring(str, int)&lt;br /&gt;
  savevars(str, int)&lt;br /&gt;
  scheduleevent(float, str, params...) - returns object&lt;br /&gt;
  settimer(float)&lt;br /&gt;
  sortascending()&lt;br /&gt;
  timershow()&lt;br /&gt;
  trigger(str, params...)&lt;br /&gt;
&lt;br /&gt;
  TGaniObject (TGraalVar):&lt;br /&gt;
    ani - string (read only)&lt;br /&gt;
    attr - object (read only)&lt;br /&gt;
    colors - object (read only)&lt;br /&gt;
&lt;br /&gt;
    TServerNPC (TGaniObject):&lt;br /&gt;
&lt;br /&gt;
      TServerSideNPC (TServerNPC):&lt;br /&gt;
        ap - integer&lt;br /&gt;
        arrows - integer&lt;br /&gt;
        body - string&lt;br /&gt;
        bodyimg - string&lt;br /&gt;
        bombs - integer&lt;br /&gt;
        chat - string&lt;br /&gt;
        darts - integer&lt;br /&gt;
        dir - integer&lt;br /&gt;
        glovepower - integer&lt;br /&gt;
        gralats - integer&lt;br /&gt;
        head - string&lt;br /&gt;
        headimg - string&lt;br /&gt;
        hearts - float&lt;br /&gt;
        height - float (read only)&lt;br /&gt;
        horseimg - string&lt;br /&gt;
        hurtdx - float&lt;br /&gt;
        hurtdy - float&lt;br /&gt;
        hurtpower - float (read only)&lt;br /&gt;
        id - integer (read only)&lt;br /&gt;
        image - string&lt;br /&gt;
        level - object (read only)&lt;br /&gt;
        name - string (read only)&lt;br /&gt;
        nick - string&lt;br /&gt;
        npcsindex - integer (read only)&lt;br /&gt;
        rupees - integer&lt;br /&gt;
        save - object (read only)&lt;br /&gt;
        shield - string&lt;br /&gt;
        shieldimg - string&lt;br /&gt;
        shieldpower - integer&lt;br /&gt;
        sprite - integer&lt;br /&gt;
        sword - string&lt;br /&gt;
        swordimg - string&lt;br /&gt;
        swordpower - integer&lt;br /&gt;
        visible - boolean&lt;br /&gt;
        width - float (read only)&lt;br /&gt;
        x - float&lt;br /&gt;
        y - float&lt;br /&gt;
        z - float&lt;br /&gt;
        blockagain()&lt;br /&gt;
        canbecarried()&lt;br /&gt;
        canbepulled()&lt;br /&gt;
        canbepushed()&lt;br /&gt;
        cannotbecarried()&lt;br /&gt;
        cannotbepulled()&lt;br /&gt;
        cannotbepushed()&lt;br /&gt;
        cannotwarp()&lt;br /&gt;
        canwarp()&lt;br /&gt;
        canwarp2()&lt;br /&gt;
        changeimgcolors(int, float, float, float, float)&lt;br /&gt;
        changeimgpart(int, int, int, int, int)&lt;br /&gt;
        changeimgvis(int, int)&lt;br /&gt;
        changeimgzoom(int, float)&lt;br /&gt;
        destroy()&lt;br /&gt;
        dontblock()&lt;br /&gt;
        drawoverplayer()&lt;br /&gt;
        drawunderplayer()&lt;br /&gt;
        findimg(int) - returns object&lt;br /&gt;
        hide()&lt;br /&gt;
        hideimg(int)&lt;br /&gt;
        hideimgs(int, int)&lt;br /&gt;
        message(str)&lt;br /&gt;
        move(float, float, float, int)&lt;br /&gt;
        noplayeronwall()&lt;br /&gt;
        playeronwall()&lt;br /&gt;
        scriptdone()&lt;br /&gt;
        setcharani(str, str)&lt;br /&gt;
        setchargender(str)&lt;br /&gt;
        setimg(str)&lt;br /&gt;
        setimgpart(str, int, int, int, int)&lt;br /&gt;
        setshape(int, int, int)&lt;br /&gt;
        setshape2(int, int, obj)&lt;br /&gt;
        show()&lt;br /&gt;
        showcharacter()&lt;br /&gt;
        showimg(int, str, float, float)&lt;br /&gt;
        showimg2(int, str, float, float, float)&lt;br /&gt;
        toweapons(str)&lt;br /&gt;
        warpto(str, float, float)&lt;br /&gt;
&lt;br /&gt;
    TServerPlayer (TGaniObject):&lt;br /&gt;
      account - string (read only)&lt;br /&gt;
      ap - integer&lt;br /&gt;
      arrows - integer&lt;br /&gt;
      attached - boolean (read only)&lt;br /&gt;
      attachid - integer (read only)&lt;br /&gt;
      attachtype - integer (read only)&lt;br /&gt;
      body - string&lt;br /&gt;
      bodyimg - string&lt;br /&gt;
      bombs - integer&lt;br /&gt;
      canspin - boolean (read only)&lt;br /&gt;
      carriesblackstone - boolean (read only)&lt;br /&gt;
      carriesbush - boolean (read only)&lt;br /&gt;
      carriesnpc - boolean (read only)&lt;br /&gt;
      carriessign - boolean (read only)&lt;br /&gt;
      carriesstone - boolean (read only)&lt;br /&gt;
      carriesvase - boolean (read only)&lt;br /&gt;
      chat - string&lt;br /&gt;
      darts - integer&lt;br /&gt;
      deaths - integer&lt;br /&gt;
      dir - integer&lt;br /&gt;
      fullhearts - integer&lt;br /&gt;
      glovepower - integer&lt;br /&gt;
      graalversion - float (read only)&lt;br /&gt;
      gralats - integer&lt;br /&gt;
      guild - string&lt;br /&gt;
      head - string&lt;br /&gt;
      headimg - string&lt;br /&gt;
      headset - integer&lt;br /&gt;
      hearts - float&lt;br /&gt;
      horseimg - string&lt;br /&gt;
      hp - float&lt;br /&gt;
      id - integer (read only)&lt;br /&gt;
      isfemale - boolean&lt;br /&gt;
      ismale - boolean&lt;br /&gt;
      kills - integer&lt;br /&gt;
      lastdead - integer (read only)&lt;br /&gt;
      level - object (read only)&lt;br /&gt;
      logintime - integer (read only)&lt;br /&gt;
      maxhp - integer&lt;br /&gt;
      movementlimit - float&lt;br /&gt;
      mp - integer&lt;br /&gt;
      nick - string&lt;br /&gt;
      onlinetime - integer (read only)&lt;br /&gt;
      pause - boolean (read only)&lt;br /&gt;
      paused - boolean (read only)&lt;br /&gt;
      rating - float&lt;br /&gt;
      ratingd - float&lt;br /&gt;
      rupees - integer&lt;br /&gt;
      shield - string&lt;br /&gt;
      shieldimg - string&lt;br /&gt;
      shieldpower - integer&lt;br /&gt;
      sprite - integer&lt;br /&gt;
      sword - string&lt;br /&gt;
      swordimg - string&lt;br /&gt;
      swordpower - integer&lt;br /&gt;
      version - float (read only)&lt;br /&gt;
      x - float&lt;br /&gt;
      y - float&lt;br /&gt;
      z - float&lt;br /&gt;
      addweapon(str)&lt;br /&gt;
      attachplayertoobj(int, int)&lt;br /&gt;
      callweapon(int, params...)&lt;br /&gt;
      detachplayer()&lt;br /&gt;
      disableweapons()&lt;br /&gt;
      enableweapons()&lt;br /&gt;
      freezeplayer2()&lt;br /&gt;
      hasright(str, str) - returns boolean&lt;br /&gt;
      hasweapon(str) - returns boolean&lt;br /&gt;
      makescreenshot(str)&lt;br /&gt;
      removeweapon(str)&lt;br /&gt;
      say(int)&lt;br /&gt;
      say2(str)&lt;br /&gt;
      sendpm(str)&lt;br /&gt;
      sendrpgmessage(str)&lt;br /&gt;
      setani(str, str)&lt;br /&gt;
      setbeltcolor(str)&lt;br /&gt;
      setcoatcolor(str)&lt;br /&gt;
      setgender(str)&lt;br /&gt;
      sethead(str)&lt;br /&gt;
      setlevel2(str, float, float)&lt;br /&gt;
      setshield(str, int)&lt;br /&gt;
      setshoecolor(str)&lt;br /&gt;
      setskincolor(str)&lt;br /&gt;
      setsleevecolor(str)&lt;br /&gt;
      setsword(str, int)&lt;br /&gt;
      unfreezeplayer()&lt;br /&gt;
&lt;br /&gt;
  TProjectile (TGraalVar):&lt;br /&gt;
    angle - float (read only)&lt;br /&gt;
    fromplayer - object&lt;br /&gt;
    horiz - boolean (read only)&lt;br /&gt;
    params - string&lt;br /&gt;
    speed - float (read only)&lt;br /&gt;
    x - float (read only)&lt;br /&gt;
    y - float (read only)&lt;br /&gt;
    z - float (read only)&lt;br /&gt;
    zspeed - float (read only)&lt;br /&gt;
&lt;br /&gt;
  TServerLevel (TGraalVar):&lt;br /&gt;
    board - object (read only)&lt;br /&gt;
    isnopkzone - boolean (read only)&lt;br /&gt;
    issparringzone - boolean (read only)&lt;br /&gt;
    dontswapoutlevel()&lt;br /&gt;
    getz(float, float) - returns float&lt;br /&gt;
    noplayerkilling()&lt;br /&gt;
    putbomb(int, float, float)&lt;br /&gt;
    putexplosion(int, float, float)&lt;br /&gt;
    putexplosion2(int, int, float, float)&lt;br /&gt;
    putnpc2(float, float, str) - returns object&lt;br /&gt;
    shoot(float, float, float, float, float, float, str, str)&lt;br /&gt;
    updateboard(int, int, int, int)&lt;br /&gt;
    updateboard2(int, int, int, int)&lt;br /&gt;
&lt;br /&gt;
  TServerSign (TGraalVar):&lt;br /&gt;
    text - string&lt;br /&gt;
    x - integer&lt;br /&gt;
    y - integer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=Creation/Dev/Script_Functions:_Graal_3D&amp;diff=2100</id>
		<title>Creation/Dev/Script Functions: Graal 3D</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=Creation/Dev/Script_Functions:_Graal_3D&amp;diff=2100"/>
		<updated>2005-03-02T00:38:11Z</updated>

		<summary type="html">&lt;p&gt;Evil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Script functions:&lt;br /&gt;
&lt;br /&gt;
Global:&lt;br /&gt;
  allplayerscount - integer (read only)&lt;br /&gt;
  graalversion - float (read only)&lt;br /&gt;
  timevar - integer (read only)&lt;br /&gt;
  timevar2 - float (read only)&lt;br /&gt;
  worldclockstopped - boolean&lt;br /&gt;
  worldhour - integer&lt;br /&gt;
  worldminute - float&lt;br /&gt;
  worldminutesofday - float&lt;br /&gt;
  worldrealsecondsperday - float&lt;br /&gt;
  addcontrol(obj)&lt;br /&gt;
  addweapon(str)&lt;br /&gt;
  aindexof(float, obj) - returns integer&lt;br /&gt;
  castray(str, str, int) - returns object&lt;br /&gt;
  echo(str)&lt;br /&gt;
  extractfilebase(str) - returns string&lt;br /&gt;
  extractfileext(str) - returns string&lt;br /&gt;
  extractfilename(str) - returns string&lt;br /&gt;
  extractfilepath(str) - returns string&lt;br /&gt;
  findfirstfile(str) - returns string&lt;br /&gt;
  findnextfile(str) - returns string&lt;br /&gt;
  findplayer(str) - returns object&lt;br /&gt;
  getascii(str) - returns integer&lt;br /&gt;
  getboxcenter(str) - returns string&lt;br /&gt;
  getdatablocktypes() - returns object&lt;br /&gt;
  getdropz(str) - returns float&lt;br /&gt;
  getextension(str) - returns string&lt;br /&gt;
  getobjectbyray(str, str) - returns object&lt;br /&gt;
  getobjectsbyradius(str, float, int) - returns object&lt;br /&gt;
  getstringkeys(str) - returns object&lt;br /&gt;
  getsurfacetype(float, float) - returns string&lt;br /&gt;
  getz(float, float) - returns float&lt;br /&gt;
  hasright(str, str) - returns boolean&lt;br /&gt;
  isadminguild(str) - returns boolean&lt;br /&gt;
  isobject(str) - returns boolean&lt;br /&gt;
  lightscene() - returns boolean&lt;br /&gt;
  mapshapeanimation(str, str, str, float) - returns boolean&lt;br /&gt;
  matrixcreate(str, str) - returns string&lt;br /&gt;
  matrixcreatefromeuler(str) - returns string&lt;br /&gt;
  matrixmulpoint(str, str) - returns string&lt;br /&gt;
  matrixmultiply(str, str) - returns string&lt;br /&gt;
  matrixmulvector(str, str) - returns string&lt;br /&gt;
  reloadfile(str)&lt;br /&gt;
  removeweapon(str)&lt;br /&gt;
  savelog(str)&lt;br /&gt;
  sendrpgmessage(str)&lt;br /&gt;
  setfogcolors(obj)&lt;br /&gt;
  setinteriorfocuseddebug(int)&lt;br /&gt;
  setinteriorrendermode(int)&lt;br /&gt;
  setshadowdetaillevel(float)&lt;br /&gt;
  setskybandcolors(obj)&lt;br /&gt;
  setskybandsizes(obj)&lt;br /&gt;
  setsuncolors(obj)&lt;br /&gt;
  setterrainrendermode(int)&lt;br /&gt;
  strequals(str, str) - returns boolean&lt;br /&gt;
  synctimeofday(float, float)&lt;br /&gt;
  updateratings(obj) - returns object&lt;br /&gt;
  vectoradd(str, str) - returns string&lt;br /&gt;
  vectorcross(str, str) - returns string&lt;br /&gt;
  vectordist(str, str) - returns float&lt;br /&gt;
  vectordot(str, str) - returns float&lt;br /&gt;
  vectorlen(str) - returns float&lt;br /&gt;
  vectornormalize(str) - returns string&lt;br /&gt;
  vectororthobasis(str) - returns string&lt;br /&gt;
  vectorscale(str, float) - returns string&lt;br /&gt;
  vectorsub(str, str) - returns string&lt;br /&gt;
&lt;br /&gt;
TGraalVar:&lt;br /&gt;
  initialized - boolean (read only)&lt;br /&gt;
  joinedclasses - object (read only)&lt;br /&gt;
  name - string (read only)&lt;br /&gt;
  scriptlogmissingfunctions - boolean&lt;br /&gt;
  timeout - float&lt;br /&gt;
  addarray(obj)&lt;br /&gt;
  cancelevents(str)&lt;br /&gt;
  catchevent(str, str, str)&lt;br /&gt;
  copyfrom(obj)&lt;br /&gt;
  getdatablockvars() - returns object&lt;br /&gt;
  getdynamicvarnames() - returns object&lt;br /&gt;
  geteditvarnames() - returns object&lt;br /&gt;
  getfunctions() - returns object&lt;br /&gt;
  getstaticvarnames() - returns object&lt;br /&gt;
  getvarnames() - returns object&lt;br /&gt;
  ignoreevent(str, str)&lt;br /&gt;
  ignoreevents(str)&lt;br /&gt;
  insertarray(int, obj)&lt;br /&gt;
  isinclass(str) - returns float&lt;br /&gt;
  join(str)&lt;br /&gt;
  leave(str)&lt;br /&gt;
  loadfolder(str, int)&lt;br /&gt;
  loadlines(str)&lt;br /&gt;
  loadstring(str)&lt;br /&gt;
  loadvars(str)&lt;br /&gt;
  objecttype() - returns string&lt;br /&gt;
  savelines(str, int)&lt;br /&gt;
  savestring(str, int)&lt;br /&gt;
  savevars(str, int)&lt;br /&gt;
  scheduleevent(float, str, params...) - returns object&lt;br /&gt;
  settimer(float)&lt;br /&gt;
  sortascending()&lt;br /&gt;
  timershow()&lt;br /&gt;
  trigger(str, params...)&lt;br /&gt;
&lt;br /&gt;
  MissionArea (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
  ShapeBaseHitBox (TGraalVar):&lt;br /&gt;
    hitmax - string&lt;br /&gt;
    hitmin - string&lt;br /&gt;
    nodename - string&lt;br /&gt;
&lt;br /&gt;
  ShapeImageState (TGraalVar):&lt;br /&gt;
    allowimagechange - boolean&lt;br /&gt;
    direction - boolean&lt;br /&gt;
    ejectshell - boolean&lt;br /&gt;
    emitter - object&lt;br /&gt;
    emitternode - string&lt;br /&gt;
    emittertime - float&lt;br /&gt;
    emittertype - string&lt;br /&gt;
    energydrain - float&lt;br /&gt;
    fire - boolean&lt;br /&gt;
    freezelook - boolean&lt;br /&gt;
    ignoreloadedforready - boolean&lt;br /&gt;
    loadedflag - string&lt;br /&gt;
    name - string&lt;br /&gt;
    recoil - string&lt;br /&gt;
    script - string&lt;br /&gt;
    sequence - string&lt;br /&gt;
    sequencerandomflash - boolean&lt;br /&gt;
    sound - object&lt;br /&gt;
    spinthread - string&lt;br /&gt;
    timeoutvalue - float&lt;br /&gt;
    transitiononammo - string&lt;br /&gt;
    transitiononloaded - string&lt;br /&gt;
    transitiononnoammo - string&lt;br /&gt;
    transitiononnotarget - string&lt;br /&gt;
    transitiononnotloaded - string&lt;br /&gt;
    transitiononnotwet - string&lt;br /&gt;
    transitionontarget - string&lt;br /&gt;
    transitionontimeout - string&lt;br /&gt;
    transitionontriggerdown - string&lt;br /&gt;
    transitionontriggerup - string&lt;br /&gt;
    transitiononwet - string&lt;br /&gt;
    waitfortimeout - boolean&lt;br /&gt;
&lt;br /&gt;
  SimObject (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
    SceneObject (SimObject):&lt;br /&gt;
      forwardvector - string&lt;br /&gt;
      objectbox - string (read only)&lt;br /&gt;
      position - string&lt;br /&gt;
      rightvector - string&lt;br /&gt;
      rotation - string&lt;br /&gt;
      scale - string&lt;br /&gt;
      transform - string&lt;br /&gt;
      upvector - string&lt;br /&gt;
      worldbox - string (read only)&lt;br /&gt;
      worldboxcenter - string (read only)&lt;br /&gt;
      x - float&lt;br /&gt;
      y - float&lt;br /&gt;
      z - float&lt;br /&gt;
      destroy()&lt;br /&gt;
      getforwardvector() - returns string&lt;br /&gt;
      getobjectbox() - returns string&lt;br /&gt;
      getposition() - returns string&lt;br /&gt;
      getrightvector() - returns string&lt;br /&gt;
      getscale() - returns string&lt;br /&gt;
      gettransform() - returns string&lt;br /&gt;
      getupvector() - returns string&lt;br /&gt;
      getworldbox() - returns string&lt;br /&gt;
      getworldboxcenter() - returns string&lt;br /&gt;
      light()&lt;br /&gt;
      setforwardvector(str)&lt;br /&gt;
      setposition(str)&lt;br /&gt;
      setrightvector(str)&lt;br /&gt;
      setscale(str)&lt;br /&gt;
      settransform(str)&lt;br /&gt;
      setupvector(str)&lt;br /&gt;
&lt;br /&gt;
      AudioEmitter (SceneObject):&lt;br /&gt;
        description - object&lt;br /&gt;
        filename - string&lt;br /&gt;
        profile - object&lt;br /&gt;
&lt;br /&gt;
      FractalTree (SceneObject):&lt;br /&gt;
        deffile - string&lt;br /&gt;
        levels - integer&lt;br /&gt;
        seed - integer&lt;br /&gt;
&lt;br /&gt;
      GameBase (SceneObject):&lt;br /&gt;
        datablock - object&lt;br /&gt;
&lt;br /&gt;
        DynamicShapeReplicator (GameBase):&lt;br /&gt;
          boxmax - string&lt;br /&gt;
          boxmin - string&lt;br /&gt;
          maxgridobjects - integer&lt;br /&gt;
          mingridobjects - integer&lt;br /&gt;
          radius - integer&lt;br /&gt;
          shapefiles - string&lt;br /&gt;
          surfacetype - string&lt;br /&gt;
&lt;br /&gt;
          DynamicGrass (DynamicShapeReplicator):&lt;br /&gt;
&lt;br /&gt;
          DynamicGrassReplicator (DynamicShapeReplicator):&lt;br /&gt;
&lt;br /&gt;
        Explosion (GameBase):&lt;br /&gt;
          datablock - object&lt;br /&gt;
&lt;br /&gt;
        Lightning (GameBase):&lt;br /&gt;
          strikesperminute - integer&lt;br /&gt;
&lt;br /&gt;
        ParticleEmitter (GameBase):&lt;br /&gt;
&lt;br /&gt;
        ParticleEmitterNode (GameBase):&lt;br /&gt;
          datablock - object&lt;br /&gt;
          emitter - object&lt;br /&gt;
&lt;br /&gt;
        PathedInterior (GameBase):&lt;br /&gt;
&lt;br /&gt;
        Precipitation (GameBase):&lt;br /&gt;
          maxmass - float&lt;br /&gt;
          maxspeed - float&lt;br /&gt;
          minmass - float&lt;br /&gt;
          minspeed - float&lt;br /&gt;
          percentage - float&lt;br /&gt;
&lt;br /&gt;
        Projectile (GameBase):&lt;br /&gt;
          datablock - object&lt;br /&gt;
          initialposition - string&lt;br /&gt;
          initialvelocity - string&lt;br /&gt;
          sourceobject - object&lt;br /&gt;
&lt;br /&gt;
        ShapeBase (GameBase):&lt;br /&gt;
          chat - string&lt;br /&gt;
          datablock - object&lt;br /&gt;
          shapenamecolor - string&lt;br /&gt;
          applydamage(float)&lt;br /&gt;
          applyimpulse(str, str) - returns boolean&lt;br /&gt;
          applyrepair(float)&lt;br /&gt;
          cancloak() - returns string&lt;br /&gt;
          detachallprojectiles()&lt;br /&gt;
          detachprojectiles(int)&lt;br /&gt;
          getairepairpoint() - returns string&lt;br /&gt;
          getcamerafov() - returns float&lt;br /&gt;
          getcontrollingclient() - returns object&lt;br /&gt;
          getcontrollingobject() - returns object&lt;br /&gt;
          getdamageflash() - returns float&lt;br /&gt;
          getdamagelevel() - returns float&lt;br /&gt;
          getdamagepercent() - returns float&lt;br /&gt;
          getdamagestate() - returns string&lt;br /&gt;
          getenergylevel() - returns float&lt;br /&gt;
          getenergypercent() - returns float&lt;br /&gt;
          geteyepoint() - returns string&lt;br /&gt;
          geteyetransform() - returns string&lt;br /&gt;
          geteyevector() - returns string&lt;br /&gt;
          getimageammo(int) - returns boolean&lt;br /&gt;
          getimageloaded(int) - returns boolean&lt;br /&gt;
          getimageskintag(int) - returns integer&lt;br /&gt;
          getimagestate(int) - returns string&lt;br /&gt;
          getimagetrigger(int) - returns boolean&lt;br /&gt;
          getmountedimage(int) - returns object&lt;br /&gt;
          getmountedobject(int) - returns object&lt;br /&gt;
          getmountedobjectcount() - returns integer&lt;br /&gt;
          getmountedobjectnode(int) - returns integer&lt;br /&gt;
          getmountnodeobject(int) - returns object&lt;br /&gt;
          getmountslot(str) - returns integer&lt;br /&gt;
          getmounttransform(int) - returns string&lt;br /&gt;
          getmuzzlepoint(int) - returns string&lt;br /&gt;
          getmuzzlevector(int) - returns string&lt;br /&gt;
          getobjectmount() - returns object&lt;br /&gt;
          getpendingimage(int) - returns object&lt;br /&gt;
          getrechargerate() - returns float&lt;br /&gt;
          getrepairrate() - returns float&lt;br /&gt;
          getshapename() - returns string&lt;br /&gt;
          getskinname() - returns string&lt;br /&gt;
          getslottransform(int) - returns string&lt;br /&gt;
          getthread(int) - returns string&lt;br /&gt;
          getthreadposition(int) - returns float&lt;br /&gt;
          getvelocity() - returns string&lt;br /&gt;
          getwhiteout() - returns float&lt;br /&gt;
          hide()&lt;br /&gt;
          iscloaked() - returns boolean&lt;br /&gt;
          isdestroyed() - returns boolean&lt;br /&gt;
          isdisabled() - returns boolean&lt;br /&gt;
          isenabled() - returns boolean&lt;br /&gt;
          ishidden() - returns boolean&lt;br /&gt;
          isimagefiring(int) - returns boolean&lt;br /&gt;
          isimagemounted(str) - returns boolean&lt;br /&gt;
          islookfrozen() - returns boolean&lt;br /&gt;
          ismounted() - returns boolean&lt;br /&gt;
          mountimage(str, int) - returns boolean&lt;br /&gt;
          mountobject(obj, int) - returns boolean&lt;br /&gt;
          pausethread(int) - returns boolean&lt;br /&gt;
          playaudio(int, obj) - returns boolean&lt;br /&gt;
          playthread(int, str) - returns boolean&lt;br /&gt;
          playthreadext(int, str, float, float, float, bool) - returns boolean&lt;br /&gt;
          registermelee(str, str, obj, int, str, str) - returns boolean&lt;br /&gt;
          setcamerafov(float)&lt;br /&gt;
          setcloaked(bool)&lt;br /&gt;
          setdamageflash(float)&lt;br /&gt;
          setdamagelevel(float)&lt;br /&gt;
          setdamagestate(str) - returns boolean&lt;br /&gt;
          setdamagevector(str)&lt;br /&gt;
          setenergylevel(float)&lt;br /&gt;
          sethidden(bool)&lt;br /&gt;
          setimageammo(int, bool) - returns boolean&lt;br /&gt;
          setimageloaded(int, bool) - returns boolean&lt;br /&gt;
          setimagetrigger(int, bool) - returns boolean&lt;br /&gt;
          setinvinciblemode(float, float)&lt;br /&gt;
          setrechargerate(float)&lt;br /&gt;
          setrepairrate(float)&lt;br /&gt;
          setshapename(str)&lt;br /&gt;
          setskinname(str)&lt;br /&gt;
          setthreaddir(int, bool) - returns boolean&lt;br /&gt;
          setvelocity(str) - returns boolean&lt;br /&gt;
          setwhiteout(float)&lt;br /&gt;
          show()&lt;br /&gt;
          startfade(float, float, bool)&lt;br /&gt;
          stopaudio(int) - returns boolean&lt;br /&gt;
          stopthread(int) - returns boolean&lt;br /&gt;
          unmount()&lt;br /&gt;
          unmountimage(int) - returns boolean&lt;br /&gt;
          unmountobject(obj) - returns boolean&lt;br /&gt;
          unregistermelee(int) - returns boolean&lt;br /&gt;
&lt;br /&gt;
          AdvancedCamera (ShapeBase):&lt;br /&gt;
            cameramode - integer&lt;br /&gt;
            zoomdistance - float&lt;br /&gt;
&lt;br /&gt;
          Camera (ShapeBase):&lt;br /&gt;
            setflymode()&lt;br /&gt;
            setorbitmode(obj, str, float, float, float, bool)&lt;br /&gt;
&lt;br /&gt;
          MissionMarker (ShapeBase):&lt;br /&gt;
            datablock - object&lt;br /&gt;
&lt;br /&gt;
          PathCamera (ShapeBase):&lt;br /&gt;
            datablock - object&lt;br /&gt;
&lt;br /&gt;
          Player (ShapeBase):&lt;br /&gt;
            animatedbyscript - boolean&lt;br /&gt;
            bodyposition - integer&lt;br /&gt;
            datablock - object&lt;br /&gt;
            speed - float&lt;br /&gt;
            swimming - boolean (read only)&lt;br /&gt;
            checkdismountpoint(str, str) - returns boolean&lt;br /&gt;
            clearcontrolobject()&lt;br /&gt;
            getcontrolobject() - returns object&lt;br /&gt;
            getdamagelocation(str) - returns string&lt;br /&gt;
            getstate() - returns string&lt;br /&gt;
            getvictimsbyradius(str, float) - returns object&lt;br /&gt;
            setactionthread(str, bool, bool) - returns boolean&lt;br /&gt;
            setcontrolobject(obj) - returns boolean&lt;br /&gt;
&lt;br /&gt;
            AIPlayer (Player):&lt;br /&gt;
              maxturnpitch - float&lt;br /&gt;
              maxturnyaw - float&lt;br /&gt;
              simplemovement - boolean&lt;br /&gt;
              wallcheck - boolean&lt;br /&gt;
              clearaim()&lt;br /&gt;
              getaimlocation() - returns string&lt;br /&gt;
              getaimobject() - returns object&lt;br /&gt;
              getmovedestination() - returns string&lt;br /&gt;
              ismoving() - returns boolean&lt;br /&gt;
              setaimlocation(str)&lt;br /&gt;
              setaimobject(obj)&lt;br /&gt;
              setmovedestination(str, bool)&lt;br /&gt;
              setmovespeed(float)&lt;br /&gt;
              stop()&lt;br /&gt;
&lt;br /&gt;
          StaticShape (ShapeBase):&lt;br /&gt;
            datablock - object&lt;br /&gt;
&lt;br /&gt;
          Vehicle (ShapeBase):&lt;br /&gt;
            datablock - object&lt;br /&gt;
&lt;br /&gt;
            FlyingVehicle (Vehicle):&lt;br /&gt;
              datablock - object&lt;br /&gt;
&lt;br /&gt;
            HoverVehicle (Vehicle):&lt;br /&gt;
              datablock - object&lt;br /&gt;
&lt;br /&gt;
            WheeledVehicle (Vehicle):&lt;br /&gt;
              datablock - object&lt;br /&gt;
              getwheelcount() - returns integer&lt;br /&gt;
              setwheelpowered(int, bool) - returns boolean&lt;br /&gt;
              setwheelspring(int, obj) - returns boolean&lt;br /&gt;
              setwheelsteering(int, float) - returns boolean&lt;br /&gt;
              setwheeltire(int, obj) - returns boolean&lt;br /&gt;
&lt;br /&gt;
              AIWheeledVehicle (WheeledVehicle):&lt;br /&gt;
                getmovedestination() - returns string&lt;br /&gt;
                setmovedestination(str, bool)&lt;br /&gt;
                setmovespeed(float)&lt;br /&gt;
                setmovetolerance(float)&lt;br /&gt;
                stop()&lt;br /&gt;
&lt;br /&gt;
        SpawnSphere (GameBase):&lt;br /&gt;
          indoorweight - float&lt;br /&gt;
          outdoorweight - float&lt;br /&gt;
          radius - float&lt;br /&gt;
          sphereweight - float&lt;br /&gt;
&lt;br /&gt;
        Splash (GameBase):&lt;br /&gt;
&lt;br /&gt;
        TSStatic (GameBase):&lt;br /&gt;
          noshadowlevel - float&lt;br /&gt;
          onlyambientlight - boolean&lt;br /&gt;
&lt;br /&gt;
          Item (TSStatic):&lt;br /&gt;
            datablock - object&lt;br /&gt;
            hide()&lt;br /&gt;
            show()&lt;br /&gt;
            startfade(float, float, bool)&lt;br /&gt;
&lt;br /&gt;
        Trigger (GameBase):&lt;br /&gt;
          datablock - object&lt;br /&gt;
&lt;br /&gt;
        fxLight (GameBase):&lt;br /&gt;
          datablock - object&lt;br /&gt;
&lt;br /&gt;
      InteriorInstance (SceneObject):&lt;br /&gt;
        audioenvironment - object&lt;br /&gt;
        audioprofile - object&lt;br /&gt;
        interiorfile - string&lt;br /&gt;
        showterraininside - boolean&lt;br /&gt;
&lt;br /&gt;
      Marker (SceneObject):&lt;br /&gt;
&lt;br /&gt;
      Shape3ds (SceneObject):&lt;br /&gt;
&lt;br /&gt;
      Sky (SceneObject):&lt;br /&gt;
        materiallist - string&lt;br /&gt;
        skyfadetime - float&lt;br /&gt;
        windvelocity - string&lt;br /&gt;
&lt;br /&gt;
      TerrainBlock (SceneObject):&lt;br /&gt;
        bumpoffset - float&lt;br /&gt;
        bumpscale - float&lt;br /&gt;
        bumptexture - string&lt;br /&gt;
        detailtexture - string&lt;br /&gt;
        squaresize - integer&lt;br /&gt;
        terrainfile - string&lt;br /&gt;
        zerobumpscale - integer&lt;br /&gt;
&lt;br /&gt;
      WaterBlock (SceneObject):&lt;br /&gt;
        audioenvironment - object&lt;br /&gt;
        density - float&lt;br /&gt;
        depthgradient - float&lt;br /&gt;
        distortgridscale - float&lt;br /&gt;
        distortmag - float&lt;br /&gt;
        distorttime - float&lt;br /&gt;
        envmapintensity - float&lt;br /&gt;
        envmapovertexture - string&lt;br /&gt;
        envmapundertexture - string&lt;br /&gt;
        flowangle - float&lt;br /&gt;
        flowrate - float&lt;br /&gt;
        liquidtype - string&lt;br /&gt;
        maxalpha - float&lt;br /&gt;
        minalpha - float&lt;br /&gt;
        removewetedges - boolean&lt;br /&gt;
        shoredepth - float&lt;br /&gt;
        shoretexture - string&lt;br /&gt;
        specularcolor - string&lt;br /&gt;
        specularmasktex - string&lt;br /&gt;
        specularpower - float&lt;br /&gt;
        submergetexture0 - string&lt;br /&gt;
        submergetexture1 - string&lt;br /&gt;
        surfaceopacity - float&lt;br /&gt;
        surfaceparallax - float&lt;br /&gt;
        surfacetexture - string&lt;br /&gt;
        tessshore - float&lt;br /&gt;
        tesssurface - float&lt;br /&gt;
        usedepthmask - boolean&lt;br /&gt;
        viscosity - float&lt;br /&gt;
        wavemagnitude - float&lt;br /&gt;
&lt;br /&gt;
      fxFoliageReplicator (SceneObject):&lt;br /&gt;
&lt;br /&gt;
      fxGrassReplicator (SceneObject):&lt;br /&gt;
&lt;br /&gt;
      fxShapeReplicator (SceneObject):&lt;br /&gt;
&lt;br /&gt;
      fxSunLight (SceneObject):&lt;br /&gt;
&lt;br /&gt;
      twSurfaceReference (SceneObject):&lt;br /&gt;
&lt;br /&gt;
      volumeLight (SceneObject):&lt;br /&gt;
&lt;br /&gt;
    SimDataBlock (SimObject):&lt;br /&gt;
      isdatablock - boolean (read only)&lt;br /&gt;
&lt;br /&gt;
      AudioDescription (SimDataBlock):&lt;br /&gt;
&lt;br /&gt;
      AudioProfile (SimDataBlock):&lt;br /&gt;
        description - object&lt;br /&gt;
        environment - object&lt;br /&gt;
&lt;br /&gt;
      DecalData (SimDataBlock):&lt;br /&gt;
        lifetime - float&lt;br /&gt;
&lt;br /&gt;
      GameBaseData (SimDataBlock):&lt;br /&gt;
&lt;br /&gt;
        DebrisData (GameBaseData):&lt;br /&gt;
          explosion - object&lt;br /&gt;
&lt;br /&gt;
        ExplosionData (GameBaseData):&lt;br /&gt;
          debris - object&lt;br /&gt;
          particleemitter - object&lt;br /&gt;
          soundprofile - object&lt;br /&gt;
&lt;br /&gt;
        ItemData (GameBaseData):&lt;br /&gt;
&lt;br /&gt;
        LightningData (GameBaseData):&lt;br /&gt;
          strikesound - object&lt;br /&gt;
&lt;br /&gt;
        ParticleEmitterData (GameBaseData):&lt;br /&gt;
          particles - string&lt;br /&gt;
&lt;br /&gt;
        ParticleEmitterNodeData (GameBaseData):&lt;br /&gt;
&lt;br /&gt;
        PathedInteriorData (GameBaseData):&lt;br /&gt;
          startsound - object&lt;br /&gt;
          stopsound - object&lt;br /&gt;
          sustainsound - object&lt;br /&gt;
&lt;br /&gt;
        PrecipitationData (GameBaseData):&lt;br /&gt;
          soundprofile - object&lt;br /&gt;
&lt;br /&gt;
        ProjectileData (GameBaseData):&lt;br /&gt;
          armingdelay - integer&lt;br /&gt;
          bounceelasticity - float&lt;br /&gt;
          bouncefriction - float&lt;br /&gt;
          explosion - object&lt;br /&gt;
          fadedelay - integer&lt;br /&gt;
          gravitymod - float&lt;br /&gt;
          lifetime - integer&lt;br /&gt;
          lightradius - float&lt;br /&gt;
          muzzlevelocity - float&lt;br /&gt;
          particleemitter - object&lt;br /&gt;
          velinheritfactor - float&lt;br /&gt;
&lt;br /&gt;
        ShapeBaseData (GameBaseData):&lt;br /&gt;
          debris - object&lt;br /&gt;
          explosion - object&lt;br /&gt;
          noshadowlevel - float&lt;br /&gt;
          onlyambientlight - boolean&lt;br /&gt;
          showhitboxes - boolean&lt;br /&gt;
          underwaterexplosion - object&lt;br /&gt;
&lt;br /&gt;
          AdvancedCameraData (ShapeBaseData):&lt;br /&gt;
&lt;br /&gt;
          CameraData (ShapeBaseData):&lt;br /&gt;
&lt;br /&gt;
          MissionMarkerData (ShapeBaseData):&lt;br /&gt;
&lt;br /&gt;
          PlayerData (ShapeBaseData):&lt;br /&gt;
            decaldata - object&lt;br /&gt;
            dustemitter - object&lt;br /&gt;
            exitingwater - object&lt;br /&gt;
            footbubblessound - object&lt;br /&gt;
            foothardsound - object&lt;br /&gt;
            footmetalsound - object&lt;br /&gt;
            footpuffemitter - object&lt;br /&gt;
            footshallowsound - object&lt;br /&gt;
            footsnowsound - object&lt;br /&gt;
            footsoftsound - object&lt;br /&gt;
            footunderwatersound - object&lt;br /&gt;
            footwadingsound - object&lt;br /&gt;
            impacthardsound - object&lt;br /&gt;
            impactmetalsound - object&lt;br /&gt;
            impactsnowsound - object&lt;br /&gt;
            impactsoftsound - object&lt;br /&gt;
            impactwatereasy - object&lt;br /&gt;
            impactwaterhard - object&lt;br /&gt;
            impactwatermedium - object&lt;br /&gt;
            jumpingsound - object&lt;br /&gt;
            movingbubblessound - object&lt;br /&gt;
            splash - object&lt;br /&gt;
            waterbreathsound - object&lt;br /&gt;
&lt;br /&gt;
          StaticShapeData (ShapeBaseData):&lt;br /&gt;
&lt;br /&gt;
          VehicleData (ShapeBaseData):&lt;br /&gt;
            dustemitter - object&lt;br /&gt;
            exitingwater - object&lt;br /&gt;
            hardimpactsound - object&lt;br /&gt;
            impactwatereasy - object&lt;br /&gt;
            impactwaterhard - object&lt;br /&gt;
            impactwatermedium - object&lt;br /&gt;
            softimpactsound - object&lt;br /&gt;
            waterwakesound - object&lt;br /&gt;
&lt;br /&gt;
            FlyingVehicleData (VehicleData):&lt;br /&gt;
              backwardjetemitter - object&lt;br /&gt;
              downjetemitter - object&lt;br /&gt;
              enginesound - object&lt;br /&gt;
              forwardjetemitter - object&lt;br /&gt;
              jetsound - object&lt;br /&gt;
              trailemitter - object&lt;br /&gt;
&lt;br /&gt;
            HoverVehicleData (VehicleData):&lt;br /&gt;
              dusttrailemitter - object&lt;br /&gt;
              enginesound - object&lt;br /&gt;
              floatsound - object&lt;br /&gt;
              forwardjetemitter - object&lt;br /&gt;
              jetsound - object&lt;br /&gt;
&lt;br /&gt;
            WheeledVehicleData (VehicleData):&lt;br /&gt;
              enginesound - object&lt;br /&gt;
              jetsound - object&lt;br /&gt;
              squealsound - object&lt;br /&gt;
              tireemitter - object&lt;br /&gt;
              wheelimpactsound - object&lt;br /&gt;
&lt;br /&gt;
        ShapeBaseImageData (GameBaseData):&lt;br /&gt;
          casing - object&lt;br /&gt;
          projectile - object&lt;br /&gt;
&lt;br /&gt;
        SplashData (GameBaseData):&lt;br /&gt;
          explosion - object&lt;br /&gt;
          soundprofile - object&lt;br /&gt;
&lt;br /&gt;
        TriggerData (GameBaseData):&lt;br /&gt;
&lt;br /&gt;
        fxLightData (GameBaseData):&lt;br /&gt;
&lt;br /&gt;
      ParticleData (SimDataBlock):&lt;br /&gt;
&lt;br /&gt;
      TSShapeConstructor (SimDataBlock):&lt;br /&gt;
&lt;br /&gt;
      WheeledVehicleSpring (SimDataBlock):&lt;br /&gt;
&lt;br /&gt;
      WheeledVehicleTire (SimDataBlock):&lt;br /&gt;
&lt;br /&gt;
    SimGroup (SimObject):&lt;br /&gt;
      addcontrol(obj)&lt;br /&gt;
&lt;br /&gt;
      GameConnection (SimGroup):&lt;br /&gt;
        account - string (read only)&lt;br /&gt;
        camera - object (read only)&lt;br /&gt;
        cameramode - boolean&lt;br /&gt;
        nick - string (read only)&lt;br /&gt;
        shape - object (read only)&lt;br /&gt;
        weapons - object (read only)&lt;br /&gt;
        addweapon(str)&lt;br /&gt;
        commandtoclient(str)&lt;br /&gt;
        hasright(str, str) - returns boolean&lt;br /&gt;
        objecttype() - returns string&lt;br /&gt;
        removeweapon(str)&lt;br /&gt;
        sendrpgmessage(str)&lt;br /&gt;
        synccamera()&lt;br /&gt;
        triggerclient(str, str, str)&lt;br /&gt;
&lt;br /&gt;
    Sun (SimObject):&lt;br /&gt;
&lt;br /&gt;
    Terraformer (SimObject):&lt;br /&gt;
      loadgrayscale(int, str) - returns boolean&lt;br /&gt;
      loadgreyscale(int, str) - returns boolean&lt;br /&gt;
      savegreyscale(int, str) - returns boolean&lt;br /&gt;
      setterrain(int) - returns boolean&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=Creation/Dev/Script_Functions:_NPC_Server&amp;diff=1634</id>
		<title>Creation/Dev/Script Functions: NPC Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=Creation/Dev/Script_Functions:_NPC_Server&amp;diff=1634"/>
		<updated>2005-03-02T00:38:00Z</updated>

		<summary type="html">&lt;p&gt;Evil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Script functions:&lt;br /&gt;
&lt;br /&gt;
Global:&lt;br /&gt;
  allplayerscount - integer (read only)&lt;br /&gt;
  canspin - boolean (read only)&lt;br /&gt;
  carriesblackstone - boolean (read only)&lt;br /&gt;
  carriesbush - boolean (read only)&lt;br /&gt;
  carriesnpc - boolean (read only)&lt;br /&gt;
  carriessign - boolean (read only)&lt;br /&gt;
  carriesstone - boolean (read only)&lt;br /&gt;
  carriesvase - boolean (read only)&lt;br /&gt;
  graalversion - float (read only)&lt;br /&gt;
  gravity - float&lt;br /&gt;
  nwday - integer (read only)&lt;br /&gt;
  nwhour - integer (read only)&lt;br /&gt;
  nwmin - integer (read only)&lt;br /&gt;
  nwmonth - integer (read only)&lt;br /&gt;
  nwtime - integer (read only)&lt;br /&gt;
  nwweek - integer (read only)&lt;br /&gt;
  nwweekday - integer (read only)&lt;br /&gt;
  nwyear - integer (read only)&lt;br /&gt;
  timevar - integer (read only)&lt;br /&gt;
  timevar2 - float (read only)&lt;br /&gt;
  addguildmember(str, str, str)&lt;br /&gt;
  addweapon(str)&lt;br /&gt;
  aindexof(float, obj) - returns integer&lt;br /&gt;
  attachplayertoobj(int, int)&lt;br /&gt;
  bodyexists(str) - returns boolean&lt;br /&gt;
  callnpc(int, params...)&lt;br /&gt;
  callweapon(int, params...)&lt;br /&gt;
  contains(str, str) - returns boolean&lt;br /&gt;
  copylevel(str, str)&lt;br /&gt;
  copystrings(str, str)&lt;br /&gt;
  deletelevel(str)&lt;br /&gt;
  detachplayer()&lt;br /&gt;
  echo(str)&lt;br /&gt;
  fileexists(str) - returns boolean&lt;br /&gt;
  findareanpcs(float, float, float, float) - returns object&lt;br /&gt;
  findnearestplayer(float, float) - returns object&lt;br /&gt;
  findnearestplayers(float, float) - returns object&lt;br /&gt;
  findnpc(str) - returns object&lt;br /&gt;
  findplayer(str) - returns object&lt;br /&gt;
  findplayerbyid(int) - returns object&lt;br /&gt;
  findweapon(str) - returns object&lt;br /&gt;
  freezeplayer2()&lt;br /&gt;
  getareanpcs(float, float, float, float) - returns object&lt;br /&gt;
  getascii(str)&lt;br /&gt;
  getextension(str) - returns string&lt;br /&gt;
  getimgheight(str) - returns integer&lt;br /&gt;
  getimgwidth(str) - returns integer&lt;br /&gt;
  getmapx(str) - returns integer&lt;br /&gt;
  getmapy(str) - returns integer&lt;br /&gt;
  getnearestplayer(float, float) - returns integer&lt;br /&gt;
  getnearestplayers(float, float) - returns object&lt;br /&gt;
  getnpcindex(str) - returns integer&lt;br /&gt;
  getplayerindex(str) - returns integer&lt;br /&gt;
  getstringkeys(str) - returns object&lt;br /&gt;
  hasright(str, str) - returns boolean&lt;br /&gt;
  hasweapon(str) - returns boolean&lt;br /&gt;
  headexists(str) - returns boolean&lt;br /&gt;
  hitobjects(float, float, float)&lt;br /&gt;
  levelexists(str) - returns boolean&lt;br /&gt;
  makescreenshot(str)&lt;br /&gt;
  md5(str) - returns string&lt;br /&gt;
  onwall(float, float) - returns boolean&lt;br /&gt;
  onwall2(float, float, float, float) - returns boolean&lt;br /&gt;
  onwater(float, float) - returns boolean&lt;br /&gt;
  onwater2(float, float, float, float) - returns boolean&lt;br /&gt;
  passwordmatches(str, str) - returns boolean&lt;br /&gt;
  randomstring(str) - returns string&lt;br /&gt;
  removeguild(str)&lt;br /&gt;
  removeguildmember(str, str)&lt;br /&gt;
  removeweapon(str)&lt;br /&gt;
  saveinfo(str, str)&lt;br /&gt;
  savelog(str)&lt;br /&gt;
  savelog2(str, str)&lt;br /&gt;
  say(int)&lt;br /&gt;
  say2(str)&lt;br /&gt;
  sendpm(str)&lt;br /&gt;
  sendrpgmessage(str)&lt;br /&gt;
  sendtonc(str)&lt;br /&gt;
  sendtorc(str)&lt;br /&gt;
  setani(str, str)&lt;br /&gt;
  setbeltcolor(str)&lt;br /&gt;
  setcoatcolor(str)&lt;br /&gt;
  setgender(str)&lt;br /&gt;
  sethead(str)&lt;br /&gt;
  setlevel2(str, float, float)&lt;br /&gt;
  setpm(str)&lt;br /&gt;
  setshield(str, int)&lt;br /&gt;
  setshoecolor(str)&lt;br /&gt;
  setshootparams(str)&lt;br /&gt;
  setskincolor(str)&lt;br /&gt;
  setsleevecolor(str)&lt;br /&gt;
  setsword(str, int)&lt;br /&gt;
  shieldexists(str) - returns boolean&lt;br /&gt;
  swordexists(str) - returns boolean&lt;br /&gt;
  testnpc(float, float) - returns integer&lt;br /&gt;
  testplayer(float, float) - returns integer&lt;br /&gt;
  triggeraction(float, float, str, str)&lt;br /&gt;
  unfreezeplayer()&lt;br /&gt;
&lt;br /&gt;
TGraalVar:&lt;br /&gt;
  initialized - boolean (read only)&lt;br /&gt;
  joinedclasses - object (read only)&lt;br /&gt;
  name - string (read only)&lt;br /&gt;
  scriptlogmissingfunctions - boolean&lt;br /&gt;
  timeout - float&lt;br /&gt;
  addarray(obj)&lt;br /&gt;
  cancelevents(str)&lt;br /&gt;
  catchevent(str, str, str)&lt;br /&gt;
  copyfrom(obj)&lt;br /&gt;
  getdynamicvarnames() - returns object&lt;br /&gt;
  geteditvarnames() - returns object&lt;br /&gt;
  getfunctions() - returns object&lt;br /&gt;
  getstaticvarnames() - returns object&lt;br /&gt;
  getvarnames() - returns object&lt;br /&gt;
  ignoreevent(str, str)&lt;br /&gt;
  ignoreevents(str)&lt;br /&gt;
  insertarray(int, obj)&lt;br /&gt;
  isinclass(str) - returns float&lt;br /&gt;
  join(str)&lt;br /&gt;
  leave(str)&lt;br /&gt;
  loadfolder(str, int)&lt;br /&gt;
  loadlines(str)&lt;br /&gt;
  loadstring(str)&lt;br /&gt;
  loadvars(str)&lt;br /&gt;
  objecttype() - returns string&lt;br /&gt;
  savelines(str, int)&lt;br /&gt;
  savestring(str, int)&lt;br /&gt;
  savevars(str, int)&lt;br /&gt;
  scheduleevent(float, str, params...) - returns object&lt;br /&gt;
  settimer(float)&lt;br /&gt;
  sortascending()&lt;br /&gt;
  timershow()&lt;br /&gt;
  trigger(str, params...)&lt;br /&gt;
&lt;br /&gt;
  TGaniObject (TGraalVar):&lt;br /&gt;
    ani - string (read only)&lt;br /&gt;
    attr - object (read only)&lt;br /&gt;
    colors - object (read only)&lt;br /&gt;
&lt;br /&gt;
    TServerNPC (TGaniObject):&lt;br /&gt;
&lt;br /&gt;
      TServerSideNPC (TServerNPC):&lt;br /&gt;
        ap - integer&lt;br /&gt;
        arrows - integer&lt;br /&gt;
        body - string&lt;br /&gt;
        bodyimg - string&lt;br /&gt;
        bombs - integer&lt;br /&gt;
        chat - string&lt;br /&gt;
        darts - integer&lt;br /&gt;
        dir - integer&lt;br /&gt;
        glovepower - integer&lt;br /&gt;
        gralats - integer&lt;br /&gt;
        head - string&lt;br /&gt;
        headimg - string&lt;br /&gt;
        hearts - float&lt;br /&gt;
        height - float (read only)&lt;br /&gt;
        horseimg - string&lt;br /&gt;
        hurtdx - float&lt;br /&gt;
        hurtdy - float&lt;br /&gt;
        hurtpower - float (read only)&lt;br /&gt;
        id - integer (read only)&lt;br /&gt;
        image - string&lt;br /&gt;
        level - object (read only)&lt;br /&gt;
        name - string (read only)&lt;br /&gt;
        nick - string&lt;br /&gt;
        npcsindex - integer (read only)&lt;br /&gt;
        rupees - integer&lt;br /&gt;
        save - object (read only)&lt;br /&gt;
        shield - string&lt;br /&gt;
        shieldimg - string&lt;br /&gt;
        shieldpower - integer&lt;br /&gt;
        sprite - integer&lt;br /&gt;
        sword - string&lt;br /&gt;
        swordimg - string&lt;br /&gt;
        swordpower - integer&lt;br /&gt;
        visible - boolean&lt;br /&gt;
        width - float (read only)&lt;br /&gt;
        x - float&lt;br /&gt;
        y - float&lt;br /&gt;
        z - float&lt;br /&gt;
        blockagain()&lt;br /&gt;
        canbecarried()&lt;br /&gt;
        canbepulled()&lt;br /&gt;
        canbepushed()&lt;br /&gt;
        cannotbecarried()&lt;br /&gt;
        cannotbepulled()&lt;br /&gt;
        cannotbepushed()&lt;br /&gt;
        cannotwarp()&lt;br /&gt;
        canwarp()&lt;br /&gt;
        canwarp2()&lt;br /&gt;
        changeimgcolors(int, float, float, float, float)&lt;br /&gt;
        changeimgpart(int, int, int, int, int)&lt;br /&gt;
        changeimgvis(int, int)&lt;br /&gt;
        changeimgzoom(int, float)&lt;br /&gt;
        destroy()&lt;br /&gt;
        dontblock()&lt;br /&gt;
        drawoverplayer()&lt;br /&gt;
        drawunderplayer()&lt;br /&gt;
        findimg(int) - returns object&lt;br /&gt;
        hide()&lt;br /&gt;
        hideimg(int)&lt;br /&gt;
        hideimgs(int, int)&lt;br /&gt;
        message(str)&lt;br /&gt;
        move(float, float, float, int)&lt;br /&gt;
        noplayeronwall()&lt;br /&gt;
        playeronwall()&lt;br /&gt;
        scriptdone()&lt;br /&gt;
        setcharani(str, str)&lt;br /&gt;
        setchargender(str)&lt;br /&gt;
        setimg(str)&lt;br /&gt;
        setimgpart(str, int, int, int, int)&lt;br /&gt;
        setshape(int, int, int)&lt;br /&gt;
        setshape2(int, int, obj)&lt;br /&gt;
        show()&lt;br /&gt;
        showcharacter()&lt;br /&gt;
        showimg(int, str, float, float)&lt;br /&gt;
        showimg2(int, str, float, float, float)&lt;br /&gt;
        toweapons(str)&lt;br /&gt;
        warpto(str, float, float)&lt;br /&gt;
&lt;br /&gt;
    TServerPlayer (TGaniObject):&lt;br /&gt;
      account - string (read only)&lt;br /&gt;
      ap - integer&lt;br /&gt;
      arrows - integer&lt;br /&gt;
      attached - boolean (read only)&lt;br /&gt;
      attachid - integer (read only)&lt;br /&gt;
      attachtype - integer (read only)&lt;br /&gt;
      body - string&lt;br /&gt;
      bodyimg - string&lt;br /&gt;
      bombs - integer&lt;br /&gt;
      canspin - boolean (read only)&lt;br /&gt;
      carriesblackstone - boolean (read only)&lt;br /&gt;
      carriesbush - boolean (read only)&lt;br /&gt;
      carriesnpc - boolean (read only)&lt;br /&gt;
      carriessign - boolean (read only)&lt;br /&gt;
      carriesstone - boolean (read only)&lt;br /&gt;
      carriesvase - boolean (read only)&lt;br /&gt;
      chat - string&lt;br /&gt;
      darts - integer&lt;br /&gt;
      deaths - integer&lt;br /&gt;
      dir - integer&lt;br /&gt;
      fullhearts - integer&lt;br /&gt;
      glovepower - integer&lt;br /&gt;
      graalversion - float (read only)&lt;br /&gt;
      gralats - integer&lt;br /&gt;
      guild - string&lt;br /&gt;
      head - string&lt;br /&gt;
      headimg - string&lt;br /&gt;
      headset - integer&lt;br /&gt;
      hearts - float&lt;br /&gt;
      horseimg - string&lt;br /&gt;
      hp - float&lt;br /&gt;
      id - integer (read only)&lt;br /&gt;
      isfemale - boolean&lt;br /&gt;
      ismale - boolean&lt;br /&gt;
      kills - integer&lt;br /&gt;
      lastdead - integer (read only)&lt;br /&gt;
      level - object (read only)&lt;br /&gt;
      logintime - integer (read only)&lt;br /&gt;
      maxhp - integer&lt;br /&gt;
      movementlimit - float&lt;br /&gt;
      mp - integer&lt;br /&gt;
      nick - string&lt;br /&gt;
      onlinetime - integer (read only)&lt;br /&gt;
      pause - boolean (read only)&lt;br /&gt;
      paused - boolean (read only)&lt;br /&gt;
      rating - float&lt;br /&gt;
      ratingd - float&lt;br /&gt;
      rupees - integer&lt;br /&gt;
      shield - string&lt;br /&gt;
      shieldimg - string&lt;br /&gt;
      shieldpower - integer&lt;br /&gt;
      sprite - integer&lt;br /&gt;
      sword - string&lt;br /&gt;
      swordimg - string&lt;br /&gt;
      swordpower - integer&lt;br /&gt;
      version - float (read only)&lt;br /&gt;
      x - float&lt;br /&gt;
      y - float&lt;br /&gt;
      z - float&lt;br /&gt;
      addweapon(str)&lt;br /&gt;
      attachplayertoobj(int, int)&lt;br /&gt;
      callweapon(int, params...)&lt;br /&gt;
      detachplayer()&lt;br /&gt;
      disableweapons()&lt;br /&gt;
      enableweapons()&lt;br /&gt;
      freezeplayer2()&lt;br /&gt;
      hasright(str, str) - returns boolean&lt;br /&gt;
      hasweapon(str) - returns boolean&lt;br /&gt;
      makescreenshot(str)&lt;br /&gt;
      removeweapon(str)&lt;br /&gt;
      say(int)&lt;br /&gt;
      say2(str)&lt;br /&gt;
      sendpm(str)&lt;br /&gt;
      sendrpgmessage(str)&lt;br /&gt;
      setani(str, str)&lt;br /&gt;
      setbeltcolor(str)&lt;br /&gt;
      setcoatcolor(str)&lt;br /&gt;
      setgender(str)&lt;br /&gt;
      sethead(str)&lt;br /&gt;
      setlevel2(str, float, float)&lt;br /&gt;
      setshield(str, int)&lt;br /&gt;
      setshoecolor(str)&lt;br /&gt;
      setskincolor(str)&lt;br /&gt;
      setsleevecolor(str)&lt;br /&gt;
      setsword(str, int)&lt;br /&gt;
      unfreezeplayer()&lt;br /&gt;
&lt;br /&gt;
  TProjectile (TGraalVar):&lt;br /&gt;
    angle - float (read only)&lt;br /&gt;
    fromplayer - object&lt;br /&gt;
    horiz - boolean (read only)&lt;br /&gt;
    params - string&lt;br /&gt;
    speed - float (read only)&lt;br /&gt;
    x - float (read only)&lt;br /&gt;
    y - float (read only)&lt;br /&gt;
    z - float (read only)&lt;br /&gt;
    zspeed - float (read only)&lt;br /&gt;
&lt;br /&gt;
  TServerLevel (TGraalVar):&lt;br /&gt;
    board - object (read only)&lt;br /&gt;
    isnopkzone - boolean (read only)&lt;br /&gt;
    issparringzone - boolean (read only)&lt;br /&gt;
    dontswapoutlevel()&lt;br /&gt;
    getz(float, float) - returns float&lt;br /&gt;
    noplayerkilling()&lt;br /&gt;
    putbomb(int, float, float)&lt;br /&gt;
    putexplosion(int, float, float)&lt;br /&gt;
    putexplosion2(int, int, float, float)&lt;br /&gt;
    putnpc2(float, float, str) - returns object&lt;br /&gt;
    shoot(float, float, float, float, float, float, str, str)&lt;br /&gt;
    updateboard(int, int, int, int)&lt;br /&gt;
    updateboard2(int, int, int, int)&lt;br /&gt;
&lt;br /&gt;
  TServerSign (TGraalVar):&lt;br /&gt;
    text - string&lt;br /&gt;
    x - integer&lt;br /&gt;
    y - integer&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=Creation/Dev/Script_Functions:_Client&amp;diff=2515</id>
		<title>Creation/Dev/Script Functions: Client</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=Creation/Dev/Script_Functions:_Client&amp;diff=2515"/>
		<updated>2005-03-02T00:37:33Z</updated>

		<summary type="html">&lt;p&gt;Evil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Script functions:&lt;br /&gt;
&lt;br /&gt;
Global:&lt;br /&gt;
  allfeatures - integer (read only)&lt;br /&gt;
  allplayerscount - integer (read only)&lt;br /&gt;
  allstats - integer (read only)&lt;br /&gt;
  canspin - boolean (read only)&lt;br /&gt;
  carriesblackstone - boolean (read only)&lt;br /&gt;
  carriesbush - boolean (read only)&lt;br /&gt;
  carriesnpc - boolean (read only)&lt;br /&gt;
  carriessign - boolean (read only)&lt;br /&gt;
  carriesstone - boolean (read only)&lt;br /&gt;
  carriesvase - boolean (read only)&lt;br /&gt;
  downloadfile - string (read only)&lt;br /&gt;
  downloadpos - integer (read only)&lt;br /&gt;
  downloadsize - integer (read only)&lt;br /&gt;
  editingmission - boolean&lt;br /&gt;
  emoticonchar - string (read only)&lt;br /&gt;
  focusx - float (read only)&lt;br /&gt;
  focusy - float (read only)&lt;br /&gt;
  graalversion - float (read only)&lt;br /&gt;
  gravity - float&lt;br /&gt;
  iscarrying - boolean (read only)&lt;br /&gt;
  isfocused - boolean (read only)&lt;br /&gt;
  isgraal3d - boolean (read only)&lt;br /&gt;
  isleader - boolean (read only)&lt;br /&gt;
  isonmap - boolean (read only)&lt;br /&gt;
  leftmousebutton - boolean (read only)&lt;br /&gt;
  levelorgx - float (read only)&lt;br /&gt;
  levelorgy - float (read only)&lt;br /&gt;
  lighteffectsenabled - boolean (read only)&lt;br /&gt;
  middlemousebutton - boolean (read only)&lt;br /&gt;
  mousebuttons - integer (read only)&lt;br /&gt;
  mousescreenx - integer&lt;br /&gt;
  mousescreeny - integer&lt;br /&gt;
  mousewheeldelta - integer (read only)&lt;br /&gt;
  mousex - float&lt;br /&gt;
  mousey - float&lt;br /&gt;
  musiclen - integer (read only)&lt;br /&gt;
  musicpos - integer (read only)&lt;br /&gt;
  rightmousebutton - boolean (read only)&lt;br /&gt;
  screenheight - integer (read only)&lt;br /&gt;
  screenwidth - integer (read only)&lt;br /&gt;
  selectedsword - integer&lt;br /&gt;
  selectedweapon - integer&lt;br /&gt;
  shotbybaddy - boolean (read only)&lt;br /&gt;
  shotbyplayer - boolean (read only)&lt;br /&gt;
  timevar - integer (read only)&lt;br /&gt;
  timevar2 - float (read only)&lt;br /&gt;
  wasshooted - boolean (read only)&lt;br /&gt;
  waterheight - float&lt;br /&gt;
  weapons - object (read only)&lt;br /&gt;
  weaponsenabled - boolean&lt;br /&gt;
  worldclockstopped - boolean&lt;br /&gt;
  worldhour - integer&lt;br /&gt;
  worldminute - float&lt;br /&gt;
  worldminutesofday - float&lt;br /&gt;
  worldrealsecondsperday - float&lt;br /&gt;
  addcontrol(obj)&lt;br /&gt;
  addtiledef(str, str, int)&lt;br /&gt;
  addtiledef2(str, str, int, int)&lt;br /&gt;
  aindexof(float, obj) - returns integer&lt;br /&gt;
  attachplayertoobj(int, int)&lt;br /&gt;
  callnpc(int, params...)&lt;br /&gt;
  callweapon(int, params...)&lt;br /&gt;
  commandtoserver(str)&lt;br /&gt;
  contains(str, str) - returns boolean&lt;br /&gt;
  cursoroff()&lt;br /&gt;
  cursoron()&lt;br /&gt;
  detachplayer()&lt;br /&gt;
  disabledefmovement()&lt;br /&gt;
  disablemap()&lt;br /&gt;
  disablepause()&lt;br /&gt;
  disableselectweapons()&lt;br /&gt;
  disableweapons()&lt;br /&gt;
  echo(str)&lt;br /&gt;
  enabledefmovement()&lt;br /&gt;
  enablefeatures(int)&lt;br /&gt;
  enablemap()&lt;br /&gt;
  enablepause()&lt;br /&gt;
  enableselectweapons()&lt;br /&gt;
  enableweapons()&lt;br /&gt;
  explodebomb(int)&lt;br /&gt;
  extractfilebase(str) - returns string&lt;br /&gt;
  extractfileext(str) - returns string&lt;br /&gt;
  extractfilename(str) - returns string&lt;br /&gt;
  extractfilepath(str) - returns string&lt;br /&gt;
  findfirstfile(str) - returns string&lt;br /&gt;
  findnextfile(str) - returns string&lt;br /&gt;
  findplayer(str) - returns object&lt;br /&gt;
  findplayerbyid(int) - returns object&lt;br /&gt;
  findweapon(str) - returns object&lt;br /&gt;
  freezeplayer(float)&lt;br /&gt;
  getascii(str) - returns integer&lt;br /&gt;
  getboxcenter(str) - returns string&lt;br /&gt;
  getdatablocktypes() - returns object&lt;br /&gt;
  getextension(str) - returns string&lt;br /&gt;
  getimgheight(str) - returns integer&lt;br /&gt;
  getimgwidth(str) - returns integer&lt;br /&gt;
  getkeycode(str) - returns integer&lt;br /&gt;
  getmapx(str) - returns integer&lt;br /&gt;
  getmapy(str) - returns integer&lt;br /&gt;
  getobjectat(float, float) - returns object&lt;br /&gt;
  getobjectatmouse() - returns object&lt;br /&gt;
  getobjectbyray(str, str) - returns object&lt;br /&gt;
  getstringkeys(str) - returns object&lt;br /&gt;
  getsurfacetype(float, float) - returns string&lt;br /&gt;
  gettextheight(float, str, str) - returns integer&lt;br /&gt;
  gettextwidth(float, str, str, str) - returns integer&lt;br /&gt;
  getz(float, float) - returns float&lt;br /&gt;
  hideplayer(float)&lt;br /&gt;
  hidesword(float)&lt;br /&gt;
  hitnpc(int, float, float, float)&lt;br /&gt;
  hitobjects(float, float, float)&lt;br /&gt;
  hitplayer(int, float, float, float)&lt;br /&gt;
  isadminguild(str) - returns boolean&lt;br /&gt;
  iscursoron() - returns boolean&lt;br /&gt;
  isobject(str) - returns boolean&lt;br /&gt;
  keydown(int) - returns boolean&lt;br /&gt;
  keydown2(int, bool) - returns boolean&lt;br /&gt;
  keyname(int) - returns string&lt;br /&gt;
  lay2(str, float, float)&lt;br /&gt;
  lightscene() - returns boolean&lt;br /&gt;
  loadmap(str)&lt;br /&gt;
  mapshapeanimation(str, str, str, float) - returns boolean&lt;br /&gt;
  matrixcreate(str, str) - returns string&lt;br /&gt;
  matrixcreatefromeuler(str) - returns string&lt;br /&gt;
  matrixmulpoint(str, str) - returns string&lt;br /&gt;
  matrixmultiply(str, str) - returns string&lt;br /&gt;
  matrixmulvector(str, str) - returns string&lt;br /&gt;
  noplayerkilling()&lt;br /&gt;
  onwall(float, float) - returns boolean&lt;br /&gt;
  onwall2(float, float, float, float) - returns boolean&lt;br /&gt;
  onwater(float, float) - returns boolean&lt;br /&gt;
  onwater2(float, float, float, float) - returns boolean&lt;br /&gt;
  openurl(str)&lt;br /&gt;
  openurl2(str, int, int)&lt;br /&gt;
  play(str)&lt;br /&gt;
  play2(str, float, float, float)&lt;br /&gt;
  playlooped(str)&lt;br /&gt;
  popdialog()&lt;br /&gt;
  pushdialog(obj)&lt;br /&gt;
  putleaps(int, float, float)&lt;br /&gt;
  reloadfile(str)&lt;br /&gt;
  removetiledefs(str)&lt;br /&gt;
  replaceani(str, str)&lt;br /&gt;
  requestfiledeletion(str)&lt;br /&gt;
  requestfilerename(str, str)&lt;br /&gt;
  requestfilesmove(str, str)&lt;br /&gt;
  requesttext(str, str)&lt;br /&gt;
  resetfocus()&lt;br /&gt;
  savelog(str)&lt;br /&gt;
  say(int)&lt;br /&gt;
  say2(str)&lt;br /&gt;
  screenx(float, float) - returns integer&lt;br /&gt;
  screeny(float, float) - returns integer&lt;br /&gt;
  selectfilefordownload(str)&lt;br /&gt;
  selectfileforupload()&lt;br /&gt;
  sendrpgmessage(str)&lt;br /&gt;
  sendtext(str, str, obj)&lt;br /&gt;
  sendtorc(str)&lt;br /&gt;
  serverwarp(str)&lt;br /&gt;
  setani(str, str)&lt;br /&gt;
  setbeltcolor(str)&lt;br /&gt;
  setcoatcolor(str)&lt;br /&gt;
  setcontentcontrol(obj)&lt;br /&gt;
  setcursor2(str)&lt;br /&gt;
  seteffect(float, float, float, float)&lt;br /&gt;
  setfocus(float, float)&lt;br /&gt;
  setfogcolors(obj)&lt;br /&gt;
  setgender(str)&lt;br /&gt;
  sethead(str)&lt;br /&gt;
  setinteriorfocuseddebug(int)&lt;br /&gt;
  setinteriorrendermode(int)&lt;br /&gt;
  setletters(str)&lt;br /&gt;
  setmap(str, str, float, float)&lt;br /&gt;
  setminimap(str, str, float, float)&lt;br /&gt;
  setmusicvolume(float, float)&lt;br /&gt;
  setplayerdir(str)&lt;br /&gt;
  setshadowdetaillevel(float)&lt;br /&gt;
  setshield(str, int)&lt;br /&gt;
  setshoecolor(str)&lt;br /&gt;
  setshootparams(str)&lt;br /&gt;
  setskincolor(str)&lt;br /&gt;
  setskybandcolors(obj)&lt;br /&gt;
  setskybandsizes(obj)&lt;br /&gt;
  setsleevecolor(str)&lt;br /&gt;
  setsuncolors(obj)&lt;br /&gt;
  setsword(str, int)&lt;br /&gt;
  setterrainrendermode(int)&lt;br /&gt;
  showstats(int)&lt;br /&gt;
  spyfire(int, int)&lt;br /&gt;
  stopmidi()&lt;br /&gt;
  stopsound(str)&lt;br /&gt;
  strequals(str, str) - returns boolean&lt;br /&gt;
  synctimeofday(float, float)&lt;br /&gt;
  takeplayercarry()&lt;br /&gt;
  takeplayerhorse()&lt;br /&gt;
  testplayer(float, float) - returns integer&lt;br /&gt;
  tiletype(float, float) - returns integer&lt;br /&gt;
  triggeraction(float, float, str, params...)&lt;br /&gt;
  triggerserver(str, str, str)&lt;br /&gt;
  updateboard(int, int, int, int)&lt;br /&gt;
  updateterrain()&lt;br /&gt;
  vectoradd(str, str) - returns string&lt;br /&gt;
  vectorcross(str, str) - returns string&lt;br /&gt;
  vectordist(str, str) - returns float&lt;br /&gt;
  vectordot(str, str) - returns float&lt;br /&gt;
  vectorlen(str) - returns float&lt;br /&gt;
  vectornormalize(str) - returns string&lt;br /&gt;
  vectororthobasis(str) - returns string&lt;br /&gt;
  vectorscale(str, float) - returns string&lt;br /&gt;
  vectorsub(str, str) - returns string&lt;br /&gt;
  worldx(float, float) - returns float&lt;br /&gt;
  worldy(float, float) - returns float&lt;br /&gt;
  wraptext(int, str, str) - returns object&lt;br /&gt;
  wraptext2(int, float, str, str) - returns object&lt;br /&gt;
&lt;br /&gt;
TGraalVar:&lt;br /&gt;
  initialized - boolean (read only)&lt;br /&gt;
  joinedclasses - object (read only)&lt;br /&gt;
  name - string (read only)&lt;br /&gt;
  scriptlogmissingfunctions - boolean&lt;br /&gt;
  timeout - float&lt;br /&gt;
  addarray(obj)&lt;br /&gt;
  cancelevents(str)&lt;br /&gt;
  catchevent(str, str, str)&lt;br /&gt;
  copyfrom(obj)&lt;br /&gt;
  getdatablockvars() - returns object&lt;br /&gt;
  getdynamicvarnames() - returns object&lt;br /&gt;
  geteditvarnames() - returns object&lt;br /&gt;
  getfunctions() - returns object&lt;br /&gt;
  getstaticvarnames() - returns object&lt;br /&gt;
  getvarnames() - returns object&lt;br /&gt;
  ignoreevent(str, str)&lt;br /&gt;
  ignoreevents(str)&lt;br /&gt;
  insertarray(int, obj)&lt;br /&gt;
  isinclass(str) - returns float&lt;br /&gt;
  loadfolder(str, int)&lt;br /&gt;
  loadlines(str)&lt;br /&gt;
  loadstring(str)&lt;br /&gt;
  loadvars(str)&lt;br /&gt;
  objecttype() - returns string&lt;br /&gt;
  savelines(str, int)&lt;br /&gt;
  savestring(str, int)&lt;br /&gt;
  savevars(str, int)&lt;br /&gt;
  scheduleevent(float, str, params...) - returns object&lt;br /&gt;
  settimer(float)&lt;br /&gt;
  sortascending()&lt;br /&gt;
  timershow()&lt;br /&gt;
  trigger(str, params...)&lt;br /&gt;
&lt;br /&gt;
  GuiTextListEntry (TGraalVar):&lt;br /&gt;
    active - boolean&lt;br /&gt;
    flickering - boolean&lt;br /&gt;
    id - integer&lt;br /&gt;
    image - integer&lt;br /&gt;
    selectedimage - integer&lt;br /&gt;
    sortgroup - integer&lt;br /&gt;
    sortvalue - integer&lt;br /&gt;
    text - string&lt;br /&gt;
    gettext() - returns string&lt;br /&gt;
    settext(str)&lt;br /&gt;
&lt;br /&gt;
  GuiTreeViewNode (TGraalVar):&lt;br /&gt;
    expanded - boolean&lt;br /&gt;
    image - integer&lt;br /&gt;
    level - integer (read only)&lt;br /&gt;
    name - string&lt;br /&gt;
    parent - object (read only)&lt;br /&gt;
    selectedimage - integer&lt;br /&gt;
    sortgroup - integer&lt;br /&gt;
    sortvalue - integer&lt;br /&gt;
    x - integer (read only)&lt;br /&gt;
    y - integer (read only)&lt;br /&gt;
    addlines(obj, bool)&lt;br /&gt;
    addnode(str) - returns object&lt;br /&gt;
    addnodebypath(str, str) - returns object&lt;br /&gt;
    addvars(obj, bool)&lt;br /&gt;
    clearnodes()&lt;br /&gt;
    destroy()&lt;br /&gt;
    getfullname(str) - returns string&lt;br /&gt;
    getnode(str) - returns object&lt;br /&gt;
    getnodebypath(str, str) - returns object&lt;br /&gt;
&lt;br /&gt;
  MissionArea (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
  ShapeBaseHitBox (TGraalVar):&lt;br /&gt;
    hitmax - string&lt;br /&gt;
    hitmin - string&lt;br /&gt;
    nodename - string&lt;br /&gt;
&lt;br /&gt;
  ShapeImageState (TGraalVar):&lt;br /&gt;
    allowimagechange - boolean&lt;br /&gt;
    direction - boolean&lt;br /&gt;
    ejectshell - boolean&lt;br /&gt;
    emitter - object&lt;br /&gt;
    emitternode - string&lt;br /&gt;
    emittertime - float&lt;br /&gt;
    emittertype - string&lt;br /&gt;
    energydrain - float&lt;br /&gt;
    fire - boolean&lt;br /&gt;
    freezelook - boolean&lt;br /&gt;
    ignoreloadedforready - boolean&lt;br /&gt;
    loadedflag - string&lt;br /&gt;
    name - string&lt;br /&gt;
    recoil - string&lt;br /&gt;
    script - string&lt;br /&gt;
    sequence - string&lt;br /&gt;
    sequencerandomflash - boolean&lt;br /&gt;
    sound - object&lt;br /&gt;
    spinthread - string&lt;br /&gt;
    timeoutvalue - float&lt;br /&gt;
    transitiononammo - string&lt;br /&gt;
    transitiononloaded - string&lt;br /&gt;
    transitiononnoammo - string&lt;br /&gt;
    transitiononnotarget - string&lt;br /&gt;
    transitiononnotloaded - string&lt;br /&gt;
    transitiononnotwet - string&lt;br /&gt;
    transitionontarget - string&lt;br /&gt;
    transitionontimeout - string&lt;br /&gt;
    transitionontriggerdown - string&lt;br /&gt;
    transitionontriggerup - string&lt;br /&gt;
    transitiononwet - string&lt;br /&gt;
    waitfortimeout - boolean&lt;br /&gt;
&lt;br /&gt;
  SimObject (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
    GuiControlProfile (SimObject):&lt;br /&gt;
      autosizeheight - boolean&lt;br /&gt;
      autosizewidth - boolean&lt;br /&gt;
      bitmap - string&lt;br /&gt;
      border - integer&lt;br /&gt;
      bordercolor - string&lt;br /&gt;
      bordercolorhl - string&lt;br /&gt;
      bordercolorna - string&lt;br /&gt;
      borderthickness - integer&lt;br /&gt;
      cankeyfocus - boolean&lt;br /&gt;
      cursorcolor - string&lt;br /&gt;
      fillcolor - string&lt;br /&gt;
      fillcolorhl - string&lt;br /&gt;
      fillcolorna - string&lt;br /&gt;
      fontcolor - string&lt;br /&gt;
      fontcolorhl - string&lt;br /&gt;
      fontcolorlink - string&lt;br /&gt;
      fontcolorlinkhl - string&lt;br /&gt;
      fontcolorna - string&lt;br /&gt;
      fontcolorsel - string&lt;br /&gt;
      fontsize - integer&lt;br /&gt;
      fonttype - string&lt;br /&gt;
      justify - string&lt;br /&gt;
      linespacing - integer&lt;br /&gt;
      modal - boolean&lt;br /&gt;
      mouseoverselected - boolean&lt;br /&gt;
      numbersonly - boolean&lt;br /&gt;
      opaque - boolean&lt;br /&gt;
      returntab - boolean&lt;br /&gt;
      soundbuttondown - string&lt;br /&gt;
      soundbuttonover - string&lt;br /&gt;
      tab - boolean&lt;br /&gt;
      textoffset - string&lt;br /&gt;
      transparency - float&lt;br /&gt;
&lt;br /&gt;
    GuiCursor (SimObject):&lt;br /&gt;
&lt;br /&gt;
    SceneObject (SimObject):&lt;br /&gt;
      forwardvector - string&lt;br /&gt;
      objectbox - string (read only)&lt;br /&gt;
      position - string&lt;br /&gt;
      rightvector - string&lt;br /&gt;
      rotation - string&lt;br /&gt;
      scale - string&lt;br /&gt;
      transform - string&lt;br /&gt;
      upvector - string&lt;br /&gt;
      worldbox - string (read only)&lt;br /&gt;
      worldboxcenter - string (read only)&lt;br /&gt;
      x - float&lt;br /&gt;
      y - float&lt;br /&gt;
      z - float&lt;br /&gt;
      getforwardvector() - returns string&lt;br /&gt;
      getobjectbox() - returns string&lt;br /&gt;
      getposition() - returns string&lt;br /&gt;
      getrightvector() - returns string&lt;br /&gt;
      getscale() - returns string&lt;br /&gt;
      gettransform() - returns string&lt;br /&gt;
      getupvector() - returns string&lt;br /&gt;
      getworldbox() - returns string&lt;br /&gt;
      getworldboxcenter() - returns string&lt;br /&gt;
      light()&lt;br /&gt;
      setforwardvector(str)&lt;br /&gt;
      setposition(str)&lt;br /&gt;
      setrightvector(str)&lt;br /&gt;
      setscale(str)&lt;br /&gt;
      settransform(str)&lt;br /&gt;
      setupvector(str)&lt;br /&gt;
&lt;br /&gt;
      AudioEmitter (SceneObject):&lt;br /&gt;
        description - object&lt;br /&gt;
        filename - string&lt;br /&gt;
        profile - object&lt;br /&gt;
&lt;br /&gt;
      FractalTree (SceneObject):&lt;br /&gt;
        deffile - string&lt;br /&gt;
        levels - integer&lt;br /&gt;
        seed - integer&lt;br /&gt;
&lt;br /&gt;
      GameBase (SceneObject):&lt;br /&gt;
        datablock - object&lt;br /&gt;
&lt;br /&gt;
        DynamicShapeReplicator (GameBase):&lt;br /&gt;
          boxmax - string&lt;br /&gt;
          boxmin - string&lt;br /&gt;
          maxgridobjects - integer&lt;br /&gt;
          mingridobjects - integer&lt;br /&gt;
          radius - integer&lt;br /&gt;
          shapefiles - string&lt;br /&gt;
          surfacetype - string&lt;br /&gt;
&lt;br /&gt;
          DynamicGrass (DynamicShapeReplicator):&lt;br /&gt;
&lt;br /&gt;
          DynamicGrassReplicator (DynamicShapeReplicator):&lt;br /&gt;
&lt;br /&gt;
        Explosion (GameBase):&lt;br /&gt;
          datablock - object&lt;br /&gt;
&lt;br /&gt;
        Lightning (GameBase):&lt;br /&gt;
          strikesperminute - integer&lt;br /&gt;
&lt;br /&gt;
        ParticleEmitter (GameBase):&lt;br /&gt;
&lt;br /&gt;
        ParticleEmitterNode (GameBase):&lt;br /&gt;
          datablock - object&lt;br /&gt;
          emitter - object&lt;br /&gt;
&lt;br /&gt;
        PathedInterior (GameBase):&lt;br /&gt;
&lt;br /&gt;
        Precipitation (GameBase):&lt;br /&gt;
          maxmass - float&lt;br /&gt;
          maxspeed - float&lt;br /&gt;
          minmass - float&lt;br /&gt;
          minspeed - float&lt;br /&gt;
          percentage - float&lt;br /&gt;
&lt;br /&gt;
        Projectile (GameBase):&lt;br /&gt;
          datablock - object&lt;br /&gt;
          initialposition - string&lt;br /&gt;
          initialvelocity - string&lt;br /&gt;
          sourceobject - object&lt;br /&gt;
&lt;br /&gt;
        ShapeBase (GameBase):&lt;br /&gt;
          chat - string&lt;br /&gt;
          datablock - object&lt;br /&gt;
          shapenamecolor - string&lt;br /&gt;
          applydamage(float)&lt;br /&gt;
          applyimpulse(str, str) - returns boolean&lt;br /&gt;
          applyrepair(float)&lt;br /&gt;
          cancloak() - returns string&lt;br /&gt;
          detachallprojectiles()&lt;br /&gt;
          detachprojectiles(int)&lt;br /&gt;
          getairepairpoint() - returns string&lt;br /&gt;
          getcamerafov() - returns float&lt;br /&gt;
          getcontrollingclient() - returns object&lt;br /&gt;
          getcontrollingobject() - returns object&lt;br /&gt;
          getdamageflash() - returns float&lt;br /&gt;
          getdamagelevel() - returns float&lt;br /&gt;
          getdamagepercent() - returns float&lt;br /&gt;
          getdamagestate() - returns string&lt;br /&gt;
          getenergylevel() - returns float&lt;br /&gt;
          getenergypercent() - returns float&lt;br /&gt;
          geteyepoint() - returns string&lt;br /&gt;
          geteyetransform() - returns string&lt;br /&gt;
          geteyevector() - returns string&lt;br /&gt;
          getimageammo(int) - returns boolean&lt;br /&gt;
          getimageloaded(int) - returns boolean&lt;br /&gt;
          getimageskintag(int) - returns integer&lt;br /&gt;
          getimagestate(int) - returns string&lt;br /&gt;
          getimagetrigger(int) - returns boolean&lt;br /&gt;
          getmountedimage(int) - returns object&lt;br /&gt;
          getmountedobject(int) - returns object&lt;br /&gt;
          getmountedobjectcount() - returns integer&lt;br /&gt;
          getmountedobjectnode(int) - returns integer&lt;br /&gt;
          getmountnodeobject(int) - returns object&lt;br /&gt;
          getmountslot(str) - returns integer&lt;br /&gt;
          getmounttransform(int) - returns string&lt;br /&gt;
          getmuzzlepoint(int) - returns string&lt;br /&gt;
          getmuzzlevector(int) - returns string&lt;br /&gt;
          getobjectmount() - returns object&lt;br /&gt;
          getpendingimage(int) - returns object&lt;br /&gt;
          getrechargerate() - returns float&lt;br /&gt;
          getrepairrate() - returns float&lt;br /&gt;
          getshapename() - returns string&lt;br /&gt;
          getskinname() - returns string&lt;br /&gt;
          getslottransform(int) - returns string&lt;br /&gt;
          getthread(int) - returns string&lt;br /&gt;
          getthreadposition(int) - returns float&lt;br /&gt;
          getvelocity() - returns string&lt;br /&gt;
          getwhiteout() - returns float&lt;br /&gt;
          hide()&lt;br /&gt;
          iscloaked() - returns boolean&lt;br /&gt;
          isdestroyed() - returns boolean&lt;br /&gt;
          isdisabled() - returns boolean&lt;br /&gt;
          isenabled() - returns boolean&lt;br /&gt;
          ishidden() - returns boolean&lt;br /&gt;
          isimagefiring(int) - returns boolean&lt;br /&gt;
          isimagemounted(str) - returns boolean&lt;br /&gt;
          islookfrozen() - returns boolean&lt;br /&gt;
          ismounted() - returns boolean&lt;br /&gt;
          mountimage(str, int) - returns boolean&lt;br /&gt;
          mountobject(obj, int) - returns boolean&lt;br /&gt;
          pausethread(int) - returns boolean&lt;br /&gt;
          playaudio(int, obj) - returns boolean&lt;br /&gt;
          playthread(int, str) - returns boolean&lt;br /&gt;
          playthreadext(int, str, float, float, float, bool) - returns boolean&lt;br /&gt;
          registermelee(str, str, obj, int, str, str) - returns boolean&lt;br /&gt;
          setcamerafov(float)&lt;br /&gt;
          setcloaked(bool)&lt;br /&gt;
          setdamageflash(float)&lt;br /&gt;
          setdamagelevel(float)&lt;br /&gt;
          setdamagestate(str) - returns boolean&lt;br /&gt;
          setdamagevector(str)&lt;br /&gt;
          setenergylevel(float)&lt;br /&gt;
          sethidden(bool)&lt;br /&gt;
          setimageammo(int, bool) - returns boolean&lt;br /&gt;
          setimageloaded(int, bool) - returns boolean&lt;br /&gt;
          setimagetrigger(int, bool) - returns boolean&lt;br /&gt;
          setinvinciblemode(float, float)&lt;br /&gt;
          setrechargerate(float)&lt;br /&gt;
          setrepairrate(float)&lt;br /&gt;
          setshapename(str)&lt;br /&gt;
          setskinname(str)&lt;br /&gt;
          setthreaddir(int, bool) - returns boolean&lt;br /&gt;
          setvelocity(str) - returns boolean&lt;br /&gt;
          setwhiteout(float)&lt;br /&gt;
          show()&lt;br /&gt;
          startfade(float, float, bool)&lt;br /&gt;
          stopaudio(int) - returns boolean&lt;br /&gt;
          stopthread(int) - returns boolean&lt;br /&gt;
          unmount()&lt;br /&gt;
          unmountimage(int) - returns boolean&lt;br /&gt;
          unmountobject(obj) - returns boolean&lt;br /&gt;
          unregistermelee(int) - returns boolean&lt;br /&gt;
&lt;br /&gt;
          AdvancedCamera (ShapeBase):&lt;br /&gt;
            cameramode - integer&lt;br /&gt;
            zoomdistance - float&lt;br /&gt;
&lt;br /&gt;
          Camera (ShapeBase):&lt;br /&gt;
            setflymode()&lt;br /&gt;
            setorbitmode(obj, str, float, float, float, bool)&lt;br /&gt;
&lt;br /&gt;
          MissionMarker (ShapeBase):&lt;br /&gt;
            datablock - object&lt;br /&gt;
&lt;br /&gt;
          PathCamera (ShapeBase):&lt;br /&gt;
            datablock - object&lt;br /&gt;
&lt;br /&gt;
          Player (ShapeBase):&lt;br /&gt;
            datablock - object&lt;br /&gt;
            speed - float&lt;br /&gt;
            swimming - boolean (read only)&lt;br /&gt;
            checkdismountpoint(str, str) - returns boolean&lt;br /&gt;
            clearcontrolobject()&lt;br /&gt;
            getcontrolobject() - returns object&lt;br /&gt;
            getdamagelocation(str) - returns string&lt;br /&gt;
            getstate() - returns string&lt;br /&gt;
            setactionthread(str, bool, bool) - returns boolean&lt;br /&gt;
            setcontrolobject(obj) - returns boolean&lt;br /&gt;
&lt;br /&gt;
            AIPlayer (Player):&lt;br /&gt;
              maxturnpitch - float&lt;br /&gt;
              maxturnyaw - float&lt;br /&gt;
              simplemovement - boolean&lt;br /&gt;
              wallcheck - boolean&lt;br /&gt;
              clearaim()&lt;br /&gt;
              getaimlocation() - returns string&lt;br /&gt;
              getaimobject() - returns object&lt;br /&gt;
              getmovedestination() - returns string&lt;br /&gt;
              ismoving() - returns boolean&lt;br /&gt;
              setaimlocation(str)&lt;br /&gt;
              setaimobject(obj)&lt;br /&gt;
              setmovedestination(str, bool)&lt;br /&gt;
              setmovespeed(float)&lt;br /&gt;
              stop()&lt;br /&gt;
&lt;br /&gt;
          StaticShape (ShapeBase):&lt;br /&gt;
            datablock - object&lt;br /&gt;
&lt;br /&gt;
          Vehicle (ShapeBase):&lt;br /&gt;
            datablock - object&lt;br /&gt;
&lt;br /&gt;
            FlyingVehicle (Vehicle):&lt;br /&gt;
              datablock - object&lt;br /&gt;
&lt;br /&gt;
            HoverVehicle (Vehicle):&lt;br /&gt;
              datablock - object&lt;br /&gt;
&lt;br /&gt;
            WheeledVehicle (Vehicle):&lt;br /&gt;
              datablock - object&lt;br /&gt;
              getwheelcount() - returns integer&lt;br /&gt;
              setwheelpowered(int, bool) - returns boolean&lt;br /&gt;
              setwheelspring(int, obj) - returns boolean&lt;br /&gt;
              setwheelsteering(int, float) - returns boolean&lt;br /&gt;
              setwheeltire(int, obj) - returns boolean&lt;br /&gt;
&lt;br /&gt;
              AIWheeledVehicle (WheeledVehicle):&lt;br /&gt;
                getmovedestination() - returns string&lt;br /&gt;
                setmovedestination(str, bool)&lt;br /&gt;
                setmovespeed(float)&lt;br /&gt;
                setmovetolerance(float)&lt;br /&gt;
                stop()&lt;br /&gt;
&lt;br /&gt;
        SpawnSphere (GameBase):&lt;br /&gt;
          indoorweight - float&lt;br /&gt;
          outdoorweight - float&lt;br /&gt;
          radius - float&lt;br /&gt;
          sphereweight - float&lt;br /&gt;
&lt;br /&gt;
        Splash (GameBase):&lt;br /&gt;
&lt;br /&gt;
        TSStatic (GameBase):&lt;br /&gt;
          noshadowlevel - float&lt;br /&gt;
          onlyambientlight - boolean&lt;br /&gt;
&lt;br /&gt;
          Item (TSStatic):&lt;br /&gt;
            datablock - object&lt;br /&gt;
            hide()&lt;br /&gt;
            show()&lt;br /&gt;
            startfade(float, float, bool)&lt;br /&gt;
&lt;br /&gt;
        Trigger (GameBase):&lt;br /&gt;
          datablock - object&lt;br /&gt;
&lt;br /&gt;
        fxLight (GameBase):&lt;br /&gt;
          datablock - object&lt;br /&gt;
&lt;br /&gt;
      InteriorInstance (SceneObject):&lt;br /&gt;
        audioenvironment - object&lt;br /&gt;
        audioprofile - object&lt;br /&gt;
        interiorfile - string&lt;br /&gt;
        showterraininside - boolean&lt;br /&gt;
&lt;br /&gt;
      Marker (SceneObject):&lt;br /&gt;
&lt;br /&gt;
      Shape3ds (SceneObject):&lt;br /&gt;
&lt;br /&gt;
      Sky (SceneObject):&lt;br /&gt;
        materiallist - string&lt;br /&gt;
        skyfadetime - float&lt;br /&gt;
        windvelocity - string&lt;br /&gt;
&lt;br /&gt;
      TerrainBlock (SceneObject):&lt;br /&gt;
        bumpoffset - float&lt;br /&gt;
        bumpscale - float&lt;br /&gt;
        bumptexture - string&lt;br /&gt;
        detailtexture - string&lt;br /&gt;
        squaresize - integer&lt;br /&gt;
        terrainfile - string&lt;br /&gt;
        zerobumpscale - integer&lt;br /&gt;
&lt;br /&gt;
      WaterBlock (SceneObject):&lt;br /&gt;
        audioenvironment - object&lt;br /&gt;
        density - float&lt;br /&gt;
        depthgradient - float&lt;br /&gt;
        distortgridscale - float&lt;br /&gt;
        distortmag - float&lt;br /&gt;
        distorttime - float&lt;br /&gt;
        envmapintensity - float&lt;br /&gt;
        envmapovertexture - string&lt;br /&gt;
        envmapundertexture - string&lt;br /&gt;
        flowangle - float&lt;br /&gt;
        flowrate - float&lt;br /&gt;
        liquidtype - string&lt;br /&gt;
        maxalpha - float&lt;br /&gt;
        minalpha - float&lt;br /&gt;
        removewetedges - boolean&lt;br /&gt;
        shoredepth - float&lt;br /&gt;
        shoretexture - string&lt;br /&gt;
        specularcolor - string&lt;br /&gt;
        specularmasktex - string&lt;br /&gt;
        specularpower - float&lt;br /&gt;
        submergetexture0 - string&lt;br /&gt;
        submergetexture1 - string&lt;br /&gt;
        surfaceopacity - float&lt;br /&gt;
        surfaceparallax - float&lt;br /&gt;
        surfacetexture - string&lt;br /&gt;
        tessshore - float&lt;br /&gt;
        tesssurface - float&lt;br /&gt;
        usedepthmask - boolean&lt;br /&gt;
        viscosity - float&lt;br /&gt;
        wavemagnitude - float&lt;br /&gt;
&lt;br /&gt;
      fxFoliageReplicator (SceneObject):&lt;br /&gt;
&lt;br /&gt;
      fxGrassReplicator (SceneObject):&lt;br /&gt;
&lt;br /&gt;
      fxShapeReplicator (SceneObject):&lt;br /&gt;
&lt;br /&gt;
      fxSunLight (SceneObject):&lt;br /&gt;
&lt;br /&gt;
      twSurfaceReference (SceneObject):&lt;br /&gt;
&lt;br /&gt;
      volumeLight (SceneObject):&lt;br /&gt;
&lt;br /&gt;
    SimDataBlock (SimObject):&lt;br /&gt;
      isdatablock - boolean (read only)&lt;br /&gt;
&lt;br /&gt;
      AudioDescription (SimDataBlock):&lt;br /&gt;
&lt;br /&gt;
      AudioProfile (SimDataBlock):&lt;br /&gt;
        description - object&lt;br /&gt;
        environment - object&lt;br /&gt;
&lt;br /&gt;
      DecalData (SimDataBlock):&lt;br /&gt;
        lifetime - float&lt;br /&gt;
&lt;br /&gt;
      GameBaseData (SimDataBlock):&lt;br /&gt;
&lt;br /&gt;
        DebrisData (GameBaseData):&lt;br /&gt;
          explosion - object&lt;br /&gt;
&lt;br /&gt;
        ExplosionData (GameBaseData):&lt;br /&gt;
          debris - object&lt;br /&gt;
          particleemitter - object&lt;br /&gt;
          soundprofile - object&lt;br /&gt;
&lt;br /&gt;
        ItemData (GameBaseData):&lt;br /&gt;
&lt;br /&gt;
        LightningData (GameBaseData):&lt;br /&gt;
          strikesound - object&lt;br /&gt;
&lt;br /&gt;
        ParticleEmitterData (GameBaseData):&lt;br /&gt;
          particles - string&lt;br /&gt;
&lt;br /&gt;
        ParticleEmitterNodeData (GameBaseData):&lt;br /&gt;
&lt;br /&gt;
        PathedInteriorData (GameBaseData):&lt;br /&gt;
          startsound - object&lt;br /&gt;
          stopsound - object&lt;br /&gt;
          sustainsound - object&lt;br /&gt;
&lt;br /&gt;
        PrecipitationData (GameBaseData):&lt;br /&gt;
          soundprofile - object&lt;br /&gt;
&lt;br /&gt;
        ProjectileData (GameBaseData):&lt;br /&gt;
          armingdelay - integer&lt;br /&gt;
          bounceelasticity - float&lt;br /&gt;
          bouncefriction - float&lt;br /&gt;
          explosion - object&lt;br /&gt;
          fadedelay - integer&lt;br /&gt;
          gravitymod - float&lt;br /&gt;
          lifetime - integer&lt;br /&gt;
          lightradius - float&lt;br /&gt;
          muzzlevelocity - float&lt;br /&gt;
          particleemitter - object&lt;br /&gt;
          velinheritfactor - float&lt;br /&gt;
&lt;br /&gt;
        ShapeBaseData (GameBaseData):&lt;br /&gt;
          debris - object&lt;br /&gt;
          explosion - object&lt;br /&gt;
          noshadowlevel - float&lt;br /&gt;
          onlyambientlight - boolean&lt;br /&gt;
          showhitboxes - boolean&lt;br /&gt;
          underwaterexplosion - object&lt;br /&gt;
&lt;br /&gt;
          AdvancedCameraData (ShapeBaseData):&lt;br /&gt;
&lt;br /&gt;
          CameraData (ShapeBaseData):&lt;br /&gt;
&lt;br /&gt;
          MissionMarkerData (ShapeBaseData):&lt;br /&gt;
&lt;br /&gt;
          PlayerData (ShapeBaseData):&lt;br /&gt;
            decaldata - object&lt;br /&gt;
            dustemitter - object&lt;br /&gt;
            exitingwater - object&lt;br /&gt;
            footbubblessound - object&lt;br /&gt;
            foothardsound - object&lt;br /&gt;
            footmetalsound - object&lt;br /&gt;
            footpuffemitter - object&lt;br /&gt;
            footshallowsound - object&lt;br /&gt;
            footsnowsound - object&lt;br /&gt;
            footsoftsound - object&lt;br /&gt;
            footunderwatersound - object&lt;br /&gt;
            footwadingsound - object&lt;br /&gt;
            impacthardsound - object&lt;br /&gt;
            impactmetalsound - object&lt;br /&gt;
            impactsnowsound - object&lt;br /&gt;
            impactsoftsound - object&lt;br /&gt;
            impactwatereasy - object&lt;br /&gt;
            impactwaterhard - object&lt;br /&gt;
            impactwatermedium - object&lt;br /&gt;
            jumpingsound - object&lt;br /&gt;
            movingbubblessound - object&lt;br /&gt;
            splash - object&lt;br /&gt;
            waterbreathsound - object&lt;br /&gt;
&lt;br /&gt;
          StaticShapeData (ShapeBaseData):&lt;br /&gt;
&lt;br /&gt;
          VehicleData (ShapeBaseData):&lt;br /&gt;
            dustemitter - object&lt;br /&gt;
            exitingwater - object&lt;br /&gt;
            hardimpactsound - object&lt;br /&gt;
            impactwatereasy - object&lt;br /&gt;
            impactwaterhard - object&lt;br /&gt;
            impactwatermedium - object&lt;br /&gt;
            softimpactsound - object&lt;br /&gt;
            waterwakesound - object&lt;br /&gt;
&lt;br /&gt;
            FlyingVehicleData (VehicleData):&lt;br /&gt;
              backwardjetemitter - object&lt;br /&gt;
              downjetemitter - object&lt;br /&gt;
              enginesound - object&lt;br /&gt;
              forwardjetemitter - object&lt;br /&gt;
              jetsound - object&lt;br /&gt;
              trailemitter - object&lt;br /&gt;
&lt;br /&gt;
            HoverVehicleData (VehicleData):&lt;br /&gt;
              dusttrailemitter - object&lt;br /&gt;
              enginesound - object&lt;br /&gt;
              floatsound - object&lt;br /&gt;
              forwardjetemitter - object&lt;br /&gt;
              jetsound - object&lt;br /&gt;
&lt;br /&gt;
            WheeledVehicleData (VehicleData):&lt;br /&gt;
              enginesound - object&lt;br /&gt;
              jetsound - object&lt;br /&gt;
              squealsound - object&lt;br /&gt;
              tireemitter - object&lt;br /&gt;
              wheelimpactsound - object&lt;br /&gt;
&lt;br /&gt;
        ShapeBaseImageData (GameBaseData):&lt;br /&gt;
          casing - object&lt;br /&gt;
          projectile - object&lt;br /&gt;
&lt;br /&gt;
        SplashData (GameBaseData):&lt;br /&gt;
          explosion - object&lt;br /&gt;
          soundprofile - object&lt;br /&gt;
&lt;br /&gt;
        TriggerData (GameBaseData):&lt;br /&gt;
&lt;br /&gt;
        fxLightData (GameBaseData):&lt;br /&gt;
&lt;br /&gt;
      ParticleData (SimDataBlock):&lt;br /&gt;
&lt;br /&gt;
      TSShapeConstructor (SimDataBlock):&lt;br /&gt;
&lt;br /&gt;
      WheeledVehicleSpring (SimDataBlock):&lt;br /&gt;
&lt;br /&gt;
      WheeledVehicleTire (SimDataBlock):&lt;br /&gt;
&lt;br /&gt;
    SimGroup (SimObject):&lt;br /&gt;
      addcontrol(obj)&lt;br /&gt;
&lt;br /&gt;
      GameConnection (SimGroup):&lt;br /&gt;
        account - string (read only)&lt;br /&gt;
        nick - string (read only)&lt;br /&gt;
        objecttype() - returns string&lt;br /&gt;
&lt;br /&gt;
      GuiControl (SimGroup):&lt;br /&gt;
        canmove - boolean&lt;br /&gt;
        canresize - boolean&lt;br /&gt;
        controls - object (read only)&lt;br /&gt;
        editing - boolean&lt;br /&gt;
        extent - string&lt;br /&gt;
        height - integer&lt;br /&gt;
        hint - string&lt;br /&gt;
        horizsizing - string&lt;br /&gt;
        layer - integer (read only)&lt;br /&gt;
        minextent - string&lt;br /&gt;
        minsize - string&lt;br /&gt;
        position - string&lt;br /&gt;
        profile - string&lt;br /&gt;
        resizeheight - boolean&lt;br /&gt;
        resizewidth - boolean&lt;br /&gt;
        showhint - boolean&lt;br /&gt;
        vertsizing - string&lt;br /&gt;
        visible - boolean&lt;br /&gt;
        width - integer&lt;br /&gt;
        x - integer&lt;br /&gt;
        y - integer&lt;br /&gt;
        addcontrol(obj)&lt;br /&gt;
        bringtofront()&lt;br /&gt;
        destroy()&lt;br /&gt;
        getparent() - returns object&lt;br /&gt;
        hide()&lt;br /&gt;
        makefirstresponder(bool)&lt;br /&gt;
        pushtoback()&lt;br /&gt;
        resize(int, int, int, int)&lt;br /&gt;
        show()&lt;br /&gt;
&lt;br /&gt;
        EditManager (GuiControl):&lt;br /&gt;
&lt;br /&gt;
        GuiArrayCtrl (GuiControl):&lt;br /&gt;
&lt;br /&gt;
          CreatorTree (GuiArrayCtrl):&lt;br /&gt;
            clearnodes()&lt;br /&gt;
            getnodename(int) - returns string&lt;br /&gt;
            getnodevalue(int) - returns string&lt;br /&gt;
            getparentnode(int) - returns integer&lt;br /&gt;
            getselectednode() - returns integer&lt;br /&gt;
            isgroupnode(int) - returns boolean&lt;br /&gt;
&lt;br /&gt;
          GuiTextListCtrl (GuiArrayCtrl):&lt;br /&gt;
            clipcolumntext - boolean&lt;br /&gt;
            columns - string - of format &amp;quot;0 16&amp;quot;, offset of the tabulators&lt;br /&gt;
            enumerate - boolean&lt;br /&gt;
            fitparentwidth - boolean&lt;br /&gt;
            groupsortorder - string&lt;br /&gt;
            iconheight - integer (read only)&lt;br /&gt;
            iconwidth - integer (read only)&lt;br /&gt;
            resizecell - boolean&lt;br /&gt;
            selected - object (read only)&lt;br /&gt;
            sortcolumn - integer&lt;br /&gt;
            sortmode - string&lt;br /&gt;
            sortorder - string&lt;br /&gt;
            addrow(int, str)&lt;br /&gt;
            clearrows()&lt;br /&gt;
            clearselection()&lt;br /&gt;
            findtext(str) - returns integer&lt;br /&gt;
            findtextid(str) - returns integer&lt;br /&gt;
            getrowatpoint(int, int) - returns integer - row index&lt;br /&gt;
            getrowidatpoint(int, int) - returns integer - row id&lt;br /&gt;
            getrownumbyid(int) - returns integer&lt;br /&gt;
            getselectedid() - returns integer - row id&lt;br /&gt;
            getselectedrow() - returns integer - row index&lt;br /&gt;
            getselectedtext() - returns string&lt;br /&gt;
            insertrow(int, int, str)&lt;br /&gt;
            makevisible(int)&lt;br /&gt;
            makevisiblebyid(int)&lt;br /&gt;
            removerow(int)&lt;br /&gt;
            removerowbyid(int)&lt;br /&gt;
            rowcount() - returns integer&lt;br /&gt;
            seticonsize(int, int)&lt;br /&gt;
            setselectedbyid(int)&lt;br /&gt;
            setselectedrow(int)&lt;br /&gt;
            sort()&lt;br /&gt;
&lt;br /&gt;
          GuiTreeViewCtrl (GuiArrayCtrl):&lt;br /&gt;
            allowmultipleselections - boolean&lt;br /&gt;
            fitparentwidth - boolean&lt;br /&gt;
            groupsortorder - string&lt;br /&gt;
            nodes - object (read only)&lt;br /&gt;
            sortmode - string&lt;br /&gt;
            sortorder - string&lt;br /&gt;
            getnodeat(int, int) - returns object&lt;br /&gt;
            getselectednode() - returns object&lt;br /&gt;
            seticonsize(int, int)&lt;br /&gt;
            sort()&lt;br /&gt;
&lt;br /&gt;
        GuiBackgroundCtrl (GuiControl):&lt;br /&gt;
&lt;br /&gt;
        GuiBitmapBorderCtrl (GuiControl):&lt;br /&gt;
          tile - boolean&lt;br /&gt;
&lt;br /&gt;
        GuiBitmapButtonCtrl (GuiControl):&lt;br /&gt;
          mouseoverbitmap - object (read only)&lt;br /&gt;
          normalbitmap - object (read only)&lt;br /&gt;
          pressedbitmap - object (read only)&lt;br /&gt;
          text - string&lt;br /&gt;
&lt;br /&gt;
        GuiBitmapCtrl (GuiControl):&lt;br /&gt;
          bitmap - object (read only)&lt;br /&gt;
          wrap - boolean&lt;br /&gt;
          setbitmap(str)&lt;br /&gt;
          setvalue(int, int)&lt;br /&gt;
&lt;br /&gt;
          GuiCrossHairHud (GuiBitmapCtrl):&lt;br /&gt;
&lt;br /&gt;
          GuiMapOverviewCtrl (GuiBitmapCtrl):&lt;br /&gt;
&lt;br /&gt;
        GuiButtonBaseCtrl (GuiControl):&lt;br /&gt;
          buttontype - string&lt;br /&gt;
          checked - boolean&lt;br /&gt;
          groupnum - integer&lt;br /&gt;
          text - string&lt;br /&gt;
          gettext() - returns string&lt;br /&gt;
          performclick()&lt;br /&gt;
          settext(str)&lt;br /&gt;
&lt;br /&gt;
          GuiBorderButtonCtrl (GuiButtonBaseCtrl):&lt;br /&gt;
&lt;br /&gt;
          GuiButtonCtrl (GuiButtonBaseCtrl):&lt;br /&gt;
&lt;br /&gt;
          GuiCheckBoxCtrl (GuiButtonBaseCtrl):&lt;br /&gt;
&lt;br /&gt;
            GuiRadioCtrl (GuiCheckBoxCtrl):&lt;br /&gt;
&lt;br /&gt;
        GuiContextMenuCtrl (GuiControl):&lt;br /&gt;
          profile - string&lt;br /&gt;
          rows - object (read only)&lt;br /&gt;
          scrollprofile - string&lt;br /&gt;
          textprofile - string&lt;br /&gt;
          width - integer&lt;br /&gt;
          close()&lt;br /&gt;
          open(int, int)&lt;br /&gt;
&lt;br /&gt;
        GuiDrawingPanel (GuiControl):&lt;br /&gt;
          locked - boolean&lt;br /&gt;
          parth - integer (read only)&lt;br /&gt;
          partw - integer (read only)&lt;br /&gt;
          partx - integer (read only)&lt;br /&gt;
          party - integer (read only)&lt;br /&gt;
          clearall()&lt;br /&gt;
          clearrectangle(int, int, int, int)&lt;br /&gt;
          drawimage(int, int, str)&lt;br /&gt;
          drawimagerectangle(int, int, str, int, int, int, int)&lt;br /&gt;
          drawimagestretched(int, int, int, int, str, int, int, int, int)&lt;br /&gt;
          lock()&lt;br /&gt;
          unlock()&lt;br /&gt;
&lt;br /&gt;
        GuiFilterCtrl (GuiControl):&lt;br /&gt;
          controlpoints - integer&lt;br /&gt;
&lt;br /&gt;
        GuiFrameSetCtrl (GuiControl):&lt;br /&gt;
&lt;br /&gt;
        GuiInputCtrl (GuiControl):&lt;br /&gt;
&lt;br /&gt;
        GuiInspector (GuiControl):&lt;br /&gt;
&lt;br /&gt;
        GuiMLTextCtrl (GuiControl):&lt;br /&gt;
          allowcolorchars - boolean&lt;br /&gt;
          alpha - float&lt;br /&gt;
          deniedsound - string&lt;br /&gt;
          maxchars - integer&lt;br /&gt;
          syntaxhighlighting - boolean&lt;br /&gt;
          text - string&lt;br /&gt;
          wordwrap - boolean&lt;br /&gt;
          addtext(str, bool)&lt;br /&gt;
          getcursorline() - returns integer&lt;br /&gt;
          getline(int) - returns string&lt;br /&gt;
          getlinecount() - returns integer&lt;br /&gt;
          getlines() - returns object - array of lines&lt;br /&gt;
          gettext() - returns string&lt;br /&gt;
          reflow()&lt;br /&gt;
          scrolltobottom()&lt;br /&gt;
          scrolltotag(int)&lt;br /&gt;
          scrolltotop()&lt;br /&gt;
          setlines(obj)&lt;br /&gt;
          settext(str)&lt;br /&gt;
&lt;br /&gt;
          GuiMLTextEditCtrl (GuiMLTextCtrl):&lt;br /&gt;
&lt;br /&gt;
            GuiPMEditCtrl (GuiMLTextEditCtrl):&lt;br /&gt;
              sendmasspm(obj)&lt;br /&gt;
              sendpm(obj)&lt;br /&gt;
&lt;br /&gt;
          GuiPMCtrl (GuiMLTextCtrl):&lt;br /&gt;
            showpm(obj)&lt;br /&gt;
&lt;br /&gt;
          GuiPMHistoryCtrl (GuiMLTextCtrl):&lt;br /&gt;
            showhistory(obj)&lt;br /&gt;
&lt;br /&gt;
        GuiMenuBar (GuiControl):&lt;br /&gt;
          addmenu(str, int)&lt;br /&gt;
          addmenuitem(str, str, int, str, int)&lt;br /&gt;
          clearmenuitems(str)&lt;br /&gt;
          clearmenus()&lt;br /&gt;
          removemenu(str)&lt;br /&gt;
          removemenuitem(str, str)&lt;br /&gt;
          setmenuitembitmap(str, str, int)&lt;br /&gt;
          setmenuitemchecked(str, str, bool)&lt;br /&gt;
          setmenuitemenable(str, str, bool)&lt;br /&gt;
          setmenuitemtext(str, str, str)&lt;br /&gt;
          setmenuitemvisible(str, str, bool)&lt;br /&gt;
          setmenutext(str, str)&lt;br /&gt;
          setmenuvisible(str, bool)&lt;br /&gt;
&lt;br /&gt;
        GuiMessageVectorCtrl (GuiControl):&lt;br /&gt;
&lt;br /&gt;
        GuiMouseEventCtrl (GuiControl):&lt;br /&gt;
          lockmouse - boolean&lt;br /&gt;
&lt;br /&gt;
        GuiPlayerView (GuiControl):&lt;br /&gt;
          ambientcolor - string&lt;br /&gt;
          cameraz - float&lt;br /&gt;
          lightcolor - string&lt;br /&gt;
          lightdirection - string&lt;br /&gt;
          modelrotx - float&lt;br /&gt;
          modelrotz - float&lt;br /&gt;
          mountshape(int, int, str, str) - returns boolean&lt;br /&gt;
          setmodel(str, str, str)&lt;br /&gt;
          unmountshape(int)&lt;br /&gt;
&lt;br /&gt;
        GuiProgressCtrl (GuiControl):&lt;br /&gt;
          progress - float&lt;br /&gt;
&lt;br /&gt;
        GuiScrollCtrl (GuiControl):&lt;br /&gt;
          childmargin - string&lt;br /&gt;
          constantthumbheight - boolean&lt;br /&gt;
          hscrollbar - string&lt;br /&gt;
          tile - boolean&lt;br /&gt;
          vscrollbar - string&lt;br /&gt;
          wheelscrolllines - integer&lt;br /&gt;
          willfirstrespond - boolean&lt;br /&gt;
&lt;br /&gt;
        GuiShapeNameHud (GuiControl):&lt;br /&gt;
          alignbottom - boolean&lt;br /&gt;
          chatprofile - string&lt;br /&gt;
          damagealignbottom - boolean&lt;br /&gt;
          damageoffset - string&lt;br /&gt;
          damagetimeout - float&lt;br /&gt;
          useshapesize - boolean&lt;br /&gt;
          verticaldamageoffset - float&lt;br /&gt;
&lt;br /&gt;
        GuiShowImgCtrl (GuiControl):&lt;br /&gt;
          ani - string&lt;br /&gt;
          dir - integer&lt;br /&gt;
          layer - integer&lt;br /&gt;
          offsetx - integer&lt;br /&gt;
          offsety - integer&lt;br /&gt;
&lt;br /&gt;
        GuiSliderCtrl (GuiControl):&lt;br /&gt;
          range - string&lt;br /&gt;
          ticks - integer&lt;br /&gt;
          value - float&lt;br /&gt;
&lt;br /&gt;
        GuiTextCtrl (GuiControl):&lt;br /&gt;
          text - string&lt;br /&gt;
          gettext() - returns string&lt;br /&gt;
          settext(str)&lt;br /&gt;
&lt;br /&gt;
          GuiBubbleTextCtrl (GuiTextCtrl):&lt;br /&gt;
&lt;br /&gt;
          GuiPopUpMenuCtrl (GuiTextCtrl):&lt;br /&gt;
            maxpopupheight - integer&lt;br /&gt;
            addtext(str, int)&lt;br /&gt;
            findtext(str) - returns integer&lt;br /&gt;
            forceclose()&lt;br /&gt;
            forceonaction()&lt;br /&gt;
            getselected() - returns integer&lt;br /&gt;
            rowcount() - returns integer&lt;br /&gt;
            setselected(int)&lt;br /&gt;
&lt;br /&gt;
          GuiTextEditCtrl (GuiTextCtrl):&lt;br /&gt;
            deniedsound - string&lt;br /&gt;
            historysize - integer&lt;br /&gt;
            password - boolean&lt;br /&gt;
            tabcomplete - boolean&lt;br /&gt;
&lt;br /&gt;
            GuiTextEditSliderCtrl (GuiTextEditCtrl):&lt;br /&gt;
              format - string&lt;br /&gt;
              increment - float&lt;br /&gt;
              range - string&lt;br /&gt;
&lt;br /&gt;
          GuiWindowCtrl (GuiTextCtrl):&lt;br /&gt;
            canclose - boolean&lt;br /&gt;
            canmaximize - boolean&lt;br /&gt;
            canminimize - boolean&lt;br /&gt;
            closequery - boolean&lt;br /&gt;
            destroyonhide - boolean&lt;br /&gt;
            tile - boolean&lt;br /&gt;
&lt;br /&gt;
        TerrainEditor (GuiControl):&lt;br /&gt;
          getterrainmaterials() - returns object&lt;br /&gt;
          setterrainmaterials(str)&lt;br /&gt;
&lt;br /&gt;
        WorldEditor (GuiControl):&lt;br /&gt;
          automaticsync - boolean&lt;br /&gt;
          clearignorelist()&lt;br /&gt;
          getselectedobject(int) - returns object&lt;br /&gt;
          getselectionsize() - returns integer&lt;br /&gt;
          ignoreobjclass(str)&lt;br /&gt;
&lt;br /&gt;
    Sun (SimObject):&lt;br /&gt;
&lt;br /&gt;
    Terraformer (SimObject):&lt;br /&gt;
      loadgrayscale(int, str) - returns boolean&lt;br /&gt;
      loadgreyscale(int, str) - returns boolean&lt;br /&gt;
      savegreyscale(int, str) - returns boolean&lt;br /&gt;
      setterrain(int) - returns boolean&lt;br /&gt;
&lt;br /&gt;
  TDrawableObject (TGraalVar):&lt;br /&gt;
    layer - integer (read only)&lt;br /&gt;
&lt;br /&gt;
    TLevelObject (TDrawableObject):&lt;br /&gt;
      level - object (read only)&lt;br /&gt;
      x - float&lt;br /&gt;
      y - float&lt;br /&gt;
      z - float&lt;br /&gt;
&lt;br /&gt;
      TExplosion (TLevelObject):&lt;br /&gt;
        dir - integer (read only)&lt;br /&gt;
        power - integer (read only)&lt;br /&gt;
        time - float (read only)&lt;br /&gt;
&lt;br /&gt;
      TGaniObject (TLevelObject):&lt;br /&gt;
        ani - object (read only)&lt;br /&gt;
        anistep - integer (read only)&lt;br /&gt;
        attachid - integer (read only)&lt;br /&gt;
        attachtype - integer (read only)&lt;br /&gt;
        attr - object (read only)&lt;br /&gt;
        bodyimg - string&lt;br /&gt;
        colors - object (read only)&lt;br /&gt;
        dir - integer&lt;br /&gt;
        headimg - string&lt;br /&gt;
        sprite - integer&lt;br /&gt;
        getimageforsprite(obj) - returns object&lt;br /&gt;
        getsprite(str) - returns object&lt;br /&gt;
        getspriteforspritepos(obj) - returns object&lt;br /&gt;
&lt;br /&gt;
        TProjectile (TGaniObject):&lt;br /&gt;
&lt;br /&gt;
        TServerHorse (TGaniObject):&lt;br /&gt;
          bombpower - integer&lt;br /&gt;
          bombs - integer&lt;br /&gt;
          bushes - integer&lt;br /&gt;
          dir - integer&lt;br /&gt;
          type - integer&lt;br /&gt;
&lt;br /&gt;
        TServerPlayer (TGaniObject):&lt;br /&gt;
          account - string (read only)&lt;br /&gt;
          ap - integer&lt;br /&gt;
          attached - boolean (read only)&lt;br /&gt;
          bombs - integer&lt;br /&gt;
          chat - string&lt;br /&gt;
          darts - integer&lt;br /&gt;
          fullhearts - integer (read only)&lt;br /&gt;
          glovepower - integer&lt;br /&gt;
          gralats - integer&lt;br /&gt;
          guild - string (read only)&lt;br /&gt;
          headimg - string&lt;br /&gt;
          headset - integer&lt;br /&gt;
          hearts - float (read only)&lt;br /&gt;
          horseimg - string (read only)&lt;br /&gt;
          hp - float (read only)&lt;br /&gt;
          id - integer (read only)&lt;br /&gt;
          isadmin - boolean (read only)&lt;br /&gt;
          isfemale - boolean (read only)&lt;br /&gt;
          ismale - boolean (read only)&lt;br /&gt;
          maxhp - integer (read only)&lt;br /&gt;
          messagebubble - integer (read only)&lt;br /&gt;
          mp - integer&lt;br /&gt;
          nick - string&lt;br /&gt;
          rupees - integer - better use 'gralats'&lt;br /&gt;
          shieldimg - string&lt;br /&gt;
          shieldpower - integer (read only)&lt;br /&gt;
          swordimg - string&lt;br /&gt;
          swordpower - integer (read only)&lt;br /&gt;
          x - float&lt;br /&gt;
          y - float&lt;br /&gt;
          pmswaiting() - returns boolean&lt;br /&gt;
          showprofile()&lt;br /&gt;
&lt;br /&gt;
          TPlayer (TServerPlayer):&lt;br /&gt;
            ap - integer&lt;br /&gt;
            chat - string&lt;br /&gt;
            freezetime - float&lt;br /&gt;
            hearts - float&lt;br /&gt;
            horseimg - string&lt;br /&gt;
            hp - float&lt;br /&gt;
            hurt - boolean (read only)&lt;br /&gt;
            hurtdx - float (read only)&lt;br /&gt;
            hurtdy - float (read only)&lt;br /&gt;
            hurted - boolean (read only)&lt;br /&gt;
            hurtpower - float (read only)&lt;br /&gt;
            isfemale - boolean (read only)&lt;br /&gt;
            ismale - boolean (read only)&lt;br /&gt;
            map - boolean (read only)&lt;br /&gt;
            nick - string (read only)&lt;br /&gt;
            onhorse - boolean (read only)&lt;br /&gt;
            online - boolean (read only)&lt;br /&gt;
            paused - boolean (read only)&lt;br /&gt;
            reading - boolean (read only)&lt;br /&gt;
            shieldimg - string&lt;br /&gt;
            sprite - integer&lt;br /&gt;
            swimming - boolean (read only)&lt;br /&gt;
            swordimg - string&lt;br /&gt;
            transform - string&lt;br /&gt;
            weapon - object (read only)&lt;br /&gt;
            weapons - object (read only)&lt;br /&gt;
&lt;br /&gt;
          TServerNPC (TServerPlayer):&lt;br /&gt;
            actionplayer - integer (read only)&lt;br /&gt;
            hearts - float&lt;br /&gt;
            height - float (read only)&lt;br /&gt;
            horseimg - string&lt;br /&gt;
            hp - float&lt;br /&gt;
            hurtdx - float&lt;br /&gt;
            hurtdy - float&lt;br /&gt;
            layer - integer&lt;br /&gt;
            peltwithblackstone - boolean (read only)&lt;br /&gt;
            peltwithbush - boolean (read only)&lt;br /&gt;
            peltwithnpc - boolean (read only)&lt;br /&gt;
            peltwithsign - boolean (read only)&lt;br /&gt;
            peltwithstone - boolean (read only)&lt;br /&gt;
            peltwithvase - boolean (read only)&lt;br /&gt;
            shieldpower - integer&lt;br /&gt;
            sprite - integer&lt;br /&gt;
            swordpower - integer&lt;br /&gt;
            visible - boolean&lt;br /&gt;
            width - float (read only)&lt;br /&gt;
            x - float&lt;br /&gt;
            y - float&lt;br /&gt;
            blockagain()&lt;br /&gt;
            blockagainlocal()&lt;br /&gt;
            canbecarried()&lt;br /&gt;
            canbepulled()&lt;br /&gt;
            canbepushed()&lt;br /&gt;
            cannotbecarried()&lt;br /&gt;
            cannotbepulled()&lt;br /&gt;
            cannotbepushed()&lt;br /&gt;
            carryobject(str)&lt;br /&gt;
            changeimgcolors(int, float, float, float, float)&lt;br /&gt;
            changeimgmode(int, int)&lt;br /&gt;
            changeimgpart(int, int, int, int, int)&lt;br /&gt;
            changeimgvis(int, int)&lt;br /&gt;
            changeimgzoom(int, float)&lt;br /&gt;
            destroy()&lt;br /&gt;
            dontblock()&lt;br /&gt;
            dontblocklocal()&lt;br /&gt;
            drawaslight()&lt;br /&gt;
            drawoverplayer()&lt;br /&gt;
            drawunderplayer()&lt;br /&gt;
            findimg(int) - returns object&lt;br /&gt;
            hide()&lt;br /&gt;
            hideimg(int)&lt;br /&gt;
            hideimgs(int, int)&lt;br /&gt;
            hidelocal()&lt;br /&gt;
            hurt(int)&lt;br /&gt;
            lay(str)&lt;br /&gt;
            message(str)&lt;br /&gt;
            move(float, float, float, int)&lt;br /&gt;
            setbow(str)&lt;br /&gt;
            setcharani(str, str)&lt;br /&gt;
            setchargender(str)&lt;br /&gt;
            setcoloreffect(float, float, float, float)&lt;br /&gt;
            seteffectmode(int)&lt;br /&gt;
            setimg(str)&lt;br /&gt;
            setimgpart(str, int, int, int, int)&lt;br /&gt;
            setshape(int, int, int)&lt;br /&gt;
            setshape2(int, int, obj)&lt;br /&gt;
            setzoomeffect(float)&lt;br /&gt;
            shootarrow(int)&lt;br /&gt;
            shootball()&lt;br /&gt;
            shootfireball(int)&lt;br /&gt;
            shootfireblast(int)&lt;br /&gt;
            shootnuke(int)&lt;br /&gt;
            show()&lt;br /&gt;
            showani(int, float, float, int, str)&lt;br /&gt;
            showani2(int, float, float, float, int, str)&lt;br /&gt;
            showcharacter()&lt;br /&gt;
            showimg(int, str, float, float)&lt;br /&gt;
            showimg2(int, str, float, float, float)&lt;br /&gt;
            showlocal()&lt;br /&gt;
            showpoly(int, obj)&lt;br /&gt;
            showpoly2(int, obj)&lt;br /&gt;
            showtext(int, float, float, str, str, str)&lt;br /&gt;
            showtext2(int, float, float, float, str, str, str)&lt;br /&gt;
            take(str)&lt;br /&gt;
            take2(int)&lt;br /&gt;
            takehorse(int)&lt;br /&gt;
            throwcarry()&lt;br /&gt;
            timereverywhere()&lt;br /&gt;
            toweapons(str)&lt;br /&gt;
&lt;br /&gt;
            TServerWeapon (TServerNPC):&lt;br /&gt;
              isweapon - boolean (read only)&lt;br /&gt;
&lt;br /&gt;
      TServerBomb (TLevelObject):&lt;br /&gt;
        power - integer&lt;br /&gt;
        time - float&lt;br /&gt;
&lt;br /&gt;
      TServerCarry (TLevelObject):&lt;br /&gt;
&lt;br /&gt;
      TServerChest (TLevelObject):&lt;br /&gt;
        isopen - boolean (read only)&lt;br /&gt;
        item - string (read only)&lt;br /&gt;
&lt;br /&gt;
      TServerExtra (TLevelObject):&lt;br /&gt;
        time - float (read only)&lt;br /&gt;
        type - integer (read only)&lt;br /&gt;
&lt;br /&gt;
      TServerFlying (TLevelObject):&lt;br /&gt;
        dir - integer (read only)&lt;br /&gt;
        dx - float&lt;br /&gt;
        dy - float&lt;br /&gt;
        from - integer (read only)&lt;br /&gt;
        type - integer (read only)&lt;br /&gt;
&lt;br /&gt;
      TServerLeap (TLevelObject):&lt;br /&gt;
&lt;br /&gt;
      TServerSign (TLevelObject):&lt;br /&gt;
        text - string&lt;br /&gt;
&lt;br /&gt;
      TShowImg (TLevelObject):&lt;br /&gt;
        actor - object (read only)&lt;br /&gt;
        alpha - float&lt;br /&gt;
        ani - string&lt;br /&gt;
        blue - float&lt;br /&gt;
        code - string - the old representation as 'font@style@text'&lt;br /&gt;
        dimension - integer&lt;br /&gt;
        dir - integer&lt;br /&gt;
        eulerrotation - string&lt;br /&gt;
        font - string&lt;br /&gt;
        green - float&lt;br /&gt;
        height - float&lt;br /&gt;
        image - string&lt;br /&gt;
        imageindex - integer (read only)&lt;br /&gt;
        layer - integer&lt;br /&gt;
        mode - integer - the image drawing mode (0 - add, 1 - transparent, 2 - subtract)&lt;br /&gt;
        mounts - object (read only)&lt;br /&gt;
        parth - integer&lt;br /&gt;
        partw - integer&lt;br /&gt;
        partx - integer&lt;br /&gt;
        party - integer&lt;br /&gt;
        playerlook - boolean - if the animation should take it's head, body, sword, shield and attr[] from the owner (playerlook), set this to false if you want to set the images yourself by changing showimg.actor.head etc.&lt;br /&gt;
        polygon - object&lt;br /&gt;
        red - float&lt;br /&gt;
        shape - string&lt;br /&gt;
        style - string&lt;br /&gt;
        text - string&lt;br /&gt;
        width - float&lt;br /&gt;
        x - float&lt;br /&gt;
        y - float&lt;br /&gt;
        zoom - float&lt;br /&gt;
        setshapeanimation(str, float, bool) - returns boolean&lt;br /&gt;
&lt;br /&gt;
    TSurfaceOwner (TDrawableObject):&lt;br /&gt;
      height - integer (read only)&lt;br /&gt;
      width - integer (read only)&lt;br /&gt;
&lt;br /&gt;
      TBaddy (TSurfaceOwner):&lt;br /&gt;
        dir - integer&lt;br /&gt;
        headdir - integer&lt;br /&gt;
        mode - integer&lt;br /&gt;
        power - integer&lt;br /&gt;
        type - integer&lt;br /&gt;
        x - float&lt;br /&gt;
        y - float&lt;br /&gt;
&lt;br /&gt;
  TDrawingPanel (TGraalVar):&lt;br /&gt;
    height - integer (read only)&lt;br /&gt;
    locked - boolean&lt;br /&gt;
    parth - integer (read only)&lt;br /&gt;
    partw - integer (read only)&lt;br /&gt;
    partx - integer (read only)&lt;br /&gt;
    party - integer (read only)&lt;br /&gt;
    width - integer (read only)&lt;br /&gt;
    clearall()&lt;br /&gt;
    clearrectangle(int, int, int, int)&lt;br /&gt;
    drawimage(int, int, str)&lt;br /&gt;
    drawimagerectangle(int, int, str, int, int, int, int)&lt;br /&gt;
    drawimagestretched(int, int, int, int, str, int, int, int, int)&lt;br /&gt;
    lock()&lt;br /&gt;
    unlock()&lt;br /&gt;
&lt;br /&gt;
  TGaniParam (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
  TGraalAni (TGraalVar):&lt;br /&gt;
    continuous - boolean&lt;br /&gt;
    ganitype - string (read only)&lt;br /&gt;
    loop - boolean&lt;br /&gt;
    movie - boolean&lt;br /&gt;
    setbackto - string&lt;br /&gt;
    singledirection - boolean&lt;br /&gt;
    addsprite(int) - returns object&lt;br /&gt;
    addstep() - returns object&lt;br /&gt;
    deletesprite(int)&lt;br /&gt;
    deletestep(int)&lt;br /&gt;
    getsprite(int) - returns object&lt;br /&gt;
    insertstep(int) - returns object&lt;br /&gt;
&lt;br /&gt;
  TGraalAniPart (TGraalVar):&lt;br /&gt;
    attr - integer&lt;br /&gt;
    dx - integer&lt;br /&gt;
    dy - integer&lt;br /&gt;
    param - integer&lt;br /&gt;
    sprite - object&lt;br /&gt;
&lt;br /&gt;
  TGraalAniSound (TGraalVar):&lt;br /&gt;
    delay - float&lt;br /&gt;
    dx - float&lt;br /&gt;
    dy - float&lt;br /&gt;
    sound - string&lt;br /&gt;
&lt;br /&gt;
  TGraalAniSprite (TGraalVar):&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    description - string&lt;br /&gt;
    green - float&lt;br /&gt;
    height - integer&lt;br /&gt;
    image - string&lt;br /&gt;
    imagetype - string (read only)&lt;br /&gt;
    mode - integer&lt;br /&gt;
    red - float&lt;br /&gt;
    spriteindex - integer&lt;br /&gt;
    surface - object (read only)&lt;br /&gt;
    width - integer&lt;br /&gt;
    x - integer&lt;br /&gt;
    y - integer&lt;br /&gt;
    zoom - float&lt;br /&gt;
    addattachment() - returns object&lt;br /&gt;
    deleteattachment(int)&lt;br /&gt;
    insertattachment(int) - returns object&lt;br /&gt;
&lt;br /&gt;
  TGraalAniStep (TGraalVar):&lt;br /&gt;
    delay - float&lt;br /&gt;
    addpos(int) - returns object&lt;br /&gt;
    deletepos(int, int)&lt;br /&gt;
    insertpos(int, int) - returns object&lt;br /&gt;
&lt;br /&gt;
  TGraalSpriteAttachment (TGraalVar):&lt;br /&gt;
    behind - boolean&lt;br /&gt;
    dx - integer&lt;br /&gt;
    dy - integer&lt;br /&gt;
    sprite - object&lt;br /&gt;
&lt;br /&gt;
  TServerLevel (TGraalVar):&lt;br /&gt;
    compsdead - boolean (read only)&lt;br /&gt;
    isnopkzone - boolean (read only)&lt;br /&gt;
    issparringzone - boolean (read only)&lt;br /&gt;
    hitcompu(int, int, float, float)&lt;br /&gt;
    putbomb(int, float, float)&lt;br /&gt;
    putcomp(str, float, float)&lt;br /&gt;
    putexplosion(int, float, float)&lt;br /&gt;
    putexplosion2(int, int, float, float)&lt;br /&gt;
    puthorse(str, float, float)&lt;br /&gt;
    putnewcomp(str, float, float, str, int)&lt;br /&gt;
    putnpc(str, str, float, float)&lt;br /&gt;
    reflectarrow(int)&lt;br /&gt;
    removearrow(int)&lt;br /&gt;
    removebomb(int)&lt;br /&gt;
    removecompus()&lt;br /&gt;
    removeexplo(int)&lt;br /&gt;
    removehorse(int)&lt;br /&gt;
    removeitem(int)&lt;br /&gt;
    setz(int, int, int, int, float, float, float, float)&lt;br /&gt;
    shoot(float, float, float, float, float, float, str, str)&lt;br /&gt;
    testbomb(float, float) - returns integer&lt;br /&gt;
    testexplo(float, float) - returns integer&lt;br /&gt;
    testhorse(float, float) - returns integer&lt;br /&gt;
    testitem(float, float) - returns integer&lt;br /&gt;
    testnpc(float, float) - returns integer&lt;br /&gt;
    testsign(float, float) - returns integer&lt;br /&gt;
&lt;br /&gt;
  TServerLevelLink (TGraalVar):&lt;br /&gt;
    destx - float (read only)&lt;br /&gt;
    desty - float (read only)&lt;br /&gt;
    height - float (read only)&lt;br /&gt;
    width - float (read only)&lt;br /&gt;
    x - float (read only)&lt;br /&gt;
    y - float (read only)&lt;br /&gt;
&lt;br /&gt;
  TShowImgMount (TGraalVar):&lt;br /&gt;
    node - integer&lt;br /&gt;
    shape - string&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=Creation/Dev/GScript&amp;diff=1666</id>
		<title>Creation/Dev/GScript</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=Creation/Dev/GScript&amp;diff=1666"/>
		<updated>2005-03-02T00:37:17Z</updated>

		<summary type="html">&lt;p&gt;Evil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''GScript''' is [[Graal]]'s scripting language.&lt;br /&gt;
&lt;br /&gt;
Its syntax and some of its semantics might seem familiar to those who program in [[WikiPedia:C (Programming Language) | C]] or derived languages, although it lacks some of the expressivity of a real programming language and has special constructs that make programming [[Graal]] [[NPC]]s easier.&lt;br /&gt;
&lt;br /&gt;
GScript started as a very limited language and has since kept up with improvements to the game engine and can now be used for pretty sophisticated scripts that greatly customise the gaming experience.&lt;br /&gt;
&lt;br /&gt;
It is used, with minor differences, for [[Clientside]] tasks like [[GUI | GUI programming]], special effects with nifty 3d lighting and custom [[NPC Weapons]] or &amp;amp;quot;engines&amp;amp;quot;, and [[Serverside]] systems like player housing, complex baddies or pets.&lt;br /&gt;
&lt;br /&gt;
[[Old GScript]] has been replaced by a new version (dubbed GScript2 during development) that is rather advanced, in some way object oriented, and thanks to influence from [[Torque]]'s scripting language, less brain-damaged in some aspects. No offense.&lt;br /&gt;
&lt;br /&gt;
GScript can be discussed in the [[GScript IRC channel]].&lt;br /&gt;
&lt;br /&gt;
[[Script Functions: Client]]&lt;br /&gt;
&lt;br /&gt;
[[Script Functions: NPC Server]]&lt;br /&gt;
&lt;br /&gt;
[[Script Functions: Graal 3D]]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Why scripts ===&lt;br /&gt;
&lt;br /&gt;
Scripts bring life into objects and make it easy to &lt;br /&gt;
customize the game. Instead of just placing a stone&lt;br /&gt;
into your world, you can make it so that the stone&lt;br /&gt;
can be lifted or kicked. Instead of being limited to&lt;br /&gt;
some fixed player movement you can rescript it&lt;br /&gt;
to let the player jump, strafe and duck. To let the &lt;br /&gt;
player inspect and organize his/her items you can&lt;br /&gt;
create some dialogs and display those by script,&lt;br /&gt;
e.g. when the player presses a special key.&lt;br /&gt;
&lt;br /&gt;
In Graal the scripting is done in 'Graal Script',&lt;br /&gt;
it's looking like Java/C++, but brings some &lt;br /&gt;
additional features for making things easier&lt;br /&gt;
for game creators, while on the other hand&lt;br /&gt;
running in a sandbox and limiting access to&lt;br /&gt;
game-related stuff only.&lt;br /&gt;
&lt;br /&gt;
Graal Script is almost fully compatible to &lt;br /&gt;
the 'old' Graal script used in Graal v1.0 - 3.0,&lt;br /&gt;
and is partially compatible to Torque script. &lt;br /&gt;
&lt;br /&gt;
=== NPCs and 'weapons' ===&lt;br /&gt;
&lt;br /&gt;
There are generally two types of objects in Graal&lt;br /&gt;
which have scripts: The first type are the &lt;br /&gt;
non-player-characters (NPCs). The name 'NPC' is&lt;br /&gt;
actually used for all visible objects in the game: &lt;br /&gt;
monsters, stones, bushes, houses, ships, plants etc.&lt;br /&gt;
Scripts for npcs are most of the time containing&lt;br /&gt;
code for moving the npc or for reacting to &lt;br /&gt;
activities of the player, e.g. giving money to&lt;br /&gt;
the player when he grabs the npc.&lt;br /&gt;
The other type of script-holding objects are the&lt;br /&gt;
'weapons'. Those are items in the inventory of&lt;br /&gt;
the player, not necessary being weapons. Most of&lt;br /&gt;
the time they are actually just scripts which&lt;br /&gt;
control the movement of the player, display weapon&lt;br /&gt;
graphics, or display menus.&lt;br /&gt;
&lt;br /&gt;
So there are objects in the game which have &lt;br /&gt;
their own script, and players which have a set&lt;br /&gt;
of scripts in their invisible backpack.&lt;br /&gt;
&lt;br /&gt;
=== Server-side and client-side ===&lt;br /&gt;
&lt;br /&gt;
Graal is an online game, and there are differences&lt;br /&gt;
to standard scripting in offline games.&lt;br /&gt;
In offline programs you have access to everything,&lt;br /&gt;
anytime. In online games everything is divided&lt;br /&gt;
into two parts: the server-side which controls&lt;br /&gt;
most things in the game, and the client-side which&lt;br /&gt;
displays the game to the player.&lt;br /&gt;
Since the client only displays things, it is not&lt;br /&gt;
possible to cheat by hacking the client. On client-side&lt;br /&gt;
you mainly have code for displaying special effects,&lt;br /&gt;
for displaying the GUI (windows, status bars, item menus),&lt;br /&gt;
playing sound effects and music. Also the player &lt;br /&gt;
movement is done on client-side.&lt;br /&gt;
On the server-side scripts are used to do the more&lt;br /&gt;
secure parts of the game engine are implemented,&lt;br /&gt;
and things that are the same for all players -&lt;br /&gt;
npcs are added, moved, npcs interact with players,&lt;br /&gt;
the stats of the players are calculated, the&lt;br /&gt;
communication between players is handled.&lt;br /&gt;
&lt;br /&gt;
All scripts for npcs and weapons can contain&lt;br /&gt;
server-side code and client-side code. The server-side&lt;br /&gt;
code is executed directly on the server, the&lt;br /&gt;
client-side code is sent to the client when he&lt;br /&gt;
logins and executed separately for each player on&lt;br /&gt;
their own computer. Usually the two parts of the script&lt;br /&gt;
are divided by line that only contains &amp;quot;//#CLIENTSIDE&amp;quot;,&lt;br /&gt;
like this:&lt;br /&gt;
&lt;br /&gt;
// Server-side part which is setting the image&lt;br /&gt;
// of the npc when it is created&lt;br /&gt;
function onCreated() {&lt;br /&gt;
  setimg(&amp;quot;door.png&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//#CLIENTSIDE&lt;br /&gt;
&lt;br /&gt;
// Here follows the client-side part,&lt;br /&gt;
// which plays a sound effect when the player&lt;br /&gt;
// touchs the npc&lt;br /&gt;
function onPlayerTouchsme() {&lt;br /&gt;
  play(&amp;quot;chest.wav&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Events ===&lt;br /&gt;
&lt;br /&gt;
In general scripts are made for reacting to &lt;br /&gt;
events - when the npc is created then the script&lt;br /&gt;
initializes the attributes of the npc,&lt;br /&gt;
when the player says something then the npc is&lt;br /&gt;
moving to the player, when the player grabs the&lt;br /&gt;
npc then the npc is giving the player some money etc.&lt;br /&gt;
So the script is basicly a collection of actions&lt;br /&gt;
that are done when special events are happening.&lt;br /&gt;
Events can e.g. be the &amp;quot;created&amp;quot; event when the npc&lt;br /&gt;
is created, the &amp;quot;playertouchsme&amp;quot; event when the &lt;br /&gt;
player touchs the npc, or the &amp;quot;playerchats&amp;quot; event&lt;br /&gt;
when the player says something. To write code reacts&lt;br /&gt;
to one of those event, you define an event&lt;br /&gt;
function like this:&lt;br /&gt;
&lt;br /&gt;
function onEVENTNAME() {&lt;br /&gt;
  // actions&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
When the event is happening, then Graal executes&lt;br /&gt;
that scripting function and all commands you &lt;br /&gt;
have added there.&lt;br /&gt;
Sometimes the event gives some parameters to the &lt;br /&gt;
event function, then change your function to:&lt;br /&gt;
&lt;br /&gt;
function onEVENTNAME(parameter1, paramater2, ...) {&lt;br /&gt;
  // actions&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
By accessing 'parameter1' etc. (you can name&lt;br /&gt;
them differently) you can react to the event more&lt;br /&gt;
exactly. &lt;br /&gt;
&lt;br /&gt;
Instead of reacting to events, the npcs and&lt;br /&gt;
weapons can also invoke new events. That way &lt;br /&gt;
you can let other npcs doing things. You also&lt;br /&gt;
need that if you want to coninuously doing things -&lt;br /&gt;
use timeout event for that.&lt;br /&gt;
&lt;br /&gt;
function onCreated() {&lt;br /&gt;
  timeout = 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function onTimeout() {&lt;br /&gt;
  // actions&lt;br /&gt;
  timeout = 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
In the onCreated event function the script is&lt;br /&gt;
setting the timer to 1 second. When that second is&lt;br /&gt;
over, then the &amp;quot;timeout&amp;quot; event is invoked on the&lt;br /&gt;
npc and the onTimeout event function is executed.&lt;br /&gt;
Because it is setting the timeout to 1 second&lt;br /&gt;
again, the onTimeout even will occur again after&lt;br /&gt;
one second, and so on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compatibility note:&lt;br /&gt;
In older Graal scripts you will also find the&lt;br /&gt;
deprecated way of receiving events:&lt;br /&gt;
&lt;br /&gt;
if (EVENTNAME) {&lt;br /&gt;
  // actions&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
That is an if-command outside of any brackets. If&lt;br /&gt;
Graal sees that you use such an if-command, then&lt;br /&gt;
it will execute the whole script so that the actions&lt;br /&gt;
you have written inside the if-command will be&lt;br /&gt;
executed too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
&lt;br /&gt;
=== Accessing variables ===&lt;br /&gt;
&lt;br /&gt;
Graal Script variables are 'variant', that means they are objects&lt;br /&gt;
that hold values of different types.&lt;br /&gt;
When you assign a value to the variable then it automatically&lt;br /&gt;
switches to the right type:&lt;br /&gt;
&lt;br /&gt;
Numeric (floating point):&lt;br /&gt;
  var = 1;&lt;br /&gt;
String:&lt;br /&gt;
  var = &amp;quot;hello&amp;quot;;&lt;br /&gt;
Object link:&lt;br /&gt;
  var = player;&lt;br /&gt;
Array (list of objects):&lt;br /&gt;
  var = {1,2,3};&lt;br /&gt;
&lt;br /&gt;
You can check the current type with the&lt;br /&gt;
type()-function - obj.type() returns&lt;br /&gt;
0,1,2,3 for numeric, string, object or array.&lt;br /&gt;
&lt;br /&gt;
=== Operators ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Addition                  a + b&lt;br /&gt;
Substraction              a - b&lt;br /&gt;
Mulitplication            a * b&lt;br /&gt;
Division                  a / b&lt;br /&gt;
Modulus                   a % b&lt;br /&gt;
Power                     a ^ b&lt;br /&gt;
String Concationation     a @ b&lt;br /&gt;
Bool-And                  a &amp;amp;&amp;amp; b&lt;br /&gt;
Bool-Or                   a || b&lt;br /&gt;
Bool-Not                  !a&lt;br /&gt;
Negative                  -a&lt;br /&gt;
Equal                     a == b&lt;br /&gt;
Not-Equal                 a != b&lt;br /&gt;
Less                      a &amp;lt; b&lt;br /&gt;
Greater                   a &amp;gt; b&lt;br /&gt;
Less-Equal                a &amp;lt;= b,  a =&amp;lt; b&lt;br /&gt;
Greater-Equal             a &amp;gt;= b,  a =&amp;gt; b&lt;br /&gt;
In-Range                  a in &amp;lt;b,c&amp;gt;, a in |b,c&amp;gt;, a in &amp;lt;b,c|, a in |b,c|&lt;br /&gt;
In-Array                  a in {b,c,...}, {a,b,...} in {c,d,...}&lt;br /&gt;
Bitwise-Or                a | b&lt;br /&gt;
Bitwise-And               a &amp;amp; b&lt;br /&gt;
Bitwise-Shift left        a &amp;lt;&amp;lt; b&lt;br /&gt;
Bitwise-Shift right       a &amp;gt;&amp;gt; b&lt;br /&gt;
Bitwise-Invert            ~a&lt;br /&gt;
Bitwise-Xor               a xor b (operator ^ already used for power)&lt;br /&gt;
Array-Constructor         {a,b,...}&lt;br /&gt;
Empty Array               new [count]&lt;br /&gt;
Array Member              a[index]&lt;br /&gt;
Function call             a(), a(b,c,...)&lt;br /&gt;
Object Attribute          a.b, a.(b)&lt;br /&gt;
Post Increment            a++&lt;br /&gt;
Post Decrement            a--&lt;br /&gt;
Pre Increment             ++a&lt;br /&gt;
Pre Decrement             --a&lt;br /&gt;
Old String Function       #a&lt;br /&gt;
Conditional               a? b : c&lt;br /&gt;
Assignment                a = b, a := b&lt;br /&gt;
Additive Assignment       a += b&lt;br /&gt;
Substractive Assignment   a -= b&lt;br /&gt;
Multiplicative Assignment a *= b&lt;br /&gt;
Division Assignment       a /= b&lt;br /&gt;
Modulus Assignment        a %= b&lt;br /&gt;
Power Assignment          a ^= b&lt;br /&gt;
Bitwise-Or Assignment     a |= b&lt;br /&gt;
Bitwise-And Assignment    a &amp;amp;= b&lt;br /&gt;
Shift Left Assignment     a &amp;lt;&amp;lt;= b&lt;br /&gt;
Shift Right Assignment    a &amp;gt;&amp;gt;= b&lt;br /&gt;
String Append             a @= b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Standard object functions ===&lt;br /&gt;
&lt;br /&gt;
For a complete list of functions and attributes of objects&lt;br /&gt;
see docu_graalscriptfunctions.txt. The base type of all&lt;br /&gt;
objects is &amp;quot;TGraalVar&amp;quot;. You can also get the latest list by&lt;br /&gt;
calling the executale with &amp;quot;-listscriptfunctions&amp;quot; as &lt;br /&gt;
command-line parameter. &lt;br /&gt;
Here only of the built-in functions:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
obj.type()  - gets the type of the var (float 0, string 1, object 2, array 3)&lt;br /&gt;
obj.length() - string length&lt;br /&gt;
obj.trim()&lt;br /&gt;
obj.tokenize([delimiters])&lt;br /&gt;
obj.charat(pos)&lt;br /&gt;
obj.pos(substring)&lt;br /&gt;
obj.starts(string)&lt;br /&gt;
obj.ends(string)&lt;br /&gt;
obj.substring(index[,length])&lt;br /&gt;
obj.size() - array length&lt;br /&gt;
obj.subarray(index[,length])&lt;br /&gt;
obj.addarray(obj2)&lt;br /&gt;
obj.insertarray(index,obj2)&lt;br /&gt;
obj.index(obj2) - position of obj2 in the array&lt;br /&gt;
obj.clear()&lt;br /&gt;
obj.add(obj2)&lt;br /&gt;
obj.delete(index)&lt;br /&gt;
obj.remove(obj2)&lt;br /&gt;
obj.replace(index,obj2)&lt;br /&gt;
obj.insert(index,obj2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Standard functions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
format(format,parameters,...) - formats a &amp;quot;%s %d&amp;quot; string, inserts the parameters, and returns a string&lt;br /&gt;
int(a)&lt;br /&gt;
abs(a)&lt;br /&gt;
random(rangestart,rangeend)&lt;br /&gt;
sin(a)&lt;br /&gt;
cos(a)&lt;br /&gt;
arctan(a)&lt;br /&gt;
exp(a)&lt;br /&gt;
log(base,a)&lt;br /&gt;
min(a,b)&lt;br /&gt;
max(a,b)&lt;br /&gt;
getangle(delta x,delta y)&lt;br /&gt;
getdir(delta x,delta y)&lt;br /&gt;
vecx(direction)&lt;br /&gt;
vecy(direction)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
=== Gui controls ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
onAdd() when added to the parent&lt;br /&gt;
onRemove() when removed from the parent&lt;br /&gt;
onWake() when activated&lt;br /&gt;
onSleep() when deactivated&lt;br /&gt;
onResize(w,h)&lt;br /&gt;
onMove(x,y)&lt;br /&gt;
onMouseEnter(modifier,x,y,clickcount)&lt;br /&gt;
onMouseLeave(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseMove(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelDown(modifier,x,y,clickcount)&lt;br /&gt;
onKeyDown(keycode,string)&lt;br /&gt;
onKeyUp(keycode,string)&lt;br /&gt;
onKeyRepeat(keycode,string)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== GuiMLTextCtrl: ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
onReflow(w,h) when the text has changed&lt;br /&gt;
onURL(url) when clicked on url&lt;br /&gt;
onSelectTag(tagid) when clicked on an image&lt;br /&gt;
&lt;br /&gt;
Text-Tags:&lt;br /&gt;
The text of multi-line text controls can contain&lt;br /&gt;
a few HTML-tags and Torque-tags, you can use both&lt;br /&gt;
of those tag types to define colors and fonts&lt;br /&gt;
or to include images. Currently following tags&lt;br /&gt;
are available:&lt;br /&gt;
&lt;br /&gt;
HTML:&lt;br /&gt;
&amp;lt;a href=url&amp;gt; text &amp;lt;/a&amp;gt; - when the user clicks on 'text' then &lt;br /&gt;
  a web browser is opened for the specified url&lt;br /&gt;
&amp;lt;br&amp;gt; - line break&lt;br /&gt;
&amp;lt;font face=fontname size=textsize color=colorname or #rrggbb&amp;gt; text &amp;lt;/font&amp;gt;&lt;br /&gt;
  - draws text with a special font, size and color; you only&lt;br /&gt;
  need to define one of those 3 attributes&lt;br /&gt;
&amp;lt;ignorelinebreaks&amp;gt; &amp;lt;/ignorelinebreaks&amp;gt; - go into normal HTML mode where&lt;br /&gt;
  you need to insert &amp;lt;br&amp;gt; to do a linebreak&lt;br /&gt;
&amp;lt;img src=filename id=integer&amp;gt; - an image is displayed, you &lt;br /&gt;
  can also specify a tagid if you want to get onSelectTag-events&lt;br /&gt;
  for this image&lt;br /&gt;
&amp;lt;p align=left/center/right&amp;gt; - sets the align of the following text&lt;br /&gt;
&amp;lt;span style=&amp;quot;width=100; height=100;&amp;quot; id=integer&amp;gt; &amp;lt;/span&amp;gt; - for &lt;br /&gt;
  displaying a subpage, you can also specifiy an id for &lt;br /&gt;
  onSelectTag-events; instead of &amp;lt;span&amp;gt; you can also use &amp;lt;div&amp;gt; tags&lt;br /&gt;
&lt;br /&gt;
Torque:&lt;br /&gt;
&amp;lt;a:url&amp;gt; text &amp;lt;/a&amp;gt; - when the user clicks on 'text' then &lt;br /&gt;
  a web browser is opened for the specified url&lt;br /&gt;
&amp;lt;bitmap:filename&amp;gt; - an image is displayed&lt;br /&gt;
&amp;lt;color:rrggbb&amp;gt; - sets the color of the text (hexadecimal value)&lt;br /&gt;
&amp;lt;lmargin:pixels&amp;gt; - sets the left margin for the text&lt;br /&gt;
&amp;lt;lmargin%:percent&amp;gt; - sets the size of the left margin depending &lt;br /&gt;
  on the width of the whole control&lt;br /&gt;
&amp;lt;linkcolor:rrggbb&amp;gt; - sets the color of links (the &amp;lt;a&amp;gt;-tag)&lt;br /&gt;
&amp;lt;linkcolorhl:rrggbb&amp;gt; - sets the highlighted color, when&lt;br /&gt;
  the user moves the mouse over a link&lt;br /&gt;
&amp;lt;just:left/center/right&amp;gt; - sets the align of the following text&lt;br /&gt;
&amp;lt;rmargin:pixels&amp;gt; - sets the right margin for the text&lt;br /&gt;
&amp;lt;rmargin%:percent&amp;gt; - sets the size of the right margin depending &lt;br /&gt;
  on the width of the whole control&lt;br /&gt;
&amp;lt;sbreak&amp;gt; - line break&lt;br /&gt;
&amp;lt;spush&amp;gt; - switches to a new style (like &amp;lt;font&amp;gt;)&lt;br /&gt;
&amp;lt;spop&amp;gt; - switches back to the last saved style (like &amp;lt;/font&amp;gt;)&lt;br /&gt;
&amp;lt;tab:tab1,tab2,..&amp;gt; - sets the position of where tabulators should&lt;br /&gt;
  be displayed if you have text like 'Apple \t Egg \t Chicken'&lt;br /&gt;
&amp;lt;tag:id&amp;gt; - inserts an invisible tag which can be used&lt;br /&gt;
  for the scrollToTag(id) function (beside image-tags)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== GuiTextEditCtrl: ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
onTabComplete()&lt;br /&gt;
onAction(text) when return key pressed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== GuiTextListCtrl: ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
onSelect(id,text) when row selected&lt;br /&gt;
onDblClick(id) when double-click on row or return key pressed&lt;br /&gt;
onDeleteKey(id) when delete key pressed&lt;br /&gt;
onIconResized(w,h) when setIconSize() called&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== GuiPopUpMenuCtrl: ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
onSelect(id,text) when menu option choosen&lt;br /&gt;
onCancel() when menu is closed without action&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== GuiMenuBar: ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
onMenuSelect(menuid,menutext)&lt;br /&gt;
onMenuItemSelect(menuid,menutext,itemid,itemtext)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== GuiTreeViewCtrl: ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
onSelect(id,rightmouse) when row selected&lt;br /&gt;
onUnselect(id) when row de-selected&lt;br /&gt;
onInspect(id) when clicked on the name of an item&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
onContextMenu(&amp;quot;x y&amp;quot;,id) when clicked with right-mouse key on row&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Old script compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Removed functionality ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- toinventory&lt;br /&gt;
- followplayer&lt;br /&gt;
- playersays()&lt;br /&gt;
- setbackpal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Supported old scripting commands &amp;amp; their mapping to new script ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
addstring oldstring, oldstring;&lt;br /&gt;
                                addstring(string,string);&lt;br /&gt;
addtiledef oldstring, oldstring, float;&lt;br /&gt;
                                addtiledef(string,string,float);&lt;br /&gt;
addtiledef2 oldstring, oldstring, float, float;&lt;br /&gt;
                                addtiledef2(string,string,float,float);&lt;br /&gt;
attachplayertoobj float, float;&lt;br /&gt;
                                attachplayertoobj(float,float);&lt;br /&gt;
blockagain;&lt;br /&gt;
                                blockagain();&lt;br /&gt;
blockagainlocal;&lt;br /&gt;
                                blockagainlocal();&lt;br /&gt;
callnpc float, oldstring;&lt;br /&gt;
                                callnpc(float,string);&lt;br /&gt;
callweapon float, oldstring;&lt;br /&gt;
                                callweapon(float,string);&lt;br /&gt;
canbecarried;&lt;br /&gt;
                                canbecarried();&lt;br /&gt;
canbepulled;&lt;br /&gt;
                                canbepulled();&lt;br /&gt;
canbepushed;&lt;br /&gt;
                                canbepushed();&lt;br /&gt;
cannotbecarried;&lt;br /&gt;
                                cannotbecarried();&lt;br /&gt;
cannotbepulled;&lt;br /&gt;
                                cannotbepulled();&lt;br /&gt;
cannotbepushed;&lt;br /&gt;
                                cannotbepushed();&lt;br /&gt;
canwarp;&lt;br /&gt;
                                canwarp();&lt;br /&gt;
canwarp2;&lt;br /&gt;
                                canwarp2();&lt;br /&gt;
carryobject oldstring;&lt;br /&gt;
                                carryobject(string);&lt;br /&gt;
changeimgcolors float, float, float, float, float;&lt;br /&gt;
                                changeimgcolors(float,float,float,float,float);&lt;br /&gt;
changeimgmode float, float;&lt;br /&gt;
                                changeimgmode(float,float);&lt;br /&gt;
changeimgpart float, float, float, float, float;&lt;br /&gt;
                                changeimgpart(float,float,float,float,float);&lt;br /&gt;
changeimgvis float, float;&lt;br /&gt;
                                changeimgvis(float,float);&lt;br /&gt;
changeimgzoom float, float;&lt;br /&gt;
                                changeimgzoom(float,float);&lt;br /&gt;
deletestring oldstring, float;&lt;br /&gt;
                                deletestring(string,float);&lt;br /&gt;
destroy;&lt;br /&gt;
                                destroy();&lt;br /&gt;
detachplayer;&lt;br /&gt;
                                detachplayer();&lt;br /&gt;
disabledefmovement;&lt;br /&gt;
                                disabledefmovement();&lt;br /&gt;
disablemap;&lt;br /&gt;
                                disablemap();&lt;br /&gt;
disablepause;&lt;br /&gt;
                                disablepause();&lt;br /&gt;
disableselectweapons;&lt;br /&gt;
                                disableselectweapons();&lt;br /&gt;
disableweapons;&lt;br /&gt;
                                disableweapons();&lt;br /&gt;
dontblock;&lt;br /&gt;
                                dontblock();&lt;br /&gt;
dontblocklocal;&lt;br /&gt;
                                dontblocklocal();&lt;br /&gt;
drawaslight;&lt;br /&gt;
                                drawaslight();&lt;br /&gt;
drawoverplayer;&lt;br /&gt;
                                drawoverplayer();&lt;br /&gt;
drawunderplayer;&lt;br /&gt;
                                drawunderplayer();&lt;br /&gt;
enabledefmovement;&lt;br /&gt;
                                enabledefmovement();&lt;br /&gt;
enablefeatures float;&lt;br /&gt;
                                enablefeatures(float);&lt;br /&gt;
enablemap;&lt;br /&gt;
                                enablemap();&lt;br /&gt;
enablepause;&lt;br /&gt;
                                enablepause();&lt;br /&gt;
enableselectweapons;&lt;br /&gt;
                                enableselectweapons();&lt;br /&gt;
enableweapons;&lt;br /&gt;
                                enableweapons();&lt;br /&gt;
explodebomb float;&lt;br /&gt;
                                explodebomb(float);&lt;br /&gt;
followplayer;&lt;br /&gt;
                                followplayer();&lt;br /&gt;
freezeplayer float;&lt;br /&gt;
                                freezeplayer(float);&lt;br /&gt;
freezeplayer2;&lt;br /&gt;
                                freezeplayer2();&lt;br /&gt;
hide;&lt;br /&gt;
                                hide();&lt;br /&gt;
hideimg float;&lt;br /&gt;
                                hideimg(float);&lt;br /&gt;
hideimgs float, float;&lt;br /&gt;
                                hideimgs(float,float);&lt;br /&gt;
hidelocal;&lt;br /&gt;
                                hidelocal();&lt;br /&gt;
&lt;br /&gt;
hitcompu float, float, float, float;&lt;br /&gt;
                                hitcompu(float,float,float,float);&lt;br /&gt;
hitnpc float, float, float, float;&lt;br /&gt;
                                hitnpc(float,float,float,float);&lt;br /&gt;
hitobjects float, float, float;&lt;br /&gt;
                                hitobjects(float,float,float);&lt;br /&gt;
hideplayer float;&lt;br /&gt;
                                hideplayer(float);&lt;br /&gt;
hidesword float;&lt;br /&gt;
                                hidesword(float);&lt;br /&gt;
hitplayer float, float, float, float;&lt;br /&gt;
                                hitplayer(float,float,float,float);&lt;br /&gt;
hurt float;&lt;br /&gt;
                                hurt(float);&lt;br /&gt;
insertstring oldstring, float, oldstring;&lt;br /&gt;
                                insertstring(string,float,string);&lt;br /&gt;
join oldstring;&lt;br /&gt;
                                join(string);&lt;br /&gt;
lay oldstring;&lt;br /&gt;
                                lay(string);&lt;br /&gt;
lay2 oldstring, float, float;&lt;br /&gt;
                                lay2(string,float,float);&lt;br /&gt;
loadmap oldstring;&lt;br /&gt;
                                loadmap(string);&lt;br /&gt;
message oldstring;&lt;br /&gt;
                                message(string);&lt;br /&gt;
move float, float, float, float;&lt;br /&gt;
                                move(float,float,float,float);&lt;br /&gt;
noplayerkilling;&lt;br /&gt;
                                noplayerkilling();&lt;br /&gt;
openurl oldstring;&lt;br /&gt;
                                openurl(string);&lt;br /&gt;
openurl2 oldstring, float, float;&lt;br /&gt;
                                openurl2(string,float,float);&lt;br /&gt;
play oldstring;&lt;br /&gt;
                                play(string);&lt;br /&gt;
play2 oldstring, float, float, float;&lt;br /&gt;
                                play2(string,float,float,float);&lt;br /&gt;
playlooped oldstring;&lt;br /&gt;
                                playlooped(string);&lt;br /&gt;
putbomb float, float, float;&lt;br /&gt;
                                putbomb(float,float,float);&lt;br /&gt;
putcomp oldstring, float, float;&lt;br /&gt;
                                putcomp(string,float,float);&lt;br /&gt;
putexplosion float, float, float;&lt;br /&gt;
                                putexplosion(float,float,float);&lt;br /&gt;
putexplosion2 float, float, float, float;&lt;br /&gt;
                                putexplosion2(float,float,float,float);&lt;br /&gt;
puthorse oldstring, float, float;&lt;br /&gt;
                                puthorse(string,float,float);&lt;br /&gt;
putleaps float, float, float;&lt;br /&gt;
                                putleaps(float,float,float);&lt;br /&gt;
putnewcomp oldstring, float, float, oldstring, float;&lt;br /&gt;
                                putnewcomp(string,float,float,string,float);&lt;br /&gt;
putnpc oldstring, oldstring, float, float;&lt;br /&gt;
                                putnpc(string,string,float,float);&lt;br /&gt;
putnpc2 float, float, oldstring;&lt;br /&gt;
                                putnpc2(float,float,string);&lt;br /&gt;
reflectarrow float;&lt;br /&gt;
                                reflectarrow(float);&lt;br /&gt;
removearrow float;&lt;br /&gt;
                                removearrow(float);&lt;br /&gt;
removebomb float;&lt;br /&gt;
                                removebomb(float);&lt;br /&gt;
removecompus;&lt;br /&gt;
                                removecompus();&lt;br /&gt;
removeexplo float;&lt;br /&gt;
                                removeexplo(float);&lt;br /&gt;
removehorse float;&lt;br /&gt;
                                removehorse(float);&lt;br /&gt;
rmeoveitem float;&lt;br /&gt;
                                removeitem(float)&lt;br /&gt;
removestring oldstring, oldstring;&lt;br /&gt;
                                removestring(string,string);&lt;br /&gt;
removetiledefs oldstring;&lt;br /&gt;
                                removetiledefs(string);&lt;br /&gt;
replaceani oldstring, oldstring;&lt;br /&gt;
                                replaceani(string,string);&lt;br /&gt;
replacestring oldstring, float, oldstring;&lt;br /&gt;
                                replacestring(string,float,string);&lt;br /&gt;
resetfocus;&lt;br /&gt;
                                resetfocus();&lt;br /&gt;
savelog oldstring;&lt;br /&gt;
                                savelog(string);&lt;br /&gt;
savelog2 oldstring, oldstring;&lt;br /&gt;
                                savelog2(string,string);&lt;br /&gt;
say float;&lt;br /&gt;
                                say(float);&lt;br /&gt;
say2 oldstring;&lt;br /&gt;
                                say2(string);&lt;br /&gt;
sendrpgmessage oldstring;&lt;br /&gt;
                                sendrpgmessage(string);&lt;br /&gt;
sendpm oldstring;&lt;br /&gt;
                                sendpm(string);&lt;br /&gt;
sendtonc oldstring;&lt;br /&gt;
                                sendtonc(string);&lt;br /&gt;
sendtorc oldstring;&lt;br /&gt;
                                sendtorc(string);&lt;br /&gt;
serverwarp oldstring;&lt;br /&gt;
                                serverwarp(string);&lt;br /&gt;
set oldstring;&lt;br /&gt;
                                set(string);&lt;br /&gt;
setani oldstring, oldstring;&lt;br /&gt;
                                setani(string,string);&lt;br /&gt;
setarray float, float;&lt;br /&gt;
                                setarray(var,float);&lt;br /&gt;
setbeltcolor oldstring;&lt;br /&gt;
                                setbeltcolor(string);&lt;br /&gt;
setbow oldstring;&lt;br /&gt;
                                setbow(string);&lt;br /&gt;
setcharani oldstring, oldstring;&lt;br /&gt;
                                setcharani(string,string);&lt;br /&gt;
setchargender oldstring;&lt;br /&gt;
                                setchargender(string);&lt;br /&gt;
setcharprop oldstring, oldstring;&lt;br /&gt;
                                string = string;&lt;br /&gt;
setcoatcolor oldstring;&lt;br /&gt;
                                setcoatcolor(string);&lt;br /&gt;
setcoloreffect float, float, float, float;&lt;br /&gt;
                                setcoloreffect(float,float,float,float);&lt;br /&gt;
setcursor float;&lt;br /&gt;
                                setcursor(float);&lt;br /&gt;
setcurcor2 oldstring;&lt;br /&gt;
                                setcursor2(string);&lt;br /&gt;
seteffect float, float, float, float;&lt;br /&gt;
                                seteffect(float,float,float,float);&lt;br /&gt;
seteffectmode float;&lt;br /&gt;
                                seteffectmode(float);&lt;br /&gt;
setfocus float, float;&lt;br /&gt;
                                setfocus(float,float);&lt;br /&gt;
setgender oldstring;&lt;br /&gt;
                                setgender(string);&lt;br /&gt;
sethead oldstring;&lt;br /&gt;
                                sethead(string);&lt;br /&gt;
setlevel oldstring;&lt;br /&gt;
                                setlevel(string);&lt;br /&gt;
setlevel2 oldstring, float, float;&lt;br /&gt;
                                setlevel2(string,float,float);&lt;br /&gt;
setmap oldstring, oldstring, float, float;&lt;br /&gt;
                                setmap(string,string,float,float);&lt;br /&gt;
setminimap oldstring, oldstring, float, float;&lt;br /&gt;
                                setminimap(string,string,float,float);&lt;br /&gt;
setmusicvolume float, float;&lt;br /&gt;
                                setmusicvolume(float,float);&lt;br /&gt;
setimg oldstring;&lt;br /&gt;
                                setimg(string);&lt;br /&gt;
setimgpart oldstring, float, float, float, float;&lt;br /&gt;
                                setimgpart(string,float,float,float,float);&lt;br /&gt;
setletters oldstring;&lt;br /&gt;
                                setletters(string);&lt;br /&gt;
setplayerdir oldstring;&lt;br /&gt;
                                setplayerdir(string);&lt;br /&gt;
setplayerprop oldstring, oldstring;&lt;br /&gt;
                                string = string;&lt;br /&gt;
setpm oldstring;&lt;br /&gt;
                                setpm(string);&lt;br /&gt;
setshape float, float, float;&lt;br /&gt;
                                setshape(float,float,float);&lt;br /&gt;
setshape2 float, float, float;&lt;br /&gt;
                                setshape2(float,float,float);&lt;br /&gt;
setshield oldstring, float;&lt;br /&gt;
                                setshield(string,float);&lt;br /&gt;
setshoecolor oldstring;&lt;br /&gt;
                                setshoecolor(string);&lt;br /&gt;
setshootparams oldstring;&lt;br /&gt;
                                setshootparams(string);&lt;br /&gt;
setskincolor oldstring;&lt;br /&gt;
                                setskincolor(string);&lt;br /&gt;
setsleevecolor oldstring;&lt;br /&gt;
                                setsleevecolor(string);&lt;br /&gt;
setstring oldstring, oldstring;&lt;br /&gt;
                                setstring(string,string);&lt;br /&gt;
setsword oldstring, float;&lt;br /&gt;
                                setsword(string,float);&lt;br /&gt;
seturllevel oldstring;&lt;br /&gt;
                                seturllevel(string);&lt;br /&gt;
setz float, float, float, float, float, float, float, float;&lt;br /&gt;
                                setz(float,float,float,float,float,float,float,float);&lt;br /&gt;
setzoomeffect float;&lt;br /&gt;
                                setzoomeffect(float);&lt;br /&gt;
shoot float, float, float, float, float, float, oldstring, oldstring;&lt;br /&gt;
                                shoot(float,float,float,float,float,float,string,string);&lt;br /&gt;
shootarrow float;&lt;br /&gt;
                                shootarrow(float);&lt;br /&gt;
shootball;&lt;br /&gt;
                                shootball();&lt;br /&gt;
shootfireball float;&lt;br /&gt;
                                shootfireball(float);&lt;br /&gt;
shootfireblast float;&lt;br /&gt;
                                shootfireblast(float);&lt;br /&gt;
shootnuke float;&lt;br /&gt;
                                shootnuke(float);&lt;br /&gt;
show;&lt;br /&gt;
                                show();&lt;br /&gt;
showani float, float, float, float, oldstring;&lt;br /&gt;
                                showani(float,float,float,float,string);&lt;br /&gt;
showani2 float, float, float, float, float, oldstring;&lt;br /&gt;
                                showani2(float,float,float,float,float,string);&lt;br /&gt;
showcharacter;&lt;br /&gt;
                                showcharacter();&lt;br /&gt;
showfile oldstring;&lt;br /&gt;
                                showfile(string);&lt;br /&gt;
showimg float, oldstring, float, float;&lt;br /&gt;
                                showimg(float,string,float,float);&lt;br /&gt;
showimg2 float, oldstring, float, float, float;&lt;br /&gt;
                                showimg2(float,string,float,float,float);&lt;br /&gt;
showlocal;&lt;br /&gt;
                                showlocal();&lt;br /&gt;
&lt;br /&gt;
showpoly float, float;&lt;br /&gt;
                                showpoly(float,array);&lt;br /&gt;
showpoly2 float, float;&lt;br /&gt;
                                showpoly2(float,array);&lt;br /&gt;
showstats float;&lt;br /&gt;
                                showstats(float);&lt;br /&gt;
showtext float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
                                showtext(float,float,float,string,string,string);&lt;br /&gt;
showtext2 float, float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
                                showtext2(float,float,float,float,string,string,string);&lt;br /&gt;
sleep float;&lt;br /&gt;
                                sleep(float);&lt;br /&gt;
spyfire float, float;&lt;br /&gt;
                                spyfire(float,float);&lt;br /&gt;
stopmidi;&lt;br /&gt;
                                stopmidi();&lt;br /&gt;
stopsound oldstring;&lt;br /&gt;
                                stopsound(string);&lt;br /&gt;
take oldstring;&lt;br /&gt;
                                take(string);&lt;br /&gt;
take2 float;&lt;br /&gt;
                                take2(float);&lt;br /&gt;
takehorse float;&lt;br /&gt;
                                takehorse(float);&lt;br /&gt;
takeplayercarry;&lt;br /&gt;
                                takeplayercarry();&lt;br /&gt;
takeplayerhorse;&lt;br /&gt;
                                takeplayerhorse();&lt;br /&gt;
throwcarry;&lt;br /&gt;
                                throwcarry();&lt;br /&gt;
timereverywhere;&lt;br /&gt;
                                timereverywhere();&lt;br /&gt;
timershow;&lt;br /&gt;
                                timershow();&lt;br /&gt;
toinventory oldstring;&lt;br /&gt;
                                toinventory(string);&lt;br /&gt;
tokenize oldstring;&lt;br /&gt;
                                tokens = string.tokenize();&lt;br /&gt;
tokenize2 oldstring, oldstring;&lt;br /&gt;
                                tokens = string.tokenize(&amp;quot; ,&amp;quot; @ string);&lt;br /&gt;
toweapons oldstring;&lt;br /&gt;
                                toweapons(string);&lt;br /&gt;
triggeraction float, float, oldstring, oldstring;&lt;br /&gt;
                                triggeraction(float,float,string,string);&lt;br /&gt;
unfreezeplayer;&lt;br /&gt;
                                unfreezeplayer();&lt;br /&gt;
unset oldstring;&lt;br /&gt;
                                unset(string);&lt;br /&gt;
updateboard float, float, float, float;&lt;br /&gt;
                                updateboard(float,float,float,float);&lt;br /&gt;
updateterrain;&lt;br /&gt;
                                updateterrain();&lt;br /&gt;
wraptext float, oldstring, oldstring;&lt;br /&gt;
                                tokens = wraptext(float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
wraptext2 float, float, oldstring, oldstring;&lt;br /&gt;
                                tokens = wraptext2(float,float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Supported old scripting functions &amp;amp; their mapping to new script ===&lt;br /&gt;
&lt;br /&gt;
=== Supported old string operations ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
These old string operators can be used in string parameters&lt;br /&gt;
for the old commands, also you can use them directly as operators, e.g.&lt;br /&gt;
#c = &amp;quot;hello&amp;quot;&lt;br /&gt;
is actually doing&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#a            player.account&lt;br /&gt;
#a(float)     players[float].account&lt;br /&gt;
#m            player.ani&lt;br /&gt;
              ani&lt;br /&gt;
#m(float)     players[float].ani&lt;br /&gt;
#K(float)     getascii(float)&lt;br /&gt;
#8            player.bodyimg&lt;br /&gt;
              bodyimg&lt;br /&gt;
#8(float)     players[float].bodyimg&lt;br /&gt;
#c            player.chat&lt;br /&gt;
              chat&lt;br /&gt;
#c(float)     players[float].chat&lt;br /&gt;
#C0           player.colors[0]&lt;br /&gt;
              colors[0]&lt;br /&gt;
#C0(float)    players[float].colors[0]&lt;br /&gt;
#C1           player.colors[1]&lt;br /&gt;
              colors[1]&lt;br /&gt;
#C1(float)    players[float].colors[1]&lt;br /&gt;
#C2           player.colors[2]&lt;br /&gt;
              colors[2]&lt;br /&gt;
#C2(float)    players[float].colors[2]&lt;br /&gt;
#C3           player.colors[3]&lt;br /&gt;
              colors[3]&lt;br /&gt;
#C3(float)    players[float].colors[3]&lt;br /&gt;
#C4           player.colors[4]&lt;br /&gt;
              colors[4]&lt;br /&gt;
#C4(float)    players[float].colors[4]&lt;br /&gt;
#C5           player.colors[5]&lt;br /&gt;
              colors[5]&lt;br /&gt;
#C5(float)    players[float].colors[5]&lt;br /&gt;
#D            downloadfile()&lt;br /&gt;
#E            emoticonchar()&lt;br /&gt;
#e(float,float,oldstring)&lt;br /&gt;
              string.substring(float,float)&lt;br /&gt;
#g            player.guild&lt;br /&gt;
              guild&lt;br /&gt;
#g(float)     players[float].guild&lt;br /&gt;
#3            player.headimg&lt;br /&gt;
              headimg&lt;br /&gt;
#3(float)     players[float].headimg&lt;br /&gt;
#5            player.horseimg&lt;br /&gt;
              horseimg&lt;br /&gt;
#5(float)     players[float].horseimg&lt;br /&gt;
#k(float)     keyname(float)&lt;br /&gt;
#L            player.level&lt;br /&gt;
#I(oldstring,float)&lt;br /&gt;
              getstring(string)[float]&lt;br /&gt;
#n            player.nick&lt;br /&gt;
              nick&lt;br /&gt;
#n(float)     players[float].nick&lt;br /&gt;
#f            image&lt;br /&gt;
#f(float)     npcs[float].image&lt;br /&gt;
#F            level&lt;br /&gt;
#p(float)     params[float]&lt;br /&gt;
#P(float)     player.attr[float]&lt;br /&gt;
              attr[float]&lt;br /&gt;
#P(float,float)&lt;br /&gt;
              players[float].attr[float]&lt;br /&gt;
#P1           player.attr[1]&lt;br /&gt;
              attr[1]&lt;br /&gt;
#P1(float)    players[float].attr[1]&lt;br /&gt;
#P2           player.attr[2]&lt;br /&gt;
              attr[2]&lt;br /&gt;
#P2(float)    players[float].attr[2]&lt;br /&gt;
#P3           player.attr[3]&lt;br /&gt;
              attr[3]&lt;br /&gt;
#P3(float)    players[float].attr[3]&lt;br /&gt;
#P4           player.attr[4]&lt;br /&gt;
              attr[4]&lt;br /&gt;
#P4(float)    players[float].attr[4]&lt;br /&gt;
#P5           player.attr[5]&lt;br /&gt;
              attr[5]&lt;br /&gt;
#P5(float)    players[float].attr[5]&lt;br /&gt;
#P6           player.attr[6]&lt;br /&gt;
              attr[6]&lt;br /&gt;
#P6(float)    players[float].attr[6]&lt;br /&gt;
#P7           player.attr[7]&lt;br /&gt;
              attr[7]&lt;br /&gt;
#P7(float)    players[float].attr[7]&lt;br /&gt;
#P8           player.attr[8]&lt;br /&gt;
              attr[8]&lt;br /&gt;
#P8(float)    players[float].attr[8]&lt;br /&gt;
#P9           player.attr[9]&lt;br /&gt;
              attr[9]&lt;br /&gt;
#P9(float)    players[float].attr[9]&lt;br /&gt;
#R(oldstring) string.random()&lt;br /&gt;
#2            player.shieldimg&lt;br /&gt;
              shieldimg&lt;br /&gt;
#2(float)     players[float].shieldimg&lt;br /&gt;
#s(oldstring) getstring(string)&lt;br /&gt;
#1            player.swordimg&lt;br /&gt;
              swordimg&lt;br /&gt;
#1(float)     players[float].swordimg&lt;br /&gt;
#S            player.sword.script&lt;br /&gt;
#t(float)     tokens[float]&lt;br /&gt;
#T(oldstring) string.trim()&lt;br /&gt;
#v(float)     float&lt;br /&gt;
#W            player.weapon.icon&lt;br /&gt;
#W(float)     weapons[float].icon&lt;br /&gt;
#w            player.weapon.script&lt;br /&gt;
#w(float)     weapons[float].script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Compatibility note:&lt;br /&gt;
When you use the command setcharprop then the first parameter&lt;br /&gt;
is handled differently: instead of changing 'player.chat' it&lt;br /&gt;
is changing 'chat', the chat text of the npc. So 'setcharprop #c,hello'&lt;br /&gt;
would be translated into&lt;br /&gt;
chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
while 'setplayerprop #c,hello' is translated into&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
In the list above both possibilities are listed.&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=Creation/Dev/GScript&amp;diff=1633</id>
		<title>Creation/Dev/GScript</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=Creation/Dev/GScript&amp;diff=1633"/>
		<updated>2005-03-02T00:36:58Z</updated>

		<summary type="html">&lt;p&gt;Evil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''GScript''' is [[Graal]]'s scripting language.&lt;br /&gt;
&lt;br /&gt;
Its syntax and some of its semantics might seem familiar to those who program in [[WikiPedia:C (Programming Language) | C]] or derived languages, although it lacks some of the expressivity of a real programming language and has special constructs that make programming [[Graal]] [[NPC]]s easier.&lt;br /&gt;
&lt;br /&gt;
GScript started as a very limited language and has since kept up with improvements to the game engine and can now be used for pretty sophisticated scripts that greatly customise the gaming experience.&lt;br /&gt;
&lt;br /&gt;
It is used, with minor differences, for [[Clientside]] tasks like [[GUI | GUI programming]], special effects with nifty 3d lighting and custom [[NPC Weapons]] or &amp;amp;quot;engines&amp;amp;quot;, and [[Serverside]] systems like player housing, complex baddies or pets.&lt;br /&gt;
&lt;br /&gt;
[[Old GScript]] has been replaced by a new version (dubbed GScript2 during development) that is rather advanced, in some way object oriented, and thanks to influence from [[Torque]]'s scripting language, less brain-damaged in some aspects. No offense.&lt;br /&gt;
&lt;br /&gt;
GScript can be discussed in the [[GScript IRC channel]].&lt;br /&gt;
&lt;br /&gt;
[[Script Functions: Client]]&lt;br /&gt;
[[Script Functions: NPC Server]]&lt;br /&gt;
[[Script Functions: Graal 3D]]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Why scripts ===&lt;br /&gt;
&lt;br /&gt;
Scripts bring life into objects and make it easy to &lt;br /&gt;
customize the game. Instead of just placing a stone&lt;br /&gt;
into your world, you can make it so that the stone&lt;br /&gt;
can be lifted or kicked. Instead of being limited to&lt;br /&gt;
some fixed player movement you can rescript it&lt;br /&gt;
to let the player jump, strafe and duck. To let the &lt;br /&gt;
player inspect and organize his/her items you can&lt;br /&gt;
create some dialogs and display those by script,&lt;br /&gt;
e.g. when the player presses a special key.&lt;br /&gt;
&lt;br /&gt;
In Graal the scripting is done in 'Graal Script',&lt;br /&gt;
it's looking like Java/C++, but brings some &lt;br /&gt;
additional features for making things easier&lt;br /&gt;
for game creators, while on the other hand&lt;br /&gt;
running in a sandbox and limiting access to&lt;br /&gt;
game-related stuff only.&lt;br /&gt;
&lt;br /&gt;
Graal Script is almost fully compatible to &lt;br /&gt;
the 'old' Graal script used in Graal v1.0 - 3.0,&lt;br /&gt;
and is partially compatible to Torque script. &lt;br /&gt;
&lt;br /&gt;
=== NPCs and 'weapons' ===&lt;br /&gt;
&lt;br /&gt;
There are generally two types of objects in Graal&lt;br /&gt;
which have scripts: The first type are the &lt;br /&gt;
non-player-characters (NPCs). The name 'NPC' is&lt;br /&gt;
actually used for all visible objects in the game: &lt;br /&gt;
monsters, stones, bushes, houses, ships, plants etc.&lt;br /&gt;
Scripts for npcs are most of the time containing&lt;br /&gt;
code for moving the npc or for reacting to &lt;br /&gt;
activities of the player, e.g. giving money to&lt;br /&gt;
the player when he grabs the npc.&lt;br /&gt;
The other type of script-holding objects are the&lt;br /&gt;
'weapons'. Those are items in the inventory of&lt;br /&gt;
the player, not necessary being weapons. Most of&lt;br /&gt;
the time they are actually just scripts which&lt;br /&gt;
control the movement of the player, display weapon&lt;br /&gt;
graphics, or display menus.&lt;br /&gt;
&lt;br /&gt;
So there are objects in the game which have &lt;br /&gt;
their own script, and players which have a set&lt;br /&gt;
of scripts in their invisible backpack.&lt;br /&gt;
&lt;br /&gt;
=== Server-side and client-side ===&lt;br /&gt;
&lt;br /&gt;
Graal is an online game, and there are differences&lt;br /&gt;
to standard scripting in offline games.&lt;br /&gt;
In offline programs you have access to everything,&lt;br /&gt;
anytime. In online games everything is divided&lt;br /&gt;
into two parts: the server-side which controls&lt;br /&gt;
most things in the game, and the client-side which&lt;br /&gt;
displays the game to the player.&lt;br /&gt;
Since the client only displays things, it is not&lt;br /&gt;
possible to cheat by hacking the client. On client-side&lt;br /&gt;
you mainly have code for displaying special effects,&lt;br /&gt;
for displaying the GUI (windows, status bars, item menus),&lt;br /&gt;
playing sound effects and music. Also the player &lt;br /&gt;
movement is done on client-side.&lt;br /&gt;
On the server-side scripts are used to do the more&lt;br /&gt;
secure parts of the game engine are implemented,&lt;br /&gt;
and things that are the same for all players -&lt;br /&gt;
npcs are added, moved, npcs interact with players,&lt;br /&gt;
the stats of the players are calculated, the&lt;br /&gt;
communication between players is handled.&lt;br /&gt;
&lt;br /&gt;
All scripts for npcs and weapons can contain&lt;br /&gt;
server-side code and client-side code. The server-side&lt;br /&gt;
code is executed directly on the server, the&lt;br /&gt;
client-side code is sent to the client when he&lt;br /&gt;
logins and executed separately for each player on&lt;br /&gt;
their own computer. Usually the two parts of the script&lt;br /&gt;
are divided by line that only contains &amp;quot;//#CLIENTSIDE&amp;quot;,&lt;br /&gt;
like this:&lt;br /&gt;
&lt;br /&gt;
// Server-side part which is setting the image&lt;br /&gt;
// of the npc when it is created&lt;br /&gt;
function onCreated() {&lt;br /&gt;
  setimg(&amp;quot;door.png&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//#CLIENTSIDE&lt;br /&gt;
&lt;br /&gt;
// Here follows the client-side part,&lt;br /&gt;
// which plays a sound effect when the player&lt;br /&gt;
// touchs the npc&lt;br /&gt;
function onPlayerTouchsme() {&lt;br /&gt;
  play(&amp;quot;chest.wav&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Events ===&lt;br /&gt;
&lt;br /&gt;
In general scripts are made for reacting to &lt;br /&gt;
events - when the npc is created then the script&lt;br /&gt;
initializes the attributes of the npc,&lt;br /&gt;
when the player says something then the npc is&lt;br /&gt;
moving to the player, when the player grabs the&lt;br /&gt;
npc then the npc is giving the player some money etc.&lt;br /&gt;
So the script is basicly a collection of actions&lt;br /&gt;
that are done when special events are happening.&lt;br /&gt;
Events can e.g. be the &amp;quot;created&amp;quot; event when the npc&lt;br /&gt;
is created, the &amp;quot;playertouchsme&amp;quot; event when the &lt;br /&gt;
player touchs the npc, or the &amp;quot;playerchats&amp;quot; event&lt;br /&gt;
when the player says something. To write code reacts&lt;br /&gt;
to one of those event, you define an event&lt;br /&gt;
function like this:&lt;br /&gt;
&lt;br /&gt;
function onEVENTNAME() {&lt;br /&gt;
  // actions&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
When the event is happening, then Graal executes&lt;br /&gt;
that scripting function and all commands you &lt;br /&gt;
have added there.&lt;br /&gt;
Sometimes the event gives some parameters to the &lt;br /&gt;
event function, then change your function to:&lt;br /&gt;
&lt;br /&gt;
function onEVENTNAME(parameter1, paramater2, ...) {&lt;br /&gt;
  // actions&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
By accessing 'parameter1' etc. (you can name&lt;br /&gt;
them differently) you can react to the event more&lt;br /&gt;
exactly. &lt;br /&gt;
&lt;br /&gt;
Instead of reacting to events, the npcs and&lt;br /&gt;
weapons can also invoke new events. That way &lt;br /&gt;
you can let other npcs doing things. You also&lt;br /&gt;
need that if you want to coninuously doing things -&lt;br /&gt;
use timeout event for that.&lt;br /&gt;
&lt;br /&gt;
function onCreated() {&lt;br /&gt;
  timeout = 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function onTimeout() {&lt;br /&gt;
  // actions&lt;br /&gt;
  timeout = 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
In the onCreated event function the script is&lt;br /&gt;
setting the timer to 1 second. When that second is&lt;br /&gt;
over, then the &amp;quot;timeout&amp;quot; event is invoked on the&lt;br /&gt;
npc and the onTimeout event function is executed.&lt;br /&gt;
Because it is setting the timeout to 1 second&lt;br /&gt;
again, the onTimeout even will occur again after&lt;br /&gt;
one second, and so on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compatibility note:&lt;br /&gt;
In older Graal scripts you will also find the&lt;br /&gt;
deprecated way of receiving events:&lt;br /&gt;
&lt;br /&gt;
if (EVENTNAME) {&lt;br /&gt;
  // actions&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
That is an if-command outside of any brackets. If&lt;br /&gt;
Graal sees that you use such an if-command, then&lt;br /&gt;
it will execute the whole script so that the actions&lt;br /&gt;
you have written inside the if-command will be&lt;br /&gt;
executed too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
&lt;br /&gt;
=== Accessing variables ===&lt;br /&gt;
&lt;br /&gt;
Graal Script variables are 'variant', that means they are objects&lt;br /&gt;
that hold values of different types.&lt;br /&gt;
When you assign a value to the variable then it automatically&lt;br /&gt;
switches to the right type:&lt;br /&gt;
&lt;br /&gt;
Numeric (floating point):&lt;br /&gt;
  var = 1;&lt;br /&gt;
String:&lt;br /&gt;
  var = &amp;quot;hello&amp;quot;;&lt;br /&gt;
Object link:&lt;br /&gt;
  var = player;&lt;br /&gt;
Array (list of objects):&lt;br /&gt;
  var = {1,2,3};&lt;br /&gt;
&lt;br /&gt;
You can check the current type with the&lt;br /&gt;
type()-function - obj.type() returns&lt;br /&gt;
0,1,2,3 for numeric, string, object or array.&lt;br /&gt;
&lt;br /&gt;
=== Operators ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Addition                  a + b&lt;br /&gt;
Substraction              a - b&lt;br /&gt;
Mulitplication            a * b&lt;br /&gt;
Division                  a / b&lt;br /&gt;
Modulus                   a % b&lt;br /&gt;
Power                     a ^ b&lt;br /&gt;
String Concationation     a @ b&lt;br /&gt;
Bool-And                  a &amp;amp;&amp;amp; b&lt;br /&gt;
Bool-Or                   a || b&lt;br /&gt;
Bool-Not                  !a&lt;br /&gt;
Negative                  -a&lt;br /&gt;
Equal                     a == b&lt;br /&gt;
Not-Equal                 a != b&lt;br /&gt;
Less                      a &amp;lt; b&lt;br /&gt;
Greater                   a &amp;gt; b&lt;br /&gt;
Less-Equal                a &amp;lt;= b,  a =&amp;lt; b&lt;br /&gt;
Greater-Equal             a &amp;gt;= b,  a =&amp;gt; b&lt;br /&gt;
In-Range                  a in &amp;lt;b,c&amp;gt;, a in |b,c&amp;gt;, a in &amp;lt;b,c|, a in |b,c|&lt;br /&gt;
In-Array                  a in {b,c,...}, {a,b,...} in {c,d,...}&lt;br /&gt;
Bitwise-Or                a | b&lt;br /&gt;
Bitwise-And               a &amp;amp; b&lt;br /&gt;
Bitwise-Shift left        a &amp;lt;&amp;lt; b&lt;br /&gt;
Bitwise-Shift right       a &amp;gt;&amp;gt; b&lt;br /&gt;
Bitwise-Invert            ~a&lt;br /&gt;
Bitwise-Xor               a xor b (operator ^ already used for power)&lt;br /&gt;
Array-Constructor         {a,b,...}&lt;br /&gt;
Empty Array               new [count]&lt;br /&gt;
Array Member              a[index]&lt;br /&gt;
Function call             a(), a(b,c,...)&lt;br /&gt;
Object Attribute          a.b, a.(b)&lt;br /&gt;
Post Increment            a++&lt;br /&gt;
Post Decrement            a--&lt;br /&gt;
Pre Increment             ++a&lt;br /&gt;
Pre Decrement             --a&lt;br /&gt;
Old String Function       #a&lt;br /&gt;
Conditional               a? b : c&lt;br /&gt;
Assignment                a = b, a := b&lt;br /&gt;
Additive Assignment       a += b&lt;br /&gt;
Substractive Assignment   a -= b&lt;br /&gt;
Multiplicative Assignment a *= b&lt;br /&gt;
Division Assignment       a /= b&lt;br /&gt;
Modulus Assignment        a %= b&lt;br /&gt;
Power Assignment          a ^= b&lt;br /&gt;
Bitwise-Or Assignment     a |= b&lt;br /&gt;
Bitwise-And Assignment    a &amp;amp;= b&lt;br /&gt;
Shift Left Assignment     a &amp;lt;&amp;lt;= b&lt;br /&gt;
Shift Right Assignment    a &amp;gt;&amp;gt;= b&lt;br /&gt;
String Append             a @= b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Standard object functions ===&lt;br /&gt;
&lt;br /&gt;
For a complete list of functions and attributes of objects&lt;br /&gt;
see docu_graalscriptfunctions.txt. The base type of all&lt;br /&gt;
objects is &amp;quot;TGraalVar&amp;quot;. You can also get the latest list by&lt;br /&gt;
calling the executale with &amp;quot;-listscriptfunctions&amp;quot; as &lt;br /&gt;
command-line parameter. &lt;br /&gt;
Here only of the built-in functions:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
obj.type()  - gets the type of the var (float 0, string 1, object 2, array 3)&lt;br /&gt;
obj.length() - string length&lt;br /&gt;
obj.trim()&lt;br /&gt;
obj.tokenize([delimiters])&lt;br /&gt;
obj.charat(pos)&lt;br /&gt;
obj.pos(substring)&lt;br /&gt;
obj.starts(string)&lt;br /&gt;
obj.ends(string)&lt;br /&gt;
obj.substring(index[,length])&lt;br /&gt;
obj.size() - array length&lt;br /&gt;
obj.subarray(index[,length])&lt;br /&gt;
obj.addarray(obj2)&lt;br /&gt;
obj.insertarray(index,obj2)&lt;br /&gt;
obj.index(obj2) - position of obj2 in the array&lt;br /&gt;
obj.clear()&lt;br /&gt;
obj.add(obj2)&lt;br /&gt;
obj.delete(index)&lt;br /&gt;
obj.remove(obj2)&lt;br /&gt;
obj.replace(index,obj2)&lt;br /&gt;
obj.insert(index,obj2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Standard functions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
format(format,parameters,...) - formats a &amp;quot;%s %d&amp;quot; string, inserts the parameters, and returns a string&lt;br /&gt;
int(a)&lt;br /&gt;
abs(a)&lt;br /&gt;
random(rangestart,rangeend)&lt;br /&gt;
sin(a)&lt;br /&gt;
cos(a)&lt;br /&gt;
arctan(a)&lt;br /&gt;
exp(a)&lt;br /&gt;
log(base,a)&lt;br /&gt;
min(a,b)&lt;br /&gt;
max(a,b)&lt;br /&gt;
getangle(delta x,delta y)&lt;br /&gt;
getdir(delta x,delta y)&lt;br /&gt;
vecx(direction)&lt;br /&gt;
vecy(direction)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
=== Gui controls ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
onAdd() when added to the parent&lt;br /&gt;
onRemove() when removed from the parent&lt;br /&gt;
onWake() when activated&lt;br /&gt;
onSleep() when deactivated&lt;br /&gt;
onResize(w,h)&lt;br /&gt;
onMove(x,y)&lt;br /&gt;
onMouseEnter(modifier,x,y,clickcount)&lt;br /&gt;
onMouseLeave(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseMove(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelDown(modifier,x,y,clickcount)&lt;br /&gt;
onKeyDown(keycode,string)&lt;br /&gt;
onKeyUp(keycode,string)&lt;br /&gt;
onKeyRepeat(keycode,string)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== GuiMLTextCtrl: ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
onReflow(w,h) when the text has changed&lt;br /&gt;
onURL(url) when clicked on url&lt;br /&gt;
onSelectTag(tagid) when clicked on an image&lt;br /&gt;
&lt;br /&gt;
Text-Tags:&lt;br /&gt;
The text of multi-line text controls can contain&lt;br /&gt;
a few HTML-tags and Torque-tags, you can use both&lt;br /&gt;
of those tag types to define colors and fonts&lt;br /&gt;
or to include images. Currently following tags&lt;br /&gt;
are available:&lt;br /&gt;
&lt;br /&gt;
HTML:&lt;br /&gt;
&amp;lt;a href=url&amp;gt; text &amp;lt;/a&amp;gt; - when the user clicks on 'text' then &lt;br /&gt;
  a web browser is opened for the specified url&lt;br /&gt;
&amp;lt;br&amp;gt; - line break&lt;br /&gt;
&amp;lt;font face=fontname size=textsize color=colorname or #rrggbb&amp;gt; text &amp;lt;/font&amp;gt;&lt;br /&gt;
  - draws text with a special font, size and color; you only&lt;br /&gt;
  need to define one of those 3 attributes&lt;br /&gt;
&amp;lt;ignorelinebreaks&amp;gt; &amp;lt;/ignorelinebreaks&amp;gt; - go into normal HTML mode where&lt;br /&gt;
  you need to insert &amp;lt;br&amp;gt; to do a linebreak&lt;br /&gt;
&amp;lt;img src=filename id=integer&amp;gt; - an image is displayed, you &lt;br /&gt;
  can also specify a tagid if you want to get onSelectTag-events&lt;br /&gt;
  for this image&lt;br /&gt;
&amp;lt;p align=left/center/right&amp;gt; - sets the align of the following text&lt;br /&gt;
&amp;lt;span style=&amp;quot;width=100; height=100;&amp;quot; id=integer&amp;gt; &amp;lt;/span&amp;gt; - for &lt;br /&gt;
  displaying a subpage, you can also specifiy an id for &lt;br /&gt;
  onSelectTag-events; instead of &amp;lt;span&amp;gt; you can also use &amp;lt;div&amp;gt; tags&lt;br /&gt;
&lt;br /&gt;
Torque:&lt;br /&gt;
&amp;lt;a:url&amp;gt; text &amp;lt;/a&amp;gt; - when the user clicks on 'text' then &lt;br /&gt;
  a web browser is opened for the specified url&lt;br /&gt;
&amp;lt;bitmap:filename&amp;gt; - an image is displayed&lt;br /&gt;
&amp;lt;color:rrggbb&amp;gt; - sets the color of the text (hexadecimal value)&lt;br /&gt;
&amp;lt;lmargin:pixels&amp;gt; - sets the left margin for the text&lt;br /&gt;
&amp;lt;lmargin%:percent&amp;gt; - sets the size of the left margin depending &lt;br /&gt;
  on the width of the whole control&lt;br /&gt;
&amp;lt;linkcolor:rrggbb&amp;gt; - sets the color of links (the &amp;lt;a&amp;gt;-tag)&lt;br /&gt;
&amp;lt;linkcolorhl:rrggbb&amp;gt; - sets the highlighted color, when&lt;br /&gt;
  the user moves the mouse over a link&lt;br /&gt;
&amp;lt;just:left/center/right&amp;gt; - sets the align of the following text&lt;br /&gt;
&amp;lt;rmargin:pixels&amp;gt; - sets the right margin for the text&lt;br /&gt;
&amp;lt;rmargin%:percent&amp;gt; - sets the size of the right margin depending &lt;br /&gt;
  on the width of the whole control&lt;br /&gt;
&amp;lt;sbreak&amp;gt; - line break&lt;br /&gt;
&amp;lt;spush&amp;gt; - switches to a new style (like &amp;lt;font&amp;gt;)&lt;br /&gt;
&amp;lt;spop&amp;gt; - switches back to the last saved style (like &amp;lt;/font&amp;gt;)&lt;br /&gt;
&amp;lt;tab:tab1,tab2,..&amp;gt; - sets the position of where tabulators should&lt;br /&gt;
  be displayed if you have text like 'Apple \t Egg \t Chicken'&lt;br /&gt;
&amp;lt;tag:id&amp;gt; - inserts an invisible tag which can be used&lt;br /&gt;
  for the scrollToTag(id) function (beside image-tags)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== GuiTextEditCtrl: ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
onTabComplete()&lt;br /&gt;
onAction(text) when return key pressed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== GuiTextListCtrl: ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
onSelect(id,text) when row selected&lt;br /&gt;
onDblClick(id) when double-click on row or return key pressed&lt;br /&gt;
onDeleteKey(id) when delete key pressed&lt;br /&gt;
onIconResized(w,h) when setIconSize() called&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== GuiPopUpMenuCtrl: ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
onSelect(id,text) when menu option choosen&lt;br /&gt;
onCancel() when menu is closed without action&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== GuiMenuBar: ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
onMenuSelect(menuid,menutext)&lt;br /&gt;
onMenuItemSelect(menuid,menutext,itemid,itemtext)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== GuiTreeViewCtrl: ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
onSelect(id,rightmouse) when row selected&lt;br /&gt;
onUnselect(id) when row de-selected&lt;br /&gt;
onInspect(id) when clicked on the name of an item&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
onContextMenu(&amp;quot;x y&amp;quot;,id) when clicked with right-mouse key on row&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Old script compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Removed functionality ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- toinventory&lt;br /&gt;
- followplayer&lt;br /&gt;
- playersays()&lt;br /&gt;
- setbackpal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Supported old scripting commands &amp;amp; their mapping to new script ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
addstring oldstring, oldstring;&lt;br /&gt;
                                addstring(string,string);&lt;br /&gt;
addtiledef oldstring, oldstring, float;&lt;br /&gt;
                                addtiledef(string,string,float);&lt;br /&gt;
addtiledef2 oldstring, oldstring, float, float;&lt;br /&gt;
                                addtiledef2(string,string,float,float);&lt;br /&gt;
attachplayertoobj float, float;&lt;br /&gt;
                                attachplayertoobj(float,float);&lt;br /&gt;
blockagain;&lt;br /&gt;
                                blockagain();&lt;br /&gt;
blockagainlocal;&lt;br /&gt;
                                blockagainlocal();&lt;br /&gt;
callnpc float, oldstring;&lt;br /&gt;
                                callnpc(float,string);&lt;br /&gt;
callweapon float, oldstring;&lt;br /&gt;
                                callweapon(float,string);&lt;br /&gt;
canbecarried;&lt;br /&gt;
                                canbecarried();&lt;br /&gt;
canbepulled;&lt;br /&gt;
                                canbepulled();&lt;br /&gt;
canbepushed;&lt;br /&gt;
                                canbepushed();&lt;br /&gt;
cannotbecarried;&lt;br /&gt;
                                cannotbecarried();&lt;br /&gt;
cannotbepulled;&lt;br /&gt;
                                cannotbepulled();&lt;br /&gt;
cannotbepushed;&lt;br /&gt;
                                cannotbepushed();&lt;br /&gt;
canwarp;&lt;br /&gt;
                                canwarp();&lt;br /&gt;
canwarp2;&lt;br /&gt;
                                canwarp2();&lt;br /&gt;
carryobject oldstring;&lt;br /&gt;
                                carryobject(string);&lt;br /&gt;
changeimgcolors float, float, float, float, float;&lt;br /&gt;
                                changeimgcolors(float,float,float,float,float);&lt;br /&gt;
changeimgmode float, float;&lt;br /&gt;
                                changeimgmode(float,float);&lt;br /&gt;
changeimgpart float, float, float, float, float;&lt;br /&gt;
                                changeimgpart(float,float,float,float,float);&lt;br /&gt;
changeimgvis float, float;&lt;br /&gt;
                                changeimgvis(float,float);&lt;br /&gt;
changeimgzoom float, float;&lt;br /&gt;
                                changeimgzoom(float,float);&lt;br /&gt;
deletestring oldstring, float;&lt;br /&gt;
                                deletestring(string,float);&lt;br /&gt;
destroy;&lt;br /&gt;
                                destroy();&lt;br /&gt;
detachplayer;&lt;br /&gt;
                                detachplayer();&lt;br /&gt;
disabledefmovement;&lt;br /&gt;
                                disabledefmovement();&lt;br /&gt;
disablemap;&lt;br /&gt;
                                disablemap();&lt;br /&gt;
disablepause;&lt;br /&gt;
                                disablepause();&lt;br /&gt;
disableselectweapons;&lt;br /&gt;
                                disableselectweapons();&lt;br /&gt;
disableweapons;&lt;br /&gt;
                                disableweapons();&lt;br /&gt;
dontblock;&lt;br /&gt;
                                dontblock();&lt;br /&gt;
dontblocklocal;&lt;br /&gt;
                                dontblocklocal();&lt;br /&gt;
drawaslight;&lt;br /&gt;
                                drawaslight();&lt;br /&gt;
drawoverplayer;&lt;br /&gt;
                                drawoverplayer();&lt;br /&gt;
drawunderplayer;&lt;br /&gt;
                                drawunderplayer();&lt;br /&gt;
enabledefmovement;&lt;br /&gt;
                                enabledefmovement();&lt;br /&gt;
enablefeatures float;&lt;br /&gt;
                                enablefeatures(float);&lt;br /&gt;
enablemap;&lt;br /&gt;
                                enablemap();&lt;br /&gt;
enablepause;&lt;br /&gt;
                                enablepause();&lt;br /&gt;
enableselectweapons;&lt;br /&gt;
                                enableselectweapons();&lt;br /&gt;
enableweapons;&lt;br /&gt;
                                enableweapons();&lt;br /&gt;
explodebomb float;&lt;br /&gt;
                                explodebomb(float);&lt;br /&gt;
followplayer;&lt;br /&gt;
                                followplayer();&lt;br /&gt;
freezeplayer float;&lt;br /&gt;
                                freezeplayer(float);&lt;br /&gt;
freezeplayer2;&lt;br /&gt;
                                freezeplayer2();&lt;br /&gt;
hide;&lt;br /&gt;
                                hide();&lt;br /&gt;
hideimg float;&lt;br /&gt;
                                hideimg(float);&lt;br /&gt;
hideimgs float, float;&lt;br /&gt;
                                hideimgs(float,float);&lt;br /&gt;
hidelocal;&lt;br /&gt;
                                hidelocal();&lt;br /&gt;
&lt;br /&gt;
hitcompu float, float, float, float;&lt;br /&gt;
                                hitcompu(float,float,float,float);&lt;br /&gt;
hitnpc float, float, float, float;&lt;br /&gt;
                                hitnpc(float,float,float,float);&lt;br /&gt;
hitobjects float, float, float;&lt;br /&gt;
                                hitobjects(float,float,float);&lt;br /&gt;
hideplayer float;&lt;br /&gt;
                                hideplayer(float);&lt;br /&gt;
hidesword float;&lt;br /&gt;
                                hidesword(float);&lt;br /&gt;
hitplayer float, float, float, float;&lt;br /&gt;
                                hitplayer(float,float,float,float);&lt;br /&gt;
hurt float;&lt;br /&gt;
                                hurt(float);&lt;br /&gt;
insertstring oldstring, float, oldstring;&lt;br /&gt;
                                insertstring(string,float,string);&lt;br /&gt;
join oldstring;&lt;br /&gt;
                                join(string);&lt;br /&gt;
lay oldstring;&lt;br /&gt;
                                lay(string);&lt;br /&gt;
lay2 oldstring, float, float;&lt;br /&gt;
                                lay2(string,float,float);&lt;br /&gt;
loadmap oldstring;&lt;br /&gt;
                                loadmap(string);&lt;br /&gt;
message oldstring;&lt;br /&gt;
                                message(string);&lt;br /&gt;
move float, float, float, float;&lt;br /&gt;
                                move(float,float,float,float);&lt;br /&gt;
noplayerkilling;&lt;br /&gt;
                                noplayerkilling();&lt;br /&gt;
openurl oldstring;&lt;br /&gt;
                                openurl(string);&lt;br /&gt;
openurl2 oldstring, float, float;&lt;br /&gt;
                                openurl2(string,float,float);&lt;br /&gt;
play oldstring;&lt;br /&gt;
                                play(string);&lt;br /&gt;
play2 oldstring, float, float, float;&lt;br /&gt;
                                play2(string,float,float,float);&lt;br /&gt;
playlooped oldstring;&lt;br /&gt;
                                playlooped(string);&lt;br /&gt;
putbomb float, float, float;&lt;br /&gt;
                                putbomb(float,float,float);&lt;br /&gt;
putcomp oldstring, float, float;&lt;br /&gt;
                                putcomp(string,float,float);&lt;br /&gt;
putexplosion float, float, float;&lt;br /&gt;
                                putexplosion(float,float,float);&lt;br /&gt;
putexplosion2 float, float, float, float;&lt;br /&gt;
                                putexplosion2(float,float,float,float);&lt;br /&gt;
puthorse oldstring, float, float;&lt;br /&gt;
                                puthorse(string,float,float);&lt;br /&gt;
putleaps float, float, float;&lt;br /&gt;
                                putleaps(float,float,float);&lt;br /&gt;
putnewcomp oldstring, float, float, oldstring, float;&lt;br /&gt;
                                putnewcomp(string,float,float,string,float);&lt;br /&gt;
putnpc oldstring, oldstring, float, float;&lt;br /&gt;
                                putnpc(string,string,float,float);&lt;br /&gt;
putnpc2 float, float, oldstring;&lt;br /&gt;
                                putnpc2(float,float,string);&lt;br /&gt;
reflectarrow float;&lt;br /&gt;
                                reflectarrow(float);&lt;br /&gt;
removearrow float;&lt;br /&gt;
                                removearrow(float);&lt;br /&gt;
removebomb float;&lt;br /&gt;
                                removebomb(float);&lt;br /&gt;
removecompus;&lt;br /&gt;
                                removecompus();&lt;br /&gt;
removeexplo float;&lt;br /&gt;
                                removeexplo(float);&lt;br /&gt;
removehorse float;&lt;br /&gt;
                                removehorse(float);&lt;br /&gt;
rmeoveitem float;&lt;br /&gt;
                                removeitem(float)&lt;br /&gt;
removestring oldstring, oldstring;&lt;br /&gt;
                                removestring(string,string);&lt;br /&gt;
removetiledefs oldstring;&lt;br /&gt;
                                removetiledefs(string);&lt;br /&gt;
replaceani oldstring, oldstring;&lt;br /&gt;
                                replaceani(string,string);&lt;br /&gt;
replacestring oldstring, float, oldstring;&lt;br /&gt;
                                replacestring(string,float,string);&lt;br /&gt;
resetfocus;&lt;br /&gt;
                                resetfocus();&lt;br /&gt;
savelog oldstring;&lt;br /&gt;
                                savelog(string);&lt;br /&gt;
savelog2 oldstring, oldstring;&lt;br /&gt;
                                savelog2(string,string);&lt;br /&gt;
say float;&lt;br /&gt;
                                say(float);&lt;br /&gt;
say2 oldstring;&lt;br /&gt;
                                say2(string);&lt;br /&gt;
sendrpgmessage oldstring;&lt;br /&gt;
                                sendrpgmessage(string);&lt;br /&gt;
sendpm oldstring;&lt;br /&gt;
                                sendpm(string);&lt;br /&gt;
sendtonc oldstring;&lt;br /&gt;
                                sendtonc(string);&lt;br /&gt;
sendtorc oldstring;&lt;br /&gt;
                                sendtorc(string);&lt;br /&gt;
serverwarp oldstring;&lt;br /&gt;
                                serverwarp(string);&lt;br /&gt;
set oldstring;&lt;br /&gt;
                                set(string);&lt;br /&gt;
setani oldstring, oldstring;&lt;br /&gt;
                                setani(string,string);&lt;br /&gt;
setarray float, float;&lt;br /&gt;
                                setarray(var,float);&lt;br /&gt;
setbeltcolor oldstring;&lt;br /&gt;
                                setbeltcolor(string);&lt;br /&gt;
setbow oldstring;&lt;br /&gt;
                                setbow(string);&lt;br /&gt;
setcharani oldstring, oldstring;&lt;br /&gt;
                                setcharani(string,string);&lt;br /&gt;
setchargender oldstring;&lt;br /&gt;
                                setchargender(string);&lt;br /&gt;
setcharprop oldstring, oldstring;&lt;br /&gt;
                                string = string;&lt;br /&gt;
setcoatcolor oldstring;&lt;br /&gt;
                                setcoatcolor(string);&lt;br /&gt;
setcoloreffect float, float, float, float;&lt;br /&gt;
                                setcoloreffect(float,float,float,float);&lt;br /&gt;
setcursor float;&lt;br /&gt;
                                setcursor(float);&lt;br /&gt;
setcurcor2 oldstring;&lt;br /&gt;
                                setcursor2(string);&lt;br /&gt;
seteffect float, float, float, float;&lt;br /&gt;
                                seteffect(float,float,float,float);&lt;br /&gt;
seteffectmode float;&lt;br /&gt;
                                seteffectmode(float);&lt;br /&gt;
setfocus float, float;&lt;br /&gt;
                                setfocus(float,float);&lt;br /&gt;
setgender oldstring;&lt;br /&gt;
                                setgender(string);&lt;br /&gt;
sethead oldstring;&lt;br /&gt;
                                sethead(string);&lt;br /&gt;
setlevel oldstring;&lt;br /&gt;
                                setlevel(string);&lt;br /&gt;
setlevel2 oldstring, float, float;&lt;br /&gt;
                                setlevel2(string,float,float);&lt;br /&gt;
setmap oldstring, oldstring, float, float;&lt;br /&gt;
                                setmap(string,string,float,float);&lt;br /&gt;
setminimap oldstring, oldstring, float, float;&lt;br /&gt;
                                setminimap(string,string,float,float);&lt;br /&gt;
setmusicvolume float, float;&lt;br /&gt;
                                setmusicvolume(float,float);&lt;br /&gt;
setimg oldstring;&lt;br /&gt;
                                setimg(string);&lt;br /&gt;
setimgpart oldstring, float, float, float, float;&lt;br /&gt;
                                setimgpart(string,float,float,float,float);&lt;br /&gt;
setletters oldstring;&lt;br /&gt;
                                setletters(string);&lt;br /&gt;
setplayerdir oldstring;&lt;br /&gt;
                                setplayerdir(string);&lt;br /&gt;
setplayerprop oldstring, oldstring;&lt;br /&gt;
                                string = string;&lt;br /&gt;
setpm oldstring;&lt;br /&gt;
                                setpm(string);&lt;br /&gt;
setshape float, float, float;&lt;br /&gt;
                                setshape(float,float,float);&lt;br /&gt;
setshape2 float, float, float;&lt;br /&gt;
                                setshape2(float,float,float);&lt;br /&gt;
setshield oldstring, float;&lt;br /&gt;
                                setshield(string,float);&lt;br /&gt;
setshoecolor oldstring;&lt;br /&gt;
                                setshoecolor(string);&lt;br /&gt;
setshootparams oldstring;&lt;br /&gt;
                                setshootparams(string);&lt;br /&gt;
setskincolor oldstring;&lt;br /&gt;
                                setskincolor(string);&lt;br /&gt;
setsleevecolor oldstring;&lt;br /&gt;
                                setsleevecolor(string);&lt;br /&gt;
setstring oldstring, oldstring;&lt;br /&gt;
                                setstring(string,string);&lt;br /&gt;
setsword oldstring, float;&lt;br /&gt;
                                setsword(string,float);&lt;br /&gt;
seturllevel oldstring;&lt;br /&gt;
                                seturllevel(string);&lt;br /&gt;
setz float, float, float, float, float, float, float, float;&lt;br /&gt;
                                setz(float,float,float,float,float,float,float,float);&lt;br /&gt;
setzoomeffect float;&lt;br /&gt;
                                setzoomeffect(float);&lt;br /&gt;
shoot float, float, float, float, float, float, oldstring, oldstring;&lt;br /&gt;
                                shoot(float,float,float,float,float,float,string,string);&lt;br /&gt;
shootarrow float;&lt;br /&gt;
                                shootarrow(float);&lt;br /&gt;
shootball;&lt;br /&gt;
                                shootball();&lt;br /&gt;
shootfireball float;&lt;br /&gt;
                                shootfireball(float);&lt;br /&gt;
shootfireblast float;&lt;br /&gt;
                                shootfireblast(float);&lt;br /&gt;
shootnuke float;&lt;br /&gt;
                                shootnuke(float);&lt;br /&gt;
show;&lt;br /&gt;
                                show();&lt;br /&gt;
showani float, float, float, float, oldstring;&lt;br /&gt;
                                showani(float,float,float,float,string);&lt;br /&gt;
showani2 float, float, float, float, float, oldstring;&lt;br /&gt;
                                showani2(float,float,float,float,float,string);&lt;br /&gt;
showcharacter;&lt;br /&gt;
                                showcharacter();&lt;br /&gt;
showfile oldstring;&lt;br /&gt;
                                showfile(string);&lt;br /&gt;
showimg float, oldstring, float, float;&lt;br /&gt;
                                showimg(float,string,float,float);&lt;br /&gt;
showimg2 float, oldstring, float, float, float;&lt;br /&gt;
                                showimg2(float,string,float,float,float);&lt;br /&gt;
showlocal;&lt;br /&gt;
                                showlocal();&lt;br /&gt;
&lt;br /&gt;
showpoly float, float;&lt;br /&gt;
                                showpoly(float,array);&lt;br /&gt;
showpoly2 float, float;&lt;br /&gt;
                                showpoly2(float,array);&lt;br /&gt;
showstats float;&lt;br /&gt;
                                showstats(float);&lt;br /&gt;
showtext float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
                                showtext(float,float,float,string,string,string);&lt;br /&gt;
showtext2 float, float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
                                showtext2(float,float,float,float,string,string,string);&lt;br /&gt;
sleep float;&lt;br /&gt;
                                sleep(float);&lt;br /&gt;
spyfire float, float;&lt;br /&gt;
                                spyfire(float,float);&lt;br /&gt;
stopmidi;&lt;br /&gt;
                                stopmidi();&lt;br /&gt;
stopsound oldstring;&lt;br /&gt;
                                stopsound(string);&lt;br /&gt;
take oldstring;&lt;br /&gt;
                                take(string);&lt;br /&gt;
take2 float;&lt;br /&gt;
                                take2(float);&lt;br /&gt;
takehorse float;&lt;br /&gt;
                                takehorse(float);&lt;br /&gt;
takeplayercarry;&lt;br /&gt;
                                takeplayercarry();&lt;br /&gt;
takeplayerhorse;&lt;br /&gt;
                                takeplayerhorse();&lt;br /&gt;
throwcarry;&lt;br /&gt;
                                throwcarry();&lt;br /&gt;
timereverywhere;&lt;br /&gt;
                                timereverywhere();&lt;br /&gt;
timershow;&lt;br /&gt;
                                timershow();&lt;br /&gt;
toinventory oldstring;&lt;br /&gt;
                                toinventory(string);&lt;br /&gt;
tokenize oldstring;&lt;br /&gt;
                                tokens = string.tokenize();&lt;br /&gt;
tokenize2 oldstring, oldstring;&lt;br /&gt;
                                tokens = string.tokenize(&amp;quot; ,&amp;quot; @ string);&lt;br /&gt;
toweapons oldstring;&lt;br /&gt;
                                toweapons(string);&lt;br /&gt;
triggeraction float, float, oldstring, oldstring;&lt;br /&gt;
                                triggeraction(float,float,string,string);&lt;br /&gt;
unfreezeplayer;&lt;br /&gt;
                                unfreezeplayer();&lt;br /&gt;
unset oldstring;&lt;br /&gt;
                                unset(string);&lt;br /&gt;
updateboard float, float, float, float;&lt;br /&gt;
                                updateboard(float,float,float,float);&lt;br /&gt;
updateterrain;&lt;br /&gt;
                                updateterrain();&lt;br /&gt;
wraptext float, oldstring, oldstring;&lt;br /&gt;
                                tokens = wraptext(float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
wraptext2 float, float, oldstring, oldstring;&lt;br /&gt;
                                tokens = wraptext2(float,float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Supported old scripting functions &amp;amp; their mapping to new script ===&lt;br /&gt;
&lt;br /&gt;
=== Supported old string operations ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
These old string operators can be used in string parameters&lt;br /&gt;
for the old commands, also you can use them directly as operators, e.g.&lt;br /&gt;
#c = &amp;quot;hello&amp;quot;&lt;br /&gt;
is actually doing&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#a            player.account&lt;br /&gt;
#a(float)     players[float].account&lt;br /&gt;
#m            player.ani&lt;br /&gt;
              ani&lt;br /&gt;
#m(float)     players[float].ani&lt;br /&gt;
#K(float)     getascii(float)&lt;br /&gt;
#8            player.bodyimg&lt;br /&gt;
              bodyimg&lt;br /&gt;
#8(float)     players[float].bodyimg&lt;br /&gt;
#c            player.chat&lt;br /&gt;
              chat&lt;br /&gt;
#c(float)     players[float].chat&lt;br /&gt;
#C0           player.colors[0]&lt;br /&gt;
              colors[0]&lt;br /&gt;
#C0(float)    players[float].colors[0]&lt;br /&gt;
#C1           player.colors[1]&lt;br /&gt;
              colors[1]&lt;br /&gt;
#C1(float)    players[float].colors[1]&lt;br /&gt;
#C2           player.colors[2]&lt;br /&gt;
              colors[2]&lt;br /&gt;
#C2(float)    players[float].colors[2]&lt;br /&gt;
#C3           player.colors[3]&lt;br /&gt;
              colors[3]&lt;br /&gt;
#C3(float)    players[float].colors[3]&lt;br /&gt;
#C4           player.colors[4]&lt;br /&gt;
              colors[4]&lt;br /&gt;
#C4(float)    players[float].colors[4]&lt;br /&gt;
#C5           player.colors[5]&lt;br /&gt;
              colors[5]&lt;br /&gt;
#C5(float)    players[float].colors[5]&lt;br /&gt;
#D            downloadfile()&lt;br /&gt;
#E            emoticonchar()&lt;br /&gt;
#e(float,float,oldstring)&lt;br /&gt;
              string.substring(float,float)&lt;br /&gt;
#g            player.guild&lt;br /&gt;
              guild&lt;br /&gt;
#g(float)     players[float].guild&lt;br /&gt;
#3            player.headimg&lt;br /&gt;
              headimg&lt;br /&gt;
#3(float)     players[float].headimg&lt;br /&gt;
#5            player.horseimg&lt;br /&gt;
              horseimg&lt;br /&gt;
#5(float)     players[float].horseimg&lt;br /&gt;
#k(float)     keyname(float)&lt;br /&gt;
#L            player.level&lt;br /&gt;
#I(oldstring,float)&lt;br /&gt;
              getstring(string)[float]&lt;br /&gt;
#n            player.nick&lt;br /&gt;
              nick&lt;br /&gt;
#n(float)     players[float].nick&lt;br /&gt;
#f            image&lt;br /&gt;
#f(float)     npcs[float].image&lt;br /&gt;
#F            level&lt;br /&gt;
#p(float)     params[float]&lt;br /&gt;
#P(float)     player.attr[float]&lt;br /&gt;
              attr[float]&lt;br /&gt;
#P(float,float)&lt;br /&gt;
              players[float].attr[float]&lt;br /&gt;
#P1           player.attr[1]&lt;br /&gt;
              attr[1]&lt;br /&gt;
#P1(float)    players[float].attr[1]&lt;br /&gt;
#P2           player.attr[2]&lt;br /&gt;
              attr[2]&lt;br /&gt;
#P2(float)    players[float].attr[2]&lt;br /&gt;
#P3           player.attr[3]&lt;br /&gt;
              attr[3]&lt;br /&gt;
#P3(float)    players[float].attr[3]&lt;br /&gt;
#P4           player.attr[4]&lt;br /&gt;
              attr[4]&lt;br /&gt;
#P4(float)    players[float].attr[4]&lt;br /&gt;
#P5           player.attr[5]&lt;br /&gt;
              attr[5]&lt;br /&gt;
#P5(float)    players[float].attr[5]&lt;br /&gt;
#P6           player.attr[6]&lt;br /&gt;
              attr[6]&lt;br /&gt;
#P6(float)    players[float].attr[6]&lt;br /&gt;
#P7           player.attr[7]&lt;br /&gt;
              attr[7]&lt;br /&gt;
#P7(float)    players[float].attr[7]&lt;br /&gt;
#P8           player.attr[8]&lt;br /&gt;
              attr[8]&lt;br /&gt;
#P8(float)    players[float].attr[8]&lt;br /&gt;
#P9           player.attr[9]&lt;br /&gt;
              attr[9]&lt;br /&gt;
#P9(float)    players[float].attr[9]&lt;br /&gt;
#R(oldstring) string.random()&lt;br /&gt;
#2            player.shieldimg&lt;br /&gt;
              shieldimg&lt;br /&gt;
#2(float)     players[float].shieldimg&lt;br /&gt;
#s(oldstring) getstring(string)&lt;br /&gt;
#1            player.swordimg&lt;br /&gt;
              swordimg&lt;br /&gt;
#1(float)     players[float].swordimg&lt;br /&gt;
#S            player.sword.script&lt;br /&gt;
#t(float)     tokens[float]&lt;br /&gt;
#T(oldstring) string.trim()&lt;br /&gt;
#v(float)     float&lt;br /&gt;
#W            player.weapon.icon&lt;br /&gt;
#W(float)     weapons[float].icon&lt;br /&gt;
#w            player.weapon.script&lt;br /&gt;
#w(float)     weapons[float].script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Compatibility note:&lt;br /&gt;
When you use the command setcharprop then the first parameter&lt;br /&gt;
is handled differently: instead of changing 'player.chat' it&lt;br /&gt;
is changing 'chat', the chat text of the npc. So 'setcharprop #c,hello'&lt;br /&gt;
would be translated into&lt;br /&gt;
chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
while 'setplayerprop #c,hello' is translated into&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
In the list above both possibilities are listed.&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1623</id>
		<title>Creation/Dev/GScript2</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1623"/>
		<updated>2005-02-27T12:33:57Z</updated>

		<summary type="html">&lt;p&gt;Evil: edited section titles&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Why scripts ===&lt;br /&gt;
&lt;br /&gt;
Scripts bring life into objects and make it easy to &lt;br /&gt;
customize the game. Instead of just placing a stone&lt;br /&gt;
into your world, you can make it so that the stone&lt;br /&gt;
can be lifted or kicked. Instead of being limited to&lt;br /&gt;
some fixed player movement you can rescript it&lt;br /&gt;
to let the player jump, strafe and duck. To let the &lt;br /&gt;
player inspect and organize his/her items you can&lt;br /&gt;
create some dialogs and display those by script,&lt;br /&gt;
e.g. when the player presses a special key.&lt;br /&gt;
&lt;br /&gt;
In Graal the scripting is done in 'Graal Script',&lt;br /&gt;
it's looking like Java/C++, but brings some &lt;br /&gt;
additional features for making things easier&lt;br /&gt;
for game creators, while on the other hand&lt;br /&gt;
running in a sandbox and limiting access to&lt;br /&gt;
game-related stuff only.&lt;br /&gt;
&lt;br /&gt;
Graal Script is almost fully compatible to &lt;br /&gt;
the 'old' Graal script used in Graal v1.0 - 3.0,&lt;br /&gt;
and is partially compatible to Torque script. &lt;br /&gt;
&lt;br /&gt;
=== NPCs and 'weapons' ===&lt;br /&gt;
&lt;br /&gt;
There are generally two types of objects in Graal&lt;br /&gt;
which have scripts: The first type are the &lt;br /&gt;
non-player-characters (NPCs). The name 'NPC' is&lt;br /&gt;
actually used for all visible objects in the game: &lt;br /&gt;
monsters, stones, bushes, houses, ships, plants etc.&lt;br /&gt;
Scripts for npcs are most of the time containing&lt;br /&gt;
code for moving the npc or for reacting to &lt;br /&gt;
activities of the player, e.g. giving money to&lt;br /&gt;
the player when he grabs the npc.&lt;br /&gt;
The other type of script-holding objects are the&lt;br /&gt;
'weapons'. Those are items in the inventory of&lt;br /&gt;
the player, not necessary being weapons. Most of&lt;br /&gt;
the time they are actually just scripts which&lt;br /&gt;
control the movement of the player, display weapon&lt;br /&gt;
graphics, or display menus.&lt;br /&gt;
&lt;br /&gt;
So there are objects in the game which have &lt;br /&gt;
their own script, and players which have a set&lt;br /&gt;
of scripts in their invisible backpack.&lt;br /&gt;
&lt;br /&gt;
=== Server-side and client-side ===&lt;br /&gt;
&lt;br /&gt;
Graal is an online game, and there are differences&lt;br /&gt;
to standard scripting in offline games.&lt;br /&gt;
In offline programs you have access to everything,&lt;br /&gt;
anytime. In online games everything is divided&lt;br /&gt;
into two parts: the server-side which controls&lt;br /&gt;
most things in the game, and the client-side which&lt;br /&gt;
displays the game to the player.&lt;br /&gt;
Since the client only displays things, it is not&lt;br /&gt;
possible to cheat by hacking the client. On client-side&lt;br /&gt;
you mainly have code for displaying special effects,&lt;br /&gt;
for displaying the GUI (windows, status bars, item menus),&lt;br /&gt;
playing sound effects and music. Also the player &lt;br /&gt;
movement is done on client-side.&lt;br /&gt;
On the server-side scripts are used to do the more&lt;br /&gt;
secure parts of the game engine are implemented,&lt;br /&gt;
and things that are the same for all players -&lt;br /&gt;
npcs are added, moved, npcs interact with players,&lt;br /&gt;
the stats of the players are calculated, the&lt;br /&gt;
communication between players is handled.&lt;br /&gt;
&lt;br /&gt;
All scripts for npcs and weapons can contain&lt;br /&gt;
server-side code and client-side code. The server-side&lt;br /&gt;
code is executed directly on the server, the&lt;br /&gt;
client-side code is sent to the client when he&lt;br /&gt;
logins and executed separately for each player on&lt;br /&gt;
their own computer. Usually the two parts of the script&lt;br /&gt;
are divided by line that only contains &amp;quot;//#CLIENTSIDE&amp;quot;,&lt;br /&gt;
like this:&lt;br /&gt;
&lt;br /&gt;
// Server-side part which is setting the image&lt;br /&gt;
// of the npc when it is created&lt;br /&gt;
function onCreated() {&lt;br /&gt;
  setimg(&amp;quot;door.png&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//#CLIENTSIDE&lt;br /&gt;
&lt;br /&gt;
// Here follows the client-side part,&lt;br /&gt;
// which plays a sound effect when the player&lt;br /&gt;
// touchs the npc&lt;br /&gt;
function onPlayerTouchsme() {&lt;br /&gt;
  play(&amp;quot;chest.wav&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Events ===&lt;br /&gt;
&lt;br /&gt;
In general scripts are made for reacting to &lt;br /&gt;
events - when the npc is created then the script&lt;br /&gt;
initializes the attributes of the npc,&lt;br /&gt;
when the player says something then the npc is&lt;br /&gt;
moving to the player, when the player grabs the&lt;br /&gt;
npc then the npc is giving the player some money etc.&lt;br /&gt;
So the script is basicly a collection of actions&lt;br /&gt;
that are done when special events are happening.&lt;br /&gt;
Events can e.g. be the &amp;quot;created&amp;quot; event when the npc&lt;br /&gt;
is created, the &amp;quot;playertouchsme&amp;quot; event when the &lt;br /&gt;
player touchs the npc, or the &amp;quot;playerchats&amp;quot; event&lt;br /&gt;
when the player says something. To write code reacts&lt;br /&gt;
to one of those event, you define an event&lt;br /&gt;
function like this:&lt;br /&gt;
&lt;br /&gt;
function onEVENTNAME() {&lt;br /&gt;
  // actions&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
When the event is happening, then Graal executes&lt;br /&gt;
that scripting function and all commands you &lt;br /&gt;
have added there.&lt;br /&gt;
Sometimes the event gives some parameters to the &lt;br /&gt;
event function, then change your function to:&lt;br /&gt;
&lt;br /&gt;
function onEVENTNAME(parameter1, paramater2, ...) {&lt;br /&gt;
  // actions&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
By accessing 'parameter1' etc. (you can name&lt;br /&gt;
them differently) you can react to the event more&lt;br /&gt;
exactly. &lt;br /&gt;
&lt;br /&gt;
Instead of reacting to events, the npcs and&lt;br /&gt;
weapons can also invoke new events. That way &lt;br /&gt;
you can let other npcs doing things. You also&lt;br /&gt;
need that if you want to coninuously doing things -&lt;br /&gt;
use timeout event for that.&lt;br /&gt;
&lt;br /&gt;
function onCreated() {&lt;br /&gt;
  timeout = 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function onTimeout() {&lt;br /&gt;
  // actions&lt;br /&gt;
  timeout = 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
In the onCreated event function the script is&lt;br /&gt;
setting the timer to 1 second. When that second is&lt;br /&gt;
over, then the &amp;quot;timeout&amp;quot; event is invoked on the&lt;br /&gt;
npc and the onTimeout event function is executed.&lt;br /&gt;
Because it is setting the timeout to 1 second&lt;br /&gt;
again, the onTimeout even will occur again after&lt;br /&gt;
one second, and so on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compatibility note:&lt;br /&gt;
In older Graal scripts you will also find the&lt;br /&gt;
deprecated way of receiving events:&lt;br /&gt;
&lt;br /&gt;
if (EVENTNAME) {&lt;br /&gt;
  // actions&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
That is an if-command outside of any brackets. If&lt;br /&gt;
Graal sees that you use such an if-command, then&lt;br /&gt;
it will execute the whole script so that the actions&lt;br /&gt;
you have written inside the if-command will be&lt;br /&gt;
executed too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
&lt;br /&gt;
=== Accessing variables ===&lt;br /&gt;
&lt;br /&gt;
Graal Script variables are 'variant', that means they are objects&lt;br /&gt;
that hold values of different types.&lt;br /&gt;
When you assign a value to the variable then it automatically&lt;br /&gt;
switches to the right type:&lt;br /&gt;
&lt;br /&gt;
Numeric (floating point):&lt;br /&gt;
  var = 1;&lt;br /&gt;
String:&lt;br /&gt;
  var = &amp;quot;hello&amp;quot;;&lt;br /&gt;
Object link:&lt;br /&gt;
  var = player;&lt;br /&gt;
Array (list of objects):&lt;br /&gt;
  var = {1,2,3};&lt;br /&gt;
&lt;br /&gt;
You can check the current type with the&lt;br /&gt;
type()-function - obj.type() returns&lt;br /&gt;
0,1,2,3 for numeric, string, object or array.&lt;br /&gt;
&lt;br /&gt;
=== Operators ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Addition                  a + b&lt;br /&gt;
Substraction              a - b&lt;br /&gt;
Mulitplication            a * b&lt;br /&gt;
Division                  a / b&lt;br /&gt;
Modulus                   a % b&lt;br /&gt;
Power                     a ^ b&lt;br /&gt;
String Concationation     a @ b&lt;br /&gt;
Bool-And                  a &amp;amp;&amp;amp; b&lt;br /&gt;
Bool-Or                   a || b&lt;br /&gt;
Bool-Not                  !a&lt;br /&gt;
Negative                  -a&lt;br /&gt;
Equal                     a == b&lt;br /&gt;
Not-Equal                 a != b&lt;br /&gt;
Less                      a &amp;lt; b&lt;br /&gt;
Greater                   a &amp;gt; b&lt;br /&gt;
Less-Equal                a &amp;lt;= b,  a =&amp;lt; b&lt;br /&gt;
Greater-Equal             a &amp;gt;= b,  a =&amp;gt; b&lt;br /&gt;
In-Range                  a in &amp;lt;b,c&amp;gt;, a in |b,c&amp;gt;, a in &amp;lt;b,c|, a in |b,c|&lt;br /&gt;
In-Array                  a in {b,c,...}, {a,b,...} in {c,d,...}&lt;br /&gt;
Bitwise-Or                a | b&lt;br /&gt;
Bitwise-And               a &amp;amp; b&lt;br /&gt;
Bitwise-Shift left        a &amp;lt;&amp;lt; b&lt;br /&gt;
Bitwise-Shift right       a &amp;gt;&amp;gt; b&lt;br /&gt;
Bitwise-Invert            ~a&lt;br /&gt;
Bitwise-Xor               a xor b (operator ^ already used for power)&lt;br /&gt;
Array-Constructor         {a,b,...}&lt;br /&gt;
Empty Array               new [count]&lt;br /&gt;
Array Member              a[index]&lt;br /&gt;
Function call             a(), a(b,c,...)&lt;br /&gt;
Object Attribute          a.b, a.(b)&lt;br /&gt;
Post Increment            a++&lt;br /&gt;
Post Decrement            a--&lt;br /&gt;
Pre Increment             ++a&lt;br /&gt;
Pre Decrement             --a&lt;br /&gt;
Old String Function       #a&lt;br /&gt;
Conditional               a? b : c&lt;br /&gt;
Assignment                a = b, a := b&lt;br /&gt;
Additive Assignment       a += b&lt;br /&gt;
Substractive Assignment   a -= b&lt;br /&gt;
Multiplicative Assignment a *= b&lt;br /&gt;
Division Assignment       a /= b&lt;br /&gt;
Modulus Assignment        a %= b&lt;br /&gt;
Power Assignment          a ^= b&lt;br /&gt;
Bitwise-Or Assignment     a |= b&lt;br /&gt;
Bitwise-And Assignment    a &amp;amp;= b&lt;br /&gt;
Shift Left Assignment     a &amp;lt;&amp;lt;= b&lt;br /&gt;
Shift Right Assignment    a &amp;gt;&amp;gt;= b&lt;br /&gt;
String Append             a @= b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Standard object functions ===&lt;br /&gt;
&lt;br /&gt;
For a complete list of functions and attributes of objects&lt;br /&gt;
see docu_graalscriptfunctions.txt. The base type of all&lt;br /&gt;
objects is &amp;quot;TGraalVar&amp;quot;. You can also get the latest list by&lt;br /&gt;
calling the executale with &amp;quot;-listscriptfunctions&amp;quot; as &lt;br /&gt;
command-line parameter. &lt;br /&gt;
Here only of the built-in functions:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
obj.type()  - gets the type of the var (float 0, string 1, object 2, array 3)&lt;br /&gt;
obj.length() - string length&lt;br /&gt;
obj.trim()&lt;br /&gt;
obj.tokenize([delimiters])&lt;br /&gt;
obj.charat(pos)&lt;br /&gt;
obj.pos(substring)&lt;br /&gt;
obj.starts(string)&lt;br /&gt;
obj.ends(string)&lt;br /&gt;
obj.substring(index[,length])&lt;br /&gt;
obj.size() - array length&lt;br /&gt;
obj.subarray(index[,length])&lt;br /&gt;
obj.addarray(obj2)&lt;br /&gt;
obj.insertarray(index,obj2)&lt;br /&gt;
obj.index(obj2) - position of obj2 in the array&lt;br /&gt;
obj.clear()&lt;br /&gt;
obj.add(obj2)&lt;br /&gt;
obj.delete(index)&lt;br /&gt;
obj.remove(obj2)&lt;br /&gt;
obj.replace(index,obj2)&lt;br /&gt;
obj.insert(index,obj2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Standard functions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
format(format,parameters,...) - formats a &amp;quot;%s %d&amp;quot; string, inserts the parameters, and returns a string&lt;br /&gt;
int(a)&lt;br /&gt;
abs(a)&lt;br /&gt;
random(rangestart,rangeend)&lt;br /&gt;
sin(a)&lt;br /&gt;
cos(a)&lt;br /&gt;
arctan(a)&lt;br /&gt;
exp(a)&lt;br /&gt;
log(base,a)&lt;br /&gt;
min(a,b)&lt;br /&gt;
max(a,b)&lt;br /&gt;
getangle(delta x,delta y)&lt;br /&gt;
getdir(delta x,delta y)&lt;br /&gt;
vecx(direction)&lt;br /&gt;
vecy(direction)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
=== Gui controls ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
onAdd() when added to the parent&lt;br /&gt;
onRemove() when removed from the parent&lt;br /&gt;
onWake() when activated&lt;br /&gt;
onSleep() when deactivated&lt;br /&gt;
onResize(w,h)&lt;br /&gt;
onMove(x,y)&lt;br /&gt;
onMouseEnter(modifier,x,y,clickcount)&lt;br /&gt;
onMouseLeave(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseMove(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelDown(modifier,x,y,clickcount)&lt;br /&gt;
onKeyDown(keycode,string)&lt;br /&gt;
onKeyUp(keycode,string)&lt;br /&gt;
onKeyRepeat(keycode,string)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== GuiMLTextCtrl: ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
onReflow(w,h) when the text has changed&lt;br /&gt;
onURL(url) when clicked on url&lt;br /&gt;
onSelectTag(tagid) when clicked on an image&lt;br /&gt;
&lt;br /&gt;
Text-Tags:&lt;br /&gt;
The text of multi-line text controls can contain&lt;br /&gt;
a few HTML-tags and Torque-tags, you can use both&lt;br /&gt;
of those tag types to define colors and fonts&lt;br /&gt;
or to include images. Currently following tags&lt;br /&gt;
are available:&lt;br /&gt;
&lt;br /&gt;
HTML:&lt;br /&gt;
&amp;lt;a href=url&amp;gt; text &amp;lt;/a&amp;gt; - when the user clicks on 'text' then &lt;br /&gt;
  a web browser is opened for the specified url&lt;br /&gt;
&amp;lt;br&amp;gt; - line break&lt;br /&gt;
&amp;lt;font face=fontname size=textsize color=colorname or #rrggbb&amp;gt; text &amp;lt;/font&amp;gt;&lt;br /&gt;
  - draws text with a special font, size and color; you only&lt;br /&gt;
  need to define one of those 3 attributes&lt;br /&gt;
&amp;lt;ignorelinebreaks&amp;gt; &amp;lt;/ignorelinebreaks&amp;gt; - go into normal HTML mode where&lt;br /&gt;
  you need to insert &amp;lt;br&amp;gt; to do a linebreak&lt;br /&gt;
&amp;lt;img src=filename id=integer&amp;gt; - an image is displayed, you &lt;br /&gt;
  can also specify a tagid if you want to get onSelectTag-events&lt;br /&gt;
  for this image&lt;br /&gt;
&amp;lt;p align=left/center/right&amp;gt; - sets the align of the following text&lt;br /&gt;
&amp;lt;span style=&amp;quot;width=100; height=100;&amp;quot; id=integer&amp;gt; &amp;lt;/span&amp;gt; - for &lt;br /&gt;
  displaying a subpage, you can also specifiy an id for &lt;br /&gt;
  onSelectTag-events; instead of &amp;lt;span&amp;gt; you can also use &amp;lt;div&amp;gt; tags&lt;br /&gt;
&lt;br /&gt;
Torque:&lt;br /&gt;
&amp;lt;a:url&amp;gt; text &amp;lt;/a&amp;gt; - when the user clicks on 'text' then &lt;br /&gt;
  a web browser is opened for the specified url&lt;br /&gt;
&amp;lt;bitmap:filename&amp;gt; - an image is displayed&lt;br /&gt;
&amp;lt;color:rrggbb&amp;gt; - sets the color of the text (hexadecimal value)&lt;br /&gt;
&amp;lt;lmargin:pixels&amp;gt; - sets the left margin for the text&lt;br /&gt;
&amp;lt;lmargin%:percent&amp;gt; - sets the size of the left margin depending &lt;br /&gt;
  on the width of the whole control&lt;br /&gt;
&amp;lt;linkcolor:rrggbb&amp;gt; - sets the color of links (the &amp;lt;a&amp;gt;-tag)&lt;br /&gt;
&amp;lt;linkcolorhl:rrggbb&amp;gt; - sets the highlighted color, when&lt;br /&gt;
  the user moves the mouse over a link&lt;br /&gt;
&amp;lt;just:left/center/right&amp;gt; - sets the align of the following text&lt;br /&gt;
&amp;lt;rmargin:pixels&amp;gt; - sets the right margin for the text&lt;br /&gt;
&amp;lt;rmargin%:percent&amp;gt; - sets the size of the right margin depending &lt;br /&gt;
  on the width of the whole control&lt;br /&gt;
&amp;lt;sbreak&amp;gt; - line break&lt;br /&gt;
&amp;lt;spush&amp;gt; - switches to a new style (like &amp;lt;font&amp;gt;)&lt;br /&gt;
&amp;lt;spop&amp;gt; - switches back to the last saved style (like &amp;lt;/font&amp;gt;)&lt;br /&gt;
&amp;lt;tab:tab1,tab2,..&amp;gt; - sets the position of where tabulators should&lt;br /&gt;
  be displayed if you have text like 'Apple \t Egg \t Chicken'&lt;br /&gt;
&amp;lt;tag:id&amp;gt; - inserts an invisible tag which can be used&lt;br /&gt;
  for the scrollToTag(id) function (beside image-tags)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== GuiTextEditCtrl: ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
onTabComplete()&lt;br /&gt;
onAction(text) when return key pressed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== GuiTextListCtrl: ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
onSelect(id,text) when row selected&lt;br /&gt;
onDblClick(id) when double-click on row or return key pressed&lt;br /&gt;
onDeleteKey(id) when delete key pressed&lt;br /&gt;
onIconResized(w,h) when setIconSize() called&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== GuiPopUpMenuCtrl: ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
onSelect(id,text) when menu option choosen&lt;br /&gt;
onCancel() when menu is closed without action&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== GuiMenuBar: ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
onMenuSelect(menuid,menutext)&lt;br /&gt;
onMenuItemSelect(menuid,menutext,itemid,itemtext)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== GuiTreeViewCtrl: ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
onSelect(id,rightmouse) when row selected&lt;br /&gt;
onUnselect(id) when row de-selected&lt;br /&gt;
onInspect(id) when clicked on the name of an item&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
onContextMenu(&amp;quot;x y&amp;quot;,id) when clicked with right-mouse key on row&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Old script compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Removed functionality ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- toinventory&lt;br /&gt;
- followplayer&lt;br /&gt;
- playersays()&lt;br /&gt;
- setbackpal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Supported old scripting commands &amp;amp; their mapping to new script ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
addstring oldstring, oldstring;&lt;br /&gt;
                                addstring(string,string);&lt;br /&gt;
addtiledef oldstring, oldstring, float;&lt;br /&gt;
                                addtiledef(string,string,float);&lt;br /&gt;
addtiledef2 oldstring, oldstring, float, float;&lt;br /&gt;
                                addtiledef2(string,string,float,float);&lt;br /&gt;
attachplayertoobj float, float;&lt;br /&gt;
                                attachplayertoobj(float,float);&lt;br /&gt;
blockagain;&lt;br /&gt;
                                blockagain();&lt;br /&gt;
blockagainlocal;&lt;br /&gt;
                                blockagainlocal();&lt;br /&gt;
callnpc float, oldstring;&lt;br /&gt;
                                callnpc(float,string);&lt;br /&gt;
callweapon float, oldstring;&lt;br /&gt;
                                callweapon(float,string);&lt;br /&gt;
canbecarried;&lt;br /&gt;
                                canbecarried();&lt;br /&gt;
canbepulled;&lt;br /&gt;
                                canbepulled();&lt;br /&gt;
canbepushed;&lt;br /&gt;
                                canbepushed();&lt;br /&gt;
cannotbecarried;&lt;br /&gt;
                                cannotbecarried();&lt;br /&gt;
cannotbepulled;&lt;br /&gt;
                                cannotbepulled();&lt;br /&gt;
cannotbepushed;&lt;br /&gt;
                                cannotbepushed();&lt;br /&gt;
canwarp;&lt;br /&gt;
                                canwarp();&lt;br /&gt;
canwarp2;&lt;br /&gt;
                                canwarp2();&lt;br /&gt;
carryobject oldstring;&lt;br /&gt;
                                carryobject(string);&lt;br /&gt;
changeimgcolors float, float, float, float, float;&lt;br /&gt;
                                changeimgcolors(float,float,float,float,float);&lt;br /&gt;
changeimgmode float, float;&lt;br /&gt;
                                changeimgmode(float,float);&lt;br /&gt;
changeimgpart float, float, float, float, float;&lt;br /&gt;
                                changeimgpart(float,float,float,float,float);&lt;br /&gt;
changeimgvis float, float;&lt;br /&gt;
                                changeimgvis(float,float);&lt;br /&gt;
changeimgzoom float, float;&lt;br /&gt;
                                changeimgzoom(float,float);&lt;br /&gt;
deletestring oldstring, float;&lt;br /&gt;
                                deletestring(string,float);&lt;br /&gt;
destroy;&lt;br /&gt;
                                destroy();&lt;br /&gt;
detachplayer;&lt;br /&gt;
                                detachplayer();&lt;br /&gt;
disabledefmovement;&lt;br /&gt;
                                disabledefmovement();&lt;br /&gt;
disablemap;&lt;br /&gt;
                                disablemap();&lt;br /&gt;
disablepause;&lt;br /&gt;
                                disablepause();&lt;br /&gt;
disableselectweapons;&lt;br /&gt;
                                disableselectweapons();&lt;br /&gt;
disableweapons;&lt;br /&gt;
                                disableweapons();&lt;br /&gt;
dontblock;&lt;br /&gt;
                                dontblock();&lt;br /&gt;
dontblocklocal;&lt;br /&gt;
                                dontblocklocal();&lt;br /&gt;
drawaslight;&lt;br /&gt;
                                drawaslight();&lt;br /&gt;
drawoverplayer;&lt;br /&gt;
                                drawoverplayer();&lt;br /&gt;
drawunderplayer;&lt;br /&gt;
                                drawunderplayer();&lt;br /&gt;
enabledefmovement;&lt;br /&gt;
                                enabledefmovement();&lt;br /&gt;
enablefeatures float;&lt;br /&gt;
                                enablefeatures(float);&lt;br /&gt;
enablemap;&lt;br /&gt;
                                enablemap();&lt;br /&gt;
enablepause;&lt;br /&gt;
                                enablepause();&lt;br /&gt;
enableselectweapons;&lt;br /&gt;
                                enableselectweapons();&lt;br /&gt;
enableweapons;&lt;br /&gt;
                                enableweapons();&lt;br /&gt;
explodebomb float;&lt;br /&gt;
                                explodebomb(float);&lt;br /&gt;
followplayer;&lt;br /&gt;
                                followplayer();&lt;br /&gt;
freezeplayer float;&lt;br /&gt;
                                freezeplayer(float);&lt;br /&gt;
freezeplayer2;&lt;br /&gt;
                                freezeplayer2();&lt;br /&gt;
hide;&lt;br /&gt;
                                hide();&lt;br /&gt;
hideimg float;&lt;br /&gt;
                                hideimg(float);&lt;br /&gt;
hideimgs float, float;&lt;br /&gt;
                                hideimgs(float,float);&lt;br /&gt;
hidelocal;&lt;br /&gt;
                                hidelocal();&lt;br /&gt;
&lt;br /&gt;
hitcompu float, float, float, float;&lt;br /&gt;
                                hitcompu(float,float,float,float);&lt;br /&gt;
hitnpc float, float, float, float;&lt;br /&gt;
                                hitnpc(float,float,float,float);&lt;br /&gt;
hitobjects float, float, float;&lt;br /&gt;
                                hitobjects(float,float,float);&lt;br /&gt;
hideplayer float;&lt;br /&gt;
                                hideplayer(float);&lt;br /&gt;
hidesword float;&lt;br /&gt;
                                hidesword(float);&lt;br /&gt;
hitplayer float, float, float, float;&lt;br /&gt;
                                hitplayer(float,float,float,float);&lt;br /&gt;
hurt float;&lt;br /&gt;
                                hurt(float);&lt;br /&gt;
insertstring oldstring, float, oldstring;&lt;br /&gt;
                                insertstring(string,float,string);&lt;br /&gt;
join oldstring;&lt;br /&gt;
                                join(string);&lt;br /&gt;
lay oldstring;&lt;br /&gt;
                                lay(string);&lt;br /&gt;
lay2 oldstring, float, float;&lt;br /&gt;
                                lay2(string,float,float);&lt;br /&gt;
loadmap oldstring;&lt;br /&gt;
                                loadmap(string);&lt;br /&gt;
message oldstring;&lt;br /&gt;
                                message(string);&lt;br /&gt;
move float, float, float, float;&lt;br /&gt;
                                move(float,float,float,float);&lt;br /&gt;
noplayerkilling;&lt;br /&gt;
                                noplayerkilling();&lt;br /&gt;
openurl oldstring;&lt;br /&gt;
                                openurl(string);&lt;br /&gt;
openurl2 oldstring, float, float;&lt;br /&gt;
                                openurl2(string,float,float);&lt;br /&gt;
play oldstring;&lt;br /&gt;
                                play(string);&lt;br /&gt;
play2 oldstring, float, float, float;&lt;br /&gt;
                                play2(string,float,float,float);&lt;br /&gt;
playlooped oldstring;&lt;br /&gt;
                                playlooped(string);&lt;br /&gt;
putbomb float, float, float;&lt;br /&gt;
                                putbomb(float,float,float);&lt;br /&gt;
putcomp oldstring, float, float;&lt;br /&gt;
                                putcomp(string,float,float);&lt;br /&gt;
putexplosion float, float, float;&lt;br /&gt;
                                putexplosion(float,float,float);&lt;br /&gt;
putexplosion2 float, float, float, float;&lt;br /&gt;
                                putexplosion2(float,float,float,float);&lt;br /&gt;
puthorse oldstring, float, float;&lt;br /&gt;
                                puthorse(string,float,float);&lt;br /&gt;
putleaps float, float, float;&lt;br /&gt;
                                putleaps(float,float,float);&lt;br /&gt;
putnewcomp oldstring, float, float, oldstring, float;&lt;br /&gt;
                                putnewcomp(string,float,float,string,float);&lt;br /&gt;
putnpc oldstring, oldstring, float, float;&lt;br /&gt;
                                putnpc(string,string,float,float);&lt;br /&gt;
putnpc2 float, float, oldstring;&lt;br /&gt;
                                putnpc2(float,float,string);&lt;br /&gt;
reflectarrow float;&lt;br /&gt;
                                reflectarrow(float);&lt;br /&gt;
removearrow float;&lt;br /&gt;
                                removearrow(float);&lt;br /&gt;
removebomb float;&lt;br /&gt;
                                removebomb(float);&lt;br /&gt;
removecompus;&lt;br /&gt;
                                removecompus();&lt;br /&gt;
removeexplo float;&lt;br /&gt;
                                removeexplo(float);&lt;br /&gt;
removehorse float;&lt;br /&gt;
                                removehorse(float);&lt;br /&gt;
rmeoveitem float;&lt;br /&gt;
                                removeitem(float)&lt;br /&gt;
removestring oldstring, oldstring;&lt;br /&gt;
                                removestring(string,string);&lt;br /&gt;
removetiledefs oldstring;&lt;br /&gt;
                                removetiledefs(string);&lt;br /&gt;
replaceani oldstring, oldstring;&lt;br /&gt;
                                replaceani(string,string);&lt;br /&gt;
replacestring oldstring, float, oldstring;&lt;br /&gt;
                                replacestring(string,float,string);&lt;br /&gt;
resetfocus;&lt;br /&gt;
                                resetfocus();&lt;br /&gt;
savelog oldstring;&lt;br /&gt;
                                savelog(string);&lt;br /&gt;
savelog2 oldstring, oldstring;&lt;br /&gt;
                                savelog2(string,string);&lt;br /&gt;
say float;&lt;br /&gt;
                                say(float);&lt;br /&gt;
say2 oldstring;&lt;br /&gt;
                                say2(string);&lt;br /&gt;
sendrpgmessage oldstring;&lt;br /&gt;
                                sendrpgmessage(string);&lt;br /&gt;
sendpm oldstring;&lt;br /&gt;
                                sendpm(string);&lt;br /&gt;
sendtonc oldstring;&lt;br /&gt;
                                sendtonc(string);&lt;br /&gt;
sendtorc oldstring;&lt;br /&gt;
                                sendtorc(string);&lt;br /&gt;
serverwarp oldstring;&lt;br /&gt;
                                serverwarp(string);&lt;br /&gt;
set oldstring;&lt;br /&gt;
                                set(string);&lt;br /&gt;
setani oldstring, oldstring;&lt;br /&gt;
                                setani(string,string);&lt;br /&gt;
setarray float, float;&lt;br /&gt;
                                setarray(var,float);&lt;br /&gt;
setbeltcolor oldstring;&lt;br /&gt;
                                setbeltcolor(string);&lt;br /&gt;
setbow oldstring;&lt;br /&gt;
                                setbow(string);&lt;br /&gt;
setcharani oldstring, oldstring;&lt;br /&gt;
                                setcharani(string,string);&lt;br /&gt;
setchargender oldstring;&lt;br /&gt;
                                setchargender(string);&lt;br /&gt;
setcharprop oldstring, oldstring;&lt;br /&gt;
                                string = string;&lt;br /&gt;
setcoatcolor oldstring;&lt;br /&gt;
                                setcoatcolor(string);&lt;br /&gt;
setcoloreffect float, float, float, float;&lt;br /&gt;
                                setcoloreffect(float,float,float,float);&lt;br /&gt;
setcursor float;&lt;br /&gt;
                                setcursor(float);&lt;br /&gt;
setcurcor2 oldstring;&lt;br /&gt;
                                setcursor2(string);&lt;br /&gt;
seteffect float, float, float, float;&lt;br /&gt;
                                seteffect(float,float,float,float);&lt;br /&gt;
seteffectmode float;&lt;br /&gt;
                                seteffectmode(float);&lt;br /&gt;
setfocus float, float;&lt;br /&gt;
                                setfocus(float,float);&lt;br /&gt;
setgender oldstring;&lt;br /&gt;
                                setgender(string);&lt;br /&gt;
sethead oldstring;&lt;br /&gt;
                                sethead(string);&lt;br /&gt;
setlevel oldstring;&lt;br /&gt;
                                setlevel(string);&lt;br /&gt;
setlevel2 oldstring, float, float;&lt;br /&gt;
                                setlevel2(string,float,float);&lt;br /&gt;
setmap oldstring, oldstring, float, float;&lt;br /&gt;
                                setmap(string,string,float,float);&lt;br /&gt;
setminimap oldstring, oldstring, float, float;&lt;br /&gt;
                                setminimap(string,string,float,float);&lt;br /&gt;
setmusicvolume float, float;&lt;br /&gt;
                                setmusicvolume(float,float);&lt;br /&gt;
setimg oldstring;&lt;br /&gt;
                                setimg(string);&lt;br /&gt;
setimgpart oldstring, float, float, float, float;&lt;br /&gt;
                                setimgpart(string,float,float,float,float);&lt;br /&gt;
setletters oldstring;&lt;br /&gt;
                                setletters(string);&lt;br /&gt;
setplayerdir oldstring;&lt;br /&gt;
                                setplayerdir(string);&lt;br /&gt;
setplayerprop oldstring, oldstring;&lt;br /&gt;
                                string = string;&lt;br /&gt;
setpm oldstring;&lt;br /&gt;
                                setpm(string);&lt;br /&gt;
setshape float, float, float;&lt;br /&gt;
                                setshape(float,float,float);&lt;br /&gt;
setshape2 float, float, float;&lt;br /&gt;
                                setshape2(float,float,float);&lt;br /&gt;
setshield oldstring, float;&lt;br /&gt;
                                setshield(string,float);&lt;br /&gt;
setshoecolor oldstring;&lt;br /&gt;
                                setshoecolor(string);&lt;br /&gt;
setshootparams oldstring;&lt;br /&gt;
                                setshootparams(string);&lt;br /&gt;
setskincolor oldstring;&lt;br /&gt;
                                setskincolor(string);&lt;br /&gt;
setsleevecolor oldstring;&lt;br /&gt;
                                setsleevecolor(string);&lt;br /&gt;
setstring oldstring, oldstring;&lt;br /&gt;
                                setstring(string,string);&lt;br /&gt;
setsword oldstring, float;&lt;br /&gt;
                                setsword(string,float);&lt;br /&gt;
seturllevel oldstring;&lt;br /&gt;
                                seturllevel(string);&lt;br /&gt;
setz float, float, float, float, float, float, float, float;&lt;br /&gt;
                                setz(float,float,float,float,float,float,float,float);&lt;br /&gt;
setzoomeffect float;&lt;br /&gt;
                                setzoomeffect(float);&lt;br /&gt;
shoot float, float, float, float, float, float, oldstring, oldstring;&lt;br /&gt;
                                shoot(float,float,float,float,float,float,string,string);&lt;br /&gt;
shootarrow float;&lt;br /&gt;
                                shootarrow(float);&lt;br /&gt;
shootball;&lt;br /&gt;
                                shootball();&lt;br /&gt;
shootfireball float;&lt;br /&gt;
                                shootfireball(float);&lt;br /&gt;
shootfireblast float;&lt;br /&gt;
                                shootfireblast(float);&lt;br /&gt;
shootnuke float;&lt;br /&gt;
                                shootnuke(float);&lt;br /&gt;
show;&lt;br /&gt;
                                show();&lt;br /&gt;
showani float, float, float, float, oldstring;&lt;br /&gt;
                                showani(float,float,float,float,string);&lt;br /&gt;
showani2 float, float, float, float, float, oldstring;&lt;br /&gt;
                                showani2(float,float,float,float,float,string);&lt;br /&gt;
showcharacter;&lt;br /&gt;
                                showcharacter();&lt;br /&gt;
showfile oldstring;&lt;br /&gt;
                                showfile(string);&lt;br /&gt;
showimg float, oldstring, float, float;&lt;br /&gt;
                                showimg(float,string,float,float);&lt;br /&gt;
showimg2 float, oldstring, float, float, float;&lt;br /&gt;
                                showimg2(float,string,float,float,float);&lt;br /&gt;
showlocal;&lt;br /&gt;
                                showlocal();&lt;br /&gt;
&lt;br /&gt;
showpoly float, float;&lt;br /&gt;
                                showpoly(float,array);&lt;br /&gt;
showpoly2 float, float;&lt;br /&gt;
                                showpoly2(float,array);&lt;br /&gt;
showstats float;&lt;br /&gt;
                                showstats(float);&lt;br /&gt;
showtext float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
                                showtext(float,float,float,string,string,string);&lt;br /&gt;
showtext2 float, float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
                                showtext2(float,float,float,float,string,string,string);&lt;br /&gt;
sleep float;&lt;br /&gt;
                                sleep(float);&lt;br /&gt;
spyfire float, float;&lt;br /&gt;
                                spyfire(float,float);&lt;br /&gt;
stopmidi;&lt;br /&gt;
                                stopmidi();&lt;br /&gt;
stopsound oldstring;&lt;br /&gt;
                                stopsound(string);&lt;br /&gt;
take oldstring;&lt;br /&gt;
                                take(string);&lt;br /&gt;
take2 float;&lt;br /&gt;
                                take2(float);&lt;br /&gt;
takehorse float;&lt;br /&gt;
                                takehorse(float);&lt;br /&gt;
takeplayercarry;&lt;br /&gt;
                                takeplayercarry();&lt;br /&gt;
takeplayerhorse;&lt;br /&gt;
                                takeplayerhorse();&lt;br /&gt;
throwcarry;&lt;br /&gt;
                                throwcarry();&lt;br /&gt;
timereverywhere;&lt;br /&gt;
                                timereverywhere();&lt;br /&gt;
timershow;&lt;br /&gt;
                                timershow();&lt;br /&gt;
toinventory oldstring;&lt;br /&gt;
                                toinventory(string);&lt;br /&gt;
tokenize oldstring;&lt;br /&gt;
                                tokens = string.tokenize();&lt;br /&gt;
tokenize2 oldstring, oldstring;&lt;br /&gt;
                                tokens = string.tokenize(&amp;quot; ,&amp;quot; @ string);&lt;br /&gt;
toweapons oldstring;&lt;br /&gt;
                                toweapons(string);&lt;br /&gt;
triggeraction float, float, oldstring, oldstring;&lt;br /&gt;
                                triggeraction(float,float,string,string);&lt;br /&gt;
unfreezeplayer;&lt;br /&gt;
                                unfreezeplayer();&lt;br /&gt;
unset oldstring;&lt;br /&gt;
                                unset(string);&lt;br /&gt;
updateboard float, float, float, float;&lt;br /&gt;
                                updateboard(float,float,float,float);&lt;br /&gt;
updateterrain;&lt;br /&gt;
                                updateterrain();&lt;br /&gt;
wraptext float, oldstring, oldstring;&lt;br /&gt;
                                tokens = wraptext(float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
wraptext2 float, float, oldstring, oldstring;&lt;br /&gt;
                                tokens = wraptext2(float,float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Supported old scripting functions &amp;amp; their mapping to new script ===&lt;br /&gt;
&lt;br /&gt;
=== Supported old string operations ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
These old string operators can be used in string parameters&lt;br /&gt;
for the old commands, also you can use them directly as operators, e.g.&lt;br /&gt;
#c = &amp;quot;hello&amp;quot;&lt;br /&gt;
is actually doing&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#a            player.account&lt;br /&gt;
#a(float)     players[float].account&lt;br /&gt;
#m            player.ani&lt;br /&gt;
              ani&lt;br /&gt;
#m(float)     players[float].ani&lt;br /&gt;
#K(float)     getascii(float)&lt;br /&gt;
#8            player.bodyimg&lt;br /&gt;
              bodyimg&lt;br /&gt;
#8(float)     players[float].bodyimg&lt;br /&gt;
#c            player.chat&lt;br /&gt;
              chat&lt;br /&gt;
#c(float)     players[float].chat&lt;br /&gt;
#C0           player.colors[0]&lt;br /&gt;
              colors[0]&lt;br /&gt;
#C0(float)    players[float].colors[0]&lt;br /&gt;
#C1           player.colors[1]&lt;br /&gt;
              colors[1]&lt;br /&gt;
#C1(float)    players[float].colors[1]&lt;br /&gt;
#C2           player.colors[2]&lt;br /&gt;
              colors[2]&lt;br /&gt;
#C2(float)    players[float].colors[2]&lt;br /&gt;
#C3           player.colors[3]&lt;br /&gt;
              colors[3]&lt;br /&gt;
#C3(float)    players[float].colors[3]&lt;br /&gt;
#C4           player.colors[4]&lt;br /&gt;
              colors[4]&lt;br /&gt;
#C4(float)    players[float].colors[4]&lt;br /&gt;
#C5           player.colors[5]&lt;br /&gt;
              colors[5]&lt;br /&gt;
#C5(float)    players[float].colors[5]&lt;br /&gt;
#D            downloadfile()&lt;br /&gt;
#E            emoticonchar()&lt;br /&gt;
#e(float,float,oldstring)&lt;br /&gt;
              string.substring(float,float)&lt;br /&gt;
#g            player.guild&lt;br /&gt;
              guild&lt;br /&gt;
#g(float)     players[float].guild&lt;br /&gt;
#3            player.headimg&lt;br /&gt;
              headimg&lt;br /&gt;
#3(float)     players[float].headimg&lt;br /&gt;
#5            player.horseimg&lt;br /&gt;
              horseimg&lt;br /&gt;
#5(float)     players[float].horseimg&lt;br /&gt;
#k(float)     keyname(float)&lt;br /&gt;
#L            player.level&lt;br /&gt;
#I(oldstring,float)&lt;br /&gt;
              getstring(string)[float]&lt;br /&gt;
#n            player.nick&lt;br /&gt;
              nick&lt;br /&gt;
#n(float)     players[float].nick&lt;br /&gt;
#f            image&lt;br /&gt;
#f(float)     npcs[float].image&lt;br /&gt;
#F            level&lt;br /&gt;
#p(float)     params[float]&lt;br /&gt;
#P(float)     player.attr[float]&lt;br /&gt;
              attr[float]&lt;br /&gt;
#P(float,float)&lt;br /&gt;
              players[float].attr[float]&lt;br /&gt;
#P1           player.attr[1]&lt;br /&gt;
              attr[1]&lt;br /&gt;
#P1(float)    players[float].attr[1]&lt;br /&gt;
#P2           player.attr[2]&lt;br /&gt;
              attr[2]&lt;br /&gt;
#P2(float)    players[float].attr[2]&lt;br /&gt;
#P3           player.attr[3]&lt;br /&gt;
              attr[3]&lt;br /&gt;
#P3(float)    players[float].attr[3]&lt;br /&gt;
#P4           player.attr[4]&lt;br /&gt;
              attr[4]&lt;br /&gt;
#P4(float)    players[float].attr[4]&lt;br /&gt;
#P5           player.attr[5]&lt;br /&gt;
              attr[5]&lt;br /&gt;
#P5(float)    players[float].attr[5]&lt;br /&gt;
#P6           player.attr[6]&lt;br /&gt;
              attr[6]&lt;br /&gt;
#P6(float)    players[float].attr[6]&lt;br /&gt;
#P7           player.attr[7]&lt;br /&gt;
              attr[7]&lt;br /&gt;
#P7(float)    players[float].attr[7]&lt;br /&gt;
#P8           player.attr[8]&lt;br /&gt;
              attr[8]&lt;br /&gt;
#P8(float)    players[float].attr[8]&lt;br /&gt;
#P9           player.attr[9]&lt;br /&gt;
              attr[9]&lt;br /&gt;
#P9(float)    players[float].attr[9]&lt;br /&gt;
#R(oldstring) string.random()&lt;br /&gt;
#2            player.shieldimg&lt;br /&gt;
              shieldimg&lt;br /&gt;
#2(float)     players[float].shieldimg&lt;br /&gt;
#s(oldstring) getstring(string)&lt;br /&gt;
#1            player.swordimg&lt;br /&gt;
              swordimg&lt;br /&gt;
#1(float)     players[float].swordimg&lt;br /&gt;
#S            player.sword.script&lt;br /&gt;
#t(float)     tokens[float]&lt;br /&gt;
#T(oldstring) string.trim()&lt;br /&gt;
#v(float)     float&lt;br /&gt;
#W            player.weapon.icon&lt;br /&gt;
#W(float)     weapons[float].icon&lt;br /&gt;
#w            player.weapon.script&lt;br /&gt;
#w(float)     weapons[float].script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Compatibility note:&lt;br /&gt;
When you use the command setcharprop then the first parameter&lt;br /&gt;
is handled differently: instead of changing 'player.chat' it&lt;br /&gt;
is changing 'chat', the chat text of the npc. So 'setcharprop #c,hello'&lt;br /&gt;
would be translated into&lt;br /&gt;
chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
while 'setplayerprop #c,hello' is translated into&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
In the list above both possibilities are listed.&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1610</id>
		<title>Creation/Dev/GScript2</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1610"/>
		<updated>2005-02-22T10:07:38Z</updated>

		<summary type="html">&lt;p&gt;Evil: the old file was outdated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
1. Introduction&lt;br /&gt;
&lt;br /&gt;
1.1. Why scripts&lt;br /&gt;
&lt;br /&gt;
Scripts bring life into objects and make it easy to &lt;br /&gt;
customize the game. Instead of just placing a stone&lt;br /&gt;
into your world, you can make it so that the stone&lt;br /&gt;
can be lifted or kicked. Instead of being limited to&lt;br /&gt;
some fixed player movement you can rescript it&lt;br /&gt;
to let the player jump, strafe and duck. To let the &lt;br /&gt;
player inspect and organize his/her items you can&lt;br /&gt;
create some dialogs and display those by script,&lt;br /&gt;
e.g. when the player presses a special key.&lt;br /&gt;
&lt;br /&gt;
In Graal the scripting is done in 'Graal Script',&lt;br /&gt;
it's looking like Java/C++, but brings some &lt;br /&gt;
additional features for making things easier&lt;br /&gt;
for game creators, while on the other hand&lt;br /&gt;
running in a sandbox and limiting access to&lt;br /&gt;
game-related stuff only.&lt;br /&gt;
&lt;br /&gt;
Graal Script is almost fully compatible to &lt;br /&gt;
the 'old' Graal script used in Graal v1.0 - 3.0,&lt;br /&gt;
and is partially compatible to Torque script. &lt;br /&gt;
&lt;br /&gt;
1.2. NPCs and 'weapons'&lt;br /&gt;
&lt;br /&gt;
There are generally two types of objects in Graal&lt;br /&gt;
which have scripts: The first type are the &lt;br /&gt;
non-player-characters (NPCs). The name 'NPC' is&lt;br /&gt;
actually used for all visible objects in the game: &lt;br /&gt;
monsters, stones, bushes, houses, ships, plants etc.&lt;br /&gt;
Scripts for npcs are most of the time containing&lt;br /&gt;
code for moving the npc or for reacting to &lt;br /&gt;
activities of the player, e.g. giving money to&lt;br /&gt;
the player when he grabs the npc.&lt;br /&gt;
The other type of script-holding objects are the&lt;br /&gt;
'weapons'. Those are items in the inventory of&lt;br /&gt;
the player, not necessary being weapons. Most of&lt;br /&gt;
the time they are actually just scripts which&lt;br /&gt;
control the movement of the player, display weapon&lt;br /&gt;
graphics, or display menus.&lt;br /&gt;
&lt;br /&gt;
So there are objects in the game which have &lt;br /&gt;
their own script, and players which have a set&lt;br /&gt;
of scripts in their invisible backpack.&lt;br /&gt;
&lt;br /&gt;
1.3. Server-side and client-side&lt;br /&gt;
&lt;br /&gt;
Graal is an online game, and there are differences&lt;br /&gt;
to standard scripting in offline games.&lt;br /&gt;
In offline programs you have access to everything,&lt;br /&gt;
anytime. In online games everything is divided&lt;br /&gt;
into two parts: the server-side which controls&lt;br /&gt;
most things in the game, and the client-side which&lt;br /&gt;
displays the game to the player.&lt;br /&gt;
Since the client only displays things, it is not&lt;br /&gt;
possible to cheat by hacking the client. On client-side&lt;br /&gt;
you mainly have code for displaying special effects,&lt;br /&gt;
for displaying the GUI (windows, status bars, item menus),&lt;br /&gt;
playing sound effects and music. Also the player &lt;br /&gt;
movement is done on client-side.&lt;br /&gt;
On the server-side scripts are used to do the more&lt;br /&gt;
secure parts of the game engine are implemented,&lt;br /&gt;
and things that are the same for all players -&lt;br /&gt;
npcs are added, moved, npcs interact with players,&lt;br /&gt;
the stats of the players are calculated, the&lt;br /&gt;
communication between players is handled.&lt;br /&gt;
&lt;br /&gt;
All scripts for npcs and weapons can contain&lt;br /&gt;
server-side code and client-side code. The server-side&lt;br /&gt;
code is executed directly on the server, the&lt;br /&gt;
client-side code is sent to the client when he&lt;br /&gt;
logins and executed separately for each player on&lt;br /&gt;
their own computer. Usually the two parts of the script&lt;br /&gt;
are divided by line that only contains &amp;quot;//#CLIENTSIDE&amp;quot;,&lt;br /&gt;
like this:&lt;br /&gt;
&lt;br /&gt;
// Server-side part which is setting the image&lt;br /&gt;
// of the npc when it is created&lt;br /&gt;
function onCreated() {&lt;br /&gt;
  setimg(&amp;quot;door.png&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//#CLIENTSIDE&lt;br /&gt;
&lt;br /&gt;
// Here follows the client-side part,&lt;br /&gt;
// which plays a sound effect when the player&lt;br /&gt;
// touchs the npc&lt;br /&gt;
function onPlayerTouchsme() {&lt;br /&gt;
  play(&amp;quot;chest.wav&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1.4. Events&lt;br /&gt;
&lt;br /&gt;
In general scripts are made for reacting to &lt;br /&gt;
events - when the npc is created then the script&lt;br /&gt;
initializes the attributes of the npc,&lt;br /&gt;
when the player says something then the npc is&lt;br /&gt;
moving to the player, when the player grabs the&lt;br /&gt;
npc then the npc is giving the player some money etc.&lt;br /&gt;
So the script is basicly a collection of actions&lt;br /&gt;
that are done when special events are happening.&lt;br /&gt;
Events can e.g. be the &amp;quot;created&amp;quot; event when the npc&lt;br /&gt;
is created, the &amp;quot;playertouchsme&amp;quot; event when the &lt;br /&gt;
player touchs the npc, or the &amp;quot;playerchats&amp;quot; event&lt;br /&gt;
when the player says something. To write code reacts&lt;br /&gt;
to one of those event, you define an event&lt;br /&gt;
function like this:&lt;br /&gt;
&lt;br /&gt;
function onEVENTNAME() {&lt;br /&gt;
  // actions&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
When the event is happening, then Graal executes&lt;br /&gt;
that scripting function and all commands you &lt;br /&gt;
have added there.&lt;br /&gt;
Sometimes the event gives some parameters to the &lt;br /&gt;
event function, then change your function to:&lt;br /&gt;
&lt;br /&gt;
function onEVENTNAME(parameter1, paramater2, ...) {&lt;br /&gt;
  // actions&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
By accessing 'parameter1' etc. (you can name&lt;br /&gt;
them differently) you can react to the event more&lt;br /&gt;
exactly. &lt;br /&gt;
&lt;br /&gt;
Instead of reacting to events, the npcs and&lt;br /&gt;
weapons can also invoke new events. That way &lt;br /&gt;
you can let other npcs doing things. You also&lt;br /&gt;
need that if you want to coninuously doing things -&lt;br /&gt;
use timeout event for that.&lt;br /&gt;
&lt;br /&gt;
function onCreated() {&lt;br /&gt;
  timeout = 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function onTimeout() {&lt;br /&gt;
  // actions&lt;br /&gt;
  timeout = 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
In the onCreated event function the script is&lt;br /&gt;
setting the timer to 1 second. When that second is&lt;br /&gt;
over, then the &amp;quot;timeout&amp;quot; event is invoked on the&lt;br /&gt;
npc and the onTimeout event function is executed.&lt;br /&gt;
Because it is setting the timeout to 1 second&lt;br /&gt;
again, the onTimeout even will occur again after&lt;br /&gt;
one second, and so on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compatibility note:&lt;br /&gt;
In older Graal scripts you will also find the&lt;br /&gt;
deprecated way of receiving events:&lt;br /&gt;
&lt;br /&gt;
if (EVENTNAME) {&lt;br /&gt;
  // actions&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
That is an if-command outside of any brackets. If&lt;br /&gt;
Graal sees that you use such an if-command, then&lt;br /&gt;
it will execute the whole script so that the actions&lt;br /&gt;
you have written inside the if-command will be&lt;br /&gt;
executed too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Basics&lt;br /&gt;
&lt;br /&gt;
2.1. Accessing variables&lt;br /&gt;
&lt;br /&gt;
Graal Script variables are 'variant', that means they are objects&lt;br /&gt;
that hold values of different types.&lt;br /&gt;
When you assign a value to the variable then it automatically&lt;br /&gt;
switches to the right type:&lt;br /&gt;
&lt;br /&gt;
Numeric (floating point):&lt;br /&gt;
  var = 1;&lt;br /&gt;
String:&lt;br /&gt;
  var = &amp;quot;hello&amp;quot;;&lt;br /&gt;
Object link:&lt;br /&gt;
  var = player;&lt;br /&gt;
Array (list of objects):&lt;br /&gt;
  var = {1,2,3};&lt;br /&gt;
&lt;br /&gt;
You can check the current type with the&lt;br /&gt;
type()-function - obj.type() returns&lt;br /&gt;
0,1,2,3 for numeric, string, object or array.&lt;br /&gt;
&lt;br /&gt;
2.2. Operators&lt;br /&gt;
&lt;br /&gt;
Addition                  a + b&lt;br /&gt;
Substraction              a - b&lt;br /&gt;
Mulitplication            a * b&lt;br /&gt;
Division                  a / b&lt;br /&gt;
Modulus                   a % b&lt;br /&gt;
Power                     a ^ b&lt;br /&gt;
String Concationation     a @ b&lt;br /&gt;
Bool-And                  a &amp;amp;&amp;amp; b&lt;br /&gt;
Bool-Or                   a || b&lt;br /&gt;
Bool-Not                  !a&lt;br /&gt;
Negative                  -a&lt;br /&gt;
Equal                     a == b&lt;br /&gt;
Not-Equal                 a != b&lt;br /&gt;
Less                      a &amp;lt; b&lt;br /&gt;
Greater                   a &amp;gt; b&lt;br /&gt;
Less-Equal                a &amp;lt;= b,  a =&amp;lt; b&lt;br /&gt;
Greater-Equal             a &amp;gt;= b,  a =&amp;gt; b&lt;br /&gt;
In-Range                  a in &amp;lt;b,c&amp;gt;, a in |b,c&amp;gt;, a in &amp;lt;b,c|, a in |b,c|&lt;br /&gt;
In-Array                  a in {b,c,...}, {a,b,...} in {c,d,...}&lt;br /&gt;
Bitwise-Or                a | b&lt;br /&gt;
Bitwise-And               a &amp;amp; b&lt;br /&gt;
Bitwise-Shift left        a &amp;lt;&amp;lt; b&lt;br /&gt;
Bitwise-Shift right       a &amp;gt;&amp;gt; b&lt;br /&gt;
Bitwise-Invert            ~a&lt;br /&gt;
Bitwise-Xor               a xor b (operator ^ already used for power)&lt;br /&gt;
Array-Constructor         {a,b,...}&lt;br /&gt;
Empty Array               new [count]&lt;br /&gt;
Array Member              a[index]&lt;br /&gt;
Function call             a(), a(b,c,...)&lt;br /&gt;
Object Attribute          a.b, a.(b)&lt;br /&gt;
Post Increment            a++&lt;br /&gt;
Post Decrement            a--&lt;br /&gt;
Pre Increment             ++a&lt;br /&gt;
Pre Decrement             --a&lt;br /&gt;
Old String Function       #a&lt;br /&gt;
Conditional               a? b : c&lt;br /&gt;
Assignment                a = b, a := b&lt;br /&gt;
Additive Assignment       a += b&lt;br /&gt;
Substractive Assignment   a -= b&lt;br /&gt;
Multiplicative Assignment a *= b&lt;br /&gt;
Division Assignment       a /= b&lt;br /&gt;
Modulus Assignment        a %= b&lt;br /&gt;
Power Assignment          a ^= b&lt;br /&gt;
Bitwise-Or Assignment     a |= b&lt;br /&gt;
Bitwise-And Assignment    a &amp;amp;= b&lt;br /&gt;
Shift Left Assignment     a &amp;lt;&amp;lt;= b&lt;br /&gt;
Shift Right Assignment    a &amp;gt;&amp;gt;= b&lt;br /&gt;
String Append             a @= b&lt;br /&gt;
&lt;br /&gt;
2.3. Standard object functions&lt;br /&gt;
&lt;br /&gt;
For a complete list of functions and attributes of objects&lt;br /&gt;
see docu_graalscriptfunctions.txt. The base type of all&lt;br /&gt;
objects is &amp;quot;TGraalVar&amp;quot;. You can also get the latest list by&lt;br /&gt;
calling the executale with &amp;quot;-listscriptfunctions&amp;quot; as &lt;br /&gt;
command-line parameter. &lt;br /&gt;
Here only of the built-in functions:&lt;br /&gt;
&lt;br /&gt;
obj.type()  - gets the type of the var (float 0, string 1, object 2, array 3)&lt;br /&gt;
obj.length() - string length&lt;br /&gt;
obj.trim()&lt;br /&gt;
obj.tokenize([delimiters])&lt;br /&gt;
obj.charat(pos)&lt;br /&gt;
obj.pos(substring)&lt;br /&gt;
obj.starts(string)&lt;br /&gt;
obj.ends(string)&lt;br /&gt;
obj.substring(index[,length])&lt;br /&gt;
obj.size() - array length&lt;br /&gt;
obj.subarray(index[,length])&lt;br /&gt;
obj.addarray(obj2)&lt;br /&gt;
obj.insertarray(index,obj2)&lt;br /&gt;
obj.index(obj2) - position of obj2 in the array&lt;br /&gt;
obj.clear()&lt;br /&gt;
obj.add(obj2)&lt;br /&gt;
obj.delete(index)&lt;br /&gt;
obj.remove(obj2)&lt;br /&gt;
obj.replace(index,obj2)&lt;br /&gt;
obj.insert(index,obj2)&lt;br /&gt;
&lt;br /&gt;
2.4. Standard functions&lt;br /&gt;
&lt;br /&gt;
format(format,parameters,...) - formats a &amp;quot;%s %d&amp;quot; string, inserts the parameters, and returns a string&lt;br /&gt;
int(a)&lt;br /&gt;
abs(a)&lt;br /&gt;
random(rangestart,rangeend)&lt;br /&gt;
sin(a)&lt;br /&gt;
cos(a)&lt;br /&gt;
arctan(a)&lt;br /&gt;
exp(a)&lt;br /&gt;
log(base,a)&lt;br /&gt;
min(a,b)&lt;br /&gt;
max(a,b)&lt;br /&gt;
getangle(delta x,delta y)&lt;br /&gt;
getdir(delta x,delta y)&lt;br /&gt;
vecx(direction)&lt;br /&gt;
vecy(direction)&lt;br /&gt;
&lt;br /&gt;
3. Events&lt;br /&gt;
&lt;br /&gt;
3.1. Gui controls&lt;br /&gt;
&lt;br /&gt;
onAdd() when added to the parent&lt;br /&gt;
onRemove() when removed from the parent&lt;br /&gt;
onWake() when activated&lt;br /&gt;
onSleep() when deactivated&lt;br /&gt;
onResize(w,h)&lt;br /&gt;
onMove(x,y)&lt;br /&gt;
onMouseEnter(modifier,x,y,clickcount)&lt;br /&gt;
onMouseLeave(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseMove(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelDown(modifier,x,y,clickcount)&lt;br /&gt;
onKeyDown(keycode,string)&lt;br /&gt;
onKeyUp(keycode,string)&lt;br /&gt;
onKeyRepeat(keycode,string)&lt;br /&gt;
&lt;br /&gt;
3.1.1. GuiMLTextCtrl:&lt;br /&gt;
&lt;br /&gt;
onReflow(w,h) when the text has changed&lt;br /&gt;
onURL(url) when clicked on url&lt;br /&gt;
onSelectTag(tagid) when clicked on an image&lt;br /&gt;
&lt;br /&gt;
Text-Tags:&lt;br /&gt;
The text of multi-line text controls can contain&lt;br /&gt;
a few HTML-tags and Torque-tags, you can use both&lt;br /&gt;
of those tag types to define colors and fonts&lt;br /&gt;
or to include images. Currently following tags&lt;br /&gt;
are available:&lt;br /&gt;
&lt;br /&gt;
HTML:&lt;br /&gt;
&amp;lt;a href=url&amp;gt; text &amp;lt;/a&amp;gt; - when the user clicks on 'text' then &lt;br /&gt;
  a web browser is opened for the specified url&lt;br /&gt;
&amp;lt;br&amp;gt; - line break&lt;br /&gt;
&amp;lt;font face=fontname size=textsize color=colorname or #rrggbb&amp;gt; text &amp;lt;/font&amp;gt;&lt;br /&gt;
  - draws text with a special font, size and color; you only&lt;br /&gt;
  need to define one of those 3 attributes&lt;br /&gt;
&amp;lt;ignorelinebreaks&amp;gt; &amp;lt;/ignorelinebreaks&amp;gt; - go into normal HTML mode where&lt;br /&gt;
  you need to insert &amp;lt;br&amp;gt; to do a linebreak&lt;br /&gt;
&amp;lt;img src=filename id=integer&amp;gt; - an image is displayed, you &lt;br /&gt;
  can also specify a tagid if you want to get onSelectTag-events&lt;br /&gt;
  for this image&lt;br /&gt;
&amp;lt;p align=left/center/right&amp;gt; - sets the align of the following text&lt;br /&gt;
&amp;lt;span style=&amp;quot;width=100; height=100;&amp;quot; id=integer&amp;gt; &amp;lt;/span&amp;gt; - for &lt;br /&gt;
  displaying a subpage, you can also specifiy an id for &lt;br /&gt;
  onSelectTag-events; instead of &amp;lt;span&amp;gt; you can also use &amp;lt;div&amp;gt; tags&lt;br /&gt;
&lt;br /&gt;
Torque:&lt;br /&gt;
&amp;lt;a:url&amp;gt; text &amp;lt;/a&amp;gt; - when the user clicks on 'text' then &lt;br /&gt;
  a web browser is opened for the specified url&lt;br /&gt;
&amp;lt;bitmap:filename&amp;gt; - an image is displayed&lt;br /&gt;
&amp;lt;color:rrggbb&amp;gt; - sets the color of the text (hexadecimal value)&lt;br /&gt;
&amp;lt;lmargin:pixels&amp;gt; - sets the left margin for the text&lt;br /&gt;
&amp;lt;lmargin%:percent&amp;gt; - sets the size of the left margin depending &lt;br /&gt;
  on the width of the whole control&lt;br /&gt;
&amp;lt;linkcolor:rrggbb&amp;gt; - sets the color of links (the &amp;lt;a&amp;gt;-tag)&lt;br /&gt;
&amp;lt;linkcolorhl:rrggbb&amp;gt; - sets the highlighted color, when&lt;br /&gt;
  the user moves the mouse over a link&lt;br /&gt;
&amp;lt;just:left/center/right&amp;gt; - sets the align of the following text&lt;br /&gt;
&amp;lt;rmargin:pixels&amp;gt; - sets the right margin for the text&lt;br /&gt;
&amp;lt;rmargin%:percent&amp;gt; - sets the size of the right margin depending &lt;br /&gt;
  on the width of the whole control&lt;br /&gt;
&amp;lt;sbreak&amp;gt; - line break&lt;br /&gt;
&amp;lt;spush&amp;gt; - switches to a new style (like &amp;lt;font&amp;gt;)&lt;br /&gt;
&amp;lt;spop&amp;gt; - switches back to the last saved style (like &amp;lt;/font&amp;gt;)&lt;br /&gt;
&amp;lt;tab:tab1,tab2,..&amp;gt; - sets the position of where tabulators should&lt;br /&gt;
  be displayed if you have text like 'Apple \t Egg \t Chicken'&lt;br /&gt;
&amp;lt;tag:id&amp;gt; - inserts an invisible tag which can be used&lt;br /&gt;
  for the scrollToTag(id) function (beside image-tags)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.1.2. GuiTextEditCtrl:&lt;br /&gt;
&lt;br /&gt;
onTabComplete()&lt;br /&gt;
onAction(text) when return key pressed&lt;br /&gt;
&lt;br /&gt;
3.1.3. GuiTextListCtrl:&lt;br /&gt;
&lt;br /&gt;
onSelect(id,text) when row selected&lt;br /&gt;
onDblClick(id) when double-click on row or return key pressed&lt;br /&gt;
onDeleteKey(id) when delete key pressed&lt;br /&gt;
onIconResized(w,h) when setIconSize() called&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&lt;br /&gt;
3.1.4. GuiPopUpMenuCtrl:&lt;br /&gt;
&lt;br /&gt;
onSelect(id,text) when menu option choosen&lt;br /&gt;
onCancel() when menu is closed without action&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&lt;br /&gt;
3.1.5. GuiMenuBar:&lt;br /&gt;
&lt;br /&gt;
onMenuSelect(menuid,menutext)&lt;br /&gt;
onMenuItemSelect(menuid,menutext,itemid,itemtext)&lt;br /&gt;
&lt;br /&gt;
3.1.6. GuiTreeViewCtrl:&lt;br /&gt;
&lt;br /&gt;
onSelect(id,rightmouse) when row selected&lt;br /&gt;
onUnselect(id) when row de-selected&lt;br /&gt;
onInspect(id) when clicked on the name of an item&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
onContextMenu(&amp;quot;x y&amp;quot;,id) when clicked with right-mouse key on row&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Old script compatibility&lt;br /&gt;
&lt;br /&gt;
4.1. Removed functionality&lt;br /&gt;
&lt;br /&gt;
- toinventory&lt;br /&gt;
- followplayer&lt;br /&gt;
- playersays()&lt;br /&gt;
- setbackpal&lt;br /&gt;
&lt;br /&gt;
4.2. Supported old scripting commands &amp;amp; their mapping to new script&lt;br /&gt;
&lt;br /&gt;
addstring oldstring, oldstring;&lt;br /&gt;
                                addstring(string,string);&lt;br /&gt;
addtiledef oldstring, oldstring, float;&lt;br /&gt;
                                addtiledef(string,string,float);&lt;br /&gt;
addtiledef2 oldstring, oldstring, float, float;&lt;br /&gt;
                                addtiledef2(string,string,float,float);&lt;br /&gt;
attachplayertoobj float, float;&lt;br /&gt;
                                attachplayertoobj(float,float);&lt;br /&gt;
blockagain;&lt;br /&gt;
                                blockagain();&lt;br /&gt;
blockagainlocal;&lt;br /&gt;
                                blockagainlocal();&lt;br /&gt;
callnpc float, oldstring;&lt;br /&gt;
                                callnpc(float,string);&lt;br /&gt;
callweapon float, oldstring;&lt;br /&gt;
                                callweapon(float,string);&lt;br /&gt;
canbecarried;&lt;br /&gt;
                                canbecarried();&lt;br /&gt;
canbepulled;&lt;br /&gt;
                                canbepulled();&lt;br /&gt;
canbepushed;&lt;br /&gt;
                                canbepushed();&lt;br /&gt;
cannotbecarried;&lt;br /&gt;
                                cannotbecarried();&lt;br /&gt;
cannotbepulled;&lt;br /&gt;
                                cannotbepulled();&lt;br /&gt;
cannotbepushed;&lt;br /&gt;
                                cannotbepushed();&lt;br /&gt;
canwarp;&lt;br /&gt;
                                canwarp();&lt;br /&gt;
canwarp2;&lt;br /&gt;
                                canwarp2();&lt;br /&gt;
carryobject oldstring;&lt;br /&gt;
                                carryobject(string);&lt;br /&gt;
changeimgcolors float, float, float, float, float;&lt;br /&gt;
                                changeimgcolors(float,float,float,float,float);&lt;br /&gt;
changeimgmode float, float;&lt;br /&gt;
                                changeimgmode(float,float);&lt;br /&gt;
changeimgpart float, float, float, float, float;&lt;br /&gt;
                                changeimgpart(float,float,float,float,float);&lt;br /&gt;
changeimgvis float, float;&lt;br /&gt;
                                changeimgvis(float,float);&lt;br /&gt;
changeimgzoom float, float;&lt;br /&gt;
                                changeimgzoom(float,float);&lt;br /&gt;
deletestring oldstring, float;&lt;br /&gt;
                                deletestring(string,float);&lt;br /&gt;
destroy;&lt;br /&gt;
                                destroy();&lt;br /&gt;
detachplayer;&lt;br /&gt;
                                detachplayer();&lt;br /&gt;
disabledefmovement;&lt;br /&gt;
                                disabledefmovement();&lt;br /&gt;
disablemap;&lt;br /&gt;
                                disablemap();&lt;br /&gt;
disablepause;&lt;br /&gt;
                                disablepause();&lt;br /&gt;
disableselectweapons;&lt;br /&gt;
                                disableselectweapons();&lt;br /&gt;
disableweapons;&lt;br /&gt;
                                disableweapons();&lt;br /&gt;
dontblock;&lt;br /&gt;
                                dontblock();&lt;br /&gt;
dontblocklocal;&lt;br /&gt;
                                dontblocklocal();&lt;br /&gt;
drawaslight;&lt;br /&gt;
                                drawaslight();&lt;br /&gt;
drawoverplayer;&lt;br /&gt;
                                drawoverplayer();&lt;br /&gt;
drawunderplayer;&lt;br /&gt;
                                drawunderplayer();&lt;br /&gt;
enabledefmovement;&lt;br /&gt;
                                enabledefmovement();&lt;br /&gt;
enablefeatures float;&lt;br /&gt;
                                enablefeatures(float);&lt;br /&gt;
enablemap;&lt;br /&gt;
                                enablemap();&lt;br /&gt;
enablepause;&lt;br /&gt;
                                enablepause();&lt;br /&gt;
enableselectweapons;&lt;br /&gt;
                                enableselectweapons();&lt;br /&gt;
enableweapons;&lt;br /&gt;
                                enableweapons();&lt;br /&gt;
explodebomb float;&lt;br /&gt;
                                explodebomb(float);&lt;br /&gt;
followplayer;&lt;br /&gt;
                                followplayer();&lt;br /&gt;
freezeplayer float;&lt;br /&gt;
                                freezeplayer(float);&lt;br /&gt;
freezeplayer2;&lt;br /&gt;
                                freezeplayer2();&lt;br /&gt;
hide;&lt;br /&gt;
                                hide();&lt;br /&gt;
hideimg float;&lt;br /&gt;
                                hideimg(float);&lt;br /&gt;
hideimgs float, float;&lt;br /&gt;
                                hideimgs(float,float);&lt;br /&gt;
hidelocal;&lt;br /&gt;
                                hidelocal();&lt;br /&gt;
&lt;br /&gt;
hitcompu float, float, float, float;&lt;br /&gt;
                                hitcompu(float,float,float,float);&lt;br /&gt;
hitnpc float, float, float, float;&lt;br /&gt;
                                hitnpc(float,float,float,float);&lt;br /&gt;
hitobjects float, float, float;&lt;br /&gt;
                                hitobjects(float,float,float);&lt;br /&gt;
hideplayer float;&lt;br /&gt;
                                hideplayer(float);&lt;br /&gt;
hidesword float;&lt;br /&gt;
                                hidesword(float);&lt;br /&gt;
hitplayer float, float, float, float;&lt;br /&gt;
                                hitplayer(float,float,float,float);&lt;br /&gt;
hurt float;&lt;br /&gt;
                                hurt(float);&lt;br /&gt;
insertstring oldstring, float, oldstring;&lt;br /&gt;
                                insertstring(string,float,string);&lt;br /&gt;
join oldstring;&lt;br /&gt;
                                join(string);&lt;br /&gt;
lay oldstring;&lt;br /&gt;
                                lay(string);&lt;br /&gt;
lay2 oldstring, float, float;&lt;br /&gt;
                                lay2(string,float,float);&lt;br /&gt;
loadmap oldstring;&lt;br /&gt;
                                loadmap(string);&lt;br /&gt;
message oldstring;&lt;br /&gt;
                                message(string);&lt;br /&gt;
move float, float, float, float;&lt;br /&gt;
                                move(float,float,float,float);&lt;br /&gt;
noplayerkilling;&lt;br /&gt;
                                noplayerkilling();&lt;br /&gt;
openurl oldstring;&lt;br /&gt;
                                openurl(string);&lt;br /&gt;
openurl2 oldstring, float, float;&lt;br /&gt;
                                openurl2(string,float,float);&lt;br /&gt;
play oldstring;&lt;br /&gt;
                                play(string);&lt;br /&gt;
play2 oldstring, float, float, float;&lt;br /&gt;
                                play2(string,float,float,float);&lt;br /&gt;
playlooped oldstring;&lt;br /&gt;
                                playlooped(string);&lt;br /&gt;
putbomb float, float, float;&lt;br /&gt;
                                putbomb(float,float,float);&lt;br /&gt;
putcomp oldstring, float, float;&lt;br /&gt;
                                putcomp(string,float,float);&lt;br /&gt;
putexplosion float, float, float;&lt;br /&gt;
                                putexplosion(float,float,float);&lt;br /&gt;
putexplosion2 float, float, float, float;&lt;br /&gt;
                                putexplosion2(float,float,float,float);&lt;br /&gt;
puthorse oldstring, float, float;&lt;br /&gt;
                                puthorse(string,float,float);&lt;br /&gt;
putleaps float, float, float;&lt;br /&gt;
                                putleaps(float,float,float);&lt;br /&gt;
putnewcomp oldstring, float, float, oldstring, float;&lt;br /&gt;
                                putnewcomp(string,float,float,string,float);&lt;br /&gt;
putnpc oldstring, oldstring, float, float;&lt;br /&gt;
                                putnpc(string,string,float,float);&lt;br /&gt;
putnpc2 float, float, oldstring;&lt;br /&gt;
                                putnpc2(float,float,string);&lt;br /&gt;
reflectarrow float;&lt;br /&gt;
                                reflectarrow(float);&lt;br /&gt;
removearrow float;&lt;br /&gt;
                                removearrow(float);&lt;br /&gt;
removebomb float;&lt;br /&gt;
                                removebomb(float);&lt;br /&gt;
removecompus;&lt;br /&gt;
                                removecompus();&lt;br /&gt;
removeexplo float;&lt;br /&gt;
                                removeexplo(float);&lt;br /&gt;
removehorse float;&lt;br /&gt;
                                removehorse(float);&lt;br /&gt;
rmeoveitem float;&lt;br /&gt;
                                removeitem(float)&lt;br /&gt;
removestring oldstring, oldstring;&lt;br /&gt;
                                removestring(string,string);&lt;br /&gt;
removetiledefs oldstring;&lt;br /&gt;
                                removetiledefs(string);&lt;br /&gt;
replaceani oldstring, oldstring;&lt;br /&gt;
                                replaceani(string,string);&lt;br /&gt;
replacestring oldstring, float, oldstring;&lt;br /&gt;
                                replacestring(string,float,string);&lt;br /&gt;
resetfocus;&lt;br /&gt;
                                resetfocus();&lt;br /&gt;
savelog oldstring;&lt;br /&gt;
                                savelog(string);&lt;br /&gt;
savelog2 oldstring, oldstring;&lt;br /&gt;
                                savelog2(string,string);&lt;br /&gt;
say float;&lt;br /&gt;
                                say(float);&lt;br /&gt;
say2 oldstring;&lt;br /&gt;
                                say2(string);&lt;br /&gt;
sendrpgmessage oldstring;&lt;br /&gt;
                                sendrpgmessage(string);&lt;br /&gt;
sendpm oldstring;&lt;br /&gt;
                                sendpm(string);&lt;br /&gt;
sendtonc oldstring;&lt;br /&gt;
                                sendtonc(string);&lt;br /&gt;
sendtorc oldstring;&lt;br /&gt;
                                sendtorc(string);&lt;br /&gt;
serverwarp oldstring;&lt;br /&gt;
                                serverwarp(string);&lt;br /&gt;
set oldstring;&lt;br /&gt;
                                set(string);&lt;br /&gt;
setani oldstring, oldstring;&lt;br /&gt;
                                setani(string,string);&lt;br /&gt;
setarray float, float;&lt;br /&gt;
                                setarray(var,float);&lt;br /&gt;
setbeltcolor oldstring;&lt;br /&gt;
                                setbeltcolor(string);&lt;br /&gt;
setbow oldstring;&lt;br /&gt;
                                setbow(string);&lt;br /&gt;
setcharani oldstring, oldstring;&lt;br /&gt;
                                setcharani(string,string);&lt;br /&gt;
setchargender oldstring;&lt;br /&gt;
                                setchargender(string);&lt;br /&gt;
setcharprop oldstring, oldstring;&lt;br /&gt;
                                string = string;&lt;br /&gt;
setcoatcolor oldstring;&lt;br /&gt;
                                setcoatcolor(string);&lt;br /&gt;
setcoloreffect float, float, float, float;&lt;br /&gt;
                                setcoloreffect(float,float,float,float);&lt;br /&gt;
setcursor float;&lt;br /&gt;
                                setcursor(float);&lt;br /&gt;
setcurcor2 oldstring;&lt;br /&gt;
                                setcursor2(string);&lt;br /&gt;
seteffect float, float, float, float;&lt;br /&gt;
                                seteffect(float,float,float,float);&lt;br /&gt;
seteffectmode float;&lt;br /&gt;
                                seteffectmode(float);&lt;br /&gt;
setfocus float, float;&lt;br /&gt;
                                setfocus(float,float);&lt;br /&gt;
setgender oldstring;&lt;br /&gt;
                                setgender(string);&lt;br /&gt;
sethead oldstring;&lt;br /&gt;
                                sethead(string);&lt;br /&gt;
setlevel oldstring;&lt;br /&gt;
                                setlevel(string);&lt;br /&gt;
setlevel2 oldstring, float, float;&lt;br /&gt;
                                setlevel2(string,float,float);&lt;br /&gt;
setmap oldstring, oldstring, float, float;&lt;br /&gt;
                                setmap(string,string,float,float);&lt;br /&gt;
setminimap oldstring, oldstring, float, float;&lt;br /&gt;
                                setminimap(string,string,float,float);&lt;br /&gt;
setmusicvolume float, float;&lt;br /&gt;
                                setmusicvolume(float,float);&lt;br /&gt;
setimg oldstring;&lt;br /&gt;
                                setimg(string);&lt;br /&gt;
setimgpart oldstring, float, float, float, float;&lt;br /&gt;
                                setimgpart(string,float,float,float,float);&lt;br /&gt;
setletters oldstring;&lt;br /&gt;
                                setletters(string);&lt;br /&gt;
setplayerdir oldstring;&lt;br /&gt;
                                setplayerdir(string);&lt;br /&gt;
setplayerprop oldstring, oldstring;&lt;br /&gt;
                                string = string;&lt;br /&gt;
setpm oldstring;&lt;br /&gt;
                                setpm(string);&lt;br /&gt;
setshape float, float, float;&lt;br /&gt;
                                setshape(float,float,float);&lt;br /&gt;
setshape2 float, float, float;&lt;br /&gt;
                                setshape2(float,float,float);&lt;br /&gt;
setshield oldstring, float;&lt;br /&gt;
                                setshield(string,float);&lt;br /&gt;
setshoecolor oldstring;&lt;br /&gt;
                                setshoecolor(string);&lt;br /&gt;
setshootparams oldstring;&lt;br /&gt;
                                setshootparams(string);&lt;br /&gt;
setskincolor oldstring;&lt;br /&gt;
                                setskincolor(string);&lt;br /&gt;
setsleevecolor oldstring;&lt;br /&gt;
                                setsleevecolor(string);&lt;br /&gt;
setstring oldstring, oldstring;&lt;br /&gt;
                                setstring(string,string);&lt;br /&gt;
setsword oldstring, float;&lt;br /&gt;
                                setsword(string,float);&lt;br /&gt;
seturllevel oldstring;&lt;br /&gt;
                                seturllevel(string);&lt;br /&gt;
setz float, float, float, float, float, float, float, float;&lt;br /&gt;
                                setz(float,float,float,float,float,float,float,float);&lt;br /&gt;
setzoomeffect float;&lt;br /&gt;
                                setzoomeffect(float);&lt;br /&gt;
shoot float, float, float, float, float, float, oldstring, oldstring;&lt;br /&gt;
                                shoot(float,float,float,float,float,float,string,string);&lt;br /&gt;
shootarrow float;&lt;br /&gt;
                                shootarrow(float);&lt;br /&gt;
shootball;&lt;br /&gt;
                                shootball();&lt;br /&gt;
shootfireball float;&lt;br /&gt;
                                shootfireball(float);&lt;br /&gt;
shootfireblast float;&lt;br /&gt;
                                shootfireblast(float);&lt;br /&gt;
shootnuke float;&lt;br /&gt;
                                shootnuke(float);&lt;br /&gt;
show;&lt;br /&gt;
                                show();&lt;br /&gt;
showani float, float, float, float, oldstring;&lt;br /&gt;
                                showani(float,float,float,float,string);&lt;br /&gt;
showani2 float, float, float, float, float, oldstring;&lt;br /&gt;
                                showani2(float,float,float,float,float,string);&lt;br /&gt;
showcharacter;&lt;br /&gt;
                                showcharacter();&lt;br /&gt;
showfile oldstring;&lt;br /&gt;
                                showfile(string);&lt;br /&gt;
showimg float, oldstring, float, float;&lt;br /&gt;
                                showimg(float,string,float,float);&lt;br /&gt;
showimg2 float, oldstring, float, float, float;&lt;br /&gt;
                                showimg2(float,string,float,float,float);&lt;br /&gt;
showlocal;&lt;br /&gt;
                                showlocal();&lt;br /&gt;
&lt;br /&gt;
showpoly float, float;&lt;br /&gt;
                                showpoly(float,array);&lt;br /&gt;
showpoly2 float, float;&lt;br /&gt;
                                showpoly2(float,array);&lt;br /&gt;
showstats float;&lt;br /&gt;
                                showstats(float);&lt;br /&gt;
showtext float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
                                showtext(float,float,float,string,string,string);&lt;br /&gt;
showtext2 float, float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
                                showtext2(float,float,float,float,string,string,string);&lt;br /&gt;
sleep float;&lt;br /&gt;
                                sleep(float);&lt;br /&gt;
spyfire float, float;&lt;br /&gt;
                                spyfire(float,float);&lt;br /&gt;
stopmidi;&lt;br /&gt;
                                stopmidi();&lt;br /&gt;
stopsound oldstring;&lt;br /&gt;
                                stopsound(string);&lt;br /&gt;
take oldstring;&lt;br /&gt;
                                take(string);&lt;br /&gt;
take2 float;&lt;br /&gt;
                                take2(float);&lt;br /&gt;
takehorse float;&lt;br /&gt;
                                takehorse(float);&lt;br /&gt;
takeplayercarry;&lt;br /&gt;
                                takeplayercarry();&lt;br /&gt;
takeplayerhorse;&lt;br /&gt;
                                takeplayerhorse();&lt;br /&gt;
throwcarry;&lt;br /&gt;
                                throwcarry();&lt;br /&gt;
timereverywhere;&lt;br /&gt;
                                timereverywhere();&lt;br /&gt;
timershow;&lt;br /&gt;
                                timershow();&lt;br /&gt;
toinventory oldstring;&lt;br /&gt;
                                toinventory(string);&lt;br /&gt;
tokenize oldstring;&lt;br /&gt;
                                tokens = string.tokenize();&lt;br /&gt;
tokenize2 oldstring, oldstring;&lt;br /&gt;
                                tokens = string.tokenize(&amp;quot; ,&amp;quot; @ string);&lt;br /&gt;
toweapons oldstring;&lt;br /&gt;
                                toweapons(string);&lt;br /&gt;
triggeraction float, float, oldstring, oldstring;&lt;br /&gt;
                                triggeraction(float,float,string,string);&lt;br /&gt;
unfreezeplayer;&lt;br /&gt;
                                unfreezeplayer();&lt;br /&gt;
unset oldstring;&lt;br /&gt;
                                unset(string);&lt;br /&gt;
updateboard float, float, float, float;&lt;br /&gt;
                                updateboard(float,float,float,float);&lt;br /&gt;
updateterrain;&lt;br /&gt;
                                updateterrain();&lt;br /&gt;
wraptext float, oldstring, oldstring;&lt;br /&gt;
                                tokens = wraptext(float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
wraptext2 float, float, oldstring, oldstring;&lt;br /&gt;
                                tokens = wraptext2(float,float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&lt;br /&gt;
4.3. Supported old scripting functions &amp;amp; their mapping to new script&lt;br /&gt;
&lt;br /&gt;
4.4. Supported old string operations&lt;br /&gt;
&lt;br /&gt;
These old string operators can be used in string parameters&lt;br /&gt;
for the old commands, also you can use them directly as operators, e.g.&lt;br /&gt;
#c = &amp;quot;hello&amp;quot;&lt;br /&gt;
is actually doing&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#a            player.account&lt;br /&gt;
#a(float)     players[float].account&lt;br /&gt;
#m            player.ani&lt;br /&gt;
              ani&lt;br /&gt;
#m(float)     players[float].ani&lt;br /&gt;
#K(float)     getascii(float)&lt;br /&gt;
#8            player.bodyimg&lt;br /&gt;
              bodyimg&lt;br /&gt;
#8(float)     players[float].bodyimg&lt;br /&gt;
#c            player.chat&lt;br /&gt;
              chat&lt;br /&gt;
#c(float)     players[float].chat&lt;br /&gt;
#C0           player.colors[0]&lt;br /&gt;
              colors[0]&lt;br /&gt;
#C0(float)    players[float].colors[0]&lt;br /&gt;
#C1           player.colors[1]&lt;br /&gt;
              colors[1]&lt;br /&gt;
#C1(float)    players[float].colors[1]&lt;br /&gt;
#C2           player.colors[2]&lt;br /&gt;
              colors[2]&lt;br /&gt;
#C2(float)    players[float].colors[2]&lt;br /&gt;
#C3           player.colors[3]&lt;br /&gt;
              colors[3]&lt;br /&gt;
#C3(float)    players[float].colors[3]&lt;br /&gt;
#C4           player.colors[4]&lt;br /&gt;
              colors[4]&lt;br /&gt;
#C4(float)    players[float].colors[4]&lt;br /&gt;
#C5           player.colors[5]&lt;br /&gt;
              colors[5]&lt;br /&gt;
#C5(float)    players[float].colors[5]&lt;br /&gt;
#D            downloadfile()&lt;br /&gt;
#E            emoticonchar()&lt;br /&gt;
#e(float,float,oldstring)&lt;br /&gt;
              string.substring(float,float)&lt;br /&gt;
#g            player.guild&lt;br /&gt;
              guild&lt;br /&gt;
#g(float)     players[float].guild&lt;br /&gt;
#3            player.headimg&lt;br /&gt;
              headimg&lt;br /&gt;
#3(float)     players[float].headimg&lt;br /&gt;
#5            player.horseimg&lt;br /&gt;
              horseimg&lt;br /&gt;
#5(float)     players[float].horseimg&lt;br /&gt;
#k(float)     keyname(float)&lt;br /&gt;
#L            player.level&lt;br /&gt;
#I(oldstring,float)&lt;br /&gt;
              getstring(string)[float]&lt;br /&gt;
#n            player.nick&lt;br /&gt;
              nick&lt;br /&gt;
#n(float)     players[float].nick&lt;br /&gt;
#f            image&lt;br /&gt;
#f(float)     npcs[float].image&lt;br /&gt;
#F            level&lt;br /&gt;
#p(float)     params[float]&lt;br /&gt;
#P(float)     player.attr[float]&lt;br /&gt;
              attr[float]&lt;br /&gt;
#P(float,float)&lt;br /&gt;
              players[float].attr[float]&lt;br /&gt;
#P1           player.attr[1]&lt;br /&gt;
              attr[1]&lt;br /&gt;
#P1(float)    players[float].attr[1]&lt;br /&gt;
#P2           player.attr[2]&lt;br /&gt;
              attr[2]&lt;br /&gt;
#P2(float)    players[float].attr[2]&lt;br /&gt;
#P3           player.attr[3]&lt;br /&gt;
              attr[3]&lt;br /&gt;
#P3(float)    players[float].attr[3]&lt;br /&gt;
#P4           player.attr[4]&lt;br /&gt;
              attr[4]&lt;br /&gt;
#P4(float)    players[float].attr[4]&lt;br /&gt;
#P5           player.attr[5]&lt;br /&gt;
              attr[5]&lt;br /&gt;
#P5(float)    players[float].attr[5]&lt;br /&gt;
#P6           player.attr[6]&lt;br /&gt;
              attr[6]&lt;br /&gt;
#P6(float)    players[float].attr[6]&lt;br /&gt;
#P7           player.attr[7]&lt;br /&gt;
              attr[7]&lt;br /&gt;
#P7(float)    players[float].attr[7]&lt;br /&gt;
#P8           player.attr[8]&lt;br /&gt;
              attr[8]&lt;br /&gt;
#P8(float)    players[float].attr[8]&lt;br /&gt;
#P9           player.attr[9]&lt;br /&gt;
              attr[9]&lt;br /&gt;
#P9(float)    players[float].attr[9]&lt;br /&gt;
#R(oldstring) string.random()&lt;br /&gt;
#2            player.shieldimg&lt;br /&gt;
              shieldimg&lt;br /&gt;
#2(float)     players[float].shieldimg&lt;br /&gt;
#s(oldstring) getstring(string)&lt;br /&gt;
#1            player.swordimg&lt;br /&gt;
              swordimg&lt;br /&gt;
#1(float)     players[float].swordimg&lt;br /&gt;
#S            player.sword.script&lt;br /&gt;
#t(float)     tokens[float]&lt;br /&gt;
#T(oldstring) string.trim()&lt;br /&gt;
#v(float)     float&lt;br /&gt;
#W            player.weapon.icon&lt;br /&gt;
#W(float)     weapons[float].icon&lt;br /&gt;
#w            player.weapon.script&lt;br /&gt;
#w(float)     weapons[float].script&lt;br /&gt;
&lt;br /&gt;
Compatibility note:&lt;br /&gt;
When you use the command setcharprop then the first parameter&lt;br /&gt;
is handled differently: instead of changing 'player.chat' it&lt;br /&gt;
is changing 'chat', the chat text of the npc. So 'setcharprop #c,hello'&lt;br /&gt;
would be translated into&lt;br /&gt;
chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
while 'setplayerprop #c,hello' is translated into&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
In the list above both possibilities are listed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=Talk:MMORPG&amp;diff=1595</id>
		<title>Talk:MMORPG</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=Talk:MMORPG&amp;diff=1595"/>
		<updated>2005-02-22T09:37:51Z</updated>

		<summary type="html">&lt;p&gt;Evil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I disagree with this edit. I grant that 'online RPG' is ambiguous, but nobody claimed that the two terms were identical. And the persistence of the world is just a product of the massively multiplayer-ness. I don't think it needs to be examined in detail.&amp;lt;br\&amp;gt;&lt;br /&gt;
Personally, I would at most point out that there are other, non-MM games that could also qualify as 'online RPG's, and that the term is thus fuzzy.&lt;br /&gt;
[[Kaimetsu]]&lt;br /&gt;
&lt;br /&gt;
I think the comment was meant to be a stab at Graal anyway -- [[User:Evil|Evil]] 10:37, 22 Feb 2005 (CET)&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1594</id>
		<title>Creation/Dev/GScript2</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1594"/>
		<updated>2005-02-11T03:26:41Z</updated>

		<summary type="html">&lt;p&gt;Evil: /* Standard Object Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GScript 2 is the new scripting engine for [[Graal]]&lt;br /&gt;
&lt;br /&gt;
== Old Script Compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Removed functionality ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;toinventory&lt;br /&gt;
&amp;lt;li&amp;gt;followplayer&lt;br /&gt;
&amp;lt;li&amp;gt;playersays()&lt;br /&gt;
&amp;lt;li&amp;gt;setbackpal&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supported old scripting commands &amp;amp; their mapping to new script ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;addstring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;addstring(string,string);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;addtiledef oldstring, oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;addtiledef(string,string,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;addtiledef2 oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;addtiledef2(string,string,float,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;attachplayertoobj float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;attachplayertoobj(float,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;blockagain;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                blockagain();&lt;br /&gt;
&amp;lt;dt&amp;gt;blockagainlocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                blockagainlocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;callnpc float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                callnpc(float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;callweapon float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                callweapon(float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;canbecarried;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbecarried();&lt;br /&gt;
&amp;lt;dt&amp;gt;canbepulled;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbepulled();&lt;br /&gt;
&amp;lt;dt&amp;gt;canbepushed;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbepushed();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbecarried;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbecarried();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbepulled;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbepulled();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbepushed;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbepushed();&lt;br /&gt;
&amp;lt;dt&amp;gt;canwarp;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canwarp();&lt;br /&gt;
&amp;lt;dt&amp;gt;canwarp2;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canwarp2();&lt;br /&gt;
&amp;lt;dt&amp;gt;carryobject oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                carryobject(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgcolors float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgcolors(float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgmode float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgmode(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgpart float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgpart(float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgvis float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgvis(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgzoom float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgzoom(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;deletestring oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                deletestring(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;destroy;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                destroy();&lt;br /&gt;
&amp;lt;dt&amp;gt;detachplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                detachplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;disabledefmovement;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disabledefmovement();&lt;br /&gt;
&amp;lt;dt&amp;gt;disablemap;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disablemap();&lt;br /&gt;
&amp;lt;dt&amp;gt;disablepause;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disablepause();&lt;br /&gt;
&amp;lt;dt&amp;gt;disableselectweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disableselectweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;disableweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disableweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;dontblock;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                dontblock();&lt;br /&gt;
&amp;lt;dt&amp;gt;dontblocklocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                dontblocklocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawaslight;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawaslight();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawoverplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawoverplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawunderplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawunderplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;enabledefmovement;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enabledefmovement();&lt;br /&gt;
&amp;lt;dt&amp;gt;enablefeatures float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablefeatures(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;enablemap;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablemap();&lt;br /&gt;
&amp;lt;dt&amp;gt;enablepause;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablepause();&lt;br /&gt;
&amp;lt;dt&amp;gt;enableselectweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enableselectweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;enableweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enableweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;explodebomb float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                explodebomb(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;followplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                followplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;freezeplayer float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                freezeplayer(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;freezeplayer2;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                freezeplayer2();&lt;br /&gt;
&amp;lt;dt&amp;gt;hide;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hide();&lt;br /&gt;
&amp;lt;dt&amp;gt;hideimg float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideimg(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hideimgs float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideimgs(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hidelocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hidelocal();&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;hitcompu float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitcompu(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitnpc float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitnpc(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitobjects float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitobjects(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hideplayer float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideplayer(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hidesword float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hidesword(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitplayer float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitplayer(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hurt float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hurt(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;insertstring oldstring, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                insertstring(string,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;join oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                join(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;lay oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                lay(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;lay2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                lay2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;loadmap oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                loadmap(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;message oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                message(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;move float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                move(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;noplayerkilling;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                noplayerkilling();&lt;br /&gt;
&amp;lt;dt&amp;gt;openurl oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                openurl(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;openurl2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                openurl2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;play oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                play(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;play2 oldstring, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                play2(string,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;playlooped oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                playlooped(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;putbomb float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putbomb(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putcomp oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putcomp(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putexplosion float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putexplosion(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putexplosion2 float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putexplosion2(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;puthorse oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                puthorse(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putleaps float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putleaps(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnewcomp oldstring, float, float, oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnewcomp(string,float,float,string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnpc oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnpc(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnpc2 float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnpc2(float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;reflectarrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                reflectarrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removearrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removearrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removebomb float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removebomb(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removecompus;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removecompus();&lt;br /&gt;
&amp;lt;dt&amp;gt;removeexplo float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removeexplo(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removehorse float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removehorse(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removeitem float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removeitem(float)&lt;br /&gt;
&amp;lt;dt&amp;gt;removestring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removestring(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;removetiledefs oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removetiledefs(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;replaceani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                replaceani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;replacestring oldstring, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                replacestring(string,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;resetfocus;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                resetfocus();&lt;br /&gt;
&amp;lt;dt&amp;gt;savelog oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                savelog(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;savelog2 oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                savelog2(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;say float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                say(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;say2 oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                say2(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendrpgmessage oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendrpgmessage(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendpm oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendpm(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendtonc oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendtonc(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendtorc oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendtorc(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;serverwarp oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                serverwarp(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;set oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                set(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setarray float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setarray(var,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setbeltcolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setbeltcolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setbow oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setbow(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcharani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcharani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setchargender oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setchargender(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcharprop oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                string = string;&lt;br /&gt;
&amp;lt;dt&amp;gt;setcoatcolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcoatcolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcoloreffect float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcoloreffect(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcursor float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcursor(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcurcor2 oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcursor2(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;seteffect float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seteffect(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;seteffectmode float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seteffectmode(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setfocus float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setfocus(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setgender oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setgender(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sethead oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sethead(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setlevel oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setlevel(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setlevel2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setlevel2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setmap oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setmap(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setminimap oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setminimap(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setmusicvolume float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setmusicvolume(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setimg oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setimg(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setimgpart oldstring, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setimgpart(string,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setletters oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setletters(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setplayerdir oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setplayerdir(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setplayerprop oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                string = string;&lt;br /&gt;
&amp;lt;dt&amp;gt;setpm oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setpm(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshape float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshape(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshape2 float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshape2(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshield oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshield(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshoecolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshoecolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshootparams oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshootparams(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setskincolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setskincolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setsleevecolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setsleevecolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setstring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setstring(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setsword oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setsword(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;seturllevel oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seturllevel(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setz float, float, float, float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setz(float,float,float,float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setzoomeffect float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setzoomeffect(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shoot float, float, float, float, float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shoot(float,float,float,float,float,float,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootarrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootarrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootball;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootball();&lt;br /&gt;
&amp;lt;dt&amp;gt;shootfireball float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootfireball(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootfireblast float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootfireblast(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootnuke float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootnuke(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;show;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                show();&lt;br /&gt;
&amp;lt;dt&amp;gt;showani float, float, float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showani(float,float,float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showani2 float, float, float, float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showani2(float,float,float,float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showcharacter;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showcharacter();&lt;br /&gt;
&amp;lt;dt&amp;gt;showfile oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showfile(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showimg float, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showimg(float,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showimg2 float, oldstring, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showimg2(float,string,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showlocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showlocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;showpoly float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showpoly(float,array);&lt;br /&gt;
&amp;lt;dt&amp;gt;showpoly2 float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showpoly2(float,array);&lt;br /&gt;
&amp;lt;dt&amp;gt;showstats float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showstats(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showtext float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showtext(float,float,float,string,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showtext2 float, float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showtext2(float,float,float,float,string,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sleep float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sleep(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;spyfire float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                spyfire(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;stopmidi;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                stopmidi();&lt;br /&gt;
&amp;lt;dt&amp;gt;stopsound oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                stopsound(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;take oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                take(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;take2 float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                take2(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;takehorse float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takehorse(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;takeplayercarry;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takeplayercarry();&lt;br /&gt;
&amp;lt;dt&amp;gt;takeplayerhorse;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takeplayerhorse();&lt;br /&gt;
&amp;lt;dt&amp;gt;throwcarry;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                throwcarry();&lt;br /&gt;
&amp;lt;dt&amp;gt;timereverywhere;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                timereverywhere();&lt;br /&gt;
&amp;lt;dt&amp;gt;timershow;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                timershow();&lt;br /&gt;
&amp;lt;dt&amp;gt;toinventory oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                toinventory(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;tokenize oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = string.tokenize();&lt;br /&gt;
&amp;lt;dt&amp;gt;tokenize2 oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = string.tokenize(&amp;quot; ,&amp;quot; @ string);&lt;br /&gt;
&amp;lt;dt&amp;gt;toweapons oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                toweapons(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;triggeraction float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                triggeraction(float,float,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;unfreezeplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                unfreezeplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;unset oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                unset(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;updateboard float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                updateboard(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;updateterrain;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                updateterrain();&lt;br /&gt;
&amp;lt;dt&amp;gt;wraptext float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = wraptext(float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;wraptext2 float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = wraptext2(float,float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supported old string operations ===&lt;br /&gt;
&lt;br /&gt;
These old string operators can be used in string parameters for the old commands, also you can use them directly as operators, e.g.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;#c = &amp;quot;hello&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
is actually doing&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;player.chat = &amp;quot;hello&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#a            player.account&lt;br /&gt;
#a(float)     players[float].account&lt;br /&gt;
#m            player.ani&lt;br /&gt;
              ani&lt;br /&gt;
#m(float)     players[float].ani&lt;br /&gt;
#K(float)     ascii(float)&lt;br /&gt;
#8            player.bodyimg&lt;br /&gt;
              bodyimg&lt;br /&gt;
#8(float)     players[float].bodyimg&lt;br /&gt;
#c            player.chat&lt;br /&gt;
              chat&lt;br /&gt;
#c(float)     players[float].chat&lt;br /&gt;
#C0           player.colors[0]&lt;br /&gt;
              colors[0]&lt;br /&gt;
#C0(float)    players[float].colors[0]&lt;br /&gt;
#C1           player.colors[1]&lt;br /&gt;
              colors[1]&lt;br /&gt;
#C1(float)    players[float].colors[1]&lt;br /&gt;
#C2           player.colors[2]&lt;br /&gt;
              colors[2]&lt;br /&gt;
#C2(float)    players[float].colors[2]&lt;br /&gt;
#C3           player.colors[3]&lt;br /&gt;
              colors[3]&lt;br /&gt;
#C3(float)    players[float].colors[3]&lt;br /&gt;
#C4           player.colors[4]&lt;br /&gt;
              colors[4]&lt;br /&gt;
#C4(float)    players[float].colors[4]&lt;br /&gt;
#C5           player.colors[5]&lt;br /&gt;
              colors[5]&lt;br /&gt;
#C5(float)    players[float].colors[5]&lt;br /&gt;
#D            downloadfile()&lt;br /&gt;
#E            emoticonchar()&lt;br /&gt;
#e(float,float,oldstring)&lt;br /&gt;
              string.substring(float,float)&lt;br /&gt;
#g            player.guild&lt;br /&gt;
              guild&lt;br /&gt;
#g(float)     players[float].guild&lt;br /&gt;
#3            player.headimg&lt;br /&gt;
              headimg&lt;br /&gt;
#3(float)     players[float].headimg&lt;br /&gt;
#5            player.horseimg&lt;br /&gt;
              horseimg&lt;br /&gt;
#5(float)     players[float].horseimg&lt;br /&gt;
#k(float)     keyname(float)&lt;br /&gt;
#L            player.level&lt;br /&gt;
#I(oldstring,float)&lt;br /&gt;
              getstring(string)[float]&lt;br /&gt;
#n            player.nick&lt;br /&gt;
              nick&lt;br /&gt;
#n(float)     players[float].nick&lt;br /&gt;
#f            image&lt;br /&gt;
#f(float)     npcs[float].image&lt;br /&gt;
#F            level&lt;br /&gt;
#p(float)     params[float]&lt;br /&gt;
#P(float)     player.attr[float]&lt;br /&gt;
              attr[float]&lt;br /&gt;
#P(float,float)&lt;br /&gt;
              players[float].attr[float]&lt;br /&gt;
#P1           player.attr[1]&lt;br /&gt;
              attr[1]&lt;br /&gt;
#P1(float)    players[float].attr[1]&lt;br /&gt;
#P2           player.attr[2]&lt;br /&gt;
              attr[2]&lt;br /&gt;
#P2(float)    players[float].attr[2]&lt;br /&gt;
#P3           player.attr[3]&lt;br /&gt;
              attr[3]&lt;br /&gt;
#P3(float)    players[float].attr[3]&lt;br /&gt;
#P4           player.attr[4]&lt;br /&gt;
              attr[4]&lt;br /&gt;
#P4(float)    players[float].attr[4]&lt;br /&gt;
#P5           player.attr[5]&lt;br /&gt;
              attr[5]&lt;br /&gt;
#P5(float)    players[float].attr[5]&lt;br /&gt;
#P6           player.attr[6]&lt;br /&gt;
              attr[6]&lt;br /&gt;
#P6(float)    players[float].attr[6]&lt;br /&gt;
#P7           player.attr[7]&lt;br /&gt;
              attr[7]&lt;br /&gt;
#P7(float)    players[float].attr[7]&lt;br /&gt;
#P8           player.attr[8]&lt;br /&gt;
              attr[8]&lt;br /&gt;
#P8(float)    players[float].attr[8]&lt;br /&gt;
#P9           player.attr[9]&lt;br /&gt;
              attr[9]&lt;br /&gt;
#P9(float)    players[float].attr[9]&lt;br /&gt;
#R(oldstring) string.random()&lt;br /&gt;
#2            player.shieldimg&lt;br /&gt;
              shieldimg&lt;br /&gt;
#2(float)     players[float].shieldimg&lt;br /&gt;
#s(oldstring) getstring(string)&lt;br /&gt;
#1            player.swordimg&lt;br /&gt;
              swordimg&lt;br /&gt;
#1(float)     players[float].swordimg&lt;br /&gt;
#S            player.sword.script&lt;br /&gt;
#t(float)     tokens[float]&lt;br /&gt;
#T(oldstring) string.trim()&lt;br /&gt;
#v(float)     float&lt;br /&gt;
#W            player.weapon.icon&lt;br /&gt;
#W(float)     weapons[float].icon&lt;br /&gt;
#w            player.weapon.script&lt;br /&gt;
#w(float)     weapons[float].script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compatibility note:&lt;br /&gt;
When you use the command setcharprop then the first parameter&lt;br /&gt;
is handled differently: instead of changing 'player.chat' it&lt;br /&gt;
is changing 'chat', the chat text of the npc. So 'setcharprop #c,hello'&lt;br /&gt;
would be translated into&lt;br /&gt;
chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
while 'setplayerprop #c,hello' is translated into&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
In the list above both possibilities are listed.&lt;br /&gt;
&lt;br /&gt;
== Old Script Compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Operators ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Addition                  a + b&lt;br /&gt;
Substraction              a - b&lt;br /&gt;
Mulitplication            a * b&lt;br /&gt;
Division                  a / b&lt;br /&gt;
Modulus                   a % b&lt;br /&gt;
Power                     a ^ b&lt;br /&gt;
String Concationation     a @ b&lt;br /&gt;
Bool-And                  a &amp;amp;&amp;amp; b&lt;br /&gt;
Bool-Or                   a || b&lt;br /&gt;
Bool-Not                  !a&lt;br /&gt;
Negative                  -a&lt;br /&gt;
Equal                     a == b&lt;br /&gt;
Not-Equal                 a != b&lt;br /&gt;
Less                      a &amp;lt; b&lt;br /&gt;
Greater                   a &amp;gt; b&lt;br /&gt;
Less-Equal                a &amp;lt;= b,  a =&amp;lt; b&lt;br /&gt;
Greater-Equal             a &amp;gt;= b,  a =&amp;gt; b&lt;br /&gt;
In-Range                  a in &amp;lt;b,c&amp;gt;, a in |b,c&amp;gt;, a in &amp;lt;b,c|, a in |b,c|&lt;br /&gt;
In-Array                  a in {b,c,...}, {a,b,...} in {c,d,...}&lt;br /&gt;
Array-Constructor         {a,b,...}&lt;br /&gt;
Empty Array               new [count]&lt;br /&gt;
Array Member              a[index]&lt;br /&gt;
Function call             a(), a(b,c,...)&lt;br /&gt;
Object Attribute          a.b, a.(b)&lt;br /&gt;
Post Increment            a++&lt;br /&gt;
Post Decrement            a--&lt;br /&gt;
Pre Increment             ++a&lt;br /&gt;
Pre Decrement             --a&lt;br /&gt;
Old String Function       #a&lt;br /&gt;
Conditional               a? b : c&lt;br /&gt;
Assignment                a = b, a := b&lt;br /&gt;
Additive Assignment       a += b&lt;br /&gt;
Substractive Assignment   a -= b&lt;br /&gt;
Multiplicative Assignment a *= b&lt;br /&gt;
Division Assignment       a /= b&lt;br /&gt;
Modulus Assignment        a %= b&lt;br /&gt;
Power Assignment          a ^= b&lt;br /&gt;
String Append             a @= b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Accessing Variables ===&lt;br /&gt;
&lt;br /&gt;
Graal Script variables are 'variant', that means they are objects&lt;br /&gt;
that hold values of different types.&lt;br /&gt;
When you assign a value to the variable then it automatically&lt;br /&gt;
switches to the right type:&lt;br /&gt;
&lt;br /&gt;
Numeric (floating point):&lt;br /&gt;
  var = 1;&lt;br /&gt;
String:&lt;br /&gt;
  var = &amp;quot;hello&amp;quot;;&lt;br /&gt;
Object link:&lt;br /&gt;
  var = player;&lt;br /&gt;
Array (list of objects):&lt;br /&gt;
  var = {1,2,3};&lt;br /&gt;
&lt;br /&gt;
You can check the current type with the&lt;br /&gt;
type()-function - obj.type() returns&lt;br /&gt;
0,1,2,3 for numeric, string, object or array.&lt;br /&gt;
&lt;br /&gt;
=== Standard Object Functions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
obj.name&lt;br /&gt;
obj.type()  - gets the type of the var (float 0, string 1, object 2, array 3)&lt;br /&gt;
obj.length() - string length&lt;br /&gt;
obj.trim()&lt;br /&gt;
obj.tokenize([delimiters])&lt;br /&gt;
obj.charat(pos)&lt;br /&gt;
obj.pos(substring)&lt;br /&gt;
obj.begins(string)&lt;br /&gt;
obj.endson(string)&lt;br /&gt;
obj.substring(index[,length])&lt;br /&gt;
obj.size() - array length&lt;br /&gt;
obj.index(obj2) - position of obj2 in the array&lt;br /&gt;
obj.clear()&lt;br /&gt;
obj.add(obj2)&lt;br /&gt;
obj.delete(index)&lt;br /&gt;
obj.remove(obj2)&lt;br /&gt;
obj.replace(index,obj2)&lt;br /&gt;
obj.insert(index,obj2)&lt;br /&gt;
obj.getvarnames() - list of the object attributes&lt;br /&gt;
obj.geteditvarnames()&lt;br /&gt;
obj.loadstring(filename)&lt;br /&gt;
obj.loadlines(filename)&lt;br /&gt;
obj.loadvars(filename)&lt;br /&gt;
obj.savestring(filename,mode)&lt;br /&gt;
obj.savelines(filename,mode)&lt;br /&gt;
obj.savevars(filename,mode)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== NPCs ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
npc.actionplayer - integer, read only&lt;br /&gt;
npc.ani - object, read only&lt;br /&gt;
npc.anistep - integer, read only&lt;br /&gt;
npc.ap - integer&lt;br /&gt;
npc.attr - array&lt;br /&gt;
npc.attached - boolean, read only&lt;br /&gt;
npc.attachid - integer, read only&lt;br /&gt;
npc.attachtype - integer, read only&lt;br /&gt;
npc.body - object&lt;br /&gt;
npc.bodyimg - string&lt;br /&gt;
npc.bombs - integer&lt;br /&gt;
npc.chat - string&lt;br /&gt;
npc.colors - array&lt;br /&gt;
npc.darts - integer&lt;br /&gt;
npc.dir - integer&lt;br /&gt;
npc.glovepower - integer&lt;br /&gt;
npc.gralats - integer&lt;br /&gt;
npc.head - object&lt;br /&gt;
npc.headimg - string&lt;br /&gt;
npc.headset - integer&lt;br /&gt;
npc.hearts - floating point value, better use npc.hp&lt;br /&gt;
npc.height - floating point value, read only&lt;br /&gt;
npc.horseimg - string&lt;br /&gt;
npc.hp - floating point value&lt;br /&gt;
npc.hurtdx - floating point value&lt;br /&gt;
npc.hurtdy - floating point value&lt;br /&gt;
npc.id - integer, read only&lt;br /&gt;
npc.isfemale - boolean, read only&lt;br /&gt;
npc.ismale - boolean, read only&lt;br /&gt;
npc.isweapon - boolean, read only&lt;br /&gt;
npc.layer - integer&lt;br /&gt;
npc.mp - integer&lt;br /&gt;
npc.nick - string&lt;br /&gt;
npc.peltwithnpc - boolean, read only&lt;br /&gt;
npc.peltwithbush - boolean, read only&lt;br /&gt;
npc.peltwithsign - boolean, read only&lt;br /&gt;
npc.peltwithvase - boolean, read only&lt;br /&gt;
npc.peltwithstone - boolean, read only&lt;br /&gt;
npc.peltwithblackstone - boolean, read only&lt;br /&gt;
npc.rupees - integer, better use npc.gralats&lt;br /&gt;
npc.shield - object&lt;br /&gt;
npc.shieldimg - string&lt;br /&gt;
npc.shieldpower - integer&lt;br /&gt;
npc.sprite - integer&lt;br /&gt;
npc.sword - object&lt;br /&gt;
npc.swordimg - string&lt;br /&gt;
npc.swordpower - integer&lt;br /&gt;
npc.timeout - floating point value&lt;br /&gt;
npc.visible - boolean&lt;br /&gt;
npc.width - floating point value, read only&lt;br /&gt;
npc.x - floating point value&lt;br /&gt;
npc.y - floating point value&lt;br /&gt;
npc.z - floating point value&lt;br /&gt;
&lt;br /&gt;
npc.blockagain()&lt;br /&gt;
npc.blockagainlocal()&lt;br /&gt;
npc.canbecarried()&lt;br /&gt;
npc.cannotbecarried()&lt;br /&gt;
npc.canbepushed()&lt;br /&gt;
npc.cannotbepushed()&lt;br /&gt;
npc.canbepulled()&lt;br /&gt;
npc.cannotbepulled()&lt;br /&gt;
npc.carryobject(name)&lt;br /&gt;
npc.catchevent(object name,event,function)&lt;br /&gt;
npc.changeimgcolors(index,red,green,blue,alpha)&lt;br /&gt;
npc.changeimgmode(index,mode)&lt;br /&gt;
npc.changeimgpart(index,x,y,width,height)&lt;br /&gt;
npc.changeimgvis(index,layer)&lt;br /&gt;
npc.changeimgzoom(index,zoom factor)&lt;br /&gt;
npc.destroy()&lt;br /&gt;
npc.dontblock()&lt;br /&gt;
npc.dontblocklocal()&lt;br /&gt;
npc.drawaslight()&lt;br /&gt;
npc.drawoverplayer()&lt;br /&gt;
npc.drawunderplayer()&lt;br /&gt;
npc.getimageforsprite(sprite) - returns image&lt;br /&gt;
npc.getsprite(string) - returns sprite&lt;br /&gt;
npc.getspriteforspritepos(spritepos) - returns sprite&lt;br /&gt;
npc.hide()&lt;br /&gt;
npc.hidelocal()&lt;br /&gt;
npc.hideimg(index)&lt;br /&gt;
npc.hideimgs(startindex,endindex)&lt;br /&gt;
npc.hurt(power)&lt;br /&gt;
npc.ignoreevent(object name,event)&lt;br /&gt;
npc.ignoreevents(object name)&lt;br /&gt;
npc.lay(item name)&lt;br /&gt;
npc.message(text)&lt;br /&gt;
npc.move(delta x,delta y,time,options)&lt;br /&gt;
npc.setbow(image name)&lt;br /&gt;
npc.setcharani(ani name,parameters)&lt;br /&gt;
npc.setchargender(&amp;quot;male&amp;quot; or &amp;quot;female&amp;quot;)&lt;br /&gt;
npc.setcoloreffect(red,green,blue,alpha)&lt;br /&gt;
npc.seteffectmode(mode)&lt;br /&gt;
npc.setimg(image name)&lt;br /&gt;
npc.setimgpart(image name,x,y,width,height)&lt;br /&gt;
npc.setshape(type,pixelwidth,pixelheight)&lt;br /&gt;
npc.setshape2(tilewidth,tileheight,tilearray)&lt;br /&gt;
npc.setzoomeffect(zoom factor)&lt;br /&gt;
npc.shootarrow(direction)&lt;br /&gt;
npc.shootball()&lt;br /&gt;
npc.shootfireball(direction)&lt;br /&gt;
npc.shootfireblast(direction)&lt;br /&gt;
npc.shootnuke(direction)&lt;br /&gt;
npc.show()&lt;br /&gt;
npc.showani(index,x,y,direction,ani name,parameters)&lt;br /&gt;
npc.showani2(index,x,y,z,direction,ani name,parameters)&lt;br /&gt;
npc.showcharacter()&lt;br /&gt;
npc.showimg(index,image name,x,y)&lt;br /&gt;
npc.showimg2(index,image name,x,y,z)&lt;br /&gt;
npc.showlocal()&lt;br /&gt;
npc.showpoly(index,array)&lt;br /&gt;
npc.showpoly2(index,array)&lt;br /&gt;
npc.showtext(index,x,y,font,style,text)&lt;br /&gt;
npc.showtext2(index,x,y,z,font,style,text)&lt;br /&gt;
npc.take(item name)&lt;br /&gt;
npc.take2(item index)&lt;br /&gt;
npc.takehorse(horse index)&lt;br /&gt;
npc.throwcarry()&lt;br /&gt;
npc.timereverywhere()&lt;br /&gt;
npc.timershow()&lt;br /&gt;
npc.toweapons(weapon name)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Players ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
player.account - string, read only&lt;br /&gt;
player.ani - object, read only&lt;br /&gt;
player.anistep - integer, read only&lt;br /&gt;
player.ap - integer&lt;br /&gt;
player.attached - boolean, read only&lt;br /&gt;
player.attachid - integer, read only&lt;br /&gt;
player.attachtype - integer, read only&lt;br /&gt;
player.attr - array&lt;br /&gt;
player.body - object&lt;br /&gt;
player.bodyimg - string&lt;br /&gt;
player.bombs - integer&lt;br /&gt;
player.chat - string&lt;br /&gt;
player.colors - array&lt;br /&gt;
player.darts - integer&lt;br /&gt;
player.dir - integer&lt;br /&gt;
player.freezetime - floating point value, only valid for local players&lt;br /&gt;
player.fullhearts - integer, read only, better use player.maxhp&lt;br /&gt;
player.glovepower - integer&lt;br /&gt;
player.gralats - integer&lt;br /&gt;
player.head - object&lt;br /&gt;
player.headimg - string&lt;br /&gt;
player.headset - integer&lt;br /&gt;
player.hearts - floating point value, only editable for local players, better use player.hp&lt;br /&gt;
player.horseimg - string, only editable for local players&lt;br /&gt;
player.hp - floating point value, only editable for local players&lt;br /&gt;
player.hurt - boolean, read only, only valid for local players&lt;br /&gt;
player.hurtdx - floating point value, read only, only valid for local players&lt;br /&gt;
player.hurtdy - floating point value, read only, only valid for local players&lt;br /&gt;
player.hurted - boolean, read only, only valid for local players, better use player.hurt&lt;br /&gt;
player.hurtpower - floating point value, read only, only valid for local players&lt;br /&gt;
player.id - integer, read only&lt;br /&gt;
player.isfemale - boolean, read only&lt;br /&gt;
player.ismale - boolean, read only&lt;br /&gt;
player.letters - object, only valid for local players&lt;br /&gt;
player.level - object, read only&lt;br /&gt;
player.map - boolean, only valid for local players&lt;br /&gt;
player.maxhp - integer, read only&lt;br /&gt;
player.mp - integer&lt;br /&gt;
player.nick - string, read only for local players&lt;br /&gt;
player.onhorse - boolean, read only, only valid for local players&lt;br /&gt;
player.online - boolean, read only, only valid for local players&lt;br /&gt;
player.paused - boolean, read only, only valid for local players&lt;br /&gt;
player.reading - boolean, read only, only valid for local players&lt;br /&gt;
player.rupees - integer, better use player.gralats&lt;br /&gt;
player.shield - object&lt;br /&gt;
player.shieldimg - string&lt;br /&gt;
player.shieldpower - integer, read only&lt;br /&gt;
player.sprite - integer&lt;br /&gt;
player.swimming - boolean, read only, only valid for local players&lt;br /&gt;
player.sword - object&lt;br /&gt;
player.swordimg - string&lt;br /&gt;
player.swordpower - integer, read only&lt;br /&gt;
player.weapon - object, read only, only valid for local players&lt;br /&gt;
player.weapons - array, read only, only valid for local players&lt;br /&gt;
player.x - floating point value&lt;br /&gt;
player.y - floating point value&lt;br /&gt;
player.z - floating point value&lt;br /&gt;
&lt;br /&gt;
player.getimageforsprite(sprite) - returns object&lt;br /&gt;
player.getsprite(string) - returns object&lt;br /&gt;
player.getspriteforspritepos(spritepos) - returns object&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Levels ====&lt;br /&gt;
==== Ganis ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
e.g. player.ani&lt;br /&gt;
ani.name&lt;br /&gt;
ani.sprites[]&lt;br /&gt;
ani.steps[]&lt;br /&gt;
ani.continuous&lt;br /&gt;
ani.singledirection&lt;br /&gt;
ani.looping&lt;br /&gt;
ani.ismovie&lt;br /&gt;
ani.setbackto&lt;br /&gt;
ani.ganitype&lt;br /&gt;
ani.getsprite(id)&lt;br /&gt;
ani.addsprite(id) returns the added sprite&lt;br /&gt;
ani.deletesprite(id)&lt;br /&gt;
ani.addstep()&lt;br /&gt;
ani.insertstep(index)&lt;br /&gt;
ani.deletestep(index)&lt;br /&gt;
&lt;br /&gt;
sprites:&lt;br /&gt;
sprite.spriteindex&lt;br /&gt;
sprite.image&lt;br /&gt;
sprite.imagetype&lt;br /&gt;
sprite.x&lt;br /&gt;
sprite.y&lt;br /&gt;
sprite.width&lt;br /&gt;
sprite.height&lt;br /&gt;
sprite.red&lt;br /&gt;
sprite.green&lt;br /&gt;
sprite.blue&lt;br /&gt;
sprite.alpha&lt;br /&gt;
sprite.zoom&lt;br /&gt;
sprite.mode&lt;br /&gt;
sprite.surface&lt;br /&gt;
sprite.attachments[]&lt;br /&gt;
sprite.addattachment()&lt;br /&gt;
sprite.insertattachment(index)&lt;br /&gt;
sprite.deleteattachment(index)&lt;br /&gt;
&lt;br /&gt;
attachment:&lt;br /&gt;
attachment.sprite&lt;br /&gt;
attachment.dx&lt;br /&gt;
attachment.dy&lt;br /&gt;
attachment.behind&lt;br /&gt;
&lt;br /&gt;
step:&lt;br /&gt;
step.spritespos[][]&lt;br /&gt;
step.sounds[]&lt;br /&gt;
step.delay&lt;br /&gt;
step.addpos(dir)&lt;br /&gt;
step.insertpos(dir,index)&lt;br /&gt;
step.deletepos(dir,index)&lt;br /&gt;
&lt;br /&gt;
spritepos:&lt;br /&gt;
spritepos.sprite&lt;br /&gt;
spritepos.param&lt;br /&gt;
spritepos.attr&lt;br /&gt;
spritepos.dx&lt;br /&gt;
spritepos.dy&lt;br /&gt;
&lt;br /&gt;
sound:&lt;br /&gt;
sound.sound&lt;br /&gt;
sound.dx&lt;br /&gt;
sound.dy&lt;br /&gt;
sound.delay&lt;br /&gt;
&lt;br /&gt;
also the gani owners (players, npcs) have those functions:&lt;br /&gt;
getimageforsprite(sprite)&lt;br /&gt;
getsprite(string)&lt;br /&gt;
getspriteforspritepos(spritepos)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Standard functions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
format(format,parameters,...) - formats a &amp;quot;%s %d&amp;quot; string, inserts the parameters, and returns a string&lt;br /&gt;
int(a)&lt;br /&gt;
abs(a)&lt;br /&gt;
random(rangestart,rangeend)&lt;br /&gt;
sin(a)&lt;br /&gt;
cos(a)&lt;br /&gt;
arctan(a)&lt;br /&gt;
exp(a)&lt;br /&gt;
log(base,a)&lt;br /&gt;
min(a,b)&lt;br /&gt;
max(a,b)&lt;br /&gt;
getangle(delta x,delta y)&lt;br /&gt;
getdir(delta x,delta y)&lt;br /&gt;
vecx(direction)&lt;br /&gt;
vecy(direction)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Standard variables ===&lt;br /&gt;
&lt;br /&gt;
== GUI ==&lt;br /&gt;
&lt;br /&gt;
=== GUI controls ===&lt;br /&gt;
&lt;br /&gt;
=== GUI events ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
All controls:&lt;br /&gt;
onAdd() when added to the parent&lt;br /&gt;
onRemove() when removed from the parent&lt;br /&gt;
onWake() when activated&lt;br /&gt;
onSleep() when deactivated&lt;br /&gt;
onResize(w,h)&lt;br /&gt;
onMove(x,y)&lt;br /&gt;
onMouseEnter(modifier,x,y,clickcount)&lt;br /&gt;
onMouseLeave(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseMove(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelDown(modifier,x,y,clickcount)&lt;br /&gt;
onKeyDown(keycode,string)&lt;br /&gt;
onKeyUp(keycode,string)&lt;br /&gt;
onKeyRepeat(keycode,string)&lt;br /&gt;
&lt;br /&gt;
GuiMLTextCtrl:&lt;br /&gt;
onResize(w,h) when reflowing&lt;br /&gt;
onURL(url) when clicked on url&lt;br /&gt;
&lt;br /&gt;
GuiTextEditCtrl:&lt;br /&gt;
onTabComplete()&lt;br /&gt;
onAction(text) when return key pressed&lt;br /&gt;
&lt;br /&gt;
GuiTextListCtrl:&lt;br /&gt;
onSelect(id,text) when row selected&lt;br /&gt;
onDblClick(id) when double-click on row or return key pressed&lt;br /&gt;
onDeleteKey(id) when delete key pressed&lt;br /&gt;
onIconResized(w,h) when setIconSize() called&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&lt;br /&gt;
GuiPopUpMenuCtrl:&lt;br /&gt;
onSelect(id,text) when menu option choosen&lt;br /&gt;
onCancel() when menu is closed without action&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&lt;br /&gt;
GuiMenuBar:&lt;br /&gt;
onMenuSelect(menuid,menutext)&lt;br /&gt;
onMenuItemSelect(menuid,menutext,itemid,itemtext)&lt;br /&gt;
&lt;br /&gt;
GuiTreeViewCtrl:&lt;br /&gt;
onSelect(id,rightmouse) when row selected&lt;br /&gt;
onUnselect(id) when row de-selected&lt;br /&gt;
onInspect(id) when clicked on the name of an item&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
onContextMenu(&amp;quot;x y&amp;quot;,id) when clicked with right-mouse key on row&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1398</id>
		<title>Creation/Dev/GScript2</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1398"/>
		<updated>2005-02-06T17:06:55Z</updated>

		<summary type="html">&lt;p&gt;Evil: /* Supported old string operations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GScript 2 is the new scripting engine for [[Graal]]&lt;br /&gt;
&lt;br /&gt;
== Old Script Compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Removed functionality ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;toinventory&lt;br /&gt;
&amp;lt;li&amp;gt;followplayer&lt;br /&gt;
&amp;lt;li&amp;gt;playersays()&lt;br /&gt;
&amp;lt;li&amp;gt;setbackpal&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supported old scripting commands &amp;amp; their mapping to new script ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;addstring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;addstring(string,string);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;addtiledef oldstring, oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;addtiledef(string,string,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;addtiledef2 oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;addtiledef2(string,string,float,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;attachplayertoobj float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;attachplayertoobj(float,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;blockagain;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                blockagain();&lt;br /&gt;
&amp;lt;dt&amp;gt;blockagainlocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                blockagainlocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;callnpc float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                callnpc(float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;callweapon float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                callweapon(float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;canbecarried;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbecarried();&lt;br /&gt;
&amp;lt;dt&amp;gt;canbepulled;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbepulled();&lt;br /&gt;
&amp;lt;dt&amp;gt;canbepushed;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbepushed();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbecarried;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbecarried();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbepulled;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbepulled();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbepushed;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbepushed();&lt;br /&gt;
&amp;lt;dt&amp;gt;canwarp;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canwarp();&lt;br /&gt;
&amp;lt;dt&amp;gt;canwarp2;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canwarp2();&lt;br /&gt;
&amp;lt;dt&amp;gt;carryobject oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                carryobject(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgcolors float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgcolors(float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgmode float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgmode(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgpart float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgpart(float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgvis float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgvis(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgzoom float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgzoom(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;deletestring oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                deletestring(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;destroy;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                destroy();&lt;br /&gt;
&amp;lt;dt&amp;gt;detachplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                detachplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;disabledefmovement;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disabledefmovement();&lt;br /&gt;
&amp;lt;dt&amp;gt;disablemap;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disablemap();&lt;br /&gt;
&amp;lt;dt&amp;gt;disablepause;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disablepause();&lt;br /&gt;
&amp;lt;dt&amp;gt;disableselectweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disableselectweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;disableweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disableweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;dontblock;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                dontblock();&lt;br /&gt;
&amp;lt;dt&amp;gt;dontblocklocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                dontblocklocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawaslight;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawaslight();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawoverplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawoverplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawunderplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawunderplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;enabledefmovement;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enabledefmovement();&lt;br /&gt;
&amp;lt;dt&amp;gt;enablefeatures float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablefeatures(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;enablemap;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablemap();&lt;br /&gt;
&amp;lt;dt&amp;gt;enablepause;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablepause();&lt;br /&gt;
&amp;lt;dt&amp;gt;enableselectweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enableselectweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;enableweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enableweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;explodebomb float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                explodebomb(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;followplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                followplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;freezeplayer float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                freezeplayer(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;freezeplayer2;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                freezeplayer2();&lt;br /&gt;
&amp;lt;dt&amp;gt;hide;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hide();&lt;br /&gt;
&amp;lt;dt&amp;gt;hideimg float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideimg(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hideimgs float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideimgs(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hidelocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hidelocal();&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;hitcompu float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitcompu(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitnpc float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitnpc(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitobjects float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitobjects(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hideplayer float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideplayer(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hidesword float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hidesword(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitplayer float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitplayer(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hurt float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hurt(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;insertstring oldstring, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                insertstring(string,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;join oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                join(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;lay oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                lay(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;lay2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                lay2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;loadmap oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                loadmap(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;message oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                message(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;move float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                move(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;noplayerkilling;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                noplayerkilling();&lt;br /&gt;
&amp;lt;dt&amp;gt;openurl oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                openurl(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;openurl2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                openurl2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;play oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                play(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;play2 oldstring, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                play2(string,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;playlooped oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                playlooped(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;putbomb float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putbomb(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putcomp oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putcomp(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putexplosion float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putexplosion(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putexplosion2 float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putexplosion2(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;puthorse oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                puthorse(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putleaps float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putleaps(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnewcomp oldstring, float, float, oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnewcomp(string,float,float,string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnpc oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnpc(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnpc2 float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnpc2(float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;reflectarrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                reflectarrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removearrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removearrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removebomb float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removebomb(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removecompus;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removecompus();&lt;br /&gt;
&amp;lt;dt&amp;gt;removeexplo float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removeexplo(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removehorse float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removehorse(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removeitem float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removeitem(float)&lt;br /&gt;
&amp;lt;dt&amp;gt;removestring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removestring(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;removetiledefs oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removetiledefs(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;replaceani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                replaceani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;replacestring oldstring, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                replacestring(string,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;resetfocus;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                resetfocus();&lt;br /&gt;
&amp;lt;dt&amp;gt;savelog oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                savelog(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;savelog2 oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                savelog2(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;say float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                say(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;say2 oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                say2(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendrpgmessage oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendrpgmessage(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendpm oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendpm(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendtonc oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendtonc(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendtorc oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendtorc(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;serverwarp oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                serverwarp(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;set oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                set(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setarray float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setarray(var,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setbeltcolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setbeltcolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setbow oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setbow(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcharani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcharani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setchargender oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setchargender(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcharprop oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                string = string;&lt;br /&gt;
&amp;lt;dt&amp;gt;setcoatcolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcoatcolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcoloreffect float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcoloreffect(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcursor float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcursor(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcurcor2 oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcursor2(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;seteffect float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seteffect(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;seteffectmode float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seteffectmode(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setfocus float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setfocus(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setgender oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setgender(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sethead oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sethead(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setlevel oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setlevel(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setlevel2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setlevel2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setmap oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setmap(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setminimap oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setminimap(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setmusicvolume float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setmusicvolume(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setimg oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setimg(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setimgpart oldstring, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setimgpart(string,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setletters oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setletters(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setplayerdir oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setplayerdir(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setplayerprop oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                string = string;&lt;br /&gt;
&amp;lt;dt&amp;gt;setpm oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setpm(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshape float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshape(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshape2 float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshape2(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshield oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshield(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshoecolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshoecolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshootparams oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshootparams(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setskincolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setskincolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setsleevecolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setsleevecolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setstring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setstring(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setsword oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setsword(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;seturllevel oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seturllevel(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setz float, float, float, float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setz(float,float,float,float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setzoomeffect float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setzoomeffect(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shoot float, float, float, float, float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shoot(float,float,float,float,float,float,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootarrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootarrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootball;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootball();&lt;br /&gt;
&amp;lt;dt&amp;gt;shootfireball float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootfireball(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootfireblast float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootfireblast(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootnuke float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootnuke(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;show;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                show();&lt;br /&gt;
&amp;lt;dt&amp;gt;showani float, float, float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showani(float,float,float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showani2 float, float, float, float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showani2(float,float,float,float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showcharacter;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showcharacter();&lt;br /&gt;
&amp;lt;dt&amp;gt;showfile oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showfile(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showimg float, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showimg(float,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showimg2 float, oldstring, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showimg2(float,string,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showlocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showlocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;showpoly float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showpoly(float,array);&lt;br /&gt;
&amp;lt;dt&amp;gt;showpoly2 float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showpoly2(float,array);&lt;br /&gt;
&amp;lt;dt&amp;gt;showstats float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showstats(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showtext float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showtext(float,float,float,string,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showtext2 float, float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showtext2(float,float,float,float,string,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sleep float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sleep(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;spyfire float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                spyfire(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;stopmidi;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                stopmidi();&lt;br /&gt;
&amp;lt;dt&amp;gt;stopsound oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                stopsound(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;take oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                take(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;take2 float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                take2(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;takehorse float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takehorse(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;takeplayercarry;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takeplayercarry();&lt;br /&gt;
&amp;lt;dt&amp;gt;takeplayerhorse;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takeplayerhorse();&lt;br /&gt;
&amp;lt;dt&amp;gt;throwcarry;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                throwcarry();&lt;br /&gt;
&amp;lt;dt&amp;gt;timereverywhere;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                timereverywhere();&lt;br /&gt;
&amp;lt;dt&amp;gt;timershow;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                timershow();&lt;br /&gt;
&amp;lt;dt&amp;gt;toinventory oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                toinventory(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;tokenize oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = string.tokenize();&lt;br /&gt;
&amp;lt;dt&amp;gt;tokenize2 oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = string.tokenize(&amp;quot; ,&amp;quot; @ string);&lt;br /&gt;
&amp;lt;dt&amp;gt;toweapons oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                toweapons(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;triggeraction float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                triggeraction(float,float,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;unfreezeplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                unfreezeplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;unset oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                unset(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;updateboard float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                updateboard(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;updateterrain;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                updateterrain();&lt;br /&gt;
&amp;lt;dt&amp;gt;wraptext float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = wraptext(float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;wraptext2 float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = wraptext2(float,float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supported old string operations ===&lt;br /&gt;
&lt;br /&gt;
These old string operators can be used in string parameters for the old commands, also you can use them directly as operators, e.g.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;#c = &amp;quot;hello&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
is actually doing&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;player.chat = &amp;quot;hello&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#a            player.account&lt;br /&gt;
#a(float)     players[float].account&lt;br /&gt;
#m            player.ani&lt;br /&gt;
              ani&lt;br /&gt;
#m(float)     players[float].ani&lt;br /&gt;
#K(float)     ascii(float)&lt;br /&gt;
#8            player.bodyimg&lt;br /&gt;
              bodyimg&lt;br /&gt;
#8(float)     players[float].bodyimg&lt;br /&gt;
#c            player.chat&lt;br /&gt;
              chat&lt;br /&gt;
#c(float)     players[float].chat&lt;br /&gt;
#C0           player.colors[0]&lt;br /&gt;
              colors[0]&lt;br /&gt;
#C0(float)    players[float].colors[0]&lt;br /&gt;
#C1           player.colors[1]&lt;br /&gt;
              colors[1]&lt;br /&gt;
#C1(float)    players[float].colors[1]&lt;br /&gt;
#C2           player.colors[2]&lt;br /&gt;
              colors[2]&lt;br /&gt;
#C2(float)    players[float].colors[2]&lt;br /&gt;
#C3           player.colors[3]&lt;br /&gt;
              colors[3]&lt;br /&gt;
#C3(float)    players[float].colors[3]&lt;br /&gt;
#C4           player.colors[4]&lt;br /&gt;
              colors[4]&lt;br /&gt;
#C4(float)    players[float].colors[4]&lt;br /&gt;
#C5           player.colors[5]&lt;br /&gt;
              colors[5]&lt;br /&gt;
#C5(float)    players[float].colors[5]&lt;br /&gt;
#D            downloadfile()&lt;br /&gt;
#E            emoticonchar()&lt;br /&gt;
#e(float,float,oldstring)&lt;br /&gt;
              string.substring(float,float)&lt;br /&gt;
#g            player.guild&lt;br /&gt;
              guild&lt;br /&gt;
#g(float)     players[float].guild&lt;br /&gt;
#3            player.headimg&lt;br /&gt;
              headimg&lt;br /&gt;
#3(float)     players[float].headimg&lt;br /&gt;
#5            player.horseimg&lt;br /&gt;
              horseimg&lt;br /&gt;
#5(float)     players[float].horseimg&lt;br /&gt;
#k(float)     keyname(float)&lt;br /&gt;
#L            player.level&lt;br /&gt;
#I(oldstring,float)&lt;br /&gt;
              getstring(string)[float]&lt;br /&gt;
#n            player.nick&lt;br /&gt;
              nick&lt;br /&gt;
#n(float)     players[float].nick&lt;br /&gt;
#f            image&lt;br /&gt;
#f(float)     npcs[float].image&lt;br /&gt;
#F            level&lt;br /&gt;
#p(float)     params[float]&lt;br /&gt;
#P(float)     player.attr[float]&lt;br /&gt;
              attr[float]&lt;br /&gt;
#P(float,float)&lt;br /&gt;
              players[float].attr[float]&lt;br /&gt;
#P1           player.attr[1]&lt;br /&gt;
              attr[1]&lt;br /&gt;
#P1(float)    players[float].attr[1]&lt;br /&gt;
#P2           player.attr[2]&lt;br /&gt;
              attr[2]&lt;br /&gt;
#P2(float)    players[float].attr[2]&lt;br /&gt;
#P3           player.attr[3]&lt;br /&gt;
              attr[3]&lt;br /&gt;
#P3(float)    players[float].attr[3]&lt;br /&gt;
#P4           player.attr[4]&lt;br /&gt;
              attr[4]&lt;br /&gt;
#P4(float)    players[float].attr[4]&lt;br /&gt;
#P5           player.attr[5]&lt;br /&gt;
              attr[5]&lt;br /&gt;
#P5(float)    players[float].attr[5]&lt;br /&gt;
#P6           player.attr[6]&lt;br /&gt;
              attr[6]&lt;br /&gt;
#P6(float)    players[float].attr[6]&lt;br /&gt;
#P7           player.attr[7]&lt;br /&gt;
              attr[7]&lt;br /&gt;
#P7(float)    players[float].attr[7]&lt;br /&gt;
#P8           player.attr[8]&lt;br /&gt;
              attr[8]&lt;br /&gt;
#P8(float)    players[float].attr[8]&lt;br /&gt;
#P9           player.attr[9]&lt;br /&gt;
              attr[9]&lt;br /&gt;
#P9(float)    players[float].attr[9]&lt;br /&gt;
#R(oldstring) string.random()&lt;br /&gt;
#2            player.shieldimg&lt;br /&gt;
              shieldimg&lt;br /&gt;
#2(float)     players[float].shieldimg&lt;br /&gt;
#s(oldstring) getstring(string)&lt;br /&gt;
#1            player.swordimg&lt;br /&gt;
              swordimg&lt;br /&gt;
#1(float)     players[float].swordimg&lt;br /&gt;
#S            player.sword.script&lt;br /&gt;
#t(float)     tokens[float]&lt;br /&gt;
#T(oldstring) string.trim()&lt;br /&gt;
#v(float)     float&lt;br /&gt;
#W            player.weapon.icon&lt;br /&gt;
#W(float)     weapons[float].icon&lt;br /&gt;
#w            player.weapon.script&lt;br /&gt;
#w(float)     weapons[float].script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compatibility note:&lt;br /&gt;
When you use the command setcharprop then the first parameter&lt;br /&gt;
is handled differently: instead of changing 'player.chat' it&lt;br /&gt;
is changing 'chat', the chat text of the npc. So 'setcharprop #c,hello'&lt;br /&gt;
would be translated into&lt;br /&gt;
chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
while 'setplayerprop #c,hello' is translated into&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
In the list above both possibilities are listed.&lt;br /&gt;
&lt;br /&gt;
== Old Script Compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Operators ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Addition                  a + b&lt;br /&gt;
Substraction              a - b&lt;br /&gt;
Mulitplication            a * b&lt;br /&gt;
Division                  a / b&lt;br /&gt;
Modulus                   a % b&lt;br /&gt;
Power                     a ^ b&lt;br /&gt;
String Concationation     a @ b&lt;br /&gt;
Bool-And                  a &amp;amp;&amp;amp; b&lt;br /&gt;
Bool-Or                   a || b&lt;br /&gt;
Bool-Not                  !a&lt;br /&gt;
Negative                  -a&lt;br /&gt;
Equal                     a == b&lt;br /&gt;
Not-Equal                 a != b&lt;br /&gt;
Less                      a &amp;lt; b&lt;br /&gt;
Greater                   a &amp;gt; b&lt;br /&gt;
Less-Equal                a &amp;lt;= b,  a =&amp;lt; b&lt;br /&gt;
Greater-Equal             a &amp;gt;= b,  a =&amp;gt; b&lt;br /&gt;
In-Range                  a in &amp;lt;b,c&amp;gt;, a in |b,c&amp;gt;, a in &amp;lt;b,c|, a in |b,c|&lt;br /&gt;
In-Array                  a in {b,c,...}, {a,b,...} in {c,d,...}&lt;br /&gt;
Array-Constructor         {a,b,...}&lt;br /&gt;
Empty Array               new [count]&lt;br /&gt;
Array Member              a[index]&lt;br /&gt;
Function call             a(), a(b,c,...)&lt;br /&gt;
Object Attribute          a.b, a.(b)&lt;br /&gt;
Post Increment            a++&lt;br /&gt;
Post Decrement            a--&lt;br /&gt;
Pre Increment             ++a&lt;br /&gt;
Pre Decrement             --a&lt;br /&gt;
Old String Function       #a&lt;br /&gt;
Conditional               a? b : c&lt;br /&gt;
Assignment                a = b, a := b&lt;br /&gt;
Additive Assignment       a += b&lt;br /&gt;
Substractive Assignment   a -= b&lt;br /&gt;
Multiplicative Assignment a *= b&lt;br /&gt;
Division Assignment       a /= b&lt;br /&gt;
Modulus Assignment        a %= b&lt;br /&gt;
Power Assignment          a ^= b&lt;br /&gt;
String Append             a @= b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Accessing Variables ===&lt;br /&gt;
&lt;br /&gt;
Graal Script variables are 'variant', that means they are objects&lt;br /&gt;
that hold values of different types.&lt;br /&gt;
When you assign a value to the variable then it automatically&lt;br /&gt;
switches to the right type:&lt;br /&gt;
&lt;br /&gt;
Numeric (floating point):&lt;br /&gt;
  var = 1;&lt;br /&gt;
String:&lt;br /&gt;
  var = &amp;quot;hello&amp;quot;;&lt;br /&gt;
Object link:&lt;br /&gt;
  var = player;&lt;br /&gt;
Array (list of objects):&lt;br /&gt;
  var = {1,2,3};&lt;br /&gt;
&lt;br /&gt;
You can check the current type with the&lt;br /&gt;
type()-function - obj.type() returns&lt;br /&gt;
0,1,2,3 for numeric, string, object or array.&lt;br /&gt;
&lt;br /&gt;
=== Standard Object Functions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
obj.name&lt;br /&gt;
obj.type()  - gets the type of the var (float 0, string 1, object 2, array 3)&lt;br /&gt;
obj.length() - string length&lt;br /&gt;
obj.trim()&lt;br /&gt;
obj.tokenize([delimiters])&lt;br /&gt;
obj.charat(pos)&lt;br /&gt;
obj.pos(substring)&lt;br /&gt;
obj.beginswith(string)&lt;br /&gt;
obj.endson(string)&lt;br /&gt;
obj.substring(index[,length])&lt;br /&gt;
obj.size() - array length&lt;br /&gt;
obj.index(obj2) - position of obj2 in the array&lt;br /&gt;
obj.clear()&lt;br /&gt;
obj.add(obj2)&lt;br /&gt;
obj.delete(index)&lt;br /&gt;
obj.remove(obj2)&lt;br /&gt;
obj.replace(index,obj2)&lt;br /&gt;
obj.insert(index,obj2)&lt;br /&gt;
obj.getvarnames() - list of the object attributes&lt;br /&gt;
obj.geteditvarnames()&lt;br /&gt;
obj.loadstring(filename)&lt;br /&gt;
obj.loadlines(filename)&lt;br /&gt;
obj.loadvars(filename)&lt;br /&gt;
obj.savestring(filename,mode)&lt;br /&gt;
obj.savelines(filename,mode)&lt;br /&gt;
obj.savevars(filename,mode)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== NPCs ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
npc.actionplayer - integer, read only&lt;br /&gt;
npc.ani - object, read only&lt;br /&gt;
npc.anistep - integer, read only&lt;br /&gt;
npc.ap - integer&lt;br /&gt;
npc.attr - array&lt;br /&gt;
npc.attached - boolean, read only&lt;br /&gt;
npc.attachid - integer, read only&lt;br /&gt;
npc.attachtype - integer, read only&lt;br /&gt;
npc.body - object&lt;br /&gt;
npc.bodyimg - string&lt;br /&gt;
npc.bombs - integer&lt;br /&gt;
npc.chat - string&lt;br /&gt;
npc.colors - array&lt;br /&gt;
npc.darts - integer&lt;br /&gt;
npc.dir - integer&lt;br /&gt;
npc.glovepower - integer&lt;br /&gt;
npc.gralats - integer&lt;br /&gt;
npc.head - object&lt;br /&gt;
npc.headimg - string&lt;br /&gt;
npc.headset - integer&lt;br /&gt;
npc.hearts - floating point value, better use npc.hp&lt;br /&gt;
npc.height - floating point value, read only&lt;br /&gt;
npc.horseimg - string&lt;br /&gt;
npc.hp - floating point value&lt;br /&gt;
npc.hurtdx - floating point value&lt;br /&gt;
npc.hurtdy - floating point value&lt;br /&gt;
npc.id - integer, read only&lt;br /&gt;
npc.isfemale - boolean, read only&lt;br /&gt;
npc.ismale - boolean, read only&lt;br /&gt;
npc.isweapon - boolean, read only&lt;br /&gt;
npc.layer - integer&lt;br /&gt;
npc.mp - integer&lt;br /&gt;
npc.nick - string&lt;br /&gt;
npc.peltwithnpc - boolean, read only&lt;br /&gt;
npc.peltwithbush - boolean, read only&lt;br /&gt;
npc.peltwithsign - boolean, read only&lt;br /&gt;
npc.peltwithvase - boolean, read only&lt;br /&gt;
npc.peltwithstone - boolean, read only&lt;br /&gt;
npc.peltwithblackstone - boolean, read only&lt;br /&gt;
npc.rupees - integer, better use npc.gralats&lt;br /&gt;
npc.shield - object&lt;br /&gt;
npc.shieldimg - string&lt;br /&gt;
npc.shieldpower - integer&lt;br /&gt;
npc.sprite - integer&lt;br /&gt;
npc.sword - object&lt;br /&gt;
npc.swordimg - string&lt;br /&gt;
npc.swordpower - integer&lt;br /&gt;
npc.timeout - floating point value&lt;br /&gt;
npc.visible - boolean&lt;br /&gt;
npc.width - floating point value, read only&lt;br /&gt;
npc.x - floating point value&lt;br /&gt;
npc.y - floating point value&lt;br /&gt;
npc.z - floating point value&lt;br /&gt;
&lt;br /&gt;
npc.blockagain()&lt;br /&gt;
npc.blockagainlocal()&lt;br /&gt;
npc.canbecarried()&lt;br /&gt;
npc.cannotbecarried()&lt;br /&gt;
npc.canbepushed()&lt;br /&gt;
npc.cannotbepushed()&lt;br /&gt;
npc.canbepulled()&lt;br /&gt;
npc.cannotbepulled()&lt;br /&gt;
npc.carryobject(name)&lt;br /&gt;
npc.catchevent(object name,event,function)&lt;br /&gt;
npc.changeimgcolors(index,red,green,blue,alpha)&lt;br /&gt;
npc.changeimgmode(index,mode)&lt;br /&gt;
npc.changeimgpart(index,x,y,width,height)&lt;br /&gt;
npc.changeimgvis(index,layer)&lt;br /&gt;
npc.changeimgzoom(index,zoom factor)&lt;br /&gt;
npc.destroy()&lt;br /&gt;
npc.dontblock()&lt;br /&gt;
npc.dontblocklocal()&lt;br /&gt;
npc.drawaslight()&lt;br /&gt;
npc.drawoverplayer()&lt;br /&gt;
npc.drawunderplayer()&lt;br /&gt;
npc.getimageforsprite(sprite) - returns image&lt;br /&gt;
npc.getsprite(string) - returns sprite&lt;br /&gt;
npc.getspriteforspritepos(spritepos) - returns sprite&lt;br /&gt;
npc.hide()&lt;br /&gt;
npc.hidelocal()&lt;br /&gt;
npc.hideimg(index)&lt;br /&gt;
npc.hideimgs(startindex,endindex)&lt;br /&gt;
npc.hurt(power)&lt;br /&gt;
npc.ignoreevent(object name,event)&lt;br /&gt;
npc.ignoreevents(object name)&lt;br /&gt;
npc.lay(item name)&lt;br /&gt;
npc.message(text)&lt;br /&gt;
npc.move(delta x,delta y,time,options)&lt;br /&gt;
npc.setbow(image name)&lt;br /&gt;
npc.setcharani(ani name,parameters)&lt;br /&gt;
npc.setchargender(&amp;quot;male&amp;quot; or &amp;quot;female&amp;quot;)&lt;br /&gt;
npc.setcoloreffect(red,green,blue,alpha)&lt;br /&gt;
npc.seteffectmode(mode)&lt;br /&gt;
npc.setimg(image name)&lt;br /&gt;
npc.setimgpart(image name,x,y,width,height)&lt;br /&gt;
npc.setshape(type,pixelwidth,pixelheight)&lt;br /&gt;
npc.setshape2(tilewidth,tileheight,tilearray)&lt;br /&gt;
npc.setzoomeffect(zoom factor)&lt;br /&gt;
npc.shootarrow(direction)&lt;br /&gt;
npc.shootball()&lt;br /&gt;
npc.shootfireball(direction)&lt;br /&gt;
npc.shootfireblast(direction)&lt;br /&gt;
npc.shootnuke(direction)&lt;br /&gt;
npc.show()&lt;br /&gt;
npc.showani(index,x,y,direction,ani name,parameters)&lt;br /&gt;
npc.showani2(index,x,y,z,direction,ani name,parameters)&lt;br /&gt;
npc.showcharacter()&lt;br /&gt;
npc.showimg(index,image name,x,y)&lt;br /&gt;
npc.showimg2(index,image name,x,y,z)&lt;br /&gt;
npc.showlocal()&lt;br /&gt;
npc.showpoly(index,array)&lt;br /&gt;
npc.showpoly2(index,array)&lt;br /&gt;
npc.showtext(index,x,y,font,style,text)&lt;br /&gt;
npc.showtext2(index,x,y,z,font,style,text)&lt;br /&gt;
npc.take(item name)&lt;br /&gt;
npc.take2(item index)&lt;br /&gt;
npc.takehorse(horse index)&lt;br /&gt;
npc.throwcarry()&lt;br /&gt;
npc.timereverywhere()&lt;br /&gt;
npc.timershow()&lt;br /&gt;
npc.toweapons(weapon name)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Players ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
player.account - string, read only&lt;br /&gt;
player.ani - object, read only&lt;br /&gt;
player.anistep - integer, read only&lt;br /&gt;
player.ap - integer&lt;br /&gt;
player.attached - boolean, read only&lt;br /&gt;
player.attachid - integer, read only&lt;br /&gt;
player.attachtype - integer, read only&lt;br /&gt;
player.attr - array&lt;br /&gt;
player.body - object&lt;br /&gt;
player.bodyimg - string&lt;br /&gt;
player.bombs - integer&lt;br /&gt;
player.chat - string&lt;br /&gt;
player.colors - array&lt;br /&gt;
player.darts - integer&lt;br /&gt;
player.dir - integer&lt;br /&gt;
player.freezetime - floating point value, only valid for local players&lt;br /&gt;
player.fullhearts - integer, read only, better use player.maxhp&lt;br /&gt;
player.glovepower - integer&lt;br /&gt;
player.gralats - integer&lt;br /&gt;
player.head - object&lt;br /&gt;
player.headimg - string&lt;br /&gt;
player.headset - integer&lt;br /&gt;
player.hearts - floating point value, only editable for local players, better use player.hp&lt;br /&gt;
player.horseimg - string, only editable for local players&lt;br /&gt;
player.hp - floating point value, only editable for local players&lt;br /&gt;
player.hurt - boolean, read only, only valid for local players&lt;br /&gt;
player.hurtdx - floating point value, read only, only valid for local players&lt;br /&gt;
player.hurtdy - floating point value, read only, only valid for local players&lt;br /&gt;
player.hurted - boolean, read only, only valid for local players, better use player.hurt&lt;br /&gt;
player.hurtpower - floating point value, read only, only valid for local players&lt;br /&gt;
player.id - integer, read only&lt;br /&gt;
player.isfemale - boolean, read only&lt;br /&gt;
player.ismale - boolean, read only&lt;br /&gt;
player.letters - object, only valid for local players&lt;br /&gt;
player.level - object, read only&lt;br /&gt;
player.map - boolean, only valid for local players&lt;br /&gt;
player.maxhp - integer, read only&lt;br /&gt;
player.mp - integer&lt;br /&gt;
player.nick - string, read only for local players&lt;br /&gt;
player.onhorse - boolean, read only, only valid for local players&lt;br /&gt;
player.online - boolean, read only, only valid for local players&lt;br /&gt;
player.paused - boolean, read only, only valid for local players&lt;br /&gt;
player.reading - boolean, read only, only valid for local players&lt;br /&gt;
player.rupees - integer, better use player.gralats&lt;br /&gt;
player.shield - object&lt;br /&gt;
player.shieldimg - string&lt;br /&gt;
player.shieldpower - integer, read only&lt;br /&gt;
player.sprite - integer&lt;br /&gt;
player.swimming - boolean, read only, only valid for local players&lt;br /&gt;
player.sword - object&lt;br /&gt;
player.swordimg - string&lt;br /&gt;
player.swordpower - integer, read only&lt;br /&gt;
player.weapon - object, read only, only valid for local players&lt;br /&gt;
player.weapons - array, read only, only valid for local players&lt;br /&gt;
player.x - floating point value&lt;br /&gt;
player.y - floating point value&lt;br /&gt;
player.z - floating point value&lt;br /&gt;
&lt;br /&gt;
player.getimageforsprite(sprite) - returns object&lt;br /&gt;
player.getsprite(string) - returns object&lt;br /&gt;
player.getspriteforspritepos(spritepos) - returns object&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Levels ====&lt;br /&gt;
==== Ganis ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
e.g. player.ani&lt;br /&gt;
ani.name&lt;br /&gt;
ani.sprites[]&lt;br /&gt;
ani.steps[]&lt;br /&gt;
ani.continuous&lt;br /&gt;
ani.singledirection&lt;br /&gt;
ani.looping&lt;br /&gt;
ani.ismovie&lt;br /&gt;
ani.setbackto&lt;br /&gt;
ani.ganitype&lt;br /&gt;
ani.getsprite(id)&lt;br /&gt;
ani.addsprite(id) returns the added sprite&lt;br /&gt;
ani.deletesprite(id)&lt;br /&gt;
ani.addstep()&lt;br /&gt;
ani.insertstep(index)&lt;br /&gt;
ani.deletestep(index)&lt;br /&gt;
&lt;br /&gt;
sprites:&lt;br /&gt;
sprite.spriteindex&lt;br /&gt;
sprite.image&lt;br /&gt;
sprite.imagetype&lt;br /&gt;
sprite.x&lt;br /&gt;
sprite.y&lt;br /&gt;
sprite.width&lt;br /&gt;
sprite.height&lt;br /&gt;
sprite.red&lt;br /&gt;
sprite.green&lt;br /&gt;
sprite.blue&lt;br /&gt;
sprite.alpha&lt;br /&gt;
sprite.zoom&lt;br /&gt;
sprite.mode&lt;br /&gt;
sprite.surface&lt;br /&gt;
sprite.attachments[]&lt;br /&gt;
sprite.addattachment()&lt;br /&gt;
sprite.insertattachment(index)&lt;br /&gt;
sprite.deleteattachment(index)&lt;br /&gt;
&lt;br /&gt;
attachment:&lt;br /&gt;
attachment.sprite&lt;br /&gt;
attachment.dx&lt;br /&gt;
attachment.dy&lt;br /&gt;
attachment.behind&lt;br /&gt;
&lt;br /&gt;
step:&lt;br /&gt;
step.spritespos[][]&lt;br /&gt;
step.sounds[]&lt;br /&gt;
step.delay&lt;br /&gt;
step.addpos(dir)&lt;br /&gt;
step.insertpos(dir,index)&lt;br /&gt;
step.deletepos(dir,index)&lt;br /&gt;
&lt;br /&gt;
spritepos:&lt;br /&gt;
spritepos.sprite&lt;br /&gt;
spritepos.param&lt;br /&gt;
spritepos.attr&lt;br /&gt;
spritepos.dx&lt;br /&gt;
spritepos.dy&lt;br /&gt;
&lt;br /&gt;
sound:&lt;br /&gt;
sound.sound&lt;br /&gt;
sound.dx&lt;br /&gt;
sound.dy&lt;br /&gt;
sound.delay&lt;br /&gt;
&lt;br /&gt;
also the gani owners (players, npcs) have those functions:&lt;br /&gt;
getimageforsprite(sprite)&lt;br /&gt;
getsprite(string)&lt;br /&gt;
getspriteforspritepos(spritepos)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Standard functions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
format(format,parameters,...) - formats a &amp;quot;%s %d&amp;quot; string, inserts the parameters, and returns a string&lt;br /&gt;
int(a)&lt;br /&gt;
abs(a)&lt;br /&gt;
random(rangestart,rangeend)&lt;br /&gt;
sin(a)&lt;br /&gt;
cos(a)&lt;br /&gt;
arctan(a)&lt;br /&gt;
exp(a)&lt;br /&gt;
log(base,a)&lt;br /&gt;
min(a,b)&lt;br /&gt;
max(a,b)&lt;br /&gt;
getangle(delta x,delta y)&lt;br /&gt;
getdir(delta x,delta y)&lt;br /&gt;
vecx(direction)&lt;br /&gt;
vecy(direction)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Standard variables ===&lt;br /&gt;
&lt;br /&gt;
== GUI ==&lt;br /&gt;
&lt;br /&gt;
=== GUI controls ===&lt;br /&gt;
&lt;br /&gt;
=== GUI events ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
All controls:&lt;br /&gt;
onAdd() when added to the parent&lt;br /&gt;
onRemove() when removed from the parent&lt;br /&gt;
onWake() when activated&lt;br /&gt;
onSleep() when deactivated&lt;br /&gt;
onResize(w,h)&lt;br /&gt;
onMove(x,y)&lt;br /&gt;
onMouseEnter(modifier,x,y,clickcount)&lt;br /&gt;
onMouseLeave(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseMove(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelDown(modifier,x,y,clickcount)&lt;br /&gt;
onKeyDown(keycode,string)&lt;br /&gt;
onKeyUp(keycode,string)&lt;br /&gt;
onKeyRepeat(keycode,string)&lt;br /&gt;
&lt;br /&gt;
GuiMLTextCtrl:&lt;br /&gt;
onResize(w,h) when reflowing&lt;br /&gt;
onURL(url) when clicked on url&lt;br /&gt;
&lt;br /&gt;
GuiTextEditCtrl:&lt;br /&gt;
onTabComplete()&lt;br /&gt;
onAction(text) when return key pressed&lt;br /&gt;
&lt;br /&gt;
GuiTextListCtrl:&lt;br /&gt;
onSelect(id,text) when row selected&lt;br /&gt;
onDblClick(id) when double-click on row or return key pressed&lt;br /&gt;
onDeleteKey(id) when delete key pressed&lt;br /&gt;
onIconResized(w,h) when setIconSize() called&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&lt;br /&gt;
GuiPopUpMenuCtrl:&lt;br /&gt;
onSelect(id,text) when menu option choosen&lt;br /&gt;
onCancel() when menu is closed without action&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&lt;br /&gt;
GuiMenuBar:&lt;br /&gt;
onMenuSelect(menuid,menutext)&lt;br /&gt;
onMenuItemSelect(menuid,menutext,itemid,itemtext)&lt;br /&gt;
&lt;br /&gt;
GuiTreeViewCtrl:&lt;br /&gt;
onSelect(id,rightmouse) when row selected&lt;br /&gt;
onUnselect(id) when row de-selected&lt;br /&gt;
onInspect(id) when clicked on the name of an item&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
onContextMenu(&amp;quot;x y&amp;quot;,id) when clicked with right-mouse key on row&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1380</id>
		<title>Creation/Dev/GScript2</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1380"/>
		<updated>2005-02-06T16:58:58Z</updated>

		<summary type="html">&lt;p&gt;Evil: /* Supported old string operations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GScript 2 is the new scripting engine for [[Graal]]&lt;br /&gt;
&lt;br /&gt;
== Old Script Compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Removed functionality ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;toinventory&lt;br /&gt;
&amp;lt;li&amp;gt;followplayer&lt;br /&gt;
&amp;lt;li&amp;gt;playersays()&lt;br /&gt;
&amp;lt;li&amp;gt;setbackpal&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supported old scripting commands &amp;amp; their mapping to new script ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;addstring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;addstring(string,string);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;addtiledef oldstring, oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;addtiledef(string,string,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;addtiledef2 oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;addtiledef2(string,string,float,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;attachplayertoobj float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;attachplayertoobj(float,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;blockagain;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                blockagain();&lt;br /&gt;
&amp;lt;dt&amp;gt;blockagainlocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                blockagainlocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;callnpc float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                callnpc(float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;callweapon float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                callweapon(float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;canbecarried;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbecarried();&lt;br /&gt;
&amp;lt;dt&amp;gt;canbepulled;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbepulled();&lt;br /&gt;
&amp;lt;dt&amp;gt;canbepushed;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbepushed();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbecarried;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbecarried();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbepulled;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbepulled();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbepushed;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbepushed();&lt;br /&gt;
&amp;lt;dt&amp;gt;canwarp;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canwarp();&lt;br /&gt;
&amp;lt;dt&amp;gt;canwarp2;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canwarp2();&lt;br /&gt;
&amp;lt;dt&amp;gt;carryobject oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                carryobject(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgcolors float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgcolors(float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgmode float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgmode(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgpart float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgpart(float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgvis float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgvis(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgzoom float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgzoom(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;deletestring oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                deletestring(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;destroy;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                destroy();&lt;br /&gt;
&amp;lt;dt&amp;gt;detachplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                detachplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;disabledefmovement;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disabledefmovement();&lt;br /&gt;
&amp;lt;dt&amp;gt;disablemap;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disablemap();&lt;br /&gt;
&amp;lt;dt&amp;gt;disablepause;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disablepause();&lt;br /&gt;
&amp;lt;dt&amp;gt;disableselectweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disableselectweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;disableweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disableweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;dontblock;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                dontblock();&lt;br /&gt;
&amp;lt;dt&amp;gt;dontblocklocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                dontblocklocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawaslight;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawaslight();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawoverplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawoverplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawunderplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawunderplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;enabledefmovement;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enabledefmovement();&lt;br /&gt;
&amp;lt;dt&amp;gt;enablefeatures float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablefeatures(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;enablemap;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablemap();&lt;br /&gt;
&amp;lt;dt&amp;gt;enablepause;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablepause();&lt;br /&gt;
&amp;lt;dt&amp;gt;enableselectweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enableselectweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;enableweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enableweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;explodebomb float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                explodebomb(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;followplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                followplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;freezeplayer float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                freezeplayer(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;freezeplayer2;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                freezeplayer2();&lt;br /&gt;
&amp;lt;dt&amp;gt;hide;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hide();&lt;br /&gt;
&amp;lt;dt&amp;gt;hideimg float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideimg(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hideimgs float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideimgs(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hidelocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hidelocal();&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;hitcompu float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitcompu(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitnpc float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitnpc(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitobjects float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitobjects(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hideplayer float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideplayer(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hidesword float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hidesword(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitplayer float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitplayer(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hurt float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hurt(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;insertstring oldstring, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                insertstring(string,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;join oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                join(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;lay oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                lay(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;lay2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                lay2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;loadmap oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                loadmap(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;message oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                message(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;move float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                move(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;noplayerkilling;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                noplayerkilling();&lt;br /&gt;
&amp;lt;dt&amp;gt;openurl oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                openurl(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;openurl2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                openurl2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;play oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                play(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;play2 oldstring, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                play2(string,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;playlooped oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                playlooped(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;putbomb float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putbomb(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putcomp oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putcomp(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putexplosion float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putexplosion(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putexplosion2 float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putexplosion2(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;puthorse oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                puthorse(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putleaps float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putleaps(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnewcomp oldstring, float, float, oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnewcomp(string,float,float,string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnpc oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnpc(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnpc2 float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnpc2(float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;reflectarrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                reflectarrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removearrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removearrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removebomb float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removebomb(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removecompus;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removecompus();&lt;br /&gt;
&amp;lt;dt&amp;gt;removeexplo float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removeexplo(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removehorse float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removehorse(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removeitem float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removeitem(float)&lt;br /&gt;
&amp;lt;dt&amp;gt;removestring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removestring(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;removetiledefs oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removetiledefs(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;replaceani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                replaceani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;replacestring oldstring, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                replacestring(string,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;resetfocus;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                resetfocus();&lt;br /&gt;
&amp;lt;dt&amp;gt;savelog oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                savelog(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;savelog2 oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                savelog2(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;say float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                say(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;say2 oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                say2(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendrpgmessage oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendrpgmessage(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendpm oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendpm(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendtonc oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendtonc(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendtorc oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendtorc(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;serverwarp oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                serverwarp(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;set oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                set(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setarray float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setarray(var,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setbeltcolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setbeltcolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setbow oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setbow(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcharani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcharani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setchargender oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setchargender(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcharprop oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                string = string;&lt;br /&gt;
&amp;lt;dt&amp;gt;setcoatcolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcoatcolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcoloreffect float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcoloreffect(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcursor float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcursor(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcurcor2 oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcursor2(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;seteffect float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seteffect(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;seteffectmode float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seteffectmode(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setfocus float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setfocus(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setgender oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setgender(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sethead oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sethead(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setlevel oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setlevel(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setlevel2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setlevel2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setmap oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setmap(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setminimap oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setminimap(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setmusicvolume float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setmusicvolume(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setimg oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setimg(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setimgpart oldstring, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setimgpart(string,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setletters oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setletters(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setplayerdir oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setplayerdir(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setplayerprop oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                string = string;&lt;br /&gt;
&amp;lt;dt&amp;gt;setpm oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setpm(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshape float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshape(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshape2 float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshape2(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshield oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshield(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshoecolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshoecolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshootparams oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshootparams(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setskincolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setskincolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setsleevecolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setsleevecolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setstring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setstring(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setsword oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setsword(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;seturllevel oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seturllevel(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setz float, float, float, float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setz(float,float,float,float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setzoomeffect float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setzoomeffect(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shoot float, float, float, float, float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shoot(float,float,float,float,float,float,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootarrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootarrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootball;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootball();&lt;br /&gt;
&amp;lt;dt&amp;gt;shootfireball float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootfireball(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootfireblast float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootfireblast(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootnuke float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootnuke(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;show;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                show();&lt;br /&gt;
&amp;lt;dt&amp;gt;showani float, float, float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showani(float,float,float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showani2 float, float, float, float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showani2(float,float,float,float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showcharacter;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showcharacter();&lt;br /&gt;
&amp;lt;dt&amp;gt;showfile oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showfile(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showimg float, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showimg(float,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showimg2 float, oldstring, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showimg2(float,string,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showlocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showlocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;showpoly float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showpoly(float,array);&lt;br /&gt;
&amp;lt;dt&amp;gt;showpoly2 float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showpoly2(float,array);&lt;br /&gt;
&amp;lt;dt&amp;gt;showstats float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showstats(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showtext float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showtext(float,float,float,string,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showtext2 float, float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showtext2(float,float,float,float,string,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sleep float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sleep(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;spyfire float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                spyfire(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;stopmidi;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                stopmidi();&lt;br /&gt;
&amp;lt;dt&amp;gt;stopsound oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                stopsound(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;take oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                take(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;take2 float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                take2(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;takehorse float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takehorse(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;takeplayercarry;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takeplayercarry();&lt;br /&gt;
&amp;lt;dt&amp;gt;takeplayerhorse;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takeplayerhorse();&lt;br /&gt;
&amp;lt;dt&amp;gt;throwcarry;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                throwcarry();&lt;br /&gt;
&amp;lt;dt&amp;gt;timereverywhere;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                timereverywhere();&lt;br /&gt;
&amp;lt;dt&amp;gt;timershow;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                timershow();&lt;br /&gt;
&amp;lt;dt&amp;gt;toinventory oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                toinventory(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;tokenize oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = string.tokenize();&lt;br /&gt;
&amp;lt;dt&amp;gt;tokenize2 oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = string.tokenize(&amp;quot; ,&amp;quot; @ string);&lt;br /&gt;
&amp;lt;dt&amp;gt;toweapons oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                toweapons(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;triggeraction float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                triggeraction(float,float,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;unfreezeplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                unfreezeplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;unset oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                unset(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;updateboard float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                updateboard(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;updateterrain;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                updateterrain();&lt;br /&gt;
&amp;lt;dt&amp;gt;wraptext float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = wraptext(float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;wraptext2 float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = wraptext2(float,float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supported old string operations ===&lt;br /&gt;
&lt;br /&gt;
These old string operators can be used in string parameters for the old commands, also you can use them directly as operators, e.g.&amp;lt;br/&amp;gt;&lt;br /&gt;
#c = &amp;quot;hello&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
is actually doing&amp;lt;br/&amp;gt;&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#a            player.account&lt;br /&gt;
#a(float)     players[float].account&lt;br /&gt;
#m            player.ani&lt;br /&gt;
              ani&lt;br /&gt;
#m(float)     players[float].ani&lt;br /&gt;
#K(float)     ascii(float)&lt;br /&gt;
#8            player.bodyimg&lt;br /&gt;
              bodyimg&lt;br /&gt;
#8(float)     players[float].bodyimg&lt;br /&gt;
#c            player.chat&lt;br /&gt;
              chat&lt;br /&gt;
#c(float)     players[float].chat&lt;br /&gt;
#C0           player.colors[0]&lt;br /&gt;
              colors[0]&lt;br /&gt;
#C0(float)    players[float].colors[0]&lt;br /&gt;
#C1           player.colors[1]&lt;br /&gt;
              colors[1]&lt;br /&gt;
#C1(float)    players[float].colors[1]&lt;br /&gt;
#C2           player.colors[2]&lt;br /&gt;
              colors[2]&lt;br /&gt;
#C2(float)    players[float].colors[2]&lt;br /&gt;
#C3           player.colors[3]&lt;br /&gt;
              colors[3]&lt;br /&gt;
#C3(float)    players[float].colors[3]&lt;br /&gt;
#C4           player.colors[4]&lt;br /&gt;
              colors[4]&lt;br /&gt;
#C4(float)    players[float].colors[4]&lt;br /&gt;
#C5           player.colors[5]&lt;br /&gt;
              colors[5]&lt;br /&gt;
#C5(float)    players[float].colors[5]&lt;br /&gt;
#D            downloadfile()&lt;br /&gt;
#E            emoticonchar()&lt;br /&gt;
#e(float,float,oldstring)&lt;br /&gt;
              string.substring(float,float)&lt;br /&gt;
#g            player.guild&lt;br /&gt;
              guild&lt;br /&gt;
#g(float)     players[float].guild&lt;br /&gt;
#3            player.headimg&lt;br /&gt;
              headimg&lt;br /&gt;
#3(float)     players[float].headimg&lt;br /&gt;
#5            player.horseimg&lt;br /&gt;
              horseimg&lt;br /&gt;
#5(float)     players[float].horseimg&lt;br /&gt;
#k(float)     keyname(float)&lt;br /&gt;
#L            player.level&lt;br /&gt;
#I(oldstring,float)&lt;br /&gt;
              getstring(string)[float]&lt;br /&gt;
#n            player.nick&lt;br /&gt;
              nick&lt;br /&gt;
#n(float)     players[float].nick&lt;br /&gt;
#f            image&lt;br /&gt;
#f(float)     npcs[float].image&lt;br /&gt;
#F            level&lt;br /&gt;
#p(float)     params[float]&lt;br /&gt;
#P(float)     player.attr[float]&lt;br /&gt;
              attr[float]&lt;br /&gt;
#P(float,float)&lt;br /&gt;
              players[float].attr[float]&lt;br /&gt;
#P1           player.attr[1]&lt;br /&gt;
              attr[1]&lt;br /&gt;
#P1(float)    players[float].attr[1]&lt;br /&gt;
#P2           player.attr[2]&lt;br /&gt;
              attr[2]&lt;br /&gt;
#P2(float)    players[float].attr[2]&lt;br /&gt;
#P3           player.attr[3]&lt;br /&gt;
              attr[3]&lt;br /&gt;
#P3(float)    players[float].attr[3]&lt;br /&gt;
#P4           player.attr[4]&lt;br /&gt;
              attr[4]&lt;br /&gt;
#P4(float)    players[float].attr[4]&lt;br /&gt;
#P5           player.attr[5]&lt;br /&gt;
              attr[5]&lt;br /&gt;
#P5(float)    players[float].attr[5]&lt;br /&gt;
#P6           player.attr[6]&lt;br /&gt;
              attr[6]&lt;br /&gt;
#P6(float)    players[float].attr[6]&lt;br /&gt;
#P7           player.attr[7]&lt;br /&gt;
              attr[7]&lt;br /&gt;
#P7(float)    players[float].attr[7]&lt;br /&gt;
#P8           player.attr[8]&lt;br /&gt;
              attr[8]&lt;br /&gt;
#P8(float)    players[float].attr[8]&lt;br /&gt;
#P9           player.attr[9]&lt;br /&gt;
              attr[9]&lt;br /&gt;
#P9(float)    players[float].attr[9]&lt;br /&gt;
#R(oldstring) string.random()&lt;br /&gt;
#2            player.shieldimg&lt;br /&gt;
              shieldimg&lt;br /&gt;
#2(float)     players[float].shieldimg&lt;br /&gt;
#s(oldstring) getstring(string)&lt;br /&gt;
#1            player.swordimg&lt;br /&gt;
              swordimg&lt;br /&gt;
#1(float)     players[float].swordimg&lt;br /&gt;
#S            player.sword.script&lt;br /&gt;
#t(float)     tokens[float]&lt;br /&gt;
#T(oldstring) string.trim()&lt;br /&gt;
#v(float)     float&lt;br /&gt;
#W            player.weapon.icon&lt;br /&gt;
#W(float)     weapons[float].icon&lt;br /&gt;
#w            player.weapon.script&lt;br /&gt;
#w(float)     weapons[float].script&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compatibility note:&lt;br /&gt;
When you use the command setcharprop then the first parameter&lt;br /&gt;
is handled differently: instead of changing 'player.chat' it&lt;br /&gt;
is changing 'chat', the chat text of the npc. So 'setcharprop #c,hello'&lt;br /&gt;
would be translated into&lt;br /&gt;
chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
while 'setplayerprop #c,hello' is translated into&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
In the list above both possibilities are listed.&lt;br /&gt;
&lt;br /&gt;
== Old Script Compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Operators ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Addition                  a + b&lt;br /&gt;
Substraction              a - b&lt;br /&gt;
Mulitplication            a * b&lt;br /&gt;
Division                  a / b&lt;br /&gt;
Modulus                   a % b&lt;br /&gt;
Power                     a ^ b&lt;br /&gt;
String Concationation     a @ b&lt;br /&gt;
Bool-And                  a &amp;amp;&amp;amp; b&lt;br /&gt;
Bool-Or                   a || b&lt;br /&gt;
Bool-Not                  !a&lt;br /&gt;
Negative                  -a&lt;br /&gt;
Equal                     a == b&lt;br /&gt;
Not-Equal                 a != b&lt;br /&gt;
Less                      a &amp;lt; b&lt;br /&gt;
Greater                   a &amp;gt; b&lt;br /&gt;
Less-Equal                a &amp;lt;= b,  a =&amp;lt; b&lt;br /&gt;
Greater-Equal             a &amp;gt;= b,  a =&amp;gt; b&lt;br /&gt;
In-Range                  a in &amp;lt;b,c&amp;gt;, a in |b,c&amp;gt;, a in &amp;lt;b,c|, a in |b,c|&lt;br /&gt;
In-Array                  a in {b,c,...}, {a,b,...} in {c,d,...}&lt;br /&gt;
Array-Constructor         {a,b,...}&lt;br /&gt;
Empty Array               new [count]&lt;br /&gt;
Array Member              a[index]&lt;br /&gt;
Function call             a(), a(b,c,...)&lt;br /&gt;
Object Attribute          a.b, a.(b)&lt;br /&gt;
Post Increment            a++&lt;br /&gt;
Post Decrement            a--&lt;br /&gt;
Pre Increment             ++a&lt;br /&gt;
Pre Decrement             --a&lt;br /&gt;
Old String Function       #a&lt;br /&gt;
Conditional               a? b : c&lt;br /&gt;
Assignment                a = b, a := b&lt;br /&gt;
Additive Assignment       a += b&lt;br /&gt;
Substractive Assignment   a -= b&lt;br /&gt;
Multiplicative Assignment a *= b&lt;br /&gt;
Division Assignment       a /= b&lt;br /&gt;
Modulus Assignment        a %= b&lt;br /&gt;
Power Assignment          a ^= b&lt;br /&gt;
String Append             a @= b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Accessing Variables ===&lt;br /&gt;
&lt;br /&gt;
Graal Script variables are 'variant', that means they are objects&lt;br /&gt;
that hold values of different types.&lt;br /&gt;
When you assign a value to the variable then it automatically&lt;br /&gt;
switches to the right type:&lt;br /&gt;
&lt;br /&gt;
Numeric (floating point):&lt;br /&gt;
  var = 1;&lt;br /&gt;
String:&lt;br /&gt;
  var = &amp;quot;hello&amp;quot;;&lt;br /&gt;
Object link:&lt;br /&gt;
  var = player;&lt;br /&gt;
Array (list of objects):&lt;br /&gt;
  var = {1,2,3};&lt;br /&gt;
&lt;br /&gt;
You can check the current type with the&lt;br /&gt;
type()-function - obj.type() returns&lt;br /&gt;
0,1,2,3 for numeric, string, object or array.&lt;br /&gt;
&lt;br /&gt;
=== Standard Object Functions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
obj.name&lt;br /&gt;
obj.type()  - gets the type of the var (float 0, string 1, object 2, array 3)&lt;br /&gt;
obj.length() - string length&lt;br /&gt;
obj.trim()&lt;br /&gt;
obj.tokenize([delimiters])&lt;br /&gt;
obj.charat(pos)&lt;br /&gt;
obj.pos(substring)&lt;br /&gt;
obj.beginswith(string)&lt;br /&gt;
obj.endson(string)&lt;br /&gt;
obj.substring(index[,length])&lt;br /&gt;
obj.size() - array length&lt;br /&gt;
obj.index(obj2) - position of obj2 in the array&lt;br /&gt;
obj.clear()&lt;br /&gt;
obj.add(obj2)&lt;br /&gt;
obj.delete(index)&lt;br /&gt;
obj.remove(obj2)&lt;br /&gt;
obj.replace(index,obj2)&lt;br /&gt;
obj.insert(index,obj2)&lt;br /&gt;
obj.getvarnames() - list of the object attributes&lt;br /&gt;
obj.geteditvarnames()&lt;br /&gt;
obj.loadstring(filename)&lt;br /&gt;
obj.loadlines(filename)&lt;br /&gt;
obj.loadvars(filename)&lt;br /&gt;
obj.savestring(filename,mode)&lt;br /&gt;
obj.savelines(filename,mode)&lt;br /&gt;
obj.savevars(filename,mode)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== NPCs ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
npc.actionplayer - integer, read only&lt;br /&gt;
npc.ani - object, read only&lt;br /&gt;
npc.anistep - integer, read only&lt;br /&gt;
npc.ap - integer&lt;br /&gt;
npc.attr - array&lt;br /&gt;
npc.attached - boolean, read only&lt;br /&gt;
npc.attachid - integer, read only&lt;br /&gt;
npc.attachtype - integer, read only&lt;br /&gt;
npc.body - object&lt;br /&gt;
npc.bodyimg - string&lt;br /&gt;
npc.bombs - integer&lt;br /&gt;
npc.chat - string&lt;br /&gt;
npc.colors - array&lt;br /&gt;
npc.darts - integer&lt;br /&gt;
npc.dir - integer&lt;br /&gt;
npc.glovepower - integer&lt;br /&gt;
npc.gralats - integer&lt;br /&gt;
npc.head - object&lt;br /&gt;
npc.headimg - string&lt;br /&gt;
npc.headset - integer&lt;br /&gt;
npc.hearts - floating point value, better use npc.hp&lt;br /&gt;
npc.height - floating point value, read only&lt;br /&gt;
npc.horseimg - string&lt;br /&gt;
npc.hp - floating point value&lt;br /&gt;
npc.hurtdx - floating point value&lt;br /&gt;
npc.hurtdy - floating point value&lt;br /&gt;
npc.id - integer, read only&lt;br /&gt;
npc.isfemale - boolean, read only&lt;br /&gt;
npc.ismale - boolean, read only&lt;br /&gt;
npc.isweapon - boolean, read only&lt;br /&gt;
npc.layer - integer&lt;br /&gt;
npc.mp - integer&lt;br /&gt;
npc.nick - string&lt;br /&gt;
npc.peltwithnpc - boolean, read only&lt;br /&gt;
npc.peltwithbush - boolean, read only&lt;br /&gt;
npc.peltwithsign - boolean, read only&lt;br /&gt;
npc.peltwithvase - boolean, read only&lt;br /&gt;
npc.peltwithstone - boolean, read only&lt;br /&gt;
npc.peltwithblackstone - boolean, read only&lt;br /&gt;
npc.rupees - integer, better use npc.gralats&lt;br /&gt;
npc.shield - object&lt;br /&gt;
npc.shieldimg - string&lt;br /&gt;
npc.shieldpower - integer&lt;br /&gt;
npc.sprite - integer&lt;br /&gt;
npc.sword - object&lt;br /&gt;
npc.swordimg - string&lt;br /&gt;
npc.swordpower - integer&lt;br /&gt;
npc.timeout - floating point value&lt;br /&gt;
npc.visible - boolean&lt;br /&gt;
npc.width - floating point value, read only&lt;br /&gt;
npc.x - floating point value&lt;br /&gt;
npc.y - floating point value&lt;br /&gt;
npc.z - floating point value&lt;br /&gt;
&lt;br /&gt;
npc.blockagain()&lt;br /&gt;
npc.blockagainlocal()&lt;br /&gt;
npc.canbecarried()&lt;br /&gt;
npc.cannotbecarried()&lt;br /&gt;
npc.canbepushed()&lt;br /&gt;
npc.cannotbepushed()&lt;br /&gt;
npc.canbepulled()&lt;br /&gt;
npc.cannotbepulled()&lt;br /&gt;
npc.carryobject(name)&lt;br /&gt;
npc.catchevent(object name,event,function)&lt;br /&gt;
npc.changeimgcolors(index,red,green,blue,alpha)&lt;br /&gt;
npc.changeimgmode(index,mode)&lt;br /&gt;
npc.changeimgpart(index,x,y,width,height)&lt;br /&gt;
npc.changeimgvis(index,layer)&lt;br /&gt;
npc.changeimgzoom(index,zoom factor)&lt;br /&gt;
npc.destroy()&lt;br /&gt;
npc.dontblock()&lt;br /&gt;
npc.dontblocklocal()&lt;br /&gt;
npc.drawaslight()&lt;br /&gt;
npc.drawoverplayer()&lt;br /&gt;
npc.drawunderplayer()&lt;br /&gt;
npc.getimageforsprite(sprite) - returns image&lt;br /&gt;
npc.getsprite(string) - returns sprite&lt;br /&gt;
npc.getspriteforspritepos(spritepos) - returns sprite&lt;br /&gt;
npc.hide()&lt;br /&gt;
npc.hidelocal()&lt;br /&gt;
npc.hideimg(index)&lt;br /&gt;
npc.hideimgs(startindex,endindex)&lt;br /&gt;
npc.hurt(power)&lt;br /&gt;
npc.ignoreevent(object name,event)&lt;br /&gt;
npc.ignoreevents(object name)&lt;br /&gt;
npc.lay(item name)&lt;br /&gt;
npc.message(text)&lt;br /&gt;
npc.move(delta x,delta y,time,options)&lt;br /&gt;
npc.setbow(image name)&lt;br /&gt;
npc.setcharani(ani name,parameters)&lt;br /&gt;
npc.setchargender(&amp;quot;male&amp;quot; or &amp;quot;female&amp;quot;)&lt;br /&gt;
npc.setcoloreffect(red,green,blue,alpha)&lt;br /&gt;
npc.seteffectmode(mode)&lt;br /&gt;
npc.setimg(image name)&lt;br /&gt;
npc.setimgpart(image name,x,y,width,height)&lt;br /&gt;
npc.setshape(type,pixelwidth,pixelheight)&lt;br /&gt;
npc.setshape2(tilewidth,tileheight,tilearray)&lt;br /&gt;
npc.setzoomeffect(zoom factor)&lt;br /&gt;
npc.shootarrow(direction)&lt;br /&gt;
npc.shootball()&lt;br /&gt;
npc.shootfireball(direction)&lt;br /&gt;
npc.shootfireblast(direction)&lt;br /&gt;
npc.shootnuke(direction)&lt;br /&gt;
npc.show()&lt;br /&gt;
npc.showani(index,x,y,direction,ani name,parameters)&lt;br /&gt;
npc.showani2(index,x,y,z,direction,ani name,parameters)&lt;br /&gt;
npc.showcharacter()&lt;br /&gt;
npc.showimg(index,image name,x,y)&lt;br /&gt;
npc.showimg2(index,image name,x,y,z)&lt;br /&gt;
npc.showlocal()&lt;br /&gt;
npc.showpoly(index,array)&lt;br /&gt;
npc.showpoly2(index,array)&lt;br /&gt;
npc.showtext(index,x,y,font,style,text)&lt;br /&gt;
npc.showtext2(index,x,y,z,font,style,text)&lt;br /&gt;
npc.take(item name)&lt;br /&gt;
npc.take2(item index)&lt;br /&gt;
npc.takehorse(horse index)&lt;br /&gt;
npc.throwcarry()&lt;br /&gt;
npc.timereverywhere()&lt;br /&gt;
npc.timershow()&lt;br /&gt;
npc.toweapons(weapon name)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Players ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
player.account - string, read only&lt;br /&gt;
player.ani - object, read only&lt;br /&gt;
player.anistep - integer, read only&lt;br /&gt;
player.ap - integer&lt;br /&gt;
player.attached - boolean, read only&lt;br /&gt;
player.attachid - integer, read only&lt;br /&gt;
player.attachtype - integer, read only&lt;br /&gt;
player.attr - array&lt;br /&gt;
player.body - object&lt;br /&gt;
player.bodyimg - string&lt;br /&gt;
player.bombs - integer&lt;br /&gt;
player.chat - string&lt;br /&gt;
player.colors - array&lt;br /&gt;
player.darts - integer&lt;br /&gt;
player.dir - integer&lt;br /&gt;
player.freezetime - floating point value, only valid for local players&lt;br /&gt;
player.fullhearts - integer, read only, better use player.maxhp&lt;br /&gt;
player.glovepower - integer&lt;br /&gt;
player.gralats - integer&lt;br /&gt;
player.head - object&lt;br /&gt;
player.headimg - string&lt;br /&gt;
player.headset - integer&lt;br /&gt;
player.hearts - floating point value, only editable for local players, better use player.hp&lt;br /&gt;
player.horseimg - string, only editable for local players&lt;br /&gt;
player.hp - floating point value, only editable for local players&lt;br /&gt;
player.hurt - boolean, read only, only valid for local players&lt;br /&gt;
player.hurtdx - floating point value, read only, only valid for local players&lt;br /&gt;
player.hurtdy - floating point value, read only, only valid for local players&lt;br /&gt;
player.hurted - boolean, read only, only valid for local players, better use player.hurt&lt;br /&gt;
player.hurtpower - floating point value, read only, only valid for local players&lt;br /&gt;
player.id - integer, read only&lt;br /&gt;
player.isfemale - boolean, read only&lt;br /&gt;
player.ismale - boolean, read only&lt;br /&gt;
player.letters - object, only valid for local players&lt;br /&gt;
player.level - object, read only&lt;br /&gt;
player.map - boolean, only valid for local players&lt;br /&gt;
player.maxhp - integer, read only&lt;br /&gt;
player.mp - integer&lt;br /&gt;
player.nick - string, read only for local players&lt;br /&gt;
player.onhorse - boolean, read only, only valid for local players&lt;br /&gt;
player.online - boolean, read only, only valid for local players&lt;br /&gt;
player.paused - boolean, read only, only valid for local players&lt;br /&gt;
player.reading - boolean, read only, only valid for local players&lt;br /&gt;
player.rupees - integer, better use player.gralats&lt;br /&gt;
player.shield - object&lt;br /&gt;
player.shieldimg - string&lt;br /&gt;
player.shieldpower - integer, read only&lt;br /&gt;
player.sprite - integer&lt;br /&gt;
player.swimming - boolean, read only, only valid for local players&lt;br /&gt;
player.sword - object&lt;br /&gt;
player.swordimg - string&lt;br /&gt;
player.swordpower - integer, read only&lt;br /&gt;
player.weapon - object, read only, only valid for local players&lt;br /&gt;
player.weapons - array, read only, only valid for local players&lt;br /&gt;
player.x - floating point value&lt;br /&gt;
player.y - floating point value&lt;br /&gt;
player.z - floating point value&lt;br /&gt;
&lt;br /&gt;
player.getimageforsprite(sprite) - returns object&lt;br /&gt;
player.getsprite(string) - returns object&lt;br /&gt;
player.getspriteforspritepos(spritepos) - returns object&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Levels ====&lt;br /&gt;
==== Ganis ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
e.g. player.ani&lt;br /&gt;
ani.name&lt;br /&gt;
ani.sprites[]&lt;br /&gt;
ani.steps[]&lt;br /&gt;
ani.continuous&lt;br /&gt;
ani.singledirection&lt;br /&gt;
ani.looping&lt;br /&gt;
ani.ismovie&lt;br /&gt;
ani.setbackto&lt;br /&gt;
ani.ganitype&lt;br /&gt;
ani.getsprite(id)&lt;br /&gt;
ani.addsprite(id) returns the added sprite&lt;br /&gt;
ani.deletesprite(id)&lt;br /&gt;
ani.addstep()&lt;br /&gt;
ani.insertstep(index)&lt;br /&gt;
ani.deletestep(index)&lt;br /&gt;
&lt;br /&gt;
sprites:&lt;br /&gt;
sprite.spriteindex&lt;br /&gt;
sprite.image&lt;br /&gt;
sprite.imagetype&lt;br /&gt;
sprite.x&lt;br /&gt;
sprite.y&lt;br /&gt;
sprite.width&lt;br /&gt;
sprite.height&lt;br /&gt;
sprite.red&lt;br /&gt;
sprite.green&lt;br /&gt;
sprite.blue&lt;br /&gt;
sprite.alpha&lt;br /&gt;
sprite.zoom&lt;br /&gt;
sprite.mode&lt;br /&gt;
sprite.surface&lt;br /&gt;
sprite.attachments[]&lt;br /&gt;
sprite.addattachment()&lt;br /&gt;
sprite.insertattachment(index)&lt;br /&gt;
sprite.deleteattachment(index)&lt;br /&gt;
&lt;br /&gt;
attachment:&lt;br /&gt;
attachment.sprite&lt;br /&gt;
attachment.dx&lt;br /&gt;
attachment.dy&lt;br /&gt;
attachment.behind&lt;br /&gt;
&lt;br /&gt;
step:&lt;br /&gt;
step.spritespos[][]&lt;br /&gt;
step.sounds[]&lt;br /&gt;
step.delay&lt;br /&gt;
step.addpos(dir)&lt;br /&gt;
step.insertpos(dir,index)&lt;br /&gt;
step.deletepos(dir,index)&lt;br /&gt;
&lt;br /&gt;
spritepos:&lt;br /&gt;
spritepos.sprite&lt;br /&gt;
spritepos.param&lt;br /&gt;
spritepos.attr&lt;br /&gt;
spritepos.dx&lt;br /&gt;
spritepos.dy&lt;br /&gt;
&lt;br /&gt;
sound:&lt;br /&gt;
sound.sound&lt;br /&gt;
sound.dx&lt;br /&gt;
sound.dy&lt;br /&gt;
sound.delay&lt;br /&gt;
&lt;br /&gt;
also the gani owners (players, npcs) have those functions:&lt;br /&gt;
getimageforsprite(sprite)&lt;br /&gt;
getsprite(string)&lt;br /&gt;
getspriteforspritepos(spritepos)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Standard functions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
format(format,parameters,...) - formats a &amp;quot;%s %d&amp;quot; string, inserts the parameters, and returns a string&lt;br /&gt;
int(a)&lt;br /&gt;
abs(a)&lt;br /&gt;
random(rangestart,rangeend)&lt;br /&gt;
sin(a)&lt;br /&gt;
cos(a)&lt;br /&gt;
arctan(a)&lt;br /&gt;
exp(a)&lt;br /&gt;
log(base,a)&lt;br /&gt;
min(a,b)&lt;br /&gt;
max(a,b)&lt;br /&gt;
getangle(delta x,delta y)&lt;br /&gt;
getdir(delta x,delta y)&lt;br /&gt;
vecx(direction)&lt;br /&gt;
vecy(direction)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Standard variables ===&lt;br /&gt;
&lt;br /&gt;
== GUI ==&lt;br /&gt;
&lt;br /&gt;
=== GUI controls ===&lt;br /&gt;
&lt;br /&gt;
=== GUI events ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
All controls:&lt;br /&gt;
onAdd() when added to the parent&lt;br /&gt;
onRemove() when removed from the parent&lt;br /&gt;
onWake() when activated&lt;br /&gt;
onSleep() when deactivated&lt;br /&gt;
onResize(w,h)&lt;br /&gt;
onMove(x,y)&lt;br /&gt;
onMouseEnter(modifier,x,y,clickcount)&lt;br /&gt;
onMouseLeave(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseMove(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelDown(modifier,x,y,clickcount)&lt;br /&gt;
onKeyDown(keycode,string)&lt;br /&gt;
onKeyUp(keycode,string)&lt;br /&gt;
onKeyRepeat(keycode,string)&lt;br /&gt;
&lt;br /&gt;
GuiMLTextCtrl:&lt;br /&gt;
onResize(w,h) when reflowing&lt;br /&gt;
onURL(url) when clicked on url&lt;br /&gt;
&lt;br /&gt;
GuiTextEditCtrl:&lt;br /&gt;
onTabComplete()&lt;br /&gt;
onAction(text) when return key pressed&lt;br /&gt;
&lt;br /&gt;
GuiTextListCtrl:&lt;br /&gt;
onSelect(id,text) when row selected&lt;br /&gt;
onDblClick(id) when double-click on row or return key pressed&lt;br /&gt;
onDeleteKey(id) when delete key pressed&lt;br /&gt;
onIconResized(w,h) when setIconSize() called&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&lt;br /&gt;
GuiPopUpMenuCtrl:&lt;br /&gt;
onSelect(id,text) when menu option choosen&lt;br /&gt;
onCancel() when menu is closed without action&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&lt;br /&gt;
GuiMenuBar:&lt;br /&gt;
onMenuSelect(menuid,menutext)&lt;br /&gt;
onMenuItemSelect(menuid,menutext,itemid,itemtext)&lt;br /&gt;
&lt;br /&gt;
GuiTreeViewCtrl:&lt;br /&gt;
onSelect(id,rightmouse) when row selected&lt;br /&gt;
onUnselect(id) when row de-selected&lt;br /&gt;
onInspect(id) when clicked on the name of an item&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
onContextMenu(&amp;quot;x y&amp;quot;,id) when clicked with right-mouse key on row&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1379</id>
		<title>Creation/Dev/GScript2</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1379"/>
		<updated>2005-02-06T16:58:10Z</updated>

		<summary type="html">&lt;p&gt;Evil: /* Standard Object Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GScript 2 is the new scripting engine for [[Graal]]&lt;br /&gt;
&lt;br /&gt;
== Old Script Compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Removed functionality ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;toinventory&lt;br /&gt;
&amp;lt;li&amp;gt;followplayer&lt;br /&gt;
&amp;lt;li&amp;gt;playersays()&lt;br /&gt;
&amp;lt;li&amp;gt;setbackpal&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supported old scripting commands &amp;amp; their mapping to new script ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;addstring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;addstring(string,string);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;addtiledef oldstring, oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;addtiledef(string,string,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;addtiledef2 oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;addtiledef2(string,string,float,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;attachplayertoobj float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;attachplayertoobj(float,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;blockagain;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                blockagain();&lt;br /&gt;
&amp;lt;dt&amp;gt;blockagainlocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                blockagainlocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;callnpc float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                callnpc(float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;callweapon float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                callweapon(float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;canbecarried;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbecarried();&lt;br /&gt;
&amp;lt;dt&amp;gt;canbepulled;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbepulled();&lt;br /&gt;
&amp;lt;dt&amp;gt;canbepushed;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbepushed();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbecarried;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbecarried();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbepulled;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbepulled();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbepushed;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbepushed();&lt;br /&gt;
&amp;lt;dt&amp;gt;canwarp;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canwarp();&lt;br /&gt;
&amp;lt;dt&amp;gt;canwarp2;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canwarp2();&lt;br /&gt;
&amp;lt;dt&amp;gt;carryobject oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                carryobject(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgcolors float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgcolors(float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgmode float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgmode(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgpart float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgpart(float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgvis float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgvis(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgzoom float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgzoom(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;deletestring oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                deletestring(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;destroy;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                destroy();&lt;br /&gt;
&amp;lt;dt&amp;gt;detachplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                detachplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;disabledefmovement;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disabledefmovement();&lt;br /&gt;
&amp;lt;dt&amp;gt;disablemap;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disablemap();&lt;br /&gt;
&amp;lt;dt&amp;gt;disablepause;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disablepause();&lt;br /&gt;
&amp;lt;dt&amp;gt;disableselectweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disableselectweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;disableweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disableweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;dontblock;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                dontblock();&lt;br /&gt;
&amp;lt;dt&amp;gt;dontblocklocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                dontblocklocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawaslight;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawaslight();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawoverplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawoverplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawunderplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawunderplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;enabledefmovement;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enabledefmovement();&lt;br /&gt;
&amp;lt;dt&amp;gt;enablefeatures float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablefeatures(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;enablemap;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablemap();&lt;br /&gt;
&amp;lt;dt&amp;gt;enablepause;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablepause();&lt;br /&gt;
&amp;lt;dt&amp;gt;enableselectweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enableselectweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;enableweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enableweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;explodebomb float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                explodebomb(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;followplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                followplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;freezeplayer float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                freezeplayer(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;freezeplayer2;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                freezeplayer2();&lt;br /&gt;
&amp;lt;dt&amp;gt;hide;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hide();&lt;br /&gt;
&amp;lt;dt&amp;gt;hideimg float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideimg(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hideimgs float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideimgs(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hidelocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hidelocal();&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;hitcompu float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitcompu(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitnpc float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitnpc(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitobjects float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitobjects(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hideplayer float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideplayer(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hidesword float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hidesword(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitplayer float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitplayer(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hurt float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hurt(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;insertstring oldstring, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                insertstring(string,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;join oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                join(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;lay oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                lay(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;lay2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                lay2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;loadmap oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                loadmap(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;message oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                message(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;move float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                move(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;noplayerkilling;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                noplayerkilling();&lt;br /&gt;
&amp;lt;dt&amp;gt;openurl oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                openurl(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;openurl2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                openurl2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;play oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                play(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;play2 oldstring, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                play2(string,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;playlooped oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                playlooped(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;putbomb float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putbomb(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putcomp oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putcomp(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putexplosion float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putexplosion(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putexplosion2 float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putexplosion2(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;puthorse oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                puthorse(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putleaps float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putleaps(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnewcomp oldstring, float, float, oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnewcomp(string,float,float,string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnpc oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnpc(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnpc2 float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnpc2(float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;reflectarrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                reflectarrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removearrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removearrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removebomb float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removebomb(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removecompus;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removecompus();&lt;br /&gt;
&amp;lt;dt&amp;gt;removeexplo float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removeexplo(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removehorse float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removehorse(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removeitem float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removeitem(float)&lt;br /&gt;
&amp;lt;dt&amp;gt;removestring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removestring(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;removetiledefs oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removetiledefs(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;replaceani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                replaceani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;replacestring oldstring, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                replacestring(string,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;resetfocus;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                resetfocus();&lt;br /&gt;
&amp;lt;dt&amp;gt;savelog oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                savelog(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;savelog2 oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                savelog2(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;say float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                say(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;say2 oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                say2(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendrpgmessage oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendrpgmessage(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendpm oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendpm(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendtonc oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendtonc(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendtorc oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendtorc(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;serverwarp oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                serverwarp(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;set oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                set(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setarray float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setarray(var,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setbeltcolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setbeltcolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setbow oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setbow(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcharani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcharani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setchargender oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setchargender(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcharprop oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                string = string;&lt;br /&gt;
&amp;lt;dt&amp;gt;setcoatcolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcoatcolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcoloreffect float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcoloreffect(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcursor float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcursor(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcurcor2 oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcursor2(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;seteffect float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seteffect(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;seteffectmode float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seteffectmode(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setfocus float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setfocus(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setgender oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setgender(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sethead oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sethead(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setlevel oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setlevel(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setlevel2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setlevel2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setmap oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setmap(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setminimap oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setminimap(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setmusicvolume float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setmusicvolume(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setimg oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setimg(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setimgpart oldstring, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setimgpart(string,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setletters oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setletters(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setplayerdir oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setplayerdir(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setplayerprop oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                string = string;&lt;br /&gt;
&amp;lt;dt&amp;gt;setpm oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setpm(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshape float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshape(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshape2 float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshape2(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshield oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshield(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshoecolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshoecolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshootparams oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshootparams(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setskincolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setskincolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setsleevecolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setsleevecolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setstring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setstring(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setsword oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setsword(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;seturllevel oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seturllevel(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setz float, float, float, float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setz(float,float,float,float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setzoomeffect float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setzoomeffect(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shoot float, float, float, float, float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shoot(float,float,float,float,float,float,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootarrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootarrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootball;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootball();&lt;br /&gt;
&amp;lt;dt&amp;gt;shootfireball float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootfireball(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootfireblast float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootfireblast(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootnuke float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootnuke(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;show;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                show();&lt;br /&gt;
&amp;lt;dt&amp;gt;showani float, float, float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showani(float,float,float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showani2 float, float, float, float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showani2(float,float,float,float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showcharacter;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showcharacter();&lt;br /&gt;
&amp;lt;dt&amp;gt;showfile oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showfile(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showimg float, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showimg(float,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showimg2 float, oldstring, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showimg2(float,string,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showlocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showlocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;showpoly float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showpoly(float,array);&lt;br /&gt;
&amp;lt;dt&amp;gt;showpoly2 float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showpoly2(float,array);&lt;br /&gt;
&amp;lt;dt&amp;gt;showstats float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showstats(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showtext float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showtext(float,float,float,string,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showtext2 float, float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showtext2(float,float,float,float,string,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sleep float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sleep(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;spyfire float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                spyfire(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;stopmidi;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                stopmidi();&lt;br /&gt;
&amp;lt;dt&amp;gt;stopsound oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                stopsound(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;take oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                take(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;take2 float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                take2(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;takehorse float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takehorse(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;takeplayercarry;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takeplayercarry();&lt;br /&gt;
&amp;lt;dt&amp;gt;takeplayerhorse;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takeplayerhorse();&lt;br /&gt;
&amp;lt;dt&amp;gt;throwcarry;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                throwcarry();&lt;br /&gt;
&amp;lt;dt&amp;gt;timereverywhere;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                timereverywhere();&lt;br /&gt;
&amp;lt;dt&amp;gt;timershow;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                timershow();&lt;br /&gt;
&amp;lt;dt&amp;gt;toinventory oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                toinventory(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;tokenize oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = string.tokenize();&lt;br /&gt;
&amp;lt;dt&amp;gt;tokenize2 oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = string.tokenize(&amp;quot; ,&amp;quot; @ string);&lt;br /&gt;
&amp;lt;dt&amp;gt;toweapons oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                toweapons(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;triggeraction float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                triggeraction(float,float,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;unfreezeplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                unfreezeplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;unset oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                unset(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;updateboard float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                updateboard(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;updateterrain;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                updateterrain();&lt;br /&gt;
&amp;lt;dt&amp;gt;wraptext float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = wraptext(float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;wraptext2 float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = wraptext2(float,float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supported old string operations ===&lt;br /&gt;
&lt;br /&gt;
These old string operators can be used in string parameters for the old commands, also you can use them directly as operators, e.g.&amp;lt;br/&amp;gt;&lt;br /&gt;
#c = &amp;quot;hello&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
is actually doing&amp;lt;br/&amp;gt;&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#a            player.account&lt;br /&gt;
#a(float)     players[float].account&lt;br /&gt;
#m            player.ani&lt;br /&gt;
              ani&lt;br /&gt;
#m(float)     players[float].ani&lt;br /&gt;
#K(float)     ascii(float)&lt;br /&gt;
#8            player.bodyimg&lt;br /&gt;
              bodyimg&lt;br /&gt;
#8(float)     players[float].bodyimg&lt;br /&gt;
#c            player.chat&lt;br /&gt;
              chat&lt;br /&gt;
#c(float)     players[float].chat&lt;br /&gt;
#C0           player.colors[0]&lt;br /&gt;
              colors[0]&lt;br /&gt;
#C0(float)    players[float].colors[0]&lt;br /&gt;
#C1           player.colors[1]&lt;br /&gt;
              colors[1]&lt;br /&gt;
#C1(float)    players[float].colors[1]&lt;br /&gt;
#C2           player.colors[2]&lt;br /&gt;
              colors[2]&lt;br /&gt;
#C2(float)    players[float].colors[2]&lt;br /&gt;
#C3           player.colors[3]&lt;br /&gt;
              colors[3]&lt;br /&gt;
#C3(float)    players[float].colors[3]&lt;br /&gt;
#C4           player.colors[4]&lt;br /&gt;
              colors[4]&lt;br /&gt;
#C4(float)    players[float].colors[4]&lt;br /&gt;
#C5           player.colors[5]&lt;br /&gt;
              colors[5]&lt;br /&gt;
#C5(float)    players[float].colors[5]&lt;br /&gt;
#D            downloadfile()&lt;br /&gt;
#E            emoticonchar()&lt;br /&gt;
#e(float,float,oldstring)&lt;br /&gt;
              string.substring(float,float)&lt;br /&gt;
#g            player.guild&lt;br /&gt;
              guild&lt;br /&gt;
#g(float)     players[float].guild&lt;br /&gt;
#3            player.headimg&lt;br /&gt;
              headimg&lt;br /&gt;
#3(float)     players[float].headimg&lt;br /&gt;
#5            player.horseimg&lt;br /&gt;
              horseimg&lt;br /&gt;
#5(float)     players[float].horseimg&lt;br /&gt;
#k(float)     keyname(float)&lt;br /&gt;
#L            player.level&lt;br /&gt;
#I(oldstring,float)&lt;br /&gt;
              getstring(string)[float]&lt;br /&gt;
#n            player.nick&lt;br /&gt;
              nick&lt;br /&gt;
#n(float)     players[float].nick&lt;br /&gt;
#f            image&lt;br /&gt;
#f(float)     npcs[float].image&lt;br /&gt;
#F            level&lt;br /&gt;
#p(float)     params[float]&lt;br /&gt;
#P(float)     player.attr[float]&lt;br /&gt;
              attr[float]&lt;br /&gt;
#P(float,float)&lt;br /&gt;
              players[float].attr[float]&lt;br /&gt;
#P1           player.attr[1]&lt;br /&gt;
              attr[1]&lt;br /&gt;
#P1(float)    players[float].attr[1]&lt;br /&gt;
#P2           player.attr[2]&lt;br /&gt;
              attr[2]&lt;br /&gt;
#P2(float)    players[float].attr[2]&lt;br /&gt;
#P3           player.attr[3]&lt;br /&gt;
              attr[3]&lt;br /&gt;
#P3(float)    players[float].attr[3]&lt;br /&gt;
#P4           player.attr[4]&lt;br /&gt;
              attr[4]&lt;br /&gt;
#P4(float)    players[float].attr[4]&lt;br /&gt;
#P5           player.attr[5]&lt;br /&gt;
              attr[5]&lt;br /&gt;
#P5(float)    players[float].attr[5]&lt;br /&gt;
#P6           player.attr[6]&lt;br /&gt;
              attr[6]&lt;br /&gt;
#P6(float)    players[float].attr[6]&lt;br /&gt;
#P7           player.attr[7]&lt;br /&gt;
              attr[7]&lt;br /&gt;
#P7(float)    players[float].attr[7]&lt;br /&gt;
#P8           player.attr[8]&lt;br /&gt;
              attr[8]&lt;br /&gt;
#P8(float)    players[float].attr[8]&lt;br /&gt;
#P9           player.attr[9]&lt;br /&gt;
              attr[9]&lt;br /&gt;
#P9(float)    players[float].attr[9]&lt;br /&gt;
#R(oldstring) string.random()&lt;br /&gt;
#2            player.shieldimg&lt;br /&gt;
              shieldimg&lt;br /&gt;
#2(float)     players[float].shieldimg&lt;br /&gt;
#s(oldstring) getstring(string)&lt;br /&gt;
#1            player.swordimg&lt;br /&gt;
              swordimg&lt;br /&gt;
#1(float)     players[float].swordimg&lt;br /&gt;
#S            player.sword.script&lt;br /&gt;
#t(float)     tokens[float]&lt;br /&gt;
#T(oldstring) string.trim()&lt;br /&gt;
#v(float)     float&lt;br /&gt;
#W            player.weapon.icon&lt;br /&gt;
#W(float)     weapons[float].icon&lt;br /&gt;
#w            player.weapon.script&lt;br /&gt;
#w(float)     weapons[float].script&lt;br /&gt;
&lt;br /&gt;
Compatibility note:&lt;br /&gt;
When you use the command setcharprop then the first parameter&lt;br /&gt;
is handled differently: instead of changing 'player.chat' it&lt;br /&gt;
is changing 'chat', the chat text of the npc. So 'setcharprop #c,hello'&lt;br /&gt;
would be translated into&lt;br /&gt;
chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
while 'setplayerprop #c,hello' is translated into&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
In the list above both possibilities are listed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Old Script Compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Operators ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Addition                  a + b&lt;br /&gt;
Substraction              a - b&lt;br /&gt;
Mulitplication            a * b&lt;br /&gt;
Division                  a / b&lt;br /&gt;
Modulus                   a % b&lt;br /&gt;
Power                     a ^ b&lt;br /&gt;
String Concationation     a @ b&lt;br /&gt;
Bool-And                  a &amp;amp;&amp;amp; b&lt;br /&gt;
Bool-Or                   a || b&lt;br /&gt;
Bool-Not                  !a&lt;br /&gt;
Negative                  -a&lt;br /&gt;
Equal                     a == b&lt;br /&gt;
Not-Equal                 a != b&lt;br /&gt;
Less                      a &amp;lt; b&lt;br /&gt;
Greater                   a &amp;gt; b&lt;br /&gt;
Less-Equal                a &amp;lt;= b,  a =&amp;lt; b&lt;br /&gt;
Greater-Equal             a &amp;gt;= b,  a =&amp;gt; b&lt;br /&gt;
In-Range                  a in &amp;lt;b,c&amp;gt;, a in |b,c&amp;gt;, a in &amp;lt;b,c|, a in |b,c|&lt;br /&gt;
In-Array                  a in {b,c,...}, {a,b,...} in {c,d,...}&lt;br /&gt;
Array-Constructor         {a,b,...}&lt;br /&gt;
Empty Array               new [count]&lt;br /&gt;
Array Member              a[index]&lt;br /&gt;
Function call             a(), a(b,c,...)&lt;br /&gt;
Object Attribute          a.b, a.(b)&lt;br /&gt;
Post Increment            a++&lt;br /&gt;
Post Decrement            a--&lt;br /&gt;
Pre Increment             ++a&lt;br /&gt;
Pre Decrement             --a&lt;br /&gt;
Old String Function       #a&lt;br /&gt;
Conditional               a? b : c&lt;br /&gt;
Assignment                a = b, a := b&lt;br /&gt;
Additive Assignment       a += b&lt;br /&gt;
Substractive Assignment   a -= b&lt;br /&gt;
Multiplicative Assignment a *= b&lt;br /&gt;
Division Assignment       a /= b&lt;br /&gt;
Modulus Assignment        a %= b&lt;br /&gt;
Power Assignment          a ^= b&lt;br /&gt;
String Append             a @= b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Accessing Variables ===&lt;br /&gt;
&lt;br /&gt;
Graal Script variables are 'variant', that means they are objects&lt;br /&gt;
that hold values of different types.&lt;br /&gt;
When you assign a value to the variable then it automatically&lt;br /&gt;
switches to the right type:&lt;br /&gt;
&lt;br /&gt;
Numeric (floating point):&lt;br /&gt;
  var = 1;&lt;br /&gt;
String:&lt;br /&gt;
  var = &amp;quot;hello&amp;quot;;&lt;br /&gt;
Object link:&lt;br /&gt;
  var = player;&lt;br /&gt;
Array (list of objects):&lt;br /&gt;
  var = {1,2,3};&lt;br /&gt;
&lt;br /&gt;
You can check the current type with the&lt;br /&gt;
type()-function - obj.type() returns&lt;br /&gt;
0,1,2,3 for numeric, string, object or array.&lt;br /&gt;
&lt;br /&gt;
=== Standard Object Functions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
obj.name&lt;br /&gt;
obj.type()  - gets the type of the var (float 0, string 1, object 2, array 3)&lt;br /&gt;
obj.length() - string length&lt;br /&gt;
obj.trim()&lt;br /&gt;
obj.tokenize([delimiters])&lt;br /&gt;
obj.charat(pos)&lt;br /&gt;
obj.pos(substring)&lt;br /&gt;
obj.beginswith(string)&lt;br /&gt;
obj.endson(string)&lt;br /&gt;
obj.substring(index[,length])&lt;br /&gt;
obj.size() - array length&lt;br /&gt;
obj.index(obj2) - position of obj2 in the array&lt;br /&gt;
obj.clear()&lt;br /&gt;
obj.add(obj2)&lt;br /&gt;
obj.delete(index)&lt;br /&gt;
obj.remove(obj2)&lt;br /&gt;
obj.replace(index,obj2)&lt;br /&gt;
obj.insert(index,obj2)&lt;br /&gt;
obj.getvarnames() - list of the object attributes&lt;br /&gt;
obj.geteditvarnames()&lt;br /&gt;
obj.loadstring(filename)&lt;br /&gt;
obj.loadlines(filename)&lt;br /&gt;
obj.loadvars(filename)&lt;br /&gt;
obj.savestring(filename,mode)&lt;br /&gt;
obj.savelines(filename,mode)&lt;br /&gt;
obj.savevars(filename,mode)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== NPCs ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
npc.actionplayer - integer, read only&lt;br /&gt;
npc.ani - object, read only&lt;br /&gt;
npc.anistep - integer, read only&lt;br /&gt;
npc.ap - integer&lt;br /&gt;
npc.attr - array&lt;br /&gt;
npc.attached - boolean, read only&lt;br /&gt;
npc.attachid - integer, read only&lt;br /&gt;
npc.attachtype - integer, read only&lt;br /&gt;
npc.body - object&lt;br /&gt;
npc.bodyimg - string&lt;br /&gt;
npc.bombs - integer&lt;br /&gt;
npc.chat - string&lt;br /&gt;
npc.colors - array&lt;br /&gt;
npc.darts - integer&lt;br /&gt;
npc.dir - integer&lt;br /&gt;
npc.glovepower - integer&lt;br /&gt;
npc.gralats - integer&lt;br /&gt;
npc.head - object&lt;br /&gt;
npc.headimg - string&lt;br /&gt;
npc.headset - integer&lt;br /&gt;
npc.hearts - floating point value, better use npc.hp&lt;br /&gt;
npc.height - floating point value, read only&lt;br /&gt;
npc.horseimg - string&lt;br /&gt;
npc.hp - floating point value&lt;br /&gt;
npc.hurtdx - floating point value&lt;br /&gt;
npc.hurtdy - floating point value&lt;br /&gt;
npc.id - integer, read only&lt;br /&gt;
npc.isfemale - boolean, read only&lt;br /&gt;
npc.ismale - boolean, read only&lt;br /&gt;
npc.isweapon - boolean, read only&lt;br /&gt;
npc.layer - integer&lt;br /&gt;
npc.mp - integer&lt;br /&gt;
npc.nick - string&lt;br /&gt;
npc.peltwithnpc - boolean, read only&lt;br /&gt;
npc.peltwithbush - boolean, read only&lt;br /&gt;
npc.peltwithsign - boolean, read only&lt;br /&gt;
npc.peltwithvase - boolean, read only&lt;br /&gt;
npc.peltwithstone - boolean, read only&lt;br /&gt;
npc.peltwithblackstone - boolean, read only&lt;br /&gt;
npc.rupees - integer, better use npc.gralats&lt;br /&gt;
npc.shield - object&lt;br /&gt;
npc.shieldimg - string&lt;br /&gt;
npc.shieldpower - integer&lt;br /&gt;
npc.sprite - integer&lt;br /&gt;
npc.sword - object&lt;br /&gt;
npc.swordimg - string&lt;br /&gt;
npc.swordpower - integer&lt;br /&gt;
npc.timeout - floating point value&lt;br /&gt;
npc.visible - boolean&lt;br /&gt;
npc.width - floating point value, read only&lt;br /&gt;
npc.x - floating point value&lt;br /&gt;
npc.y - floating point value&lt;br /&gt;
npc.z - floating point value&lt;br /&gt;
&lt;br /&gt;
npc.blockagain()&lt;br /&gt;
npc.blockagainlocal()&lt;br /&gt;
npc.canbecarried()&lt;br /&gt;
npc.cannotbecarried()&lt;br /&gt;
npc.canbepushed()&lt;br /&gt;
npc.cannotbepushed()&lt;br /&gt;
npc.canbepulled()&lt;br /&gt;
npc.cannotbepulled()&lt;br /&gt;
npc.carryobject(name)&lt;br /&gt;
npc.catchevent(object name,event,function)&lt;br /&gt;
npc.changeimgcolors(index,red,green,blue,alpha)&lt;br /&gt;
npc.changeimgmode(index,mode)&lt;br /&gt;
npc.changeimgpart(index,x,y,width,height)&lt;br /&gt;
npc.changeimgvis(index,layer)&lt;br /&gt;
npc.changeimgzoom(index,zoom factor)&lt;br /&gt;
npc.destroy()&lt;br /&gt;
npc.dontblock()&lt;br /&gt;
npc.dontblocklocal()&lt;br /&gt;
npc.drawaslight()&lt;br /&gt;
npc.drawoverplayer()&lt;br /&gt;
npc.drawunderplayer()&lt;br /&gt;
npc.getimageforsprite(sprite) - returns image&lt;br /&gt;
npc.getsprite(string) - returns sprite&lt;br /&gt;
npc.getspriteforspritepos(spritepos) - returns sprite&lt;br /&gt;
npc.hide()&lt;br /&gt;
npc.hidelocal()&lt;br /&gt;
npc.hideimg(index)&lt;br /&gt;
npc.hideimgs(startindex,endindex)&lt;br /&gt;
npc.hurt(power)&lt;br /&gt;
npc.ignoreevent(object name,event)&lt;br /&gt;
npc.ignoreevents(object name)&lt;br /&gt;
npc.lay(item name)&lt;br /&gt;
npc.message(text)&lt;br /&gt;
npc.move(delta x,delta y,time,options)&lt;br /&gt;
npc.setbow(image name)&lt;br /&gt;
npc.setcharani(ani name,parameters)&lt;br /&gt;
npc.setchargender(&amp;quot;male&amp;quot; or &amp;quot;female&amp;quot;)&lt;br /&gt;
npc.setcoloreffect(red,green,blue,alpha)&lt;br /&gt;
npc.seteffectmode(mode)&lt;br /&gt;
npc.setimg(image name)&lt;br /&gt;
npc.setimgpart(image name,x,y,width,height)&lt;br /&gt;
npc.setshape(type,pixelwidth,pixelheight)&lt;br /&gt;
npc.setshape2(tilewidth,tileheight,tilearray)&lt;br /&gt;
npc.setzoomeffect(zoom factor)&lt;br /&gt;
npc.shootarrow(direction)&lt;br /&gt;
npc.shootball()&lt;br /&gt;
npc.shootfireball(direction)&lt;br /&gt;
npc.shootfireblast(direction)&lt;br /&gt;
npc.shootnuke(direction)&lt;br /&gt;
npc.show()&lt;br /&gt;
npc.showani(index,x,y,direction,ani name,parameters)&lt;br /&gt;
npc.showani2(index,x,y,z,direction,ani name,parameters)&lt;br /&gt;
npc.showcharacter()&lt;br /&gt;
npc.showimg(index,image name,x,y)&lt;br /&gt;
npc.showimg2(index,image name,x,y,z)&lt;br /&gt;
npc.showlocal()&lt;br /&gt;
npc.showpoly(index,array)&lt;br /&gt;
npc.showpoly2(index,array)&lt;br /&gt;
npc.showtext(index,x,y,font,style,text)&lt;br /&gt;
npc.showtext2(index,x,y,z,font,style,text)&lt;br /&gt;
npc.take(item name)&lt;br /&gt;
npc.take2(item index)&lt;br /&gt;
npc.takehorse(horse index)&lt;br /&gt;
npc.throwcarry()&lt;br /&gt;
npc.timereverywhere()&lt;br /&gt;
npc.timershow()&lt;br /&gt;
npc.toweapons(weapon name)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Players ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
player.account - string, read only&lt;br /&gt;
player.ani - object, read only&lt;br /&gt;
player.anistep - integer, read only&lt;br /&gt;
player.ap - integer&lt;br /&gt;
player.attached - boolean, read only&lt;br /&gt;
player.attachid - integer, read only&lt;br /&gt;
player.attachtype - integer, read only&lt;br /&gt;
player.attr - array&lt;br /&gt;
player.body - object&lt;br /&gt;
player.bodyimg - string&lt;br /&gt;
player.bombs - integer&lt;br /&gt;
player.chat - string&lt;br /&gt;
player.colors - array&lt;br /&gt;
player.darts - integer&lt;br /&gt;
player.dir - integer&lt;br /&gt;
player.freezetime - floating point value, only valid for local players&lt;br /&gt;
player.fullhearts - integer, read only, better use player.maxhp&lt;br /&gt;
player.glovepower - integer&lt;br /&gt;
player.gralats - integer&lt;br /&gt;
player.head - object&lt;br /&gt;
player.headimg - string&lt;br /&gt;
player.headset - integer&lt;br /&gt;
player.hearts - floating point value, only editable for local players, better use player.hp&lt;br /&gt;
player.horseimg - string, only editable for local players&lt;br /&gt;
player.hp - floating point value, only editable for local players&lt;br /&gt;
player.hurt - boolean, read only, only valid for local players&lt;br /&gt;
player.hurtdx - floating point value, read only, only valid for local players&lt;br /&gt;
player.hurtdy - floating point value, read only, only valid for local players&lt;br /&gt;
player.hurted - boolean, read only, only valid for local players, better use player.hurt&lt;br /&gt;
player.hurtpower - floating point value, read only, only valid for local players&lt;br /&gt;
player.id - integer, read only&lt;br /&gt;
player.isfemale - boolean, read only&lt;br /&gt;
player.ismale - boolean, read only&lt;br /&gt;
player.letters - object, only valid for local players&lt;br /&gt;
player.level - object, read only&lt;br /&gt;
player.map - boolean, only valid for local players&lt;br /&gt;
player.maxhp - integer, read only&lt;br /&gt;
player.mp - integer&lt;br /&gt;
player.nick - string, read only for local players&lt;br /&gt;
player.onhorse - boolean, read only, only valid for local players&lt;br /&gt;
player.online - boolean, read only, only valid for local players&lt;br /&gt;
player.paused - boolean, read only, only valid for local players&lt;br /&gt;
player.reading - boolean, read only, only valid for local players&lt;br /&gt;
player.rupees - integer, better use player.gralats&lt;br /&gt;
player.shield - object&lt;br /&gt;
player.shieldimg - string&lt;br /&gt;
player.shieldpower - integer, read only&lt;br /&gt;
player.sprite - integer&lt;br /&gt;
player.swimming - boolean, read only, only valid for local players&lt;br /&gt;
player.sword - object&lt;br /&gt;
player.swordimg - string&lt;br /&gt;
player.swordpower - integer, read only&lt;br /&gt;
player.weapon - object, read only, only valid for local players&lt;br /&gt;
player.weapons - array, read only, only valid for local players&lt;br /&gt;
player.x - floating point value&lt;br /&gt;
player.y - floating point value&lt;br /&gt;
player.z - floating point value&lt;br /&gt;
&lt;br /&gt;
player.getimageforsprite(sprite) - returns object&lt;br /&gt;
player.getsprite(string) - returns object&lt;br /&gt;
player.getspriteforspritepos(spritepos) - returns object&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Levels ====&lt;br /&gt;
==== Ganis ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
e.g. player.ani&lt;br /&gt;
ani.name&lt;br /&gt;
ani.sprites[]&lt;br /&gt;
ani.steps[]&lt;br /&gt;
ani.continuous&lt;br /&gt;
ani.singledirection&lt;br /&gt;
ani.looping&lt;br /&gt;
ani.ismovie&lt;br /&gt;
ani.setbackto&lt;br /&gt;
ani.ganitype&lt;br /&gt;
ani.getsprite(id)&lt;br /&gt;
ani.addsprite(id) returns the added sprite&lt;br /&gt;
ani.deletesprite(id)&lt;br /&gt;
ani.addstep()&lt;br /&gt;
ani.insertstep(index)&lt;br /&gt;
ani.deletestep(index)&lt;br /&gt;
&lt;br /&gt;
sprites:&lt;br /&gt;
sprite.spriteindex&lt;br /&gt;
sprite.image&lt;br /&gt;
sprite.imagetype&lt;br /&gt;
sprite.x&lt;br /&gt;
sprite.y&lt;br /&gt;
sprite.width&lt;br /&gt;
sprite.height&lt;br /&gt;
sprite.red&lt;br /&gt;
sprite.green&lt;br /&gt;
sprite.blue&lt;br /&gt;
sprite.alpha&lt;br /&gt;
sprite.zoom&lt;br /&gt;
sprite.mode&lt;br /&gt;
sprite.surface&lt;br /&gt;
sprite.attachments[]&lt;br /&gt;
sprite.addattachment()&lt;br /&gt;
sprite.insertattachment(index)&lt;br /&gt;
sprite.deleteattachment(index)&lt;br /&gt;
&lt;br /&gt;
attachment:&lt;br /&gt;
attachment.sprite&lt;br /&gt;
attachment.dx&lt;br /&gt;
attachment.dy&lt;br /&gt;
attachment.behind&lt;br /&gt;
&lt;br /&gt;
step:&lt;br /&gt;
step.spritespos[][]&lt;br /&gt;
step.sounds[]&lt;br /&gt;
step.delay&lt;br /&gt;
step.addpos(dir)&lt;br /&gt;
step.insertpos(dir,index)&lt;br /&gt;
step.deletepos(dir,index)&lt;br /&gt;
&lt;br /&gt;
spritepos:&lt;br /&gt;
spritepos.sprite&lt;br /&gt;
spritepos.param&lt;br /&gt;
spritepos.attr&lt;br /&gt;
spritepos.dx&lt;br /&gt;
spritepos.dy&lt;br /&gt;
&lt;br /&gt;
sound:&lt;br /&gt;
sound.sound&lt;br /&gt;
sound.dx&lt;br /&gt;
sound.dy&lt;br /&gt;
sound.delay&lt;br /&gt;
&lt;br /&gt;
also the gani owners (players, npcs) have those functions:&lt;br /&gt;
getimageforsprite(sprite)&lt;br /&gt;
getsprite(string)&lt;br /&gt;
getspriteforspritepos(spritepos)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Standard functions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
format(format,parameters,...) - formats a &amp;quot;%s %d&amp;quot; string, inserts the parameters, and returns a string&lt;br /&gt;
int(a)&lt;br /&gt;
abs(a)&lt;br /&gt;
random(rangestart,rangeend)&lt;br /&gt;
sin(a)&lt;br /&gt;
cos(a)&lt;br /&gt;
arctan(a)&lt;br /&gt;
exp(a)&lt;br /&gt;
log(base,a)&lt;br /&gt;
min(a,b)&lt;br /&gt;
max(a,b)&lt;br /&gt;
getangle(delta x,delta y)&lt;br /&gt;
getdir(delta x,delta y)&lt;br /&gt;
vecx(direction)&lt;br /&gt;
vecy(direction)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Standard variables ===&lt;br /&gt;
&lt;br /&gt;
== GUI ==&lt;br /&gt;
&lt;br /&gt;
=== GUI controls ===&lt;br /&gt;
&lt;br /&gt;
=== GUI events ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
All controls:&lt;br /&gt;
onAdd() when added to the parent&lt;br /&gt;
onRemove() when removed from the parent&lt;br /&gt;
onWake() when activated&lt;br /&gt;
onSleep() when deactivated&lt;br /&gt;
onResize(w,h)&lt;br /&gt;
onMove(x,y)&lt;br /&gt;
onMouseEnter(modifier,x,y,clickcount)&lt;br /&gt;
onMouseLeave(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseMove(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelDown(modifier,x,y,clickcount)&lt;br /&gt;
onKeyDown(keycode,string)&lt;br /&gt;
onKeyUp(keycode,string)&lt;br /&gt;
onKeyRepeat(keycode,string)&lt;br /&gt;
&lt;br /&gt;
GuiMLTextCtrl:&lt;br /&gt;
onResize(w,h) when reflowing&lt;br /&gt;
onURL(url) when clicked on url&lt;br /&gt;
&lt;br /&gt;
GuiTextEditCtrl:&lt;br /&gt;
onTabComplete()&lt;br /&gt;
onAction(text) when return key pressed&lt;br /&gt;
&lt;br /&gt;
GuiTextListCtrl:&lt;br /&gt;
onSelect(id,text) when row selected&lt;br /&gt;
onDblClick(id) when double-click on row or return key pressed&lt;br /&gt;
onDeleteKey(id) when delete key pressed&lt;br /&gt;
onIconResized(w,h) when setIconSize() called&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&lt;br /&gt;
GuiPopUpMenuCtrl:&lt;br /&gt;
onSelect(id,text) when menu option choosen&lt;br /&gt;
onCancel() when menu is closed without action&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&lt;br /&gt;
GuiMenuBar:&lt;br /&gt;
onMenuSelect(menuid,menutext)&lt;br /&gt;
onMenuItemSelect(menuid,menutext,itemid,itemtext)&lt;br /&gt;
&lt;br /&gt;
GuiTreeViewCtrl:&lt;br /&gt;
onSelect(id,rightmouse) when row selected&lt;br /&gt;
onUnselect(id) when row de-selected&lt;br /&gt;
onInspect(id) when clicked on the name of an item&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
onContextMenu(&amp;quot;x y&amp;quot;,id) when clicked with right-mouse key on row&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1378</id>
		<title>Creation/Dev/GScript2</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1378"/>
		<updated>2005-02-06T16:57:34Z</updated>

		<summary type="html">&lt;p&gt;Evil: /* NPCs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GScript 2 is the new scripting engine for [[Graal]]&lt;br /&gt;
&lt;br /&gt;
== Old Script Compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Removed functionality ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;toinventory&lt;br /&gt;
&amp;lt;li&amp;gt;followplayer&lt;br /&gt;
&amp;lt;li&amp;gt;playersays()&lt;br /&gt;
&amp;lt;li&amp;gt;setbackpal&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supported old scripting commands &amp;amp; their mapping to new script ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;addstring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;addstring(string,string);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;addtiledef oldstring, oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;addtiledef(string,string,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;addtiledef2 oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;addtiledef2(string,string,float,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;attachplayertoobj float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;attachplayertoobj(float,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;blockagain;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                blockagain();&lt;br /&gt;
&amp;lt;dt&amp;gt;blockagainlocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                blockagainlocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;callnpc float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                callnpc(float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;callweapon float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                callweapon(float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;canbecarried;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbecarried();&lt;br /&gt;
&amp;lt;dt&amp;gt;canbepulled;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbepulled();&lt;br /&gt;
&amp;lt;dt&amp;gt;canbepushed;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbepushed();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbecarried;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbecarried();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbepulled;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbepulled();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbepushed;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbepushed();&lt;br /&gt;
&amp;lt;dt&amp;gt;canwarp;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canwarp();&lt;br /&gt;
&amp;lt;dt&amp;gt;canwarp2;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canwarp2();&lt;br /&gt;
&amp;lt;dt&amp;gt;carryobject oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                carryobject(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgcolors float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgcolors(float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgmode float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgmode(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgpart float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgpart(float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgvis float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgvis(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgzoom float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgzoom(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;deletestring oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                deletestring(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;destroy;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                destroy();&lt;br /&gt;
&amp;lt;dt&amp;gt;detachplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                detachplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;disabledefmovement;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disabledefmovement();&lt;br /&gt;
&amp;lt;dt&amp;gt;disablemap;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disablemap();&lt;br /&gt;
&amp;lt;dt&amp;gt;disablepause;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disablepause();&lt;br /&gt;
&amp;lt;dt&amp;gt;disableselectweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disableselectweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;disableweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disableweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;dontblock;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                dontblock();&lt;br /&gt;
&amp;lt;dt&amp;gt;dontblocklocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                dontblocklocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawaslight;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawaslight();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawoverplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawoverplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawunderplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawunderplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;enabledefmovement;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enabledefmovement();&lt;br /&gt;
&amp;lt;dt&amp;gt;enablefeatures float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablefeatures(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;enablemap;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablemap();&lt;br /&gt;
&amp;lt;dt&amp;gt;enablepause;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablepause();&lt;br /&gt;
&amp;lt;dt&amp;gt;enableselectweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enableselectweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;enableweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enableweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;explodebomb float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                explodebomb(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;followplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                followplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;freezeplayer float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                freezeplayer(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;freezeplayer2;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                freezeplayer2();&lt;br /&gt;
&amp;lt;dt&amp;gt;hide;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hide();&lt;br /&gt;
&amp;lt;dt&amp;gt;hideimg float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideimg(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hideimgs float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideimgs(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hidelocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hidelocal();&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;hitcompu float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitcompu(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitnpc float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitnpc(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitobjects float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitobjects(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hideplayer float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideplayer(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hidesword float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hidesword(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitplayer float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitplayer(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hurt float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hurt(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;insertstring oldstring, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                insertstring(string,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;join oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                join(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;lay oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                lay(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;lay2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                lay2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;loadmap oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                loadmap(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;message oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                message(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;move float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                move(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;noplayerkilling;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                noplayerkilling();&lt;br /&gt;
&amp;lt;dt&amp;gt;openurl oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                openurl(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;openurl2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                openurl2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;play oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                play(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;play2 oldstring, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                play2(string,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;playlooped oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                playlooped(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;putbomb float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putbomb(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putcomp oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putcomp(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putexplosion float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putexplosion(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putexplosion2 float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putexplosion2(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;puthorse oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                puthorse(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putleaps float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putleaps(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnewcomp oldstring, float, float, oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnewcomp(string,float,float,string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnpc oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnpc(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnpc2 float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnpc2(float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;reflectarrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                reflectarrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removearrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removearrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removebomb float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removebomb(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removecompus;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removecompus();&lt;br /&gt;
&amp;lt;dt&amp;gt;removeexplo float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removeexplo(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removehorse float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removehorse(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removeitem float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removeitem(float)&lt;br /&gt;
&amp;lt;dt&amp;gt;removestring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removestring(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;removetiledefs oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removetiledefs(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;replaceani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                replaceani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;replacestring oldstring, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                replacestring(string,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;resetfocus;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                resetfocus();&lt;br /&gt;
&amp;lt;dt&amp;gt;savelog oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                savelog(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;savelog2 oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                savelog2(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;say float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                say(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;say2 oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                say2(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendrpgmessage oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendrpgmessage(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendpm oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendpm(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendtonc oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendtonc(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendtorc oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendtorc(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;serverwarp oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                serverwarp(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;set oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                set(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setarray float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setarray(var,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setbeltcolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setbeltcolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setbow oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setbow(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcharani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcharani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setchargender oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setchargender(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcharprop oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                string = string;&lt;br /&gt;
&amp;lt;dt&amp;gt;setcoatcolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcoatcolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcoloreffect float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcoloreffect(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcursor float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcursor(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcurcor2 oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcursor2(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;seteffect float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seteffect(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;seteffectmode float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seteffectmode(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setfocus float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setfocus(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setgender oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setgender(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sethead oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sethead(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setlevel oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setlevel(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setlevel2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setlevel2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setmap oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setmap(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setminimap oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setminimap(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setmusicvolume float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setmusicvolume(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setimg oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setimg(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setimgpart oldstring, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setimgpart(string,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setletters oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setletters(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setplayerdir oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setplayerdir(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setplayerprop oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                string = string;&lt;br /&gt;
&amp;lt;dt&amp;gt;setpm oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setpm(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshape float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshape(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshape2 float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshape2(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshield oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshield(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshoecolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshoecolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshootparams oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshootparams(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setskincolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setskincolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setsleevecolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setsleevecolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setstring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setstring(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setsword oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setsword(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;seturllevel oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seturllevel(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setz float, float, float, float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setz(float,float,float,float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setzoomeffect float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setzoomeffect(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shoot float, float, float, float, float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shoot(float,float,float,float,float,float,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootarrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootarrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootball;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootball();&lt;br /&gt;
&amp;lt;dt&amp;gt;shootfireball float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootfireball(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootfireblast float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootfireblast(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootnuke float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootnuke(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;show;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                show();&lt;br /&gt;
&amp;lt;dt&amp;gt;showani float, float, float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showani(float,float,float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showani2 float, float, float, float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showani2(float,float,float,float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showcharacter;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showcharacter();&lt;br /&gt;
&amp;lt;dt&amp;gt;showfile oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showfile(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showimg float, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showimg(float,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showimg2 float, oldstring, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showimg2(float,string,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showlocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showlocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;showpoly float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showpoly(float,array);&lt;br /&gt;
&amp;lt;dt&amp;gt;showpoly2 float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showpoly2(float,array);&lt;br /&gt;
&amp;lt;dt&amp;gt;showstats float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showstats(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showtext float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showtext(float,float,float,string,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showtext2 float, float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showtext2(float,float,float,float,string,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sleep float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sleep(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;spyfire float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                spyfire(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;stopmidi;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                stopmidi();&lt;br /&gt;
&amp;lt;dt&amp;gt;stopsound oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                stopsound(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;take oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                take(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;take2 float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                take2(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;takehorse float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takehorse(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;takeplayercarry;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takeplayercarry();&lt;br /&gt;
&amp;lt;dt&amp;gt;takeplayerhorse;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takeplayerhorse();&lt;br /&gt;
&amp;lt;dt&amp;gt;throwcarry;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                throwcarry();&lt;br /&gt;
&amp;lt;dt&amp;gt;timereverywhere;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                timereverywhere();&lt;br /&gt;
&amp;lt;dt&amp;gt;timershow;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                timershow();&lt;br /&gt;
&amp;lt;dt&amp;gt;toinventory oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                toinventory(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;tokenize oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = string.tokenize();&lt;br /&gt;
&amp;lt;dt&amp;gt;tokenize2 oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = string.tokenize(&amp;quot; ,&amp;quot; @ string);&lt;br /&gt;
&amp;lt;dt&amp;gt;toweapons oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                toweapons(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;triggeraction float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                triggeraction(float,float,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;unfreezeplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                unfreezeplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;unset oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                unset(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;updateboard float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                updateboard(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;updateterrain;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                updateterrain();&lt;br /&gt;
&amp;lt;dt&amp;gt;wraptext float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = wraptext(float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;wraptext2 float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = wraptext2(float,float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supported old string operations ===&lt;br /&gt;
&lt;br /&gt;
These old string operators can be used in string parameters for the old commands, also you can use them directly as operators, e.g.&amp;lt;br/&amp;gt;&lt;br /&gt;
#c = &amp;quot;hello&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
is actually doing&amp;lt;br/&amp;gt;&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#a            player.account&lt;br /&gt;
#a(float)     players[float].account&lt;br /&gt;
#m            player.ani&lt;br /&gt;
              ani&lt;br /&gt;
#m(float)     players[float].ani&lt;br /&gt;
#K(float)     ascii(float)&lt;br /&gt;
#8            player.bodyimg&lt;br /&gt;
              bodyimg&lt;br /&gt;
#8(float)     players[float].bodyimg&lt;br /&gt;
#c            player.chat&lt;br /&gt;
              chat&lt;br /&gt;
#c(float)     players[float].chat&lt;br /&gt;
#C0           player.colors[0]&lt;br /&gt;
              colors[0]&lt;br /&gt;
#C0(float)    players[float].colors[0]&lt;br /&gt;
#C1           player.colors[1]&lt;br /&gt;
              colors[1]&lt;br /&gt;
#C1(float)    players[float].colors[1]&lt;br /&gt;
#C2           player.colors[2]&lt;br /&gt;
              colors[2]&lt;br /&gt;
#C2(float)    players[float].colors[2]&lt;br /&gt;
#C3           player.colors[3]&lt;br /&gt;
              colors[3]&lt;br /&gt;
#C3(float)    players[float].colors[3]&lt;br /&gt;
#C4           player.colors[4]&lt;br /&gt;
              colors[4]&lt;br /&gt;
#C4(float)    players[float].colors[4]&lt;br /&gt;
#C5           player.colors[5]&lt;br /&gt;
              colors[5]&lt;br /&gt;
#C5(float)    players[float].colors[5]&lt;br /&gt;
#D            downloadfile()&lt;br /&gt;
#E            emoticonchar()&lt;br /&gt;
#e(float,float,oldstring)&lt;br /&gt;
              string.substring(float,float)&lt;br /&gt;
#g            player.guild&lt;br /&gt;
              guild&lt;br /&gt;
#g(float)     players[float].guild&lt;br /&gt;
#3            player.headimg&lt;br /&gt;
              headimg&lt;br /&gt;
#3(float)     players[float].headimg&lt;br /&gt;
#5            player.horseimg&lt;br /&gt;
              horseimg&lt;br /&gt;
#5(float)     players[float].horseimg&lt;br /&gt;
#k(float)     keyname(float)&lt;br /&gt;
#L            player.level&lt;br /&gt;
#I(oldstring,float)&lt;br /&gt;
              getstring(string)[float]&lt;br /&gt;
#n            player.nick&lt;br /&gt;
              nick&lt;br /&gt;
#n(float)     players[float].nick&lt;br /&gt;
#f            image&lt;br /&gt;
#f(float)     npcs[float].image&lt;br /&gt;
#F            level&lt;br /&gt;
#p(float)     params[float]&lt;br /&gt;
#P(float)     player.attr[float]&lt;br /&gt;
              attr[float]&lt;br /&gt;
#P(float,float)&lt;br /&gt;
              players[float].attr[float]&lt;br /&gt;
#P1           player.attr[1]&lt;br /&gt;
              attr[1]&lt;br /&gt;
#P1(float)    players[float].attr[1]&lt;br /&gt;
#P2           player.attr[2]&lt;br /&gt;
              attr[2]&lt;br /&gt;
#P2(float)    players[float].attr[2]&lt;br /&gt;
#P3           player.attr[3]&lt;br /&gt;
              attr[3]&lt;br /&gt;
#P3(float)    players[float].attr[3]&lt;br /&gt;
#P4           player.attr[4]&lt;br /&gt;
              attr[4]&lt;br /&gt;
#P4(float)    players[float].attr[4]&lt;br /&gt;
#P5           player.attr[5]&lt;br /&gt;
              attr[5]&lt;br /&gt;
#P5(float)    players[float].attr[5]&lt;br /&gt;
#P6           player.attr[6]&lt;br /&gt;
              attr[6]&lt;br /&gt;
#P6(float)    players[float].attr[6]&lt;br /&gt;
#P7           player.attr[7]&lt;br /&gt;
              attr[7]&lt;br /&gt;
#P7(float)    players[float].attr[7]&lt;br /&gt;
#P8           player.attr[8]&lt;br /&gt;
              attr[8]&lt;br /&gt;
#P8(float)    players[float].attr[8]&lt;br /&gt;
#P9           player.attr[9]&lt;br /&gt;
              attr[9]&lt;br /&gt;
#P9(float)    players[float].attr[9]&lt;br /&gt;
#R(oldstring) string.random()&lt;br /&gt;
#2            player.shieldimg&lt;br /&gt;
              shieldimg&lt;br /&gt;
#2(float)     players[float].shieldimg&lt;br /&gt;
#s(oldstring) getstring(string)&lt;br /&gt;
#1            player.swordimg&lt;br /&gt;
              swordimg&lt;br /&gt;
#1(float)     players[float].swordimg&lt;br /&gt;
#S            player.sword.script&lt;br /&gt;
#t(float)     tokens[float]&lt;br /&gt;
#T(oldstring) string.trim()&lt;br /&gt;
#v(float)     float&lt;br /&gt;
#W            player.weapon.icon&lt;br /&gt;
#W(float)     weapons[float].icon&lt;br /&gt;
#w            player.weapon.script&lt;br /&gt;
#w(float)     weapons[float].script&lt;br /&gt;
&lt;br /&gt;
Compatibility note:&lt;br /&gt;
When you use the command setcharprop then the first parameter&lt;br /&gt;
is handled differently: instead of changing 'player.chat' it&lt;br /&gt;
is changing 'chat', the chat text of the npc. So 'setcharprop #c,hello'&lt;br /&gt;
would be translated into&lt;br /&gt;
chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
while 'setplayerprop #c,hello' is translated into&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
In the list above both possibilities are listed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Old Script Compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Operators ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Addition                  a + b&lt;br /&gt;
Substraction              a - b&lt;br /&gt;
Mulitplication            a * b&lt;br /&gt;
Division                  a / b&lt;br /&gt;
Modulus                   a % b&lt;br /&gt;
Power                     a ^ b&lt;br /&gt;
String Concationation     a @ b&lt;br /&gt;
Bool-And                  a &amp;amp;&amp;amp; b&lt;br /&gt;
Bool-Or                   a || b&lt;br /&gt;
Bool-Not                  !a&lt;br /&gt;
Negative                  -a&lt;br /&gt;
Equal                     a == b&lt;br /&gt;
Not-Equal                 a != b&lt;br /&gt;
Less                      a &amp;lt; b&lt;br /&gt;
Greater                   a &amp;gt; b&lt;br /&gt;
Less-Equal                a &amp;lt;= b,  a =&amp;lt; b&lt;br /&gt;
Greater-Equal             a &amp;gt;= b,  a =&amp;gt; b&lt;br /&gt;
In-Range                  a in &amp;lt;b,c&amp;gt;, a in |b,c&amp;gt;, a in &amp;lt;b,c|, a in |b,c|&lt;br /&gt;
In-Array                  a in {b,c,...}, {a,b,...} in {c,d,...}&lt;br /&gt;
Array-Constructor         {a,b,...}&lt;br /&gt;
Empty Array               new [count]&lt;br /&gt;
Array Member              a[index]&lt;br /&gt;
Function call             a(), a(b,c,...)&lt;br /&gt;
Object Attribute          a.b, a.(b)&lt;br /&gt;
Post Increment            a++&lt;br /&gt;
Post Decrement            a--&lt;br /&gt;
Pre Increment             ++a&lt;br /&gt;
Pre Decrement             --a&lt;br /&gt;
Old String Function       #a&lt;br /&gt;
Conditional               a? b : c&lt;br /&gt;
Assignment                a = b, a := b&lt;br /&gt;
Additive Assignment       a += b&lt;br /&gt;
Substractive Assignment   a -= b&lt;br /&gt;
Multiplicative Assignment a *= b&lt;br /&gt;
Division Assignment       a /= b&lt;br /&gt;
Modulus Assignment        a %= b&lt;br /&gt;
Power Assignment          a ^= b&lt;br /&gt;
String Append             a @= b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Accessing Variables ===&lt;br /&gt;
&lt;br /&gt;
Graal Script variables are 'variant', that means they are objects&lt;br /&gt;
that hold values of different types.&lt;br /&gt;
When you assign a value to the variable then it automatically&lt;br /&gt;
switches to the right type:&lt;br /&gt;
&lt;br /&gt;
Numeric (floating point):&lt;br /&gt;
  var = 1;&lt;br /&gt;
String:&lt;br /&gt;
  var = &amp;quot;hello&amp;quot;;&lt;br /&gt;
Object link:&lt;br /&gt;
  var = player;&lt;br /&gt;
Array (list of objects):&lt;br /&gt;
  var = {1,2,3};&lt;br /&gt;
&lt;br /&gt;
You can check the current type with the&lt;br /&gt;
type()-function - obj.type() returns&lt;br /&gt;
0,1,2,3 for numeric, string, object or array.&lt;br /&gt;
&lt;br /&gt;
=== Standard Object Functions ===&lt;br /&gt;
&lt;br /&gt;
obj.name&lt;br /&gt;
obj.type()  - gets the type of the var (float 0, string 1, object 2, array 3)&lt;br /&gt;
obj.length() - string length&lt;br /&gt;
obj.trim()&lt;br /&gt;
obj.tokenize([delimiters])&lt;br /&gt;
obj.charat(pos)&lt;br /&gt;
obj.pos(substring)&lt;br /&gt;
obj.beginswith(string)&lt;br /&gt;
obj.endson(string)&lt;br /&gt;
obj.substring(index[,length])&lt;br /&gt;
obj.size() - array length&lt;br /&gt;
obj.index(obj2) - position of obj2 in the array&lt;br /&gt;
obj.clear()&lt;br /&gt;
obj.add(obj2)&lt;br /&gt;
obj.delete(index)&lt;br /&gt;
obj.remove(obj2)&lt;br /&gt;
obj.replace(index,obj2)&lt;br /&gt;
obj.insert(index,obj2)&lt;br /&gt;
obj.getvarnames() - list of the object attributes&lt;br /&gt;
obj.geteditvarnames()&lt;br /&gt;
obj.loadstring(filename)&lt;br /&gt;
obj.loadlines(filename)&lt;br /&gt;
obj.loadvars(filename)&lt;br /&gt;
obj.savestring(filename,mode)&lt;br /&gt;
obj.savelines(filename,mode)&lt;br /&gt;
obj.savevars(filename,mode)&lt;br /&gt;
&lt;br /&gt;
==== NPCs ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
npc.actionplayer - integer, read only&lt;br /&gt;
npc.ani - object, read only&lt;br /&gt;
npc.anistep - integer, read only&lt;br /&gt;
npc.ap - integer&lt;br /&gt;
npc.attr - array&lt;br /&gt;
npc.attached - boolean, read only&lt;br /&gt;
npc.attachid - integer, read only&lt;br /&gt;
npc.attachtype - integer, read only&lt;br /&gt;
npc.body - object&lt;br /&gt;
npc.bodyimg - string&lt;br /&gt;
npc.bombs - integer&lt;br /&gt;
npc.chat - string&lt;br /&gt;
npc.colors - array&lt;br /&gt;
npc.darts - integer&lt;br /&gt;
npc.dir - integer&lt;br /&gt;
npc.glovepower - integer&lt;br /&gt;
npc.gralats - integer&lt;br /&gt;
npc.head - object&lt;br /&gt;
npc.headimg - string&lt;br /&gt;
npc.headset - integer&lt;br /&gt;
npc.hearts - floating point value, better use npc.hp&lt;br /&gt;
npc.height - floating point value, read only&lt;br /&gt;
npc.horseimg - string&lt;br /&gt;
npc.hp - floating point value&lt;br /&gt;
npc.hurtdx - floating point value&lt;br /&gt;
npc.hurtdy - floating point value&lt;br /&gt;
npc.id - integer, read only&lt;br /&gt;
npc.isfemale - boolean, read only&lt;br /&gt;
npc.ismale - boolean, read only&lt;br /&gt;
npc.isweapon - boolean, read only&lt;br /&gt;
npc.layer - integer&lt;br /&gt;
npc.mp - integer&lt;br /&gt;
npc.nick - string&lt;br /&gt;
npc.peltwithnpc - boolean, read only&lt;br /&gt;
npc.peltwithbush - boolean, read only&lt;br /&gt;
npc.peltwithsign - boolean, read only&lt;br /&gt;
npc.peltwithvase - boolean, read only&lt;br /&gt;
npc.peltwithstone - boolean, read only&lt;br /&gt;
npc.peltwithblackstone - boolean, read only&lt;br /&gt;
npc.rupees - integer, better use npc.gralats&lt;br /&gt;
npc.shield - object&lt;br /&gt;
npc.shieldimg - string&lt;br /&gt;
npc.shieldpower - integer&lt;br /&gt;
npc.sprite - integer&lt;br /&gt;
npc.sword - object&lt;br /&gt;
npc.swordimg - string&lt;br /&gt;
npc.swordpower - integer&lt;br /&gt;
npc.timeout - floating point value&lt;br /&gt;
npc.visible - boolean&lt;br /&gt;
npc.width - floating point value, read only&lt;br /&gt;
npc.x - floating point value&lt;br /&gt;
npc.y - floating point value&lt;br /&gt;
npc.z - floating point value&lt;br /&gt;
&lt;br /&gt;
npc.blockagain()&lt;br /&gt;
npc.blockagainlocal()&lt;br /&gt;
npc.canbecarried()&lt;br /&gt;
npc.cannotbecarried()&lt;br /&gt;
npc.canbepushed()&lt;br /&gt;
npc.cannotbepushed()&lt;br /&gt;
npc.canbepulled()&lt;br /&gt;
npc.cannotbepulled()&lt;br /&gt;
npc.carryobject(name)&lt;br /&gt;
npc.catchevent(object name,event,function)&lt;br /&gt;
npc.changeimgcolors(index,red,green,blue,alpha)&lt;br /&gt;
npc.changeimgmode(index,mode)&lt;br /&gt;
npc.changeimgpart(index,x,y,width,height)&lt;br /&gt;
npc.changeimgvis(index,layer)&lt;br /&gt;
npc.changeimgzoom(index,zoom factor)&lt;br /&gt;
npc.destroy()&lt;br /&gt;
npc.dontblock()&lt;br /&gt;
npc.dontblocklocal()&lt;br /&gt;
npc.drawaslight()&lt;br /&gt;
npc.drawoverplayer()&lt;br /&gt;
npc.drawunderplayer()&lt;br /&gt;
npc.getimageforsprite(sprite) - returns image&lt;br /&gt;
npc.getsprite(string) - returns sprite&lt;br /&gt;
npc.getspriteforspritepos(spritepos) - returns sprite&lt;br /&gt;
npc.hide()&lt;br /&gt;
npc.hidelocal()&lt;br /&gt;
npc.hideimg(index)&lt;br /&gt;
npc.hideimgs(startindex,endindex)&lt;br /&gt;
npc.hurt(power)&lt;br /&gt;
npc.ignoreevent(object name,event)&lt;br /&gt;
npc.ignoreevents(object name)&lt;br /&gt;
npc.lay(item name)&lt;br /&gt;
npc.message(text)&lt;br /&gt;
npc.move(delta x,delta y,time,options)&lt;br /&gt;
npc.setbow(image name)&lt;br /&gt;
npc.setcharani(ani name,parameters)&lt;br /&gt;
npc.setchargender(&amp;quot;male&amp;quot; or &amp;quot;female&amp;quot;)&lt;br /&gt;
npc.setcoloreffect(red,green,blue,alpha)&lt;br /&gt;
npc.seteffectmode(mode)&lt;br /&gt;
npc.setimg(image name)&lt;br /&gt;
npc.setimgpart(image name,x,y,width,height)&lt;br /&gt;
npc.setshape(type,pixelwidth,pixelheight)&lt;br /&gt;
npc.setshape2(tilewidth,tileheight,tilearray)&lt;br /&gt;
npc.setzoomeffect(zoom factor)&lt;br /&gt;
npc.shootarrow(direction)&lt;br /&gt;
npc.shootball()&lt;br /&gt;
npc.shootfireball(direction)&lt;br /&gt;
npc.shootfireblast(direction)&lt;br /&gt;
npc.shootnuke(direction)&lt;br /&gt;
npc.show()&lt;br /&gt;
npc.showani(index,x,y,direction,ani name,parameters)&lt;br /&gt;
npc.showani2(index,x,y,z,direction,ani name,parameters)&lt;br /&gt;
npc.showcharacter()&lt;br /&gt;
npc.showimg(index,image name,x,y)&lt;br /&gt;
npc.showimg2(index,image name,x,y,z)&lt;br /&gt;
npc.showlocal()&lt;br /&gt;
npc.showpoly(index,array)&lt;br /&gt;
npc.showpoly2(index,array)&lt;br /&gt;
npc.showtext(index,x,y,font,style,text)&lt;br /&gt;
npc.showtext2(index,x,y,z,font,style,text)&lt;br /&gt;
npc.take(item name)&lt;br /&gt;
npc.take2(item index)&lt;br /&gt;
npc.takehorse(horse index)&lt;br /&gt;
npc.throwcarry()&lt;br /&gt;
npc.timereverywhere()&lt;br /&gt;
npc.timershow()&lt;br /&gt;
npc.toweapons(weapon name)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Players ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
player.account - string, read only&lt;br /&gt;
player.ani - object, read only&lt;br /&gt;
player.anistep - integer, read only&lt;br /&gt;
player.ap - integer&lt;br /&gt;
player.attached - boolean, read only&lt;br /&gt;
player.attachid - integer, read only&lt;br /&gt;
player.attachtype - integer, read only&lt;br /&gt;
player.attr - array&lt;br /&gt;
player.body - object&lt;br /&gt;
player.bodyimg - string&lt;br /&gt;
player.bombs - integer&lt;br /&gt;
player.chat - string&lt;br /&gt;
player.colors - array&lt;br /&gt;
player.darts - integer&lt;br /&gt;
player.dir - integer&lt;br /&gt;
player.freezetime - floating point value, only valid for local players&lt;br /&gt;
player.fullhearts - integer, read only, better use player.maxhp&lt;br /&gt;
player.glovepower - integer&lt;br /&gt;
player.gralats - integer&lt;br /&gt;
player.head - object&lt;br /&gt;
player.headimg - string&lt;br /&gt;
player.headset - integer&lt;br /&gt;
player.hearts - floating point value, only editable for local players, better use player.hp&lt;br /&gt;
player.horseimg - string, only editable for local players&lt;br /&gt;
player.hp - floating point value, only editable for local players&lt;br /&gt;
player.hurt - boolean, read only, only valid for local players&lt;br /&gt;
player.hurtdx - floating point value, read only, only valid for local players&lt;br /&gt;
player.hurtdy - floating point value, read only, only valid for local players&lt;br /&gt;
player.hurted - boolean, read only, only valid for local players, better use player.hurt&lt;br /&gt;
player.hurtpower - floating point value, read only, only valid for local players&lt;br /&gt;
player.id - integer, read only&lt;br /&gt;
player.isfemale - boolean, read only&lt;br /&gt;
player.ismale - boolean, read only&lt;br /&gt;
player.letters - object, only valid for local players&lt;br /&gt;
player.level - object, read only&lt;br /&gt;
player.map - boolean, only valid for local players&lt;br /&gt;
player.maxhp - integer, read only&lt;br /&gt;
player.mp - integer&lt;br /&gt;
player.nick - string, read only for local players&lt;br /&gt;
player.onhorse - boolean, read only, only valid for local players&lt;br /&gt;
player.online - boolean, read only, only valid for local players&lt;br /&gt;
player.paused - boolean, read only, only valid for local players&lt;br /&gt;
player.reading - boolean, read only, only valid for local players&lt;br /&gt;
player.rupees - integer, better use player.gralats&lt;br /&gt;
player.shield - object&lt;br /&gt;
player.shieldimg - string&lt;br /&gt;
player.shieldpower - integer, read only&lt;br /&gt;
player.sprite - integer&lt;br /&gt;
player.swimming - boolean, read only, only valid for local players&lt;br /&gt;
player.sword - object&lt;br /&gt;
player.swordimg - string&lt;br /&gt;
player.swordpower - integer, read only&lt;br /&gt;
player.weapon - object, read only, only valid for local players&lt;br /&gt;
player.weapons - array, read only, only valid for local players&lt;br /&gt;
player.x - floating point value&lt;br /&gt;
player.y - floating point value&lt;br /&gt;
player.z - floating point value&lt;br /&gt;
&lt;br /&gt;
player.getimageforsprite(sprite) - returns object&lt;br /&gt;
player.getsprite(string) - returns object&lt;br /&gt;
player.getspriteforspritepos(spritepos) - returns object&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Levels ====&lt;br /&gt;
==== Ganis ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
e.g. player.ani&lt;br /&gt;
ani.name&lt;br /&gt;
ani.sprites[]&lt;br /&gt;
ani.steps[]&lt;br /&gt;
ani.continuous&lt;br /&gt;
ani.singledirection&lt;br /&gt;
ani.looping&lt;br /&gt;
ani.ismovie&lt;br /&gt;
ani.setbackto&lt;br /&gt;
ani.ganitype&lt;br /&gt;
ani.getsprite(id)&lt;br /&gt;
ani.addsprite(id) returns the added sprite&lt;br /&gt;
ani.deletesprite(id)&lt;br /&gt;
ani.addstep()&lt;br /&gt;
ani.insertstep(index)&lt;br /&gt;
ani.deletestep(index)&lt;br /&gt;
&lt;br /&gt;
sprites:&lt;br /&gt;
sprite.spriteindex&lt;br /&gt;
sprite.image&lt;br /&gt;
sprite.imagetype&lt;br /&gt;
sprite.x&lt;br /&gt;
sprite.y&lt;br /&gt;
sprite.width&lt;br /&gt;
sprite.height&lt;br /&gt;
sprite.red&lt;br /&gt;
sprite.green&lt;br /&gt;
sprite.blue&lt;br /&gt;
sprite.alpha&lt;br /&gt;
sprite.zoom&lt;br /&gt;
sprite.mode&lt;br /&gt;
sprite.surface&lt;br /&gt;
sprite.attachments[]&lt;br /&gt;
sprite.addattachment()&lt;br /&gt;
sprite.insertattachment(index)&lt;br /&gt;
sprite.deleteattachment(index)&lt;br /&gt;
&lt;br /&gt;
attachment:&lt;br /&gt;
attachment.sprite&lt;br /&gt;
attachment.dx&lt;br /&gt;
attachment.dy&lt;br /&gt;
attachment.behind&lt;br /&gt;
&lt;br /&gt;
step:&lt;br /&gt;
step.spritespos[][]&lt;br /&gt;
step.sounds[]&lt;br /&gt;
step.delay&lt;br /&gt;
step.addpos(dir)&lt;br /&gt;
step.insertpos(dir,index)&lt;br /&gt;
step.deletepos(dir,index)&lt;br /&gt;
&lt;br /&gt;
spritepos:&lt;br /&gt;
spritepos.sprite&lt;br /&gt;
spritepos.param&lt;br /&gt;
spritepos.attr&lt;br /&gt;
spritepos.dx&lt;br /&gt;
spritepos.dy&lt;br /&gt;
&lt;br /&gt;
sound:&lt;br /&gt;
sound.sound&lt;br /&gt;
sound.dx&lt;br /&gt;
sound.dy&lt;br /&gt;
sound.delay&lt;br /&gt;
&lt;br /&gt;
also the gani owners (players, npcs) have those functions:&lt;br /&gt;
getimageforsprite(sprite)&lt;br /&gt;
getsprite(string)&lt;br /&gt;
getspriteforspritepos(spritepos)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Standard functions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
format(format,parameters,...) - formats a &amp;quot;%s %d&amp;quot; string, inserts the parameters, and returns a string&lt;br /&gt;
int(a)&lt;br /&gt;
abs(a)&lt;br /&gt;
random(rangestart,rangeend)&lt;br /&gt;
sin(a)&lt;br /&gt;
cos(a)&lt;br /&gt;
arctan(a)&lt;br /&gt;
exp(a)&lt;br /&gt;
log(base,a)&lt;br /&gt;
min(a,b)&lt;br /&gt;
max(a,b)&lt;br /&gt;
getangle(delta x,delta y)&lt;br /&gt;
getdir(delta x,delta y)&lt;br /&gt;
vecx(direction)&lt;br /&gt;
vecy(direction)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Standard variables ===&lt;br /&gt;
&lt;br /&gt;
== GUI ==&lt;br /&gt;
&lt;br /&gt;
=== GUI controls ===&lt;br /&gt;
&lt;br /&gt;
=== GUI events ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
All controls:&lt;br /&gt;
onAdd() when added to the parent&lt;br /&gt;
onRemove() when removed from the parent&lt;br /&gt;
onWake() when activated&lt;br /&gt;
onSleep() when deactivated&lt;br /&gt;
onResize(w,h)&lt;br /&gt;
onMove(x,y)&lt;br /&gt;
onMouseEnter(modifier,x,y,clickcount)&lt;br /&gt;
onMouseLeave(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseMove(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelDown(modifier,x,y,clickcount)&lt;br /&gt;
onKeyDown(keycode,string)&lt;br /&gt;
onKeyUp(keycode,string)&lt;br /&gt;
onKeyRepeat(keycode,string)&lt;br /&gt;
&lt;br /&gt;
GuiMLTextCtrl:&lt;br /&gt;
onResize(w,h) when reflowing&lt;br /&gt;
onURL(url) when clicked on url&lt;br /&gt;
&lt;br /&gt;
GuiTextEditCtrl:&lt;br /&gt;
onTabComplete()&lt;br /&gt;
onAction(text) when return key pressed&lt;br /&gt;
&lt;br /&gt;
GuiTextListCtrl:&lt;br /&gt;
onSelect(id,text) when row selected&lt;br /&gt;
onDblClick(id) when double-click on row or return key pressed&lt;br /&gt;
onDeleteKey(id) when delete key pressed&lt;br /&gt;
onIconResized(w,h) when setIconSize() called&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&lt;br /&gt;
GuiPopUpMenuCtrl:&lt;br /&gt;
onSelect(id,text) when menu option choosen&lt;br /&gt;
onCancel() when menu is closed without action&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&lt;br /&gt;
GuiMenuBar:&lt;br /&gt;
onMenuSelect(menuid,menutext)&lt;br /&gt;
onMenuItemSelect(menuid,menutext,itemid,itemtext)&lt;br /&gt;
&lt;br /&gt;
GuiTreeViewCtrl:&lt;br /&gt;
onSelect(id,rightmouse) when row selected&lt;br /&gt;
onUnselect(id) when row de-selected&lt;br /&gt;
onInspect(id) when clicked on the name of an item&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
onContextMenu(&amp;quot;x y&amp;quot;,id) when clicked with right-mouse key on row&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1377</id>
		<title>Creation/Dev/GScript2</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1377"/>
		<updated>2005-02-06T16:57:20Z</updated>

		<summary type="html">&lt;p&gt;Evil: /* GUI events */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GScript 2 is the new scripting engine for [[Graal]]&lt;br /&gt;
&lt;br /&gt;
== Old Script Compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Removed functionality ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;toinventory&lt;br /&gt;
&amp;lt;li&amp;gt;followplayer&lt;br /&gt;
&amp;lt;li&amp;gt;playersays()&lt;br /&gt;
&amp;lt;li&amp;gt;setbackpal&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supported old scripting commands &amp;amp; their mapping to new script ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;addstring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;addstring(string,string);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;addtiledef oldstring, oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;addtiledef(string,string,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;addtiledef2 oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;addtiledef2(string,string,float,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;attachplayertoobj float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;attachplayertoobj(float,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;blockagain;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                blockagain();&lt;br /&gt;
&amp;lt;dt&amp;gt;blockagainlocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                blockagainlocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;callnpc float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                callnpc(float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;callweapon float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                callweapon(float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;canbecarried;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbecarried();&lt;br /&gt;
&amp;lt;dt&amp;gt;canbepulled;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbepulled();&lt;br /&gt;
&amp;lt;dt&amp;gt;canbepushed;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbepushed();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbecarried;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbecarried();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbepulled;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbepulled();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbepushed;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbepushed();&lt;br /&gt;
&amp;lt;dt&amp;gt;canwarp;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canwarp();&lt;br /&gt;
&amp;lt;dt&amp;gt;canwarp2;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canwarp2();&lt;br /&gt;
&amp;lt;dt&amp;gt;carryobject oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                carryobject(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgcolors float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgcolors(float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgmode float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgmode(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgpart float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgpart(float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgvis float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgvis(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgzoom float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgzoom(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;deletestring oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                deletestring(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;destroy;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                destroy();&lt;br /&gt;
&amp;lt;dt&amp;gt;detachplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                detachplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;disabledefmovement;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disabledefmovement();&lt;br /&gt;
&amp;lt;dt&amp;gt;disablemap;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disablemap();&lt;br /&gt;
&amp;lt;dt&amp;gt;disablepause;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disablepause();&lt;br /&gt;
&amp;lt;dt&amp;gt;disableselectweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disableselectweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;disableweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disableweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;dontblock;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                dontblock();&lt;br /&gt;
&amp;lt;dt&amp;gt;dontblocklocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                dontblocklocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawaslight;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawaslight();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawoverplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawoverplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawunderplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawunderplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;enabledefmovement;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enabledefmovement();&lt;br /&gt;
&amp;lt;dt&amp;gt;enablefeatures float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablefeatures(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;enablemap;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablemap();&lt;br /&gt;
&amp;lt;dt&amp;gt;enablepause;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablepause();&lt;br /&gt;
&amp;lt;dt&amp;gt;enableselectweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enableselectweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;enableweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enableweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;explodebomb float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                explodebomb(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;followplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                followplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;freezeplayer float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                freezeplayer(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;freezeplayer2;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                freezeplayer2();&lt;br /&gt;
&amp;lt;dt&amp;gt;hide;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hide();&lt;br /&gt;
&amp;lt;dt&amp;gt;hideimg float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideimg(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hideimgs float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideimgs(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hidelocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hidelocal();&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;hitcompu float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitcompu(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitnpc float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitnpc(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitobjects float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitobjects(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hideplayer float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideplayer(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hidesword float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hidesword(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitplayer float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitplayer(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hurt float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hurt(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;insertstring oldstring, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                insertstring(string,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;join oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                join(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;lay oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                lay(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;lay2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                lay2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;loadmap oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                loadmap(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;message oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                message(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;move float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                move(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;noplayerkilling;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                noplayerkilling();&lt;br /&gt;
&amp;lt;dt&amp;gt;openurl oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                openurl(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;openurl2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                openurl2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;play oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                play(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;play2 oldstring, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                play2(string,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;playlooped oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                playlooped(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;putbomb float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putbomb(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putcomp oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putcomp(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putexplosion float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putexplosion(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putexplosion2 float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putexplosion2(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;puthorse oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                puthorse(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putleaps float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putleaps(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnewcomp oldstring, float, float, oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnewcomp(string,float,float,string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnpc oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnpc(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnpc2 float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnpc2(float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;reflectarrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                reflectarrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removearrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removearrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removebomb float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removebomb(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removecompus;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removecompus();&lt;br /&gt;
&amp;lt;dt&amp;gt;removeexplo float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removeexplo(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removehorse float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removehorse(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removeitem float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removeitem(float)&lt;br /&gt;
&amp;lt;dt&amp;gt;removestring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removestring(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;removetiledefs oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removetiledefs(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;replaceani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                replaceani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;replacestring oldstring, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                replacestring(string,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;resetfocus;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                resetfocus();&lt;br /&gt;
&amp;lt;dt&amp;gt;savelog oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                savelog(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;savelog2 oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                savelog2(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;say float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                say(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;say2 oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                say2(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendrpgmessage oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendrpgmessage(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendpm oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendpm(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendtonc oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendtonc(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendtorc oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendtorc(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;serverwarp oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                serverwarp(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;set oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                set(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setarray float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setarray(var,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setbeltcolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setbeltcolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setbow oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setbow(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcharani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcharani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setchargender oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setchargender(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcharprop oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                string = string;&lt;br /&gt;
&amp;lt;dt&amp;gt;setcoatcolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcoatcolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcoloreffect float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcoloreffect(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcursor float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcursor(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcurcor2 oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcursor2(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;seteffect float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seteffect(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;seteffectmode float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seteffectmode(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setfocus float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setfocus(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setgender oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setgender(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sethead oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sethead(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setlevel oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setlevel(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setlevel2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setlevel2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setmap oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setmap(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setminimap oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setminimap(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setmusicvolume float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setmusicvolume(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setimg oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setimg(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setimgpart oldstring, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setimgpart(string,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setletters oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setletters(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setplayerdir oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setplayerdir(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setplayerprop oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                string = string;&lt;br /&gt;
&amp;lt;dt&amp;gt;setpm oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setpm(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshape float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshape(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshape2 float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshape2(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshield oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshield(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshoecolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshoecolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshootparams oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshootparams(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setskincolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setskincolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setsleevecolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setsleevecolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setstring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setstring(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setsword oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setsword(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;seturllevel oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seturllevel(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setz float, float, float, float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setz(float,float,float,float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setzoomeffect float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setzoomeffect(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shoot float, float, float, float, float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shoot(float,float,float,float,float,float,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootarrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootarrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootball;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootball();&lt;br /&gt;
&amp;lt;dt&amp;gt;shootfireball float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootfireball(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootfireblast float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootfireblast(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootnuke float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootnuke(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;show;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                show();&lt;br /&gt;
&amp;lt;dt&amp;gt;showani float, float, float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showani(float,float,float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showani2 float, float, float, float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showani2(float,float,float,float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showcharacter;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showcharacter();&lt;br /&gt;
&amp;lt;dt&amp;gt;showfile oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showfile(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showimg float, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showimg(float,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showimg2 float, oldstring, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showimg2(float,string,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showlocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showlocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;showpoly float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showpoly(float,array);&lt;br /&gt;
&amp;lt;dt&amp;gt;showpoly2 float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showpoly2(float,array);&lt;br /&gt;
&amp;lt;dt&amp;gt;showstats float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showstats(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showtext float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showtext(float,float,float,string,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showtext2 float, float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showtext2(float,float,float,float,string,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sleep float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sleep(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;spyfire float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                spyfire(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;stopmidi;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                stopmidi();&lt;br /&gt;
&amp;lt;dt&amp;gt;stopsound oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                stopsound(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;take oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                take(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;take2 float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                take2(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;takehorse float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takehorse(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;takeplayercarry;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takeplayercarry();&lt;br /&gt;
&amp;lt;dt&amp;gt;takeplayerhorse;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takeplayerhorse();&lt;br /&gt;
&amp;lt;dt&amp;gt;throwcarry;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                throwcarry();&lt;br /&gt;
&amp;lt;dt&amp;gt;timereverywhere;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                timereverywhere();&lt;br /&gt;
&amp;lt;dt&amp;gt;timershow;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                timershow();&lt;br /&gt;
&amp;lt;dt&amp;gt;toinventory oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                toinventory(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;tokenize oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = string.tokenize();&lt;br /&gt;
&amp;lt;dt&amp;gt;tokenize2 oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = string.tokenize(&amp;quot; ,&amp;quot; @ string);&lt;br /&gt;
&amp;lt;dt&amp;gt;toweapons oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                toweapons(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;triggeraction float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                triggeraction(float,float,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;unfreezeplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                unfreezeplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;unset oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                unset(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;updateboard float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                updateboard(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;updateterrain;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                updateterrain();&lt;br /&gt;
&amp;lt;dt&amp;gt;wraptext float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = wraptext(float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;wraptext2 float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = wraptext2(float,float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supported old string operations ===&lt;br /&gt;
&lt;br /&gt;
These old string operators can be used in string parameters for the old commands, also you can use them directly as operators, e.g.&amp;lt;br/&amp;gt;&lt;br /&gt;
#c = &amp;quot;hello&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
is actually doing&amp;lt;br/&amp;gt;&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#a            player.account&lt;br /&gt;
#a(float)     players[float].account&lt;br /&gt;
#m            player.ani&lt;br /&gt;
              ani&lt;br /&gt;
#m(float)     players[float].ani&lt;br /&gt;
#K(float)     ascii(float)&lt;br /&gt;
#8            player.bodyimg&lt;br /&gt;
              bodyimg&lt;br /&gt;
#8(float)     players[float].bodyimg&lt;br /&gt;
#c            player.chat&lt;br /&gt;
              chat&lt;br /&gt;
#c(float)     players[float].chat&lt;br /&gt;
#C0           player.colors[0]&lt;br /&gt;
              colors[0]&lt;br /&gt;
#C0(float)    players[float].colors[0]&lt;br /&gt;
#C1           player.colors[1]&lt;br /&gt;
              colors[1]&lt;br /&gt;
#C1(float)    players[float].colors[1]&lt;br /&gt;
#C2           player.colors[2]&lt;br /&gt;
              colors[2]&lt;br /&gt;
#C2(float)    players[float].colors[2]&lt;br /&gt;
#C3           player.colors[3]&lt;br /&gt;
              colors[3]&lt;br /&gt;
#C3(float)    players[float].colors[3]&lt;br /&gt;
#C4           player.colors[4]&lt;br /&gt;
              colors[4]&lt;br /&gt;
#C4(float)    players[float].colors[4]&lt;br /&gt;
#C5           player.colors[5]&lt;br /&gt;
              colors[5]&lt;br /&gt;
#C5(float)    players[float].colors[5]&lt;br /&gt;
#D            downloadfile()&lt;br /&gt;
#E            emoticonchar()&lt;br /&gt;
#e(float,float,oldstring)&lt;br /&gt;
              string.substring(float,float)&lt;br /&gt;
#g            player.guild&lt;br /&gt;
              guild&lt;br /&gt;
#g(float)     players[float].guild&lt;br /&gt;
#3            player.headimg&lt;br /&gt;
              headimg&lt;br /&gt;
#3(float)     players[float].headimg&lt;br /&gt;
#5            player.horseimg&lt;br /&gt;
              horseimg&lt;br /&gt;
#5(float)     players[float].horseimg&lt;br /&gt;
#k(float)     keyname(float)&lt;br /&gt;
#L            player.level&lt;br /&gt;
#I(oldstring,float)&lt;br /&gt;
              getstring(string)[float]&lt;br /&gt;
#n            player.nick&lt;br /&gt;
              nick&lt;br /&gt;
#n(float)     players[float].nick&lt;br /&gt;
#f            image&lt;br /&gt;
#f(float)     npcs[float].image&lt;br /&gt;
#F            level&lt;br /&gt;
#p(float)     params[float]&lt;br /&gt;
#P(float)     player.attr[float]&lt;br /&gt;
              attr[float]&lt;br /&gt;
#P(float,float)&lt;br /&gt;
              players[float].attr[float]&lt;br /&gt;
#P1           player.attr[1]&lt;br /&gt;
              attr[1]&lt;br /&gt;
#P1(float)    players[float].attr[1]&lt;br /&gt;
#P2           player.attr[2]&lt;br /&gt;
              attr[2]&lt;br /&gt;
#P2(float)    players[float].attr[2]&lt;br /&gt;
#P3           player.attr[3]&lt;br /&gt;
              attr[3]&lt;br /&gt;
#P3(float)    players[float].attr[3]&lt;br /&gt;
#P4           player.attr[4]&lt;br /&gt;
              attr[4]&lt;br /&gt;
#P4(float)    players[float].attr[4]&lt;br /&gt;
#P5           player.attr[5]&lt;br /&gt;
              attr[5]&lt;br /&gt;
#P5(float)    players[float].attr[5]&lt;br /&gt;
#P6           player.attr[6]&lt;br /&gt;
              attr[6]&lt;br /&gt;
#P6(float)    players[float].attr[6]&lt;br /&gt;
#P7           player.attr[7]&lt;br /&gt;
              attr[7]&lt;br /&gt;
#P7(float)    players[float].attr[7]&lt;br /&gt;
#P8           player.attr[8]&lt;br /&gt;
              attr[8]&lt;br /&gt;
#P8(float)    players[float].attr[8]&lt;br /&gt;
#P9           player.attr[9]&lt;br /&gt;
              attr[9]&lt;br /&gt;
#P9(float)    players[float].attr[9]&lt;br /&gt;
#R(oldstring) string.random()&lt;br /&gt;
#2            player.shieldimg&lt;br /&gt;
              shieldimg&lt;br /&gt;
#2(float)     players[float].shieldimg&lt;br /&gt;
#s(oldstring) getstring(string)&lt;br /&gt;
#1            player.swordimg&lt;br /&gt;
              swordimg&lt;br /&gt;
#1(float)     players[float].swordimg&lt;br /&gt;
#S            player.sword.script&lt;br /&gt;
#t(float)     tokens[float]&lt;br /&gt;
#T(oldstring) string.trim()&lt;br /&gt;
#v(float)     float&lt;br /&gt;
#W            player.weapon.icon&lt;br /&gt;
#W(float)     weapons[float].icon&lt;br /&gt;
#w            player.weapon.script&lt;br /&gt;
#w(float)     weapons[float].script&lt;br /&gt;
&lt;br /&gt;
Compatibility note:&lt;br /&gt;
When you use the command setcharprop then the first parameter&lt;br /&gt;
is handled differently: instead of changing 'player.chat' it&lt;br /&gt;
is changing 'chat', the chat text of the npc. So 'setcharprop #c,hello'&lt;br /&gt;
would be translated into&lt;br /&gt;
chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
while 'setplayerprop #c,hello' is translated into&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
In the list above both possibilities are listed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Old Script Compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Operators ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Addition                  a + b&lt;br /&gt;
Substraction              a - b&lt;br /&gt;
Mulitplication            a * b&lt;br /&gt;
Division                  a / b&lt;br /&gt;
Modulus                   a % b&lt;br /&gt;
Power                     a ^ b&lt;br /&gt;
String Concationation     a @ b&lt;br /&gt;
Bool-And                  a &amp;amp;&amp;amp; b&lt;br /&gt;
Bool-Or                   a || b&lt;br /&gt;
Bool-Not                  !a&lt;br /&gt;
Negative                  -a&lt;br /&gt;
Equal                     a == b&lt;br /&gt;
Not-Equal                 a != b&lt;br /&gt;
Less                      a &amp;lt; b&lt;br /&gt;
Greater                   a &amp;gt; b&lt;br /&gt;
Less-Equal                a &amp;lt;= b,  a =&amp;lt; b&lt;br /&gt;
Greater-Equal             a &amp;gt;= b,  a =&amp;gt; b&lt;br /&gt;
In-Range                  a in &amp;lt;b,c&amp;gt;, a in |b,c&amp;gt;, a in &amp;lt;b,c|, a in |b,c|&lt;br /&gt;
In-Array                  a in {b,c,...}, {a,b,...} in {c,d,...}&lt;br /&gt;
Array-Constructor         {a,b,...}&lt;br /&gt;
Empty Array               new [count]&lt;br /&gt;
Array Member              a[index]&lt;br /&gt;
Function call             a(), a(b,c,...)&lt;br /&gt;
Object Attribute          a.b, a.(b)&lt;br /&gt;
Post Increment            a++&lt;br /&gt;
Post Decrement            a--&lt;br /&gt;
Pre Increment             ++a&lt;br /&gt;
Pre Decrement             --a&lt;br /&gt;
Old String Function       #a&lt;br /&gt;
Conditional               a? b : c&lt;br /&gt;
Assignment                a = b, a := b&lt;br /&gt;
Additive Assignment       a += b&lt;br /&gt;
Substractive Assignment   a -= b&lt;br /&gt;
Multiplicative Assignment a *= b&lt;br /&gt;
Division Assignment       a /= b&lt;br /&gt;
Modulus Assignment        a %= b&lt;br /&gt;
Power Assignment          a ^= b&lt;br /&gt;
String Append             a @= b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Accessing Variables ===&lt;br /&gt;
&lt;br /&gt;
Graal Script variables are 'variant', that means they are objects&lt;br /&gt;
that hold values of different types.&lt;br /&gt;
When you assign a value to the variable then it automatically&lt;br /&gt;
switches to the right type:&lt;br /&gt;
&lt;br /&gt;
Numeric (floating point):&lt;br /&gt;
  var = 1;&lt;br /&gt;
String:&lt;br /&gt;
  var = &amp;quot;hello&amp;quot;;&lt;br /&gt;
Object link:&lt;br /&gt;
  var = player;&lt;br /&gt;
Array (list of objects):&lt;br /&gt;
  var = {1,2,3};&lt;br /&gt;
&lt;br /&gt;
You can check the current type with the&lt;br /&gt;
type()-function - obj.type() returns&lt;br /&gt;
0,1,2,3 for numeric, string, object or array.&lt;br /&gt;
&lt;br /&gt;
=== Standard Object Functions ===&lt;br /&gt;
&lt;br /&gt;
obj.name&lt;br /&gt;
obj.type()  - gets the type of the var (float 0, string 1, object 2, array 3)&lt;br /&gt;
obj.length() - string length&lt;br /&gt;
obj.trim()&lt;br /&gt;
obj.tokenize([delimiters])&lt;br /&gt;
obj.charat(pos)&lt;br /&gt;
obj.pos(substring)&lt;br /&gt;
obj.beginswith(string)&lt;br /&gt;
obj.endson(string)&lt;br /&gt;
obj.substring(index[,length])&lt;br /&gt;
obj.size() - array length&lt;br /&gt;
obj.index(obj2) - position of obj2 in the array&lt;br /&gt;
obj.clear()&lt;br /&gt;
obj.add(obj2)&lt;br /&gt;
obj.delete(index)&lt;br /&gt;
obj.remove(obj2)&lt;br /&gt;
obj.replace(index,obj2)&lt;br /&gt;
obj.insert(index,obj2)&lt;br /&gt;
obj.getvarnames() - list of the object attributes&lt;br /&gt;
obj.geteditvarnames()&lt;br /&gt;
obj.loadstring(filename)&lt;br /&gt;
obj.loadlines(filename)&lt;br /&gt;
obj.loadvars(filename)&lt;br /&gt;
obj.savestring(filename,mode)&lt;br /&gt;
obj.savelines(filename,mode)&lt;br /&gt;
obj.savevars(filename,mode)&lt;br /&gt;
&lt;br /&gt;
==== NPCs ====&lt;br /&gt;
&lt;br /&gt;
npc.actionplayer - integer, read only&lt;br /&gt;
npc.ani - object, read only&lt;br /&gt;
npc.anistep - integer, read only&lt;br /&gt;
npc.ap - integer&lt;br /&gt;
npc.attr - array&lt;br /&gt;
npc.attached - boolean, read only&lt;br /&gt;
npc.attachid - integer, read only&lt;br /&gt;
npc.attachtype - integer, read only&lt;br /&gt;
npc.body - object&lt;br /&gt;
npc.bodyimg - string&lt;br /&gt;
npc.bombs - integer&lt;br /&gt;
npc.chat - string&lt;br /&gt;
npc.colors - array&lt;br /&gt;
npc.darts - integer&lt;br /&gt;
npc.dir - integer&lt;br /&gt;
npc.glovepower - integer&lt;br /&gt;
npc.gralats - integer&lt;br /&gt;
npc.head - object&lt;br /&gt;
npc.headimg - string&lt;br /&gt;
npc.headset - integer&lt;br /&gt;
npc.hearts - floating point value, better use npc.hp&lt;br /&gt;
npc.height - floating point value, read only&lt;br /&gt;
npc.horseimg - string&lt;br /&gt;
npc.hp - floating point value&lt;br /&gt;
npc.hurtdx - floating point value&lt;br /&gt;
npc.hurtdy - floating point value&lt;br /&gt;
npc.id - integer, read only&lt;br /&gt;
npc.isfemale - boolean, read only&lt;br /&gt;
npc.ismale - boolean, read only&lt;br /&gt;
npc.isweapon - boolean, read only&lt;br /&gt;
npc.layer - integer&lt;br /&gt;
npc.mp - integer&lt;br /&gt;
npc.nick - string&lt;br /&gt;
npc.peltwithnpc - boolean, read only&lt;br /&gt;
npc.peltwithbush - boolean, read only&lt;br /&gt;
npc.peltwithsign - boolean, read only&lt;br /&gt;
npc.peltwithvase - boolean, read only&lt;br /&gt;
npc.peltwithstone - boolean, read only&lt;br /&gt;
npc.peltwithblackstone - boolean, read only&lt;br /&gt;
npc.rupees - integer, better use npc.gralats&lt;br /&gt;
npc.shield - object&lt;br /&gt;
npc.shieldimg - string&lt;br /&gt;
npc.shieldpower - integer&lt;br /&gt;
npc.sprite - integer&lt;br /&gt;
npc.sword - object&lt;br /&gt;
npc.swordimg - string&lt;br /&gt;
npc.swordpower - integer&lt;br /&gt;
npc.timeout - floating point value&lt;br /&gt;
npc.visible - boolean&lt;br /&gt;
npc.width - floating point value, read only&lt;br /&gt;
npc.x - floating point value&lt;br /&gt;
npc.y - floating point value&lt;br /&gt;
npc.z - floating point value&lt;br /&gt;
&lt;br /&gt;
npc.blockagain()&lt;br /&gt;
npc.blockagainlocal()&lt;br /&gt;
npc.canbecarried()&lt;br /&gt;
npc.cannotbecarried()&lt;br /&gt;
npc.canbepushed()&lt;br /&gt;
npc.cannotbepushed()&lt;br /&gt;
npc.canbepulled()&lt;br /&gt;
npc.cannotbepulled()&lt;br /&gt;
npc.carryobject(name)&lt;br /&gt;
npc.catchevent(object name,event,function)&lt;br /&gt;
npc.changeimgcolors(index,red,green,blue,alpha)&lt;br /&gt;
npc.changeimgmode(index,mode)&lt;br /&gt;
npc.changeimgpart(index,x,y,width,height)&lt;br /&gt;
npc.changeimgvis(index,layer)&lt;br /&gt;
npc.changeimgzoom(index,zoom factor)&lt;br /&gt;
npc.destroy()&lt;br /&gt;
npc.dontblock()&lt;br /&gt;
npc.dontblocklocal()&lt;br /&gt;
npc.drawaslight()&lt;br /&gt;
npc.drawoverplayer()&lt;br /&gt;
npc.drawunderplayer()&lt;br /&gt;
npc.getimageforsprite(sprite) - returns image&lt;br /&gt;
npc.getsprite(string) - returns sprite&lt;br /&gt;
npc.getspriteforspritepos(spritepos) - returns sprite&lt;br /&gt;
npc.hide()&lt;br /&gt;
npc.hidelocal()&lt;br /&gt;
npc.hideimg(index)&lt;br /&gt;
npc.hideimgs(startindex,endindex)&lt;br /&gt;
npc.hurt(power)&lt;br /&gt;
npc.ignoreevent(object name,event)&lt;br /&gt;
npc.ignoreevents(object name)&lt;br /&gt;
npc.lay(item name)&lt;br /&gt;
npc.message(text)&lt;br /&gt;
npc.move(delta x,delta y,time,options)&lt;br /&gt;
npc.setbow(image name)&lt;br /&gt;
npc.setcharani(ani name,parameters)&lt;br /&gt;
npc.setchargender(&amp;quot;male&amp;quot; or &amp;quot;female&amp;quot;)&lt;br /&gt;
npc.setcoloreffect(red,green,blue,alpha)&lt;br /&gt;
npc.seteffectmode(mode)&lt;br /&gt;
npc.setimg(image name)&lt;br /&gt;
npc.setimgpart(image name,x,y,width,height)&lt;br /&gt;
npc.setshape(type,pixelwidth,pixelheight)&lt;br /&gt;
npc.setshape2(tilewidth,tileheight,tilearray)&lt;br /&gt;
npc.setzoomeffect(zoom factor)&lt;br /&gt;
npc.shootarrow(direction)&lt;br /&gt;
npc.shootball()&lt;br /&gt;
npc.shootfireball(direction)&lt;br /&gt;
npc.shootfireblast(direction)&lt;br /&gt;
npc.shootnuke(direction)&lt;br /&gt;
npc.show()&lt;br /&gt;
npc.showani(index,x,y,direction,ani name,parameters)&lt;br /&gt;
npc.showani2(index,x,y,z,direction,ani name,parameters)&lt;br /&gt;
npc.showcharacter()&lt;br /&gt;
npc.showimg(index,image name,x,y)&lt;br /&gt;
npc.showimg2(index,image name,x,y,z)&lt;br /&gt;
npc.showlocal()&lt;br /&gt;
npc.showpoly(index,array)&lt;br /&gt;
npc.showpoly2(index,array)&lt;br /&gt;
npc.showtext(index,x,y,font,style,text)&lt;br /&gt;
npc.showtext2(index,x,y,z,font,style,text)&lt;br /&gt;
npc.take(item name)&lt;br /&gt;
npc.take2(item index)&lt;br /&gt;
npc.takehorse(horse index)&lt;br /&gt;
npc.throwcarry()&lt;br /&gt;
npc.timereverywhere()&lt;br /&gt;
npc.timershow()&lt;br /&gt;
npc.toweapons(weapon name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Players ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
player.account - string, read only&lt;br /&gt;
player.ani - object, read only&lt;br /&gt;
player.anistep - integer, read only&lt;br /&gt;
player.ap - integer&lt;br /&gt;
player.attached - boolean, read only&lt;br /&gt;
player.attachid - integer, read only&lt;br /&gt;
player.attachtype - integer, read only&lt;br /&gt;
player.attr - array&lt;br /&gt;
player.body - object&lt;br /&gt;
player.bodyimg - string&lt;br /&gt;
player.bombs - integer&lt;br /&gt;
player.chat - string&lt;br /&gt;
player.colors - array&lt;br /&gt;
player.darts - integer&lt;br /&gt;
player.dir - integer&lt;br /&gt;
player.freezetime - floating point value, only valid for local players&lt;br /&gt;
player.fullhearts - integer, read only, better use player.maxhp&lt;br /&gt;
player.glovepower - integer&lt;br /&gt;
player.gralats - integer&lt;br /&gt;
player.head - object&lt;br /&gt;
player.headimg - string&lt;br /&gt;
player.headset - integer&lt;br /&gt;
player.hearts - floating point value, only editable for local players, better use player.hp&lt;br /&gt;
player.horseimg - string, only editable for local players&lt;br /&gt;
player.hp - floating point value, only editable for local players&lt;br /&gt;
player.hurt - boolean, read only, only valid for local players&lt;br /&gt;
player.hurtdx - floating point value, read only, only valid for local players&lt;br /&gt;
player.hurtdy - floating point value, read only, only valid for local players&lt;br /&gt;
player.hurted - boolean, read only, only valid for local players, better use player.hurt&lt;br /&gt;
player.hurtpower - floating point value, read only, only valid for local players&lt;br /&gt;
player.id - integer, read only&lt;br /&gt;
player.isfemale - boolean, read only&lt;br /&gt;
player.ismale - boolean, read only&lt;br /&gt;
player.letters - object, only valid for local players&lt;br /&gt;
player.level - object, read only&lt;br /&gt;
player.map - boolean, only valid for local players&lt;br /&gt;
player.maxhp - integer, read only&lt;br /&gt;
player.mp - integer&lt;br /&gt;
player.nick - string, read only for local players&lt;br /&gt;
player.onhorse - boolean, read only, only valid for local players&lt;br /&gt;
player.online - boolean, read only, only valid for local players&lt;br /&gt;
player.paused - boolean, read only, only valid for local players&lt;br /&gt;
player.reading - boolean, read only, only valid for local players&lt;br /&gt;
player.rupees - integer, better use player.gralats&lt;br /&gt;
player.shield - object&lt;br /&gt;
player.shieldimg - string&lt;br /&gt;
player.shieldpower - integer, read only&lt;br /&gt;
player.sprite - integer&lt;br /&gt;
player.swimming - boolean, read only, only valid for local players&lt;br /&gt;
player.sword - object&lt;br /&gt;
player.swordimg - string&lt;br /&gt;
player.swordpower - integer, read only&lt;br /&gt;
player.weapon - object, read only, only valid for local players&lt;br /&gt;
player.weapons - array, read only, only valid for local players&lt;br /&gt;
player.x - floating point value&lt;br /&gt;
player.y - floating point value&lt;br /&gt;
player.z - floating point value&lt;br /&gt;
&lt;br /&gt;
player.getimageforsprite(sprite) - returns object&lt;br /&gt;
player.getsprite(string) - returns object&lt;br /&gt;
player.getspriteforspritepos(spritepos) - returns object&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Levels ====&lt;br /&gt;
==== Ganis ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
e.g. player.ani&lt;br /&gt;
ani.name&lt;br /&gt;
ani.sprites[]&lt;br /&gt;
ani.steps[]&lt;br /&gt;
ani.continuous&lt;br /&gt;
ani.singledirection&lt;br /&gt;
ani.looping&lt;br /&gt;
ani.ismovie&lt;br /&gt;
ani.setbackto&lt;br /&gt;
ani.ganitype&lt;br /&gt;
ani.getsprite(id)&lt;br /&gt;
ani.addsprite(id) returns the added sprite&lt;br /&gt;
ani.deletesprite(id)&lt;br /&gt;
ani.addstep()&lt;br /&gt;
ani.insertstep(index)&lt;br /&gt;
ani.deletestep(index)&lt;br /&gt;
&lt;br /&gt;
sprites:&lt;br /&gt;
sprite.spriteindex&lt;br /&gt;
sprite.image&lt;br /&gt;
sprite.imagetype&lt;br /&gt;
sprite.x&lt;br /&gt;
sprite.y&lt;br /&gt;
sprite.width&lt;br /&gt;
sprite.height&lt;br /&gt;
sprite.red&lt;br /&gt;
sprite.green&lt;br /&gt;
sprite.blue&lt;br /&gt;
sprite.alpha&lt;br /&gt;
sprite.zoom&lt;br /&gt;
sprite.mode&lt;br /&gt;
sprite.surface&lt;br /&gt;
sprite.attachments[]&lt;br /&gt;
sprite.addattachment()&lt;br /&gt;
sprite.insertattachment(index)&lt;br /&gt;
sprite.deleteattachment(index)&lt;br /&gt;
&lt;br /&gt;
attachment:&lt;br /&gt;
attachment.sprite&lt;br /&gt;
attachment.dx&lt;br /&gt;
attachment.dy&lt;br /&gt;
attachment.behind&lt;br /&gt;
&lt;br /&gt;
step:&lt;br /&gt;
step.spritespos[][]&lt;br /&gt;
step.sounds[]&lt;br /&gt;
step.delay&lt;br /&gt;
step.addpos(dir)&lt;br /&gt;
step.insertpos(dir,index)&lt;br /&gt;
step.deletepos(dir,index)&lt;br /&gt;
&lt;br /&gt;
spritepos:&lt;br /&gt;
spritepos.sprite&lt;br /&gt;
spritepos.param&lt;br /&gt;
spritepos.attr&lt;br /&gt;
spritepos.dx&lt;br /&gt;
spritepos.dy&lt;br /&gt;
&lt;br /&gt;
sound:&lt;br /&gt;
sound.sound&lt;br /&gt;
sound.dx&lt;br /&gt;
sound.dy&lt;br /&gt;
sound.delay&lt;br /&gt;
&lt;br /&gt;
also the gani owners (players, npcs) have those functions:&lt;br /&gt;
getimageforsprite(sprite)&lt;br /&gt;
getsprite(string)&lt;br /&gt;
getspriteforspritepos(spritepos)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Standard functions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
format(format,parameters,...) - formats a &amp;quot;%s %d&amp;quot; string, inserts the parameters, and returns a string&lt;br /&gt;
int(a)&lt;br /&gt;
abs(a)&lt;br /&gt;
random(rangestart,rangeend)&lt;br /&gt;
sin(a)&lt;br /&gt;
cos(a)&lt;br /&gt;
arctan(a)&lt;br /&gt;
exp(a)&lt;br /&gt;
log(base,a)&lt;br /&gt;
min(a,b)&lt;br /&gt;
max(a,b)&lt;br /&gt;
getangle(delta x,delta y)&lt;br /&gt;
getdir(delta x,delta y)&lt;br /&gt;
vecx(direction)&lt;br /&gt;
vecy(direction)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Standard variables ===&lt;br /&gt;
&lt;br /&gt;
== GUI ==&lt;br /&gt;
&lt;br /&gt;
=== GUI controls ===&lt;br /&gt;
&lt;br /&gt;
=== GUI events ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
All controls:&lt;br /&gt;
onAdd() when added to the parent&lt;br /&gt;
onRemove() when removed from the parent&lt;br /&gt;
onWake() when activated&lt;br /&gt;
onSleep() when deactivated&lt;br /&gt;
onResize(w,h)&lt;br /&gt;
onMove(x,y)&lt;br /&gt;
onMouseEnter(modifier,x,y,clickcount)&lt;br /&gt;
onMouseLeave(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseMove(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelDown(modifier,x,y,clickcount)&lt;br /&gt;
onKeyDown(keycode,string)&lt;br /&gt;
onKeyUp(keycode,string)&lt;br /&gt;
onKeyRepeat(keycode,string)&lt;br /&gt;
&lt;br /&gt;
GuiMLTextCtrl:&lt;br /&gt;
onResize(w,h) when reflowing&lt;br /&gt;
onURL(url) when clicked on url&lt;br /&gt;
&lt;br /&gt;
GuiTextEditCtrl:&lt;br /&gt;
onTabComplete()&lt;br /&gt;
onAction(text) when return key pressed&lt;br /&gt;
&lt;br /&gt;
GuiTextListCtrl:&lt;br /&gt;
onSelect(id,text) when row selected&lt;br /&gt;
onDblClick(id) when double-click on row or return key pressed&lt;br /&gt;
onDeleteKey(id) when delete key pressed&lt;br /&gt;
onIconResized(w,h) when setIconSize() called&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&lt;br /&gt;
GuiPopUpMenuCtrl:&lt;br /&gt;
onSelect(id,text) when menu option choosen&lt;br /&gt;
onCancel() when menu is closed without action&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&lt;br /&gt;
GuiMenuBar:&lt;br /&gt;
onMenuSelect(menuid,menutext)&lt;br /&gt;
onMenuItemSelect(menuid,menutext,itemid,itemtext)&lt;br /&gt;
&lt;br /&gt;
GuiTreeViewCtrl:&lt;br /&gt;
onSelect(id,rightmouse) when row selected&lt;br /&gt;
onUnselect(id) when row de-selected&lt;br /&gt;
onInspect(id) when clicked on the name of an item&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
onContextMenu(&amp;quot;x y&amp;quot;,id) when clicked with right-mouse key on row&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1376</id>
		<title>Creation/Dev/GScript2</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1376"/>
		<updated>2005-02-06T16:57:09Z</updated>

		<summary type="html">&lt;p&gt;Evil: /* Standard functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GScript 2 is the new scripting engine for [[Graal]]&lt;br /&gt;
&lt;br /&gt;
== Old Script Compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Removed functionality ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;toinventory&lt;br /&gt;
&amp;lt;li&amp;gt;followplayer&lt;br /&gt;
&amp;lt;li&amp;gt;playersays()&lt;br /&gt;
&amp;lt;li&amp;gt;setbackpal&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supported old scripting commands &amp;amp; their mapping to new script ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;addstring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;addstring(string,string);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;addtiledef oldstring, oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;addtiledef(string,string,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;addtiledef2 oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;addtiledef2(string,string,float,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;attachplayertoobj float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;attachplayertoobj(float,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;blockagain;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                blockagain();&lt;br /&gt;
&amp;lt;dt&amp;gt;blockagainlocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                blockagainlocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;callnpc float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                callnpc(float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;callweapon float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                callweapon(float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;canbecarried;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbecarried();&lt;br /&gt;
&amp;lt;dt&amp;gt;canbepulled;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbepulled();&lt;br /&gt;
&amp;lt;dt&amp;gt;canbepushed;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbepushed();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbecarried;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbecarried();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbepulled;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbepulled();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbepushed;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbepushed();&lt;br /&gt;
&amp;lt;dt&amp;gt;canwarp;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canwarp();&lt;br /&gt;
&amp;lt;dt&amp;gt;canwarp2;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canwarp2();&lt;br /&gt;
&amp;lt;dt&amp;gt;carryobject oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                carryobject(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgcolors float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgcolors(float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgmode float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgmode(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgpart float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgpart(float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgvis float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgvis(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgzoom float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgzoom(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;deletestring oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                deletestring(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;destroy;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                destroy();&lt;br /&gt;
&amp;lt;dt&amp;gt;detachplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                detachplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;disabledefmovement;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disabledefmovement();&lt;br /&gt;
&amp;lt;dt&amp;gt;disablemap;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disablemap();&lt;br /&gt;
&amp;lt;dt&amp;gt;disablepause;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disablepause();&lt;br /&gt;
&amp;lt;dt&amp;gt;disableselectweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disableselectweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;disableweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disableweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;dontblock;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                dontblock();&lt;br /&gt;
&amp;lt;dt&amp;gt;dontblocklocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                dontblocklocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawaslight;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawaslight();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawoverplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawoverplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawunderplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawunderplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;enabledefmovement;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enabledefmovement();&lt;br /&gt;
&amp;lt;dt&amp;gt;enablefeatures float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablefeatures(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;enablemap;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablemap();&lt;br /&gt;
&amp;lt;dt&amp;gt;enablepause;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablepause();&lt;br /&gt;
&amp;lt;dt&amp;gt;enableselectweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enableselectweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;enableweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enableweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;explodebomb float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                explodebomb(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;followplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                followplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;freezeplayer float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                freezeplayer(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;freezeplayer2;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                freezeplayer2();&lt;br /&gt;
&amp;lt;dt&amp;gt;hide;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hide();&lt;br /&gt;
&amp;lt;dt&amp;gt;hideimg float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideimg(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hideimgs float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideimgs(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hidelocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hidelocal();&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;hitcompu float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitcompu(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitnpc float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitnpc(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitobjects float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitobjects(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hideplayer float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideplayer(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hidesword float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hidesword(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitplayer float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitplayer(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hurt float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hurt(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;insertstring oldstring, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                insertstring(string,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;join oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                join(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;lay oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                lay(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;lay2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                lay2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;loadmap oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                loadmap(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;message oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                message(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;move float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                move(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;noplayerkilling;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                noplayerkilling();&lt;br /&gt;
&amp;lt;dt&amp;gt;openurl oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                openurl(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;openurl2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                openurl2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;play oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                play(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;play2 oldstring, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                play2(string,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;playlooped oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                playlooped(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;putbomb float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putbomb(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putcomp oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putcomp(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putexplosion float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putexplosion(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putexplosion2 float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putexplosion2(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;puthorse oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                puthorse(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putleaps float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putleaps(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnewcomp oldstring, float, float, oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnewcomp(string,float,float,string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnpc oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnpc(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnpc2 float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnpc2(float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;reflectarrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                reflectarrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removearrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removearrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removebomb float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removebomb(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removecompus;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removecompus();&lt;br /&gt;
&amp;lt;dt&amp;gt;removeexplo float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removeexplo(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removehorse float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removehorse(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removeitem float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removeitem(float)&lt;br /&gt;
&amp;lt;dt&amp;gt;removestring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removestring(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;removetiledefs oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removetiledefs(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;replaceani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                replaceani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;replacestring oldstring, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                replacestring(string,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;resetfocus;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                resetfocus();&lt;br /&gt;
&amp;lt;dt&amp;gt;savelog oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                savelog(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;savelog2 oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                savelog2(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;say float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                say(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;say2 oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                say2(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendrpgmessage oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendrpgmessage(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendpm oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendpm(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendtonc oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendtonc(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendtorc oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendtorc(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;serverwarp oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                serverwarp(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;set oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                set(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setarray float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setarray(var,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setbeltcolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setbeltcolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setbow oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setbow(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcharani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcharani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setchargender oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setchargender(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcharprop oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                string = string;&lt;br /&gt;
&amp;lt;dt&amp;gt;setcoatcolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcoatcolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcoloreffect float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcoloreffect(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcursor float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcursor(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcurcor2 oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcursor2(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;seteffect float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seteffect(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;seteffectmode float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seteffectmode(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setfocus float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setfocus(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setgender oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setgender(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sethead oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sethead(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setlevel oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setlevel(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setlevel2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setlevel2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setmap oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setmap(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setminimap oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setminimap(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setmusicvolume float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setmusicvolume(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setimg oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setimg(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setimgpart oldstring, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setimgpart(string,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setletters oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setletters(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setplayerdir oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setplayerdir(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setplayerprop oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                string = string;&lt;br /&gt;
&amp;lt;dt&amp;gt;setpm oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setpm(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshape float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshape(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshape2 float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshape2(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshield oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshield(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshoecolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshoecolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshootparams oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshootparams(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setskincolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setskincolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setsleevecolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setsleevecolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setstring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setstring(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setsword oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setsword(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;seturllevel oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seturllevel(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setz float, float, float, float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setz(float,float,float,float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setzoomeffect float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setzoomeffect(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shoot float, float, float, float, float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shoot(float,float,float,float,float,float,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootarrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootarrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootball;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootball();&lt;br /&gt;
&amp;lt;dt&amp;gt;shootfireball float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootfireball(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootfireblast float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootfireblast(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootnuke float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootnuke(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;show;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                show();&lt;br /&gt;
&amp;lt;dt&amp;gt;showani float, float, float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showani(float,float,float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showani2 float, float, float, float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showani2(float,float,float,float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showcharacter;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showcharacter();&lt;br /&gt;
&amp;lt;dt&amp;gt;showfile oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showfile(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showimg float, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showimg(float,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showimg2 float, oldstring, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showimg2(float,string,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showlocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showlocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;showpoly float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showpoly(float,array);&lt;br /&gt;
&amp;lt;dt&amp;gt;showpoly2 float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showpoly2(float,array);&lt;br /&gt;
&amp;lt;dt&amp;gt;showstats float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showstats(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showtext float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showtext(float,float,float,string,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showtext2 float, float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showtext2(float,float,float,float,string,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sleep float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sleep(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;spyfire float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                spyfire(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;stopmidi;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                stopmidi();&lt;br /&gt;
&amp;lt;dt&amp;gt;stopsound oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                stopsound(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;take oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                take(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;take2 float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                take2(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;takehorse float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takehorse(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;takeplayercarry;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takeplayercarry();&lt;br /&gt;
&amp;lt;dt&amp;gt;takeplayerhorse;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takeplayerhorse();&lt;br /&gt;
&amp;lt;dt&amp;gt;throwcarry;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                throwcarry();&lt;br /&gt;
&amp;lt;dt&amp;gt;timereverywhere;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                timereverywhere();&lt;br /&gt;
&amp;lt;dt&amp;gt;timershow;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                timershow();&lt;br /&gt;
&amp;lt;dt&amp;gt;toinventory oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                toinventory(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;tokenize oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = string.tokenize();&lt;br /&gt;
&amp;lt;dt&amp;gt;tokenize2 oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = string.tokenize(&amp;quot; ,&amp;quot; @ string);&lt;br /&gt;
&amp;lt;dt&amp;gt;toweapons oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                toweapons(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;triggeraction float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                triggeraction(float,float,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;unfreezeplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                unfreezeplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;unset oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                unset(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;updateboard float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                updateboard(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;updateterrain;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                updateterrain();&lt;br /&gt;
&amp;lt;dt&amp;gt;wraptext float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = wraptext(float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;wraptext2 float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = wraptext2(float,float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supported old string operations ===&lt;br /&gt;
&lt;br /&gt;
These old string operators can be used in string parameters for the old commands, also you can use them directly as operators, e.g.&amp;lt;br/&amp;gt;&lt;br /&gt;
#c = &amp;quot;hello&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
is actually doing&amp;lt;br/&amp;gt;&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#a            player.account&lt;br /&gt;
#a(float)     players[float].account&lt;br /&gt;
#m            player.ani&lt;br /&gt;
              ani&lt;br /&gt;
#m(float)     players[float].ani&lt;br /&gt;
#K(float)     ascii(float)&lt;br /&gt;
#8            player.bodyimg&lt;br /&gt;
              bodyimg&lt;br /&gt;
#8(float)     players[float].bodyimg&lt;br /&gt;
#c            player.chat&lt;br /&gt;
              chat&lt;br /&gt;
#c(float)     players[float].chat&lt;br /&gt;
#C0           player.colors[0]&lt;br /&gt;
              colors[0]&lt;br /&gt;
#C0(float)    players[float].colors[0]&lt;br /&gt;
#C1           player.colors[1]&lt;br /&gt;
              colors[1]&lt;br /&gt;
#C1(float)    players[float].colors[1]&lt;br /&gt;
#C2           player.colors[2]&lt;br /&gt;
              colors[2]&lt;br /&gt;
#C2(float)    players[float].colors[2]&lt;br /&gt;
#C3           player.colors[3]&lt;br /&gt;
              colors[3]&lt;br /&gt;
#C3(float)    players[float].colors[3]&lt;br /&gt;
#C4           player.colors[4]&lt;br /&gt;
              colors[4]&lt;br /&gt;
#C4(float)    players[float].colors[4]&lt;br /&gt;
#C5           player.colors[5]&lt;br /&gt;
              colors[5]&lt;br /&gt;
#C5(float)    players[float].colors[5]&lt;br /&gt;
#D            downloadfile()&lt;br /&gt;
#E            emoticonchar()&lt;br /&gt;
#e(float,float,oldstring)&lt;br /&gt;
              string.substring(float,float)&lt;br /&gt;
#g            player.guild&lt;br /&gt;
              guild&lt;br /&gt;
#g(float)     players[float].guild&lt;br /&gt;
#3            player.headimg&lt;br /&gt;
              headimg&lt;br /&gt;
#3(float)     players[float].headimg&lt;br /&gt;
#5            player.horseimg&lt;br /&gt;
              horseimg&lt;br /&gt;
#5(float)     players[float].horseimg&lt;br /&gt;
#k(float)     keyname(float)&lt;br /&gt;
#L            player.level&lt;br /&gt;
#I(oldstring,float)&lt;br /&gt;
              getstring(string)[float]&lt;br /&gt;
#n            player.nick&lt;br /&gt;
              nick&lt;br /&gt;
#n(float)     players[float].nick&lt;br /&gt;
#f            image&lt;br /&gt;
#f(float)     npcs[float].image&lt;br /&gt;
#F            level&lt;br /&gt;
#p(float)     params[float]&lt;br /&gt;
#P(float)     player.attr[float]&lt;br /&gt;
              attr[float]&lt;br /&gt;
#P(float,float)&lt;br /&gt;
              players[float].attr[float]&lt;br /&gt;
#P1           player.attr[1]&lt;br /&gt;
              attr[1]&lt;br /&gt;
#P1(float)    players[float].attr[1]&lt;br /&gt;
#P2           player.attr[2]&lt;br /&gt;
              attr[2]&lt;br /&gt;
#P2(float)    players[float].attr[2]&lt;br /&gt;
#P3           player.attr[3]&lt;br /&gt;
              attr[3]&lt;br /&gt;
#P3(float)    players[float].attr[3]&lt;br /&gt;
#P4           player.attr[4]&lt;br /&gt;
              attr[4]&lt;br /&gt;
#P4(float)    players[float].attr[4]&lt;br /&gt;
#P5           player.attr[5]&lt;br /&gt;
              attr[5]&lt;br /&gt;
#P5(float)    players[float].attr[5]&lt;br /&gt;
#P6           player.attr[6]&lt;br /&gt;
              attr[6]&lt;br /&gt;
#P6(float)    players[float].attr[6]&lt;br /&gt;
#P7           player.attr[7]&lt;br /&gt;
              attr[7]&lt;br /&gt;
#P7(float)    players[float].attr[7]&lt;br /&gt;
#P8           player.attr[8]&lt;br /&gt;
              attr[8]&lt;br /&gt;
#P8(float)    players[float].attr[8]&lt;br /&gt;
#P9           player.attr[9]&lt;br /&gt;
              attr[9]&lt;br /&gt;
#P9(float)    players[float].attr[9]&lt;br /&gt;
#R(oldstring) string.random()&lt;br /&gt;
#2            player.shieldimg&lt;br /&gt;
              shieldimg&lt;br /&gt;
#2(float)     players[float].shieldimg&lt;br /&gt;
#s(oldstring) getstring(string)&lt;br /&gt;
#1            player.swordimg&lt;br /&gt;
              swordimg&lt;br /&gt;
#1(float)     players[float].swordimg&lt;br /&gt;
#S            player.sword.script&lt;br /&gt;
#t(float)     tokens[float]&lt;br /&gt;
#T(oldstring) string.trim()&lt;br /&gt;
#v(float)     float&lt;br /&gt;
#W            player.weapon.icon&lt;br /&gt;
#W(float)     weapons[float].icon&lt;br /&gt;
#w            player.weapon.script&lt;br /&gt;
#w(float)     weapons[float].script&lt;br /&gt;
&lt;br /&gt;
Compatibility note:&lt;br /&gt;
When you use the command setcharprop then the first parameter&lt;br /&gt;
is handled differently: instead of changing 'player.chat' it&lt;br /&gt;
is changing 'chat', the chat text of the npc. So 'setcharprop #c,hello'&lt;br /&gt;
would be translated into&lt;br /&gt;
chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
while 'setplayerprop #c,hello' is translated into&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
In the list above both possibilities are listed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Old Script Compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Operators ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Addition                  a + b&lt;br /&gt;
Substraction              a - b&lt;br /&gt;
Mulitplication            a * b&lt;br /&gt;
Division                  a / b&lt;br /&gt;
Modulus                   a % b&lt;br /&gt;
Power                     a ^ b&lt;br /&gt;
String Concationation     a @ b&lt;br /&gt;
Bool-And                  a &amp;amp;&amp;amp; b&lt;br /&gt;
Bool-Or                   a || b&lt;br /&gt;
Bool-Not                  !a&lt;br /&gt;
Negative                  -a&lt;br /&gt;
Equal                     a == b&lt;br /&gt;
Not-Equal                 a != b&lt;br /&gt;
Less                      a &amp;lt; b&lt;br /&gt;
Greater                   a &amp;gt; b&lt;br /&gt;
Less-Equal                a &amp;lt;= b,  a =&amp;lt; b&lt;br /&gt;
Greater-Equal             a &amp;gt;= b,  a =&amp;gt; b&lt;br /&gt;
In-Range                  a in &amp;lt;b,c&amp;gt;, a in |b,c&amp;gt;, a in &amp;lt;b,c|, a in |b,c|&lt;br /&gt;
In-Array                  a in {b,c,...}, {a,b,...} in {c,d,...}&lt;br /&gt;
Array-Constructor         {a,b,...}&lt;br /&gt;
Empty Array               new [count]&lt;br /&gt;
Array Member              a[index]&lt;br /&gt;
Function call             a(), a(b,c,...)&lt;br /&gt;
Object Attribute          a.b, a.(b)&lt;br /&gt;
Post Increment            a++&lt;br /&gt;
Post Decrement            a--&lt;br /&gt;
Pre Increment             ++a&lt;br /&gt;
Pre Decrement             --a&lt;br /&gt;
Old String Function       #a&lt;br /&gt;
Conditional               a? b : c&lt;br /&gt;
Assignment                a = b, a := b&lt;br /&gt;
Additive Assignment       a += b&lt;br /&gt;
Substractive Assignment   a -= b&lt;br /&gt;
Multiplicative Assignment a *= b&lt;br /&gt;
Division Assignment       a /= b&lt;br /&gt;
Modulus Assignment        a %= b&lt;br /&gt;
Power Assignment          a ^= b&lt;br /&gt;
String Append             a @= b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Accessing Variables ===&lt;br /&gt;
&lt;br /&gt;
Graal Script variables are 'variant', that means they are objects&lt;br /&gt;
that hold values of different types.&lt;br /&gt;
When you assign a value to the variable then it automatically&lt;br /&gt;
switches to the right type:&lt;br /&gt;
&lt;br /&gt;
Numeric (floating point):&lt;br /&gt;
  var = 1;&lt;br /&gt;
String:&lt;br /&gt;
  var = &amp;quot;hello&amp;quot;;&lt;br /&gt;
Object link:&lt;br /&gt;
  var = player;&lt;br /&gt;
Array (list of objects):&lt;br /&gt;
  var = {1,2,3};&lt;br /&gt;
&lt;br /&gt;
You can check the current type with the&lt;br /&gt;
type()-function - obj.type() returns&lt;br /&gt;
0,1,2,3 for numeric, string, object or array.&lt;br /&gt;
&lt;br /&gt;
=== Standard Object Functions ===&lt;br /&gt;
&lt;br /&gt;
obj.name&lt;br /&gt;
obj.type()  - gets the type of the var (float 0, string 1, object 2, array 3)&lt;br /&gt;
obj.length() - string length&lt;br /&gt;
obj.trim()&lt;br /&gt;
obj.tokenize([delimiters])&lt;br /&gt;
obj.charat(pos)&lt;br /&gt;
obj.pos(substring)&lt;br /&gt;
obj.beginswith(string)&lt;br /&gt;
obj.endson(string)&lt;br /&gt;
obj.substring(index[,length])&lt;br /&gt;
obj.size() - array length&lt;br /&gt;
obj.index(obj2) - position of obj2 in the array&lt;br /&gt;
obj.clear()&lt;br /&gt;
obj.add(obj2)&lt;br /&gt;
obj.delete(index)&lt;br /&gt;
obj.remove(obj2)&lt;br /&gt;
obj.replace(index,obj2)&lt;br /&gt;
obj.insert(index,obj2)&lt;br /&gt;
obj.getvarnames() - list of the object attributes&lt;br /&gt;
obj.geteditvarnames()&lt;br /&gt;
obj.loadstring(filename)&lt;br /&gt;
obj.loadlines(filename)&lt;br /&gt;
obj.loadvars(filename)&lt;br /&gt;
obj.savestring(filename,mode)&lt;br /&gt;
obj.savelines(filename,mode)&lt;br /&gt;
obj.savevars(filename,mode)&lt;br /&gt;
&lt;br /&gt;
==== NPCs ====&lt;br /&gt;
&lt;br /&gt;
npc.actionplayer - integer, read only&lt;br /&gt;
npc.ani - object, read only&lt;br /&gt;
npc.anistep - integer, read only&lt;br /&gt;
npc.ap - integer&lt;br /&gt;
npc.attr - array&lt;br /&gt;
npc.attached - boolean, read only&lt;br /&gt;
npc.attachid - integer, read only&lt;br /&gt;
npc.attachtype - integer, read only&lt;br /&gt;
npc.body - object&lt;br /&gt;
npc.bodyimg - string&lt;br /&gt;
npc.bombs - integer&lt;br /&gt;
npc.chat - string&lt;br /&gt;
npc.colors - array&lt;br /&gt;
npc.darts - integer&lt;br /&gt;
npc.dir - integer&lt;br /&gt;
npc.glovepower - integer&lt;br /&gt;
npc.gralats - integer&lt;br /&gt;
npc.head - object&lt;br /&gt;
npc.headimg - string&lt;br /&gt;
npc.headset - integer&lt;br /&gt;
npc.hearts - floating point value, better use npc.hp&lt;br /&gt;
npc.height - floating point value, read only&lt;br /&gt;
npc.horseimg - string&lt;br /&gt;
npc.hp - floating point value&lt;br /&gt;
npc.hurtdx - floating point value&lt;br /&gt;
npc.hurtdy - floating point value&lt;br /&gt;
npc.id - integer, read only&lt;br /&gt;
npc.isfemale - boolean, read only&lt;br /&gt;
npc.ismale - boolean, read only&lt;br /&gt;
npc.isweapon - boolean, read only&lt;br /&gt;
npc.layer - integer&lt;br /&gt;
npc.mp - integer&lt;br /&gt;
npc.nick - string&lt;br /&gt;
npc.peltwithnpc - boolean, read only&lt;br /&gt;
npc.peltwithbush - boolean, read only&lt;br /&gt;
npc.peltwithsign - boolean, read only&lt;br /&gt;
npc.peltwithvase - boolean, read only&lt;br /&gt;
npc.peltwithstone - boolean, read only&lt;br /&gt;
npc.peltwithblackstone - boolean, read only&lt;br /&gt;
npc.rupees - integer, better use npc.gralats&lt;br /&gt;
npc.shield - object&lt;br /&gt;
npc.shieldimg - string&lt;br /&gt;
npc.shieldpower - integer&lt;br /&gt;
npc.sprite - integer&lt;br /&gt;
npc.sword - object&lt;br /&gt;
npc.swordimg - string&lt;br /&gt;
npc.swordpower - integer&lt;br /&gt;
npc.timeout - floating point value&lt;br /&gt;
npc.visible - boolean&lt;br /&gt;
npc.width - floating point value, read only&lt;br /&gt;
npc.x - floating point value&lt;br /&gt;
npc.y - floating point value&lt;br /&gt;
npc.z - floating point value&lt;br /&gt;
&lt;br /&gt;
npc.blockagain()&lt;br /&gt;
npc.blockagainlocal()&lt;br /&gt;
npc.canbecarried()&lt;br /&gt;
npc.cannotbecarried()&lt;br /&gt;
npc.canbepushed()&lt;br /&gt;
npc.cannotbepushed()&lt;br /&gt;
npc.canbepulled()&lt;br /&gt;
npc.cannotbepulled()&lt;br /&gt;
npc.carryobject(name)&lt;br /&gt;
npc.catchevent(object name,event,function)&lt;br /&gt;
npc.changeimgcolors(index,red,green,blue,alpha)&lt;br /&gt;
npc.changeimgmode(index,mode)&lt;br /&gt;
npc.changeimgpart(index,x,y,width,height)&lt;br /&gt;
npc.changeimgvis(index,layer)&lt;br /&gt;
npc.changeimgzoom(index,zoom factor)&lt;br /&gt;
npc.destroy()&lt;br /&gt;
npc.dontblock()&lt;br /&gt;
npc.dontblocklocal()&lt;br /&gt;
npc.drawaslight()&lt;br /&gt;
npc.drawoverplayer()&lt;br /&gt;
npc.drawunderplayer()&lt;br /&gt;
npc.getimageforsprite(sprite) - returns image&lt;br /&gt;
npc.getsprite(string) - returns sprite&lt;br /&gt;
npc.getspriteforspritepos(spritepos) - returns sprite&lt;br /&gt;
npc.hide()&lt;br /&gt;
npc.hidelocal()&lt;br /&gt;
npc.hideimg(index)&lt;br /&gt;
npc.hideimgs(startindex,endindex)&lt;br /&gt;
npc.hurt(power)&lt;br /&gt;
npc.ignoreevent(object name,event)&lt;br /&gt;
npc.ignoreevents(object name)&lt;br /&gt;
npc.lay(item name)&lt;br /&gt;
npc.message(text)&lt;br /&gt;
npc.move(delta x,delta y,time,options)&lt;br /&gt;
npc.setbow(image name)&lt;br /&gt;
npc.setcharani(ani name,parameters)&lt;br /&gt;
npc.setchargender(&amp;quot;male&amp;quot; or &amp;quot;female&amp;quot;)&lt;br /&gt;
npc.setcoloreffect(red,green,blue,alpha)&lt;br /&gt;
npc.seteffectmode(mode)&lt;br /&gt;
npc.setimg(image name)&lt;br /&gt;
npc.setimgpart(image name,x,y,width,height)&lt;br /&gt;
npc.setshape(type,pixelwidth,pixelheight)&lt;br /&gt;
npc.setshape2(tilewidth,tileheight,tilearray)&lt;br /&gt;
npc.setzoomeffect(zoom factor)&lt;br /&gt;
npc.shootarrow(direction)&lt;br /&gt;
npc.shootball()&lt;br /&gt;
npc.shootfireball(direction)&lt;br /&gt;
npc.shootfireblast(direction)&lt;br /&gt;
npc.shootnuke(direction)&lt;br /&gt;
npc.show()&lt;br /&gt;
npc.showani(index,x,y,direction,ani name,parameters)&lt;br /&gt;
npc.showani2(index,x,y,z,direction,ani name,parameters)&lt;br /&gt;
npc.showcharacter()&lt;br /&gt;
npc.showimg(index,image name,x,y)&lt;br /&gt;
npc.showimg2(index,image name,x,y,z)&lt;br /&gt;
npc.showlocal()&lt;br /&gt;
npc.showpoly(index,array)&lt;br /&gt;
npc.showpoly2(index,array)&lt;br /&gt;
npc.showtext(index,x,y,font,style,text)&lt;br /&gt;
npc.showtext2(index,x,y,z,font,style,text)&lt;br /&gt;
npc.take(item name)&lt;br /&gt;
npc.take2(item index)&lt;br /&gt;
npc.takehorse(horse index)&lt;br /&gt;
npc.throwcarry()&lt;br /&gt;
npc.timereverywhere()&lt;br /&gt;
npc.timershow()&lt;br /&gt;
npc.toweapons(weapon name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Players ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
player.account - string, read only&lt;br /&gt;
player.ani - object, read only&lt;br /&gt;
player.anistep - integer, read only&lt;br /&gt;
player.ap - integer&lt;br /&gt;
player.attached - boolean, read only&lt;br /&gt;
player.attachid - integer, read only&lt;br /&gt;
player.attachtype - integer, read only&lt;br /&gt;
player.attr - array&lt;br /&gt;
player.body - object&lt;br /&gt;
player.bodyimg - string&lt;br /&gt;
player.bombs - integer&lt;br /&gt;
player.chat - string&lt;br /&gt;
player.colors - array&lt;br /&gt;
player.darts - integer&lt;br /&gt;
player.dir - integer&lt;br /&gt;
player.freezetime - floating point value, only valid for local players&lt;br /&gt;
player.fullhearts - integer, read only, better use player.maxhp&lt;br /&gt;
player.glovepower - integer&lt;br /&gt;
player.gralats - integer&lt;br /&gt;
player.head - object&lt;br /&gt;
player.headimg - string&lt;br /&gt;
player.headset - integer&lt;br /&gt;
player.hearts - floating point value, only editable for local players, better use player.hp&lt;br /&gt;
player.horseimg - string, only editable for local players&lt;br /&gt;
player.hp - floating point value, only editable for local players&lt;br /&gt;
player.hurt - boolean, read only, only valid for local players&lt;br /&gt;
player.hurtdx - floating point value, read only, only valid for local players&lt;br /&gt;
player.hurtdy - floating point value, read only, only valid for local players&lt;br /&gt;
player.hurted - boolean, read only, only valid for local players, better use player.hurt&lt;br /&gt;
player.hurtpower - floating point value, read only, only valid for local players&lt;br /&gt;
player.id - integer, read only&lt;br /&gt;
player.isfemale - boolean, read only&lt;br /&gt;
player.ismale - boolean, read only&lt;br /&gt;
player.letters - object, only valid for local players&lt;br /&gt;
player.level - object, read only&lt;br /&gt;
player.map - boolean, only valid for local players&lt;br /&gt;
player.maxhp - integer, read only&lt;br /&gt;
player.mp - integer&lt;br /&gt;
player.nick - string, read only for local players&lt;br /&gt;
player.onhorse - boolean, read only, only valid for local players&lt;br /&gt;
player.online - boolean, read only, only valid for local players&lt;br /&gt;
player.paused - boolean, read only, only valid for local players&lt;br /&gt;
player.reading - boolean, read only, only valid for local players&lt;br /&gt;
player.rupees - integer, better use player.gralats&lt;br /&gt;
player.shield - object&lt;br /&gt;
player.shieldimg - string&lt;br /&gt;
player.shieldpower - integer, read only&lt;br /&gt;
player.sprite - integer&lt;br /&gt;
player.swimming - boolean, read only, only valid for local players&lt;br /&gt;
player.sword - object&lt;br /&gt;
player.swordimg - string&lt;br /&gt;
player.swordpower - integer, read only&lt;br /&gt;
player.weapon - object, read only, only valid for local players&lt;br /&gt;
player.weapons - array, read only, only valid for local players&lt;br /&gt;
player.x - floating point value&lt;br /&gt;
player.y - floating point value&lt;br /&gt;
player.z - floating point value&lt;br /&gt;
&lt;br /&gt;
player.getimageforsprite(sprite) - returns object&lt;br /&gt;
player.getsprite(string) - returns object&lt;br /&gt;
player.getspriteforspritepos(spritepos) - returns object&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Levels ====&lt;br /&gt;
==== Ganis ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
e.g. player.ani&lt;br /&gt;
ani.name&lt;br /&gt;
ani.sprites[]&lt;br /&gt;
ani.steps[]&lt;br /&gt;
ani.continuous&lt;br /&gt;
ani.singledirection&lt;br /&gt;
ani.looping&lt;br /&gt;
ani.ismovie&lt;br /&gt;
ani.setbackto&lt;br /&gt;
ani.ganitype&lt;br /&gt;
ani.getsprite(id)&lt;br /&gt;
ani.addsprite(id) returns the added sprite&lt;br /&gt;
ani.deletesprite(id)&lt;br /&gt;
ani.addstep()&lt;br /&gt;
ani.insertstep(index)&lt;br /&gt;
ani.deletestep(index)&lt;br /&gt;
&lt;br /&gt;
sprites:&lt;br /&gt;
sprite.spriteindex&lt;br /&gt;
sprite.image&lt;br /&gt;
sprite.imagetype&lt;br /&gt;
sprite.x&lt;br /&gt;
sprite.y&lt;br /&gt;
sprite.width&lt;br /&gt;
sprite.height&lt;br /&gt;
sprite.red&lt;br /&gt;
sprite.green&lt;br /&gt;
sprite.blue&lt;br /&gt;
sprite.alpha&lt;br /&gt;
sprite.zoom&lt;br /&gt;
sprite.mode&lt;br /&gt;
sprite.surface&lt;br /&gt;
sprite.attachments[]&lt;br /&gt;
sprite.addattachment()&lt;br /&gt;
sprite.insertattachment(index)&lt;br /&gt;
sprite.deleteattachment(index)&lt;br /&gt;
&lt;br /&gt;
attachment:&lt;br /&gt;
attachment.sprite&lt;br /&gt;
attachment.dx&lt;br /&gt;
attachment.dy&lt;br /&gt;
attachment.behind&lt;br /&gt;
&lt;br /&gt;
step:&lt;br /&gt;
step.spritespos[][]&lt;br /&gt;
step.sounds[]&lt;br /&gt;
step.delay&lt;br /&gt;
step.addpos(dir)&lt;br /&gt;
step.insertpos(dir,index)&lt;br /&gt;
step.deletepos(dir,index)&lt;br /&gt;
&lt;br /&gt;
spritepos:&lt;br /&gt;
spritepos.sprite&lt;br /&gt;
spritepos.param&lt;br /&gt;
spritepos.attr&lt;br /&gt;
spritepos.dx&lt;br /&gt;
spritepos.dy&lt;br /&gt;
&lt;br /&gt;
sound:&lt;br /&gt;
sound.sound&lt;br /&gt;
sound.dx&lt;br /&gt;
sound.dy&lt;br /&gt;
sound.delay&lt;br /&gt;
&lt;br /&gt;
also the gani owners (players, npcs) have those functions:&lt;br /&gt;
getimageforsprite(sprite)&lt;br /&gt;
getsprite(string)&lt;br /&gt;
getspriteforspritepos(spritepos)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Standard functions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
format(format,parameters,...) - formats a &amp;quot;%s %d&amp;quot; string, inserts the parameters, and returns a string&lt;br /&gt;
int(a)&lt;br /&gt;
abs(a)&lt;br /&gt;
random(rangestart,rangeend)&lt;br /&gt;
sin(a)&lt;br /&gt;
cos(a)&lt;br /&gt;
arctan(a)&lt;br /&gt;
exp(a)&lt;br /&gt;
log(base,a)&lt;br /&gt;
min(a,b)&lt;br /&gt;
max(a,b)&lt;br /&gt;
getangle(delta x,delta y)&lt;br /&gt;
getdir(delta x,delta y)&lt;br /&gt;
vecx(direction)&lt;br /&gt;
vecy(direction)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Standard variables ===&lt;br /&gt;
&lt;br /&gt;
== GUI ==&lt;br /&gt;
&lt;br /&gt;
=== GUI controls ===&lt;br /&gt;
&lt;br /&gt;
=== GUI events ===&lt;br /&gt;
&lt;br /&gt;
All controls:&lt;br /&gt;
onAdd() when added to the parent&lt;br /&gt;
onRemove() when removed from the parent&lt;br /&gt;
onWake() when activated&lt;br /&gt;
onSleep() when deactivated&lt;br /&gt;
onResize(w,h)&lt;br /&gt;
onMove(x,y)&lt;br /&gt;
onMouseEnter(modifier,x,y,clickcount)&lt;br /&gt;
onMouseLeave(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseMove(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelDown(modifier,x,y,clickcount)&lt;br /&gt;
onKeyDown(keycode,string)&lt;br /&gt;
onKeyUp(keycode,string)&lt;br /&gt;
onKeyRepeat(keycode,string)&lt;br /&gt;
&lt;br /&gt;
GuiMLTextCtrl:&lt;br /&gt;
onResize(w,h) when reflowing&lt;br /&gt;
onURL(url) when clicked on url&lt;br /&gt;
&lt;br /&gt;
GuiTextEditCtrl:&lt;br /&gt;
onTabComplete()&lt;br /&gt;
onAction(text) when return key pressed&lt;br /&gt;
&lt;br /&gt;
GuiTextListCtrl:&lt;br /&gt;
onSelect(id,text) when row selected&lt;br /&gt;
onDblClick(id) when double-click on row or return key pressed&lt;br /&gt;
onDeleteKey(id) when delete key pressed&lt;br /&gt;
onIconResized(w,h) when setIconSize() called&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&lt;br /&gt;
GuiPopUpMenuCtrl:&lt;br /&gt;
onSelect(id,text) when menu option choosen&lt;br /&gt;
onCancel() when menu is closed without action&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&lt;br /&gt;
GuiMenuBar:&lt;br /&gt;
onMenuSelect(menuid,menutext)&lt;br /&gt;
onMenuItemSelect(menuid,menutext,itemid,itemtext)&lt;br /&gt;
&lt;br /&gt;
GuiTreeViewCtrl:&lt;br /&gt;
onSelect(id,rightmouse) when row selected&lt;br /&gt;
onUnselect(id) when row de-selected&lt;br /&gt;
onInspect(id) when clicked on the name of an item&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
onContextMenu(&amp;quot;x y&amp;quot;,id) when clicked with right-mouse key on row&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1375</id>
		<title>Creation/Dev/GScript2</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1375"/>
		<updated>2005-02-06T16:56:56Z</updated>

		<summary type="html">&lt;p&gt;Evil: /* Ganis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GScript 2 is the new scripting engine for [[Graal]]&lt;br /&gt;
&lt;br /&gt;
== Old Script Compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Removed functionality ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;toinventory&lt;br /&gt;
&amp;lt;li&amp;gt;followplayer&lt;br /&gt;
&amp;lt;li&amp;gt;playersays()&lt;br /&gt;
&amp;lt;li&amp;gt;setbackpal&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supported old scripting commands &amp;amp; their mapping to new script ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;addstring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;addstring(string,string);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;addtiledef oldstring, oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;addtiledef(string,string,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;addtiledef2 oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;addtiledef2(string,string,float,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;attachplayertoobj float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;attachplayertoobj(float,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;blockagain;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                blockagain();&lt;br /&gt;
&amp;lt;dt&amp;gt;blockagainlocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                blockagainlocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;callnpc float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                callnpc(float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;callweapon float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                callweapon(float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;canbecarried;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbecarried();&lt;br /&gt;
&amp;lt;dt&amp;gt;canbepulled;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbepulled();&lt;br /&gt;
&amp;lt;dt&amp;gt;canbepushed;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbepushed();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbecarried;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbecarried();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbepulled;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbepulled();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbepushed;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbepushed();&lt;br /&gt;
&amp;lt;dt&amp;gt;canwarp;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canwarp();&lt;br /&gt;
&amp;lt;dt&amp;gt;canwarp2;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canwarp2();&lt;br /&gt;
&amp;lt;dt&amp;gt;carryobject oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                carryobject(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgcolors float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgcolors(float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgmode float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgmode(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgpart float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgpart(float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgvis float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgvis(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgzoom float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgzoom(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;deletestring oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                deletestring(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;destroy;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                destroy();&lt;br /&gt;
&amp;lt;dt&amp;gt;detachplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                detachplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;disabledefmovement;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disabledefmovement();&lt;br /&gt;
&amp;lt;dt&amp;gt;disablemap;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disablemap();&lt;br /&gt;
&amp;lt;dt&amp;gt;disablepause;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disablepause();&lt;br /&gt;
&amp;lt;dt&amp;gt;disableselectweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disableselectweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;disableweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disableweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;dontblock;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                dontblock();&lt;br /&gt;
&amp;lt;dt&amp;gt;dontblocklocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                dontblocklocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawaslight;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawaslight();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawoverplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawoverplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawunderplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawunderplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;enabledefmovement;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enabledefmovement();&lt;br /&gt;
&amp;lt;dt&amp;gt;enablefeatures float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablefeatures(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;enablemap;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablemap();&lt;br /&gt;
&amp;lt;dt&amp;gt;enablepause;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablepause();&lt;br /&gt;
&amp;lt;dt&amp;gt;enableselectweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enableselectweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;enableweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enableweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;explodebomb float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                explodebomb(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;followplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                followplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;freezeplayer float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                freezeplayer(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;freezeplayer2;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                freezeplayer2();&lt;br /&gt;
&amp;lt;dt&amp;gt;hide;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hide();&lt;br /&gt;
&amp;lt;dt&amp;gt;hideimg float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideimg(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hideimgs float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideimgs(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hidelocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hidelocal();&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;hitcompu float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitcompu(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitnpc float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitnpc(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitobjects float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitobjects(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hideplayer float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideplayer(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hidesword float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hidesword(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitplayer float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitplayer(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hurt float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hurt(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;insertstring oldstring, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                insertstring(string,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;join oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                join(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;lay oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                lay(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;lay2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                lay2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;loadmap oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                loadmap(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;message oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                message(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;move float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                move(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;noplayerkilling;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                noplayerkilling();&lt;br /&gt;
&amp;lt;dt&amp;gt;openurl oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                openurl(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;openurl2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                openurl2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;play oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                play(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;play2 oldstring, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                play2(string,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;playlooped oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                playlooped(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;putbomb float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putbomb(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putcomp oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putcomp(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putexplosion float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putexplosion(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putexplosion2 float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putexplosion2(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;puthorse oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                puthorse(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putleaps float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putleaps(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnewcomp oldstring, float, float, oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnewcomp(string,float,float,string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnpc oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnpc(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnpc2 float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnpc2(float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;reflectarrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                reflectarrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removearrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removearrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removebomb float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removebomb(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removecompus;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removecompus();&lt;br /&gt;
&amp;lt;dt&amp;gt;removeexplo float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removeexplo(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removehorse float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removehorse(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removeitem float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removeitem(float)&lt;br /&gt;
&amp;lt;dt&amp;gt;removestring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removestring(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;removetiledefs oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removetiledefs(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;replaceani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                replaceani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;replacestring oldstring, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                replacestring(string,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;resetfocus;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                resetfocus();&lt;br /&gt;
&amp;lt;dt&amp;gt;savelog oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                savelog(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;savelog2 oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                savelog2(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;say float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                say(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;say2 oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                say2(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendrpgmessage oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendrpgmessage(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendpm oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendpm(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendtonc oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendtonc(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendtorc oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendtorc(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;serverwarp oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                serverwarp(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;set oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                set(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setarray float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setarray(var,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setbeltcolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setbeltcolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setbow oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setbow(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcharani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcharani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setchargender oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setchargender(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcharprop oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                string = string;&lt;br /&gt;
&amp;lt;dt&amp;gt;setcoatcolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcoatcolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcoloreffect float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcoloreffect(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcursor float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcursor(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcurcor2 oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcursor2(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;seteffect float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seteffect(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;seteffectmode float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seteffectmode(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setfocus float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setfocus(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setgender oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setgender(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sethead oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sethead(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setlevel oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setlevel(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setlevel2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setlevel2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setmap oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setmap(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setminimap oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setminimap(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setmusicvolume float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setmusicvolume(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setimg oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setimg(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setimgpart oldstring, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setimgpart(string,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setletters oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setletters(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setplayerdir oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setplayerdir(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setplayerprop oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                string = string;&lt;br /&gt;
&amp;lt;dt&amp;gt;setpm oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setpm(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshape float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshape(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshape2 float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshape2(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshield oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshield(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshoecolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshoecolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshootparams oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshootparams(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setskincolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setskincolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setsleevecolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setsleevecolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setstring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setstring(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setsword oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setsword(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;seturllevel oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seturllevel(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setz float, float, float, float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setz(float,float,float,float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setzoomeffect float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setzoomeffect(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shoot float, float, float, float, float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shoot(float,float,float,float,float,float,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootarrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootarrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootball;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootball();&lt;br /&gt;
&amp;lt;dt&amp;gt;shootfireball float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootfireball(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootfireblast float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootfireblast(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootnuke float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootnuke(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;show;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                show();&lt;br /&gt;
&amp;lt;dt&amp;gt;showani float, float, float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showani(float,float,float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showani2 float, float, float, float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showani2(float,float,float,float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showcharacter;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showcharacter();&lt;br /&gt;
&amp;lt;dt&amp;gt;showfile oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showfile(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showimg float, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showimg(float,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showimg2 float, oldstring, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showimg2(float,string,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showlocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showlocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;showpoly float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showpoly(float,array);&lt;br /&gt;
&amp;lt;dt&amp;gt;showpoly2 float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showpoly2(float,array);&lt;br /&gt;
&amp;lt;dt&amp;gt;showstats float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showstats(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showtext float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showtext(float,float,float,string,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showtext2 float, float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showtext2(float,float,float,float,string,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sleep float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sleep(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;spyfire float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                spyfire(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;stopmidi;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                stopmidi();&lt;br /&gt;
&amp;lt;dt&amp;gt;stopsound oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                stopsound(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;take oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                take(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;take2 float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                take2(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;takehorse float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takehorse(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;takeplayercarry;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takeplayercarry();&lt;br /&gt;
&amp;lt;dt&amp;gt;takeplayerhorse;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takeplayerhorse();&lt;br /&gt;
&amp;lt;dt&amp;gt;throwcarry;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                throwcarry();&lt;br /&gt;
&amp;lt;dt&amp;gt;timereverywhere;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                timereverywhere();&lt;br /&gt;
&amp;lt;dt&amp;gt;timershow;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                timershow();&lt;br /&gt;
&amp;lt;dt&amp;gt;toinventory oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                toinventory(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;tokenize oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = string.tokenize();&lt;br /&gt;
&amp;lt;dt&amp;gt;tokenize2 oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = string.tokenize(&amp;quot; ,&amp;quot; @ string);&lt;br /&gt;
&amp;lt;dt&amp;gt;toweapons oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                toweapons(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;triggeraction float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                triggeraction(float,float,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;unfreezeplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                unfreezeplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;unset oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                unset(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;updateboard float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                updateboard(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;updateterrain;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                updateterrain();&lt;br /&gt;
&amp;lt;dt&amp;gt;wraptext float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = wraptext(float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;wraptext2 float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = wraptext2(float,float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supported old string operations ===&lt;br /&gt;
&lt;br /&gt;
These old string operators can be used in string parameters for the old commands, also you can use them directly as operators, e.g.&amp;lt;br/&amp;gt;&lt;br /&gt;
#c = &amp;quot;hello&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
is actually doing&amp;lt;br/&amp;gt;&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#a            player.account&lt;br /&gt;
#a(float)     players[float].account&lt;br /&gt;
#m            player.ani&lt;br /&gt;
              ani&lt;br /&gt;
#m(float)     players[float].ani&lt;br /&gt;
#K(float)     ascii(float)&lt;br /&gt;
#8            player.bodyimg&lt;br /&gt;
              bodyimg&lt;br /&gt;
#8(float)     players[float].bodyimg&lt;br /&gt;
#c            player.chat&lt;br /&gt;
              chat&lt;br /&gt;
#c(float)     players[float].chat&lt;br /&gt;
#C0           player.colors[0]&lt;br /&gt;
              colors[0]&lt;br /&gt;
#C0(float)    players[float].colors[0]&lt;br /&gt;
#C1           player.colors[1]&lt;br /&gt;
              colors[1]&lt;br /&gt;
#C1(float)    players[float].colors[1]&lt;br /&gt;
#C2           player.colors[2]&lt;br /&gt;
              colors[2]&lt;br /&gt;
#C2(float)    players[float].colors[2]&lt;br /&gt;
#C3           player.colors[3]&lt;br /&gt;
              colors[3]&lt;br /&gt;
#C3(float)    players[float].colors[3]&lt;br /&gt;
#C4           player.colors[4]&lt;br /&gt;
              colors[4]&lt;br /&gt;
#C4(float)    players[float].colors[4]&lt;br /&gt;
#C5           player.colors[5]&lt;br /&gt;
              colors[5]&lt;br /&gt;
#C5(float)    players[float].colors[5]&lt;br /&gt;
#D            downloadfile()&lt;br /&gt;
#E            emoticonchar()&lt;br /&gt;
#e(float,float,oldstring)&lt;br /&gt;
              string.substring(float,float)&lt;br /&gt;
#g            player.guild&lt;br /&gt;
              guild&lt;br /&gt;
#g(float)     players[float].guild&lt;br /&gt;
#3            player.headimg&lt;br /&gt;
              headimg&lt;br /&gt;
#3(float)     players[float].headimg&lt;br /&gt;
#5            player.horseimg&lt;br /&gt;
              horseimg&lt;br /&gt;
#5(float)     players[float].horseimg&lt;br /&gt;
#k(float)     keyname(float)&lt;br /&gt;
#L            player.level&lt;br /&gt;
#I(oldstring,float)&lt;br /&gt;
              getstring(string)[float]&lt;br /&gt;
#n            player.nick&lt;br /&gt;
              nick&lt;br /&gt;
#n(float)     players[float].nick&lt;br /&gt;
#f            image&lt;br /&gt;
#f(float)     npcs[float].image&lt;br /&gt;
#F            level&lt;br /&gt;
#p(float)     params[float]&lt;br /&gt;
#P(float)     player.attr[float]&lt;br /&gt;
              attr[float]&lt;br /&gt;
#P(float,float)&lt;br /&gt;
              players[float].attr[float]&lt;br /&gt;
#P1           player.attr[1]&lt;br /&gt;
              attr[1]&lt;br /&gt;
#P1(float)    players[float].attr[1]&lt;br /&gt;
#P2           player.attr[2]&lt;br /&gt;
              attr[2]&lt;br /&gt;
#P2(float)    players[float].attr[2]&lt;br /&gt;
#P3           player.attr[3]&lt;br /&gt;
              attr[3]&lt;br /&gt;
#P3(float)    players[float].attr[3]&lt;br /&gt;
#P4           player.attr[4]&lt;br /&gt;
              attr[4]&lt;br /&gt;
#P4(float)    players[float].attr[4]&lt;br /&gt;
#P5           player.attr[5]&lt;br /&gt;
              attr[5]&lt;br /&gt;
#P5(float)    players[float].attr[5]&lt;br /&gt;
#P6           player.attr[6]&lt;br /&gt;
              attr[6]&lt;br /&gt;
#P6(float)    players[float].attr[6]&lt;br /&gt;
#P7           player.attr[7]&lt;br /&gt;
              attr[7]&lt;br /&gt;
#P7(float)    players[float].attr[7]&lt;br /&gt;
#P8           player.attr[8]&lt;br /&gt;
              attr[8]&lt;br /&gt;
#P8(float)    players[float].attr[8]&lt;br /&gt;
#P9           player.attr[9]&lt;br /&gt;
              attr[9]&lt;br /&gt;
#P9(float)    players[float].attr[9]&lt;br /&gt;
#R(oldstring) string.random()&lt;br /&gt;
#2            player.shieldimg&lt;br /&gt;
              shieldimg&lt;br /&gt;
#2(float)     players[float].shieldimg&lt;br /&gt;
#s(oldstring) getstring(string)&lt;br /&gt;
#1            player.swordimg&lt;br /&gt;
              swordimg&lt;br /&gt;
#1(float)     players[float].swordimg&lt;br /&gt;
#S            player.sword.script&lt;br /&gt;
#t(float)     tokens[float]&lt;br /&gt;
#T(oldstring) string.trim()&lt;br /&gt;
#v(float)     float&lt;br /&gt;
#W            player.weapon.icon&lt;br /&gt;
#W(float)     weapons[float].icon&lt;br /&gt;
#w            player.weapon.script&lt;br /&gt;
#w(float)     weapons[float].script&lt;br /&gt;
&lt;br /&gt;
Compatibility note:&lt;br /&gt;
When you use the command setcharprop then the first parameter&lt;br /&gt;
is handled differently: instead of changing 'player.chat' it&lt;br /&gt;
is changing 'chat', the chat text of the npc. So 'setcharprop #c,hello'&lt;br /&gt;
would be translated into&lt;br /&gt;
chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
while 'setplayerprop #c,hello' is translated into&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
In the list above both possibilities are listed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Old Script Compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Operators ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Addition                  a + b&lt;br /&gt;
Substraction              a - b&lt;br /&gt;
Mulitplication            a * b&lt;br /&gt;
Division                  a / b&lt;br /&gt;
Modulus                   a % b&lt;br /&gt;
Power                     a ^ b&lt;br /&gt;
String Concationation     a @ b&lt;br /&gt;
Bool-And                  a &amp;amp;&amp;amp; b&lt;br /&gt;
Bool-Or                   a || b&lt;br /&gt;
Bool-Not                  !a&lt;br /&gt;
Negative                  -a&lt;br /&gt;
Equal                     a == b&lt;br /&gt;
Not-Equal                 a != b&lt;br /&gt;
Less                      a &amp;lt; b&lt;br /&gt;
Greater                   a &amp;gt; b&lt;br /&gt;
Less-Equal                a &amp;lt;= b,  a =&amp;lt; b&lt;br /&gt;
Greater-Equal             a &amp;gt;= b,  a =&amp;gt; b&lt;br /&gt;
In-Range                  a in &amp;lt;b,c&amp;gt;, a in |b,c&amp;gt;, a in &amp;lt;b,c|, a in |b,c|&lt;br /&gt;
In-Array                  a in {b,c,...}, {a,b,...} in {c,d,...}&lt;br /&gt;
Array-Constructor         {a,b,...}&lt;br /&gt;
Empty Array               new [count]&lt;br /&gt;
Array Member              a[index]&lt;br /&gt;
Function call             a(), a(b,c,...)&lt;br /&gt;
Object Attribute          a.b, a.(b)&lt;br /&gt;
Post Increment            a++&lt;br /&gt;
Post Decrement            a--&lt;br /&gt;
Pre Increment             ++a&lt;br /&gt;
Pre Decrement             --a&lt;br /&gt;
Old String Function       #a&lt;br /&gt;
Conditional               a? b : c&lt;br /&gt;
Assignment                a = b, a := b&lt;br /&gt;
Additive Assignment       a += b&lt;br /&gt;
Substractive Assignment   a -= b&lt;br /&gt;
Multiplicative Assignment a *= b&lt;br /&gt;
Division Assignment       a /= b&lt;br /&gt;
Modulus Assignment        a %= b&lt;br /&gt;
Power Assignment          a ^= b&lt;br /&gt;
String Append             a @= b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Accessing Variables ===&lt;br /&gt;
&lt;br /&gt;
Graal Script variables are 'variant', that means they are objects&lt;br /&gt;
that hold values of different types.&lt;br /&gt;
When you assign a value to the variable then it automatically&lt;br /&gt;
switches to the right type:&lt;br /&gt;
&lt;br /&gt;
Numeric (floating point):&lt;br /&gt;
  var = 1;&lt;br /&gt;
String:&lt;br /&gt;
  var = &amp;quot;hello&amp;quot;;&lt;br /&gt;
Object link:&lt;br /&gt;
  var = player;&lt;br /&gt;
Array (list of objects):&lt;br /&gt;
  var = {1,2,3};&lt;br /&gt;
&lt;br /&gt;
You can check the current type with the&lt;br /&gt;
type()-function - obj.type() returns&lt;br /&gt;
0,1,2,3 for numeric, string, object or array.&lt;br /&gt;
&lt;br /&gt;
=== Standard Object Functions ===&lt;br /&gt;
&lt;br /&gt;
obj.name&lt;br /&gt;
obj.type()  - gets the type of the var (float 0, string 1, object 2, array 3)&lt;br /&gt;
obj.length() - string length&lt;br /&gt;
obj.trim()&lt;br /&gt;
obj.tokenize([delimiters])&lt;br /&gt;
obj.charat(pos)&lt;br /&gt;
obj.pos(substring)&lt;br /&gt;
obj.beginswith(string)&lt;br /&gt;
obj.endson(string)&lt;br /&gt;
obj.substring(index[,length])&lt;br /&gt;
obj.size() - array length&lt;br /&gt;
obj.index(obj2) - position of obj2 in the array&lt;br /&gt;
obj.clear()&lt;br /&gt;
obj.add(obj2)&lt;br /&gt;
obj.delete(index)&lt;br /&gt;
obj.remove(obj2)&lt;br /&gt;
obj.replace(index,obj2)&lt;br /&gt;
obj.insert(index,obj2)&lt;br /&gt;
obj.getvarnames() - list of the object attributes&lt;br /&gt;
obj.geteditvarnames()&lt;br /&gt;
obj.loadstring(filename)&lt;br /&gt;
obj.loadlines(filename)&lt;br /&gt;
obj.loadvars(filename)&lt;br /&gt;
obj.savestring(filename,mode)&lt;br /&gt;
obj.savelines(filename,mode)&lt;br /&gt;
obj.savevars(filename,mode)&lt;br /&gt;
&lt;br /&gt;
==== NPCs ====&lt;br /&gt;
&lt;br /&gt;
npc.actionplayer - integer, read only&lt;br /&gt;
npc.ani - object, read only&lt;br /&gt;
npc.anistep - integer, read only&lt;br /&gt;
npc.ap - integer&lt;br /&gt;
npc.attr - array&lt;br /&gt;
npc.attached - boolean, read only&lt;br /&gt;
npc.attachid - integer, read only&lt;br /&gt;
npc.attachtype - integer, read only&lt;br /&gt;
npc.body - object&lt;br /&gt;
npc.bodyimg - string&lt;br /&gt;
npc.bombs - integer&lt;br /&gt;
npc.chat - string&lt;br /&gt;
npc.colors - array&lt;br /&gt;
npc.darts - integer&lt;br /&gt;
npc.dir - integer&lt;br /&gt;
npc.glovepower - integer&lt;br /&gt;
npc.gralats - integer&lt;br /&gt;
npc.head - object&lt;br /&gt;
npc.headimg - string&lt;br /&gt;
npc.headset - integer&lt;br /&gt;
npc.hearts - floating point value, better use npc.hp&lt;br /&gt;
npc.height - floating point value, read only&lt;br /&gt;
npc.horseimg - string&lt;br /&gt;
npc.hp - floating point value&lt;br /&gt;
npc.hurtdx - floating point value&lt;br /&gt;
npc.hurtdy - floating point value&lt;br /&gt;
npc.id - integer, read only&lt;br /&gt;
npc.isfemale - boolean, read only&lt;br /&gt;
npc.ismale - boolean, read only&lt;br /&gt;
npc.isweapon - boolean, read only&lt;br /&gt;
npc.layer - integer&lt;br /&gt;
npc.mp - integer&lt;br /&gt;
npc.nick - string&lt;br /&gt;
npc.peltwithnpc - boolean, read only&lt;br /&gt;
npc.peltwithbush - boolean, read only&lt;br /&gt;
npc.peltwithsign - boolean, read only&lt;br /&gt;
npc.peltwithvase - boolean, read only&lt;br /&gt;
npc.peltwithstone - boolean, read only&lt;br /&gt;
npc.peltwithblackstone - boolean, read only&lt;br /&gt;
npc.rupees - integer, better use npc.gralats&lt;br /&gt;
npc.shield - object&lt;br /&gt;
npc.shieldimg - string&lt;br /&gt;
npc.shieldpower - integer&lt;br /&gt;
npc.sprite - integer&lt;br /&gt;
npc.sword - object&lt;br /&gt;
npc.swordimg - string&lt;br /&gt;
npc.swordpower - integer&lt;br /&gt;
npc.timeout - floating point value&lt;br /&gt;
npc.visible - boolean&lt;br /&gt;
npc.width - floating point value, read only&lt;br /&gt;
npc.x - floating point value&lt;br /&gt;
npc.y - floating point value&lt;br /&gt;
npc.z - floating point value&lt;br /&gt;
&lt;br /&gt;
npc.blockagain()&lt;br /&gt;
npc.blockagainlocal()&lt;br /&gt;
npc.canbecarried()&lt;br /&gt;
npc.cannotbecarried()&lt;br /&gt;
npc.canbepushed()&lt;br /&gt;
npc.cannotbepushed()&lt;br /&gt;
npc.canbepulled()&lt;br /&gt;
npc.cannotbepulled()&lt;br /&gt;
npc.carryobject(name)&lt;br /&gt;
npc.catchevent(object name,event,function)&lt;br /&gt;
npc.changeimgcolors(index,red,green,blue,alpha)&lt;br /&gt;
npc.changeimgmode(index,mode)&lt;br /&gt;
npc.changeimgpart(index,x,y,width,height)&lt;br /&gt;
npc.changeimgvis(index,layer)&lt;br /&gt;
npc.changeimgzoom(index,zoom factor)&lt;br /&gt;
npc.destroy()&lt;br /&gt;
npc.dontblock()&lt;br /&gt;
npc.dontblocklocal()&lt;br /&gt;
npc.drawaslight()&lt;br /&gt;
npc.drawoverplayer()&lt;br /&gt;
npc.drawunderplayer()&lt;br /&gt;
npc.getimageforsprite(sprite) - returns image&lt;br /&gt;
npc.getsprite(string) - returns sprite&lt;br /&gt;
npc.getspriteforspritepos(spritepos) - returns sprite&lt;br /&gt;
npc.hide()&lt;br /&gt;
npc.hidelocal()&lt;br /&gt;
npc.hideimg(index)&lt;br /&gt;
npc.hideimgs(startindex,endindex)&lt;br /&gt;
npc.hurt(power)&lt;br /&gt;
npc.ignoreevent(object name,event)&lt;br /&gt;
npc.ignoreevents(object name)&lt;br /&gt;
npc.lay(item name)&lt;br /&gt;
npc.message(text)&lt;br /&gt;
npc.move(delta x,delta y,time,options)&lt;br /&gt;
npc.setbow(image name)&lt;br /&gt;
npc.setcharani(ani name,parameters)&lt;br /&gt;
npc.setchargender(&amp;quot;male&amp;quot; or &amp;quot;female&amp;quot;)&lt;br /&gt;
npc.setcoloreffect(red,green,blue,alpha)&lt;br /&gt;
npc.seteffectmode(mode)&lt;br /&gt;
npc.setimg(image name)&lt;br /&gt;
npc.setimgpart(image name,x,y,width,height)&lt;br /&gt;
npc.setshape(type,pixelwidth,pixelheight)&lt;br /&gt;
npc.setshape2(tilewidth,tileheight,tilearray)&lt;br /&gt;
npc.setzoomeffect(zoom factor)&lt;br /&gt;
npc.shootarrow(direction)&lt;br /&gt;
npc.shootball()&lt;br /&gt;
npc.shootfireball(direction)&lt;br /&gt;
npc.shootfireblast(direction)&lt;br /&gt;
npc.shootnuke(direction)&lt;br /&gt;
npc.show()&lt;br /&gt;
npc.showani(index,x,y,direction,ani name,parameters)&lt;br /&gt;
npc.showani2(index,x,y,z,direction,ani name,parameters)&lt;br /&gt;
npc.showcharacter()&lt;br /&gt;
npc.showimg(index,image name,x,y)&lt;br /&gt;
npc.showimg2(index,image name,x,y,z)&lt;br /&gt;
npc.showlocal()&lt;br /&gt;
npc.showpoly(index,array)&lt;br /&gt;
npc.showpoly2(index,array)&lt;br /&gt;
npc.showtext(index,x,y,font,style,text)&lt;br /&gt;
npc.showtext2(index,x,y,z,font,style,text)&lt;br /&gt;
npc.take(item name)&lt;br /&gt;
npc.take2(item index)&lt;br /&gt;
npc.takehorse(horse index)&lt;br /&gt;
npc.throwcarry()&lt;br /&gt;
npc.timereverywhere()&lt;br /&gt;
npc.timershow()&lt;br /&gt;
npc.toweapons(weapon name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Players ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
player.account - string, read only&lt;br /&gt;
player.ani - object, read only&lt;br /&gt;
player.anistep - integer, read only&lt;br /&gt;
player.ap - integer&lt;br /&gt;
player.attached - boolean, read only&lt;br /&gt;
player.attachid - integer, read only&lt;br /&gt;
player.attachtype - integer, read only&lt;br /&gt;
player.attr - array&lt;br /&gt;
player.body - object&lt;br /&gt;
player.bodyimg - string&lt;br /&gt;
player.bombs - integer&lt;br /&gt;
player.chat - string&lt;br /&gt;
player.colors - array&lt;br /&gt;
player.darts - integer&lt;br /&gt;
player.dir - integer&lt;br /&gt;
player.freezetime - floating point value, only valid for local players&lt;br /&gt;
player.fullhearts - integer, read only, better use player.maxhp&lt;br /&gt;
player.glovepower - integer&lt;br /&gt;
player.gralats - integer&lt;br /&gt;
player.head - object&lt;br /&gt;
player.headimg - string&lt;br /&gt;
player.headset - integer&lt;br /&gt;
player.hearts - floating point value, only editable for local players, better use player.hp&lt;br /&gt;
player.horseimg - string, only editable for local players&lt;br /&gt;
player.hp - floating point value, only editable for local players&lt;br /&gt;
player.hurt - boolean, read only, only valid for local players&lt;br /&gt;
player.hurtdx - floating point value, read only, only valid for local players&lt;br /&gt;
player.hurtdy - floating point value, read only, only valid for local players&lt;br /&gt;
player.hurted - boolean, read only, only valid for local players, better use player.hurt&lt;br /&gt;
player.hurtpower - floating point value, read only, only valid for local players&lt;br /&gt;
player.id - integer, read only&lt;br /&gt;
player.isfemale - boolean, read only&lt;br /&gt;
player.ismale - boolean, read only&lt;br /&gt;
player.letters - object, only valid for local players&lt;br /&gt;
player.level - object, read only&lt;br /&gt;
player.map - boolean, only valid for local players&lt;br /&gt;
player.maxhp - integer, read only&lt;br /&gt;
player.mp - integer&lt;br /&gt;
player.nick - string, read only for local players&lt;br /&gt;
player.onhorse - boolean, read only, only valid for local players&lt;br /&gt;
player.online - boolean, read only, only valid for local players&lt;br /&gt;
player.paused - boolean, read only, only valid for local players&lt;br /&gt;
player.reading - boolean, read only, only valid for local players&lt;br /&gt;
player.rupees - integer, better use player.gralats&lt;br /&gt;
player.shield - object&lt;br /&gt;
player.shieldimg - string&lt;br /&gt;
player.shieldpower - integer, read only&lt;br /&gt;
player.sprite - integer&lt;br /&gt;
player.swimming - boolean, read only, only valid for local players&lt;br /&gt;
player.sword - object&lt;br /&gt;
player.swordimg - string&lt;br /&gt;
player.swordpower - integer, read only&lt;br /&gt;
player.weapon - object, read only, only valid for local players&lt;br /&gt;
player.weapons - array, read only, only valid for local players&lt;br /&gt;
player.x - floating point value&lt;br /&gt;
player.y - floating point value&lt;br /&gt;
player.z - floating point value&lt;br /&gt;
&lt;br /&gt;
player.getimageforsprite(sprite) - returns object&lt;br /&gt;
player.getsprite(string) - returns object&lt;br /&gt;
player.getspriteforspritepos(spritepos) - returns object&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Levels ====&lt;br /&gt;
==== Ganis ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
e.g. player.ani&lt;br /&gt;
ani.name&lt;br /&gt;
ani.sprites[]&lt;br /&gt;
ani.steps[]&lt;br /&gt;
ani.continuous&lt;br /&gt;
ani.singledirection&lt;br /&gt;
ani.looping&lt;br /&gt;
ani.ismovie&lt;br /&gt;
ani.setbackto&lt;br /&gt;
ani.ganitype&lt;br /&gt;
ani.getsprite(id)&lt;br /&gt;
ani.addsprite(id) returns the added sprite&lt;br /&gt;
ani.deletesprite(id)&lt;br /&gt;
ani.addstep()&lt;br /&gt;
ani.insertstep(index)&lt;br /&gt;
ani.deletestep(index)&lt;br /&gt;
&lt;br /&gt;
sprites:&lt;br /&gt;
sprite.spriteindex&lt;br /&gt;
sprite.image&lt;br /&gt;
sprite.imagetype&lt;br /&gt;
sprite.x&lt;br /&gt;
sprite.y&lt;br /&gt;
sprite.width&lt;br /&gt;
sprite.height&lt;br /&gt;
sprite.red&lt;br /&gt;
sprite.green&lt;br /&gt;
sprite.blue&lt;br /&gt;
sprite.alpha&lt;br /&gt;
sprite.zoom&lt;br /&gt;
sprite.mode&lt;br /&gt;
sprite.surface&lt;br /&gt;
sprite.attachments[]&lt;br /&gt;
sprite.addattachment()&lt;br /&gt;
sprite.insertattachment(index)&lt;br /&gt;
sprite.deleteattachment(index)&lt;br /&gt;
&lt;br /&gt;
attachment:&lt;br /&gt;
attachment.sprite&lt;br /&gt;
attachment.dx&lt;br /&gt;
attachment.dy&lt;br /&gt;
attachment.behind&lt;br /&gt;
&lt;br /&gt;
step:&lt;br /&gt;
step.spritespos[][]&lt;br /&gt;
step.sounds[]&lt;br /&gt;
step.delay&lt;br /&gt;
step.addpos(dir)&lt;br /&gt;
step.insertpos(dir,index)&lt;br /&gt;
step.deletepos(dir,index)&lt;br /&gt;
&lt;br /&gt;
spritepos:&lt;br /&gt;
spritepos.sprite&lt;br /&gt;
spritepos.param&lt;br /&gt;
spritepos.attr&lt;br /&gt;
spritepos.dx&lt;br /&gt;
spritepos.dy&lt;br /&gt;
&lt;br /&gt;
sound:&lt;br /&gt;
sound.sound&lt;br /&gt;
sound.dx&lt;br /&gt;
sound.dy&lt;br /&gt;
sound.delay&lt;br /&gt;
&lt;br /&gt;
also the gani owners (players, npcs) have those functions:&lt;br /&gt;
getimageforsprite(sprite)&lt;br /&gt;
getsprite(string)&lt;br /&gt;
getspriteforspritepos(spritepos)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Standard functions ===&lt;br /&gt;
&lt;br /&gt;
format(format,parameters,...) - formats a &amp;quot;%s %d&amp;quot; string, inserts the parameters, and returns a string&lt;br /&gt;
int(a)&lt;br /&gt;
abs(a)&lt;br /&gt;
random(rangestart,rangeend)&lt;br /&gt;
sin(a)&lt;br /&gt;
cos(a)&lt;br /&gt;
arctan(a)&lt;br /&gt;
exp(a)&lt;br /&gt;
log(base,a)&lt;br /&gt;
min(a,b)&lt;br /&gt;
max(a,b)&lt;br /&gt;
getangle(delta x,delta y)&lt;br /&gt;
getdir(delta x,delta y)&lt;br /&gt;
vecx(direction)&lt;br /&gt;
vecy(direction)&lt;br /&gt;
&lt;br /&gt;
=== Standard variables ===&lt;br /&gt;
&lt;br /&gt;
== GUI ==&lt;br /&gt;
&lt;br /&gt;
=== GUI controls ===&lt;br /&gt;
&lt;br /&gt;
=== GUI events ===&lt;br /&gt;
&lt;br /&gt;
All controls:&lt;br /&gt;
onAdd() when added to the parent&lt;br /&gt;
onRemove() when removed from the parent&lt;br /&gt;
onWake() when activated&lt;br /&gt;
onSleep() when deactivated&lt;br /&gt;
onResize(w,h)&lt;br /&gt;
onMove(x,y)&lt;br /&gt;
onMouseEnter(modifier,x,y,clickcount)&lt;br /&gt;
onMouseLeave(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseMove(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelDown(modifier,x,y,clickcount)&lt;br /&gt;
onKeyDown(keycode,string)&lt;br /&gt;
onKeyUp(keycode,string)&lt;br /&gt;
onKeyRepeat(keycode,string)&lt;br /&gt;
&lt;br /&gt;
GuiMLTextCtrl:&lt;br /&gt;
onResize(w,h) when reflowing&lt;br /&gt;
onURL(url) when clicked on url&lt;br /&gt;
&lt;br /&gt;
GuiTextEditCtrl:&lt;br /&gt;
onTabComplete()&lt;br /&gt;
onAction(text) when return key pressed&lt;br /&gt;
&lt;br /&gt;
GuiTextListCtrl:&lt;br /&gt;
onSelect(id,text) when row selected&lt;br /&gt;
onDblClick(id) when double-click on row or return key pressed&lt;br /&gt;
onDeleteKey(id) when delete key pressed&lt;br /&gt;
onIconResized(w,h) when setIconSize() called&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&lt;br /&gt;
GuiPopUpMenuCtrl:&lt;br /&gt;
onSelect(id,text) when menu option choosen&lt;br /&gt;
onCancel() when menu is closed without action&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&lt;br /&gt;
GuiMenuBar:&lt;br /&gt;
onMenuSelect(menuid,menutext)&lt;br /&gt;
onMenuItemSelect(menuid,menutext,itemid,itemtext)&lt;br /&gt;
&lt;br /&gt;
GuiTreeViewCtrl:&lt;br /&gt;
onSelect(id,rightmouse) when row selected&lt;br /&gt;
onUnselect(id) when row de-selected&lt;br /&gt;
onInspect(id) when clicked on the name of an item&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
onContextMenu(&amp;quot;x y&amp;quot;,id) when clicked with right-mouse key on row&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1374</id>
		<title>Creation/Dev/GScript2</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1374"/>
		<updated>2005-02-06T16:56:40Z</updated>

		<summary type="html">&lt;p&gt;Evil: /* Players */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GScript 2 is the new scripting engine for [[Graal]]&lt;br /&gt;
&lt;br /&gt;
== Old Script Compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Removed functionality ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;toinventory&lt;br /&gt;
&amp;lt;li&amp;gt;followplayer&lt;br /&gt;
&amp;lt;li&amp;gt;playersays()&lt;br /&gt;
&amp;lt;li&amp;gt;setbackpal&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supported old scripting commands &amp;amp; their mapping to new script ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;addstring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;addstring(string,string);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;addtiledef oldstring, oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;addtiledef(string,string,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;addtiledef2 oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;addtiledef2(string,string,float,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;attachplayertoobj float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;attachplayertoobj(float,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;blockagain;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                blockagain();&lt;br /&gt;
&amp;lt;dt&amp;gt;blockagainlocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                blockagainlocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;callnpc float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                callnpc(float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;callweapon float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                callweapon(float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;canbecarried;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbecarried();&lt;br /&gt;
&amp;lt;dt&amp;gt;canbepulled;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbepulled();&lt;br /&gt;
&amp;lt;dt&amp;gt;canbepushed;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbepushed();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbecarried;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbecarried();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbepulled;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbepulled();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbepushed;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbepushed();&lt;br /&gt;
&amp;lt;dt&amp;gt;canwarp;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canwarp();&lt;br /&gt;
&amp;lt;dt&amp;gt;canwarp2;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canwarp2();&lt;br /&gt;
&amp;lt;dt&amp;gt;carryobject oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                carryobject(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgcolors float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgcolors(float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgmode float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgmode(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgpart float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgpart(float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgvis float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgvis(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgzoom float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgzoom(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;deletestring oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                deletestring(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;destroy;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                destroy();&lt;br /&gt;
&amp;lt;dt&amp;gt;detachplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                detachplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;disabledefmovement;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disabledefmovement();&lt;br /&gt;
&amp;lt;dt&amp;gt;disablemap;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disablemap();&lt;br /&gt;
&amp;lt;dt&amp;gt;disablepause;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disablepause();&lt;br /&gt;
&amp;lt;dt&amp;gt;disableselectweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disableselectweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;disableweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disableweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;dontblock;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                dontblock();&lt;br /&gt;
&amp;lt;dt&amp;gt;dontblocklocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                dontblocklocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawaslight;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawaslight();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawoverplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawoverplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawunderplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawunderplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;enabledefmovement;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enabledefmovement();&lt;br /&gt;
&amp;lt;dt&amp;gt;enablefeatures float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablefeatures(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;enablemap;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablemap();&lt;br /&gt;
&amp;lt;dt&amp;gt;enablepause;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablepause();&lt;br /&gt;
&amp;lt;dt&amp;gt;enableselectweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enableselectweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;enableweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enableweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;explodebomb float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                explodebomb(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;followplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                followplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;freezeplayer float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                freezeplayer(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;freezeplayer2;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                freezeplayer2();&lt;br /&gt;
&amp;lt;dt&amp;gt;hide;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hide();&lt;br /&gt;
&amp;lt;dt&amp;gt;hideimg float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideimg(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hideimgs float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideimgs(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hidelocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hidelocal();&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;hitcompu float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitcompu(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitnpc float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitnpc(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitobjects float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitobjects(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hideplayer float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideplayer(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hidesword float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hidesword(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitplayer float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitplayer(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hurt float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hurt(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;insertstring oldstring, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                insertstring(string,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;join oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                join(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;lay oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                lay(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;lay2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                lay2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;loadmap oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                loadmap(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;message oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                message(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;move float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                move(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;noplayerkilling;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                noplayerkilling();&lt;br /&gt;
&amp;lt;dt&amp;gt;openurl oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                openurl(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;openurl2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                openurl2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;play oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                play(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;play2 oldstring, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                play2(string,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;playlooped oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                playlooped(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;putbomb float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putbomb(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putcomp oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putcomp(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putexplosion float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putexplosion(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putexplosion2 float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putexplosion2(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;puthorse oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                puthorse(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putleaps float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putleaps(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnewcomp oldstring, float, float, oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnewcomp(string,float,float,string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnpc oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnpc(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnpc2 float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnpc2(float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;reflectarrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                reflectarrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removearrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removearrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removebomb float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removebomb(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removecompus;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removecompus();&lt;br /&gt;
&amp;lt;dt&amp;gt;removeexplo float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removeexplo(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removehorse float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removehorse(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removeitem float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removeitem(float)&lt;br /&gt;
&amp;lt;dt&amp;gt;removestring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removestring(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;removetiledefs oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removetiledefs(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;replaceani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                replaceani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;replacestring oldstring, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                replacestring(string,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;resetfocus;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                resetfocus();&lt;br /&gt;
&amp;lt;dt&amp;gt;savelog oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                savelog(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;savelog2 oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                savelog2(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;say float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                say(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;say2 oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                say2(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendrpgmessage oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendrpgmessage(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendpm oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendpm(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendtonc oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendtonc(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendtorc oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendtorc(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;serverwarp oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                serverwarp(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;set oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                set(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setarray float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setarray(var,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setbeltcolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setbeltcolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setbow oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setbow(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcharani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcharani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setchargender oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setchargender(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcharprop oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                string = string;&lt;br /&gt;
&amp;lt;dt&amp;gt;setcoatcolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcoatcolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcoloreffect float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcoloreffect(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcursor float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcursor(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcurcor2 oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcursor2(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;seteffect float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seteffect(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;seteffectmode float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seteffectmode(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setfocus float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setfocus(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setgender oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setgender(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sethead oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sethead(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setlevel oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setlevel(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setlevel2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setlevel2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setmap oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setmap(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setminimap oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setminimap(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setmusicvolume float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setmusicvolume(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setimg oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setimg(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setimgpart oldstring, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setimgpart(string,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setletters oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setletters(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setplayerdir oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setplayerdir(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setplayerprop oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                string = string;&lt;br /&gt;
&amp;lt;dt&amp;gt;setpm oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setpm(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshape float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshape(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshape2 float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshape2(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshield oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshield(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshoecolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshoecolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshootparams oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshootparams(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setskincolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setskincolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setsleevecolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setsleevecolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setstring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setstring(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setsword oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setsword(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;seturllevel oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seturllevel(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setz float, float, float, float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setz(float,float,float,float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setzoomeffect float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setzoomeffect(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shoot float, float, float, float, float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shoot(float,float,float,float,float,float,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootarrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootarrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootball;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootball();&lt;br /&gt;
&amp;lt;dt&amp;gt;shootfireball float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootfireball(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootfireblast float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootfireblast(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootnuke float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootnuke(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;show;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                show();&lt;br /&gt;
&amp;lt;dt&amp;gt;showani float, float, float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showani(float,float,float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showani2 float, float, float, float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showani2(float,float,float,float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showcharacter;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showcharacter();&lt;br /&gt;
&amp;lt;dt&amp;gt;showfile oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showfile(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showimg float, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showimg(float,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showimg2 float, oldstring, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showimg2(float,string,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showlocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showlocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;showpoly float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showpoly(float,array);&lt;br /&gt;
&amp;lt;dt&amp;gt;showpoly2 float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showpoly2(float,array);&lt;br /&gt;
&amp;lt;dt&amp;gt;showstats float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showstats(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showtext float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showtext(float,float,float,string,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showtext2 float, float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showtext2(float,float,float,float,string,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sleep float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sleep(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;spyfire float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                spyfire(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;stopmidi;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                stopmidi();&lt;br /&gt;
&amp;lt;dt&amp;gt;stopsound oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                stopsound(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;take oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                take(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;take2 float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                take2(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;takehorse float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takehorse(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;takeplayercarry;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takeplayercarry();&lt;br /&gt;
&amp;lt;dt&amp;gt;takeplayerhorse;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takeplayerhorse();&lt;br /&gt;
&amp;lt;dt&amp;gt;throwcarry;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                throwcarry();&lt;br /&gt;
&amp;lt;dt&amp;gt;timereverywhere;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                timereverywhere();&lt;br /&gt;
&amp;lt;dt&amp;gt;timershow;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                timershow();&lt;br /&gt;
&amp;lt;dt&amp;gt;toinventory oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                toinventory(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;tokenize oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = string.tokenize();&lt;br /&gt;
&amp;lt;dt&amp;gt;tokenize2 oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = string.tokenize(&amp;quot; ,&amp;quot; @ string);&lt;br /&gt;
&amp;lt;dt&amp;gt;toweapons oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                toweapons(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;triggeraction float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                triggeraction(float,float,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;unfreezeplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                unfreezeplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;unset oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                unset(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;updateboard float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                updateboard(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;updateterrain;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                updateterrain();&lt;br /&gt;
&amp;lt;dt&amp;gt;wraptext float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = wraptext(float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;wraptext2 float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = wraptext2(float,float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supported old string operations ===&lt;br /&gt;
&lt;br /&gt;
These old string operators can be used in string parameters for the old commands, also you can use them directly as operators, e.g.&amp;lt;br/&amp;gt;&lt;br /&gt;
#c = &amp;quot;hello&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
is actually doing&amp;lt;br/&amp;gt;&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#a            player.account&lt;br /&gt;
#a(float)     players[float].account&lt;br /&gt;
#m            player.ani&lt;br /&gt;
              ani&lt;br /&gt;
#m(float)     players[float].ani&lt;br /&gt;
#K(float)     ascii(float)&lt;br /&gt;
#8            player.bodyimg&lt;br /&gt;
              bodyimg&lt;br /&gt;
#8(float)     players[float].bodyimg&lt;br /&gt;
#c            player.chat&lt;br /&gt;
              chat&lt;br /&gt;
#c(float)     players[float].chat&lt;br /&gt;
#C0           player.colors[0]&lt;br /&gt;
              colors[0]&lt;br /&gt;
#C0(float)    players[float].colors[0]&lt;br /&gt;
#C1           player.colors[1]&lt;br /&gt;
              colors[1]&lt;br /&gt;
#C1(float)    players[float].colors[1]&lt;br /&gt;
#C2           player.colors[2]&lt;br /&gt;
              colors[2]&lt;br /&gt;
#C2(float)    players[float].colors[2]&lt;br /&gt;
#C3           player.colors[3]&lt;br /&gt;
              colors[3]&lt;br /&gt;
#C3(float)    players[float].colors[3]&lt;br /&gt;
#C4           player.colors[4]&lt;br /&gt;
              colors[4]&lt;br /&gt;
#C4(float)    players[float].colors[4]&lt;br /&gt;
#C5           player.colors[5]&lt;br /&gt;
              colors[5]&lt;br /&gt;
#C5(float)    players[float].colors[5]&lt;br /&gt;
#D            downloadfile()&lt;br /&gt;
#E            emoticonchar()&lt;br /&gt;
#e(float,float,oldstring)&lt;br /&gt;
              string.substring(float,float)&lt;br /&gt;
#g            player.guild&lt;br /&gt;
              guild&lt;br /&gt;
#g(float)     players[float].guild&lt;br /&gt;
#3            player.headimg&lt;br /&gt;
              headimg&lt;br /&gt;
#3(float)     players[float].headimg&lt;br /&gt;
#5            player.horseimg&lt;br /&gt;
              horseimg&lt;br /&gt;
#5(float)     players[float].horseimg&lt;br /&gt;
#k(float)     keyname(float)&lt;br /&gt;
#L            player.level&lt;br /&gt;
#I(oldstring,float)&lt;br /&gt;
              getstring(string)[float]&lt;br /&gt;
#n            player.nick&lt;br /&gt;
              nick&lt;br /&gt;
#n(float)     players[float].nick&lt;br /&gt;
#f            image&lt;br /&gt;
#f(float)     npcs[float].image&lt;br /&gt;
#F            level&lt;br /&gt;
#p(float)     params[float]&lt;br /&gt;
#P(float)     player.attr[float]&lt;br /&gt;
              attr[float]&lt;br /&gt;
#P(float,float)&lt;br /&gt;
              players[float].attr[float]&lt;br /&gt;
#P1           player.attr[1]&lt;br /&gt;
              attr[1]&lt;br /&gt;
#P1(float)    players[float].attr[1]&lt;br /&gt;
#P2           player.attr[2]&lt;br /&gt;
              attr[2]&lt;br /&gt;
#P2(float)    players[float].attr[2]&lt;br /&gt;
#P3           player.attr[3]&lt;br /&gt;
              attr[3]&lt;br /&gt;
#P3(float)    players[float].attr[3]&lt;br /&gt;
#P4           player.attr[4]&lt;br /&gt;
              attr[4]&lt;br /&gt;
#P4(float)    players[float].attr[4]&lt;br /&gt;
#P5           player.attr[5]&lt;br /&gt;
              attr[5]&lt;br /&gt;
#P5(float)    players[float].attr[5]&lt;br /&gt;
#P6           player.attr[6]&lt;br /&gt;
              attr[6]&lt;br /&gt;
#P6(float)    players[float].attr[6]&lt;br /&gt;
#P7           player.attr[7]&lt;br /&gt;
              attr[7]&lt;br /&gt;
#P7(float)    players[float].attr[7]&lt;br /&gt;
#P8           player.attr[8]&lt;br /&gt;
              attr[8]&lt;br /&gt;
#P8(float)    players[float].attr[8]&lt;br /&gt;
#P9           player.attr[9]&lt;br /&gt;
              attr[9]&lt;br /&gt;
#P9(float)    players[float].attr[9]&lt;br /&gt;
#R(oldstring) string.random()&lt;br /&gt;
#2            player.shieldimg&lt;br /&gt;
              shieldimg&lt;br /&gt;
#2(float)     players[float].shieldimg&lt;br /&gt;
#s(oldstring) getstring(string)&lt;br /&gt;
#1            player.swordimg&lt;br /&gt;
              swordimg&lt;br /&gt;
#1(float)     players[float].swordimg&lt;br /&gt;
#S            player.sword.script&lt;br /&gt;
#t(float)     tokens[float]&lt;br /&gt;
#T(oldstring) string.trim()&lt;br /&gt;
#v(float)     float&lt;br /&gt;
#W            player.weapon.icon&lt;br /&gt;
#W(float)     weapons[float].icon&lt;br /&gt;
#w            player.weapon.script&lt;br /&gt;
#w(float)     weapons[float].script&lt;br /&gt;
&lt;br /&gt;
Compatibility note:&lt;br /&gt;
When you use the command setcharprop then the first parameter&lt;br /&gt;
is handled differently: instead of changing 'player.chat' it&lt;br /&gt;
is changing 'chat', the chat text of the npc. So 'setcharprop #c,hello'&lt;br /&gt;
would be translated into&lt;br /&gt;
chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
while 'setplayerprop #c,hello' is translated into&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
In the list above both possibilities are listed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Old Script Compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Operators ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Addition                  a + b&lt;br /&gt;
Substraction              a - b&lt;br /&gt;
Mulitplication            a * b&lt;br /&gt;
Division                  a / b&lt;br /&gt;
Modulus                   a % b&lt;br /&gt;
Power                     a ^ b&lt;br /&gt;
String Concationation     a @ b&lt;br /&gt;
Bool-And                  a &amp;amp;&amp;amp; b&lt;br /&gt;
Bool-Or                   a || b&lt;br /&gt;
Bool-Not                  !a&lt;br /&gt;
Negative                  -a&lt;br /&gt;
Equal                     a == b&lt;br /&gt;
Not-Equal                 a != b&lt;br /&gt;
Less                      a &amp;lt; b&lt;br /&gt;
Greater                   a &amp;gt; b&lt;br /&gt;
Less-Equal                a &amp;lt;= b,  a =&amp;lt; b&lt;br /&gt;
Greater-Equal             a &amp;gt;= b,  a =&amp;gt; b&lt;br /&gt;
In-Range                  a in &amp;lt;b,c&amp;gt;, a in |b,c&amp;gt;, a in &amp;lt;b,c|, a in |b,c|&lt;br /&gt;
In-Array                  a in {b,c,...}, {a,b,...} in {c,d,...}&lt;br /&gt;
Array-Constructor         {a,b,...}&lt;br /&gt;
Empty Array               new [count]&lt;br /&gt;
Array Member              a[index]&lt;br /&gt;
Function call             a(), a(b,c,...)&lt;br /&gt;
Object Attribute          a.b, a.(b)&lt;br /&gt;
Post Increment            a++&lt;br /&gt;
Post Decrement            a--&lt;br /&gt;
Pre Increment             ++a&lt;br /&gt;
Pre Decrement             --a&lt;br /&gt;
Old String Function       #a&lt;br /&gt;
Conditional               a? b : c&lt;br /&gt;
Assignment                a = b, a := b&lt;br /&gt;
Additive Assignment       a += b&lt;br /&gt;
Substractive Assignment   a -= b&lt;br /&gt;
Multiplicative Assignment a *= b&lt;br /&gt;
Division Assignment       a /= b&lt;br /&gt;
Modulus Assignment        a %= b&lt;br /&gt;
Power Assignment          a ^= b&lt;br /&gt;
String Append             a @= b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Accessing Variables ===&lt;br /&gt;
&lt;br /&gt;
Graal Script variables are 'variant', that means they are objects&lt;br /&gt;
that hold values of different types.&lt;br /&gt;
When you assign a value to the variable then it automatically&lt;br /&gt;
switches to the right type:&lt;br /&gt;
&lt;br /&gt;
Numeric (floating point):&lt;br /&gt;
  var = 1;&lt;br /&gt;
String:&lt;br /&gt;
  var = &amp;quot;hello&amp;quot;;&lt;br /&gt;
Object link:&lt;br /&gt;
  var = player;&lt;br /&gt;
Array (list of objects):&lt;br /&gt;
  var = {1,2,3};&lt;br /&gt;
&lt;br /&gt;
You can check the current type with the&lt;br /&gt;
type()-function - obj.type() returns&lt;br /&gt;
0,1,2,3 for numeric, string, object or array.&lt;br /&gt;
&lt;br /&gt;
=== Standard Object Functions ===&lt;br /&gt;
&lt;br /&gt;
obj.name&lt;br /&gt;
obj.type()  - gets the type of the var (float 0, string 1, object 2, array 3)&lt;br /&gt;
obj.length() - string length&lt;br /&gt;
obj.trim()&lt;br /&gt;
obj.tokenize([delimiters])&lt;br /&gt;
obj.charat(pos)&lt;br /&gt;
obj.pos(substring)&lt;br /&gt;
obj.beginswith(string)&lt;br /&gt;
obj.endson(string)&lt;br /&gt;
obj.substring(index[,length])&lt;br /&gt;
obj.size() - array length&lt;br /&gt;
obj.index(obj2) - position of obj2 in the array&lt;br /&gt;
obj.clear()&lt;br /&gt;
obj.add(obj2)&lt;br /&gt;
obj.delete(index)&lt;br /&gt;
obj.remove(obj2)&lt;br /&gt;
obj.replace(index,obj2)&lt;br /&gt;
obj.insert(index,obj2)&lt;br /&gt;
obj.getvarnames() - list of the object attributes&lt;br /&gt;
obj.geteditvarnames()&lt;br /&gt;
obj.loadstring(filename)&lt;br /&gt;
obj.loadlines(filename)&lt;br /&gt;
obj.loadvars(filename)&lt;br /&gt;
obj.savestring(filename,mode)&lt;br /&gt;
obj.savelines(filename,mode)&lt;br /&gt;
obj.savevars(filename,mode)&lt;br /&gt;
&lt;br /&gt;
==== NPCs ====&lt;br /&gt;
&lt;br /&gt;
npc.actionplayer - integer, read only&lt;br /&gt;
npc.ani - object, read only&lt;br /&gt;
npc.anistep - integer, read only&lt;br /&gt;
npc.ap - integer&lt;br /&gt;
npc.attr - array&lt;br /&gt;
npc.attached - boolean, read only&lt;br /&gt;
npc.attachid - integer, read only&lt;br /&gt;
npc.attachtype - integer, read only&lt;br /&gt;
npc.body - object&lt;br /&gt;
npc.bodyimg - string&lt;br /&gt;
npc.bombs - integer&lt;br /&gt;
npc.chat - string&lt;br /&gt;
npc.colors - array&lt;br /&gt;
npc.darts - integer&lt;br /&gt;
npc.dir - integer&lt;br /&gt;
npc.glovepower - integer&lt;br /&gt;
npc.gralats - integer&lt;br /&gt;
npc.head - object&lt;br /&gt;
npc.headimg - string&lt;br /&gt;
npc.headset - integer&lt;br /&gt;
npc.hearts - floating point value, better use npc.hp&lt;br /&gt;
npc.height - floating point value, read only&lt;br /&gt;
npc.horseimg - string&lt;br /&gt;
npc.hp - floating point value&lt;br /&gt;
npc.hurtdx - floating point value&lt;br /&gt;
npc.hurtdy - floating point value&lt;br /&gt;
npc.id - integer, read only&lt;br /&gt;
npc.isfemale - boolean, read only&lt;br /&gt;
npc.ismale - boolean, read only&lt;br /&gt;
npc.isweapon - boolean, read only&lt;br /&gt;
npc.layer - integer&lt;br /&gt;
npc.mp - integer&lt;br /&gt;
npc.nick - string&lt;br /&gt;
npc.peltwithnpc - boolean, read only&lt;br /&gt;
npc.peltwithbush - boolean, read only&lt;br /&gt;
npc.peltwithsign - boolean, read only&lt;br /&gt;
npc.peltwithvase - boolean, read only&lt;br /&gt;
npc.peltwithstone - boolean, read only&lt;br /&gt;
npc.peltwithblackstone - boolean, read only&lt;br /&gt;
npc.rupees - integer, better use npc.gralats&lt;br /&gt;
npc.shield - object&lt;br /&gt;
npc.shieldimg - string&lt;br /&gt;
npc.shieldpower - integer&lt;br /&gt;
npc.sprite - integer&lt;br /&gt;
npc.sword - object&lt;br /&gt;
npc.swordimg - string&lt;br /&gt;
npc.swordpower - integer&lt;br /&gt;
npc.timeout - floating point value&lt;br /&gt;
npc.visible - boolean&lt;br /&gt;
npc.width - floating point value, read only&lt;br /&gt;
npc.x - floating point value&lt;br /&gt;
npc.y - floating point value&lt;br /&gt;
npc.z - floating point value&lt;br /&gt;
&lt;br /&gt;
npc.blockagain()&lt;br /&gt;
npc.blockagainlocal()&lt;br /&gt;
npc.canbecarried()&lt;br /&gt;
npc.cannotbecarried()&lt;br /&gt;
npc.canbepushed()&lt;br /&gt;
npc.cannotbepushed()&lt;br /&gt;
npc.canbepulled()&lt;br /&gt;
npc.cannotbepulled()&lt;br /&gt;
npc.carryobject(name)&lt;br /&gt;
npc.catchevent(object name,event,function)&lt;br /&gt;
npc.changeimgcolors(index,red,green,blue,alpha)&lt;br /&gt;
npc.changeimgmode(index,mode)&lt;br /&gt;
npc.changeimgpart(index,x,y,width,height)&lt;br /&gt;
npc.changeimgvis(index,layer)&lt;br /&gt;
npc.changeimgzoom(index,zoom factor)&lt;br /&gt;
npc.destroy()&lt;br /&gt;
npc.dontblock()&lt;br /&gt;
npc.dontblocklocal()&lt;br /&gt;
npc.drawaslight()&lt;br /&gt;
npc.drawoverplayer()&lt;br /&gt;
npc.drawunderplayer()&lt;br /&gt;
npc.getimageforsprite(sprite) - returns image&lt;br /&gt;
npc.getsprite(string) - returns sprite&lt;br /&gt;
npc.getspriteforspritepos(spritepos) - returns sprite&lt;br /&gt;
npc.hide()&lt;br /&gt;
npc.hidelocal()&lt;br /&gt;
npc.hideimg(index)&lt;br /&gt;
npc.hideimgs(startindex,endindex)&lt;br /&gt;
npc.hurt(power)&lt;br /&gt;
npc.ignoreevent(object name,event)&lt;br /&gt;
npc.ignoreevents(object name)&lt;br /&gt;
npc.lay(item name)&lt;br /&gt;
npc.message(text)&lt;br /&gt;
npc.move(delta x,delta y,time,options)&lt;br /&gt;
npc.setbow(image name)&lt;br /&gt;
npc.setcharani(ani name,parameters)&lt;br /&gt;
npc.setchargender(&amp;quot;male&amp;quot; or &amp;quot;female&amp;quot;)&lt;br /&gt;
npc.setcoloreffect(red,green,blue,alpha)&lt;br /&gt;
npc.seteffectmode(mode)&lt;br /&gt;
npc.setimg(image name)&lt;br /&gt;
npc.setimgpart(image name,x,y,width,height)&lt;br /&gt;
npc.setshape(type,pixelwidth,pixelheight)&lt;br /&gt;
npc.setshape2(tilewidth,tileheight,tilearray)&lt;br /&gt;
npc.setzoomeffect(zoom factor)&lt;br /&gt;
npc.shootarrow(direction)&lt;br /&gt;
npc.shootball()&lt;br /&gt;
npc.shootfireball(direction)&lt;br /&gt;
npc.shootfireblast(direction)&lt;br /&gt;
npc.shootnuke(direction)&lt;br /&gt;
npc.show()&lt;br /&gt;
npc.showani(index,x,y,direction,ani name,parameters)&lt;br /&gt;
npc.showani2(index,x,y,z,direction,ani name,parameters)&lt;br /&gt;
npc.showcharacter()&lt;br /&gt;
npc.showimg(index,image name,x,y)&lt;br /&gt;
npc.showimg2(index,image name,x,y,z)&lt;br /&gt;
npc.showlocal()&lt;br /&gt;
npc.showpoly(index,array)&lt;br /&gt;
npc.showpoly2(index,array)&lt;br /&gt;
npc.showtext(index,x,y,font,style,text)&lt;br /&gt;
npc.showtext2(index,x,y,z,font,style,text)&lt;br /&gt;
npc.take(item name)&lt;br /&gt;
npc.take2(item index)&lt;br /&gt;
npc.takehorse(horse index)&lt;br /&gt;
npc.throwcarry()&lt;br /&gt;
npc.timereverywhere()&lt;br /&gt;
npc.timershow()&lt;br /&gt;
npc.toweapons(weapon name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Players ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
player.account - string, read only&lt;br /&gt;
player.ani - object, read only&lt;br /&gt;
player.anistep - integer, read only&lt;br /&gt;
player.ap - integer&lt;br /&gt;
player.attached - boolean, read only&lt;br /&gt;
player.attachid - integer, read only&lt;br /&gt;
player.attachtype - integer, read only&lt;br /&gt;
player.attr - array&lt;br /&gt;
player.body - object&lt;br /&gt;
player.bodyimg - string&lt;br /&gt;
player.bombs - integer&lt;br /&gt;
player.chat - string&lt;br /&gt;
player.colors - array&lt;br /&gt;
player.darts - integer&lt;br /&gt;
player.dir - integer&lt;br /&gt;
player.freezetime - floating point value, only valid for local players&lt;br /&gt;
player.fullhearts - integer, read only, better use player.maxhp&lt;br /&gt;
player.glovepower - integer&lt;br /&gt;
player.gralats - integer&lt;br /&gt;
player.head - object&lt;br /&gt;
player.headimg - string&lt;br /&gt;
player.headset - integer&lt;br /&gt;
player.hearts - floating point value, only editable for local players, better use player.hp&lt;br /&gt;
player.horseimg - string, only editable for local players&lt;br /&gt;
player.hp - floating point value, only editable for local players&lt;br /&gt;
player.hurt - boolean, read only, only valid for local players&lt;br /&gt;
player.hurtdx - floating point value, read only, only valid for local players&lt;br /&gt;
player.hurtdy - floating point value, read only, only valid for local players&lt;br /&gt;
player.hurted - boolean, read only, only valid for local players, better use player.hurt&lt;br /&gt;
player.hurtpower - floating point value, read only, only valid for local players&lt;br /&gt;
player.id - integer, read only&lt;br /&gt;
player.isfemale - boolean, read only&lt;br /&gt;
player.ismale - boolean, read only&lt;br /&gt;
player.letters - object, only valid for local players&lt;br /&gt;
player.level - object, read only&lt;br /&gt;
player.map - boolean, only valid for local players&lt;br /&gt;
player.maxhp - integer, read only&lt;br /&gt;
player.mp - integer&lt;br /&gt;
player.nick - string, read only for local players&lt;br /&gt;
player.onhorse - boolean, read only, only valid for local players&lt;br /&gt;
player.online - boolean, read only, only valid for local players&lt;br /&gt;
player.paused - boolean, read only, only valid for local players&lt;br /&gt;
player.reading - boolean, read only, only valid for local players&lt;br /&gt;
player.rupees - integer, better use player.gralats&lt;br /&gt;
player.shield - object&lt;br /&gt;
player.shieldimg - string&lt;br /&gt;
player.shieldpower - integer, read only&lt;br /&gt;
player.sprite - integer&lt;br /&gt;
player.swimming - boolean, read only, only valid for local players&lt;br /&gt;
player.sword - object&lt;br /&gt;
player.swordimg - string&lt;br /&gt;
player.swordpower - integer, read only&lt;br /&gt;
player.weapon - object, read only, only valid for local players&lt;br /&gt;
player.weapons - array, read only, only valid for local players&lt;br /&gt;
player.x - floating point value&lt;br /&gt;
player.y - floating point value&lt;br /&gt;
player.z - floating point value&lt;br /&gt;
&lt;br /&gt;
player.getimageforsprite(sprite) - returns object&lt;br /&gt;
player.getsprite(string) - returns object&lt;br /&gt;
player.getspriteforspritepos(spritepos) - returns object&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Levels ====&lt;br /&gt;
==== Ganis ====&lt;br /&gt;
&lt;br /&gt;
e.g. player.ani&lt;br /&gt;
ani.name&lt;br /&gt;
ani.sprites[]&lt;br /&gt;
ani.steps[]&lt;br /&gt;
ani.continuous&lt;br /&gt;
ani.singledirection&lt;br /&gt;
ani.looping&lt;br /&gt;
ani.ismovie&lt;br /&gt;
ani.setbackto&lt;br /&gt;
ani.ganitype&lt;br /&gt;
ani.getsprite(id)&lt;br /&gt;
ani.addsprite(id) returns the added sprite&lt;br /&gt;
ani.deletesprite(id)&lt;br /&gt;
ani.addstep()&lt;br /&gt;
ani.insertstep(index)&lt;br /&gt;
ani.deletestep(index)&lt;br /&gt;
&lt;br /&gt;
sprites:&lt;br /&gt;
sprite.spriteindex&lt;br /&gt;
sprite.image&lt;br /&gt;
sprite.imagetype&lt;br /&gt;
sprite.x&lt;br /&gt;
sprite.y&lt;br /&gt;
sprite.width&lt;br /&gt;
sprite.height&lt;br /&gt;
sprite.red&lt;br /&gt;
sprite.green&lt;br /&gt;
sprite.blue&lt;br /&gt;
sprite.alpha&lt;br /&gt;
sprite.zoom&lt;br /&gt;
sprite.mode&lt;br /&gt;
sprite.surface&lt;br /&gt;
sprite.attachments[]&lt;br /&gt;
sprite.addattachment()&lt;br /&gt;
sprite.insertattachment(index)&lt;br /&gt;
sprite.deleteattachment(index)&lt;br /&gt;
&lt;br /&gt;
attachment:&lt;br /&gt;
attachment.sprite&lt;br /&gt;
attachment.dx&lt;br /&gt;
attachment.dy&lt;br /&gt;
attachment.behind&lt;br /&gt;
&lt;br /&gt;
step:&lt;br /&gt;
step.spritespos[][]&lt;br /&gt;
step.sounds[]&lt;br /&gt;
step.delay&lt;br /&gt;
step.addpos(dir)&lt;br /&gt;
step.insertpos(dir,index)&lt;br /&gt;
step.deletepos(dir,index)&lt;br /&gt;
&lt;br /&gt;
spritepos:&lt;br /&gt;
spritepos.sprite&lt;br /&gt;
spritepos.param&lt;br /&gt;
spritepos.attr&lt;br /&gt;
spritepos.dx&lt;br /&gt;
spritepos.dy&lt;br /&gt;
&lt;br /&gt;
sound:&lt;br /&gt;
sound.sound&lt;br /&gt;
sound.dx&lt;br /&gt;
sound.dy&lt;br /&gt;
sound.delay&lt;br /&gt;
&lt;br /&gt;
also the gani owners (players, npcs) have those functions:&lt;br /&gt;
getimageforsprite(sprite)&lt;br /&gt;
getsprite(string)&lt;br /&gt;
getspriteforspritepos(spritepos)&lt;br /&gt;
&lt;br /&gt;
=== Standard functions ===&lt;br /&gt;
&lt;br /&gt;
format(format,parameters,...) - formats a &amp;quot;%s %d&amp;quot; string, inserts the parameters, and returns a string&lt;br /&gt;
int(a)&lt;br /&gt;
abs(a)&lt;br /&gt;
random(rangestart,rangeend)&lt;br /&gt;
sin(a)&lt;br /&gt;
cos(a)&lt;br /&gt;
arctan(a)&lt;br /&gt;
exp(a)&lt;br /&gt;
log(base,a)&lt;br /&gt;
min(a,b)&lt;br /&gt;
max(a,b)&lt;br /&gt;
getangle(delta x,delta y)&lt;br /&gt;
getdir(delta x,delta y)&lt;br /&gt;
vecx(direction)&lt;br /&gt;
vecy(direction)&lt;br /&gt;
&lt;br /&gt;
=== Standard variables ===&lt;br /&gt;
&lt;br /&gt;
== GUI ==&lt;br /&gt;
&lt;br /&gt;
=== GUI controls ===&lt;br /&gt;
&lt;br /&gt;
=== GUI events ===&lt;br /&gt;
&lt;br /&gt;
All controls:&lt;br /&gt;
onAdd() when added to the parent&lt;br /&gt;
onRemove() when removed from the parent&lt;br /&gt;
onWake() when activated&lt;br /&gt;
onSleep() when deactivated&lt;br /&gt;
onResize(w,h)&lt;br /&gt;
onMove(x,y)&lt;br /&gt;
onMouseEnter(modifier,x,y,clickcount)&lt;br /&gt;
onMouseLeave(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseMove(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelDown(modifier,x,y,clickcount)&lt;br /&gt;
onKeyDown(keycode,string)&lt;br /&gt;
onKeyUp(keycode,string)&lt;br /&gt;
onKeyRepeat(keycode,string)&lt;br /&gt;
&lt;br /&gt;
GuiMLTextCtrl:&lt;br /&gt;
onResize(w,h) when reflowing&lt;br /&gt;
onURL(url) when clicked on url&lt;br /&gt;
&lt;br /&gt;
GuiTextEditCtrl:&lt;br /&gt;
onTabComplete()&lt;br /&gt;
onAction(text) when return key pressed&lt;br /&gt;
&lt;br /&gt;
GuiTextListCtrl:&lt;br /&gt;
onSelect(id,text) when row selected&lt;br /&gt;
onDblClick(id) when double-click on row or return key pressed&lt;br /&gt;
onDeleteKey(id) when delete key pressed&lt;br /&gt;
onIconResized(w,h) when setIconSize() called&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&lt;br /&gt;
GuiPopUpMenuCtrl:&lt;br /&gt;
onSelect(id,text) when menu option choosen&lt;br /&gt;
onCancel() when menu is closed without action&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&lt;br /&gt;
GuiMenuBar:&lt;br /&gt;
onMenuSelect(menuid,menutext)&lt;br /&gt;
onMenuItemSelect(menuid,menutext,itemid,itemtext)&lt;br /&gt;
&lt;br /&gt;
GuiTreeViewCtrl:&lt;br /&gt;
onSelect(id,rightmouse) when row selected&lt;br /&gt;
onUnselect(id) when row de-selected&lt;br /&gt;
onInspect(id) when clicked on the name of an item&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
onContextMenu(&amp;quot;x y&amp;quot;,id) when clicked with right-mouse key on row&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1373</id>
		<title>Creation/Dev/GScript2</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=Creation/Dev/GScript2&amp;diff=1373"/>
		<updated>2005-02-06T16:56:03Z</updated>

		<summary type="html">&lt;p&gt;Evil: /* Operators */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GScript 2 is the new scripting engine for [[Graal]]&lt;br /&gt;
&lt;br /&gt;
== Old Script Compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Removed functionality ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;toinventory&lt;br /&gt;
&amp;lt;li&amp;gt;followplayer&lt;br /&gt;
&amp;lt;li&amp;gt;playersays()&lt;br /&gt;
&amp;lt;li&amp;gt;setbackpal&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supported old scripting commands &amp;amp; their mapping to new script ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;addstring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;addstring(string,string);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;addtiledef oldstring, oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;addtiledef(string,string,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;addtiledef2 oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;addtiledef2(string,string,float,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;attachplayertoobj float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;attachplayertoobj(float,float);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;blockagain;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                blockagain();&lt;br /&gt;
&amp;lt;dt&amp;gt;blockagainlocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                blockagainlocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;callnpc float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                callnpc(float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;callweapon float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                callweapon(float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;canbecarried;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbecarried();&lt;br /&gt;
&amp;lt;dt&amp;gt;canbepulled;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbepulled();&lt;br /&gt;
&amp;lt;dt&amp;gt;canbepushed;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canbepushed();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbecarried;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbecarried();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbepulled;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbepulled();&lt;br /&gt;
&amp;lt;dt&amp;gt;cannotbepushed;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                cannotbepushed();&lt;br /&gt;
&amp;lt;dt&amp;gt;canwarp;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canwarp();&lt;br /&gt;
&amp;lt;dt&amp;gt;canwarp2;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                canwarp2();&lt;br /&gt;
&amp;lt;dt&amp;gt;carryobject oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                carryobject(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgcolors float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgcolors(float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgmode float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgmode(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgpart float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgpart(float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgvis float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgvis(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;changeimgzoom float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                changeimgzoom(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;deletestring oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                deletestring(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;destroy;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                destroy();&lt;br /&gt;
&amp;lt;dt&amp;gt;detachplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                detachplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;disabledefmovement;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disabledefmovement();&lt;br /&gt;
&amp;lt;dt&amp;gt;disablemap;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disablemap();&lt;br /&gt;
&amp;lt;dt&amp;gt;disablepause;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disablepause();&lt;br /&gt;
&amp;lt;dt&amp;gt;disableselectweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disableselectweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;disableweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                disableweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;dontblock;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                dontblock();&lt;br /&gt;
&amp;lt;dt&amp;gt;dontblocklocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                dontblocklocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawaslight;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawaslight();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawoverplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawoverplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;drawunderplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                drawunderplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;enabledefmovement;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enabledefmovement();&lt;br /&gt;
&amp;lt;dt&amp;gt;enablefeatures float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablefeatures(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;enablemap;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablemap();&lt;br /&gt;
&amp;lt;dt&amp;gt;enablepause;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enablepause();&lt;br /&gt;
&amp;lt;dt&amp;gt;enableselectweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enableselectweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;enableweapons;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                enableweapons();&lt;br /&gt;
&amp;lt;dt&amp;gt;explodebomb float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                explodebomb(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;followplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                followplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;freezeplayer float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                freezeplayer(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;freezeplayer2;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                freezeplayer2();&lt;br /&gt;
&amp;lt;dt&amp;gt;hide;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hide();&lt;br /&gt;
&amp;lt;dt&amp;gt;hideimg float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideimg(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hideimgs float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideimgs(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hidelocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hidelocal();&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;hitcompu float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitcompu(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitnpc float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitnpc(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitobjects float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitobjects(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hideplayer float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hideplayer(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hidesword float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hidesword(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hitplayer float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hitplayer(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;hurt float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                hurt(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;insertstring oldstring, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                insertstring(string,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;join oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                join(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;lay oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                lay(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;lay2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                lay2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;loadmap oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                loadmap(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;message oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                message(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;move float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                move(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;noplayerkilling;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                noplayerkilling();&lt;br /&gt;
&amp;lt;dt&amp;gt;openurl oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                openurl(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;openurl2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                openurl2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;play oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                play(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;play2 oldstring, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                play2(string,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;playlooped oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                playlooped(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;putbomb float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putbomb(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putcomp oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putcomp(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putexplosion float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putexplosion(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putexplosion2 float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putexplosion2(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;puthorse oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                puthorse(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putleaps float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putleaps(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnewcomp oldstring, float, float, oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnewcomp(string,float,float,string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnpc oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnpc(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;putnpc2 float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                putnpc2(float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;reflectarrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                reflectarrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removearrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removearrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removebomb float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removebomb(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removecompus;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removecompus();&lt;br /&gt;
&amp;lt;dt&amp;gt;removeexplo float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removeexplo(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removehorse float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removehorse(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;removeitem float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removeitem(float)&lt;br /&gt;
&amp;lt;dt&amp;gt;removestring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removestring(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;removetiledefs oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                removetiledefs(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;replaceani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                replaceani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;replacestring oldstring, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                replacestring(string,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;resetfocus;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                resetfocus();&lt;br /&gt;
&amp;lt;dt&amp;gt;savelog oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                savelog(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;savelog2 oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                savelog2(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;say float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                say(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;say2 oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                say2(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendrpgmessage oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendrpgmessage(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendpm oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendpm(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendtonc oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendtonc(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sendtorc oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sendtorc(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;serverwarp oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                serverwarp(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;set oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                set(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setarray float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setarray(var,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setbeltcolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setbeltcolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setbow oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setbow(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcharani oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcharani(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setchargender oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setchargender(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcharprop oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                string = string;&lt;br /&gt;
&amp;lt;dt&amp;gt;setcoatcolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcoatcolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcoloreffect float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcoloreffect(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcursor float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcursor(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setcurcor2 oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setcursor2(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;seteffect float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seteffect(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;seteffectmode float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seteffectmode(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setfocus float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setfocus(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setgender oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setgender(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sethead oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sethead(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setlevel oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setlevel(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setlevel2 oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setlevel2(string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setmap oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setmap(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setminimap oldstring, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setminimap(string,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setmusicvolume float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setmusicvolume(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setimg oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setimg(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setimgpart oldstring, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setimgpart(string,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setletters oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setletters(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setplayerdir oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setplayerdir(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setplayerprop oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                string = string;&lt;br /&gt;
&amp;lt;dt&amp;gt;setpm oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setpm(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshape float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshape(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshape2 float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshape2(float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshield oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshield(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshoecolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshoecolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setshootparams oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setshootparams(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setskincolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setskincolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setsleevecolor oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setsleevecolor(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setstring oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setstring(string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setsword oldstring, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setsword(string,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;seturllevel oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                seturllevel(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;setz float, float, float, float, float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setz(float,float,float,float,float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;setzoomeffect float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                setzoomeffect(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shoot float, float, float, float, float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shoot(float,float,float,float,float,float,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootarrow float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootarrow(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootball;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootball();&lt;br /&gt;
&amp;lt;dt&amp;gt;shootfireball float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootfireball(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootfireblast float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootfireblast(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;shootnuke float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                shootnuke(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;show;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                show();&lt;br /&gt;
&amp;lt;dt&amp;gt;showani float, float, float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showani(float,float,float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showani2 float, float, float, float, float, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showani2(float,float,float,float,float,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showcharacter;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showcharacter();&lt;br /&gt;
&amp;lt;dt&amp;gt;showfile oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showfile(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showimg float, oldstring, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showimg(float,string,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showimg2 float, oldstring, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showimg2(float,string,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showlocal;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showlocal();&lt;br /&gt;
&amp;lt;dt&amp;gt;showpoly float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showpoly(float,array);&lt;br /&gt;
&amp;lt;dt&amp;gt;showpoly2 float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showpoly2(float,array);&lt;br /&gt;
&amp;lt;dt&amp;gt;showstats float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showstats(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;showtext float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showtext(float,float,float,string,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;showtext2 float, float, float, float, oldstring, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                showtext2(float,float,float,float,string,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;sleep float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                sleep(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;spyfire float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                spyfire(float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;stopmidi;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                stopmidi();&lt;br /&gt;
&amp;lt;dt&amp;gt;stopsound oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                stopsound(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;take oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                take(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;take2 float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                take2(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;takehorse float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takehorse(float);&lt;br /&gt;
&amp;lt;dt&amp;gt;takeplayercarry;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takeplayercarry();&lt;br /&gt;
&amp;lt;dt&amp;gt;takeplayerhorse;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                takeplayerhorse();&lt;br /&gt;
&amp;lt;dt&amp;gt;throwcarry;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                throwcarry();&lt;br /&gt;
&amp;lt;dt&amp;gt;timereverywhere;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                timereverywhere();&lt;br /&gt;
&amp;lt;dt&amp;gt;timershow;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                timershow();&lt;br /&gt;
&amp;lt;dt&amp;gt;toinventory oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                toinventory(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;tokenize oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = string.tokenize();&lt;br /&gt;
&amp;lt;dt&amp;gt;tokenize2 oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = string.tokenize(&amp;quot; ,&amp;quot; @ string);&lt;br /&gt;
&amp;lt;dt&amp;gt;toweapons oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                toweapons(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;triggeraction float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                triggeraction(float,float,string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;unfreezeplayer;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                unfreezeplayer();&lt;br /&gt;
&amp;lt;dt&amp;gt;unset oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                unset(string);&lt;br /&gt;
&amp;lt;dt&amp;gt;updateboard float, float, float, float;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                updateboard(float,float,float,float);&lt;br /&gt;
&amp;lt;dt&amp;gt;updateterrain;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                updateterrain();&lt;br /&gt;
&amp;lt;dt&amp;gt;wraptext float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = wraptext(float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&amp;lt;dt&amp;gt;wraptext2 float, float, oldstring, oldstring;&lt;br /&gt;
&amp;lt;dd&amp;gt;                                tokens = wraptext2(float,float,&amp;quot; ,&amp;quot; @ string,string);&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supported old string operations ===&lt;br /&gt;
&lt;br /&gt;
These old string operators can be used in string parameters for the old commands, also you can use them directly as operators, e.g.&amp;lt;br/&amp;gt;&lt;br /&gt;
#c = &amp;quot;hello&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
is actually doing&amp;lt;br/&amp;gt;&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#a            player.account&lt;br /&gt;
#a(float)     players[float].account&lt;br /&gt;
#m            player.ani&lt;br /&gt;
              ani&lt;br /&gt;
#m(float)     players[float].ani&lt;br /&gt;
#K(float)     ascii(float)&lt;br /&gt;
#8            player.bodyimg&lt;br /&gt;
              bodyimg&lt;br /&gt;
#8(float)     players[float].bodyimg&lt;br /&gt;
#c            player.chat&lt;br /&gt;
              chat&lt;br /&gt;
#c(float)     players[float].chat&lt;br /&gt;
#C0           player.colors[0]&lt;br /&gt;
              colors[0]&lt;br /&gt;
#C0(float)    players[float].colors[0]&lt;br /&gt;
#C1           player.colors[1]&lt;br /&gt;
              colors[1]&lt;br /&gt;
#C1(float)    players[float].colors[1]&lt;br /&gt;
#C2           player.colors[2]&lt;br /&gt;
              colors[2]&lt;br /&gt;
#C2(float)    players[float].colors[2]&lt;br /&gt;
#C3           player.colors[3]&lt;br /&gt;
              colors[3]&lt;br /&gt;
#C3(float)    players[float].colors[3]&lt;br /&gt;
#C4           player.colors[4]&lt;br /&gt;
              colors[4]&lt;br /&gt;
#C4(float)    players[float].colors[4]&lt;br /&gt;
#C5           player.colors[5]&lt;br /&gt;
              colors[5]&lt;br /&gt;
#C5(float)    players[float].colors[5]&lt;br /&gt;
#D            downloadfile()&lt;br /&gt;
#E            emoticonchar()&lt;br /&gt;
#e(float,float,oldstring)&lt;br /&gt;
              string.substring(float,float)&lt;br /&gt;
#g            player.guild&lt;br /&gt;
              guild&lt;br /&gt;
#g(float)     players[float].guild&lt;br /&gt;
#3            player.headimg&lt;br /&gt;
              headimg&lt;br /&gt;
#3(float)     players[float].headimg&lt;br /&gt;
#5            player.horseimg&lt;br /&gt;
              horseimg&lt;br /&gt;
#5(float)     players[float].horseimg&lt;br /&gt;
#k(float)     keyname(float)&lt;br /&gt;
#L            player.level&lt;br /&gt;
#I(oldstring,float)&lt;br /&gt;
              getstring(string)[float]&lt;br /&gt;
#n            player.nick&lt;br /&gt;
              nick&lt;br /&gt;
#n(float)     players[float].nick&lt;br /&gt;
#f            image&lt;br /&gt;
#f(float)     npcs[float].image&lt;br /&gt;
#F            level&lt;br /&gt;
#p(float)     params[float]&lt;br /&gt;
#P(float)     player.attr[float]&lt;br /&gt;
              attr[float]&lt;br /&gt;
#P(float,float)&lt;br /&gt;
              players[float].attr[float]&lt;br /&gt;
#P1           player.attr[1]&lt;br /&gt;
              attr[1]&lt;br /&gt;
#P1(float)    players[float].attr[1]&lt;br /&gt;
#P2           player.attr[2]&lt;br /&gt;
              attr[2]&lt;br /&gt;
#P2(float)    players[float].attr[2]&lt;br /&gt;
#P3           player.attr[3]&lt;br /&gt;
              attr[3]&lt;br /&gt;
#P3(float)    players[float].attr[3]&lt;br /&gt;
#P4           player.attr[4]&lt;br /&gt;
              attr[4]&lt;br /&gt;
#P4(float)    players[float].attr[4]&lt;br /&gt;
#P5           player.attr[5]&lt;br /&gt;
              attr[5]&lt;br /&gt;
#P5(float)    players[float].attr[5]&lt;br /&gt;
#P6           player.attr[6]&lt;br /&gt;
              attr[6]&lt;br /&gt;
#P6(float)    players[float].attr[6]&lt;br /&gt;
#P7           player.attr[7]&lt;br /&gt;
              attr[7]&lt;br /&gt;
#P7(float)    players[float].attr[7]&lt;br /&gt;
#P8           player.attr[8]&lt;br /&gt;
              attr[8]&lt;br /&gt;
#P8(float)    players[float].attr[8]&lt;br /&gt;
#P9           player.attr[9]&lt;br /&gt;
              attr[9]&lt;br /&gt;
#P9(float)    players[float].attr[9]&lt;br /&gt;
#R(oldstring) string.random()&lt;br /&gt;
#2            player.shieldimg&lt;br /&gt;
              shieldimg&lt;br /&gt;
#2(float)     players[float].shieldimg&lt;br /&gt;
#s(oldstring) getstring(string)&lt;br /&gt;
#1            player.swordimg&lt;br /&gt;
              swordimg&lt;br /&gt;
#1(float)     players[float].swordimg&lt;br /&gt;
#S            player.sword.script&lt;br /&gt;
#t(float)     tokens[float]&lt;br /&gt;
#T(oldstring) string.trim()&lt;br /&gt;
#v(float)     float&lt;br /&gt;
#W            player.weapon.icon&lt;br /&gt;
#W(float)     weapons[float].icon&lt;br /&gt;
#w            player.weapon.script&lt;br /&gt;
#w(float)     weapons[float].script&lt;br /&gt;
&lt;br /&gt;
Compatibility note:&lt;br /&gt;
When you use the command setcharprop then the first parameter&lt;br /&gt;
is handled differently: instead of changing 'player.chat' it&lt;br /&gt;
is changing 'chat', the chat text of the npc. So 'setcharprop #c,hello'&lt;br /&gt;
would be translated into&lt;br /&gt;
chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
while 'setplayerprop #c,hello' is translated into&lt;br /&gt;
player.chat = &amp;quot;hello&amp;quot;&lt;br /&gt;
In the list above both possibilities are listed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Old Script Compatibility ==&lt;br /&gt;
&lt;br /&gt;
=== Operators ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Addition                  a + b&lt;br /&gt;
Substraction              a - b&lt;br /&gt;
Mulitplication            a * b&lt;br /&gt;
Division                  a / b&lt;br /&gt;
Modulus                   a % b&lt;br /&gt;
Power                     a ^ b&lt;br /&gt;
String Concationation     a @ b&lt;br /&gt;
Bool-And                  a &amp;amp;&amp;amp; b&lt;br /&gt;
Bool-Or                   a || b&lt;br /&gt;
Bool-Not                  !a&lt;br /&gt;
Negative                  -a&lt;br /&gt;
Equal                     a == b&lt;br /&gt;
Not-Equal                 a != b&lt;br /&gt;
Less                      a &amp;lt; b&lt;br /&gt;
Greater                   a &amp;gt; b&lt;br /&gt;
Less-Equal                a &amp;lt;= b,  a =&amp;lt; b&lt;br /&gt;
Greater-Equal             a &amp;gt;= b,  a =&amp;gt; b&lt;br /&gt;
In-Range                  a in &amp;lt;b,c&amp;gt;, a in |b,c&amp;gt;, a in &amp;lt;b,c|, a in |b,c|&lt;br /&gt;
In-Array                  a in {b,c,...}, {a,b,...} in {c,d,...}&lt;br /&gt;
Array-Constructor         {a,b,...}&lt;br /&gt;
Empty Array               new [count]&lt;br /&gt;
Array Member              a[index]&lt;br /&gt;
Function call             a(), a(b,c,...)&lt;br /&gt;
Object Attribute          a.b, a.(b)&lt;br /&gt;
Post Increment            a++&lt;br /&gt;
Post Decrement            a--&lt;br /&gt;
Pre Increment             ++a&lt;br /&gt;
Pre Decrement             --a&lt;br /&gt;
Old String Function       #a&lt;br /&gt;
Conditional               a? b : c&lt;br /&gt;
Assignment                a = b, a := b&lt;br /&gt;
Additive Assignment       a += b&lt;br /&gt;
Substractive Assignment   a -= b&lt;br /&gt;
Multiplicative Assignment a *= b&lt;br /&gt;
Division Assignment       a /= b&lt;br /&gt;
Modulus Assignment        a %= b&lt;br /&gt;
Power Assignment          a ^= b&lt;br /&gt;
String Append             a @= b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Accessing Variables ===&lt;br /&gt;
&lt;br /&gt;
Graal Script variables are 'variant', that means they are objects&lt;br /&gt;
that hold values of different types.&lt;br /&gt;
When you assign a value to the variable then it automatically&lt;br /&gt;
switches to the right type:&lt;br /&gt;
&lt;br /&gt;
Numeric (floating point):&lt;br /&gt;
  var = 1;&lt;br /&gt;
String:&lt;br /&gt;
  var = &amp;quot;hello&amp;quot;;&lt;br /&gt;
Object link:&lt;br /&gt;
  var = player;&lt;br /&gt;
Array (list of objects):&lt;br /&gt;
  var = {1,2,3};&lt;br /&gt;
&lt;br /&gt;
You can check the current type with the&lt;br /&gt;
type()-function - obj.type() returns&lt;br /&gt;
0,1,2,3 for numeric, string, object or array.&lt;br /&gt;
&lt;br /&gt;
=== Standard Object Functions ===&lt;br /&gt;
&lt;br /&gt;
obj.name&lt;br /&gt;
obj.type()  - gets the type of the var (float 0, string 1, object 2, array 3)&lt;br /&gt;
obj.length() - string length&lt;br /&gt;
obj.trim()&lt;br /&gt;
obj.tokenize([delimiters])&lt;br /&gt;
obj.charat(pos)&lt;br /&gt;
obj.pos(substring)&lt;br /&gt;
obj.beginswith(string)&lt;br /&gt;
obj.endson(string)&lt;br /&gt;
obj.substring(index[,length])&lt;br /&gt;
obj.size() - array length&lt;br /&gt;
obj.index(obj2) - position of obj2 in the array&lt;br /&gt;
obj.clear()&lt;br /&gt;
obj.add(obj2)&lt;br /&gt;
obj.delete(index)&lt;br /&gt;
obj.remove(obj2)&lt;br /&gt;
obj.replace(index,obj2)&lt;br /&gt;
obj.insert(index,obj2)&lt;br /&gt;
obj.getvarnames() - list of the object attributes&lt;br /&gt;
obj.geteditvarnames()&lt;br /&gt;
obj.loadstring(filename)&lt;br /&gt;
obj.loadlines(filename)&lt;br /&gt;
obj.loadvars(filename)&lt;br /&gt;
obj.savestring(filename,mode)&lt;br /&gt;
obj.savelines(filename,mode)&lt;br /&gt;
obj.savevars(filename,mode)&lt;br /&gt;
&lt;br /&gt;
==== NPCs ====&lt;br /&gt;
&lt;br /&gt;
npc.actionplayer - integer, read only&lt;br /&gt;
npc.ani - object, read only&lt;br /&gt;
npc.anistep - integer, read only&lt;br /&gt;
npc.ap - integer&lt;br /&gt;
npc.attr - array&lt;br /&gt;
npc.attached - boolean, read only&lt;br /&gt;
npc.attachid - integer, read only&lt;br /&gt;
npc.attachtype - integer, read only&lt;br /&gt;
npc.body - object&lt;br /&gt;
npc.bodyimg - string&lt;br /&gt;
npc.bombs - integer&lt;br /&gt;
npc.chat - string&lt;br /&gt;
npc.colors - array&lt;br /&gt;
npc.darts - integer&lt;br /&gt;
npc.dir - integer&lt;br /&gt;
npc.glovepower - integer&lt;br /&gt;
npc.gralats - integer&lt;br /&gt;
npc.head - object&lt;br /&gt;
npc.headimg - string&lt;br /&gt;
npc.headset - integer&lt;br /&gt;
npc.hearts - floating point value, better use npc.hp&lt;br /&gt;
npc.height - floating point value, read only&lt;br /&gt;
npc.horseimg - string&lt;br /&gt;
npc.hp - floating point value&lt;br /&gt;
npc.hurtdx - floating point value&lt;br /&gt;
npc.hurtdy - floating point value&lt;br /&gt;
npc.id - integer, read only&lt;br /&gt;
npc.isfemale - boolean, read only&lt;br /&gt;
npc.ismale - boolean, read only&lt;br /&gt;
npc.isweapon - boolean, read only&lt;br /&gt;
npc.layer - integer&lt;br /&gt;
npc.mp - integer&lt;br /&gt;
npc.nick - string&lt;br /&gt;
npc.peltwithnpc - boolean, read only&lt;br /&gt;
npc.peltwithbush - boolean, read only&lt;br /&gt;
npc.peltwithsign - boolean, read only&lt;br /&gt;
npc.peltwithvase - boolean, read only&lt;br /&gt;
npc.peltwithstone - boolean, read only&lt;br /&gt;
npc.peltwithblackstone - boolean, read only&lt;br /&gt;
npc.rupees - integer, better use npc.gralats&lt;br /&gt;
npc.shield - object&lt;br /&gt;
npc.shieldimg - string&lt;br /&gt;
npc.shieldpower - integer&lt;br /&gt;
npc.sprite - integer&lt;br /&gt;
npc.sword - object&lt;br /&gt;
npc.swordimg - string&lt;br /&gt;
npc.swordpower - integer&lt;br /&gt;
npc.timeout - floating point value&lt;br /&gt;
npc.visible - boolean&lt;br /&gt;
npc.width - floating point value, read only&lt;br /&gt;
npc.x - floating point value&lt;br /&gt;
npc.y - floating point value&lt;br /&gt;
npc.z - floating point value&lt;br /&gt;
&lt;br /&gt;
npc.blockagain()&lt;br /&gt;
npc.blockagainlocal()&lt;br /&gt;
npc.canbecarried()&lt;br /&gt;
npc.cannotbecarried()&lt;br /&gt;
npc.canbepushed()&lt;br /&gt;
npc.cannotbepushed()&lt;br /&gt;
npc.canbepulled()&lt;br /&gt;
npc.cannotbepulled()&lt;br /&gt;
npc.carryobject(name)&lt;br /&gt;
npc.catchevent(object name,event,function)&lt;br /&gt;
npc.changeimgcolors(index,red,green,blue,alpha)&lt;br /&gt;
npc.changeimgmode(index,mode)&lt;br /&gt;
npc.changeimgpart(index,x,y,width,height)&lt;br /&gt;
npc.changeimgvis(index,layer)&lt;br /&gt;
npc.changeimgzoom(index,zoom factor)&lt;br /&gt;
npc.destroy()&lt;br /&gt;
npc.dontblock()&lt;br /&gt;
npc.dontblocklocal()&lt;br /&gt;
npc.drawaslight()&lt;br /&gt;
npc.drawoverplayer()&lt;br /&gt;
npc.drawunderplayer()&lt;br /&gt;
npc.getimageforsprite(sprite) - returns image&lt;br /&gt;
npc.getsprite(string) - returns sprite&lt;br /&gt;
npc.getspriteforspritepos(spritepos) - returns sprite&lt;br /&gt;
npc.hide()&lt;br /&gt;
npc.hidelocal()&lt;br /&gt;
npc.hideimg(index)&lt;br /&gt;
npc.hideimgs(startindex,endindex)&lt;br /&gt;
npc.hurt(power)&lt;br /&gt;
npc.ignoreevent(object name,event)&lt;br /&gt;
npc.ignoreevents(object name)&lt;br /&gt;
npc.lay(item name)&lt;br /&gt;
npc.message(text)&lt;br /&gt;
npc.move(delta x,delta y,time,options)&lt;br /&gt;
npc.setbow(image name)&lt;br /&gt;
npc.setcharani(ani name,parameters)&lt;br /&gt;
npc.setchargender(&amp;quot;male&amp;quot; or &amp;quot;female&amp;quot;)&lt;br /&gt;
npc.setcoloreffect(red,green,blue,alpha)&lt;br /&gt;
npc.seteffectmode(mode)&lt;br /&gt;
npc.setimg(image name)&lt;br /&gt;
npc.setimgpart(image name,x,y,width,height)&lt;br /&gt;
npc.setshape(type,pixelwidth,pixelheight)&lt;br /&gt;
npc.setshape2(tilewidth,tileheight,tilearray)&lt;br /&gt;
npc.setzoomeffect(zoom factor)&lt;br /&gt;
npc.shootarrow(direction)&lt;br /&gt;
npc.shootball()&lt;br /&gt;
npc.shootfireball(direction)&lt;br /&gt;
npc.shootfireblast(direction)&lt;br /&gt;
npc.shootnuke(direction)&lt;br /&gt;
npc.show()&lt;br /&gt;
npc.showani(index,x,y,direction,ani name,parameters)&lt;br /&gt;
npc.showani2(index,x,y,z,direction,ani name,parameters)&lt;br /&gt;
npc.showcharacter()&lt;br /&gt;
npc.showimg(index,image name,x,y)&lt;br /&gt;
npc.showimg2(index,image name,x,y,z)&lt;br /&gt;
npc.showlocal()&lt;br /&gt;
npc.showpoly(index,array)&lt;br /&gt;
npc.showpoly2(index,array)&lt;br /&gt;
npc.showtext(index,x,y,font,style,text)&lt;br /&gt;
npc.showtext2(index,x,y,z,font,style,text)&lt;br /&gt;
npc.take(item name)&lt;br /&gt;
npc.take2(item index)&lt;br /&gt;
npc.takehorse(horse index)&lt;br /&gt;
npc.throwcarry()&lt;br /&gt;
npc.timereverywhere()&lt;br /&gt;
npc.timershow()&lt;br /&gt;
npc.toweapons(weapon name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Players ====&lt;br /&gt;
&lt;br /&gt;
player.account - string, read only&lt;br /&gt;
player.ani - object, read only&lt;br /&gt;
player.anistep - integer, read only&lt;br /&gt;
player.ap - integer&lt;br /&gt;
player.attached - boolean, read only&lt;br /&gt;
player.attachid - integer, read only&lt;br /&gt;
player.attachtype - integer, read only&lt;br /&gt;
player.attr - array&lt;br /&gt;
player.body - object&lt;br /&gt;
player.bodyimg - string&lt;br /&gt;
player.bombs - integer&lt;br /&gt;
player.chat - string&lt;br /&gt;
player.colors - array&lt;br /&gt;
player.darts - integer&lt;br /&gt;
player.dir - integer&lt;br /&gt;
player.freezetime - floating point value, only valid for local players&lt;br /&gt;
player.fullhearts - integer, read only, better use player.maxhp&lt;br /&gt;
player.glovepower - integer&lt;br /&gt;
player.gralats - integer&lt;br /&gt;
player.head - object&lt;br /&gt;
player.headimg - string&lt;br /&gt;
player.headset - integer&lt;br /&gt;
player.hearts - floating point value, only editable for local players, better use player.hp&lt;br /&gt;
player.horseimg - string, only editable for local players&lt;br /&gt;
player.hp - floating point value, only editable for local players&lt;br /&gt;
player.hurt - boolean, read only, only valid for local players&lt;br /&gt;
player.hurtdx - floating point value, read only, only valid for local players&lt;br /&gt;
player.hurtdy - floating point value, read only, only valid for local players&lt;br /&gt;
player.hurted - boolean, read only, only valid for local players, better use player.hurt&lt;br /&gt;
player.hurtpower - floating point value, read only, only valid for local players&lt;br /&gt;
player.id - integer, read only&lt;br /&gt;
player.isfemale - boolean, read only&lt;br /&gt;
player.ismale - boolean, read only&lt;br /&gt;
player.letters - object, only valid for local players&lt;br /&gt;
player.level - object, read only&lt;br /&gt;
player.map - boolean, only valid for local players&lt;br /&gt;
player.maxhp - integer, read only&lt;br /&gt;
player.mp - integer&lt;br /&gt;
player.nick - string, read only for local players&lt;br /&gt;
player.onhorse - boolean, read only, only valid for local players&lt;br /&gt;
player.online - boolean, read only, only valid for local players&lt;br /&gt;
player.paused - boolean, read only, only valid for local players&lt;br /&gt;
player.reading - boolean, read only, only valid for local players&lt;br /&gt;
player.rupees - integer, better use player.gralats&lt;br /&gt;
player.shield - object&lt;br /&gt;
player.shieldimg - string&lt;br /&gt;
player.shieldpower - integer, read only&lt;br /&gt;
player.sprite - integer&lt;br /&gt;
player.swimming - boolean, read only, only valid for local players&lt;br /&gt;
player.sword - object&lt;br /&gt;
player.swordimg - string&lt;br /&gt;
player.swordpower - integer, read only&lt;br /&gt;
player.weapon - object, read only, only valid for local players&lt;br /&gt;
player.weapons - array, read only, only valid for local players&lt;br /&gt;
player.x - floating point value&lt;br /&gt;
player.y - floating point value&lt;br /&gt;
player.z - floating point value&lt;br /&gt;
&lt;br /&gt;
player.getimageforsprite(sprite) - returns object&lt;br /&gt;
player.getsprite(string) - returns object&lt;br /&gt;
player.getspriteforspritepos(spritepos) - returns object&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Levels ====&lt;br /&gt;
==== Ganis ====&lt;br /&gt;
&lt;br /&gt;
e.g. player.ani&lt;br /&gt;
ani.name&lt;br /&gt;
ani.sprites[]&lt;br /&gt;
ani.steps[]&lt;br /&gt;
ani.continuous&lt;br /&gt;
ani.singledirection&lt;br /&gt;
ani.looping&lt;br /&gt;
ani.ismovie&lt;br /&gt;
ani.setbackto&lt;br /&gt;
ani.ganitype&lt;br /&gt;
ani.getsprite(id)&lt;br /&gt;
ani.addsprite(id) returns the added sprite&lt;br /&gt;
ani.deletesprite(id)&lt;br /&gt;
ani.addstep()&lt;br /&gt;
ani.insertstep(index)&lt;br /&gt;
ani.deletestep(index)&lt;br /&gt;
&lt;br /&gt;
sprites:&lt;br /&gt;
sprite.spriteindex&lt;br /&gt;
sprite.image&lt;br /&gt;
sprite.imagetype&lt;br /&gt;
sprite.x&lt;br /&gt;
sprite.y&lt;br /&gt;
sprite.width&lt;br /&gt;
sprite.height&lt;br /&gt;
sprite.red&lt;br /&gt;
sprite.green&lt;br /&gt;
sprite.blue&lt;br /&gt;
sprite.alpha&lt;br /&gt;
sprite.zoom&lt;br /&gt;
sprite.mode&lt;br /&gt;
sprite.surface&lt;br /&gt;
sprite.attachments[]&lt;br /&gt;
sprite.addattachment()&lt;br /&gt;
sprite.insertattachment(index)&lt;br /&gt;
sprite.deleteattachment(index)&lt;br /&gt;
&lt;br /&gt;
attachment:&lt;br /&gt;
attachment.sprite&lt;br /&gt;
attachment.dx&lt;br /&gt;
attachment.dy&lt;br /&gt;
attachment.behind&lt;br /&gt;
&lt;br /&gt;
step:&lt;br /&gt;
step.spritespos[][]&lt;br /&gt;
step.sounds[]&lt;br /&gt;
step.delay&lt;br /&gt;
step.addpos(dir)&lt;br /&gt;
step.insertpos(dir,index)&lt;br /&gt;
step.deletepos(dir,index)&lt;br /&gt;
&lt;br /&gt;
spritepos:&lt;br /&gt;
spritepos.sprite&lt;br /&gt;
spritepos.param&lt;br /&gt;
spritepos.attr&lt;br /&gt;
spritepos.dx&lt;br /&gt;
spritepos.dy&lt;br /&gt;
&lt;br /&gt;
sound:&lt;br /&gt;
sound.sound&lt;br /&gt;
sound.dx&lt;br /&gt;
sound.dy&lt;br /&gt;
sound.delay&lt;br /&gt;
&lt;br /&gt;
also the gani owners (players, npcs) have those functions:&lt;br /&gt;
getimageforsprite(sprite)&lt;br /&gt;
getsprite(string)&lt;br /&gt;
getspriteforspritepos(spritepos)&lt;br /&gt;
&lt;br /&gt;
=== Standard functions ===&lt;br /&gt;
&lt;br /&gt;
format(format,parameters,...) - formats a &amp;quot;%s %d&amp;quot; string, inserts the parameters, and returns a string&lt;br /&gt;
int(a)&lt;br /&gt;
abs(a)&lt;br /&gt;
random(rangestart,rangeend)&lt;br /&gt;
sin(a)&lt;br /&gt;
cos(a)&lt;br /&gt;
arctan(a)&lt;br /&gt;
exp(a)&lt;br /&gt;
log(base,a)&lt;br /&gt;
min(a,b)&lt;br /&gt;
max(a,b)&lt;br /&gt;
getangle(delta x,delta y)&lt;br /&gt;
getdir(delta x,delta y)&lt;br /&gt;
vecx(direction)&lt;br /&gt;
vecy(direction)&lt;br /&gt;
&lt;br /&gt;
=== Standard variables ===&lt;br /&gt;
&lt;br /&gt;
== GUI ==&lt;br /&gt;
&lt;br /&gt;
=== GUI controls ===&lt;br /&gt;
&lt;br /&gt;
=== GUI events ===&lt;br /&gt;
&lt;br /&gt;
All controls:&lt;br /&gt;
onAdd() when added to the parent&lt;br /&gt;
onRemove() when removed from the parent&lt;br /&gt;
onWake() when activated&lt;br /&gt;
onSleep() when deactivated&lt;br /&gt;
onResize(w,h)&lt;br /&gt;
onMove(x,y)&lt;br /&gt;
onMouseEnter(modifier,x,y,clickcount)&lt;br /&gt;
onMouseLeave(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseMove(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDown(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseUp(modifier,x,y,clickcount)&lt;br /&gt;
onRightMouseDragged(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelUp(modifier,x,y,clickcount)&lt;br /&gt;
onMouseWheelDown(modifier,x,y,clickcount)&lt;br /&gt;
onKeyDown(keycode,string)&lt;br /&gt;
onKeyUp(keycode,string)&lt;br /&gt;
onKeyRepeat(keycode,string)&lt;br /&gt;
&lt;br /&gt;
GuiMLTextCtrl:&lt;br /&gt;
onResize(w,h) when reflowing&lt;br /&gt;
onURL(url) when clicked on url&lt;br /&gt;
&lt;br /&gt;
GuiTextEditCtrl:&lt;br /&gt;
onTabComplete()&lt;br /&gt;
onAction(text) when return key pressed&lt;br /&gt;
&lt;br /&gt;
GuiTextListCtrl:&lt;br /&gt;
onSelect(id,text) when row selected&lt;br /&gt;
onDblClick(id) when double-click on row or return key pressed&lt;br /&gt;
onDeleteKey(id) when delete key pressed&lt;br /&gt;
onIconResized(w,h) when setIconSize() called&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&lt;br /&gt;
GuiPopUpMenuCtrl:&lt;br /&gt;
onSelect(id,text) when menu option choosen&lt;br /&gt;
onCancel() when menu is closed without action&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
&lt;br /&gt;
GuiMenuBar:&lt;br /&gt;
onMenuSelect(menuid,menutext)&lt;br /&gt;
onMenuItemSelect(menuid,menutext,itemid,itemtext)&lt;br /&gt;
&lt;br /&gt;
GuiTreeViewCtrl:&lt;br /&gt;
onSelect(id,rightmouse) when row selected&lt;br /&gt;
onUnselect(id) when row de-selected&lt;br /&gt;
onInspect(id) when clicked on the name of an item&lt;br /&gt;
onOpenMenu(0,index,text) when an item was right-clicked&lt;br /&gt;
onContextMenu(&amp;quot;x y&amp;quot;,id) when clicked with right-mouse key on row&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1829</id>
		<title>User:Evil</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1829"/>
		<updated>2005-01-22T00:23:30Z</updated>

		<summary type="html">&lt;p&gt;Evil: /* Staff Positions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{player}}&lt;br /&gt;
Evil is a player of Graal who has been playing since early 2002.&lt;br /&gt;
&lt;br /&gt;
== Community ==&lt;br /&gt;
His account is now able to access the [[Graal Communication Center]]. Evil especially likes posting in the NPC Scripting section.&lt;br /&gt;
&lt;br /&gt;
== Development Areas ==&lt;br /&gt;
He is skilled in [[GScript|Graal scripting]]. He has some experience with Perl.&lt;br /&gt;
== Staff Positions ==&lt;br /&gt;
Evil was hired for the LAT of the Graal server Classic (officially known again as Graal: The Adventure) on August 31, 2003.&lt;br /&gt;
Although he does scripting, Classic labels all development staff as part of the LAT.&lt;br /&gt;
&lt;br /&gt;
His primary job in this position was to work on the levels convertion from the old [[GServer]] scripting format, so that they may be compatible with the [[NPC Server]]. Coming into the position with a great lack of Graal scripting experience, it was not until many months later that he was actually up to the task, and he often redid his completed levels' scripts once he learned the correct way to do them.&lt;br /&gt;
&lt;br /&gt;
He was made LAT Administrator by the newly appointed Assistant Manager of Classic, [[Kat]], who was promoted from that position, on February 26, 2004. (This later became a co-postion with [[Com013]], an inactive member of the LAT and former LAT Admin, who came back and still did little work.)&lt;br /&gt;
&lt;br /&gt;
In this position he sought to hire new scripters for the project, which was still far from completion. Although he hired a few people, only one person truly showed the requried skill and attitude for the position ([[Zero]]).&lt;br /&gt;
&lt;br /&gt;
In the end, the project was plagued by incompleted systems at the level which [[Stefan]] required, incompleted important classes, and lack of qualified scripters.&lt;br /&gt;
&lt;br /&gt;
Evil and [[Kat]] resigned from their respective positions on March 9, 2004, leaving the project in a bit of turmoil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From that day on he continued to work for Classic as a [[Events Team|Game Coordinator]], doing scripting work for the old [[GServer]] version of Classic (which is still public today in that form.) Eventually he left the position due to inactivity, for he was no longer playing Classic, and had moved on to [[Era]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Evil started playing [[Era]] because of his good friendship with [[Magic Bush]], longtime friend and Events Team Administrator of the server.&lt;br /&gt;
&lt;br /&gt;
He was hired as a member of the Events Team on April 17, 2004. In this position he contributed greatly to the scripting of new events, and improving the scripting of existing events.&lt;br /&gt;
&lt;br /&gt;
He was then hired as a member of the Era police force, at that time known as Section 31. Not a lot of actual policing was done, and the job was more of a revamped Trade Moderator with jailing ability. Eventually he leaves his Events Team job because of this new position.  A while later, this staff group was dissolved by [[Jenn]] in favor of a [[Graal Police]] group, which had limited membership and banning rights.&lt;br /&gt;
&lt;br /&gt;
Evil was hired as a NAT for Era on June 14, 2004, by the newly appointed Manager, [[Ningnong]] (a co-manager of the server with [[Jenn]].)&lt;br /&gt;
&lt;br /&gt;
When he learns that the server will soon be rescripted and reset, a week or two later, he loses all desire to continue playing Graal, and goes on a few month hiatus from the game.&lt;br /&gt;
&lt;br /&gt;
He eventually returns to the server a few months later, since his good friend [[Magic Bush]] was playing once again.&lt;br /&gt;
&lt;br /&gt;
currently staff on classic&lt;br /&gt;
&lt;br /&gt;
== Graal Accounts ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Name'''&lt;br /&gt;
| '''Email address'''&lt;br /&gt;
| '''Admin level'''&lt;br /&gt;
| '''Free upgrades'''&lt;br /&gt;
| '''Banned?'''&lt;br /&gt;
| '''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
| Evil_Trunks&lt;br /&gt;
| evilgraal at comcast.net&lt;br /&gt;
| 0/all&lt;br /&gt;
| None.&lt;br /&gt;
| No.&lt;br /&gt;
| This is his main account, and his only upgraded account.&lt;br /&gt;
|}&lt;br /&gt;
== Contact ==&lt;br /&gt;
Evil can be contacted through the [[Graal Communication Center]] via forum PM. He may answer emails sent to evilgraal at comcast.net. He can often be found playing on the Graal [[Playerworld]] Era.&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=Main_Page&amp;diff=1646</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=Main_Page&amp;diff=1646"/>
		<updated>2005-01-19T22:54:05Z</updated>

		<summary type="html">&lt;p&gt;Evil: fix screwed up word&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The intent of this site is to provide a comprehensive and up to date resource of documentation of [[Graal]]'s various features, which would be impossible without the great interactivity of a [[Wiki]].&lt;br /&gt;
&lt;br /&gt;
The most well known and largest [[WikiPedia:Wiki]] is most definitely the [http://www.wikipedia.org Wikipedia], and the first [[Wiki:WikiWikiWeb]] was Ward Cunningham's [http://c2.com/cgi/wiki Portland Pattern Repository].&lt;br /&gt;
&lt;br /&gt;
Hopefully the obvious success of both, and the freedom and openness of this Wiki, will encourage [[Graalian]]s to similar creativity.&lt;br /&gt;
&lt;br /&gt;
There are many &amp;quot;broken&amp;quot; links that lead to yet uncreated articles. You are encouraged to write some text for those articles, and even if it is just a bit to get the page started. You are also encouraged to link to other non-existent pages to promote their creation, but please check first whether a similar page already exists.&lt;br /&gt;
&lt;br /&gt;
Repeatedly, this wiki has been the target of [[Idiot attack|vandalism]] ([[Imporant message to Unixmad and GraalOnline]]). Those who enjoy such activity are clearly not aware of the technical finesse of the Wiki that allows us to revert the changes, and also have chosen the wrong target as this wiki is critical enough of [[Graal]] already.&lt;br /&gt;
&lt;br /&gt;
The management would like to point out that all non-technical content is to be construed as a Statement Of Opinion and not as a Factual Claim.&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1320</id>
		<title>User:Evil</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1320"/>
		<updated>2005-01-05T06:36:06Z</updated>

		<summary type="html">&lt;p&gt;Evil: /* Staff Positions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{player}}&lt;br /&gt;
Evil is a player of Graal who has been playing since early 2002.&lt;br /&gt;
&lt;br /&gt;
== Community ==&lt;br /&gt;
His account is now able to access the [[Graal Communication Center]]. Evil especially likes posting in the NPC Scripting section.&lt;br /&gt;
&lt;br /&gt;
== Development Areas ==&lt;br /&gt;
He is skilled in [[GScript|Graal scripting]]. He has some experience with Perl.&lt;br /&gt;
== Staff Positions ==&lt;br /&gt;
Evil was hired for the LAT of the Graal server Classic (officially known again as Graal: The Adventure) on August 31, 2003.&lt;br /&gt;
Although he does scripting, Classic labels all development staff as part of the LAT.&lt;br /&gt;
&lt;br /&gt;
His primary job in this position was to work on the levels convertion from the old [[GServer]] scripting format, so that they may be compatible with the [[NPC Server]]. Coming into the position with a great lack of Graal scripting experience, it was not until many months later that he was actually up to the task, and he often redid his completed levels' scripts once he learned the correct way to do them.&lt;br /&gt;
&lt;br /&gt;
He was made LAT Administrator by the newly appointed Assistant Manager of Classic, [[Kat]], who was promoted from that position, on February 26, 2004. (This later became a co-postion with [[Com013]], an inactive member of the LAT and former LAT Admin, who came back and still did little work.)&lt;br /&gt;
&lt;br /&gt;
In this position he sought to hire new scripters for the project, which was still far from completion. Although he hired a few people, only one person truly showed the requried skill and attitude for the position ([[Zero]]).&lt;br /&gt;
&lt;br /&gt;
In the end, the project was plagued by incompleted systems at the level which [[Stefan]] required, incompleted important classes, and lack of qualified scripters.&lt;br /&gt;
&lt;br /&gt;
Evil and [[Kat]] resigned from their respective positions on March 9, 2004, leaving the project in a bit of turmoil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From that day on he continued to work for Classic as a [[Events Team|Game Coordinator]], doing scripting work for the old [[GServer]] version of Classic (which is still public today in that form.) Eventually he left the position due to inactivity, for he was no longer playing Classic, and had moved on to [[Era]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Evil started playing [[Era]] because of his good friendship with [[Magic Bush]], longtime friend and Events Team Administrator of the server.&lt;br /&gt;
&lt;br /&gt;
He was hired as a member of the Events Team on April 17, 2004. In this position he contributed greatly to the scripting of new events, and improving the scripting of existing events.&lt;br /&gt;
&lt;br /&gt;
He was then hired as a member of the Era police force, at that time known as Section 31. Not a lot of actual policing was done, and the job was more of a revamped Trade Moderator with jailing ability. Eventually he leaves his Events Team job because of this new position.  A while later, this staff group was dissolved by [[Jenn]] in favor of a [[Graal Police]] group, which had limited membership and banning rights.&lt;br /&gt;
&lt;br /&gt;
Evil was hired as a NAT for Era on June 14, 2004, by the newly appointed Manager, [[Ningnong]] (a co-manager of the server with [[Jenn]].)&lt;br /&gt;
&lt;br /&gt;
When he learns that the server will soon be rescripted and reset, a week or two later, he loses all desire to continue playing Graal, and goes on a few month hiatus from the game.&lt;br /&gt;
&lt;br /&gt;
He eventually returns to the server a few months later, since his good friend [[Magic Bush]] was playing once again.&lt;br /&gt;
&lt;br /&gt;
He hopes to once again achieve some sort of staff position on the server, and prove his worth, as a result of the shame he felt from quitting the NAT after only a week or two.&lt;br /&gt;
&lt;br /&gt;
== Graal Accounts ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Name'''&lt;br /&gt;
| '''Email address'''&lt;br /&gt;
| '''Admin level'''&lt;br /&gt;
| '''Free upgrades'''&lt;br /&gt;
| '''Banned?'''&lt;br /&gt;
| '''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
| Evil_Trunks&lt;br /&gt;
| evilgraal at comcast.net&lt;br /&gt;
| 0/all&lt;br /&gt;
| None.&lt;br /&gt;
| No.&lt;br /&gt;
| This is his main account, and his only upgraded account.&lt;br /&gt;
|}&lt;br /&gt;
== Contact ==&lt;br /&gt;
Evil can be contacted through the [[Graal Communication Center]] via forum PM. He may answer emails sent to evilgraal at comcast.net. He can often be found playing on the Graal [[Playerworld]] Era.&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1281</id>
		<title>User:Evil</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1281"/>
		<updated>2005-01-05T06:34:23Z</updated>

		<summary type="html">&lt;p&gt;Evil: /* Staff Positions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{player}}&lt;br /&gt;
Evil is a player of Graal who has been playing since early 2002.&lt;br /&gt;
&lt;br /&gt;
== Community ==&lt;br /&gt;
His account is now able to access the [[Graal Communication Center]]. Evil especially likes posting in the NPC Scripting section.&lt;br /&gt;
&lt;br /&gt;
== Development Areas ==&lt;br /&gt;
He is skilled in [[GScript|Graal scripting]]. He has some experience with Perl.&lt;br /&gt;
== Staff Positions ==&lt;br /&gt;
Evil was hired for the LAT of the Graal server Classic (officially known again as Graal: The Adventure) on August 31, 2003.&lt;br /&gt;
Although he does scripting, Classic labels all development staff as part of the LAT.&lt;br /&gt;
&lt;br /&gt;
His primary job in this position was to work on the levels convertion from the old [[GServer]] scripting format, so that they may be compatible with the [[NPC Server]]. Coming into the position with a great lack of Graal scripting experience, it was not until many months later that he was actually up to the task, and he often redid his completed levels' scripts once he learned the correct way to do them.&lt;br /&gt;
&lt;br /&gt;
He was made LAT Administrator by the newly appointed Assistant Manager of Classic, [[Kat]], who was promoted from that position, on February 26, 2004. (This later became a co-postion with [[Com013]], an inactive member of the LAT and former LAT Admin, who came back and still did little work.)&lt;br /&gt;
&lt;br /&gt;
In this position he sought to hire new scripters for the project, which was still far from completion. Although he hired a few people, only one person truly showed the requried skill and attitude for the position ([[Zero]]).&lt;br /&gt;
&lt;br /&gt;
In the end, the project was plagued by incompleted systems at the level which [[Stefan]] required, incompleted important classes, and lack of qualified scripters.&lt;br /&gt;
&lt;br /&gt;
Evil and [[Kat]] resigned from their respective positions on March 9, 2004, leaving the project in a bit of turmoil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From that day on he continued to work for Classic as a [[Events Team|Game Coordinator]], doing scripting work for the old [[GServer]] version of Classic (which is still public today in that form.) Eventually he left the position due to inactivity, for he was no longer playing Classic, and had moved on to [[Era]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Evil started playing [[Era]] because of his good friendship with [[Magic Bush]], longtime friend and Events Team Administrator of the server.&lt;br /&gt;
&lt;br /&gt;
He was hired as a member of the Events Team on April 17, 2004. In this position he contributed greatly to the scripting of new events, and improving the scripting of existing events.&lt;br /&gt;
&lt;br /&gt;
He was then hired as a member of the Era police force, at that time known as Section 31. Not a lot of actual policing was done, and the job was more of a revamped Trade Moderator with jailing ability. Eventually he leaves his Events Team job because of this new position.&lt;br /&gt;
&lt;br /&gt;
Evil was hired as a NAT for Era on June 14, 2004, by the newly appointed Manager, [[Ningnong]] (a co-manager of the server with [[Jenn]].)&lt;br /&gt;
&lt;br /&gt;
When he learns that the server will soon be rescripted and reset, a week or two later, he loses all desire to continue playing Graal, and goes on a few month hiatus from the game.&lt;br /&gt;
&lt;br /&gt;
He eventually returns to the server a few months later, since his good friend [[Magic Bush]] was playing once again.&lt;br /&gt;
&lt;br /&gt;
He hopes to once again achieve some sort of staff position on the server, and prove his worth, as a result of the shame he felt from quitting the NAT after only a week or two.&lt;br /&gt;
&lt;br /&gt;
== Graal Accounts ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Name'''&lt;br /&gt;
| '''Email address'''&lt;br /&gt;
| '''Admin level'''&lt;br /&gt;
| '''Free upgrades'''&lt;br /&gt;
| '''Banned?'''&lt;br /&gt;
| '''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
| Evil_Trunks&lt;br /&gt;
| evilgraal at comcast.net&lt;br /&gt;
| 0/all&lt;br /&gt;
| None.&lt;br /&gt;
| No.&lt;br /&gt;
| This is his main account, and his only upgraded account.&lt;br /&gt;
|}&lt;br /&gt;
== Contact ==&lt;br /&gt;
Evil can be contacted through the [[Graal Communication Center]] via forum PM. He may answer emails sent to evilgraal at comcast.net. He can often be found playing on the Graal [[Playerworld]] Era.&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1280</id>
		<title>User:Evil</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1280"/>
		<updated>2005-01-05T06:34:09Z</updated>

		<summary type="html">&lt;p&gt;Evil: /* Staff Positions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{player}}&lt;br /&gt;
Evil is a player of Graal who has been playing since early 2002.&lt;br /&gt;
&lt;br /&gt;
== Community ==&lt;br /&gt;
His account is now able to access the [[Graal Communication Center]]. Evil especially likes posting in the NPC Scripting section.&lt;br /&gt;
&lt;br /&gt;
== Development Areas ==&lt;br /&gt;
He is skilled in [[GScript|Graal scripting]]. He has some experience with Perl.&lt;br /&gt;
== Staff Positions ==&lt;br /&gt;
Evil was hired for the LAT of the Graal server Classic (officially known again as Graal: The Adventure) on August 31, 2003.&lt;br /&gt;
Although he does scripting, Classic labels all development staff as part of the LAT.&lt;br /&gt;
&lt;br /&gt;
His primary job in this position was to work on the levels convertion from the old [[GServer]] scripting format, so that they may be compatible with the [[NPC Server]]. Coming into the position with a great lack of Graal scripting experience, it was not until many months later that he was actually up to the task, and he often redid his completed levels' scripts once he learned the correct way to do them.&lt;br /&gt;
&lt;br /&gt;
He was made LAT Administrator by the newly appointed Assistant Manager of Classic, [[Kat]], who was promoted from that position, on February 26, 2004. (This later became a co-postion with [[Com013]], an inactive member of the LAT and former LAT Admin, who came back and still did little work.)&lt;br /&gt;
&lt;br /&gt;
In this position he sought to hire new scripters for the project, which was still far from completion. Although he hired a few people, only one person truly showed the requried skill and attitude for the position ([[Zero]]).&lt;br /&gt;
&lt;br /&gt;
In the end, the project was plagued by incompleted systems of the level which [[Stefan]] required, incompleted important classes, and lack of qualified scripters.&lt;br /&gt;
&lt;br /&gt;
Evil and [[Kat]] resigned from their respective positions on March 9, 2004, leaving the project in a bit of turmoil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From that day on he continued to work for Classic as a [[Events Team|Game Coordinator]], doing scripting work for the old [[GServer]] version of Classic (which is still public today in that form.) Eventually he left the position due to inactivity, for he was no longer playing Classic, and had moved on to [[Era]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Evil started playing [[Era]] because of his good friendship with [[Magic Bush]], longtime friend and Events Team Administrator of the server.&lt;br /&gt;
&lt;br /&gt;
He was hired as a member of the Events Team on April 17, 2004. In this position he contributed greatly to the scripting of new events, and improving the scripting of existing events.&lt;br /&gt;
&lt;br /&gt;
He was then hired as a member of the Era police force, at that time known as Section 31. Not a lot of actual policing was done, and the job was more of a revamped Trade Moderator with jailing ability. Eventually he leaves his Events Team job because of this new position.&lt;br /&gt;
&lt;br /&gt;
Evil was hired as a NAT for Era on June 14, 2004, by the newly appointed Manager, [[Ningnong]] (a co-manager of the server with [[Jenn]].)&lt;br /&gt;
&lt;br /&gt;
When he learns that the server will soon be rescripted and reset, a week or two later, he loses all desire to continue playing Graal, and goes on a few month hiatus from the game.&lt;br /&gt;
&lt;br /&gt;
He eventually returns to the server a few months later, since his good friend [[Magic Bush]] was playing once again.&lt;br /&gt;
&lt;br /&gt;
He hopes to once again achieve some sort of staff position on the server, and prove his worth, as a result of the shame he felt from quitting the NAT after only a week or two.&lt;br /&gt;
&lt;br /&gt;
== Graal Accounts ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Name'''&lt;br /&gt;
| '''Email address'''&lt;br /&gt;
| '''Admin level'''&lt;br /&gt;
| '''Free upgrades'''&lt;br /&gt;
| '''Banned?'''&lt;br /&gt;
| '''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
| Evil_Trunks&lt;br /&gt;
| evilgraal at comcast.net&lt;br /&gt;
| 0/all&lt;br /&gt;
| None.&lt;br /&gt;
| No.&lt;br /&gt;
| This is his main account, and his only upgraded account.&lt;br /&gt;
|}&lt;br /&gt;
== Contact ==&lt;br /&gt;
Evil can be contacted through the [[Graal Communication Center]] via forum PM. He may answer emails sent to evilgraal at comcast.net. He can often be found playing on the Graal [[Playerworld]] Era.&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1279</id>
		<title>User:Evil</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1279"/>
		<updated>2005-01-05T06:33:31Z</updated>

		<summary type="html">&lt;p&gt;Evil: /* Staff Positions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{player}}&lt;br /&gt;
Evil is a player of Graal who has been playing since early 2002.&lt;br /&gt;
&lt;br /&gt;
== Community ==&lt;br /&gt;
His account is now able to access the [[Graal Communication Center]]. Evil especially likes posting in the NPC Scripting section.&lt;br /&gt;
&lt;br /&gt;
== Development Areas ==&lt;br /&gt;
He is skilled in [[GScript|Graal scripting]]. He has some experience with Perl.&lt;br /&gt;
== Staff Positions ==&lt;br /&gt;
Evil was hired for the LAT of the Graal server Classic (officially known again as Graal: The Adventure) on August 31, 2003.&lt;br /&gt;
Although he does scripting, Classic labels all development staff as part of the LAT.&lt;br /&gt;
&lt;br /&gt;
His primary job in this position was to work on the levels convertion from the old [[GServer]] scripting format, so that they may be compatible with the [[NPC Server]]. Coming into the position with a great lack of Graal scripting experience, it was not until many months later that he was actually up to the task, and he often redid his completed levels' scripts once he learned the correct way to do them.&lt;br /&gt;
&lt;br /&gt;
He was made LAT Administrator by the newly appointed Assistant Manager of Classic, [[Kat]], who was promoted from that position, on February 26, 2004. (This later became a co-postion with [[Com013]], an inactive member of the LAT and former LAT Admin, who came back and still did little work.)&lt;br /&gt;
&lt;br /&gt;
In this position he sought to hire new scripters for the project, which was still far from completion. Although he hired a few people, only one person truly showed the requried skill and attitude for the position ([[Zero]]).&lt;br /&gt;
&lt;br /&gt;
In the end, the project was plagued by incompleted systems of the level which [[Stefan]] required, incompleted important classes, and lack of qualified scripters.&lt;br /&gt;
&lt;br /&gt;
Evil and [[Kat]] resigned from their respective positions on March 9, 2004.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From that day on he continued to work for Classic as a [[Events Team|Game Coordinator]], doing scripting work for the old [[GServer]] version of Classic (which is still public today in that form.) Eventually he left the position due to inactivity, for he was no longer playing Classic, and had moved on to [[Era]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Evil started playing [[Era]] because of his good friendship with [[Magic Bush]], longtime friend and Events Team Administrator of the server.&lt;br /&gt;
&lt;br /&gt;
He was hired as a member of the Events Team on April 17, 2004. In this position he contributed greatly to the scripting of new events, and improving the scripting of existing events.&lt;br /&gt;
&lt;br /&gt;
He was then hired as a member of the Era police force, at that time known as Section 31. Not a lot of actual policing was done, and the job was more of a revamped Trade Moderator with jailing ability. Eventually he leaves his Events Team job because of this new position.&lt;br /&gt;
&lt;br /&gt;
Evil was hired as a NAT for Era on June 14, 2004, by the newly appointed Manager, [[Ningnong]] (a co-manager of the server with [[Jenn]].)&lt;br /&gt;
&lt;br /&gt;
When he learns that the server will soon be rescripted and reset, a week or two later, he loses all desire to continue playing Graal, and goes on a few month hiatus from the game.&lt;br /&gt;
&lt;br /&gt;
He eventually returns to the server a few months later, since his good friend [[Magic Bush]] was playing once again.&lt;br /&gt;
&lt;br /&gt;
He hopes to once again achieve some sort of staff position on the server, and prove his worth, as a result of the shame he felt from quitting the NAT after only a week or two.&lt;br /&gt;
&lt;br /&gt;
== Graal Accounts ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Name'''&lt;br /&gt;
| '''Email address'''&lt;br /&gt;
| '''Admin level'''&lt;br /&gt;
| '''Free upgrades'''&lt;br /&gt;
| '''Banned?'''&lt;br /&gt;
| '''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
| Evil_Trunks&lt;br /&gt;
| evilgraal at comcast.net&lt;br /&gt;
| 0/all&lt;br /&gt;
| None.&lt;br /&gt;
| No.&lt;br /&gt;
| This is his main account, and his only upgraded account.&lt;br /&gt;
|}&lt;br /&gt;
== Contact ==&lt;br /&gt;
Evil can be contacted through the [[Graal Communication Center]] via forum PM. He may answer emails sent to evilgraal at comcast.net. He can often be found playing on the Graal [[Playerworld]] Era.&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1278</id>
		<title>User:Evil</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1278"/>
		<updated>2005-01-05T06:32:08Z</updated>

		<summary type="html">&lt;p&gt;Evil: /* Staff Positions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{player}}&lt;br /&gt;
Evil is a player of Graal who has been playing since early 2002.&lt;br /&gt;
&lt;br /&gt;
== Community ==&lt;br /&gt;
His account is now able to access the [[Graal Communication Center]]. Evil especially likes posting in the NPC Scripting section.&lt;br /&gt;
&lt;br /&gt;
== Development Areas ==&lt;br /&gt;
He is skilled in [[GScript|Graal scripting]]. He has some experience with Perl.&lt;br /&gt;
== Staff Positions ==&lt;br /&gt;
Evil was hired for the LAT of the Graal server Classic (officially known again as Graal: The Adventure) on August 31, 2003.&lt;br /&gt;
Although he does scripting, Classic labels all development staff as part of the LAT.&lt;br /&gt;
&lt;br /&gt;
His primary job in this position was to work on the levels convertion from the old [[GServer]] scripting format, so that they may be compatible with the [[NPC Server]]. Coming into the position with a great lack of Graal scripting experience, it was not until many months later that he was actually up to the task, and he often redid his completed levels' scripts once he learned the correct way to do them.&lt;br /&gt;
&lt;br /&gt;
He was made LAT Administrator by the newly appointed Assistant Manager of Classic, [[Kat]], who was promoted from that position, on February 26, 2004. (This later became a co-postion with [[Com013]], an inactive member of the LAT and former LAT Admin, who came back and still did little work.)&lt;br /&gt;
&lt;br /&gt;
In this position he sought to hire new scripters for the project, which was still far from completion. Although he hired a few people, only one person truly showed the requried skill and attitude for the position ([[Zero]]).&lt;br /&gt;
&lt;br /&gt;
In the end, the project was plagued by incompleted systems of the level which [[Stefan]] required, incompleted important classes, and lack of qualified scripters.&lt;br /&gt;
&lt;br /&gt;
Evil and [[Kat]] resigned from their respective positions on March 9, 2004.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From that day on he continued to work for Classic as a [Events Team|Game Coordinator], doing scripting work for the old [[GServer]] version of Classic (which is still public today in that form.) Eventually he left the position due to inactivity, for he was no longer playing Classic, and had moved on to [[Era]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Evil started playing [[Era]] because of his good friendship with [[Magic Bush]], longtime friend and Events Team Administrator of the server.&lt;br /&gt;
&lt;br /&gt;
He was hired as a member of the Events Team on April 17, 2004. In this position he contributed greatly to the scripting of new events, and improving the scripting of existing events.&lt;br /&gt;
&lt;br /&gt;
He was then hired as a member of the Era police force, at that time known as Section 31. Not a lot of actual policing was done, and the job was more of a revamped Trade Moderator with jailing ability. Eventually he leaves his Events Team job because of this new position.&lt;br /&gt;
&lt;br /&gt;
Evil was hired as a NAT for Era on June 14, 2004, by the newly appointed Manager, [[Ningnong]] (a co-manager of the server with [[Jenn]].)&lt;br /&gt;
&lt;br /&gt;
When he learns that the server will soon be rescripted and reset, a week or two later, he loses all desire to continue playing Graal, and goes on a few month hiatus from the game.&lt;br /&gt;
&lt;br /&gt;
He eventually returns to the server a few months later, since his good friend [[Magic Bush]] was playing once again.&lt;br /&gt;
&lt;br /&gt;
He hopes to once again achieve some sort of staff position on the server, and prove his worth, as a result of the shame he felt from quitting the NAT after only a week or two.&lt;br /&gt;
&lt;br /&gt;
== Graal Accounts ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Name'''&lt;br /&gt;
| '''Email address'''&lt;br /&gt;
| '''Admin level'''&lt;br /&gt;
| '''Free upgrades'''&lt;br /&gt;
| '''Banned?'''&lt;br /&gt;
| '''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
| Evil_Trunks&lt;br /&gt;
| evilgraal at comcast.net&lt;br /&gt;
| 0/all&lt;br /&gt;
| None.&lt;br /&gt;
| No.&lt;br /&gt;
| This is his main account, and his only upgraded account.&lt;br /&gt;
|}&lt;br /&gt;
== Contact ==&lt;br /&gt;
Evil can be contacted through the [[Graal Communication Center]] via forum PM. He may answer emails sent to evilgraal at comcast.net. He can often be found playing on the Graal [[Playerworld]] Era.&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1277</id>
		<title>User:Evil</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1277"/>
		<updated>2005-01-05T06:31:46Z</updated>

		<summary type="html">&lt;p&gt;Evil: /* Staff Positions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{player}}&lt;br /&gt;
Evil is a player of Graal who has been playing since early 2002.&lt;br /&gt;
&lt;br /&gt;
== Community ==&lt;br /&gt;
His account is now able to access the [[Graal Communication Center]]. Evil especially likes posting in the NPC Scripting section.&lt;br /&gt;
&lt;br /&gt;
== Development Areas ==&lt;br /&gt;
He is skilled in [[GScript|Graal scripting]]. He has some experience with Perl.&lt;br /&gt;
== Staff Positions ==&lt;br /&gt;
Evil was hired for the LAT of the Graal server Classic (officially known again as Graal: The Adventure) on August 31, 2003.&lt;br /&gt;
Although he does scripting, Classic labels all development staff as part of the LAT.&lt;br /&gt;
&lt;br /&gt;
His primary job in this position was to work on the levels convertion from the old [[GServer]] scripting format, so that they may be compatible with the [[NPC Server]]. Coming into the position with a great lack of Graal scripting experience, it was not until many months later that he was actually up to the task, and he often redid his completed levels' scripts once he learned the correct way to do them.&lt;br /&gt;
&lt;br /&gt;
He was made LAT Administrator by the newly appointed Assistant Manager of Classic, [[Kat]], who was promoted from that position, on February 26, 2004. (This later became a co-postion with [[Com013]], an inactive member of the LAT and former LAT Admin, who came back and still did little work.)&lt;br /&gt;
&lt;br /&gt;
In this position he sought to hire new scripters for the project, which was still far from completion. Although he hired a few people, only one person truly showed the requried skill and attitude for the position ([[Zero]]).&lt;br /&gt;
&lt;br /&gt;
In the end, the project was plagued by incompleted systems of the level which [[Stefan]] required, incompleted important classes, and lack of qualified scripters.&lt;br /&gt;
&lt;br /&gt;
Evil and [[Kat]] resigned from their respective positions on March 9, 2004.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From that day on he continued to work for Classic as a [Events Team|Game Coordinator], doing scripting work for the old [[GServer]] version of Classic (which is still public today in that form.) Eventually he left the position due to inactivity, for he was no longer playing Classic, and had moved on to [[Era]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Evil started playing [[Era]] because of his good friendship with [[Magic Bush]], longtime friend and Events Team Administrator of the server.&lt;br /&gt;
&lt;br /&gt;
Evil was hired as a member of the Events Team on April 17, 2004. In this position he contributed greatly to the scripting of new events, and improving the scripting of existing events.&lt;br /&gt;
&lt;br /&gt;
Evil was then hired as a member of the Era police force, at that time known as Section 31. Not a lot of actual policing was done, and the job was more of a revamped Trade Moderator with jailing ability. Eventually he leaves his Events Team job because of this new position.&lt;br /&gt;
&lt;br /&gt;
Evil was hired as a NAT for Era on June 14, 2004, by the newly appointed Manager, [[Ningnong]] (a co-manager of the server with [[Jenn]].)&lt;br /&gt;
&lt;br /&gt;
When he learns that the server will soon be rescripted and reset, a week or two later, he loses all desire to continue playing Graal, and goes on a few month hiatus from the game.&lt;br /&gt;
&lt;br /&gt;
He eventually returns to the server a few months later, since his good friend [[Magic Bush]] was playing once again.&lt;br /&gt;
&lt;br /&gt;
He hopes to once again achieve some sort of staff position on the server, and prove his worth, as a result of the shame he felt from quitting the NAT after only a week or two.&lt;br /&gt;
&lt;br /&gt;
== Graal Accounts ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Name'''&lt;br /&gt;
| '''Email address'''&lt;br /&gt;
| '''Admin level'''&lt;br /&gt;
| '''Free upgrades'''&lt;br /&gt;
| '''Banned?'''&lt;br /&gt;
| '''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
| Evil_Trunks&lt;br /&gt;
| evilgraal at comcast.net&lt;br /&gt;
| 0/all&lt;br /&gt;
| None.&lt;br /&gt;
| No.&lt;br /&gt;
| This is his main account, and his only upgraded account.&lt;br /&gt;
|}&lt;br /&gt;
== Contact ==&lt;br /&gt;
Evil can be contacted through the [[Graal Communication Center]] via forum PM. He may answer emails sent to evilgraal at comcast.net. He can often be found playing on the Graal [[Playerworld]] Era.&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1276</id>
		<title>User:Evil</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1276"/>
		<updated>2005-01-05T06:31:20Z</updated>

		<summary type="html">&lt;p&gt;Evil: /* Staff Positions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{player}}&lt;br /&gt;
Evil is a player of Graal who has been playing since early 2002.&lt;br /&gt;
&lt;br /&gt;
== Community ==&lt;br /&gt;
His account is now able to access the [[Graal Communication Center]]. Evil especially likes posting in the NPC Scripting section.&lt;br /&gt;
&lt;br /&gt;
== Development Areas ==&lt;br /&gt;
He is skilled in [[GScript|Graal scripting]]. He has some experience with Perl.&lt;br /&gt;
== Staff Positions ==&lt;br /&gt;
Evil was hired for the LAT of the Graal server Classic (officially known again as Graal: The Adventure) on August 31, 2003.&lt;br /&gt;
Although he does scripting, Classic labels all development staff as part of the LAT.&lt;br /&gt;
&lt;br /&gt;
His primary job in this position was to work on the levels convertion from the old [[GServer]] scripting format, so that they may be compatible with the [[NPC Server]]. Coming into the position with a great lack of Graal scripting experience, it was not until many months later that he was actually up to the task, and he often redid his completed levels' scripts once he learned the correct way to do them.&lt;br /&gt;
&lt;br /&gt;
He was made LAT Administrator by the newly appointed Assistant Manager of Classic, [[Kat]], who was promoted from that position, on February 26, 2004. (This later became a co-postion with [[Com013]], an inactive member of the LAT and former LAT Admin, who came back and still did little work.)&lt;br /&gt;
&lt;br /&gt;
In this position he sought to hire new scripters for the project, which was still far from completion. Although he hired a few people, only one person truly showed the requried skill and attitude for the position ([[Zero]]).&lt;br /&gt;
&lt;br /&gt;
In the end, the project was plagued by incompleted systems of the level which [[Stefan]] required, incompleted important classes, and lack of qualified scripters.&lt;br /&gt;
&lt;br /&gt;
Evil and [[Kat]] resigned from their respective positions on March 9, 2004.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From that day on he continued to work for Classic as a [Events Team|Game Coordinator], doing scripting work for the old [[GServer]] version of Classic (which is still public today in that form.) Eventually he left the position due to inactivity, for he was no longer playing Classic, and had moved on to [[Era]].&lt;br /&gt;
&lt;br /&gt;
Evil started playing [[Era]] because of his good friendship with [[Magic Bush]], longtime friend and Events Team Administrator of the server.&lt;br /&gt;
&lt;br /&gt;
Evil was hired as a member of the Events Team on April 17, 2004. In this position he contributed greatly to the scripting of new events, and improving the scripting of existing events.&lt;br /&gt;
&lt;br /&gt;
Evil was then hired as a member of the Era police force, at that time known as Section 31. Not a lot of actual policing was done, and the job was more of a revamped Trade Moderator with jailing ability. Eventually he leaves his Events Team job because of this new position.&lt;br /&gt;
&lt;br /&gt;
Evil was hired as a NAT for Era on June 14, 2004, by the newly appointed Manager, [[Ningnong]] (a co-manager of the server with [[Jenn]].)&lt;br /&gt;
&lt;br /&gt;
When he learns that the server will soon be rescripted and reset, a week or two later, he loses all desire to continue playing Graal, and goes on a few month hiatus from the game.&lt;br /&gt;
&lt;br /&gt;
He eventually returns to the server a few months later, since his good friend [[Magic Bush]] was playing once again.&lt;br /&gt;
&lt;br /&gt;
He hopes to once again achieve some sort of staff position on the server, and prove his worth, as a result of the shame he felt from quitting the NAT after only a week or two.&lt;br /&gt;
&lt;br /&gt;
== Graal Accounts ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Name'''&lt;br /&gt;
| '''Email address'''&lt;br /&gt;
| '''Admin level'''&lt;br /&gt;
| '''Free upgrades'''&lt;br /&gt;
| '''Banned?'''&lt;br /&gt;
| '''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
| Evil_Trunks&lt;br /&gt;
| evilgraal at comcast.net&lt;br /&gt;
| 0/all&lt;br /&gt;
| None.&lt;br /&gt;
| No.&lt;br /&gt;
| This is his main account, and his only upgraded account.&lt;br /&gt;
|}&lt;br /&gt;
== Contact ==&lt;br /&gt;
Evil can be contacted through the [[Graal Communication Center]] via forum PM. He may answer emails sent to evilgraal at comcast.net. He can often be found playing on the Graal [[Playerworld]] Era.&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1275</id>
		<title>User:Evil</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1275"/>
		<updated>2005-01-05T06:23:27Z</updated>

		<summary type="html">&lt;p&gt;Evil: /* Staff Positions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{player}}&lt;br /&gt;
Evil is a player of Graal who has been playing since early 2002.&lt;br /&gt;
&lt;br /&gt;
== Community ==&lt;br /&gt;
His account is now able to access the [[Graal Communication Center]]. Evil especially likes posting in the NPC Scripting section.&lt;br /&gt;
&lt;br /&gt;
== Development Areas ==&lt;br /&gt;
He is skilled in [[GScript|Graal scripting]]. He has some experience with Perl.&lt;br /&gt;
== Staff Positions ==&lt;br /&gt;
Evil was hired for the LAT of the Graal server Classic (officially known again as Graal: The Adventure) on August 31, 2003.&lt;br /&gt;
Although he does scripting, Classic labels all development staff as part of the LAT.&lt;br /&gt;
&lt;br /&gt;
His primary job in this position was to work on the levels convertion from the old [[GServer]] scripting format, so that they may be compatible with the [[NPC Server]]. Coming into the position with a great lack of Graal scripting experience, it was not until many months later that he was actually up to the task, and he often redid his completed levels' scripts once he learned the correct way to do them.&lt;br /&gt;
&lt;br /&gt;
He was made LAT Administrator by the newly appointed Assistant Manager of Classic, [[Kat]], who was promoted from that position, on February 26, 2004. (This later became a co-postion with [[Com013]], an inactive member of the LAT and former LAT Admin, who came back and still did little work.)&lt;br /&gt;
&lt;br /&gt;
In this position he sought to hire new scripters for the project, which was still far from completion. Although he hired a few people, only one person truly showed the requried skill and attitude for the position ([[Zero]]).&lt;br /&gt;
&lt;br /&gt;
In the end, the project was plagued by incompleted systems of the level which [[Stefan]] required, incompleted important classes, and lack of qualified scripters.&lt;br /&gt;
&lt;br /&gt;
Evil and [[Kat]] resigned from their respective positions on March 9, 2004.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From that day on he continued to work for Classic as a [Events Team|Game Coordinator], doing scripting work for the old [[GServer]] version of Classic (which is still public today in that form.) Eventually he left the position due to inactivity, for he was no longer playing Classic, and had moved on to [[Era]].&lt;br /&gt;
&lt;br /&gt;
Evil started playing [[Era]] because of his good friendship with [[Magic Bush]], longtime friend and Events Team Administrator of the server.&lt;br /&gt;
&lt;br /&gt;
Evil was hired as a member of the Events Team on April 17, 2004. In this position he contributed greatly to the scripting of new events, and improving the scripting of existing events.&lt;br /&gt;
&lt;br /&gt;
== Graal Accounts ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Name'''&lt;br /&gt;
| '''Email address'''&lt;br /&gt;
| '''Admin level'''&lt;br /&gt;
| '''Free upgrades'''&lt;br /&gt;
| '''Banned?'''&lt;br /&gt;
| '''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
| Evil_Trunks&lt;br /&gt;
| evilgraal at comcast.net&lt;br /&gt;
| 0/all&lt;br /&gt;
| None.&lt;br /&gt;
| No.&lt;br /&gt;
| This is his main account, and his only upgraded account.&lt;br /&gt;
|}&lt;br /&gt;
== Contact ==&lt;br /&gt;
Evil can be contacted through the [[Graal Communication Center]] via forum PM. He may answer emails sent to evilgraal at comcast.net. He can often be found playing on the Graal [[Playerworld]] Era.&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1274</id>
		<title>User:Evil</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1274"/>
		<updated>2005-01-05T06:18:39Z</updated>

		<summary type="html">&lt;p&gt;Evil: /* Staff Positions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{player}}&lt;br /&gt;
Evil is a player of Graal who has been playing since early 2002.&lt;br /&gt;
&lt;br /&gt;
== Community ==&lt;br /&gt;
His account is now able to access the [[Graal Communication Center]]. Evil especially likes posting in the NPC Scripting section.&lt;br /&gt;
&lt;br /&gt;
== Development Areas ==&lt;br /&gt;
He is skilled in [[GScript|Graal scripting]]. He has some experience with Perl.&lt;br /&gt;
== Staff Positions ==&lt;br /&gt;
Evil was hired for the LAT of the Graal server Classic (officially known again as Graal: The Adventure) on August 31, 2003.&lt;br /&gt;
Although he does scripting, Classic labels all development staff as part of the LAT.&lt;br /&gt;
&lt;br /&gt;
His primary job in this position was to work on the levels convertion from the old [[GServer]] scripting format, so that they may be compatible with the [[NPC Server]]. Coming into the position with a great lack of Graal scripting experience, it was not until many months later that he was actually up to the task, and he often redid his completed levels' scripts once he learned the correct way to do them.&lt;br /&gt;
&lt;br /&gt;
He was made LAT Administrator by the newly appointed Assistant Manager of Classic, [[Kat]], who was promoted from that position, on February 26, 2004. (This later became a co-postion with [[Com013]], an inactive member of the LAT and former LAT Admin, who came back and still did little work.)&lt;br /&gt;
&lt;br /&gt;
In this position he sought to hire new scripters for the project, which was still far from completion. Although he hired a few people, only one person truly showed the requried skill and attitude for the position ([[Zero]]).&lt;br /&gt;
&lt;br /&gt;
In the end, the project was plagued by incompleted systems of the level which [[Stefan]] required, incompleted important classes, and lack of qualified scripters.&lt;br /&gt;
&lt;br /&gt;
Evil and [[Kat]] resigned from their respective positions on March 9, 2004.&lt;br /&gt;
&lt;br /&gt;
== Graal Accounts ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Name'''&lt;br /&gt;
| '''Email address'''&lt;br /&gt;
| '''Admin level'''&lt;br /&gt;
| '''Free upgrades'''&lt;br /&gt;
| '''Banned?'''&lt;br /&gt;
| '''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
| Evil_Trunks&lt;br /&gt;
| evilgraal at comcast.net&lt;br /&gt;
| 0/all&lt;br /&gt;
| None.&lt;br /&gt;
| No.&lt;br /&gt;
| This is his main account, and his only upgraded account.&lt;br /&gt;
|}&lt;br /&gt;
== Contact ==&lt;br /&gt;
Evil can be contacted through the [[Graal Communication Center]] via forum PM. He may answer emails sent to evilgraal at comcast.net. He can often be found playing on the Graal [[Playerworld]] Era.&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1273</id>
		<title>User:Evil</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1273"/>
		<updated>2005-01-05T06:02:15Z</updated>

		<summary type="html">&lt;p&gt;Evil: /* Community */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{player}}&lt;br /&gt;
Evil is a player of Graal who has been playing since early 2002.&lt;br /&gt;
&lt;br /&gt;
== Community ==&lt;br /&gt;
His account is now able to access the [[Graal Communication Center]]. Evil especially likes posting in the NPC Scripting section.&lt;br /&gt;
&lt;br /&gt;
== Development Areas ==&lt;br /&gt;
He is skilled in [[GScript|Graal scripting]]. He has some experience with Perl.&lt;br /&gt;
== Staff Positions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Graal Accounts ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Name'''&lt;br /&gt;
| '''Email address'''&lt;br /&gt;
| '''Admin level'''&lt;br /&gt;
| '''Free upgrades'''&lt;br /&gt;
| '''Banned?'''&lt;br /&gt;
| '''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
| Evil_Trunks&lt;br /&gt;
| evilgraal at comcast.net&lt;br /&gt;
| 0/all&lt;br /&gt;
| None.&lt;br /&gt;
| No.&lt;br /&gt;
| This is his main account, and his only upgraded account.&lt;br /&gt;
|}&lt;br /&gt;
== Contact ==&lt;br /&gt;
Evil can be contacted through the [[Graal Communication Center]] via forum PM. He may answer emails sent to evilgraal at comcast.net. He can often be found playing on the Graal [[Playerworld]] Era.&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1272</id>
		<title>User:Evil</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=User:Evil&amp;diff=1272"/>
		<updated>2005-01-05T05:59:26Z</updated>

		<summary type="html">&lt;p&gt;Evil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{player}}&lt;br /&gt;
Evil is a player of Graal who has been playing since early 2002.&lt;br /&gt;
&lt;br /&gt;
== Community ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Development Areas ==&lt;br /&gt;
He is skilled in [[GScript|Graal scripting]]. He has some experience with Perl.&lt;br /&gt;
== Staff Positions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Graal Accounts ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Name'''&lt;br /&gt;
| '''Email address'''&lt;br /&gt;
| '''Admin level'''&lt;br /&gt;
| '''Free upgrades'''&lt;br /&gt;
| '''Banned?'''&lt;br /&gt;
| '''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
| Evil_Trunks&lt;br /&gt;
| evilgraal at comcast.net&lt;br /&gt;
| 0/all&lt;br /&gt;
| None.&lt;br /&gt;
| No.&lt;br /&gt;
| This is his main account, and his only upgraded account.&lt;br /&gt;
|}&lt;br /&gt;
== Contact ==&lt;br /&gt;
Evil can be contacted through the [[Graal Communication Center]] via forum PM. He may answer emails sent to evilgraal at comcast.net. He can often be found playing on the Graal [[Playerworld]] Era.&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=Trial&amp;diff=177</id>
		<title>Trial</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=Trial&amp;diff=177"/>
		<updated>2004-07-23T04:13:01Z</updated>

		<summary type="html">&lt;p&gt;Evil: revert of spam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The name given to accounts which have not yet paid any money for special privileges. These accounts cannot save their attributes on any servers, and do not have any access to [[Graal Kingdoms]], other forthcoming Gold worlds, or hosted [[playerworld]]s not visible on the Classic tab.&lt;br /&gt;
&lt;br /&gt;
The fact that their attributes reset after each logoff is a constant source of annoyance to server managers, as using trial accounts is a common method of avoiding bans and jails. Many scripts have been designed to keep trial players restrained, with varying success, but many servers simply opt not to allow trial accounts any access whatsoever.&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
	<entry>
		<id>https://wiki.graalians.com/index.php?title=Main_Page&amp;diff=124</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.graalians.com/index.php?title=Main_Page&amp;diff=124"/>
		<updated>2004-07-14T12:03:54Z</updated>

		<summary type="html">&lt;p&gt;Evil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The intent of this site is to provide a comprehensive and up to date resource of documentation of [[Graal]]'s various features, which would be impossible without the the great interactivity of a [[Wiki]].&lt;br /&gt;
&lt;br /&gt;
The most well known and largest [[WikiPedia:Wiki]] is most definately the [http://www.wikipedia.org Wikipedia], and the first [[Wiki:WikiWikiWeb]] was Ward Cunningham's [http://c2.com/cgi/wiki Portland Pattern Repository].&lt;br /&gt;
&lt;br /&gt;
Hopefully the obvious success of both, and the freedom and openness of this Wiki, will encourage [[Graalian]]s to similar creativity.&lt;br /&gt;
&lt;br /&gt;
There are many &amp;quot;broken&amp;quot; links that lead to yet uncreated articles. You are encouraged to write some text for those articles, and even if it is just a bit to get the page started. You are also encouraged to link to other non existant pages to promote their creation, but please check first whether a similar page already exists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
List of [[Serveroptions]]&lt;/div&gt;</summary>
		<author><name>Evil</name></author>
	</entry>
</feed>