SphereCommunity
Problem With Sacrificing Corpse Script For EXP - Printable Version

+- SphereCommunity (https://forum.spherecommunity.net)
+-- Forum: Sphere 0.56d (/Forum-Sphere-0-56d)
+--- Forum: Script Help (/Forum-Script-Help)
+--- Thread: Problem With Sacrificing Corpse Script For EXP (/Thread-Problem-With-Sacrificing-Corpse-Script-For-EXP)



Problem With Sacrificing Corpse Script For EXP - Punkte - 12-17-2012 03:49 PM

I have a problem.
I have a function called Autosac for my server.
Calling this command in game causes a 9x9 search to all corpses and sacrifices them (removing and granting reward experience). It's a leveling server.

Problem is that players are able to sacrifice their own corpses and I've had a few players die and accidently do that.
If that isn't enough, the odd thing is that when sacrificing a corpse... It shows an animation of their corpse turning into various other monsters corpses and then eventually dissapearing.

http://pastebin.com/XrRPgxRA


If ANYONE can please add some code to my script to alter it, I'm lost and can't fix it.

All I need is the following:

Players can't sacrifice their own corpses.
Players can sacrifice monster corpses killed by their pets


Any help would be greatly appreciated!


RE: Problem With Sacrificing Corpse Script For EXP - RanXerox - 12-17-2012 04:16 PM

Code:
[FUNCTION autosac]
REF1=<SRC>
IF (<REF1.TAG0.sacstop>==01) || (<isevent.e_event>)
   REF1.SYSMESSAGE You can't Sacrifice Corpses during an Event.
   RETURN 1
ENDIF
FORITEMS 4
   IF (<TYPE> == t_corpse) && (<LINK>==04fffffff) //IF it's an NPC corpse, then continue...
      IF (<REF1.UID>==<MORE2>) //IF it's a corpse that you killed, then continue...
         IF (<AMOUNT>==101) || (<AMOUNT>==241) || (<AMOUNT>==243) || (<AMOUNT>==246)
            //IF it is one of the 4 special cases (Tarasque or Half-Etheral), then just remove the corpse...
            REMOVE
         ELSE //for all other NPC corpses, remove the corpse AND give Tix...
            REMOVE
            LOCAL.TMP=<R10,25> //Amount of Tix to give the player
            REF1.TAG0.TIX=<EVAL <REF1.TAG0.TIX>+<LOCAL.TMP>>
            REF1.SYSMESSAGE @07a1 You have been rewarded <dLOCAL.TMP> Tix for the <NAME> corpse.
         ENDIF
      ELSE
          REF1.SYSMESSAGE @021 You did not kill the <NAME> corpse.
      ENDIF
   ENDIF
ENDFOR



RE: Problem With Sacrificing Corpse Script For EXP - Punkte - 12-17-2012 05:28 PM

Everything works perfectly! Thanks for making the script a lot cleaner too.
+1 Rep For You!