merhaba arkadaşlar benim healing scp de bir sorunum var..

bandaja tıkladıktan npc (skeleton ) a tıklıyorum heal basmıyor ama char frozen kalıyor..

npc ye heal basma olayını nasıl yok edebilirim? targeti npc ye tıklayınca npclere bandaj basamassınız desin ve bandaj basma işlemi iptal olsun.
al işi gorur umarım :D



[ITEMDEF 0ee9]
DUPEITEM=0e21

[ITEMDEF 0e22]
DUPEITEM=0e20

[ITEMDEF 0e21]
DEFNAME=i_bandage 
RESOURCES=i_cloth 
TYPE=T_BANDAGE 
WEIGHT=0.2 
DUPELIST=0ee9 
CATEGORY=Items by Professions 
SUBSECTION=Healer 
DESCRIPTION=clean bandages 

On=@DClick
if !(<topobj.uid> == <src.uid>)
	src.sysmessage @38,,1 Hata: Bandajlar cantanizda olmali.
	return 1
elif (<src.findid.i_mem_healing.timer> < 0)
	src.findid.i_mem_healing.remove
	return 0
elif (<src.findid.i_mem_healing>)
	src.sysmessage @38,,1 Hata: Bandajlari su an kullanamazsiniz.
	return 1
else
	return 0
endif

On=@Targon_Char
src.skill fail
if !(<src.restest 1 i_bandage>)
	src.sysmessage @38,,1 Hata: Bandajiniz yok.
	return 1
elif (<src.targ.distance> > 3)
	src.sysmessage @38,,1 Hata: Hedefe ulasamiyorsunuz.
	return 1
elif !(<src.targ.canseelos>)
src.sysmessage @38,,1 Hata : Hedefi goremiyorsunuz.
return 1
elif (<eval <src.p.z>+8> < <src.targ.p.z>) || (<eval <src.p.z>-8> > <src.targ.p.z>)
src.sysmessage @38,,1 Hata : Bu kisinin yukseklik seviyesi sizden daha fazla yada alcak!
return 1
elif (<src.targ.npc> == 10) ||(<src.targ.npc> == 11) || (<src.targ.npc> == 12) || (<src.targ.npc> == 13)
	src.sysmessage @38,,1 Hata: Bunu iyilestiremezsiniz.
	return 1
elif (<src.targ.npc> == 1)
	if (<src.targ.id> == c_m_golem_tinker1) || (<src.targ.id> == c_m_golem_tinker2) || (<src.targ.id> == c_m_golem)
		src.sysmessage @38,,1 Hata: Golem'leri bandajla iyilestiremezsiniz.
	elif !((<src.targ.hits> < <src.targ.str>) || (<src.targ.findid.i_rune_poison>))
		src.sysmessage @38,,1 Hata: <src.targ.name> tedaviye ihtiyac duymuyor.
		return 1
	elif (<src.targ.findid.i_rune_poison>)
		if ((<src.veterinary> < 60.0) || (<src.animallore> < 60.0))
			src.sysmessage @38,,1 Hata: Hayvan uzerindeki zehiri tedavi edecek kadar yetenekli degilsiniz.
			return 1
		endif
	else
		var.nx1 (<src.veterinary> / {20 50})
		var.nx2 (<src.animallore> / 50)
		var.nx3 <eval (<var.nx1> + <var.nx2> + {3 10})>
	endif
	src.sd 1
	src.anim 17
	src.newitem i_mem_healing
	new.morey <eval <var.nx3>>
	new.morex 3
	new.link <src.targ.uid>
	new.equip
	src.face
	return 1
elif (<src.targ.flags>&statf_dead)
	if ((<src.healing> < 80.0) || (<src.anatomy> < 80.0))
		src.sysmessage @38,,1 Hata: Henuz oluleri diriltecek kudrete sahip degilsiniz.
	elif !(<src.restest 5 i_bandage>)
		src.sysmessage @38,,1 Hata: Diriltme islemi icin 5 bandaja ihtiyaciniz var.
	else
		if (<src.targ.kills> > 5)
			src.criminal 1
			src.sayua 048,6,6,0 * <src.targ.name> isimli katili diriltir *
		elif (<src.targ.flags>&statf_criminal)
			src.criminal 1
			src.sayua 048,6,6,0 * <src.targ.name> isimli sucluyu diriltir *
		elif (<src.memoryfindtype.memory_town>) && (<src.targ.memoryfindtype.memory_town>) && (<src.memoryfindtype.memory_town.link> != <src.targ.memoryfindtype.memory_town.link>)
			src.criminal 1
		elif (<src.memoryfindtype.memory_guild.link.align>) && (<src.targ.memoryfindtype.memory_guild.link.align>) && (<src.memoryfindtype.memory_guild.link.align> != <src.targ.memoryfindtype.memory_guild.link.align>)
			src.criminal 1
		endif
		src.sd 2
		src.face
		src.anim 17
		src.consume 5 i_bandage
		src.targ.spelleffect s_resurrection 1000
		src.targ.sayua 048,6,6,0 * <src.name> sayesinde hayata doner *
		//src.checkhealing 2
		//src.checkanatomy 2
	endif
	return 1
elif (<src.targ.memoryfindtype.memory_town>) && !(<src.memoryfindtype.memory_town>)
	src.sysmessage @38,,1 Hata: Faction uyelerini iyilestiremezsiniz.
	return 1
elif (<src.targ.memoryfindtype.memory_guild.link.align> > 0) && !(<src.memoryfindtype.memory_guild.link.align>)
	src.sysmessage @38,,1 Hata: Order/Chaos uyelerini iyilestiremezsiniz.
	return 1
elif !((<src.targ.hits> < <src.targ.str>) || (<src.targ.findid.i_rune_poison>))
	if !(<src.targ.uid> == <src.uid>)
		src.sysmessage @38,,1 Hata: <src.targ.name> tedaviye ihtiyac duymuyor.
	else
		src.sysmessage @38,,1 Hata: Tedaviye ihtiyaciniz yok.
	endif
	return 1
elif (<src.targ.findid.i_rune_poison>)
	if ((<src.healing> < 60.0) || (<src.anatomy> < 60.0))
		src.sysmessage @38,,1 Hata: Zehiri tedavi edecek kadar yetenekli degilsiniz.
		return 1
	endif
elif (<src.targ.findid.i_bleeding>) || (<src.targ.findid.i_bleeding2>)         ///Bleeding
	if ((<src.healing> < 70.0) || (<src.anatomy> < 70.0))
		src.sysmessage @38,,1 Hata: Yarayi tedavi edecek kadar yetenekli degilsiniz.
		return 1
	endif
else
	var.nx1 (<src.healing> / {20 50})
	var.nx2 (<src.anatomy> / 50)
	var.nx3 <eval (<var.nx1> + <var.nx2> + {3 10})>
endif

src.sd 1
src.anim 17
src.newitem i_mem_healing
new.morey <eval <var.nx3>>
if !(<src.targ.uid> == <src.uid>) // heal other
	new.morex 1
	new.link <src.targ.uid>
	src.face
endif
new.equip
return 1

[itemdef i_mem_healing]
ID=i_memory
TYPE=t_eq_script
NAME=healing mem

On=@Create
attr attr_decay|attr_newbie

On=@Equip
src.newitem i_bandajvar
new.equip
src.events +e_healing
timer 3

On=@UnEquip
cont.events -e_healing

On=@Timer
if (<morey>)
	if (<morex> == 3) // veterinary
		if !(<link.hits> < <link.str>) && !(<link.findid.i_rune_poison>)
			cont.sysmessage @38,,1 Hata: <link.name> tedaviye ihtiyac duymuyor.
			remove
			return 1
		elif (<link.findid.i_rune_poison>)
			if (<cont.veterinary> < 60.0) || (<cont.animallore> < 60.0)
				cont.sysmessage @38,,1 Hata: Zehiri tedavi edecek kadar yetenekli degilsiniz.
				remove
				return 1
			endif
		elif (<link.findid.i_bleeding>) || (<link.findid.i_bleeding2>)       ///////Hayvanlarda bleeding
			if (<cont.veterinary> < 70.0) || (<cont.animallore> < 70.0)
				cont.sysmessage @38,,1 Hata: Yarayi tedavi edecek kadar yetenekli degilsiniz.
				remove
				return 1
			endif
		elif !(<cont.restest 1 i_bandage>)
			cont.sysmessage @38,,1 Hata: Bandajiniz yok.
			remove
			return 1
		endif
		cont.consume 1 i_bandage
		if (<link.findid.i_rune_poison>) // cure animal
			if !(rand(5) == 1)
				link.findid.i_rune_poison.remove
				link.effect 3,0376a,2,10,1
				link.sayu * iyilestirilir *
			else
				cont.sayua 020,6,6,0 * <link.name> uzerindeki zehiri iyilestiremez *
			endif
		elif (<link.findid.i_bleeding>) || (<link.findid.i_bleeding2>) //hayvanlarda yara iyilestirme poff :D
			if !(rand(5) == 1)
				link.findid.i_bleeding.remove
				link.findid.i_bleeding2.remove
				link.effect 3,0376a,2,10,1
				link.sayu * yarasi iyilestirilir *
			else
				cont.sayua 020,6,6,0 * <link.name> uzerindeki yarayi iyilestiremez *
			endif
		else // heal animal
			link.hits <eval (<link.hits> + <morey>)>
			link.effect 3,0376a,2,10,1
			if (<link.hits> > <link.str>)
				link.hits <link.str>
			endif
			link.sayu * tedavi gorur *
			link.update
		endif
		cont.checkveterinary
		cont.checkanimallore
		if (<cont.dex> < 35)
			timer 6
		else
			timer 4
		endif
	elif (<morex>) // others
		if !(<link.hits> < <link.str>) && !(<link.findid.i_rune_poison>)
			cont.sysmessage @38,,1 Hata: <link.name> tedaviye ihtiyac duymuyor.
			remove
			return 1
		elif (<link.hits> < 1)
			cont.sysmessage @38,,1 Hata: <link.name> tedavi esnasinda hayatini kaybetti.
			remove
			return 1
		elif (<link.findid.i_rune_poison>)
			if (<cont.healing> < 60.0) || (<cont.anatomy> < 60.0)
				cont.sysmessage @38,,1 Hata: Zehiri tedavi edecek kadar yetenekli degilsiniz.
				remove
				return 1
			endif
		elif !(<cont.restest 1 i_bandage>)
			cont.sysmessage @38,,1 Hata: Bandajiniz yok.
			remove
			return 1
		endif
		cont.consume 1 i_bandage
		if (<link.findid.i_rune_poison>) // cure other
			if !(rand(5) == 1)
				link.findid.i_rune_poison.remove
				link.effect 3,0376a,2,10,1
				if (<link.kills> > 5)
					cont.criminal 1
					cont.sayua 048,6,6,0 * <link.name> isimli katili iyilestirir *
				elif (<link.flags>&statf_criminal)
					cont.criminal 1
					cont.sayua 048,6,6,0 * <link.name> isimli sucluyu iyilestirir *
				else
					link.sayua 048,6,6,0 * <cont.name> tarafindan iyilestirilir *
					if (<link.memoryfindtype.memory_town>) && (<cont.memoryfindtype.memory_town>) && (<cont.memoryfindtype.memory_town.link> != <link.memoryfindtype.memory_town.link>)
						cont.criminal 1
					elif (<link.memoryfindtype.memory_guild.link.align>) && (<cont.memoryfindtype.memory_guild.link.align>) && (<cont.memoryfindtype.memory_guild.link.align> != <link.memoryfindtype.memory_guild.link.align>)
						cont.criminal 1
					endif
				endif
			else
				cont.sayua 020,6,6,0 * <link.name> uzerindeki zehiri iyilestiremez *
			endif
		elif (<link.findid.i_bleeding>) || (<link.findid.i_bleeding2>)//Bleeding 
			if !(rand(5) == 1)
				link.findid.i_bleeding.remove
				link.findid.i_bleeding2.remove
				link.effect 3,0376a,2,10,1
				if (<link.kills> > 5)
					cont.criminal 1
					cont.sayua 048,6,6,0 * <link.name> yarasini iyilestirir.*
				elif (<link.flags>&statf_criminal)
					cont.criminal 1
					cont.sayua 048,6,6,0 * <link.name> isimli suclunun yarasini iyilestirir. *
				else
					link.sayua 048,6,6,0 * <cont.name> tarafindan yarasi iyilestirilir. *
					if (<link.memoryfindtype.memory_town>) && (<cont.memoryfindtype.memory_town>) && (<cont.memoryfindtype.memory_town.link> != <link.memoryfindtype.memory_town.link>)
						cont.criminal 1
					elif (<link.memoryfindtype.memory_guild.link.align>) && (<cont.memoryfindtype.memory_guild.link.align>) && (<cont.memoryfindtype.memory_guild.link.align> != <link.memoryfindtype.memory_guild.link.align>)
						cont.criminal 1
					endif
				endif
			else
				cont.sayua 020,6,6,0 * <link.name> uzerindeki yarayi tedavi edemez *
			endif        ////////////////////////////////////////////////////////////
		else // heal other
			link.hits (<link.hits> + <morey>)
			link.effect 3,0376a,2,10,1
			if (<link.hits> > <link.str>)
				link.hits <link.str>
			endif
			if (<link.kills> > 5)
				cont.criminal 1
				cont.sayua 048,6,6,0 * <link.name> isimli katili tedavi eder *
			elif (<link.flags>&statf_criminal)
				cont.criminal 1
				cont.sayua 048,6,6,0 * <link.name> isimli sucluyu tedavi eder *
			else
				link.sayua 048,6,6,0 * <cont.name> tarafindan tedavi edilir *
				if (<link.memoryfindtype.memory_town>) && (<cont.memoryfindtype.memory_town>) && (<cont.memoryfindtype.memory_town.link> != <link.memoryfindtype.memory_town.link>)
					cont.criminal 1
				elif (<link.memoryfindtype.memory_guild.link.align>) && (<cont.memoryfindtype.memory_guild.link.align>) && (<cont.memoryfindtype.memory_guild.link.align> != <link.memoryfindtype.memory_guild.link.align>)
					cont.criminal 1
				endif
			endif
		endif
		cont.checkhealing 1
		cont.checkanatomy 1
		if (<cont.dex> < 35)
			timer 6
		else
			timer 4
		endif
	else
		if !(<cont.hits> < <cont.str>) && !(<cont.findid.i_rune_poison>)
			cont.sysmessage @38,,1 Hata: Tedaviye ihtiyac duymuyorsunuz.
			remove
			return 1
		elif (<cont.hits> < 1)
			remove
			return 1
		elif (<cont.findid.i_rune_poison>)
			if (<cont.healing> < 60.0) || (<cont.anatomy> < 60.0)
				cont.sysmessage @38,,1 Hata: Zehiri tedavi edecek kadar yetenekli degilsiniz.
				remove
				return 1
			endif 
   		elif !(<cont.restest 1 i_bandage>)
			cont.sysmessage @38,,1 Hata: Bandajiniz yok.
			remove
			return 1
		endif
		cont.consume 1 i_bandage
		if (<cont.findid.i_rune_poison>) // cure self
			if !(rand(5) == 1)
				cont.findid.i_rune_poison.remove
				cont.effect 3,0376a,2,10,1
				cont.sayua 048,6,6,0 * zehir etkisini iyilestirir *
			else
				cont.sayua 020,6,6,0 * zehiri iyilestiremez *
			endif
		elif (<cont.findid.i_bleeding>) || (<cont.findid.i_bleeding2>)/////////Bleeding bana bleed
			if !(rand(5) == 1)
				cont.findid.i_bleeding.remove
				cont.findid.i_bleeding2.remove
				cont.effect 3,0376a,2,10,1
				cont.sayua 048,6,6,0 *yarayi tedavi eder*
			else
				cont.sayua 020,6,6,0  *yarayi tedavi edemez*
			endif
		else // heal self
			cont.hits (<cont.hits> + <morey>)
			cont.effect 3,0376a,2,10,1
			cont.sayua 048,6,6,0 * kendini tedavi eder *
			if (<cont.hits> > <cont.str>)
				cont.hits <cont.str>
			endif
		endif
		cont.checkhealing 1
		cont.checkanatomy 1
		if (<cont.dex> < 35)
			timer 14
		else
			timer 8
		endif
	endif
	morey 0 // memory'yi etkisiz hale getir
	cont.events -e_healing // eventi kaldir artik gerek yok
	return 1
endif
remove
return 1
	
[events e_healing]
On=@GetHit
if (rand(2) == 1)
	sayua 020,6,6,0 * bandajlari yirtilir *
	findid.i_mem_healing.remove
	src.frozenbandaj
endif

On=@Death
findid.i_mem_healing.remove

On=@Logout
findid.i_mem_healing.remove

[function checkhealing]
if (<args> == 1) && (<healing> >= 80.0) && (rand(2) == 1)
	return 0
endif

if ((<skilllock[17]> == 0) && (<skilltotal> < 800.0))
if (<tag0.override.skillcap_17> < 100.1)
if (<healing> < 100.0)
healing (<healing> +1)
else
if (<healing> < <tag0.override.skillcap_17>)
healing (<healing> +1)
endif
endif
endif

[comment asd]
if (<healing> < 30.0)
		if (rand(2) == 1)
			healing (<healing> + 1)
		endif
	elif (<healing> < 50.0)
		if (rand(2) == 1)
			healing (<healing> + 1)
		endif
	elif (<healing> < 75.0)
		if (rand(3) == 1)
			healing (<healing> + 1)
		endif
	elif (<healing> < 100.0)
		if (rand(4) == 1)
			healing (<healing> + 1)
		endif
	endif
endif

[function checkveterinary]
if ((<skilllock[39]> == 0) && (<skilltotal> < 800.0))
if (<tag0.override.skillcap_39> < 100.1)
if (<veterinary> < 100.0)
veterinary (<veterinary> +1)
else
if (<veterinary> < <tag0.override.skillcap_39>)
veterinary (<veterinary> +1)
endif
endif
endif
[comment vet]
	if (<veterinary> < 30.0)
		if (rand(1) == 1)
			veterinary (<veterinary> + 1)
		endif
	elif (<veterinary> < 50.0)
		if (rand(2) == 1)
			veterinary (<veterinary> + 1)
		endif
	elif (<veterinary> < 75.0)
		if (rand(3) == 1)
			veterinary (<veterinary> + 1)
		endif
	elif (<veterinary> < 100.0)
		if (rand(3) == 1)
			veterinary (<veterinary> + 1)
		endif
	endif
endif

[function checkanatomy]
if (<args> == 1) && (<anatomy> >= 80.0) && (rand(3) == 1)
	return 0
endif

if ((<skilllock[1]> == 0) && (<skilltotal> < 800.0))
if (<tag0.override.skillcap_1> < 100.1)
if (<anatomy> < 100.0)
anatomy (<anatomy> +1)
else
if (<anatomy> < <tag0.override.skillcap_1>)
anatomy (<anatomy> +1)
endif
endif
endif
[comment fda]
	if (<anatomy> < 30.0)
		if (rand(1) == 1)
			anatomy (<anatomy> + 1)
		endif
	elif (<anatomy> < 50.0)
		if (rand(2) == 1)
			anatomy (<anatomy> + 1)
		endif
	elif (<anatomy> < 75.0)
		if (rand(3) == 1)
			anatomy (<anatomy> + 1)
		endif
	elif (<anatomy> < 100.0)
		if (rand(4) == 1)
			anatomy (<anatomy> + 1)
		endif
	endif
endif

[function checkanimallore]
if ((<skilllock[2]> == 0) && (<skilltotal> < 800.0))
if (<tag0.override.skillcap_2> < 100.1)
if (<animallore> < 100.0)
animallore (<animallore> +1)
else
if (<animallore> < <tag0.override.skillcap_2>)
animallore (<animallore> +1)
endif
endif
endif

[comment lfgf]
	if (<animallore> < 30.0)
		if (rand(1) == 1)
			animallore (<animallore> + 1)
		endif
	elif (<animallore> < 50.0)
		if (rand(2) == 1)
			animallore (<animallore> + 1)
		endif
	elif (<animallore> < 75.0)
		if (rand(3) == 1)
			animallore (<animallore> + 1)
		endif
	elif (<animallore> < 100.0)
		if (rand(4) == 1)
			animallore (<animallore> + 1)
		endif
	endif
endif

[EOF]
evet oldu arkadaşım fakt başka bir sorun var..

On=@SpellCast
if (<src.isevents.e_healing>)
f_fizzle
src.sysmessage @38,,1 Bandaj Basarken Buyu atamazsiniz.
return 1
endif

fix scp ye bunu ekledim fakat bi türlü olmadı bandaj atınca büyü atıyor ( koşarak atma sorunu yok ama büyü fixlemiyor ) bandaj atma timeri boyunca atılan büyüler fizlese tamam olucak.

Düzenleme : f_fizzle yerine skill fail yazdım düzeldi :D yardımın için teşekkürler

Bu konu muratyavas tarafından düzenlendi(2011-02-15 09:28, 13 yıl önce)
on=@spellcast
if (<src.isevent.e_healing>)
src.f_fizzle
src.sysmessage @38,,1 Bandaj Basarken Buyu atamazsiniz.
return 1
endif

Üye Ol veya Giriş Yap

Bu forum başlığına mesaj atmak istiyorsanız hemen üye olun veya giriş yapın.