Silah scriptinin altına ekleme yapmana gerek yok fix scriptin varsa orada @Hit altında şöyle birşey yapabilirsin tüm bonuslar için
Kod:
On=@Hit
IF !(<Src.Flags>&Statf_Stone) || !(<Src.Region.Safe>)
IF (<Wrestling> = 100.0)
IF (Rand(420) <= <Eval (<Anatomy> / 30)>) && !(<Src.Findid.I_Bonus_Frozen.Tag0.Stun>)
IF !(<Findlayer(1)> || <Findlayer(2)>)
Src.Damage {10 15}
Src.Skill Fail
Src.Newitem i_bonus_frozen
Src.Act.Equip
Src.Act.TimerD 25
Src.Act.Tag0.Stun 1
Src.Say @49,,1" * Sersemler *
Return 1
Endif
Endif
Endif
IF (<Findlayer(1).Type> == t_weapon_sword) && (<Swordsmanship> >= 98.0) && !(<Src.Findid.I_KursunYedim>)
IF (Rand(420) <= <Eval (<Tactics> / 30)>)
Src.Damage {1 4}
Src.Hits (<Src.Hits> - 6)
Src.Skill Fail
Src.Newitem I_KursunYedim
Src.Act.Equip
Src.Act.Link=<UID>
Src.Say @49,,1" * Yara alır *
Return 1
Endif
Endif
IF (((<Findlayer(2).Type> == t_weapon_sword) && (<Swordsmanship> >= 98.0)) || ((<Findlayer(2).Type> == T_WEAPON_MACE_STAFF) && (<Macefighting> >= 98.0)) || ((<Findlayer(2).Type> == t_weapon_fence) && (<Fencing> >= 98.0)))
IF (Rand(420) <= <Eval (<Anatomy> / 25)>)
Src.Damage {8 10}
Src.Skill Fail
IF (<Src.Findlayer(Layer_Horse)>)
IF (<Src.Flags>&Statf_War)
Src.Flags <Src.Flags>&~Statf_War
Src.Update
Endif
Src.Say @49,,1" * Binekten düşer *
Src.Dismount
Return 1
Endif
Endif
Endif
IF (<Findlayer(2).Type> == t_weapon_fence) && (<Fencing> >= 98.0)
IF (Rand(420) <= <Eval (<Anatomy> / 15)>) && !(<Src.Findid.I_Bonus_Frozen.Tag0.Parablow>)
Src.Damage {5 8}
Src.Skill Fail
Src.Newitem i_bonus_frozen
Src.Act.Equip
Src.Act.TimerD 25
Src.Act.Tag0.Parablow 1
Src.Say @49,,1" * Paradarbe alır *
Return 1
Endif
Endif
IF ((<Wrestling> > 80.0) || (<Armslore> = 100.0))
IF !(<Findlayer(1)> || <Findlayer(2)>)
IF (Rand(8) == 1)
IF (<Src.Findlayer(1)> || <Src.Findlayer(2)>)
Src.Findlayer(1).UnEquip
IF (<Src.Findlayer(2)>)
Src.Findlayer(2).UnEquip
Endif
Src.Say @07a1,,1" * Silahsızlandırılır *
Endif
Endif
Endif
IF (<Macefighting> = 100.0) && (<Tactics> = 100.0)
IF (<Findlayer(2).ID> == 0df0)
IF (Rand(250) <= <Eval (<Anatomy> / 40)>)
Src.Damage {10 33}
Src.Stam= -<Qval (<Src.Stam> < 20)?<Src.Stam>:20>
Src.Say @49,,1" * Stam Shoot *
Return 1
Endif
Endif
Endif
IF (<Archery> = 100.0) && (<Tactics> = 100.0) && (<Findlayer(2).Type> == T_Weapon_xBow)
IF (Rand(<Qval <Findlayer(Layer_Horse)>?8:6>) == 1)
Src.Skill Fail
Src.Damage {5 8}
IF (<Src.Findlayer(Layer_Horse)>)
Src.Say @49,,1" * Binekten düşer *
Src.Dismount
Return 1
Endif
Endif
Endif
Endif
Ayrıca iki bonus için
Kod:
//////////////////////////////////////////
//////////////// BONUSLAR ////////////////
//////////////////////////////////////////
[Itemdef i_bonus_frozen] /// Parablow --- Stun
Name Frozen
ID=6884
Type=T_Eq_Script
Layer=Layer_Special
On=@Create
Attr=Attr_Decay|Attr_Newbie
On=@Equip
Timer 2
Src.Flags=<Src.Flags>|04
On=@Timer
IF (<Cont.Flags>&Statf_Dead)
Remove
Return 1
Endif
Cont.Flags=<Cont.Flags>&~04
Cont.Say @07a1,,1" * Kendine gelir *
Remove
Return 1
/////////////// YARA //////////////
[Itemdef I_KursunYedim]
Name Alinan Yara
ID=6884
Type T_Eq_Script
Layer=Layer_Special
On=@Equip
Timer 5
On=@Timer
IF (<Cont.Flags>&Statf_Dead)
Remove
Return 1
Endif
IF !(<Tag0.Tekrar>) || (<Tag0.Tekrar> <= 5)
Tag0.Tekrar ++
Cont.Anim 20
Cont.Say @38,,1" * Kan kaybeder *
Cont.Damage {1 4} 0001 <Link.UID>
Cont.Hits (<Cont.Hits> - 5)
Timer 6 // 6 Saniyede bir kan kaybetsin
Return 1
Endif
Cont.Say @07a1,,1" * Yarası kapanır *
Remove
Return 1
Bu arada scripti yazarken yukarda arkadaşında belirtmiş olduğu gibi IF sayısı kadar EndIF olmak zorunda eğer örnek;
Kod:
IF
asdasd
Endif
Örnek2
IF
asdasd
ElseIF
asdasd
Endif
Örnek3
IF
IF
asdasd
Endif
Endif
Yalnız başına yazdığın her IF için bir EndIF kullanmak zorundasın ama IF'den sonra ElseIF ile devam ediyorsan yada Else, bu sefer tek EndIF yeter