SphereCommunity
Healing System - Printable Version

+- SphereCommunity (https://forum.spherecommunity.net)
+-- Forum: Sphere 0.56d (/Forum-Sphere-0-56d)
+--- Forum: Script Submissions (/Forum-Script-Submissions)
+--- Thread: Healing System (/Thread-Healing-System)

Pages: 1 2


Healing System - daedelus - 10-20-2012 05:41 AM

Bandage System, UO Phoenix Style.

If found a bug please tell me. This script was maked for me in 2003 o 2004.



Thanks


RE: My healing System - daedelus - 10-23-2012 10:45 PM

Healing v1.2
-ADDED: If you heal to criminal or PK, you become a criminal.
-ADDED: If you are neutral and heal to chaos or order, you become a criminal.
-Change: Remove F_CHEQUEO_DEX dex is checked by memory object Thanks Lazarus.
-Change: Change function CHANCEDECURAR for one formula.
-ADDED: Bonification by Anatomy

Thanks


RE: Healing System - amonvangrell - 02-17-2014 10:36 AM

Thanks man! I was looking for something like this! Big Grin
I wish you had the scp in English. But I'll translate it.


RE: Healing System - Mordaunt - 02-17-2014 10:39 AM

Please don't drag up posts from over a year ago...


RE: Healing System - scottyb - 11-27-2016 03:59 PM

hey not meaning to drag old posts up from 3 years ago - but why cant i download this?


RE: Healing System - Kanibal - 11-27-2016 10:06 PM

(11-27-2016 03:59 PM)scottyb Wrote:  hey not meaning to drag old posts up from 3 years ago - but why cant i download this?

You need more posts.
Here you are: Healing.scp (Click to View)



RE: Healing System - scottyb - 02-10-2017 10:28 PM

Thx for sharing Smile Maybey the admin can change the requirements? else I will have to spam forums making crap posts


RE: Healing System - Dekadenzia - 04-20-2017 12:26 AM

Why i cant Download?


RE: Healing System - Foodstamp - 05-07-2017 06:16 AM

gain more posts.

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]



RE: Healing System - ralentra - 10-23-2017 05:44 AM

thank you