Creation/Dev/Old GScript: Difference between revisions

From Graal Bible
m (Some Beautification)
No edit summary
Line 1: Line 1:
==Commands==
'''http://www.antiunixmad.com/


===for program execution:===
Viper's Graal Issues.
<pre>
set flagname;                              sets a flag to true
unset flagname;                            sets a flag to false
if (flag) operation;                      the operation will only be executed when
                                              flag is true
else operation;                            executes an operation wenn flag was false
for (init-op; flag; incr-op) operation;    executes <init-op>, then while flag is true
                                              <operation;incr-op>
while (flag) operation;                    repeats the operation while flag is true
with (player/npc) operation;              executes an operation using player/npc as the
                                              current subject (server-side)
break;                                    ends a loop and continues with the script that
                                              follows to the loop
continue;                                  jumps to the beginning of the loop
                                              (next loop round)
function funcname() { operations; }        defines a function, can be called with funcname()
return;                                    ends the function immediatelly and returns to the
                                              function caller
sleep seconds;                            pauses the script execution for the specified time
setarray var,size;                        initializes var as an array of  the specified size
setstring varname,value;                  creates a string variable ‘varname’ with the given
                                              value
timereverywhere;                          allows timeouts on this machine even if the player
                                              didn’t entered the level first
addstring list,text;                      adds a string to a string list (saved as flag)
insertstring list,index,text;              inserts a string into a string list at the specified
                                              index
replacestring list,index,text;            replaces the string at position 'index' with 'text'
removestring list,text;                    removes all occurences of a string
deletestring list,index;                  deletes string list entry at position 'index'
</pre>


===simple npc manipulation:===
Hello everyone, as of late, many people have been attacking me on the issues and matters, trying to lie about things, bend the truth, and downright spin to make me and others of my cause look bad, in this text document i will discuss and lay to rest the issues that matter.
<pre>
setimg filename;                      changes the npc’s image
setimgpart filename,x,y,width,height;  changes the npc’s image and only displays the
                                          rectangle (x,y,width,height) of it
hide;                                  hides the npc
show;                                  shows an hidden npc
dontblock;                            lets the npc don’t block the player anymore
drawoverplayer;                        draws the npc over the player
drawunderplayer;                      draws the npc under the player
drawaslight;                          draws the npc above day/night
blockagain;                            turns off the four previous flags
canbecarried;                          the npc can now be lifted and carried by the player
cannotbecarried;                      turns off the previous flag
canbepushed;                          the npc can now be pushed by the player
cannotbepushed;                        turns off the previous flag
canbepulled;                          the npc can now be pulled by the player
cannotbepulled;                        turns off the previous flag
cannotwarp;                            disables link warping (dnpc) (server-side)
canwarp;                              enables link warping (dnpc) (server-side)
canwarp2;                        enables link warping for overworld links (dnpc)
                                          (server-side)
noplayeronwall;                players aren’t counted as a wall in onwall() or onwall2()
timershow;                       lets the npc’s timeout be shown
showcharacter;               displays a player character instead of the npc image
throwcarry;               throws the carried object
followplayer;               lets the npc follow the player; the action script keeps
                                          running set x/y to leave the player
hidelocal;               hides the npc (only for the current player)
showlocal;               shows an hidden npc (only for the current player)
dontblocklocal;               lets the npc don’t block the player anymore (only for
                                          the current player)
blockagainlocal;       turns off the three block flags (only for the current
                                          player)
destroy;       deletes the npc
shootball;               shoots a ball directly to the player
</pre>


===complex npc operations:===
I have been involved graal for over three years now, and i used to really like Graal and its admins alot, then slowly after about a year Graal and its admins went in a bad downward spiral, i still stuck with graal in hopes graal would pull itself out of this hole and unixmad would go back to the right path, this however did not happen, instead unixmad and even stefan went fouler and lower than i could have imageined, First with fireing Pachuka and Fuitad, two of the BEST graal admins ever in my view for no other reason than disagreeing with his future plans, then if just fireing them was not bad enough, he threatend to sue them and kill they're families, this was so wrong and bad Fuitad even said he would punch unixmad in the face for saying that if he met him in real life, but that was just the beginning of the downward spiral unixmad foolishly invoked onto graal, he then blatantly STOLE a domain name graal.net from Owl Shimy which costed over 30$ US Dollars, and never gave it back to him and never paid him for the cost of the domain, he also threatend to sue Owl Shimy and kill his family although it was Unixmad which stole the domain from Owl Shimy, then around Graal1.3.1 he blocked off Gservers officially and threatend to sue anyone that ran the former Gservers, although they were released as "Freeware" and actually used to encourage people to use the Gservers, this was a blatant attempt to monopolise , threaten, and intemidate that players that actually helped graal and supported him, he then made claims he copyrighted "Graal" and would contact so called "Lawres" about anyone that used the name "Graal" or had "Graal Files" on there websites, although graal was distributed as "Freeware" or "Shareware" and had no official software copyrights related to it, and that the name "Graal" was actually the name of a holy sacred golden cup used in some religion, and in that he has commited blasphemy against whatever religion has the so called "Holy Graal", then later on Unixmad fired SuperNick, because of his country and his origion and called him an American Asian slut, this was the first sign of racism on the part of Unixmad, towards Graal1.4.1 Unixmad was secretly unwrapping his sadistic plans, he then started claiming credit and claiming to own the copyrights to graal, although unixmad has done nothing but host some stupid weak as servers, and yet Stefan Knorr has done all the real work for Graal, and was the one to make ZeldaOnline , GraalOnline in the first place and has written every bit of codeing for the Graal Client , Gserver, RC, ect, yet unixmad the worthless pile of trash that he is steals all credit for Graal, then in February 2001, Unixmad and Antago release Graal2001 and the start of the "Pay to Play" system, now i have no problem with the fact that it is pay to play, the issue is when you PAY for something you actually expect to get the worth while of your money in this product, but instead they got a shittily made level generated land that was 99% empty, the NPCs were and are laggy as hell, and there were no quests, and there is only two shitty things today for hearts that suck so much i refuse to even call them quests, and to add to that about 40% of everyone that paid and gave unixmad there credit card number NEVER got the accounts they paid 27$ or more for, and those that did clearly got chumped out by a cheap peice of crap that aint worth paying for, it sucked so badly that most people played on Graal Classic still, even those that foolishly paid for pay to play accounts, and in an attempt to "FORCE" people to pay for a shitty product they do not want against they're will Unixmad hired "Tyhm" to deface and ruin GraalClassic in an attempt to make it buggier and less fun than even Graal2001, about this time i was disgusted with unixmad and most of the other admins and decided to downright turn against Graal and for the most part stop playing the peice of crap in general. People starting getting angry, complaining, asking for help, and asking for refunds, of coarse unixmad gave noone a cash refund, and simply deleted and banned "PAID ACCOUNTS" of those who complained, asked for help, or asked for a refund these are PAYING CUSTOMERS, they have the rights of basic service that they PAID for, unixmad promises pay to play players a quality product and customer service, but instead gives them a grade F product and ripps off his customers and delete they're accounts that they PAID HIM money for, his excuse? Credit card fraud, when infact at least 90% of the people he bans for credit card fraud pay legitamately with there OWN credit cards or pay via paypal by check, and yet Unixmad has stolen and used others credit card numbers to buy things for himself on several occassions, he also claims he needs pay to play money to keep graal alive and running, yet there has been evidence that he makes at least 90% profit out of the monies he gets, and that he uses illegal porn ad banners and illegal cookie style web tracking and giveing email adresses of the players and even phone numbers of every player to spam and telemarketting companies without there permission, he even keeps personal player info, includeing email, adress, and phone number on unsecure servers which have already been leaked out, such info about people should not be on a public webserver accessable to the internet in anyway, then after all that Unixmad starts banning african american people, asians, koreans, and or people with images of people of that race from the Graal2001 forums and graal itself, yet again they are paying customers and this is another sickening act of racism on the part of Unixmad and GraalOnline, and then even more disgusting is what Stefan posts on the Graal2001 forums, he makes several anti american, racist, pro terrorist, pro nazi, and pro taliban comments on that post and goes on and on several pages bashing americans, this post was offense, obcene, and disgusting to many people includeing myself . If all that does not make you sick to your stomache or dislike unixmad yet, i am far from done, then Unixmad proceeds to illegally DDOS webservers of mafukie and make threats to him over the phone, and has phone assaulted me over 40 times a day between midnight and 5am, and has made threats to sue dozens of people, kill there families, and shut down innocent websites and servers, while hosting illegal stuff and doing illegal things himself with the use of his own wanadoo.fr servers, stuff which includes child porn, bestiality porn, DVD Piracy, DDOS Attacks, theft of copyrighted materials from gameing companies such as nintendo, Credit Card fraud, theft, spamming, phone harrassment, useage of illegal pirated corperate softwares, all this just to start the list of what Unixmad, Stefan, and they're servers are doing 24/7 for nearly 4 years now , anyone that likes unixmad or thinks he is a good person even after all this is clearly a fool, everything in this document is the truth and why i hate unixmad so much, if you like unixmad after all these sickening things he does, then you are no better than a KKK or Neo Nazi member and should go kill yourselfs, i do not tolerate facists, racists, or nazis, they are all bad people, and unixmad is one of the worst of the worst, and no person with any morales could tolerate or support such a person like Stephane Portha or Stefan Knorr. The people that spin, lie and bend the truth in support of unixmad will always exist, but i will always reveal the truth about unixmad, and EVERYTHING said in this document is true, despite what any assclowns try and say about this, and this supriseingly enough is only 1% of the bad things Unixmad has done, how some people even tolerate, none the less support such a bad person is beyond me... I fight against bad people like unixmad, why? Because unlike many others in this world i actually care about other people, and i will do everything in my power to stop unixmad from hurting graal or its innocent players, many say i want to destroy and kill graal, this is NOT true, i used to love graal, i only wish to stop unixmad's evil sadistic illegal actions and restore graal to the great game it used to be when it was "for the players, by the players" , but if i have to destroy GraalOnline in exchange to stop unixmad's tyranny, it will be regreteable, but sometimes some sacrifices have to be made for the greater good, lets just hope that unixmad drops dead and that sacrifice never has to be made... I love graal and lots of its players, and i wish to someday restore it to the grandness it once had, but bad people like unixmad must be gotten rid of if that is to be achieved...'''
<pre>
addguildmember guild,account,nick;            adds player to a guild (server-side)
removeguildmember guild,account,nick;           removes a player from a guild (server-side)
removeguild guild;                            deletes a guild (server-side)
move dx,dy,time,options;                   moves the npc, options: cachtype(0,1,2) +
                                                      blockcheck(4) + eventwhendone(8) +
                                                      applydir(16)
say signindex;                                   displays signs
say2 text;                                 displays text as sign
lay itemname;                                   lays an item
lay2 itemname,x,y;                           lays an item to the specified position
take itemname;                                   takes an item if available
take2 index;                                   takes the item with the specified index
message text;                                   displays a text message over the npc
setcharprop messagecode,string;                   sets string properties of the character
setcharani ganifile;                   sets the animation for the npc
setchargender gender;                   sets the gender of the npc (male/female)
putnpc imgname,scriptname,x,y;                   creates a npc, scriptname is the name of a
                                                      textfile containing the npc script
                                                      (deprecated)
putnpc2 x,y,{ script };                           creates a npc, script is specified within
                                                      the brackets
callnpc index,eventflag,params;                   calls the script of another npc (not
                                                      immediatelly)
callweapon index,eventflag,params;           calls the script of a weapon (used together
                                                      with the variable selectedweapon)
carryobject carryobjectname;                   the character carries an object
copystrings fromprefix,toprefix;           copys all strings of type fromprefix to the
                                                      type toprefix
copyflagss fromprefix,toprefix;                   copys all flags of type fromprefix to the  
                                                      type toprefix
toinventory flag;           puts the npc into the player’s inventory
                                                      until the flag is unset
toweapons weaponname;                     adds this npc to the players weapon list
                                                      (deprecated, DO NOT USE WITH AN NPC
                                                      SERVER!)
addweapon weaponname;                   adds a weapon from a database to your
                                                      inventory (server-side)
removeweapon weaponname;                   deletes „weaponname“ from your inventory
                                                      (server-side)
seteffect red,green,blue,alpha;                   sets the day/night effect (default 0,0,0,0)
seteffectmode mode;                           changes mode of setcoloreffect of npc
                                                      (0 - lights color +, 1 - transparency
                                                      alpha blending, 2 - holes color -)
setcoloreffect red,green,blue,alpha;           sets the color / alpha blending effect
                                                      of the npc (default 1,1,1,1)
setzoomeffect zoomfactor;           sets the zoom factor (default 1)
showani index,x,y,direction,animation,params;   shows the animation at the given position
showani2 index,x,y,z,direction,animation,params;  shows the animation at the given position
showimg index,filename,x,y;                   shows an image at the given position
showimg2 index,image,x,y,z;                      shows an image at the given position
showpoly index,{x1,y1,x2,y2,...};           draws a polygon with given verticies,
                                                      4 params will draw a line
showpoly2 index,{x1,y1,z1,x2,y2,z2,...};          draws a polygon with given verticies,  
                                                      6 params will draw a line
showtext index,x,y,font,style,text;           shows text at the given position with
                                                      font and style
showtext2 index,x,y,z,font,style,text;           shows text at the given position with  
                                                      font and style
hideimg index;                           removes the image with the specified index
hideimgs indexstart,indexend;                   removes the images with the specified
                                                      indecies
changeimg part index,x,y,width,height;           changes the visible part of the showimg
changeimgvis index,drawingheight;           changes the drawing height of the showimg
                                                      (0-3 playing board,4+ screen)
changeimgcolors index,red,green,blue,alpha;      sets color / alpha blending for the showimg
                                                      (default 1,1,1,1)
changeimgzoom index,zoomfactor;                   sets zoom factor for the the showimg
                                                      (default 1)
changeimgmode index,mode;                   changes color mode for showimg (see
                                                      modes in seteffectmode)
sendtorc message;                            sends a message to rc (server-side)
sendtonc message;                            sends a message to nc (server-side)
sendpm message;                            sends a pm to the current player (server-side)
setpm message;                    sets the default message for the npcserver
                                                      (only for npcserver)
sendrpgmessage message;                    sends a rpg message to the current player
                                                      (server-side)
setshape type,width,height;                   sets the shape of the npc: type=1 means
                                                      rectangle (width,height in pixels)
setshape2 width,height,{tiletypes..};           sets the shape of the npc to a rectangle
                                                      of tiles
setshootparams params;                           sets params sent to called scripts with shoot
shoot x,y,z,angle,zangle,power,gani,ganiparams;  shoots a projectile
shootarrow direction;                           shoots an arrow
shootfireball direction;                   shoots a firewall
shootfireblast direction;                   shoots a fireblast
shootnuke direction;                           shoots an nukeshot
spyfire length,power;                   shoots a horse fire with length and power
join classname;                   adds script from classfile classname
hitnpc index,halfhearts,fromx,fromy;           hurts an npc (changes hearts, hurtdx, hurtdy)
takehorse index;                   takes the horse with the specified index
                                                      (only works in combination with
                                                      ‘showcharacter’ )
tokenize str;                           divides str into words (tokens) which can
                                                      be read with #t(index)
tokenize2 delims,str;                           divides str into tokens, using ‘delims’ as  
                                                      additional delimiters
warpto level,x,y;                              warps database npc to level at x,y
wraptext  length,delims,text;                    divides test into pieces of length ‘length’
                                                      with additional delimeters
                                                      (accessed through tokens)
wraptext2 width,zoom,delims,text;                divides test into pieces of length in pixels
</pre>
 
===player manipulation:===
<pre>
attachplayertoobj objecttype,id;          attaches player to object (0=npcs)
detachplayer;                   detaches the player from an npc
serverwarp server;             warps the player to another server
setlevel filename;           warps the player (URLs not supported)
setlevel2 filename,x,y;                   warps the player to the specified level and position
seturllevel URL;           warps the player to an URL (without the leading http://!)
setbody filename;           sets the body image for the player
sethead filename;           sets the head image for the player
setsword imgname,power;                   changes the players sword (-20<=power<=20)
setshield imgname,power;           changes the players shield (0<=power<=10)
setani ganifile;           sets the animation for the player
setplayerdir direction;                   sets the player looking direction
setgender gender;           sets the gender of the player (male/female)
setskincolor colorname;                   changes the player skin
setcoatcolor colorname;                   changes the player coat
setsleevecolor colorname;           changes the player sleeves
setshoecolor colorname;                   changes the player shoes
setbeltcolor colorname;            changes the player belt
setplayerprop messagecode,string;   sets string properties of the player (except
                                              the nickname&guildcode)
takeplayercarry;           removes the object carried by the player
takeplayerhorse;           removes the player’s horse
disableweapons;                   disables the player’s sword+bombs+darts
enableweapons;                   enables the player weapons
freezeplayer seconds;                   the player can’t move for the given time
freezeplayer2;                           freezes player indefinitely
hideplayer seconds;                   hides the player for the specified time
hidesword seconds;                   hides the player’s sword for the specified time
hurt halfhearts;           hurts the player
hitplayer index,halfhearts,fromx,fromy;   hurts the player with index
disabledefmovement;                   disables the normal player movement
enabledefmovement;                   enables it again
disablepause;                           disables the normal player pause
enablepause;                           enables it again
disablemap;                   disables the normal player map
enablemap;                   enables it again
replaceani ani,newani;                   replaces a default animation</pre>
 
===level/game manipulation:===
<pre>
hitobjects power,x,y;                 hurts all players/npcs/baddies on that position
triggeraction x,y,action,params; triggers a ‘if (action<action>)...’ on the
                                            objects on (x,y)
updateboard x,y,width,height;         makes level board modifies visible
updateboard2 x,y,width,height;         saves level board modifications if serveroption
                                            savelevels=true (serverside)
updateterrain;                 makes level terrain modifications visible
setz x,y,width,height,a,b,c,d;         sets z of x,y with a,b,c,d as corner heights
                                          (use updateterrain to save)
putobject objectname,x,y;         puts an object onto the board
putbomb power,x,y;                 puts a bomb on the board
putexplosion radius,x,y;         puts an explosion on the board
putexplosion2 power,radius,x,y;         puts an explosion on the board (power=1 -> normal,
                                            3 -> jolt bomb)
putleaps leaptype,x,y;                 procduces an object ‘explosion’ (0-bush, 1-swamp,
                                            2-stone, 3-sign, 4-ball, 5-water)
puthorse imgname,x,y;                 puts a horse (or boat) on the board
setbackpal filename;                 the background gets the color palette of the
                                            specified image
setletters filename;         signs will be displayed using the specified image
                                            instead of letters.png
setmap imgname,levelnamesfile,x,y; changes the map, the player will be placed on (x,y)
setminimap imgname,levelnamesfile,x,y; changes the minimap, the player will be placed on (x,y)
loadmap gmapfilename;                 loads the gmap file, the .gmap extension is not
                                            necessary
showstats bitflag;         shows/hides parts of the stats bar
noplayerkilling;         disables hurting with sword/npc weapons
removebomb index;                 removes the bomb with the specified index
removearrow index;                 removes the arrow with the specified index
removeitem index;         removes the item with the specified index
removeexplo index;                 removes the explosion with the specified index
removehorse index;                 removes the horse with the specified index
explodebomb index;                 explodes the bomb with the specified index
reflectarrow index;                 reflects the arrow with the specified index (like
                                            a mirror shield)
addtiledef image,levelstart,type; specifys the tiles images for all levels that start
                                            with 'levelstart' (0-standard type,1-new order)
addtiledef2 image,levelstart,x,y; replaces parts of the tiles image
removetiledefs levelstart;         removes all tile definitions for levels with name
                                            begining with levelstart
disableselectweapons;                 disables the weapon select screen
enableselectweapons;                 enables it again
enablefeatures bitflag;        enables/disables game features
setcursor cursornumber;                 changes the mouse icon to the corresponding windows
                                            set (list below)
setcursor2 filename;                 changes the map scrolling icon in the offline level editor</pre>
 
===baddy manipulation:===
<pre>
putcomp baddyname,x,y;                 puts a new baddy on the board
putnewcomp baddyname,x,y,imgname,power; puts a baddy on the board (with the specified image
                                            and power)
hitcompu index,decrpower,fromx,fromy; hurts a baddy
removecompus;                 removes all baddies</pre>
 
===file operations:===
<pre>
copylevel oldlevelname,newlevelname; copies the level oldlevelname to the level newlevelname
                                            (you can specify a new folder by putting folder/
                                            infront of the newlevelname)
deletelevel levelname;                 deletes the level (do not include path, Server-side)
play filename;                 plays a sound/music file or whatever can be played
                                            with ‘Windows Media Player’
play2 filename,x,y,volume;         plays a sound/music at x,y with the specified volume
                                            (1=default volume)
playlooped filename;                 plays a sound file looped
stopsound filename;                 stops playing a sound file
stopmidi;                 stops playing the currently running midi file
setmusicvolume left,right;         changes the volume for music (0..1)
openurl URL;                 opens the given URL in the default web browser
                                            (without the leading http://)
openurl2 URL,width,height;         opens the given URL in a webbrower window of the
                                            specified size (url without http://)
showfile filename;         opens the file with the program associated with the
                                            file extension
saveinfo string,string;                 saves info as info (server-side)
savelog string;                 saves string to log (server-side)
savelog2 filename,string;         saves string to logfile (server-side)</pre>
 
==Stats values (for showstats)==
<pre>
1     ASD
2     icons
4     rupees
8     bombs
16     arrows
32     hearts
64     ap
128     mp
256     minimap
512     inv
1024     player
allstats    all stats</pre>
 
==Cursor Numbers  (for setcursor)==
<pre>
1 Hidden
2 Normal
3 Cross
4 Text
5 Hidden?
6 Resize Lower Left to Upper Right
7 Resize Up Down
8 Resize Upper Left to Lower Right
9 Resize Left Right
10 Up arrow
11 Hourglass
12 File
13 Not allowed
14 Break adjust Left Right
15 Break adjust Up Down
16 Multiple files
17 SQL Hourglass
18 Not allowed
19 Mouse + Hourglass
20 Mouse + ?
21 Pointing Hand
22 Four directional arrow</pre>
 
==Game features (for enablefeatures)==
<pre>
2         P key
4         Q key
8         R key
0x10         S+A combo
0x20         S+D combo
0x40         TAB key
0x80         chat text
0x100         hearts overhead
0x200         display of nicknames
0x400         toall/PM bubbles
0x800         right-click profiles
0x1000         emoticons
0x2000         Alt+5 snapshots
0x4000         Alt+8/9 zooming
0x8000         logframe
allfeatures all features</pre>
 
==Special Symbols==
<pre>
! not
? myvar = (flag? iftrue : iffalse)
&& and
|| or
== equals
+ addition
- substraction
* multiplication
/ division
% mod; a%b = a - int(a/b)*b;
^ power; a^0.5 = squareroot(a)
in tests if an array/range contains a variable (e.g. 2 in {1,2,3}; x,y in |0,64|)
= assigment
a += b a = a+b
a -= b a = a-b
a *= b a = a*b
a /= b a = a/b
a ++ a = a+1
a -- a = a-1
this. variables that start with ‘this.’ are only accessible for the npc itself</pre>
 
==Built-in Flags     true when:==
<pre>
actiondoublemouse              the player double clicks the npc
actionleftmouse                 the player left clicks the npc
actionmiddlemouse              the player middle clicks the npc
actionrightmouse                the player right clicks the npc
actionprojectile                the player has been hit with a projectile (client-side)
                                    or a projectile has landed (server-side)
actionsprojectile         a serverside projectile has landed  (server-side)
actionprojectile2         a projectile has landed (client-side)  (#p(0),#p(1) are
                                    x,y; #p(2),#p(3) are params)
actionpushed                    the player pushes the npc
actionpulled                    the player pulls the npc
canspin                         the player has spin power (for sword)
carrying               the player carries something
carriesblackstone              the player carries a blackstone
carriesbush                 the player carries a bush
carriessign                 the player carries a sign
carriesstone                 the player carries a stone
carriesvase                 the player carries a vase
compsdead                 there is no living baddy
compusdied                 all baddies died
exploded         the npc was exploded by a bomb
firedonhorse                 this npc weapon is fired while riding on horse
followsplayer                 the npc currently follows the player
hasweapon( name )         the player has the weapon specified with ‘name’
isfocused         setfocus has been used (not focused on player)
isleader         the player entered the level first (of all players
                                    in the same room)
isonmap                 the player is on an outside level
issparringzone                 the player is in a sparring level
isweapon         this npc is a weapon
keydown( key )                 the specified key is pressed (0..10: up, left, down,
                                    right, S, A, D, M, tab, Q, P)
keydown2( keycode,ignorecase)  checks if a key has been pressed (ignorecase must be
                                    false to check for shift,ctrl,alt)
keypressed                 a key has been pressed (#p(0) is keycode,#p(1) is character)
                                    (event)
leftmousebutton                 the left mouse button is pressed (flag)
lighteffectsenabled         the player can see light effects
middlemousebutton              the middle mouse button is pressed (flag)
mousedown                 a mouse button has been pressed (event) (#p(0) also
                                    carries the the strings left,right,double for
                                    those corresponding events)
mouseup                 a mouse button has been released (event)
mousewheel                 the mousewheel has been used (event)
nopkzone                 the player is in a level where you can’t hurt other players
onmapx( level )                 x-position of the level on the current map
onmapy( level )                 y-position of the level on the current map
onwall( x, y )                 the specified field is blocked
onwall2( x, y,width,height )    the specified field is blocked (server-side)
onwater( x, y )                 the specified field is water
pm                   a pm has been sent to the npcserver (npcserver only,
                                #p(0) is account #p(1) is message))
playeronline                 the game is in online mode
peltwithblackstone              the npc was pelt with a blackstone
peltwithbush                 the npc was pelt with a bush
peltwithnpc                 the npc was pelt with another npc
peltwithsign                 the npc was pelt with a sign
peltwithstone                 the npc was pelt with a stone
peltwithvase                 the npc was pelt with a vase
playerchats                 the player says something
playerdies                 the player died
playerendsreading         the player finished reading
playerenters                 the player enters the level
playerleaves                 the player leaves the level
playerhurt                 the player has been hurt
playerisfemale                 the player is female
playerismale                 the player is male (specified in headsconfig.txt)
playerlaysitem                 somebody layed an item
playermap                 the player is reading the map
playeronhorse                 the player rides on a horse (or boat)
playerpause                 the player is paused
playerreading                 the player is reading a sign
playerswimming                 the player is swimming
playertouchsme                 the layer touchs the npc
playertouchsother         the player touchs another npc
playerattached                 the player is attached to this npc
playertrial                 true when the player has a trial account
rightmousebutton         the right mouse button is down (flag)
shotbybaddy                 the npc was shot by a computer opponent
shotbyplayer                 the npc was shot by the player
startswith( partstr, str ) str starts with partstr
strcontains( str, partstr ) str contains partstr
strequals( str1, str2 )         str1 is equivalent to str2 (both strings can
                                    contain message codes)
timeout                 the npc’s timeout counter runs to 0
visible                 the npc is visible
washit                 the npc was slayed with a sword or axe
waspelt                 the npc was pelt
wasshot                 the npc was shot with arrows
wasthrown                 the npc was carried and then thrown
weaponfired                 this npc is used as weapon, ‘D’ (or joybutton1) is pressed
weaponsenabled                 the player weapons are enabled</pre>
 
==Variable Prefixes==
<pre>
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
                            without a leading but they are not saved and not sent to the
                            npcserver</pre>
 
==Built-in Variables / Functions==
<pre>
x       the npc’s horizontal position
y       the npc’s vertical position (top=0)
timeout       the npc’s timeout counter (seconds)
rupees       the npc’s rupees count
bombs       the npc’s bombs count
darts       the npc’s darts count
hearts       the npc’s hearts count
glovepower       the npc’s glove power (1-glove1,2-glove2)
swordpower       the npc’s sword power (1-normal sword,2-axe,3-lizardsword,4-golden sword)
shieldpower          the npc’s shield power (1-normal sword,2-mirror shield,3-lizard shield)
dir       the direction of the character
sprite       the sprite of the character
anistep       the anistep of the character
ap       the alignment points of the character
hurtdx       will be set when the player uses the sword/npc weapon on the npc
hurtdy         (x/y difference, >=-1, <=1)
save[0],..,save[9]    built-in variables that work in online mode (integer values >=0, <=220)
 
npcscount       the npcs count
npcs[index].id       the server id of the npc
npcs[index].x       an npc’s horizontal position
npcs[index].y       an npc’s vertical position
npcs[index].z       an npc’s z  position
npcs[index].width       the width of the npc (in fields)
npcs[index].height       the height of the npc (in fields)
npcs[index].timeout       the timeout counter of the npc
npcs[index].rupees       the rupees count of the npc
npcs[index].bombs       the bombs count of the npc
npcs[index].darts       the darts count of the npc
npcs[index].hearts       the hearts count of the npc
npcs[index].glovepower       the glove power of the npc
npcs[index].swordpower       the sword power of the npc
npcs[index].shieldpower       the shield power of the npc
npcs[index].dir       the direction of the npc (if it’s a ‘showcharacter’)
npcs[index].sprite       the sprite of the npc (if it’s a ‘showcharacter’)
npcs[index].anistep       the anistep of the npc (if it’s a ‘showcharacter’)
npcs[index].ap       the alignment of the npc (if it’s a ‘showcharacter’)
npcs[index].hurtdx       will be set when the player hurts the npc (or
npcs[index].hurtdy         (hitplayer/hitpnc is called) -> push away difference
npcs[index].save[0],..,save[9] built-in variables that work in online mode (integer values
                                    >=0, <=220)
 
playerscount       the player count
allplayerscount       the player count of the server
allplayers[index]       gets player from all players
players[index]       gets player from level
players[index].x       a player’s horizontal position
players[index].y       a player’s vertical position
players[index].z       a player’s z  position
players[index].rupees       a player’s rupees count
players[index].bombs       a player’s bombs count
players[index].darts       a player’s darts count
players[index].mp       a player’s magic points (0..100)
players[index].ap       a player’s alignment points (0..100)
players[index].hearts       a player’s hearts count
players[index].fullhearts    a player’s max hearts count
players[index].dir       a player’s direction (0-up,1-left,2-down,3-right)
players[index].glovepower    a player’s glove power (2-glove1,3-glove2)
players[index].swordpower    a player’s sword power (1-normal sword, 2-axe, 3-lizardsword,
                                  4-golden sword)
players[index].shieldpower    a player’s sield power (1-normal sword,2-mirror shield,
                                  3-lizard shield)
players[index].headset       a player’s head sprites set (�?head�?+playerheadset+�?.gif�?)
players[index].sprite       a player’s sprites set (0..40)
players[index].anistep       the anistep of the player)
players[index].id       a player’s id (=-1 for npc characters)
players[index].saysnumber    the (index+1)th  player says that number
players[index].id       a player’s id (=-1 for npc characters)
players[index].attachid       the player is attached to the npc with that id (<=0-> not
                                  attached)
players[index].attachtype    the type of object the player is attached to
players[index].logintime      when the player logged in (in timevar)
players[index].lastdead       when the player last died (in timevar)
playerhurtdpower       how much power the player lost when he was hurt last
playerhurtdx               the horizontal hurting movement of the player
playerhurtdy               the vertical hurting movement of the player
(playerx,playery,... = players[0].x,players[0].y,... = current players properties)
 
compuscount       the baddy count
compus[index].x       a baddy’s horizontal position
compus[index].y       a baddy’s vertical position
compus[index].type       a baddy’s type (0..9, see the baddy names list)
compus[index].dir       a baddy’s body direction (0..3)
compus[index].headdir       a baddy’s head direction (0..3)
compus[index].power       a baddy’s power
compus[index].mode       a baddy’s mode
 
bombscount       the bombs count
bombs[index].x       a bomb’s horizontal position
bombs[index].y       a bomb’s vertical position
bombs[index].power       the bomb’s power (1,2,3)
bombs[index].time       the time left till explosion (3 .. 0)
 
arrowscount               the arrows count (arrows + balls)
arrows[index].x               an arrow’s horizontal position
arrows[index].y               an arrow’s vertical position
arrows[index].dx       the horizontal speed per tick (0.05secs)
arrows[index].dy       the vertical speed per tick (0.05secs)
arrows[index].dir       the flying direction (0,1,2,3)
arrows[index].type            the shottype (-1 -> ball, 0..3 -> arrow with power 1..4)
arrows[index].from            the shooter (0 -> baddy, 1 -> current player)
 
itemscount               the items count
items[index].x               an item’s horizontal position
items[index].y               an item’s vertical position
items[index].type       the item type (0..24)
items[index].time       the time left till the item disappears (8.2 .. 0)
 
 
exploscount       the explosions count (putexplosion produces 9 explosions of
                                  size 2x2!)
explos[index].x       an explosion’s horizontal position
explos[index].y       an explosion’s vertical position
explos[index].power       the power of the bomb which produced this explosion
explos[index].time       the time left till the explosion disappears
explos[index].dir       the direction from the bomb which produced the explosion
 
horsescount       the horses count
horses[index].x       an horses’s horizontal position
horses[index].y       an horses’s vertical position
horses[index].dir       the direction of the horse
horses[index].bushes       bushes eaten by the horse
horses[index].bombs       bombs count in the horse’s mouth
horses[index].bombpower       the power of the bombs on the horse’s mouth
horses[index].type       the horse type (0 -> riding horse, 1 - boat)
 
signscount               the signs count
signs[index].x               a sign’s horizontal position
signs[index].y               a sign’s vertical position
 
abs( var )                    the absolute value
aindexof( value,array )      position of where valuefirst  appears in array
actionplayer               gives index of player who triggered  an action
arctan( var )               the arcus tangens of var; (a = arctan(sin(a)/cos(a)))
arraylen( var )               the size of an array
ascii( char )               the ascii code of a character
board[index]               the level board (index = 0..64*64-1)
cos( a )       the cosinus of a; a is an angle in the radiant system (0...3.14)
downloadpos                  the download position
downloadsize                  the download size
getangle( dx,dy )       the angle of vector (dx,dy) to the x coordinate (0...2*3.14)
getdir( dx,dy )               gets the direction needed to look at relative position
getz( x,y )               gets the z of the tile at that position
getplayer( account )       gets the allplayers index of account
getnearestplayer( x,y )       gets the index of the nearest player
getnearestplayers( x,y,flag )    gets the indecies of the nearest players with flag „flag“
getareanpcs( x,y,width,height ) gets the indecies of all npcs within the given parameters
getnpc( name )               gets the index of the dbnpc with name name
graalversion               current Graal version
gravity               gravity variable for projectiles (default set to 2)
imgwidth( imgname )          gets width of loaded image
imgheight( imgname )          gets height of loaded image
indexof( partstr, str )       position of where partstr appears in str (-1 -> not in str)
int( var )       the integer value of a variable (truncates the floating
                                  point part)
keycode( char )       gets the keycode for the character
levelorgx           level origin (x), can be different to 0,0 if the player is
                                  attached to an npc
levelorgy           level origin (y)
lindexof( str, list )       position of where the string appears in the string list
log( base,x )               the logarithm of x with base base
max( a,b )               gets maximum of a and b
min( a,b )               gets minimum of a and b
mousebuttons               sum of values for mouse buttons pressed (1 = left, 2 = middle,
                                  4 = right)
mousescreenx               x position of mouse in the game screen
mousescreeny               y position of mouse in the game screen
mousewheeldelta               movement of mouse wheel in past .05 seconds
mousex               x position of mouse on the level
mousey               y position of mouse on the level
musicpos       position in current music playing (won’t work on midis)
musiclen             length in current music playing (won’t work on midis)
playerfreezetime       time for which player is frozen (in seconds; -1 when not frozen)
random( a, b )               a random floating point value, a<= value < b
sarraylen( list )       the size of a string list
screenheight               screen height
screenwidth               screen width (for the current player)
screenx( x,y )               converts level x,y to screen x
screeny( x,y )               converts level x,y to screen y
selectedweapon               the index of the selected weapon of the player
sin( a )       the sinus of a; a is an angle in the radiant system (0...3.14)
strlen( str )               the length of the string
strtofloat( str )       the value of ‘str’ as number
testbomb( x, y )       the index of the bomb on position (x,y)
testcompu( x, y )       the index of the baddy on position (x,y)
testexplo( x, y )       the index of the explosion on position (x,y)
testhorse( x, y )       the index of the horse on position (x,y)
testitem( x, y )       the index of the item on position (x,y)
testnpc( x, y )               the index of the npc on position (x,y)
testplayer( x, y )       the index of the player on position (x,y)
testsign( x, y )       the index of the sign on position (x,y)
tiles[ x, y ]               the tile index at x,y, writable
tiletype( x, y )       returns the neworder tiletype used for setshape2 on x,y
timevar               a server-wide time variable which is increased by 1 all 5 seconds
textheight( zoom,font,style )  gets the height of the text with the specified zoom font
                                  and style
textwidth( zoom,font,style,text )  gets the width of the text with the specified zoom font
                                      and style
tokenscount               count of tokens produced with tokenize
waterheight               sets waterheight of terrain levels
vecx( dir )               vertical movement vector (0,-1,0,1)
vecy( dir )               horizontal movement vector (-1,0,1,0)
weaponscount               count of weapons/items the player has
worldx( x,y )               converts screen x,y to level x
worldy( x,y )               converts screen x,y to level y</pre>
 
==Key Numbers==
<pre>8 back
9 tab  (does not work with keypressed)
13 return
16 shift (does not work with keypressed)
17 control (does not work with keypressed)
18 alt (does not work with keypressed)
33 page up (does not work with keypressed)
34 page down (does not work with keypressed)
35 end (does not work with keypressed)
36 home (does not work with keypressed)
42 print key (does not work with keypressed)
45 insert (does not work with keypressed)
46 delete (does not work with keypressed)
91 left windows key (does not work with keypressed)
92 right windows key (does not work with keypressed)
93 mouse popup key (does not work with keypressed)
112-123 F1-F12 (does not work with keypressed)
144 numlock (does not work with keypressed)
160 left shift (does not work with keypressed)
161 right shift (does not work with keypressed)
162 left control (does not work with keypressed)
163 right control (does not work with keypressed)
164 left alt/menu (does not work with keypressed)
165 right alt/menu (does not work with keypressed)</pre>
 
==Tiletype / tile index (use with setshape)==
<pre>nonblock 0
hurt underground 2
chair 3
bed upper 4
bed lower 5
swamp 6
lava swamp 7
near water 8
water 11
lava 12
throw-through 20
jump stone 21
blocking 22</pre>
 
==Itemname / item index==
<pre>greenrupee 0
bluerupee 1
redrupee 2
bombs         3
darts         4
heart         5
glove1         6
bow         7
bomb         8
shield         9
sword         10
fullheart 11
superbomb 12
battleaxe 13
goldensword 14
mirrorshield 15
glove2         16
lizardshield 17
lizardsword 18
goldrupee 19
fireball 20
fireblast 21
nukeshot 22
joltbomb 23
spinattack 24</pre>
 
==Carry object names==
<pre>bush
sign
vase
stone
blackstone
bomb
hotbomb
superbomb
joltbomb
hotjoltbomb
none</pre>
 
==Colornames==
<pre>white
yellow
orange
pink
red
darkred
lightgreen
green
darkgreen
lightblue
blue
darkblue
brown
cynober
purple
darkpurple
lightgray
gray
black
transparent</pre>
 
==Directions==
<pre>up
left
down
right
(you can also use normal variables with values between 0 and 3)</pre>
 
==Baddy names==
<pre>graysoldier
bluesoldier
redsoldier
shootingsoldier
swampsoldier
frog
octopus <- spider, for compatibility
goldenwarrior
lizardon
dragon</pre>
 
==Baddy modes==
<pre>0 walking
1 looking
2 hunting
3 hurted
4 bumped
5 dying
6 shooting (swampsoldier)
7 jumping (frog)
8 shooting (spider)
9 dead</pre>
 
==Player sprites==
<pre>0 no movement, or not a default animation
1-8 walking
9-13 sword slaying
14-18 pushing
19-22 pulling
23 lifting
24 no movement, carrying something
25-32 walking, carrying something
33 shooting
34-36 riding
37 sitting
38 sleeping
39 hurted (can only be set on ‘showcharacter’-npcs)
40 dead (can only be set on ‘showcharacter’-npcs)</pre>
 
==Message codes (for ‘message’, ‘strequals’, etc.)==
<pre>
#a                     the account name of the player
#b                     line break (for say2)
#C0, #C0(index)                     the skin color
#C1, #C1(index)             the coat color
#C2, #C2(index)                     the sleeves color
#C3, #C3(index)                     the shoes color
#C4, #C4(index)                     the belt color
#c, #c(index)             the current chat text of the player
#D(filename)             the download position of the file
#e(startindex,length,string)     extracts a substring out of ‘string’ (length=-1 ->
                                        until the end)
#f                     the image filename of the npc
#g, #g(index)             the guild name of the player
#G                                  update stats of the player (server side only)
#I(list,index)             gets a string of a string list
#i(imgname), #i(imgname,x,y,w,h)    displays an image or a part of an image when used in a sign
#K(keyindex)             the name of the specified key
#k(keyindex)             the description of the specified key (in local
                                        language/key assignments)
#L                     the current level filename
#m, #m(index)             the animation of the player
#n, #n(index)             the nick name of the player (index=-1 ->  npc character,
                                        0 -> current player)
#N, #N(index)             local database npc name
#P1 - 30, #P1 - 30(index)     the gani attributes 1- 30
#p(index)             action parameter of the specified index
#Q(guildname,accountname)          nickname for a player in a guild (serverside only)
#R(string1,...,stringx)            randomly selects a string
#s(var)                     the value of the string variable ‘var’
#t(index)             token of the specified index, produced with tokenize
#T(string)             trims the string (removes spaces at the beginning and end)
#v(var)                     the value of ‘var’ as string
#W, #W(index)             the filename of the weapon icon
#w,#w(index)             the name of the current npc weapon of the player
#1, #1(index)             the sword image filename of the player
#2, #2(index)             the shield image filename of the player
#3, #3(index)             the head image filename of the player
#5, #5(index)             the image filename of the player’s horse
#6, #6(index)             the image filename of the npc that is carried by the player
#8, #8(index)             the body image filename of the player
</pre>

Revision as of 17:17, 30 June 2007

http://www.antiunixmad.com/

Viper's Graal Issues.

Hello everyone, as of late, many people have been attacking me on the issues and matters, trying to lie about things, bend the truth, and downright spin to make me and others of my cause look bad, in this text document i will discuss and lay to rest the issues that matter.

I have been involved graal for over three years now, and i used to really like Graal and its admins alot, then slowly after about a year Graal and its admins went in a bad downward spiral, i still stuck with graal in hopes graal would pull itself out of this hole and unixmad would go back to the right path, this however did not happen, instead unixmad and even stefan went fouler and lower than i could have imageined, First with fireing Pachuka and Fuitad, two of the BEST graal admins ever in my view for no other reason than disagreeing with his future plans, then if just fireing them was not bad enough, he threatend to sue them and kill they're families, this was so wrong and bad Fuitad even said he would punch unixmad in the face for saying that if he met him in real life, but that was just the beginning of the downward spiral unixmad foolishly invoked onto graal, he then blatantly STOLE a domain name graal.net from Owl Shimy which costed over 30$ US Dollars, and never gave it back to him and never paid him for the cost of the domain, he also threatend to sue Owl Shimy and kill his family although it was Unixmad which stole the domain from Owl Shimy, then around Graal1.3.1 he blocked off Gservers officially and threatend to sue anyone that ran the former Gservers, although they were released as "Freeware" and actually used to encourage people to use the Gservers, this was a blatant attempt to monopolise , threaten, and intemidate that players that actually helped graal and supported him, he then made claims he copyrighted "Graal" and would contact so called "Lawres" about anyone that used the name "Graal" or had "Graal Files" on there websites, although graal was distributed as "Freeware" or "Shareware" and had no official software copyrights related to it, and that the name "Graal" was actually the name of a holy sacred golden cup used in some religion, and in that he has commited blasphemy against whatever religion has the so called "Holy Graal", then later on Unixmad fired SuperNick, because of his country and his origion and called him an American Asian slut, this was the first sign of racism on the part of Unixmad, towards Graal1.4.1 Unixmad was secretly unwrapping his sadistic plans, he then started claiming credit and claiming to own the copyrights to graal, although unixmad has done nothing but host some stupid weak as servers, and yet Stefan Knorr has done all the real work for Graal, and was the one to make ZeldaOnline , GraalOnline in the first place and has written every bit of codeing for the Graal Client , Gserver, RC, ect, yet unixmad the worthless pile of trash that he is steals all credit for Graal, then in February 2001, Unixmad and Antago release Graal2001 and the start of the "Pay to Play" system, now i have no problem with the fact that it is pay to play, the issue is when you PAY for something you actually expect to get the worth while of your money in this product, but instead they got a shittily made level generated land that was 99% empty, the NPCs were and are laggy as hell, and there were no quests, and there is only two shitty things today for hearts that suck so much i refuse to even call them quests, and to add to that about 40% of everyone that paid and gave unixmad there credit card number NEVER got the accounts they paid 27$ or more for, and those that did clearly got chumped out by a cheap peice of crap that aint worth paying for, it sucked so badly that most people played on Graal Classic still, even those that foolishly paid for pay to play accounts, and in an attempt to "FORCE" people to pay for a shitty product they do not want against they're will Unixmad hired "Tyhm" to deface and ruin GraalClassic in an attempt to make it buggier and less fun than even Graal2001, about this time i was disgusted with unixmad and most of the other admins and decided to downright turn against Graal and for the most part stop playing the peice of crap in general. People starting getting angry, complaining, asking for help, and asking for refunds, of coarse unixmad gave noone a cash refund, and simply deleted and banned "PAID ACCOUNTS" of those who complained, asked for help, or asked for a refund these are PAYING CUSTOMERS, they have the rights of basic service that they PAID for, unixmad promises pay to play players a quality product and customer service, but instead gives them a grade F product and ripps off his customers and delete they're accounts that they PAID HIM money for, his excuse? Credit card fraud, when infact at least 90% of the people he bans for credit card fraud pay legitamately with there OWN credit cards or pay via paypal by check, and yet Unixmad has stolen and used others credit card numbers to buy things for himself on several occassions, he also claims he needs pay to play money to keep graal alive and running, yet there has been evidence that he makes at least 90% profit out of the monies he gets, and that he uses illegal porn ad banners and illegal cookie style web tracking and giveing email adresses of the players and even phone numbers of every player to spam and telemarketting companies without there permission, he even keeps personal player info, includeing email, adress, and phone number on unsecure servers which have already been leaked out, such info about people should not be on a public webserver accessable to the internet in anyway, then after all that Unixmad starts banning african american people, asians, koreans, and or people with images of people of that race from the Graal2001 forums and graal itself, yet again they are paying customers and this is another sickening act of racism on the part of Unixmad and GraalOnline, and then even more disgusting is what Stefan posts on the Graal2001 forums, he makes several anti american, racist, pro terrorist, pro nazi, and pro taliban comments on that post and goes on and on several pages bashing americans, this post was offense, obcene, and disgusting to many people includeing myself . If all that does not make you sick to your stomache or dislike unixmad yet, i am far from done, then Unixmad proceeds to illegally DDOS webservers of mafukie and make threats to him over the phone, and has phone assaulted me over 40 times a day between midnight and 5am, and has made threats to sue dozens of people, kill there families, and shut down innocent websites and servers, while hosting illegal stuff and doing illegal things himself with the use of his own wanadoo.fr servers, stuff which includes child porn, bestiality porn, DVD Piracy, DDOS Attacks, theft of copyrighted materials from gameing companies such as nintendo, Credit Card fraud, theft, spamming, phone harrassment, useage of illegal pirated corperate softwares, all this just to start the list of what Unixmad, Stefan, and they're servers are doing 24/7 for nearly 4 years now , anyone that likes unixmad or thinks he is a good person even after all this is clearly a fool, everything in this document is the truth and why i hate unixmad so much, if you like unixmad after all these sickening things he does, then you are no better than a KKK or Neo Nazi member and should go kill yourselfs, i do not tolerate facists, racists, or nazis, they are all bad people, and unixmad is one of the worst of the worst, and no person with any morales could tolerate or support such a person like Stephane Portha or Stefan Knorr. The people that spin, lie and bend the truth in support of unixmad will always exist, but i will always reveal the truth about unixmad, and EVERYTHING said in this document is true, despite what any assclowns try and say about this, and this supriseingly enough is only 1% of the bad things Unixmad has done, how some people even tolerate, none the less support such a bad person is beyond me... I fight against bad people like unixmad, why? Because unlike many others in this world i actually care about other people, and i will do everything in my power to stop unixmad from hurting graal or its innocent players, many say i want to destroy and kill graal, this is NOT true, i used to love graal, i only wish to stop unixmad's evil sadistic illegal actions and restore graal to the great game it used to be when it was "for the players, by the players" , but if i have to destroy GraalOnline in exchange to stop unixmad's tyranny, it will be regreteable, but sometimes some sacrifices have to be made for the greater good, lets just hope that unixmad drops dead and that sacrifice never has to be made... I love graal and lots of its players, and i wish to someday restore it to the grandness it once had, but bad people like unixmad must be gotten rid of if that is to be achieved...