SphereCommunity
Error in a script. Help! - Printable Version

+- SphereCommunity (https://forum.spherecommunity.net)
+-- Forum: Sphere 0.56d (/Forum-Sphere-0-56d)
+--- Forum: Script Help (/Forum-Script-Help)
+--- Thread: Error in a script. Help! (/Thread-Error-in-a-script-Help)

Pages: 1 2


RE: Error in a script. Help! - Skul - 07-10-2012 10:59 AM

Well you can, you'll have to redo the actual @hit idea, and return 1 to halt default processing. an example (but not fully functional):
Code:
on=@hit
src.flags |= statf_freeze
src.hitpoints -= <argn1>
src.update
return 1 //stop the actual hit

this idea is not fool proof since the war_flags stored as memory objects on the player will not flow through (because of the halt). You can code this in with some design, but it is not completely flawless.
Code:
[function hasfightmemory]
if (<ischar>)
if (<uid.<argn1>.ischar>)
  if (<memoryfindtype.01.link>==<argn1>) || (<memoryfindtype.04.link>==<argn1>) || (<memoryfindtype.08.link>==<argn1>) || (<memoryfindtype.010.link>==<argn1>) || (<memoryfindtype.020.link>==<argn1>) || (<memoryfindtype.080.link>==<argn1>) || (<memoryfindtype.02000.link>==<argn1>)
   local.return 1
  endif
endif
endif
return <dlocal.return>

with that function you should be able to 'mimic' a combat memory object with thisSmile:
Code:
on=@hit
if !(<src.hasfightmemory <uid>>)
serv.newitem=i_memory
new.link=<src.uid>
new.name=<src.name>
new.color=01|04|010 //memories lol
src.equip=<new.uid>
endif
src.flags |= statf_freeze
src.hitpoints -= <argn1>
src.update
return 1 //stop the actual hit

oh, and the timerf to f_unpara.