Creation/Dev/Script/Client
From Graal Bible
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) | "allfeature" is defualt unlessed it is changed. |
allplayerscount | integer (read only) | The size of the allplayers array. |
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) | |
downloadsize | integer (read only) | Size of the file being downloaded |
editingmission | boolean | |
emoticonchar | string (read only) | |
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 | |
iscarrying | boolean (read only) | True if the player is carrying anything |
isfocused | boolean (read only) | |
isgraal3d | boolean (read only) | |
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 |
lastdownloadfile | string (read only) | |
leftmousebutton | boolean (read only) | |
levelorgx | float (read only) | |
levelorgy | float (read only) | |
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) | |
mousebuttons | integer (read only) | |
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) | |
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) | |
musicpos | integer (read only) | |
rightmousebutton | boolean (read only) | |
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 | |
servername | string (read only) | Name of the current server |
serverstartconnect | string | |
serverstartparams | string | |
shotbybaddy | boolean (read only) | |
shotbyplayer | boolean (read only) | |
showterraingrid | boolean | |
timevar | integer (read only) | |
timevar2 | float (read only) | |
wasshooted | boolean (read only) | |
waterheight | float | |
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 | Description | |
client.flag | flags that can be changed on server-side and client-side (like a normal flag in the classic engine) | |
clientr.flag | flags that can only be changed on server-side but can be read on client-side | |
server.flag | flags that only exists on server-side and can be accessed by all npcs | |
serverr.flag | flags 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 to storing the state of global activities that need client-side actions like displaying weather; like server. flags they can also be changed with remotecontrol.exe by administrators that have the right to change server. flags | |
this.flag | flags that only exist on server-side and belong to the npc, and are stored when the npc is a database npc | |
thiso.flag | refer to the this. flags of the executing npc when you use the with () command: with (getnpc(npc2)) setstring thiso.temp,this.temp; will copy 'this.temp' from npc2 to the current npc | |
local.flag | flags that are kept on the current client and not sent to the server, so reducing lag | |
flagwithoutleading | flag that is saved in the players account; these flags can only be accessed on server-side; on client-side you can also use flags wihtout a leading but they are not saved and not sent to the npcserver |
Functions
Note: Currently this doesn't list the functions which are optimized at compile time, see Starting Guide: Standard functions for those.
- aindexof(float, obj) - returns integer
- echo(str text)
- getbasepackage() - returns object
- getdisplaydevicelist() - returns string
- getdownloadedupdatepackagesize() - returns integer
- getdownloadingpackage() - returns 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
- getresolutionlist(str) - returns string
- getservername() - returns string
- gettotalupdatepackagesize() - returns integer
- getupdatepackage(str) - returns object
- isadminguild(str guildname) - returns boolean
- isdevicefullscreenonly(str devicename) - returns boolean
- isobject(str objectname) - returns boolean
- keydown(int keycode) - returns boolean
- keydown2(int keycode, bool ignorecase) - returns boolean
- keyname(int keycode) - returns string
- opengraalurl(str url)
- openurl(str url)
- openurl2(str url, int width, int height)
- requesthttp(str, int, str) - returns THTTPRequest object
- requestmysql(str, str, str, str, str) - returns object
- requesttext(str, str)
- requesturl(str url) - returns THTTPRequest object
- savelog(str text)
- sendrpgmessage(str text)
- sendtext(str, str, params...)
- sendtorc(str text)
- serverwarp(str serverunixname)
- synctimeofday(float, float)
Common
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
- findfiles(str, int) - returns object
- findfirstfile(str) - returns string
- findnextfile(str) - returns string
- getextension(str filepath) - returns string, 'filename.ext' would return '.ext'
- reloadfile(str filepath)
- 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.)
Math
- degtorad(float value) - returns float
- radtodeg(float value) - returns float
Matrices
- matrixcreate(str, str) - returns string
- matrixcreatefromeuler(str) - returns string
- matrixmulpoint(str, str) - returns string
- matrixmultiply(str, str) - returns string
- matrixmulvector(str, str) - returns string
Vectors
- vectoradd(str, str) - returns string
- vectorcross(str, str) - returns string
- vectordist(str, str) - returns float
- vectordot(str, str) - returns float
- vectorlen(str) - returns float
- vectornormalize(str) - returns string
- vectororthobasis(str) - returns string
- vectorscale(str, float) - returns string
- vectorsub(str, str) - returns string
Strings
- base64decode(str text) - returns decoded string
- base64encode(str text) - returns encoded string
- checksum(str text) - returns checksum float
- contains(str haystack, str needle) - returns boolean, you should probably do haystack.contains(needle) instead
- getascii(str character) - returns ascii value integer
- getstringkeys(str) - returns object
- lowercase(str text) - returns lowercased string
- md5(str tet) - returns md5 hash string
- randomstring(str) - returns string
- strcmp(str text1, str text2) - returns integer
- strequals(str text1, str text2) - returns boolean, you probably should do text1.equals(text2) instead
- uppercase(str text) - returns uppercased stringg
GUI
- addcontrol(obj)
- cursoroff()
- cursoron()
- iscursoron() - returns boolean
- popdialog()
- pushdialog(obj)
- setcontentcontrol(obj)
- setcursor2(str imagefilename)
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...) | ||||||||||||||||||||||||||||||||||||||
callweapon(int weaponindex, params...) | ||||||||||||||||||||||||||||||||||||||
commandtoserver(str text) | ||||||||||||||||||||||||||||||||||||||
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) | object | |||||||||||||||||||||||||||||||||||||
findlevel(str levelfilename) | object | |||||||||||||||||||||||||||||||||||||
findplayer(str accountname) | object | |||||||||||||||||||||||||||||||||||||
findplayerbyid(int playerid) | object | |||||||||||||||||||||||||||||||||||||
findweapon(str weaponname) | object | |||||||||||||||||||||||||||||||||||||
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 | |||||||||||||||||||||||||||||||||||||
gettextwidth(float, str, str, str) | integer | |||||||||||||||||||||||||||||||||||||
getz(float x, float y) | float | |||||||||||||||||||||||||||||||||||||
hideplayer(float seconds) | ||||||||||||||||||||||||||||||||||||||
hidesword(float 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) | ||||||||||||||||||||||||||||||||||||||
noplayerkilling() | Disables killing of other players. | |||||||||||||||||||||||||||||||||||||
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. | |||||||||||||||||||||||||||||||||||||
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 r, float g, float b, float a) | ||||||||||||||||||||||||||||||||||||||
setfocus(float x, float y) | Sets the screen focus to the specified x and y. | |||||||||||||||||||||||||||||||||||||
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, str, float, float) | ||||||||||||||||||||||||||||||||||||||
setminimap(str, str, float, float) | ||||||||||||||||||||||||||||||||||||||
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 | |||||||||||||||||||||||||||||||||||||
triggeraction(float x, float y, str dest, params...) | ||||||||||||||||||||||||||||||||||||||
triggerserver(str dest, str params) | ||||||||||||||||||||||||||||||||||||||
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) | object | |||||||||||||||||||||||||||||||||||||
wraptext2(int, float, str, str) | object |
Graal 3D
- addmaterialmapping(str, str) - returns boolean
- getboxcenter(str) - returns string
- getdatablocktypes() - returns object
- getobjectat(float, float) - returns object
- getobjectatmouse() - returns object
- getobjectbyray(str, str) - returns object
- getsurfacetype(float, float) - returns string
- lightscene() - returns boolean
- mapshapeanimation(str, str, str, float) - returns boolean
- setfogcolors(obj)
- setinteriorrendermode(int)
- setshadowdetaillevel(float)
- setskybandcolors(obj)
- setskybandsizes(obj)
- setsuncolors(obj)
- setterrainrendermode(int)
- updateterrain()
- updatevisibledistance()
Other
- adventure_installgraal(str, bool, bool)
- adventure_openexternaloptions() - returns boolean
- adventure_openexternalpm(obj) - returns boolean
- adventure_openserverlist()
- adventure_quit()
- adventure_savegraaloptions()
- adventure_selectpath(str) - returns object
- adventure_setaccountname(str)
- adventure_setchat(str)
- adventure_setnickname(str)
- adventure_setpassword(str)
- adventure_startofflinemode()
- adventure_updateaccountfield()
- adventure_updatemicroactivationlevel()
- adventure_updatemidivolume()
- adventure_updatemp3volume()
- adventure_updateplayermuted()
- adventure_updateplayerprofile(bool, str, str, int, str, str, str, str, str, str)
- adventure_updateradiovolume()
(these functions are only available to privileged scripts from the Login server)
Classes / Object Types
- TGraalVar
- ActionMap
- GuiControl
- EditManager
- GuiArrayCtrl
- GuiBackgroundCtrl
- GuiBitmapBorderCtrl
- GuiBitmapButtonCtrl
- GuiBitmapCtrl
- GuiButtonBaseCtrl
- GuiChunkedBitmapCtrl
- GuiContextMenuCtrl
- GuiDrawingPanel
- GuiFlash
- GuiFrameSetCtrl
- GuiGraal3DCtrl
- GuiGraalCtrl
- GuiMenuCtrl
- GuiMLTextCtrl
- GuiMouseEventCtrl
- GuiPlayerView
- GuiProgressCtrl
- GuiScrollCtrl
- GuiShapeNameHud
- GuiShowImgCtrl
- GuiSliderCtrl
- GuiTabCtrl
- GuiTextCtrl
- TerrainEditor
- WorldEditor
- GuiControlProfile
- GuiCursor
- GuiTabCtrlEntry
- GuiTextListEntry
- GuiTreeViewNode
- MissionArea
- ShapeBaseHitBox
- ShapeImageState
- SimObject
- SceneObject
- AudioEmitter
- FractalTree
- fxFoliageReplicator
- fxGrassReplicator
- fxShapeReplicator
- fxSunLight
- GameBase
- InteriorInstance
- Marker
- Shape3ds
- Sky
- TerrainBlock
- twSurfaceReference
- volumeLight
- WaterBlock
- SimDataBlock
- AudioDescription
- AudioProfile
- DecalData
- GameBaseData
- ParticleData
- TSShapeConstructor
- WheeledVehicleSpring
- WheeledVehicleTire
- SimGroup
- Sun
- SceneObject
- TDrawableObject
- TDrawingPanel
- Terraformer
- TFrameDetail
- TGaniParam
- TGraalAni
- TGraalAniPart
- TGraalAniSound
- TGraalAniSprite
- TGraalAniStep
- TGraalSpriteAttachment
- THTTPRequest
- TParticle
- TParticleEmitter
- TParticleModifier
- TServerLevel
- TServerLevelLink
- TShowImg_Values
- TShowImgMount
- TStaticVar
- TTilesLayer
- TUpdatePackage