[DEFNAME SKINNING_SYSTEM]
skin_c_dragon 400
skin_c_llama 325
[TYPEDEF T_EVENTS_SKINNER]
on=@TargOn_Item // the corpse to be carved
IF (<ARGO.TYPE> == T_CORPSE) && STRMATCH(*WEAPON*,<TYPE>) // if this is a corpse and is being used a sharped weapon
If (<SRC.ISNEARTYPE <argo.type> 2>)
if (<argo.timestamp>)
argo.timestamp=0
if (<EVAL <DEF.SKIN_C_<SERV.CHARDEF.<eval <ARGO.MOREX>+<ARGO.MOREY>>.name.more1>>> >= <src.skinning>)
f_skinning_try
if (<r<EVAL <DEF.SKIN_C_<SERV.CHARDEF.<eval <ARGO.MOREX>+<ARGO.MOREY>>.name.more1>>>> > <src.skinning>) //success
if (<R5> == 1)
f_skinning_success
if (<src.skilltotal> < <src.skillclass.skillsum>)
if (<src.skinning> < <src.skillclass.<serv.skill.skinning.key>>)
if (<r<src.skinning>> <= 10) // gain skill chance
src.skinning += 1
src.sysmessage @0120, Your skill in Skinning has increased by 0.1%. It is now <src.skinning>%
endif
endif
endif
endif
else
f_skinning_fail
endif
elif (<EVAL <DEF.SKIN_C_<SERV.CHARDEF.<eval <ARGO.MOREX>+<ARGO.MOREY>>.name.more1>>> < <src.skinning>)
f_skinning_try
if (<r<EVAL <DEF.SKIN_C_<SERV.CHARDEF.<eval <ARGO.MOREX>+<ARGO.MOREY>>.name.more1>>>> < <src.skinning>/5) //success
f_skinning_success
if (<src.skilltotal> < <src.skillclass.skillsum>)
if (<src.skinning> < <src.skillclass.<serv.skill.skinning.key>>)
if (<r<src.skinning>> <= 10) // gain skill chance
src.skinning += 1
src.sysmessage @0120, Your skill in Skinning has increased by 0.1%. It is now <src.skinning>%
endif
endif
endif
else
f_skinning_fail
endif
else
return 0
ENDIF
elseif (<argo.timestamp>==0)
return 0
endif
else
SRC.SYSMESSAGE You must be near the corpse to carve it.
endif
RETURN 1
ENDIF
on=@userskills
IF (<SERV.SKILL.<ARGN1>.NAME> == Skinning)
src.sysmessage @0120, Your skill in <Serv.skill.<ARGN1>.Name> has changed, it is now <SRC.<ARGN1>>
ENDIF
[FUNCTION f_skinning_success]
REF1 <SRC.TARG>
ARGS=<SERV.CHARDEF.<eval <REF1.MOREX>+<REF1.MOREY>>.RESOURCES>
WHILE !(<isempty <ARGV[<LOCAL._WHILE>]>>)
SERV.NEWITEM <STREAT <ARGV[<LOCAL._WHILE>]>>,<STRARG <ARGV[<LOCAL._WHILE>]>>
NEW.CONT <REF1> //<SRC.TARG>
ENDWHILE
src.sysmessage You have successfully carved the Corpse!
[FUNCTION f_skinning_fail]
REF1 <SRC.TARG>
ARGS = <SERV.CHARDEF.<eval <REF1.MOREX>+<REF1.MOREY>>.RESOURCES>
SERV.NEWITEM <STREAT <ARGV0>>,<STRARG <ARGV0>>
NEW.CONT <REF1>
src.sysmessage You carve the corpse but find nothing usefull.
[FUNCTION f_skinning_try]
REF1 <SRC.TARG>
LOCAL.BLOOD = { i_blood_2 1 i_blood_smear 1 }
SRC.ANIM 11
SERV.NEWITEM <LOCAL.BLOOD>
NEW.ATTR 02
NEW.P <REF1.p>
NEW.TIMER 60
NEW.FIX
SERV.NEWITEM i_blood_pool_large
NEW.P <REF1.p>
NEW.ATTR 02
NEW.TIMER 60*3
NEW.FIX
[EOF]