|
[itemdef i_deniz_ticaret_1]
id i_deed
name Balik kontrati
weight 1
on=@create
color 57
on=@click
message @1153,,1 [ Deniz ticaret belgesi ]
message @1996,,1 Pişmiş balık kontratı
message @043,,1 <eval <tag0.pbalik>> Pişmiş balık
return 1
on=@DClick
if (<tag0.pbalik> == 5)
src.sysmessage @1153,,1 Kontrat dolu! Lütfen deed'i istenen vendora teslim ediniz.
src.dialog d_belge_doldu
return 1
endif
src.sysmessage @1996,,1 Pişmiş balıklar nerede?
target
return 1
on=@targon_item
if (<tag0.pbalik> == 5)
src.sysmessage @1153,,1 Kontrat dolu! Lütfen deed'i istenen vendora teslim ediniz.
src.dialog d_belge_doldu
return 1
endif
if (<src.targ.baseid> == i_fish_cut_cooked)
src.targ.remove
tag0.pbalik ++ <<>> Bilmiyorum ama amount koymadığım için olabilir.
src.sysmessage @1996,,1 Pişirilen balıklar ticaret belgenize eklenmiştir..
return 1
else
src.sysmessage @021,,1 Sadece pişirilen balıklar bu kontrata atılabilir!
return 1
endifBurada bir hata var, ben 2 3 veya 10 pişmiş balık eklersem kontrata gene + 1 balık ekleniyor 
on=@targon_item
if (<src.targ.baseid> == i_deniz_ticaret_1) && (<tag0.pbalik> == 5)
src.sysmessage @1153,,1 Dolu balık kontratını teslim ettiğiniz için çantanıza 500 K çek düşmüştür, iyi oyunlar..
src.findid.i_deniz_ticaret_1.remove
src.newitem i_gold == 65000 // Örnek
src.act.bounce
return 1
else
if (<src.targ.baseid> == i_deniz_ticaret_2) && (<tag0.dbalik> == 5)
src.sysmessage @1153,,1 Dolu balık kontratını teslim ettiğiniz için çantanıza 500 K çek düşmüştür, iyi oyunlar..
src.findid.i_deniz_ticaret_2.remove
src.newitem i_gold == 65000 // Örnek
src.act.bounce
return 1
else
src.sysmessage @021,,1 Sadece dolu balık kontratlarını seçebilirsin <src.name>!
return 1
endif
ON=@TARGON_CHAR
src.sysmessage @021,,1 Sadece Balık ticaret kontratını seç!
return 1Mesela şöyle denemiştim ilk başta:[EVENTS e_pbalik]
tag.pbalik 0
src.targ.removeBirinci olarak burada sorun şu ki, 5 balık alan bir kontrata 10 balık eklemeye çalışsan 10'unu da siliyor, yani direkt olarak itemi silmek yerine önce miktarı hesaplayıp eğer itemin miktarı fazlaysa amountu azaltmak gerekir.tag0.pbalik ++ <<>> Bilmiyorum ama amount koymadığım için olabilir.Burada tahmin ettiğin gibi sorun amount girmemen, ++ demek +1 demektir yani +=1, yani sen kontratın balık miktarını miktara göre değil ne olursa olsun 1 arttır diye ayarlamışsın. Yine üstteki ile aynı sebepten kaynaklı olarak öncelikle tıklanan balık miktarını alıp, pbalık tagına ekleyip, çıkan değer eğer maksimum alacağı miktardan fazla ise, aradaki farkı hesaplayıp, balıktan alınacak kısımdan bu miktar çıkarılıp geri kalan değer -amount yapılıp kontrata ise tag0.pbalık += miktar şeklinde tanımlanmalı. if (<src.targ.baseid> == i_deniz_ticaret_1) && (<tag0.pbalik> == 5)
if (<src.targ.baseid> == i_deniz_ticaret_2) && (<tag0.dbalik> == 5)Bu ikisinde de sorun sabit, "ticaret kağıdının" uidi "I" yani <UID> değil, yani tag0.dbalık yaparak hesaplatamazsın, bu durumda SRC.TARG.TAG0.pbalik şeklinde olmalıydı. Diğer yandan i_deniz_ticaret_2 deki tagın adı pbalik değil dbalik yazılmış, hatalı mı öyle mi incelemedim.
bu şekilde[itemdef i_deniz_ticaret_1]
id i_deed
name Balik kontrati
weight 1
on=@create
color 57
on=@click
message @1153,,1 [ Deniz ticaret belgesi ]
message @1996,,1 Pişmiş balık kontratı
message @043,,1 <eval <tag0.pbalik>> Pişmiş balık
return 1
on=@DClick
if (<tag0.pbalik> == 5)
src.sysmessage @1153,,1 Kontrat dolu! Lütfen deed'i istenen vendora teslim ediniz.
src.dialog d_belge_doldu
return 1
endif
src.sysmessage @1996,,1 Pişmiş balıklar nerede?
target
return 1
on=@targon_item
REF1=<uid>
if (<tag0.pbalik> == 5)
src.sysmessage @1153,,1 Kontrat dolu! Lütfen deed'i istenen vendora teslim ediniz.
src.dialog d_belge_doldu
return 1
endif
if (<src.targ.baseid> == i_fish_cut_cooked)
src.consume 1 i_fish_cut_cooked
REF1.tag0.pbalik +=1 // Bilmiyorum ama amount koymadığım için olabilir.
target
src.sysmessage @1996,,1 Pişirilen balıklar ticaret belgenize eklenmiştir..
return 1
else
src.sysmessage @021,,1 Sadece pişirilen balıklar bu kontrata atılabilir!
return 1
endif

on=@click
message @1153,,1 [ Deniz ticaret belgesi ]
message @1996,,1 Pişmiş balık kontratı
message @043,,1 <eval <tag0.pbalik>> Pişmiş balık
return 1
on=@DClick
if !(<cont> == <src.findlayer.21.uid>)
src.sysmessage @021,,1 Bunu kullanabilmeniz için çantanızda olması gerekmektedir.
return 1
endif
if (<tag0.pbalik> == 5) <<>>Burada kontrat 5 balık ise çift tıklamayı engelledim zaten ama target önemli
src.sysmessage @1153,,1 Kontrat dolu! Lütfen deed'i istenen vendora teslim ediniz.
src.dialog d_belge_doldu
return 1
endif
src.sysmessage @1996,,1 Pişmiş balıklar nerede?
target
return 1
on=@targon_item
if (<src.targ.baseid> == i_fish_cut_cooked)
src.targ.remove
tag0.pbalik += <src.targ.amount>
src.sysmessage @1996,,1 Pişirilen balıklar ticaret belgenize eklenmiştir..
return 1
else
src.sysmessage @021,,1 Sadece pişirilen balıklar bu kontrata atılabilir!
return 1
endifIşte burada dediğim gibi, kontrata 5'den fazla eklemesinmanyaqq :Şimdi şöyle açıklayayım, atıyorum ki 10 balık var ve kontratta 1 balık var, sen ise kontratta maksimum 5 balık olmasını istiyorsun, bu durumda yapman gereken nedir, 10 balıktan 4 ünü alıp kontrata eklemek, işte bunu sağlamak içinse
Hocam çok teşekkür ederim ama dediğin gibi atıyorum elinde 8 balık varsa kontrata hepsini ekliyor, 5 balık eklemesini ve -amount kısmını anlamadım
Yani anlatmak istediğim -amount'u tanımlamadım..
Evet dediğin gibi olmalı ama ben -amount nasıl eklerim, bir bilgim yok..
On=@TargOn_Item
IF (<tag0.pbalik> == 5)
src.sysmessage @1153,,1 Kontrat dolu! Lütfen deed'i istenen vendora teslim ediniz.
src.dialog d_belge_doldu
ELIF (<src.targ.baseid> == i_fish_cut_cooked)
//Burada SRC.TARG.REMOVE yapmamız doğru değil çünkü eklenecek balık miktarı, stack sayısından az olabilir.
LOCAL.MAX = <EVAL 5 - <dTAG0.pbalik>> //Burada kontratın maksimum 5 balık alacağını ve bu 5 balıktan kontratta bulunan balık sayısını çıkarttık.
IF (<SRC.TARG.AMOUNT> > <dLOCAL.MAX>) //Eğer stacktaki balık sayısı kontrata eklenecekten fazla ise;
SRC.TARG.AMOUNT -= <dLOCAL.MAX> //Stacktaki balık sayısını eklenebilecek maksimum değer kadar azalt.
ELSE //Eğer stacktaki balık sayısı kontrata eklenecekten az veya eşit ise;
LOCAL.MAX = <SRC.TARG.AMOUNT> //Maksimum balık miktarını stack sayısı ile eşitle.
SRC.TARG.REMOVE //Balıkları sil.
ENDIF
tag0.pbalik += <dLOCAL.MAX> //Belirlenen maksimum değer kadar balık ekle.
src.sysmessage @1996,,1 Pişirilen <dLOCAL.MAX> balık ticaret belgenize eklenmiştir..
ELSE
src.sysmessage @021,,1 Sadece pişirilen balıklar bu kontrata atılabilir!
ENDIF
RETURN 1
[FUNCTION ADD_BALIK]
IF !(<SRC.RESCOUNT I_FISH_CUT_COOKED>) /// bu sorguyuda yapalimda adamlar bug yapmasın.
SRC.SYSMESSAGE @33,1,1 Pişmiş balıklar çantanızda olmalı
RETURN 1
ENDIF
SRC.SYSMESSAGE @07a1,1,1 <Src.rescount i_fish_cut_cooked> Adet Balik Eklediniz
LOCAL.ADET=<Src.rescount i_fish_cut_cooked>
WHILE <LOCAL.ADET>
IF (<LOCAL.ADET> >= 5)
SERV.NEWITEM i_deniz_ticaret_1
NEW.TAG0.PBALIK =5
SRC.CONSUME 5 i_fish_cut_cooked
LOCAL.ADET -= 5
ELSE
SERV.NEWITEM i_deniz_ticaret_1
NEW.TAG0.PBALIK =<LOCAL.ADET>
SRC.CONSUME <LOCAL.ADET> i_fish_cut_cooked
LOCAL.AMOUNT=0
ENDIF
IF (0<ARGN2>)
NEW.CONT <ARGN2>
ELSE
BOUNCE <NEW>
ENDIF
ENDWHILE
[itemdef i_deniz_ticaret_1]
id i_deed
name Balik kontrati
weight 1
on=@create
color 57
on=@click
message @1153,,1 [ Deniz ticaret belgesi ]
message @1996,,1 Pişmiş balık kontratı
message @043,,1 <eval <tag0.pbalik>> Pişmiş balık
return 1
on=@DClick
if (<tag0.pbalik> == 5)
src.sysmessage @1153,,1 Kontrat dolu! Lütfen deed'i istenen vendora teslim ediniz.
src.dialog d_belge_doldu
return 1
endif
src.sysmessage @1996,,1 Pişmiş balıklar nerede?
target
return 1
on=@targon_item
REF1=<uid>
if (<tag0.pbalik> == 5)
src.sysmessage @1153,,1 Kontrat dolu! Lütfen deed'i istenen vendora teslim ediniz.
src.dialog d_belge_doldu
return 1
endif
if (<src.targ.baseid> == i_fish_cut_cooked) && (<SRC.RESCOUNT I_FISH_CUT_COOKED>)
REF1.REMOVE
src.add_balik
src.sysmessage @1996,,1 Pişirilen balıklar ticaret belgenize eklenmiştir..
return 1
else
src.sysmessage @021,,1 Sadece pişirilen balıklar bu kontrata atılabilir!
return 1
endif
|
|
| Konu | Kategori | Son cevap | Son yazan | Mesaj | Görüntüleme | |
|---|---|---|---|---|---|---|
|
|
Stack sorunu
Son cevap: 17-06 01:00 · Son yazan: Athynas · Mesaj: 18 · Görüntü: 6404
|
Konsol Hataları | 17-06 01:00 | 18 | 6404 | |
|
|
Safe alanda lag sorunu
Son cevap: 07-12 00:26 · Son yazan: Eren19944 · Mesaj: 8 · Görüntü: 3380
|
Konsol Hataları | 07-12 00:26 | 8 | 3380 | |
|
|
Binek çanta açma sorunu
Son cevap: 16-10 11:40 · Son yazan: Skandal · Mesaj: 4 · Görüntü: 2809
|
NPC Script Yardımı | 16-10 11:40 | 4 | 2809 | |
|
|
Ev duvarları ve deed sorunu
Son cevap: 12-08 20:07 · Son yazan: Eren19944 · Mesaj: 5 · Görüntü: 2792
|
Script Yardımı | 12-08 20:07 | 5 | 2792 | |
|
|
Client ekranı büyütme sorunu
Son cevap: 29-09 20:21 · Son yazan: worldofsosaria · Mesaj: 8 · Görüntü: 5645
|
Client ve Account Sistemleri | 29-09 20:21 | 8 | 5645 |