Creation/Dev/Script/Client: Difference between revisions
m (→Graal 2D: grammar) |
Pooper200000 (talk | contribs) No edit summary |
||
(84 intermediate revisions by 13 users not shown) | |||
Line 1: | Line 1: | ||
=Client Supported Script Features= | [[Category:Scripting Reference]] | ||
<noinclude>=Client Supported Script Features= | |||
==Settings== | ==Settings== | ||
Line 69: | Line 70: | ||
| $pref::graal::defaultfontsize | | $pref::graal::defaultfontsize | ||
| integer | | integer | ||
| | | Change showtext zoom: $pref::graal::defaultfontsize/24 | ||
|- | |- | ||
| $pref::graal::dontconnectlevels | | $pref::graal::dontconnectlevels | ||
Line 176: | Line 177: | ||
| allfeatures | | allfeatures | ||
| integer (read only) | | integer (read only) | ||
| | | for use with enablefeatures(), it's the default unless it is changed. | ||
|- | |- | ||
| allplayerscount | | allplayerscount | ||
| integer (read only) | |||
| The size of the allplayers array. | |||
|- | |||
| allrenderobjecttypes | |||
| integer (read only) | | integer (read only) | ||
| | | | ||
Line 188: | Line 193: | ||
| canspin | | canspin | ||
| boolean (read only) | | boolean (read only) | ||
| | | True if the player has spin attack | ||
|- | |- | ||
| carriesblackstone | | carriesblackstone | ||
| boolean (read only) | | boolean (read only) | ||
| | | True if the player is carrying a black stone | ||
|- | |- | ||
| carriesbush | | carriesbush | ||
| boolean (read only) | | boolean (read only) | ||
| | | True if the player is carrying a bush | ||
|- | |- | ||
| carriesnpc | | carriesnpc | ||
| boolean (read only) | | boolean (read only) | ||
| | | True if the player is carrying an NPC. | ||
|- | |- | ||
| carriessign | | carriessign | ||
| boolean (read only) | | boolean (read only) | ||
| | | True if a player is carrying a sign. | ||
|- | |- | ||
| carriesstone | | carriesstone | ||
| boolean (read only) | | boolean (read only) | ||
| | | True if a player is carrying a stone. | ||
|- | |- | ||
| carriesvase | | carriesvase | ||
| boolean (read only) | | boolean (read only) | ||
| | | True if a player is carrying a vase. | ||
|- | |- | ||
| downloadfile | | downloadfile | ||
| string (read only) | | string (read only) | ||
| | | Name of the file currently being downloaded | ||
|- | |- | ||
| downloadpos | | downloadpos | ||
| integer (read only) | | integer (read only) | ||
| | | Amount of download file already downloaded | ||
|- | |- | ||
| downloadsize | | downloadsize | ||
| integer (read only) | | integer (read only) | ||
| | | Size of the file being downloaded | ||
|- | |- | ||
| editingmission | | editingmission | ||
Line 232: | Line 237: | ||
| emoticonchar | | emoticonchar | ||
| string (read only) | | string (read only) | ||
| | | The letter of the emoticon being displayed by the player | ||
|- | |- | ||
| focusx | | focusx | ||
| float (read only) | | float (read only) | ||
| | | X coordinate of the center of playing screen in the level, offset -1.5 | ||
|- | |- | ||
| focusy | | focusy | ||
| float (read only) | | float (read only) | ||
| | | Y coordinate of the center of playing screen in the level, offset -2 | ||
|- | |- | ||
| graalversion | | graalversion | ||
Line 248: | Line 253: | ||
| gravity | | gravity | ||
| float | | float | ||
| | | Downward acceleration for projectiles ejected with the shoot() function. | ||
|- | |- | ||
| iscarrying | | iscarrying | ||
| boolean (read only) | | boolean (read only) | ||
| | | True if the player is carrying anything | ||
|- | |- | ||
| isfocused | | isfocused | ||
Line 260: | Line 265: | ||
| isgraal3d | | isgraal3d | ||
| boolean (read only) | | boolean (read only) | ||
| | | True if you are running graal 3D | ||
|- | |- | ||
| isleader | | isleader | ||
| boolean (read only) | | boolean (read only) | ||
| | | signifies that the player is the first person in the level | ||
|- | |- | ||
| isonmap | | isonmap | ||
| boolean (read only) | | boolean (read only) | ||
| signifies that the player is on a map | |||
|- | |||
| jpegquality | |||
| integer | |||
| | | | ||
|- | |- | ||
Line 276: | Line 285: | ||
| leftmousebutton | | leftmousebutton | ||
| boolean (read only) | | boolean (read only) | ||
| | | True if the left mouse button is down | ||
|- | |- | ||
| levelorgx | | levelorgx | ||
| float (read only) | | float (read only) | ||
| | | The x-value of the levels' origin (may deviate with attachplayertoobj) | ||
|- | |- | ||
| levelorgy | | levelorgy | ||
| float (read only) | | float (read only) | ||
| | | The y-value of the levels' origin (may deviate with attachplayertoobj) | ||
|- | |- | ||
| lighteffectsenabled | | lighteffectsenabled | ||
| boolean (read only) | | boolean (read only) | ||
| | | signifies that the player has enabled light effects | ||
|- | |||
| weathereffectsenabled | |||
| boolean (read only) | |||
| signifies that the player has enabled weather effects | |||
|- | |||
| particleeffectsenabled | |||
| boolean (read only) | |||
| signifies that the player has enabled particle effects | |||
|- | |- | ||
| middlemousebutton | | middlemousebutton | ||
| boolean (read only) | | boolean (read only) | ||
| | | True if the middle mouse button is down | ||
|- | |- | ||
| mousebuttons | | mousebuttons | ||
| integer (read only) | | integer (read only) | ||
| | | Counts the amount of mousebuttons pressed | ||
|- | |- | ||
| mousescreenx | | mousescreenx | ||
Line 308: | Line 325: | ||
| mousewheeldelta | | mousewheeldelta | ||
| integer (read only) | | integer (read only) | ||
| | | Amount that the mouse scroll wheel was scrolled [(-) is up, (+) is down] | ||
|- | |- | ||
| mousex | | mousex | ||
Line 320: | Line 337: | ||
| musiclen | | musiclen | ||
| integer (read only) | | integer (read only) | ||
| | | The duration of the playing sound file | ||
|- | |- | ||
| musicpos | | musicpos | ||
| integer (read only) | | integer (read only) | ||
| | | The position in the file at which the sound file is | ||
|- | |- | ||
| rightmousebutton | | rightmousebutton | ||
| boolean (read only) | | boolean (read only) | ||
| | | True if the right mouse button is down | ||
|- | |- | ||
| screenheight | | screenheight | ||
Line 348: | Line 365: | ||
| selectedlistplayers | | selectedlistplayers | ||
| object | | object | ||
| | | an array of players highlighted on the playerlist | ||
|- | |- | ||
| selectedsword | | selectedsword | ||
Line 356: | Line 373: | ||
| selectedweapon | | selectedweapon | ||
| integer | | integer | ||
| | | Index of player.weapons that references the player's current weapon | ||
|- | |- | ||
| servername | | servername | ||
Line 372: | Line 389: | ||
| shotbybaddy | | shotbybaddy | ||
| boolean (read only) | | boolean (read only) | ||
| | | True if the player was shot by a baddy | ||
|- | |- | ||
| shotbyplayer | | shotbyplayer | ||
| boolean (read only) | | boolean (read only) | ||
| | | True if the player was shot by another player | ||
|- | |- | ||
| showterraingrid | | showterraingrid | ||
Line 384: | Line 401: | ||
| timevar | | timevar | ||
| integer (read only) | | integer (read only) | ||
| | | A timer which is increased each 5 seconds and is snychronized between server and clients; The timer started exactly on 2001-02-01 at 18:33:34 Paris time (opening of Graal2001); on serverside the unixtime (timevar2) is around 981048814 + timevar*5 | ||
|- | |- | ||
| timevar2 | | timevar2 | ||
| float (read only) | | float (read only) | ||
| | | Unix-time with a very high precision, not synchronized between server and client | ||
|- | |||
| timevar3 | |||
| float (read only) | |||
| synchronized time which works on both server- and client-side, precision is milliseconds, only available for Graal3D right now | |||
|- | |- | ||
| wasshooted | | wasshooted | ||
Line 396: | Line 417: | ||
| waterheight | | waterheight | ||
| float | | float | ||
| | | The height of water at the player's (x,y) on a terrain | ||
|- | |- | ||
| weapons | | weapons | ||
Line 425: | Line 446: | ||
| float | | float | ||
| | | | ||
|} | |||
==Variable Prefixes== | |||
{| border="1" cellpadding="2" width="100%" | |||
| '''Prefix''' | |||
| '''Description''' | |||
|- | |||
| object.var | |||
| accesses the variables of the object. The object can be retrieved by using the case-sensitive name of the object or a variable pointing to the object. | |||
|- | |||
| this.var | |||
| variables that belong to the current script object, on the server-side they are saved to file when the object is a database npc | |||
|- | |||
| thiso.var | |||
| refer to the this. variables of the executing npc ('o' stands for original) when you use the with () command: with (findnpc("npc2")) thiso.temp = this.temp; will copy 'this.temp' from npc2 to the current npc | |||
|- | |||
| temp.var | |||
| variables that belong to the current function. They can be used anywhere in the function even when referencing another object. Function parameters are declared as temp variables if they do not have a prefix. Temp variables will be destroyed at the end of the function. | |||
|- | |||
| player.var | |||
| variables of the current player object, when the event was invoked by a player (e.g. playertouchsme), or you do with (findplayer(accountname)) | |||
|- | |||
| playero.var | |||
| variables of the original player object, in generally the player who has invoked the event (e.g. playertouchsme) | |||
|- | |||
| client.var | |||
| short for player.client.var, variables that can be changed on server-side and client-side | |||
|- | |||
| clientr.var | |||
| short for player.clientr.var, variables that can only be changed on server-side but can be read on client-side | |||
|- | |||
| server.var | |||
| variables that only exists on server-side and can be accessed by all npcs | |||
|- | |||
| serverr.var | |||
| variables that can only be changed on server-side and is server wide, but can also be read by all clients, so it can be used for storing the state of global activities that need client-side actions like displaying weather; like server. vars they can also be changed with remotecontrol.exe by administrators that have the right to change server. variables | |||
|- | |||
| level.var | |||
| variables of the current level, which is the level the executing npc stands in (on server-side) or the player is in (on client-side) | |||
|} | |} | ||
Line 430: | Line 490: | ||
''Note: Currently this doesn't list the functions which are optimized at compile time, see [[Creation/Dev/Script/Starting_Guide#Standard_functions|Starting Guide: Standard functions]] for those.'' | ''Note: Currently this doesn't list the functions which are optimized at compile time, see [[Creation/Dev/Script/Starting_Guide#Standard_functions|Starting Guide: Standard functions]] for those.'' | ||
* aindexof(float, | ===Common=== | ||
* echo(str text) | * aindexof(float, array) - returns integer, better use array.index(float) instead | ||
* getbasepackage() - returns object | * echo(str text) - prints text in the F2 window (clientside) or RC chat (serverside) | ||
* getbasepackage() - returns [[Creation/Dev/Script/Client/TUpdatePackage|TUpdatePackage]] object | |||
* getdownloadedupdatepackagesize() - returns integer | * getdownloadedupdatepackagesize() - returns integer | ||
* getdownloadingpackage() - returns object | * getdownloadingpackage() - returns [[Creation/Dev/Script/Client/TUpdatePackage|TUpdatePackage]] object | ||
* getdownloadingpackagescount() - returns integer | * getdownloadingpackagescount() - returns integer | ||
* gethttprequest(str, int, str) - returns [[Creation/Dev/Script/Client/THTTPRequest|THTTPRequest]] object | * gethttprequest(str, int, str) - returns [[Creation/Dev/Script/Client/THTTPRequest|THTTPRequest]] object | ||
Line 442: | Line 502: | ||
* getpackagesdownloaded() - returns boolean | * getpackagesdownloaded() - returns boolean | ||
* getplatform() - returns string | * getplatform() - returns string | ||
* getservername() - returns string | * getservername() - returns string | ||
* gettotalupdatepackagesize() - returns integer | * gettotalupdatepackagesize() - returns integer | ||
* getupdatepackage(str) - returns object | * getupdatepackage(str) - returns object | ||
* isadminguild(str guildname) - returns boolean | * isadminguild(str guildname) - returns boolean | ||
* isobject(str objectname) - returns boolean, checks if an object is existing | |||
* isobject(str objectname) - returns boolean | * keydown(int keynumber) - returns if the specified key is pressed (0..10: up, left, down, right, S, A, D, M, tab, Q, P) | ||
* keydown(int | |||
* keydown2(int keycode, bool ignorecase) - returns boolean | * keydown2(int keycode, bool ignorecase) - returns boolean | ||
* keyname(int keycode) - returns string | * keyname(int keycode) - returns string | ||
* opengraalurl(str url) | * opengraalurl(str url) - opens a website of www.graalonline.com and automatically lets the player login to it (e.g. for the upgrade page or screenshot section) | ||
* openurl(str url) | * openurl(str url) | ||
* openurl2(str url, int width, int height) | * openurl2(str url, int width, int height) - deprecated, width and height are ignored | ||
* requesthttp(str, int, str) - returns [[Creation/Dev/Script/Client/THTTPRequest|THTTPRequest]] object | * requesthttp(str, int, str) - returns [[Creation/Dev/Script/Client/THTTPRequest|THTTPRequest]] object | ||
* requesttext(str type, str option) | |||
* requesttext(str, str) | |||
* requesturl(str url) - returns [[Creation/Dev/Script/Client/THTTPRequest|THTTPRequest]] object | * requesturl(str url) - returns [[Creation/Dev/Script/Client/THTTPRequest|THTTPRequest]] object | ||
* savelog(str text) | * savelog(str text) | ||
* sendrpgmessage(str text) | * savelog2(str filename, str text) - adds a log entry to "logs/filename" | ||
* sendtext(str, str, params...) | * sendrpgmessage(str text) - adds text to the F2 window | ||
* sendtorc(str text) | * sendtext(str type, str option, params...) | ||
* serverwarp(str | * sendtorc(str text) - serverside only, displays text on the RC chat | ||
* serverwarp(str servername) - the name can either be the internal name (graal2002) or part of the server name on the serverlist | |||
====Files==== | ====Files==== | ||
* extractfilebase(str filepath) - returns string, '/an/example/path/and/file' would return '/an/example/path/and/' | * extractfilebase(str filepath) - returns string, '/an/example/path/and/file' would return '/an/example/path/and/' | ||
Line 474: | Line 530: | ||
* fileexists(str filepath) - returns boolean, checks if a file exists | * fileexists(str filepath) - returns boolean, checks if a file exists | ||
* filesize(str filepath) - returns integer, returns the size of a file | * filesize(str filepath) - returns integer, returns the size of a file | ||
* fileupdate(str filepath) - returns boolean | * fileupdate(str filepath) - returns boolean, checks if a file is existing and requests an update from the server if it has not been checked yet | ||
* findfiles(str, | * findfiles(str filenamepattern, flags) - returns array of strings, flags can be either 1 for recursive search or 0 for non-recursive | ||
* freefileresources(str) | |||
* | |||
* getextension(str filepath) - returns string, 'filename.ext' would return '.ext' | * getextension(str filepath) - returns string, 'filename.ext' would return '.ext' | ||
* requestfiledeletion(str filepath), requests a file to be deleted on the server | * requestfiledeletion(str filepath), requests a file to be deleted on the server | ||
* requestfilerename(str filepath, str newfilepath), requests a file to be renamed on the server | * requestfilerename(str filepath, str newfilepath), requests a file to be renamed on the server | ||
Line 487: | Line 541: | ||
''Watch the [[Creation/Dev/Script/Client/TGraalVar|TGraalVar]] object for loading and saving of files (loadlines etc.)'' | ''Watch the [[Creation/Dev/Script/Client/TGraalVar|TGraalVar]] object for loading and saving of files (loadlines etc.)'' | ||
''See more information about input/output at [[Creation/Dev/Output Methods|Output methods]]'' | |||
====Math==== | ====Math==== | ||
Line 493: | Line 549: | ||
=====Matrices===== | =====Matrices===== | ||
* matrixcreate(str, str) - returns string | GraalScript [[Matrix|matricies]] are arrays of seven elements: three describing translation (position), three describing the rotation axis, and one describing the angle. | ||
* matrixcreatefromeuler(str) - returns string | * [[Matrix#matrixcreate()|matrixcreate]](str vector, str rotation) - returns matrix string | ||
* matrixcreatefromeuler(str eulerrotation) - returns matrix string | |||
* matrixmulpoint(str, str) - returns string | * matrixmulpoint(str, str) - returns string | ||
* matrixmultiply(str, str) - returns string | * matrixmultiply(str matrix, str matrix) - returns matrix string | ||
* matrixmulvector(str, str) - returns string | * matrixmulvector(str matrix, str vector) - returns vector string | ||
=====Vectors===== | =====Vectors===== | ||
* vectoradd( | Each [[Vectors|vector]] is basicly an array of format {x,y,z} but is passed as string for simplicity. Click on the function names to see more information about the vector operations. | ||
* vectorcross( | * [[Vectors#Vector_Addition|vectoradd]](vector, vector) - returns vector | ||
* vectordist( | * [[Cross Product|vectorcross]](vector, vector) - returns vector | ||
* vectordot( | * [[Vectors#Distance_Between_Terminal_Points|vectordist]](vector, vector) - returns float | ||
* vectorlen( | * [[Dot Product|vectordot]](vector, vector) - returns float | ||
* vectornormalize( | * [[Vectors#Vector_Length_.28Magnitude.29|vectorlen]](vector) - returns float | ||
* vectororthobasis( | * [[Vectors#Unit_Length|vectornormalize]](vector) - returns vector, scales the vector to length 1 | ||
* vectorscale( | * vectororthobasis(vector) - returns vector | ||
* vectorsub( | * [[Vectors#Vector-Scalar_Multiplication|vectorscale]](vector, float) - returns vector | ||
* [[Vectors#Vector_Subtraction|vectorsub]](vector, vector) - returns vector | |||
====Strings==== | ====Strings==== | ||
* base64decode(str text) - returns decoded string | * base64decode(str text) - returns decoded string | ||
* base64encode(str text) - returns encoded string | * base64encode(str text) - returns encoded string | ||
* checksum(str text) - returns checksum | * checksum(str text) - returns checksum (integer) | ||
* contains(str haystack, str needle) - returns boolean, you should probably do haystack.contains(needle) instead | * contains(str haystack, str needle) - returns boolean, you should probably do haystack.contains(needle) instead | ||
* getascii(str character) - returns | * getascii(str character) - returns ASCII value integer | ||
* getstringkeys(str) - returns | * getstringkeys(str leading) - searches for variables which start with the specified string and returns an array of their endings | ||
* lowercase(str text) - returns lowercased string | * lowercase(str text) - returns lowercased string, it is recommended to use string.lower() though | ||
* md5(str | * md5(str text) - returns md5 hash string | ||
* randomstring( | * randomstring(array of strings) - returns string | ||
* strcmp(str text1, str text2) - returns integer | * strcmp(str text1, str text2) - returns integer (0 if the strings are equal, a negative value if text1 is alphabetically before text2, otherwise a postive value) | ||
* strequals(str text1, str text2) - returns boolean, you probably should do text1.equals(text2) instead | * strequals(str text1, str text2) - returns boolean, you probably should do text1.equals(text2) or simply text1==text2 instead | ||
* uppercase(str text) - returns uppercased | * uppercase(str text) - returns uppercased string, it is recommended to use string.upper() though | ||
===GUI=== | ===GUI=== | ||
* addcontrol(obj) | * addcontrol(obj) - adds a GUI control or a 3D-object to the scene | ||
* cursoroff() | * cursoroff() | ||
* cursoron() | * cursoron() | ||
* iscursoron() - returns boolean | * iscursoron() - returns boolean | ||
* popdialog() | * popdialog() - removes the top dialog control | ||
* pushdialog(obj) | * pushdialog(obj) - displays a control on top of all other controls, this control gains all focus until it is removed again | ||
* setcontentcontrol(obj) | * setcontentcontrol(obj) - replaces the current content control (usually named GUIContainer) with another one | ||
===Graal 2D=== | ===Graal 2D=== | ||
Line 540: | Line 597: | ||
| '''Description''' | | '''Description''' | ||
|- | |- | ||
| addtiledef(str | | addtiledef(str tilesetimage, str prefix, int tilesettype) | ||
| | | | ||
| Sets the tileset image for levels beginning with the specified prefix. | |||
Tileset type 0 is for pics1.png style tilesets. | |||
Tileset type 1 is for the new tileset format (Era's tiles for example) | |||
|- | |- | ||
| addtiledef2(str | | addtiledef2(str tilesetimage, str prefix, int x, int y) | ||
| | | | ||
| Replaces a section of the tileset (x, y) image for levels beginning with the specified prefix. | |||
|- | |- | ||
| attachplayertoobj(int | | attachplayertoobj(int objtype, int id) | ||
| | | | ||
| Attaches a player to the specified object. Using attachpayertoobj(0, id); the player will be attached to the current NPC. | |||
|- | |- | ||
| callnpc(int npcindex, params...) | | callnpc(int npcindex, params...) | ||
| | | | ||
| | | Invokes an event on an npc, better use npcs[npcindex].trigger(event, params) instead; you can only trigger objects this way that are on your side of clientside/serverside | ||
|- | |- | ||
| callweapon(int weaponindex, params...) | | callweapon(int weaponindex, params...) | ||
| | | | ||
| | | Invokes a trigger on a weapon, better use weapons[weaponindex].trigger(event, params) instead | ||
|- | |- | ||
| detachplayer() | | detachplayer() | ||
| | | | ||
| | | Puts the player back on the level (after using attachplayertoobj). | ||
|- | |- | ||
| disabledefmovement() | | disabledefmovement() | ||
| | | | ||
| | | Disables the default movement. | ||
|- | |- | ||
| disablemap() | | disablemap() | ||
| | | | ||
| | | Disables the default map | ||
|- | |- | ||
| disablepause() | | disablepause() | ||
| | | | ||
| | | Disables pausing. | ||
|- | |- | ||
| disableselectweapons() | | disableselectweapons() | ||
| | | | ||
| | | Disables the default Q menu. | ||
|- | |- | ||
| disableweapons() | | disableweapons() | ||
| | | | ||
| | | Disables weapons. | ||
|- | |- | ||
| enabledefmovement() | | enabledefmovement() | ||
| | | | ||
| | | Enables default movement | ||
|- | |- | ||
| enablefeatures(int flags) | | enablefeatures(int flags) | ||
Line 647: | Line 702: | ||
|- | |- | ||
| 0x8000 | | 0x8000 | ||
| | | Allows F2 output (savelog()/echo()) | ||
|- | |- | ||
| allfeatures | | allfeatures | ||
Line 655: | Line 710: | ||
| enablemap() | | enablemap() | ||
| | | | ||
| | | Enables default map. | ||
|- | |- | ||
| enablepause() | | enablepause() | ||
| | | | ||
| | | Enables pausing. | ||
|- | |- | ||
| enableselectweapons() | | enableselectweapons() | ||
| | | | ||
| | | Enables default Q menu. | ||
|- | |- | ||
| enableweapons() | | enableweapons() | ||
| | | | ||
| | | Enables weapons. | ||
|- | |- | ||
| explodebomb(int bombindex) | | explodebomb(int bombindex) | ||
| | | | ||
| | | Explodes a bomb with the specified index. | ||
|- | |- | ||
| findani(str) | | findani(str) | ||
| | | [[Creation/Dev/Script/Client/TGraalAni|TGraalAni]] object | ||
| | | | ||
|- | |- | ||
| findlevel(str levelfilename) | | findlevel(str levelfilename) | ||
| object | | [[Creation/Dev/Script/Client/TServerLevel|TServerLevel]] object | ||
| | | | ||
|- | |- | ||
| findplayer(str accountname) | | findplayer(str accountname) | ||
| object | | [[Creation/Dev/Script/Client/TServerPlayer|TServerPlayer]] object | ||
| | | Returns player object of Account specified. Player must be online. | ||
|- | |- | ||
| findplayerbyid(int playerid) | | findplayerbyid(int playerid) | ||
| object | | [[Creation/Dev/Script/Client/TServerPlayer|TServerPlayer]] object | ||
| | | Returns player object of id specified. If id isn't available, returns false. | ||
|- | |- | ||
| findweapon(str weaponname) | | findweapon(str weaponname) | ||
| object | | [[Creation/Dev/Script/Client/TServerWeapon|TServerWeapon]] object | ||
| | | Returns weapon object of the specified name if the player has that weapon. | ||
|- | |||
| findweaponnpc(str weaponname) | |||
| [[Creation/Dev/Script/Client/TServerWeapon|TServerWeapon]] object | |||
| Returns weapon object if it exits on the server, only works on server-side. You can normally also access weapons by just typing their name though (e.g. MyWeapon.functionname() instead of findweaponnpc("MyWeapon").functionname()) | |||
|- | |- | ||
| freezeplayer(float seconds) | | freezeplayer(float seconds) | ||
| | | | ||
| | | Freezes player for a specific amount of time. | ||
|- | |- | ||
| getimgheight(str imagefilename) | | getimgheight(str imagefilename) | ||
| integer | | integer | ||
| | | Returns the height (in pixels) of an image. | ||
|- | |- | ||
| getimgwidth(str imagefilename) | | getimgwidth(str imagefilename) | ||
| integer | | integer | ||
| | | Returns the width (in pixels) of an image. | ||
|- | |- | ||
| getmapx(str levelname) | | getmapx(str levelname) | ||
| integer | | integer | ||
| | | X coordinate of the level on a map (top-left level is 0) | ||
|- | |- | ||
| getmapy(str levelname) | | getmapy(str levelname) | ||
| integer | | integer | ||
| | | Y coordinate of the level on a map (top-left level is 0) | ||
|- | |- | ||
| gettextheight(float, str, str) | | gettextheight(float, str, str) | ||
| integer | | integer | ||
| | | Returns the height of the font. Format: | ||
gettextheight(zoom, font, style) | |||
|- | |- | ||
| gettextwidth(float, str, str, str) | | gettextwidth(float, str, str, str) | ||
| integer | | integer | ||
| | | Returns the width of a specified text in a certain font. Format: | ||
gettextwidth(zoom, font, style, text) | |||
|- | |- | ||
| getz(float x, float y) | | getz(float x, float y) | ||
| float | | float | ||
| | | Returns the z value of a terrain at (x,y). | ||
|- | |||
| graalcontrolhasfocus(bool) | |||
| boolean | |||
| parameter says if it should also check if the chat bar has the focus | |||
|- | |- | ||
| hideplayer(float seconds) | | hideplayer(float seconds) | ||
| | | | ||
| | | Hides the player for ''seconds'' seconds. | ||
|- | |- | ||
| hidesword(float seconds) | | hidesword(float seconds) | ||
| | | | ||
| | | Hides the player's sword for ''seconds'' seconds. | ||
|- | |- | ||
| hitnpc(int, float, float, float) | | hitnpc(int, float, float, float) | ||
Line 751: | Line 816: | ||
| loadmap(str mapfilename) | | loadmap(str mapfilename) | ||
| | | | ||
| | | Preloads a gmap on clientside, speeds up entering of new maps but is not required. | ||
|- | |- | ||
| noplayerkilling() | | noplayerkilling() | ||
| | | | ||
| | | Disables killing of other players. This also lets players walk through other players (players are not blocking anymore). | ||
|- | |- | ||
| onwall(float x, float y) | | onwall(float x, float y) | ||
| boolean | | boolean | ||
| | | Returns true if the specified x and y is a blocking tile. | ||
|- | |- | ||
| onwall2(float x, float y, float width, float height) | | onwall2(float x, float y, float width, float height) | ||
| boolean | | boolean | ||
| | | Returns true if a blocking tile exists in the specified area. | ||
|- | |- | ||
| onwater(float x, float y) | | onwater(float x, float y) | ||
| boolean | | boolean | ||
| | | Returns true if the specified x and y is water. | ||
|- | |- | ||
| onwater2(float x, float y, float width, float height) | | onwater2(float x, float y, float width, float height) | ||
| boolean | | boolean | ||
| | | Returns true if water exists in the specified area. | ||
|- | |- | ||
| play(str soundfilename) | | play(str soundfilename) | ||
| | | | ||
| | | Plays the specified sound file. | ||
|- | |- | ||
| play2(str, float, float, float) | | play2(str soundfilename, float x, float y, float volume) | ||
| | | | ||
| Plays the specified sound file at location x, y with the specified volume. Volume should be between 0 and 1, if volume is set to 1 default volume is used (depending on how far away the player is). | |||
|- | |- | ||
| playlooped(str soundfilename) | | playlooped(str soundfilename) | ||
| | | | ||
| Plays the specified sound file in a loop until stopsound() is called. | |||
|- | |||
| playlooped2(str soundfile, float x, float y, float volume) | |||
| | | | ||
| Plays the specified sound file at location x, y with the specified volume in a loop until stopsound() is called. Volume should be between 0 and 1, if volume is set to 1 default volume is used (depending on how far away the player is). | |||
|- | |- | ||
| putleaps(int leapstype, float x, float y) | | putleaps(int leapstype, float x, float y) | ||
Line 791: | Line 860: | ||
| removetiledefs(str prefix) | | removetiledefs(str prefix) | ||
| | | | ||
| | | Remove tile definitions set by addtiledef and addtiledef2 for the specified prefix. | ||
|- | |- | ||
| replaceani(str defaultaniname, str newaniname) | | replaceani(str defaultaniname, str newaniname) | ||
| | | | ||
| | | replaces the player's default ani with the new ani. | ||
|- | |- | ||
| resetfocus() | | resetfocus() | ||
| | | | ||
| | | Sets the screen focus to the player (default focus behaviour). | ||
|- | |- | ||
| say(int signindex) | | say(int signindex) | ||
Line 811: | Line 880: | ||
| screenx(float x, float y) | | screenx(float x, float y) | ||
| integer | | integer | ||
| | | returns the x of the screen layer for a location on the tiles layer. | ||
|- | |- | ||
| screeny(float x, float y) | | screeny(float x, float y) | ||
| integer | | integer | ||
| | | returns the y of the screen layer for a location on the tiles layer. | ||
|- | |||
| worldx(float x, float y) | |||
| float | |||
| returns the x of the tiles layer for a location on the screen layer. | |||
|- | |||
| worldy(float x, float y) | |||
| float | |||
| returns the y of the tiles layer for a location on the screen layer. | |||
|- | |- | ||
| setani(str aniname, str aniparams) | | setani(str aniname, str aniparams) | ||
| | | | ||
| | | Sets the gani of a player. | ||
|- | |- | ||
| setbeltcolor(str color) | | setbeltcolor(str color) | ||
Line 829: | Line 906: | ||
| | | | ||
|- | |- | ||
| seteffect(float | | seteffect(float red, float green, float blue, float alpha) | ||
| | | | ||
| Displays a 'day-night' effect on top of the game. Default value is (0,0,0,0). Change alpha to make the screen darker. You can reach the same effect if you use a polygon (showpoly()) and set the mode to 3. To manipulate the color of a single npc, see setcoloreffect() for [[Creation/Dev/Script/Client/TServerNPC|TServerNPC]]. | |||
|- | |- | ||
| setfocus(float x, float y) | | setfocus(float x, float y) | ||
| | | | ||
| | | Sets the screen focus to the specified x and y. Use resetfocus() to switch back to the default focus behaviour. | ||
|- | |- | ||
| setgender(str gendername) | | setgender(str gendername) | ||
| | | | ||
| | | Sets the gender of a player. | ||
|- | |- | ||
| sethead(str imagefilename) | | sethead(str imagefilename) | ||
| | | | ||
| | | Sets the head of a player | ||
|- | |- | ||
| setletters(str imagefilename) | | setletters(str imagefilename) | ||
| | | | ||
| | | Sets the image to use for sign background and text. | ||
|- | |- | ||
| setmap(str, str, float, float) | | setmap(str textfile, str image, float defaultx, float defaultx) | ||
| | | | ||
| Sets a text map (you can see the tiles of other levels but not the npcs), use gmaps if possible instead of this; the parameter order has been changed between GS1 and GS2 to match the server option "bigmap=" | |||
|- | |- | ||
| setminimap(str, str, float, float) | | setminimap(str textfile, str image, float defaultx, float defaulty) | ||
| | | | ||
| Sets the mini map, use gmaps if possible instead of this; the parameter order has been changed between GS1 and GS2 to match the server option "minimap=" | |||
|- | |- | ||
| setmusicvolume(float, float) | | setmusicvolume(float, float) | ||
Line 911: | Line 988: | ||
</pre> | </pre> | ||
Flags can | Flags can consist of: | ||
{| border="1" cellpadding="2" width="100%" | {| border="1" cellpadding="2" width="100%" | ||
| '''Value''' | | '''Value''' | ||
Line 956: | Line 1,033: | ||
|} | |} | ||
|- | |- | ||
| spyfire(int | | spyfire(int length, int power) | ||
| | | | ||
| Shoots a line of fire in the direction of the player with the specified tile length, and fire power (1 - bomb, 2 - super bomb, 3 - jolt bomb). | |||
|- | |- | ||
| stopmidi() | | stopmidi() | ||
Line 966: | Line 1,043: | ||
| stopsound(str soundfilename) | | stopsound(str soundfilename) | ||
| | | | ||
| | | Stop playing a sound started by playlooped | ||
|- | |- | ||
| takeplayercarry() | | takeplayercarry() | ||
Line 978: | Line 1,055: | ||
| testplayer(float x, float y) | | testplayer(float x, float y) | ||
| integer | | integer | ||
| | | checks if there is a player on that position and returns the index of the player in players[], or -1 if there is none | ||
|- | |- | ||
| triggeraction(float x, float y, str | | triggeraction(float x, float y, str eventname, params...) | ||
| | | | ||
| Invokes an "onActionEventname" event on objects at the specified position, can be used to invoke events on objects from clientside to serverside and vice versa. | |||
Special eventnames are "serverEventname" which will invoke an event on the Control-NPC (onActionEventname), or "serverside" which will invoke an onActionServerSide event on the weapon script specified by the first following parameter (the fourth parameter). It is recommended to use triggerserver() for that though. | |||
Example: | |||
<pre> | |||
triggeraction(30, 30, "explode", 5); | |||
triggeraction(0, 0, "serverchat", player.chat); | |||
triggeraction(0, 0, "serverside", "PlasmaGun", "activate"); | |||
</pre> | |||
|- | |- | ||
| triggerserver(str | | triggerserver(str objecttype, str objectname, str params) | ||
| | | | ||
| Invokes an event on a serverside object, currently objecttype can only be "gui" or "weapon" (which is the same), objectname is the name of the weapon script, the invoked event will be "onActionServerSide". | |||
On Graal3D the event will be "onActionParam0" instead. | |||
For invoking events on the clientside use player.triggerclient(objecttype,objectname,params) instead. | |||
Example: | |||
<pre> | |||
triggerserver("weapon", "PlasmaGun", "activate"); | |||
</pre> | |||
|- | |- | ||
| updateboard(int x, int y, int width, int height) | | updateboard(int x, int y, int width, int height) | ||
Line 994: | Line 1,086: | ||
| updateratings(obj) | | updateratings(obj) | ||
| object | | object | ||
| Updates an array of {rating1,ratingdeviation1, rating2,ratingdeviation2, ...}, init them at 1500 and 350 | | Updates an array of {rating1,ratingdeviation1, rating2,ratingdeviation2, ...}, init them at 1500 and 350. | ||
Example: | |||
<pre> | |||
newratings = updateratings({winner.rating,winner.ratingd,loser.rating,loser.ratingd}); | |||
winner.rating = newratings[0]; | |||
winner.ratingd = newratings[1]; | |||
loser.rating = newratings[2]; | |||
loser.ratingd = newratings[3]; | |||
</pre> | |||
|- | |- | ||
| wraptext(int fontsize, str format, str text) | | wraptext(int fontsize, str format, str text) | ||
| | | array of strings | ||
| | | | ||
|- | |- | ||
| wraptext2(int, float, str, str) | | wraptext2(int pixelwidth, float zoom, str delimiters, str text) | ||
| | | array of strings | ||
| | | wraps the text so that it fits in the specified number of pixels and returns an array of text lines | ||
|} | |} | ||
===Graal 3D=== | ===Graal 3D=== | ||
* getboxcenter(str box) - returns string | |||
* getboxcenter(str) - returns string | * get3dobjectat(float x, float y, bool doboxcollision) - returns object - gets the 3d object at the specified screen position, third parameter says if it should do box collision | ||
* | * get3dobjectatmouse(bool doboxcollision) - returns object - gets the 3d object at the mouse, specify if it should do box collision (true) | ||
* get3dobjectbyray(str vector, str vector) - returns object | |||
* | |||
* | |||
* lightscene() - returns boolean | * lightscene() - returns boolean | ||
* setfogcolors(array) | |||
* setfogcolors( | |||
* setinteriorrendermode(int) | * setinteriorrendermode(int) | ||
* setskybandcolors(array) | |||
* setskybandcolors( | * setskybandsizes(array) | ||
* setskybandsizes( | * setsuncolors(array) | ||
* setsuncolors( | |||
* setterrainrendermode(int) | * setterrainrendermode(int) | ||
* synctimeofday(float hour, float minute) | |||
* updateterrain() | * updateterrain() | ||
* updatevisibledistance() | * updatevisibledistance() | ||
=== | ==Classes / Object Types==</noinclude> | ||
<includeonly>=Object Navigation=</includeonly> | |||
== | |||
* [[Creation/Dev/Script/Client/TGraalVar|TGraalVar]] | * [[Creation/Dev/Script/Client/TGraalVar|TGraalVar]] | ||
** [[Creation/Dev/Script/Client/ActionMap|ActionMap]] | ** [[Creation/Dev/Script/Client/ActionMap|ActionMap]] | ||
** [[Creation/Dev/Script/Client/DTSAniThread|DTSAniThread]] | |||
** [[Creation/Dev/Script/Client/GameMovementInterpolate|GameMovementInterpolate]] | |||
*** [[Creation/Dev/Script/Client/GameMovementRigid|GameMovementRigid]] | |||
** [[Creation/Dev/Script/Client/GameMovementList|GameMovementList]] | |||
** [[Creation/Dev/Script/Client/GameShape|GameShape]] | |||
*** [[Creation/Dev/Script/Client/GameShape3DS|GameShape3DS]] | |||
*** [[Creation/Dev/Script/Client/GameShapeDIF|GameShapeDIF]] | |||
*** [[Creation/Dev/Script/Client/GameShapeDTS|GameShapeDTS]] | |||
*** [[Creation/Dev/Script/Client/GameShapeFT|GameShapeFT]] | |||
** [[Creation/Dev/Script/Client/GuiControl|GuiControl]] | ** [[Creation/Dev/Script/Client/GuiControl|GuiControl]] | ||
*** [[Creation/Dev/Script/Client/GuiArrayCtrl|GuiArrayCtrl]] | *** [[Creation/Dev/Script/Client/GuiArrayCtrl|GuiArrayCtrl]] | ||
**** [[Creation/Dev/Script/Client/GuiTextListCtrl|GuiTextListCtrl]] | **** [[Creation/Dev/Script/Client/GuiTextListCtrl|GuiTextListCtrl]] | ||
**** [[Creation/Dev/Script/Client/GuiTreeViewCtrl|GuiTreeViewCtrl]] | **** [[Creation/Dev/Script/Client/GuiTreeViewCtrl|GuiTreeViewCtrl]] | ||
*** [[Creation/Dev/Script/Client/GuiBitmapButtonCtrl|GuiBitmapButtonCtrl]] | *** [[Creation/Dev/Script/Client/GuiBitmapButtonCtrl|GuiBitmapButtonCtrl]] | ||
*** [[Creation/Dev/Script/Client/GuiBitmapCtrl|GuiBitmapCtrl]] | *** [[Creation/Dev/Script/Client/GuiBitmapCtrl|GuiBitmapCtrl]] | ||
**** [[Creation/Dev/Script/Client/GuiMapOverviewCtrl|GuiMapOverviewCtrl]] | **** [[Creation/Dev/Script/Client/GuiMapOverviewCtrl|GuiMapOverviewCtrl]] | ||
*** [[Creation/Dev/Script/Client/GuiButtonBaseCtrl|GuiButtonBaseCtrl]] | *** [[Creation/Dev/Script/Client/GuiButtonBaseCtrl|GuiButtonBaseCtrl]] | ||
**** [[Creation/Dev/Script/Client/GuiButtonCtrl|GuiButtonCtrl]] | **** [[Creation/Dev/Script/Client/GuiButtonCtrl|GuiButtonCtrl]] | ||
**** [[Creation/Dev/Script/Client/GuiCheckBoxCtrl|GuiCheckBoxCtrl]] | **** [[Creation/Dev/Script/Client/GuiCheckBoxCtrl|GuiCheckBoxCtrl]] | ||
Line 1,088: | Line 1,158: | ||
**** [[Creation/Dev/Script/Client/GuiPMCtrl|GuiPMCtrl]] | **** [[Creation/Dev/Script/Client/GuiPMCtrl|GuiPMCtrl]] | ||
**** [[Creation/Dev/Script/Client/GuiPMHistoryCtrl|GuiPMHistoryCtrl]] | **** [[Creation/Dev/Script/Client/GuiPMHistoryCtrl|GuiPMHistoryCtrl]] | ||
*** [[Creation/Dev/Script/Client/GuiPlayerView|GuiPlayerView]] | *** [[Creation/Dev/Script/Client/GuiPlayerView|GuiPlayerView]] | ||
*** [[Creation/Dev/Script/Client/GuiProgressCtrl|GuiProgressCtrl]] | *** [[Creation/Dev/Script/Client/GuiProgressCtrl|GuiProgressCtrl]] | ||
Line 1,095: | Line 1,164: | ||
*** [[Creation/Dev/Script/Client/GuiShowImgCtrl|GuiShowImgCtrl]] | *** [[Creation/Dev/Script/Client/GuiShowImgCtrl|GuiShowImgCtrl]] | ||
*** [[Creation/Dev/Script/Client/GuiSliderCtrl|GuiSliderCtrl]] | *** [[Creation/Dev/Script/Client/GuiSliderCtrl|GuiSliderCtrl]] | ||
*** [[Creation/Dev/Script/Client/GuiStretchCtrl|GuiStretchCtrl]] | |||
*** [[Creation/Dev/Script/Client/GuiTabCtrl|GuiTabCtrl]] | *** [[Creation/Dev/Script/Client/GuiTabCtrl|GuiTabCtrl]] | ||
*** [[Creation/Dev/Script/Client/GuiTextCtrl|GuiTextCtrl]] | *** [[Creation/Dev/Script/Client/GuiTextCtrl|GuiTextCtrl]] | ||
**** [[Creation/Dev/Script/Client/GuiPopUpEditCtrl|GuiPopUpEditCtrl]] | **** [[Creation/Dev/Script/Client/GuiPopUpEditCtrl|GuiPopUpEditCtrl]] | ||
**** [[Creation/Dev/Script/Client/GuiPopUpMenuCtrl|GuiPopUpMenuCtrl]] | **** [[Creation/Dev/Script/Client/GuiPopUpMenuCtrl|GuiPopUpMenuCtrl]] | ||
Line 1,110: | Line 1,179: | ||
** [[Creation/Dev/Script/Client/GuiTextListEntry|GuiTextListEntry]] | ** [[Creation/Dev/Script/Client/GuiTextListEntry|GuiTextListEntry]] | ||
** [[Creation/Dev/Script/Client/GuiTreeViewNode|GuiTreeViewNode]] | ** [[Creation/Dev/Script/Client/GuiTreeViewNode|GuiTreeViewNode]] | ||
** [[Creation/Dev/Script/Client/ | ** [[Creation/Dev/Script/Client/MRandomGenerator|MRandomGenerator]] | ||
** [[Creation/Dev/Script/Client/ | *** [[Creation/Dev/Script/Client/MRandomLCG|MRandomLCG]] | ||
** [[Creation/Dev/Script/Client/ | *** [[Creation/Dev/Script/Client/MRandomR250|MRandomR250]] | ||
** [[Creation/Dev/Script/Client/SimObject|SimObject]] | ** [[Creation/Dev/Script/Client/SimObject|SimObject]] | ||
*** [[Creation/Dev/Script/Client/SceneObject|SceneObject]] | *** [[Creation/Dev/Script/Client/SceneObject|SceneObject]] | ||
**** [[Creation/Dev/Script/Client/fxSunLight|fxSunLight]] | **** [[Creation/Dev/Script/Client/fxSunLight|fxSunLight]] | ||
**** [[Creation/Dev/Script/Client/ | **** [[Creation/Dev/Script/Client/GameObject|GameObject]] | ||
***** [[Creation/Dev/Script/Client/Camera|Camera]] | |||
***** [[Creation/Dev/Script/Client/DynamicShapeReplicator|DynamicShapeReplicator]] | ***** [[Creation/Dev/Script/Client/DynamicShapeReplicator|DynamicShapeReplicator]] | ||
****** [[Creation/Dev/Script/Client/DynamicGrass|DynamicGrass]] | ****** [[Creation/Dev/Script/Client/DynamicGrass|DynamicGrass]] | ||
****** [[Creation/Dev/Script/Client/DynamicGrassReplicator|DynamicGrassReplicator]] | ****** [[Creation/Dev/Script/Client/DynamicGrassReplicator|DynamicGrassReplicator]] | ||
**** [[Creation/Dev/Script/Client/Sky|Sky]] | **** [[Creation/Dev/Script/Client/Sky|Sky]] | ||
**** [[Creation/Dev/Script/Client/TerrainBlock|TerrainBlock]] | **** [[Creation/Dev/Script/Client/TerrainBlock|TerrainBlock]] | ||
**** [[Creation/Dev/Script/Client/twSurfaceReference|twSurfaceReference]] | **** [[Creation/Dev/Script/Client/twSurfaceReference|twSurfaceReference]] | ||
**** [[Creation/Dev/Script/Client/WaterBlock|WaterBlock]] | **** [[Creation/Dev/Script/Client/WaterBlock|WaterBlock]] | ||
*** [[Creation/Dev/Script/Client/SimGroup|SimGroup]] | *** [[Creation/Dev/Script/Client/SimGroup|SimGroup]] | ||
**** [[Creation/Dev/Script/Client/GameConnection|GameConnection]] | **** [[Creation/Dev/Script/Client/GameConnection|GameConnection]] | ||
Line 1,223: | Line 1,227: | ||
** [[Creation/Dev/Script/Client/TGraalSpriteAttachment|TGraalSpriteAttachment]] | ** [[Creation/Dev/Script/Client/TGraalSpriteAttachment|TGraalSpriteAttachment]] | ||
** [[Creation/Dev/Script/Client/THTTPRequest|THTTPRequest]] | ** [[Creation/Dev/Script/Client/THTTPRequest|THTTPRequest]] | ||
** [[Creation/Dev/Script/Client/TMovementRigid|TMovementRigid]] | |||
** [[Creation/Dev/Script/Client/TParticle|TParticle]] | ** [[Creation/Dev/Script/Client/TParticle|TParticle]] | ||
** [[Creation/Dev/Script/Client/TParticleEmitter|TParticleEmitter]] | ** [[Creation/Dev/Script/Client/TParticleEmitter|TParticleEmitter]] | ||
Line 1,228: | Line 1,233: | ||
** [[Creation/Dev/Script/Client/TServerLevel|TServerLevel]] | ** [[Creation/Dev/Script/Client/TServerLevel|TServerLevel]] | ||
** [[Creation/Dev/Script/Client/TServerLevelLink|TServerLevelLink]] | ** [[Creation/Dev/Script/Client/TServerLevelLink|TServerLevelLink]] | ||
** [[Creation/Dev/Script/Client/TShapeMaterial|TShapeMaterial]] | |||
** [[Creation/Dev/Script/Client/TShowImg_Values|TShowImg_Values]] | ** [[Creation/Dev/Script/Client/TShowImg_Values|TShowImg_Values]] | ||
*** [[Creation/Dev/Script/Client/TShowImg_Flash|TShowImg_Flash]] | |||
*** [[Creation/Dev/Script/Client/TShowImg_Gani|TShowImg_Gani]] | *** [[Creation/Dev/Script/Client/TShowImg_Gani|TShowImg_Gani]] | ||
*** [[Creation/Dev/Script/Client/TShowImg_Image|TShowImg_Image]] | *** [[Creation/Dev/Script/Client/TShowImg_Image|TShowImg_Image]] | ||
*** [[Creation/Dev/Script/Client/TShowImg_Shape|TShowImg_Shape]] | *** [[Creation/Dev/Script/Client/TShowImg_Shape|TShowImg_Shape]] | ||
*** [[Creation/Dev/Script/Client/TShowImg_Poly|TShowImg_Poly]] | |||
*** [[Creation/Dev/Script/Client/TShowImg_Text|TShowImg_Text]] | *** [[Creation/Dev/Script/Client/TShowImg_Text|TShowImg_Text]] | ||
** [[Creation/Dev/Script/Client/TStaticVar|TStaticVar]] | ** [[Creation/Dev/Script/Client/TStaticVar|TStaticVar]] | ||
** [[Creation/Dev/Script/Client/TTilesLayer|TTilesLayer]] | |||
** [[Creation/Dev/Script/Client/TUpdatePackage|TUpdatePackage]] | ** [[Creation/Dev/Script/Client/TUpdatePackage|TUpdatePackage]] |
Latest revision as of 23:44, 15 February 2010
Client Supported Script Features
Settings
Name | Type | Description |
$camera::movementspeed | float | |
$pref::audio::choosenvoicecodec | integer | |
$pref::audio::microactivatebyvolume | boolean | |
$pref::audio::microactivationlevel | integer | |
$pref::audio::microinputdevice | integer | |
$pref::audio::microon | boolean | |
$pref::audio::microvolumefactor | integer | |
$pref::audio::midivolume | integer | |
$pref::audio::mp3volume | integer | |
$pref::audio::radiovolume | integer | |
$pref::audio::reversestereo | boolean | |
$pref::audio::sfxvolume | integer | |
$pref::audio::voicevolume | integer | |
$pref::graal::allowglobalpms | boolean | |
$pref::graal::automapping | boolean | |
$pref::graal::defaultfontsize | integer | Change showtext zoom: $pref::graal::defaultfontsize/24 |
$pref::graal::dontconnectlevels | boolean | |
$pref::graal::dontloadlistheads | boolean | |
$pref::graal::dontsavepasswords | boolean | |
$pref::graal::dontsavepms | boolean | |
$pref::graal::fixedport | boolean | |
$pref::graal::fixedudpport | integer | |
$pref::graal::language | string | |
$pref::graal::limitnicknames | boolean | |
$pref::graal::loadbuddylistfromserver | boolean | |
$pref::graal::nicknamelimit | integer | |
$pref::graal::nomassmessages | boolean | |
$pref::graal::notoalls | boolean | |
$pref::graal::noudp | boolean | |
$pref::graal::showyourselfonbuddylists | boolean | |
$pref::input::mousesensitivity | float | |
$pref::interior::lockarrays | boolean | |
$pref::terrain::enabledetails | boolean | |
$pref::video::detailfactor | float | |
$pref::video::fogdistance | float | |
$pref::video::fullscreenmode | string | |
$pref::video::screenshotformat | string | |
$pref::video::visibledistance | float | |
$pref::video::windowmode | string | |
$scenelighting::lightingprogress | float (read only) |
Variables
Name | Type | Description |
allfeatures | integer (read only) | for use with enablefeatures(), it's the default unless it is changed. |
allplayerscount | integer (read only) | The size of the allplayers array. |
allrenderobjecttypes | integer (read only) | |
allstats | integer (read only) | A bitflag of all stats currently enabled |
canspin | boolean (read only) | True if the player has spin attack |
carriesblackstone | boolean (read only) | True if the player is carrying a black stone |
carriesbush | boolean (read only) | True if the player is carrying a bush |
carriesnpc | boolean (read only) | True if the player is carrying an NPC. |
carriessign | boolean (read only) | True if a player is carrying a sign. |
carriesstone | boolean (read only) | True if a player is carrying a stone. |
carriesvase | boolean (read only) | True if a player is carrying a vase. |
downloadfile | string (read only) | Name of the file currently being downloaded |
downloadpos | integer (read only) | Amount of download file already downloaded |
downloadsize | integer (read only) | Size of the file being downloaded |
editingmission | boolean | |
emoticonchar | string (read only) | The letter of the emoticon being displayed by the player |
focusx | float (read only) | X coordinate of the center of playing screen in the level, offset -1.5 |
focusy | float (read only) | Y coordinate of the center of playing screen in the level, offset -2 |
graalversion | float (read only) | Graal version |
gravity | float | Downward acceleration for projectiles ejected with the shoot() function. |
iscarrying | boolean (read only) | True if the player is carrying anything |
isfocused | boolean (read only) | |
isgraal3d | boolean (read only) | True if you are running graal 3D |
isleader | boolean (read only) | signifies that the player is the first person in the level |
isonmap | boolean (read only) | signifies that the player is on a map |
jpegquality | integer | |
lastdownloadfile | string (read only) | |
leftmousebutton | boolean (read only) | True if the left mouse button is down |
levelorgx | float (read only) | The x-value of the levels' origin (may deviate with attachplayertoobj) |
levelorgy | float (read only) | The y-value of the levels' origin (may deviate with attachplayertoobj) |
lighteffectsenabled | boolean (read only) | signifies that the player has enabled light effects |
weathereffectsenabled | boolean (read only) | signifies that the player has enabled weather effects |
particleeffectsenabled | boolean (read only) | signifies that the player has enabled particle effects |
middlemousebutton | boolean (read only) | True if the middle mouse button is down |
mousebuttons | integer (read only) | Counts the amount of mousebuttons pressed |
mousescreenx | integer | X coordinate of the mouse on the GUI layer |
mousescreeny | integer | Y coordinate of the mouse on the GUI layer |
mousewheeldelta | integer (read only) | Amount that the mouse scroll wheel was scrolled [(-) is up, (+) is down] |
mousex | float | X coordinate of the mouse on the tile layer |
mousey | float | Y coordinate of the mouse on the tile layer |
musiclen | integer (read only) | The duration of the playing sound file |
musicpos | integer (read only) | The position in the file at which the sound file is |
rightmousebutton | boolean (read only) | True if the right mouse button is down |
screenheight | integer (read only) | Height of the Graal window |
screenwidth | integer (read only) | Width of the Graal window |
scriptedcontrols | boolean (read only) | |
scriptedplayerlist | boolean (read only) | |
selectedlistplayers | object | an array of players highlighted on the playerlist |
selectedsword | integer | |
selectedweapon | integer | Index of player.weapons that references the player's current weapon |
servername | string (read only) | Name of the current server |
serverstartconnect | string | |
serverstartparams | string | |
shotbybaddy | boolean (read only) | True if the player was shot by a baddy |
shotbyplayer | boolean (read only) | True if the player was shot by another player |
showterraingrid | boolean | |
timevar | integer (read only) | A timer which is increased each 5 seconds and is snychronized between server and clients; The timer started exactly on 2001-02-01 at 18:33:34 Paris time (opening of Graal2001); on serverside the unixtime (timevar2) is around 981048814 + timevar*5 |
timevar2 | float (read only) | Unix-time with a very high precision, not synchronized between server and client |
timevar3 | float (read only) | synchronized time which works on both server- and client-side, precision is milliseconds, only available for Graal3D right now |
wasshooted | boolean (read only) | |
waterheight | float | The height of water at the player's (x,y) on a terrain |
weapons | object (read only) | An array of weapon objects |
weaponsenabled | boolean | Are weapons enabled? (Player can trigger onWeaponFired...) |
worldclockstopped | boolean | |
worldhour | integer | |
worldminute | float | |
worldminutesofday | float | |
worldrealsecondsperday | float |
Variable Prefixes
Prefix | Description |
object.var | accesses the variables of the object. The object can be retrieved by using the case-sensitive name of the object or a variable pointing to the object. |
this.var | variables that belong to the current script object, on the server-side they are saved to file when the object is a database npc |
thiso.var | refer to the this. variables of the executing npc ('o' stands for original) when you use the with () command: with (findnpc("npc2")) thiso.temp = this.temp; will copy 'this.temp' from npc2 to the current npc |
temp.var | variables that belong to the current function. They can be used anywhere in the function even when referencing another object. Function parameters are declared as temp variables if they do not have a prefix. Temp variables will be destroyed at the end of the function. |
player.var | variables of the current player object, when the event was invoked by a player (e.g. playertouchsme), or you do with (findplayer(accountname)) |
playero.var | variables of the original player object, in generally the player who has invoked the event (e.g. playertouchsme) |
client.var | short for player.client.var, variables that can be changed on server-side and client-side |
clientr.var | short for player.clientr.var, variables that can only be changed on server-side but can be read on client-side |
server.var | variables that only exists on server-side and can be accessed by all npcs |
serverr.var | variables that can only be changed on server-side and is server wide, but can also be read by all clients, so it can be used for storing the state of global activities that need client-side actions like displaying weather; like server. vars they can also be changed with remotecontrol.exe by administrators that have the right to change server. variables |
level.var | variables of the current level, which is the level the executing npc stands in (on server-side) or the player is in (on client-side) |
Functions
Note: Currently this doesn't list the functions which are optimized at compile time, see Starting Guide: Standard functions for those.
Common
- aindexof(float, array) - returns integer, better use array.index(float) instead
- echo(str text) - prints text in the F2 window (clientside) or RC chat (serverside)
- getbasepackage() - returns TUpdatePackage object
- getdownloadedupdatepackagesize() - returns integer
- getdownloadingpackage() - returns TUpdatePackage object
- getdownloadingpackagescount() - returns integer
- gethttprequest(str, int, str) - returns THTTPRequest object
- getkeycode(str keyname) - returns integer
- getpackagesdownloadcomplete() - returns boolean
- getpackagesdownloaded() - returns boolean
- getplatform() - returns string
- getservername() - returns string
- gettotalupdatepackagesize() - returns integer
- getupdatepackage(str) - returns object
- isadminguild(str guildname) - returns boolean
- isobject(str objectname) - returns boolean, checks if an object is existing
- keydown(int keynumber) - returns if the specified key is pressed (0..10: up, left, down, right, S, A, D, M, tab, Q, P)
- keydown2(int keycode, bool ignorecase) - returns boolean
- keyname(int keycode) - returns string
- opengraalurl(str url) - opens a website of www.graalonline.com and automatically lets the player login to it (e.g. for the upgrade page or screenshot section)
- openurl(str url)
- openurl2(str url, int width, int height) - deprecated, width and height are ignored
- requesthttp(str, int, str) - returns THTTPRequest object
- requesttext(str type, str option)
- requesturl(str url) - returns THTTPRequest object
- savelog(str text)
- savelog2(str filename, str text) - adds a log entry to "logs/filename"
- sendrpgmessage(str text) - adds text to the F2 window
- sendtext(str type, str option, params...)
- sendtorc(str text) - serverside only, displays text on the RC chat
- serverwarp(str servername) - the name can either be the internal name (graal2002) or part of the server name on the serverlist
Files
- extractfilebase(str filepath) - returns string, '/an/example/path/and/file' would return '/an/example/path/and/'
- extractfileext(str filepath) - returns string, 'filename.ext' would return '.ext'
- extractfilename(str filepath) - returns string, '/an/example/path/and/file' would return 'file'
- extractfilepath(str filepath) - returns string, '/an/example/path/and/file' would return '/an/example/path/and/'
- fileexists(str filepath) - returns boolean, checks if a file exists
- filesize(str filepath) - returns integer, returns the size of a file
- fileupdate(str filepath) - returns boolean, checks if a file is existing and requests an update from the server if it has not been checked yet
- findfiles(str filenamepattern, flags) - returns array of strings, flags can be either 1 for recursive search or 0 for non-recursive
- freefileresources(str)
- getextension(str filepath) - returns string, 'filename.ext' would return '.ext'
- requestfiledeletion(str filepath), requests a file to be deleted on the server
- requestfilerename(str filepath, str newfilepath), requests a file to be renamed on the server
- requestfilesmove(str filepath, str newfilepath), requests a file to be moved on the server
- selectfilefordownload(str filter)
- selectfileforupload()
Watch the TGraalVar object for loading and saving of files (loadlines etc.)
See more information about input/output at Output methods
Math
- degtorad(float value) - returns float
- radtodeg(float value) - returns float
Matrices
GraalScript matricies are arrays of seven elements: three describing translation (position), three describing the rotation axis, and one describing the angle.
- matrixcreate(str vector, str rotation) - returns matrix string
- matrixcreatefromeuler(str eulerrotation) - returns matrix string
- matrixmulpoint(str, str) - returns string
- matrixmultiply(str matrix, str matrix) - returns matrix string
- matrixmulvector(str matrix, str vector) - returns vector string
Vectors
Each vector is basicly an array of format {x,y,z} but is passed as string for simplicity. Click on the function names to see more information about the vector operations.
- vectoradd(vector, vector) - returns vector
- vectorcross(vector, vector) - returns vector
- vectordist(vector, vector) - returns float
- vectordot(vector, vector) - returns float
- vectorlen(vector) - returns float
- vectornormalize(vector) - returns vector, scales the vector to length 1
- vectororthobasis(vector) - returns vector
- vectorscale(vector, float) - returns vector
- vectorsub(vector, vector) - returns vector
Strings
- base64decode(str text) - returns decoded string
- base64encode(str text) - returns encoded string
- checksum(str text) - returns checksum (integer)
- contains(str haystack, str needle) - returns boolean, you should probably do haystack.contains(needle) instead
- getascii(str character) - returns ASCII value integer
- getstringkeys(str leading) - searches for variables which start with the specified string and returns an array of their endings
- lowercase(str text) - returns lowercased string, it is recommended to use string.lower() though
- md5(str text) - returns md5 hash string
- randomstring(array of strings) - returns string
- strcmp(str text1, str text2) - returns integer (0 if the strings are equal, a negative value if text1 is alphabetically before text2, otherwise a postive value)
- strequals(str text1, str text2) - returns boolean, you probably should do text1.equals(text2) or simply text1==text2 instead
- uppercase(str text) - returns uppercased string, it is recommended to use string.upper() though
GUI
- addcontrol(obj) - adds a GUI control or a 3D-object to the scene
- cursoroff()
- cursoron()
- iscursoron() - returns boolean
- popdialog() - removes the top dialog control
- pushdialog(obj) - displays a control on top of all other controls, this control gains all focus until it is removed again
- setcontentcontrol(obj) - replaces the current content control (usually named GUIContainer) with another one
Graal 2D
Name | Type | Description | ||||||||||||||||||||||||||||||||||||
addtiledef(str tilesetimage, str prefix, int tilesettype) | Sets the tileset image for levels beginning with the specified prefix.
Tileset type 0 is for pics1.png style tilesets. Tileset type 1 is for the new tileset format (Era's tiles for example) | |||||||||||||||||||||||||||||||||||||
addtiledef2(str tilesetimage, str prefix, int x, int y) | Replaces a section of the tileset (x, y) image for levels beginning with the specified prefix. | |||||||||||||||||||||||||||||||||||||
attachplayertoobj(int objtype, int id) | Attaches a player to the specified object. Using attachpayertoobj(0, id); the player will be attached to the current NPC. | |||||||||||||||||||||||||||||||||||||
callnpc(int npcindex, params...) | Invokes an event on an npc, better use npcs[npcindex].trigger(event, params) instead; you can only trigger objects this way that are on your side of clientside/serverside | |||||||||||||||||||||||||||||||||||||
callweapon(int weaponindex, params...) | Invokes a trigger on a weapon, better use weapons[weaponindex].trigger(event, params) instead | |||||||||||||||||||||||||||||||||||||
detachplayer() | Puts the player back on the level (after using attachplayertoobj). | |||||||||||||||||||||||||||||||||||||
disabledefmovement() | Disables the default movement. | |||||||||||||||||||||||||||||||||||||
disablemap() | Disables the default map | |||||||||||||||||||||||||||||||||||||
disablepause() | Disables pausing. | |||||||||||||||||||||||||||||||||||||
disableselectweapons() | Disables the default Q menu. | |||||||||||||||||||||||||||||||||||||
disableweapons() | Disables weapons. | |||||||||||||||||||||||||||||||||||||
enabledefmovement() | Enables default movement | |||||||||||||||||||||||||||||||||||||
enablefeatures(int flags) | Enable/disable client features
Flags can consist of:
| |||||||||||||||||||||||||||||||||||||
enablemap() | Enables default map. | |||||||||||||||||||||||||||||||||||||
enablepause() | Enables pausing. | |||||||||||||||||||||||||||||||||||||
enableselectweapons() | Enables default Q menu. | |||||||||||||||||||||||||||||||||||||
enableweapons() | Enables weapons. | |||||||||||||||||||||||||||||||||||||
explodebomb(int bombindex) | Explodes a bomb with the specified index. | |||||||||||||||||||||||||||||||||||||
findani(str) | TGraalAni object | |||||||||||||||||||||||||||||||||||||
findlevel(str levelfilename) | TServerLevel object | |||||||||||||||||||||||||||||||||||||
findplayer(str accountname) | TServerPlayer object | Returns player object of Account specified. Player must be online. | ||||||||||||||||||||||||||||||||||||
findplayerbyid(int playerid) | TServerPlayer object | Returns player object of id specified. If id isn't available, returns false. | ||||||||||||||||||||||||||||||||||||
findweapon(str weaponname) | TServerWeapon object | Returns weapon object of the specified name if the player has that weapon. | ||||||||||||||||||||||||||||||||||||
findweaponnpc(str weaponname) | TServerWeapon object | Returns weapon object if it exits on the server, only works on server-side. You can normally also access weapons by just typing their name though (e.g. MyWeapon.functionname() instead of findweaponnpc("MyWeapon").functionname()) | ||||||||||||||||||||||||||||||||||||
freezeplayer(float seconds) | Freezes player for a specific amount of time. | |||||||||||||||||||||||||||||||||||||
getimgheight(str imagefilename) | integer | Returns the height (in pixels) of an image. | ||||||||||||||||||||||||||||||||||||
getimgwidth(str imagefilename) | integer | Returns the width (in pixels) of an image. | ||||||||||||||||||||||||||||||||||||
getmapx(str levelname) | integer | X coordinate of the level on a map (top-left level is 0) | ||||||||||||||||||||||||||||||||||||
getmapy(str levelname) | integer | Y coordinate of the level on a map (top-left level is 0) | ||||||||||||||||||||||||||||||||||||
gettextheight(float, str, str) | integer | Returns the height of the font. Format:
gettextheight(zoom, font, style) | ||||||||||||||||||||||||||||||||||||
gettextwidth(float, str, str, str) | integer | Returns the width of a specified text in a certain font. Format:
gettextwidth(zoom, font, style, text) | ||||||||||||||||||||||||||||||||||||
getz(float x, float y) | float | Returns the z value of a terrain at (x,y). | ||||||||||||||||||||||||||||||||||||
graalcontrolhasfocus(bool) | boolean | parameter says if it should also check if the chat bar has the focus | ||||||||||||||||||||||||||||||||||||
hideplayer(float seconds) | Hides the player for seconds seconds. | |||||||||||||||||||||||||||||||||||||
hidesword(float seconds) | Hides the player's sword for seconds seconds. | |||||||||||||||||||||||||||||||||||||
hitnpc(int, float, float, float) | ||||||||||||||||||||||||||||||||||||||
hitobjects(float, float, float) | ||||||||||||||||||||||||||||||||||||||
hitplayer(int, float, float, float) | ||||||||||||||||||||||||||||||||||||||
lay2(str extraname, float x, float y) | ||||||||||||||||||||||||||||||||||||||
loadmap(str mapfilename) | Preloads a gmap on clientside, speeds up entering of new maps but is not required. | |||||||||||||||||||||||||||||||||||||
noplayerkilling() | Disables killing of other players. This also lets players walk through other players (players are not blocking anymore). | |||||||||||||||||||||||||||||||||||||
onwall(float x, float y) | boolean | Returns true if the specified x and y is a blocking tile. | ||||||||||||||||||||||||||||||||||||
onwall2(float x, float y, float width, float height) | boolean | Returns true if a blocking tile exists in the specified area. | ||||||||||||||||||||||||||||||||||||
onwater(float x, float y) | boolean | Returns true if the specified x and y is water. | ||||||||||||||||||||||||||||||||||||
onwater2(float x, float y, float width, float height) | boolean | Returns true if water exists in the specified area. | ||||||||||||||||||||||||||||||||||||
play(str soundfilename) | Plays the specified sound file. | |||||||||||||||||||||||||||||||||||||
play2(str soundfilename, float x, float y, float volume) | Plays the specified sound file at location x, y with the specified volume. Volume should be between 0 and 1, if volume is set to 1 default volume is used (depending on how far away the player is). | |||||||||||||||||||||||||||||||||||||
playlooped(str soundfilename) | Plays the specified sound file in a loop until stopsound() is called. | |||||||||||||||||||||||||||||||||||||
playlooped2(str soundfile, float x, float y, float volume) | Plays the specified sound file at location x, y with the specified volume in a loop until stopsound() is called. Volume should be between 0 and 1, if volume is set to 1 default volume is used (depending on how far away the player is). | |||||||||||||||||||||||||||||||||||||
putleaps(int leapstype, float x, float y) | ||||||||||||||||||||||||||||||||||||||
removetiledefs(str prefix) | Remove tile definitions set by addtiledef and addtiledef2 for the specified prefix. | |||||||||||||||||||||||||||||||||||||
replaceani(str defaultaniname, str newaniname) | replaces the player's default ani with the new ani. | |||||||||||||||||||||||||||||||||||||
resetfocus() | Sets the screen focus to the player (default focus behaviour). | |||||||||||||||||||||||||||||||||||||
say(int signindex) | ||||||||||||||||||||||||||||||||||||||
say2(str text) | ||||||||||||||||||||||||||||||||||||||
screenx(float x, float y) | integer | returns the x of the screen layer for a location on the tiles layer. | ||||||||||||||||||||||||||||||||||||
screeny(float x, float y) | integer | returns the y of the screen layer for a location on the tiles layer. | ||||||||||||||||||||||||||||||||||||
worldx(float x, float y) | float | returns the x of the tiles layer for a location on the screen layer. | ||||||||||||||||||||||||||||||||||||
worldy(float x, float y) | float | returns the y of the tiles layer for a location on the screen layer. | ||||||||||||||||||||||||||||||||||||
setani(str aniname, str aniparams) | Sets the gani of a player. | |||||||||||||||||||||||||||||||||||||
setbeltcolor(str color) | ||||||||||||||||||||||||||||||||||||||
setcoatcolor(str color) | ||||||||||||||||||||||||||||||||||||||
seteffect(float red, float green, float blue, float alpha) | Displays a 'day-night' effect on top of the game. Default value is (0,0,0,0). Change alpha to make the screen darker. You can reach the same effect if you use a polygon (showpoly()) and set the mode to 3. To manipulate the color of a single npc, see setcoloreffect() for TServerNPC. | |||||||||||||||||||||||||||||||||||||
setfocus(float x, float y) | Sets the screen focus to the specified x and y. Use resetfocus() to switch back to the default focus behaviour. | |||||||||||||||||||||||||||||||||||||
setgender(str gendername) | Sets the gender of a player. | |||||||||||||||||||||||||||||||||||||
sethead(str imagefilename) | Sets the head of a player | |||||||||||||||||||||||||||||||||||||
setletters(str imagefilename) | Sets the image to use for sign background and text. | |||||||||||||||||||||||||||||||||||||
setmap(str textfile, str image, float defaultx, float defaultx) | Sets a text map (you can see the tiles of other levels but not the npcs), use gmaps if possible instead of this; the parameter order has been changed between GS1 and GS2 to match the server option "bigmap=" | |||||||||||||||||||||||||||||||||||||
setminimap(str textfile, str image, float defaultx, float defaulty) | Sets the mini map, use gmaps if possible instead of this; the parameter order has been changed between GS1 and GS2 to match the server option "minimap=" | |||||||||||||||||||||||||||||||||||||
setmusicvolume(float, float) | ||||||||||||||||||||||||||||||||||||||
setplayerdir(str) | ||||||||||||||||||||||||||||||||||||||
setshield(str imagefilename, int shieldpower) | ||||||||||||||||||||||||||||||||||||||
setshoecolor(str color) | ||||||||||||||||||||||||||||||||||||||
setshootparams(str params) | ||||||||||||||||||||||||||||||||||||||
setskincolor(str color) | ||||||||||||||||||||||||||||||||||||||
setsleevecolor(str color) | ||||||||||||||||||||||||||||||||||||||
setsword(str imagefilename, int swordpower) | ||||||||||||||||||||||||||||||||||||||
showstats(int statsflag) | With this you can show/hide parts of the status bar / game
Examples: // Shows all showstats(allstats); // Enable everything except minimap showstats(allstats & ~0x100); // Enable everything except AP and MP bars showstats(allstats & ~(0x40 | 0x80)); // Enable only players and right-click profile showstats(0x400 | 0x800); // Hides all showstats(0); Flags can consist of:
| |||||||||||||||||||||||||||||||||||||
spyfire(int length, int power) | Shoots a line of fire in the direction of the player with the specified tile length, and fire power (1 - bomb, 2 - super bomb, 3 - jolt bomb). | |||||||||||||||||||||||||||||||||||||
stopmidi() | ||||||||||||||||||||||||||||||||||||||
stopsound(str soundfilename) | Stop playing a sound started by playlooped | |||||||||||||||||||||||||||||||||||||
takeplayercarry() | ||||||||||||||||||||||||||||||||||||||
takeplayerhorse() | ||||||||||||||||||||||||||||||||||||||
testplayer(float x, float y) | integer | checks if there is a player on that position and returns the index of the player in players[], or -1 if there is none | ||||||||||||||||||||||||||||||||||||
triggeraction(float x, float y, str eventname, params...) | Invokes an "onActionEventname" event on objects at the specified position, can be used to invoke events on objects from clientside to serverside and vice versa.
Special eventnames are "serverEventname" which will invoke an event on the Control-NPC (onActionEventname), or "serverside" which will invoke an onActionServerSide event on the weapon script specified by the first following parameter (the fourth parameter). It is recommended to use triggerserver() for that though. Example: triggeraction(30, 30, "explode", 5); triggeraction(0, 0, "serverchat", player.chat); triggeraction(0, 0, "serverside", "PlasmaGun", "activate"); | |||||||||||||||||||||||||||||||||||||
triggerserver(str objecttype, str objectname, str params) | Invokes an event on a serverside object, currently objecttype can only be "gui" or "weapon" (which is the same), objectname is the name of the weapon script, the invoked event will be "onActionServerSide".
On Graal3D the event will be "onActionParam0" instead. For invoking events on the clientside use player.triggerclient(objecttype,objectname,params) instead. Example: triggerserver("weapon", "PlasmaGun", "activate"); | |||||||||||||||||||||||||||||||||||||
updateboard(int x, int y, int width, int height) | ||||||||||||||||||||||||||||||||||||||
updateratings(obj) | object | Updates an array of {rating1,ratingdeviation1, rating2,ratingdeviation2, ...}, init them at 1500 and 350.
Example: newratings = updateratings({winner.rating,winner.ratingd,loser.rating,loser.ratingd}); winner.rating = newratings[0]; winner.ratingd = newratings[1]; loser.rating = newratings[2]; loser.ratingd = newratings[3]; | ||||||||||||||||||||||||||||||||||||
wraptext(int fontsize, str format, str text) | array of strings | |||||||||||||||||||||||||||||||||||||
wraptext2(int pixelwidth, float zoom, str delimiters, str text) | array of strings | wraps the text so that it fits in the specified number of pixels and returns an array of text lines |
Graal 3D
- getboxcenter(str box) - returns string
- get3dobjectat(float x, float y, bool doboxcollision) - returns object - gets the 3d object at the specified screen position, third parameter says if it should do box collision
- get3dobjectatmouse(bool doboxcollision) - returns object - gets the 3d object at the mouse, specify if it should do box collision (true)
- get3dobjectbyray(str vector, str vector) - returns object
- lightscene() - returns boolean
- setfogcolors(array)
- setinteriorrendermode(int)
- setskybandcolors(array)
- setskybandsizes(array)
- setsuncolors(array)
- setterrainrendermode(int)
- synctimeofday(float hour, float minute)
- updateterrain()
- updatevisibledistance()
Classes / Object Types
- TGraalVar
- ActionMap
- DTSAniThread
- GameMovementInterpolate
- GameMovementList
- GameShape
- GuiControl
- GuiArrayCtrl
- GuiBitmapButtonCtrl
- GuiBitmapCtrl
- GuiButtonBaseCtrl
- GuiChunkedBitmapCtrl
- GuiContextMenuCtrl
- GuiDrawingPanel
- GuiFlash
- GuiFrameSetCtrl
- GuiGraal3DCtrl
- GuiGraalCtrl
- GuiMenuCtrl
- GuiMLTextCtrl
- GuiPlayerView
- GuiProgressCtrl
- GuiScrollCtrl
- GuiShapeNameHud
- GuiShowImgCtrl
- GuiSliderCtrl
- GuiStretchCtrl
- GuiTabCtrl
- GuiTextCtrl
- TerrainEditor
- WorldEditor
- GuiControlProfile
- GuiCursor
- GuiTabCtrlEntry
- GuiTextListEntry
- GuiTreeViewNode
- MRandomGenerator
- SimObject
- TDrawableObject
- TDrawingPanel
- Terraformer
- TFrameDetail
- TGaniParam
- TGraalAni
- TGraalAniPart
- TGraalAniSound
- TGraalAniSprite
- TGraalAniStep
- TGraalSpriteAttachment
- THTTPRequest
- TMovementRigid
- TParticle
- TParticleEmitter
- TParticleModifier
- TServerLevel
- TServerLevelLink
- TShapeMaterial
- TShowImg_Values
- TStaticVar
- TTilesLayer
- TUpdatePackage