Merhabalar..
Ilk önce gördüğüm kadarıyla oyuncuya bir eşya verip sorgulatıyorsunuz..
Eşya oyuncudan bağımsız çalışır ve bunun için " src " ifadesini kullanamazsınız..
Bunun yerine " cont " ifadesi kullanılır..
if !(<src.targ.baseid> = i_katana_ruin)
src.targ.remove
src.newitem i_katana_might
src.act.bounce
src.sysmessage @045 magical <src.targ.name> yapmayi basardiniz.
return 1
Kodlama yanlış ve sadece 1 katana için 5 sorgu yaptırırsanız..
Kodlamanın toplam satırı biraz yüksek olur..
Buyur upgrade script'in ;
[plevel 1]
upgrade
[function upgrade]
serv.newitem i_upgrade
new.equip <uid>
src.sysmessage @58,,1 Degerini yukseltmek istediginiz silahi seciniz..
return 1
[ITEMDEF i_upgrade]
ID=i_memory
TYPE=t_eq_script
NAME=Upgrade
ON=@Create
attr attr_decay
On=@equip
target
On=@targon_item
if (<cont.targ.morey> == 0) && (<cont.targ.isweapon>)
cont.targ.morey 200
cont.sysmessage @58,,1 a <cont.targ.name>'nin degeri +3 oldu..
return 1
elseif (<cont.targ.morey> == 200) && (<cont.targ.isweapon>)
cont.targ.morey 400
cont.sysmessage @58,,1 a <cont.targ.name>'nin degeri +6 oldu..
return 1
elseif (<cont.targ.morey> == 400) && (<cont.targ.isweapon>)
cont.targ.morey 600
cont.sysmessage @58,,1 a <cont.targ.name>'nin degeri +9 oldu..
return 1
elseif (<cont.targ.morey> == 600) && (<cont.targ.isweapon>)
cont.targ.morey 800
cont.sysmessage @58,,1 a <cont.targ.name>'nin degeri +12 oldu..
return 1
elseif (<cont.targ.morey> == 800) && (<cont.targ.isweapon>)
cont.targ.morey 1000
cont.sysmessage @58,,1 a <cont.targ.name>'nin degeri +15 oldu..
return 1
elseif (<cont.targ.morey> == 1000) && (<cont.targ.isweapon>)
cont.sysmessage @38,,1 Silahin degerini daha fazla yukseltemezsiniz..
return 1
else
src.sysmessage @38,,1 Sadece silahlari upgrade edebilirsiniz..
endif
remove
return 1
Bu script'te silahlarin morey değerleriyle oynuyoruz..
Burada değeri yükseldi yazsa bile tek tıkladığında normal bir silah gibi gözükecektir..
Bundan dolayı fix script'inde " on=@itemclick " trigger'inin altına şunu eklersin..
if (<act.morey> == 0) && (<act.isweapon>)
act.message @1153 a <src.targ.name>
return 1
elseif (<act.morey> == 200) && (<act.isweapon>)
act.message @1153 [+3]
act.message @1153 a <src.targ.name>
return 1
elseif (<act.morey> == 400) && (<act.isweapon>)
act.message @1153 [+6]
act.message @1153 a <src.targ.name>
return 1
elseif (<act.morey> == 600) && (<act.isweapon>)
act.message @1153 [+9]
act.message @1153 a <src.targ.name>
return 1
elseif (<act.morey> == 800) && (<act.isweapon>)
act.message @1153 [+12]
act.message @1153 a <src.targ.name>
return 1
elseif (<act.morey> == 1000) && (<act.isweapon>)
act.message @1153 [+15]
act.message @1153 a <src.targ.name>
return 1
endif
Script'i deneme yapmadan yazdım hata varsa lütfen söylersin..
Not : Upgrade ederken şuanlık bir karşılık talep etmez..
Bu konu HP-Nexiel tarafından düzenlendi(2008-05-17 11:45, 16 yıl önce)