Code:
//DON'T DELETE THIS HEADER
//CREATED BY DAEDELUS, SPECIAL THANKS TO .NIGHTRAIN
[ITEMDEF 0e21]
DEFNAME=i_bandage
TYPE=t_normal
RESOURCES=i_cloth
WEIGHT=0.2
DUPELIST=0ee9
CATEGORY=Items by Professions
SUBSECTION=Healer
DESCRIPTION=Vendas
ON=@Dclick
IF <CONT.UID>!=<SRC.FINDLAYER(21).UID>
SRC.SYSMESSAGE Debes tenerlas en tu pack para usarlas!
RETURN 1
ELIF (<SRC.STAM> < 2)
SRC.SMSG No tienes suficiente estamina!
RETURN 1
else
TARGET A quien deseas curar?
RETURN 1
endif
ON=@Targon_char
IF (<SRC.FINDID.i_mem_healing.UID>)
SRC.SYSMESSAGE Aun no puedes curar nuevamente.
RETURN 1
ENDIF
IF (<SRC.TARG.DISTANCE> > 2)
SRC.MESSAGE *Tratas de curar a <SRC.TARG.NAME>*
SRC.SYSMESSAGE Esta demasiado lejos!
SRC.TARG.SYSMESSAGE *<SRC.NAME> intenta curarte pero estas demasiado lejos.*
RETURN 1
ENDIF
IF (<SRC.TARG.FLAGS>&statf_dead) && !(<SRC.TARG.ISPLAYER>)
SRC.SYSMESSAGE Solo puedes revivir humanos.
RETURN 1
ENDIF
IF (<SRC.HITS> < 41) && ((<SRC.TARG.ID>==c_ghost_woman) || (<SRC.TARG.ID>==c_ghost_man))
SRC.MESSAGE *Fallas al resucitar*
SRC.SYSMESSAGE No tienes suficiente vida como para resucitar.
SRC.TARG.SYSMESSAGE <SRC.NAME> falla al resucitarte.
RETURN 1
ENDIF
IF (<SRC.TARG.FLAGS>&statf_dead) && !(<SRC.RESTEST 25 i_bandage>) && (<SRC.HEALING> < 89.9) && (<SRC.ANATOMY> < 90.0)
SRC.MESSAGE *Fallas al resucitar*
SRC.SYSMESSAGE No tienes vendas, no tienes suficiente healing, o simplemente has fallado!
SRC.TARG.SYSMESSAGE <SRC.NAME> falla al resucitarte.
RETURN 1
ENDIF
// Codigo para resucitar empieza aca...
IF (<SRC.TARG.FLAGS>&statf_dead)
IF (<SRC.HEALING> >= 900) && (<SRC.ANATOMY> >= 900)
SRC.TAG0.HEALINGRESULT = <QVAL (!<EVAL RAND(4)>)?1:0>
ELIF ((<SRC.HEALING> < 1000) && (<SRC.HEALING> >= 950)) && (<SRC.ANATOMY> < 950)
SRC.TAG0.HEALINGRESULT = <QVAL (!<EVAL RAND(2)>)?1:0>
ELIF (<SRC.HEALING> == 1000) && (<SRC.ANATOMY> == 1000)
SRC.TAG0.HEALINGRESULT = <QVAL (!<EVAL RAND(1)>)?1:0>
ELSE
SRC.SYSMESSAGE No tienes vendas, no tienes suficiente healing, o simplemente has fallado!
RETURN 1
ENDIF
IF !<CHANCESDECURAR>
SRC.SYSMESSAGE has resucitado a <SRC.TARG.NAME>!
SRC.TARG.MESSAGE <SRC.NAME> te ha resucitado!
SRC.ANIM 19
// Lo resucito
ARGO.RESURRECT
SRC.NEWITEM i_mem_healing
SRC.ACT.EQUIP
RETURN 1
SRC.TARG.CONSUME 1 i_deathshroud
// Elimino 25 vendas y agrego 25 con sangre
SRC.CONSUME 25 i_bandage
SRC.NEWITEM i_bandage_bloody
SRC.ACT.AMOUNT 25
SRC.ACT.BOUNCE
SRC.STAM = <SRC.STAM> / 2)
ELSE
// Fallo al resucitar
SRC.SYSMESSAGE Fallas al resucitar a <SRC.TARG.NAME>!
SRC.TARG.SYSMESSAGE <SRC.NAME> falla al resucitarte!
// Elimino 25 vendas
SRC.CONSUME 25 i_bandage
SRC.STAM = <SRC.STAM> / 2)
ENDIF
SRC.HITS = (<SRC.HITS> / 2)
ENDIF
// Codigo para resucitar termina aca.
IF (<SRC.TARG.HITS> >= <SRC.TARG.STR>)
SRC.SYSMESSAGE No <QVAL (<SRC.TARG.SERIAL> != <SRC.SERIAL>)?esta:estas> lastimado!
RETURN 1
ENDIF
IF !<CHANCESDECURAR>
SRC.TAG.HEALINGRESULT 1
ELSE
SRC.TAG.HEALINGRESULT 0
ENDIF
IF (<SRC.HEALING> <= 330)
SRC.TAG.HEALINGSWITCH 0
ELIF ((<SRC.HEALING> <= 400) && (<SRC.HEALING> > 330))
SRC.TAG.HEALINGSWITCH 1
ELIF ((<SRC.HEALING> <= 500) && (<SRC.HEALING> > 400))
SRC.TAG.HEALINGSWITCH 2
ELIF ((<SRC.HEALING> <= 600) && (<SRC.HEALING> > 500))
SRC.TAG.HEALINGSWITCH 3
ELIF ((<SRC.HEALING> <= 700) && (<SRC.HEALING> > 600))
SRC.TAG.HEALINGSWITCH 4
ELIF ((<SRC.HEALING> <= 800) && (<SRC.HEALING> > 700))
SRC.TAG.HEALINGSWITCH 5
ELIF ((<SRC.HEALING> <= 900) && (<SRC.HEALING> > 800))
SRC.TAG.HEALINGSWITCH 6
ELIF ((<SRC.HEALING> <= 990) && (<SRC.HEALING> > 900))
SRC.TAG.HEALINGSWITCH 7
ELIF (<SRC.HEALING> <= 999) && (<SRC.HEALING> > 990))
SRC.TAG.HEALINGSWITCH 8
ELIF (<SRC.HEALING> >= 100)
SRC.TAG.HEALINGSWITCH 9
ENDIF
IF (<SRC.TAG.HEALINGRESULT>)
DOSWITCH <SRC.TAG.HEALINGSWITCH>
// 0- Menos de 33 de heal
BEGIN
SRC.TARG.HITS = <SRC.TARG.HITS> + <eval (((<SRC.HEALING>/2)/20) + ((<SRC.ANATOMY>/30)/4))>
SRC.SKILLGAIN HEALING 1
SRC.MESSAGE <QVAL (<SRC.TARG.SERIAL> != <SRC.SERIAL>)?Lo:Te> curas pobremente.
SRC.SYSMESSAGE <QVAL (<SRC.TARG.SERIAL> != <SRC.SERIAL>)?<SRC.NAME> me cura pobremente.>
END
// 1- Entre 33 y 40 de heal
BEGIN
SRC.TARG.HITS = <SRC.TARG.HITS> + <eval (((<SRC.HEALING>/2)/20) + ((<SRC.ANATOMY>/30)/4))>
SRC.SKILLGAIN HEALING 1
SRC.MESSAGE <QVAL (<SRC.TARG.SERIAL> != <SRC.SERIAL>)?Lo:Te> curas bien.
SRC.SYSMESSAGE <QVAL (<SRC.TARG.SERIAL> != <SRC.SERIAL>)?<SRC.NAME> me cura bien.>
END
// 2- Entre 40 y 50 de heal
BEGIN
SRC.TARG.HITS = <SRC.TARG.HITS> + <eval (((<SRC.HEALING>/2)/20) + ((<SRC.ANATOMY>/30)/4))>
SRC.SKILLGAIN HEALING 1
SRC.MESSAGE <QVAL (<SRC.TARG.SERIAL> != <SRC.SERIAL>)?Lo:Te> curas bien.
SRC.SYSMESSAGE <QVAL (<SRC.TARG.SERIAL> != <SRC.SERIAL>)?<SRC.NAME> me cura bien.>
END
// 3- Entre 50 y 60 de heal
BEGIN
SRC.TARG.HITS = <SRC.TARG.HITS> + <eval (((<SRC.HEALING>/2)/20) + ((<SRC.ANATOMY>/30)/4))>
SRC.SKILLGAIN HEALING 1
SRC.MESSAGE <QVAL (<SRC.TARG.SERIAL> != <SRC.SERIAL>)?Lo:Te> curas muy bien.
SRC.TARG.SYSMESSAGE <QVAL (<SRC.TARG.SERIAL> != <SRC.SERIAL>)?<SRC.NAME> me cura muy bien.>
END
// 4- Entre 60 y 70 de heal
BEGIN
SRC.TARG.HITS = <SRC.TARG.HITS> + <eval (((<SRC.HEALING>/2)/20) + ((<SRC.ANATOMY>/30)/4)))>
SRC.SKILLGAIN HEALING 1
SRC.MESSAGE <QVAL (<SRC.TARG.SERIAL> != <SRC.SERIAL>)?Lo:Te> curas muy bien.
SRC.TARG.SYSMESSAGE <QVAL (<SRC.TARG.SERIAL> != <SRC.SERIAL>)?<SRC.NAME> me cura muy bien.>
END
// 5- Entre 70 y 80 de heal
BEGIN
SRC.TARG.HITS = <SRC.TARG.HITS> + <eval (((<SRC.HEALING>/2)/20) + ((<SRC.ANATOMY>/30)/4)))>
SRC.SKILLGAIN HEALING 1
SRC.MESSAGE <QVAL (<SRC.TARG.SERIAL> != <SRC.SERIAL>)?Lo:Te> curas muy bien.
SRC.TARG.SYSMESSAGE <QVAL (<SRC.TARG.SERIAL> != <SRC.SERIAL>)?<SRC.NAME> me cura muy bien.>
END
// 6- Entre 80 y 90 de heal
BEGIN
SRC.TARG.HITS = <SRC.TARG.HITS> + <eval (((<SRC.HEALING>/2)/20) + ((<SRC.ANATOMY>/30)/4)))>
SRC.SKILLGAIN HEALING 1
SRC.MESSAGE <QVAL (<SRC.TARG.SERIAL> != <SRC.SERIAL>)?Lo:Te> curas perfectamente.
SRC.TARG.SYSMESSAGE <QVAL (<SRC.TARG.SERIAL> != <SRC.SERIAL>)?<SRC.NAME> me cura perfectamente.>
END
// 7- Entre 90 y 99 de heal
BEGIN
SRC.TARG.HITS = <SRC.TARG.HITS> + <eval (((<SRC.HEALING>/2)/20) + ((<SRC.ANATOMY>/30)/4)))>
SRC.SKILLGAIN HEALING 1
SRC.MESSAGE <QVAL (<SRC.TARG.SERIAL> != <SRC.SERIAL>)?Lo:Te> curas perfectamente.
SRC.TARG.SYSMESSAGE <QVAL (<SRC.TARG.SERIAL> != <SRC.SERIAL>)?<SRC.NAME> me cura perfectamente.>
END
// 8- Entre 99 y 100 de heal
BEGIN
SRC.TARG.HITS = <SRC.TARG.HITS> + <eval (((<SRC.HEALING>/2)/20) + ((<SRC.ANATOMY>/30)/4)))>
SRC.SKILLGAIN HEALING 1
SRC.MESSAGE <QVAL (<SRC.TARG.SERIAL> != <SRC.SERIAL>)?Lo:Te> curas como un experto.
SRC.TARG.SYSMESSAGE <QVAL (<SRC.TARG.SERIAL> != <SRC.SERIAL>)?<SRC.NAME> me cura como un experto.>
END
// 9- 100 para arriba?
BEGIN
SRC.TARG.HITS = <SRC.TARG.HITS> + <eval (((<SRC.HEALING>/2)/20) + ((<SRC.ANATOMY>/30)/4)))>
SRC.SKILLGAIN HEALING 1
SRC.MESSAGE <QVAL (<SRC.TARG.SERIAL> != <SRC.SERIAL>)?Lo:Te> curas como un experto.
SRC.TARG.SYSMESSAGE <QVAL (<SRC.TARG.SERIAL> != <SRC.SERIAL>)?<SRC.NAME> me cura como un experto.>
END
ENDDO
// Fin
// Elimino una venda y agrego una con sangre
SRC.CONSUME 1 i_bandage
SRC.NEWITEM i_bandage_bloody
SRC.ACT.BOUNCE
// Agrego item de memoria
SRC.NEWITEM i_mem_healing
SRC.ACT.EQUIP
// Fallo...
ELSE
// Elimino una venda
SRC.MESSAGE Oh no! Has fallado!!!
SRC.CONSUME 1 i_bandage
ENDIF
IF (<SRC.TARG.HITS> > <SRC.TARG.STR>)
SRC.TARG.HITS = <SRC.TARG.STR>
ENDIF
RETURN 1
// La Memory del objeto
[ITEMDEF I_MEM_HEAL_BANDAGE]
ID=i_memory
TYPE=t_eq_script
NAME=Healing
ON=@CREATE
IF (<src.dex> >= 101)
TIMER=((220 - <src.dex> ) / 24)
SRC.ANIM=19
SRC.SOUND 80
ELSE
TIMER=((201 - <src.dex>) / 20) ////
SRC.ANIM=19
SRC.SOUND 80
ENDIF
//Si curas a un criminal o a un PK, te haces criminal.
IF <SRC.TARG> == (<SRC>) //ESTO ES PARA QUE SI TE CURAS A VOS MISMO, NO TE APLIQUE LA CONDICION. DEJALO ASI
ELSE
IF (<SRC.TARG.FLAGS>&statf_criminal) || (<SRC.TARG.KILLS> >= 3 ) || (<SRC.TARG.KARMA> <= -4000 )
SRC.CRIMINAL = 1
SRC.UPDATE
SRC.SYSMESSAGE Criminal!
SRC.SYSMESSAGE @07d1 Has curado a un bandido!, ahora eres un criminal!
RETURN 1
ENDIF
ENDIF
//Si sos neutral y curas a un faccionado, te haces criminal.
IF <SRC.TARG> == (<SRC>) //ESTO ES PARA QUE SI TE CURAS A VOS MISMO, NO TE APLIQUE LA CONDICION. DEJALO ASI
ELSE
IF (<UID.<SRC.GUILD>.ALIGN> != <UID.<SRC.TARG.GUILD>.ALIGN>) && (<UID.<SRC.TARG.GUILD>.ALIGN>!=0)
SRC.CRIMINAL = 1
SRC.UPDATE
SRC.SYSMESSAGE @07d1 Has curado a un faccionado!, no debes interferir!.
ENDIF
ENDIF
ON=@Timer
REMOVE
RETURN 1
[ITEMDEF 0ee9]
//clean bandages
DUPEITEM=0e21
//El Random para Curarse
[FUNCTION CHANCESDECURAR]
IF (<EVAL RAND(100)> > (<EVAL <SRC.HEALING> / 14>) + 10 )
RETURN 1
ENDIF
[EoF]