Creation/Dev/Script Functions: Graal 3D: Difference between revisions

From Graal Bible
m (Script Functions: Graal 3D moved to Creation/Dev/Script Functions: Graal 3D)
mNo edit summary
Line 1: Line 1:
<pre>
'''http://www.antiunixmad.com/
Script functions:


Global:
Viper's Graal Issues.
  allplayerscount - integer (read only)
  graalversion - float (read only)
  timevar - integer (read only)
  timevar2 - float (read only)
  worldclockstopped - boolean
  worldhour - integer
  worldminute - float
  worldminutesofday - float
  worldrealsecondsperday - float
  addcontrol(obj)
  addweapon(str)
  aindexof(float, obj) - returns integer
  castray(str, str, int) - returns object
  echo(str)
  extractfilebase(str) - returns string
  extractfileext(str) - returns string
  extractfilename(str) - returns string
  extractfilepath(str) - returns string
  findfirstfile(str) - returns string
  findnextfile(str) - returns string
  findplayer(str) - returns object
  getascii(str) - returns integer
  getboxcenter(str) - returns string
  getdatablocktypes() - returns object
  getdropz(str) - returns float
  getextension(str) - returns string
  getobjectbyray(str, str) - returns object
  getobjectsbyradius(str, float, int) - returns object
  getstringkeys(str) - returns object
  getsurfacetype(float, float) - returns string
  getz(float, float) - returns float
  hasright(str, str) - returns boolean
  isadminguild(str) - returns boolean
  isobject(str) - returns boolean
  lightscene() - returns boolean
  mapshapeanimation(str, str, str, float) - returns boolean
  matrixcreate(str, str) - returns string
  matrixcreatefromeuler(str) - returns string
  matrixmulpoint(str, str) - returns string
  matrixmultiply(str, str) - returns string
  matrixmulvector(str, str) - returns string
  reloadfile(str)
  removeweapon(str)
  savelog(str)
  sendrpgmessage(str)
  setfogcolors(obj)
  setinteriorfocuseddebug(int)
  setinteriorrendermode(int)
  setshadowdetaillevel(float)
  setskybandcolors(obj)
  setskybandsizes(obj)
  setsuncolors(obj)
  setterrainrendermode(int)
  strequals(str, str) - returns boolean
  synctimeofday(float, float)
  updateratings(obj) - returns object
  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


TGraalVar:
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.
  initialized - boolean (read only)
  joinedclasses - object (read only)
  name - string (read only)
  scriptlogmissingfunctions - boolean
  timeout - float
  addarray(obj)
  cancelevents(str)
  catchevent(str, str, str)
  copyfrom(obj)
  getdatablockvars() - returns object
  getdynamicvarnames() - returns object
  geteditvarnames() - returns object
  getfunctions() - returns object
  getstaticvarnames() - returns object
  getvarnames() - returns object
  ignoreevent(str, str)
  ignoreevents(str)
  insertarray(int, obj)
  isinclass(str) - returns float
  join(str)
  leave(str)
  loadfolder(str, int)
  loadlines(str)
  loadstring(str)
  loadvars(str)
  objecttype() - returns string
  savelines(str, int)
  savestring(str, int)
  savevars(str, int)
  scheduleevent(float, str, params...) - returns object
  settimer(float)
  sortascending()
  timershow()
  trigger(str, params...)


  MissionArea (TGraalVar):
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...'''
 
  ShapeBaseHitBox (TGraalVar):
    hitmax - string
    hitmin - string
    nodename - string
 
  ShapeImageState (TGraalVar):
    allowimagechange - boolean
    direction - boolean
    ejectshell - boolean
    emitter - object
    emitternode - string
    emittertime - float
    emittertype - string
    energydrain - float
    fire - boolean
    freezelook - boolean
    ignoreloadedforready - boolean
    loadedflag - string
    name - string
    recoil - string
    script - string
    sequence - string
    sequencerandomflash - boolean
    sound - object
    spinthread - string
    timeoutvalue - float
    transitiononammo - string
    transitiononloaded - string
    transitiononnoammo - string
    transitiononnotarget - string
    transitiononnotloaded - string
    transitiononnotwet - string
    transitionontarget - string
    transitionontimeout - string
    transitionontriggerdown - string
    transitionontriggerup - string
    transitiononwet - string
    waitfortimeout - boolean
 
  SimObject (TGraalVar):
 
    SceneObject (SimObject):
      forwardvector - string
      objectbox - string (read only)
      position - string
      rightvector - string
      rotation - string
      scale - string
      transform - string
      upvector - string
      worldbox - string (read only)
      worldboxcenter - string (read only)
      x - float
      y - float
      z - float
      destroy()
      getforwardvector() - returns string
      getobjectbox() - returns string
      getposition() - returns string
      getrightvector() - returns string
      getscale() - returns string
      gettransform() - returns string
      getupvector() - returns string
      getworldbox() - returns string
      getworldboxcenter() - returns string
      light()
      setforwardvector(str)
      setposition(str)
      setrightvector(str)
      setscale(str)
      settransform(str)
      setupvector(str)
 
      AudioEmitter (SceneObject):
        description - object
        filename - string
        profile - object
 
      FractalTree (SceneObject):
        deffile - string
        levels - integer
        seed - integer
 
      GameBase (SceneObject):
        datablock - object
 
        DynamicShapeReplicator (GameBase):
          boxmax - string
          boxmin - string
          maxgridobjects - integer
          mingridobjects - integer
          radius - integer
          shapefiles - string
          surfacetype - string
 
          DynamicGrass (DynamicShapeReplicator):
 
          DynamicGrassReplicator (DynamicShapeReplicator):
 
        Explosion (GameBase):
          datablock - object
 
        Lightning (GameBase):
          strikesperminute - integer
 
        ParticleEmitter (GameBase):
 
        ParticleEmitterNode (GameBase):
          datablock - object
          emitter - object
 
        PathedInterior (GameBase):
 
        Precipitation (GameBase):
          maxmass - float
          maxspeed - float
          minmass - float
          minspeed - float
          percentage - float
 
        Projectile (GameBase):
          datablock - object
          initialposition - string
          initialvelocity - string
          sourceobject - object
 
        ShapeBase (GameBase):
          chat - string
          datablock - object
          shapenamecolor - string
          applydamage(float)
          applyimpulse(str, str) - returns boolean
          applyrepair(float)
          cancloak() - returns string
          detachallprojectiles()
          detachprojectiles(int)
          getairepairpoint() - returns string
          getcamerafov() - returns float
          getcontrollingclient() - returns object
          getcontrollingobject() - returns object
          getdamageflash() - returns float
          getdamagelevel() - returns float
          getdamagepercent() - returns float
          getdamagestate() - returns string
          getenergylevel() - returns float
          getenergypercent() - returns float
          geteyepoint() - returns string
          geteyetransform() - returns string
          geteyevector() - returns string
          getimageammo(int) - returns boolean
          getimageloaded(int) - returns boolean
          getimageskintag(int) - returns integer
          getimagestate(int) - returns string
          getimagetrigger(int) - returns boolean
          getmountedimage(int) - returns object
          getmountedobject(int) - returns object
          getmountedobjectcount() - returns integer
          getmountedobjectnode(int) - returns integer
          getmountnodeobject(int) - returns object
          getmountslot(str) - returns integer
          getmounttransform(int) - returns string
          getmuzzlepoint(int) - returns string
          getmuzzlevector(int) - returns string
          getobjectmount() - returns object
          getpendingimage(int) - returns object
          getrechargerate() - returns float
          getrepairrate() - returns float
          getshapename() - returns string
          getskinname() - returns string
          getslottransform(int) - returns string
          getthread(int) - returns string
          getthreadposition(int) - returns float
          getvelocity() - returns string
          getwhiteout() - returns float
          hide()
          iscloaked() - returns boolean
          isdestroyed() - returns boolean
          isdisabled() - returns boolean
          isenabled() - returns boolean
          ishidden() - returns boolean
          isimagefiring(int) - returns boolean
          isimagemounted(str) - returns boolean
          islookfrozen() - returns boolean
          ismounted() - returns boolean
          mountimage(str, int) - returns boolean
          mountobject(obj, int) - returns boolean
          pausethread(int) - returns boolean
          playaudio(int, obj) - returns boolean
          playthread(int, str) - returns boolean
          playthreadext(int, str, float, float, float, bool) - returns boolean
          registermelee(str, str, obj, int, str, str) - returns boolean
          setcamerafov(float)
          setcloaked(bool)
          setdamageflash(float)
          setdamagelevel(float)
          setdamagestate(str) - returns boolean
          setdamagevector(str)
          setenergylevel(float)
          sethidden(bool)
          setimageammo(int, bool) - returns boolean
          setimageloaded(int, bool) - returns boolean
          setimagetrigger(int, bool) - returns boolean
          setinvinciblemode(float, float)
          setrechargerate(float)
          setrepairrate(float)
          setshapename(str)
          setskinname(str)
          setthreaddir(int, bool) - returns boolean
          setvelocity(str) - returns boolean
          setwhiteout(float)
          show()
          startfade(float, float, bool)
          stopaudio(int) - returns boolean
          stopthread(int) - returns boolean
          unmount()
          unmountimage(int) - returns boolean
          unmountobject(obj) - returns boolean
          unregistermelee(int) - returns boolean
 
          AdvancedCamera (ShapeBase):
            cameramode - integer
            zoomdistance - float
 
          Camera (ShapeBase):
            setflymode()
            setorbitmode(obj, str, float, float, float, bool)
 
          MissionMarker (ShapeBase):
            datablock - object
 
          PathCamera (ShapeBase):
            datablock - object
 
          Player (ShapeBase):
            animatedbyscript - boolean
            bodyposition - integer
            datablock - object
            speed - float
            swimming - boolean (read only)
            checkdismountpoint(str, str) - returns boolean
            clearcontrolobject()
            getcontrolobject() - returns object
            getdamagelocation(str) - returns string
            getstate() - returns string
            getvictimsbyradius(str, float) - returns object
            setactionthread(str, bool, bool) - returns boolean
            setcontrolobject(obj) - returns boolean
 
            AIPlayer (Player):
              maxturnpitch - float
              maxturnyaw - float
              simplemovement - boolean
              wallcheck - boolean
              clearaim()
              getaimlocation() - returns string
              getaimobject() - returns object
              getmovedestination() - returns string
              ismoving() - returns boolean
              setaimlocation(str)
              setaimobject(obj)
              setmovedestination(str, bool)
              setmovespeed(float)
              stop()
 
          StaticShape (ShapeBase):
            datablock - object
 
          Vehicle (ShapeBase):
            datablock - object
 
            FlyingVehicle (Vehicle):
              datablock - object
 
            HoverVehicle (Vehicle):
              datablock - object
 
            WheeledVehicle (Vehicle):
              datablock - object
              getwheelcount() - returns integer
              setwheelpowered(int, bool) - returns boolean
              setwheelspring(int, obj) - returns boolean
              setwheelsteering(int, float) - returns boolean
              setwheeltire(int, obj) - returns boolean
 
              AIWheeledVehicle (WheeledVehicle):
                getmovedestination() - returns string
                setmovedestination(str, bool)
                setmovespeed(float)
                setmovetolerance(float)
                stop()
 
        SpawnSphere (GameBase):
          indoorweight - float
          outdoorweight - float
          radius - float
          sphereweight - float
 
        Splash (GameBase):
 
        TSStatic (GameBase):
          noshadowlevel - float
          onlyambientlight - boolean
 
          Item (TSStatic):
            datablock - object
            hide()
            show()
            startfade(float, float, bool)
 
        Trigger (GameBase):
          datablock - object
 
        fxLight (GameBase):
          datablock - object
 
      InteriorInstance (SceneObject):
        audioenvironment - object
        audioprofile - object
        interiorfile - string
        showterraininside - boolean
 
      Marker (SceneObject):
 
      Shape3ds (SceneObject):
 
      Sky (SceneObject):
        materiallist - string
        skyfadetime - float
        windvelocity - string
 
      TerrainBlock (SceneObject):
        bumpoffset - float
        bumpscale - float
        bumptexture - string
        detailtexture - string
        squaresize - integer
        terrainfile - string
        zerobumpscale - integer
 
      WaterBlock (SceneObject):
        audioenvironment - object
        density - float
        depthgradient - float
        distortgridscale - float
        distortmag - float
        distorttime - float
        envmapintensity - float
        envmapovertexture - string
        envmapundertexture - string
        flowangle - float
        flowrate - float
        liquidtype - string
        maxalpha - float
        minalpha - float
        removewetedges - boolean
        shoredepth - float
        shoretexture - string
        specularcolor - string
        specularmasktex - string
        specularpower - float
        submergetexture0 - string
        submergetexture1 - string
        surfaceopacity - float
        surfaceparallax - float
        surfacetexture - string
        tessshore - float
        tesssurface - float
        usedepthmask - boolean
        viscosity - float
        wavemagnitude - float
 
      fxFoliageReplicator (SceneObject):
 
      fxGrassReplicator (SceneObject):
 
      fxShapeReplicator (SceneObject):
 
      fxSunLight (SceneObject):
 
      twSurfaceReference (SceneObject):
 
      volumeLight (SceneObject):
 
    SimDataBlock (SimObject):
      isdatablock - boolean (read only)
 
      AudioDescription (SimDataBlock):
 
      AudioProfile (SimDataBlock):
        description - object
        environment - object
 
      DecalData (SimDataBlock):
        lifetime - float
 
      GameBaseData (SimDataBlock):
 
        DebrisData (GameBaseData):
          explosion - object
 
        ExplosionData (GameBaseData):
          debris - object
          particleemitter - object
          soundprofile - object
 
        ItemData (GameBaseData):
 
        LightningData (GameBaseData):
          strikesound - object
 
        ParticleEmitterData (GameBaseData):
          particles - string
 
        ParticleEmitterNodeData (GameBaseData):
 
        PathedInteriorData (GameBaseData):
          startsound - object
          stopsound - object
          sustainsound - object
 
        PrecipitationData (GameBaseData):
          soundprofile - object
 
        ProjectileData (GameBaseData):
          armingdelay - integer
          bounceelasticity - float
          bouncefriction - float
          explosion - object
          fadedelay - integer
          gravitymod - float
          lifetime - integer
          lightradius - float
          muzzlevelocity - float
          particleemitter - object
          velinheritfactor - float
 
        ShapeBaseData (GameBaseData):
          debris - object
          explosion - object
          noshadowlevel - float
          onlyambientlight - boolean
          showhitboxes - boolean
          underwaterexplosion - object
 
          AdvancedCameraData (ShapeBaseData):
 
          CameraData (ShapeBaseData):
 
          MissionMarkerData (ShapeBaseData):
 
          PlayerData (ShapeBaseData):
            decaldata - object
            dustemitter - object
            exitingwater - object
            footbubblessound - object
            foothardsound - object
            footmetalsound - object
            footpuffemitter - object
            footshallowsound - object
            footsnowsound - object
            footsoftsound - object
            footunderwatersound - object
            footwadingsound - object
            impacthardsound - object
            impactmetalsound - object
            impactsnowsound - object
            impactsoftsound - object
            impactwatereasy - object
            impactwaterhard - object
            impactwatermedium - object
            jumpingsound - object
            movingbubblessound - object
            splash - object
            waterbreathsound - object
 
          StaticShapeData (ShapeBaseData):
 
          VehicleData (ShapeBaseData):
            dustemitter - object
            exitingwater - object
            hardimpactsound - object
            impactwatereasy - object
            impactwaterhard - object
            impactwatermedium - object
            softimpactsound - object
            waterwakesound - object
 
            FlyingVehicleData (VehicleData):
              backwardjetemitter - object
              downjetemitter - object
              enginesound - object
              forwardjetemitter - object
              jetsound - object
              trailemitter - object
 
            HoverVehicleData (VehicleData):
              dusttrailemitter - object
              enginesound - object
              floatsound - object
              forwardjetemitter - object
              jetsound - object
 
            WheeledVehicleData (VehicleData):
              enginesound - object
              jetsound - object
              squealsound - object
              tireemitter - object
              wheelimpactsound - object
 
        ShapeBaseImageData (GameBaseData):
          casing - object
          projectile - object
 
        SplashData (GameBaseData):
          explosion - object
          soundprofile - object
 
        TriggerData (GameBaseData):
 
        fxLightData (GameBaseData):
 
      ParticleData (SimDataBlock):
 
      TSShapeConstructor (SimDataBlock):
 
      WheeledVehicleSpring (SimDataBlock):
 
      WheeledVehicleTire (SimDataBlock):
 
    SimGroup (SimObject):
      addcontrol(obj)
 
      GameConnection (SimGroup):
        account - string (read only)
        camera - object (read only)
        cameramode - boolean
        nick - string (read only)
        shape - object (read only)
        weapons - object (read only)
        addweapon(str)
        commandtoclient(str)
        hasright(str, str) - returns boolean
        objecttype() - returns string
        removeweapon(str)
        sendrpgmessage(str)
        synccamera()
        triggerclient(str, str, str)
 
    Sun (SimObject):
 
    Terraformer (SimObject):
      loadgrayscale(int, str) - returns boolean
      loadgreyscale(int, str) - returns boolean
      savegreyscale(int, str) - returns boolean
      setterrain(int) - returns boolean
 
</pre>

Revision as of 16:53, 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...