Joker - 01-08-2010 13:51 GMT -
Silah soket sistemine benzer bir şey yapmaya çalışıyorum. Silahlar şarj edilebilerek random şekilde örneğin parablow vurucak ve şarjından bir düşecek ve silahı kullanan kişinin manası düşecek. Ancak sorunum her vuruşta şarjından 1 düşüyor mana gitmiyor. Script aşağıda;
Silah soket sistemine benzer bir şey yapmaya çalışıyorum. Silahlar şarj edilebilerek random şekilde örneğin parablow vurucak ve şarjından bir düşecek ve silahı kullanan kişinin manası düşecek. Ancak sorunum her vuruşta şarjından 1 düşüyor mana gitmiyor. Script aşağıda;
Kod:
[ITEMDEF i_spear_parablow]
ID=i_spear
TYPE=t_weapon_fence
NAME=Parablow Spear
FLIP=0
WEIGHT=6
SKILL=Fencing
TWOHANDS=Y
REQSTR=50
DAM=8,33
ON=@Create
MOREY=200.0
ATTR=attr_magic
COLOR=0480
HITPOINTS={20 25}
MORE1=100
ON=@Click
MESSAGE <NAME>
MESSAGE [Sarj: <EVAL(<MORE1>)>]
RETURN 1
ON=@DClick
equip
return 1
on=@damage
if (<src.flags>&statf_stone) || (<src.region.safe>) || (<src.isevent.e_delucia>)
return 0
elseif (<src.findlayer(2).type> == t_weapon_fence) && !(<src.findid.i_parablow>)
IF (<MORE1> > 0)
if (<cont.MANA> >= 20)
if (rand(6) == 1)
MORE1=<MORE1>+-1
cont.mana=(<cont.mana>-20)
src.damage {25 35}
src.skill fail
var.act <src.act.uid>
src.newitem i_parablow
src.act.equip
src.act <var.act>
src.sayua 1772,0,0,0 * paradarbe alir *
else
src.damage {3 15}
src.skill fail
endif
else
src.sysmessage Yeterli mana yok silah ozelligini kullanamadiniz.
src.damage {3 15}
src.skill fail
endif
else
src.sysmessage @0,3 Şarjı olmadığından silah özelliği kullanamadınız.
src.damage {3 15}
src.skill fail
endif
[events e_parablow]
On=@GetHit
findid.i_parablow.remove
On=@Death
findid.i_parablow.remove
[itemdef i_parablow]
name=parablow
id=i_gold
type=t_eq_script
weight=0
layer=layer_special
On=@Equip
src.flags <src.flags>|04
src.events +e_parablow
timer 2
On=@UnEquip
cont.events -e_parablow
if !(<cont.flags>&statf_dead)
cont.flags <cont.flags>&~04
endif
On=@Timer
attr attr_decay
remove
return 1
cele35 - 01-08-2010 14:08 GMT -
biraz mantıklı düşünürsek şimdi ON=damage adam için hep src kullanmıssın fakat mana çekmede niye cont kullandın
ama adama event veripde yapabilirsin.
//TheRaskol
Scriptleri code içinde yazınız.
Son güncelleme: TheRaskol tarafından 01-08-2010 14:58 GMT tarihinde, önce.
biraz mantıklı düşünürsek şimdi ON=damage adam için hep src kullanmıssın fakat mana çekmede niye cont kullandın
Kod:
src.MANA=<src.MANA> - 25
ama adama event veripde yapabilirsin.
Kod:
[EVENTS E_xxx]
ON=@HIT
if (<MANA> >= 20)
MANA=<MANA> - 20
else
src.sysmessage Yeterli mana yok silah ozelligini kullanamadiniz.
endif
//TheRaskol
Scriptleri code içinde yazınız.
Son güncelleme: TheRaskol tarafından 01-08-2010 14:58 GMT tarihinde, önce.
Joker - 01-08-2010 14:23 GMT -
cont.mana
itemi kullanan kişiden mana gitsin diye düşünerek denedim.
ayrıca
diğer sorunla alakalı bir fikrin varmı. her vuruşta şarjdan bir eksiliyo. ben ise random vurduğunda yani para darbe aldığında şarjdan 1 eksilmesini istiyorum.
// edit
sorunu büyük ölçüde çözdüm ancak paralyze olması için gerekli olan itemi equip ettiremedim bir türlü scriptin son hali şu şekilde;
Son güncelleme: Jokerx tarafından 01-08-2010 15:57 GMT tarihinde, önce.
cont.mana
itemi kullanan kişiden mana gitsin diye düşünerek denedim.
ayrıca
Kod:
src.mana=<src.mana>-25
de denemiştim o da sonuç vermedi.diğer sorunla alakalı bir fikrin varmı. her vuruşta şarjdan bir eksiliyo. ben ise random vurduğunda yani para darbe aldığında şarjdan 1 eksilmesini istiyorum.
// edit
sorunu büyük ölçüde çözdüm ancak paralyze olması için gerekli olan itemi equip ettiremedim bir türlü scriptin son hali şu şekilde;
Kod:
[ITEMDEF i_spear_parablow]
ID=i_spear
TYPE=t_weapon_fence
NAME=Parablow Spear
FLIP=0
WEIGHT=6
SKILL=Fencing
TWOHANDS=Y
REQSTR=50
DAM=8,33
ON=@Create
MOREY=200.0
ATTR=attr_magic
COLOR=0480
HITPOINTS={20 25}
MORE1=100
ON=@Click
MESSAGE <NAME>
MESSAGE [Sarj: <EVAL(<MORE1>)>]
RETURN 1
ON=@DClick
equip
return 1
on=@damage
if (<src.flags>&statf_stone) || (<src.region.safe>) || (<src.isevent.e_delucia>)
return 0
endif
if !(<src.findid.i_parablow>) && (<MORE1> > 0) && (<cont.MANA> >= 20)
if (rand(3) == 1)
MORE1=<MORE1>+-1
cont.mana=(<cont.mana>-20)
src.damage {25 35}
src.skill fail
var.act <src.act.uid>
src.newitem i_parablow
src.act.equip
src.act <var.act>
src.sayua 1772,0,0,0 * paradarbe alir *
return 1
else
cont.sysmessage @1759,3 Normal vuruş.
src.damage {3 15}
src.skill fail
return 1
endif
else
cont.sysmessage @1759,3 Şarjı yok yada mana yeterli değil.
src.damage {3 15}
src.skill fail
return 1
endif
[events e_parablow]
On=@GetHit
findid.i_parablow.remove
On=@Death
findid.i_parablow.remove
[itemdef i_parablow]
name=parablow
id=i_gold
type=t_eq_script
weight=0
layer=layer_special
On=@Equip
src.flags <src.flags>|04
src.events +e_parablow
timer 3
On=@UnEquip
cont.events -e_parablow
if !(<cont.flags>&statf_dead)
cont.flags <cont.flags>&~04
endif
On=@Timer
attr attr_decay
remove
return 1
Son güncelleme: Jokerx tarafından 01-08-2010 15:57 GMT tarihinde, önce.