if (rand(125) <= <eval (<tactics> / 40)>)

burda ne demek istiyor yani arkadaş Rand(5)=1 dedi peki taktik 100 olunca

rand(125)=25 dir

25 <= 2.5

peki bu durumda devreye girmemesi gerekiyor bonusun nasıl bir mantıkır kide devreye giriyor yeni bir bonus yapıyorum randı neye göre belirlleyecem bir yardım ederseniz sevinirim :)
bişi anlamadım ama parantezleri kaldır ordaki gerekiz.Biraz daha açarsan yardımcı olabilirim
msn varmı ordan daha kolay anlaşabiliriz :)
rand(125) 1 ile 125 arasında rastgele sayı seçer. <tactics>/40 = 25 yapar 100.0 skill için.

rand(125) <= 25 dediğimizde tuttuğumuz sayı 25e küçük veya eşitse demektir.
	elif (<findlayer(2).type> == t_weapon_mace_staff) && (<macefighting> >= 98.0)
		if (rand(330) == <eval <tactics>/40>)
			if (<src.stam> > 25)
				if (<src.stam> > <eval <src.dex>/2>)
				src.stam -={20 30}
				src.skill fail
				src.damage {5 7}
				src.say @022 * Nefesi Kesilir *
				return 1
				endif
			else
			src.stam -={8 12}
			src.skill fail
			src.damage {5 7}
			src.say * Nefesi Kesilir *
			return 1
			endif
		endif
	elif (<findlayer(2).type> == t_weapon_xbow) && (<archery> >= 98.0) && (<armslore> >= 98.0)
      		if (rand(250) <= <eval (<tactics> / 40)>)
			if (<src.hits> > <eval <src.str>-25>)
			src.hits -={40 45}
			src.skill fail
			src.damage {5 8}
			src.say @022 * Hizli Ok Darbesi Alir *
			return 1
			endif
		endif
	elif (<findlayer(2).dispid> == i_bardiche) || (<findlayer(2).dispid> == i_halberd)
		if (<swordsmanship> >= 98.0)
			if (rand(600) <= <eval (<tactics> / 40)>)
				if (<src.findlayer(5).type> == t_armor)
					if (<src.findlayer(5).hitpoints> > 15)
					src.findlayer(5).hitpoints -=15
					emoter Zirha Hasar Verir
					src.emoter Zirh Hasar Alir
					src.skill fail
					else
					src.findlayer(5).remove
					src.say @022 * Zirhi Kirilir *
					endif
				endif
			endif
		endif
	endif

peki bunlarda ne sorun var??? anlayamadım :(
if (rand(330) == <eval <tactics>/40>)
1 ile 330 arasında tutulan sayının 25e eşit olması düşük bir ihtimal belki o yüzden denk gelmemiştir
sorun şu her vuruşta 13-15 civarı stam indiriyor 20-30 arasıda diil :S ve konuşmayıda söylemiyor.

	elif (<findlayer(2).type> == t_weapon_mace_staff) && (<macefighting> >= 98.0)
		if (rand(250) == <eval <tactics>/40>)
		src.stam -={20 25}
		src.stamkontrol
		src.skill fail
		src.damage {5 7}
		src.say @022,,1 * Nefesi Kesilir *
		return 1
		endif
	elif (<findlayer(2).type> == t_weapon_xbow) && (<archery> >= 98.0) && (<armslore> >= 98.0)
      		if (rand(250) <= <eval (<tactics> / 40)>)
			if (<src.hits> > <eval <src.str>-25>)
			src.hits -={40 45}
			src.skill fail
			src.damage {5 8}
			src.say @022 * Hizli Ok Darbesi Alir *
			return 1
			endif
		endif
	elif (<findlayer(2).dispid> == i_bardiche) || (<findlayer(2).dispid> == i_halberd)
		if (<swordsmanship> >= 98.0)
			if (rand(600) <= <eval (<tactics> / 40)>)
				if (<src.findlayer(5).type> == t_armor)
					if (<src.findlayer(5).hitpoints> > 15)
					src.findlayer(5).hitpoints -=15
					src.say @022 * Zirh Hasar Alir *
					src.skill fail
					else
					src.findlayer(5).remove
					src.say @022 * Zirhi Kirilir *
					endif
				endif
			endif
		endif
	endif
başka bir kod daha olabilir stam düşüren. genelde on=@damage altında oluyor kontrol et
fix eventinin tamamını kendim yazdım On=@Damage komutu kullanmadım hiçbir yerde :)
silah scriptlerinde oluyor genelde. .stamkontrol komutunu da kontrol et başka açıklaması yok gibi
[Function stamkontrol]
if (<src.stam> < 0)
src.stam 0
endif

silah scpmi bi kontrol edem :)

typelerde

//On=@Damage
//if (<src.act.macefighting> >= 80.0)
//src.dropstam 12
//endif

kısmını kaldırdım umarım olur :)
başka bir scriptten kaynaklanıyor 13-15 stam emmesi büyük ihtimal
üstte yazdım :)
elif (<findlayer(2).type> == t_weapon_mace_staff) && (<macefighting> >= 98.0)
if (rand(250) <= <eval <tactics>/40>)
src.stam -={20 25}
src.stamkontrol
src.skill fail
src.damage {5 7}
src.say @022,,1 * Nefesi Kesilir *
return 1
endif
elif (<findlayer(2).type> == t_weapon_xbow) && (<archery> >= 98.0) && (<armslore> >= 98.0)
      if (rand(250) <= <eval (<tactics> / 40)>)
if (<src.hits> > <eval <src.str>-25>)
src.hits -={40 45}
src.skill fail
src.damage {5 8}
src.say @022 * Hizli Ok Darbesi Alir *
return 1
endif
endif
elif (<findlayer(2).dispid> == i_bardiche) || (<findlayer(2).dispid> == i_halberd)
if (<swordsmanship> >= 98.0)
if (rand(600) <= <eval (<tactics> / 40)>)
if (<src.findlayer(5).type> == t_armor)
if (<src.findlayer(5).hitpoints> > 15)
src.findlayer(5).hitpoints -=15
src.say @022 * Zirh Hasar Alir *
src.skill fail
else
src.findlayer(5).remove
src.say @022 * Zirhi Kirilir *
endif
endif
endif
endif
endif

bu şekilde yaparsan çalışacaktır
yanlış anlama ne farkı var fark bulamadımda o yüzden sordum söylersen sevinirim :)



Üye Ol veya Giriş Yap

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