|
on=@Targon_item
if <src.targ.distance> > 1
src.sysmessage @0845,1,1 Çok uzaksınız!
return 1
Elseif (<Src.Targ.BaseID> = i_curuk_bitki)
Src.Targ.ID i_curuk_bitki_2
src.anim 30
src.sound 443
Src.Targ.Color 0400
Src.Targ.Update
Src.Targ.Timer {1 5}
LOCAL.CHANCE=<EVAL (<SRC.forensics> / 100) + 1> //Toplayamama oranı= forensics/20.0 + 1 (50.0/20.0 + 1 = 3) (70.0/20.0 + 1 = 4)
IF (<DLOCAL.CHANCE> < 10)
LOCAL.CHANCE=10
ENDIF
IF (<R<DLOCAL.CHANCE>>) && (<src.forensics> < 300))
SERV.NEWITEM random_reagent,{1 35},<SRC>
SRC.SYSMESSAGE @0bb2,,1 Bitkiyi hasat ettiniz.
Src.gainimiverfora
endif
IF (<R<DLOCAL.CHANCE>>) && (<src.forensics> > 299)) -
SERV.NEWITEM random_reagent,{1 35},<SRC>
SERV.NEWITEM random_reagent,{1 35},<SRC>
SRC.SYSMESSAGE @0bb2,,1 Bitkiyi hasat ettiniz.
Src.gainimiverfora
endif
ELSE
SRC.SYSMESSAGE @0bb2,,1 Bitkiyi heba ettiniz.
return 1itemin, seçeneği olarak var sayıyoruz, toparlayalım tek tek;on=@TargOn_Item
if <SRC.DISTANCE <ARGO>> > 1
SRC.SYSMESSAGE @0845,1,1 Çok uzaksınız!Burda 1 kareden daha uzak ise engelledik,ELIF (<ARGO.BASEID> = i_curuk_bitki)
ARGO.ID i_curuk_bitki_2
SRC.ANIM 30
SRC.SOUND 443
ARGO.COLOR 0400
ARGO.UPDATE
ARGO.TIMER {1 5}
LOCAL.CHANCE=<EVAL (<SRC.FORENSICS>/100) + 1>
IF (<dLOCAL.CHANCE> < 1) //Bu ihtimal olmaz ancak eğer 0 ise R de sorun çıkacağından 1 e sabitleyelim;
LOCAL.CHANCE=1
ENDIFBuraya kadar targetlediğimiz eşyayı güncelleyip şansı belirledik. IF (<R<dLOCAL.CHANCE>>)
IF (<SRC.FORENSICS> <= 300) //Skill 30.0 dan düşükse
SERV.NEWITEM random_reagent,{1 35},<SRC>
SRC.SYSMESSAGE @0bb2,,1 Bitkiyi hasat ettiniz.
SRC.GAINIMIVERFORA
ELIF (<SRC.FORENSICS> > 300) //Skill 30.0 dan yüksekse
SERV.NEWITEM random_reagent,{1 35},<SRC>
SERV.NEWITEM random_reagent,{1 35},<SRC>
SRC.SYSMESSAGE @0bb2,,1 Bitkiyi hasat ettiniz.
SRC.GAINIMIVERFORA
ENDIF
ELSE
SRC.SYSMESSAGE @0bb2,,1 Bitkiyi heba ettiniz.
ENDIFBuraya kadar CHANCE değeri ile ne yapacağımızı ayarladık. RETURN 1
ENDIFBurada ilk açtığımı ifi kapatıp, RETURN 1 ile sonradan gelecek SPHERE-BASE işlemleri engelledik, kısaca hepsini alt alta toplarsak;on=@TargOn_Item
if <SRC.DISTANCE <ARGO>> > 1
SRC.SYSMESSAGE @0845,1,1 Çok uzaksınız!
ELIF (<ARGO.BASEID> = i_curuk_bitki)
ARGO.ID i_curuk_bitki_2
SRC.ANIM 30
SRC.SOUND 443
ARGO.COLOR 0400
ARGO.UPDATE
ARGO.TIMER {1 5}
LOCAL.CHANCE=<EVAL (<SRC.FORENSICS>/100) + 1>
IF (<dLOCAL.CHANCE> < 1) //Bu ihtimal olmaz ancak eğer 0 ise R de sorun çıkacağından 1 e sabitleyelim;
LOCAL.CHANCE=1
ENDIF
IF (<R<dLOCAL.CHANCE>>)
IF (<SRC.FORENSICS> <= 300) //Skill 30.0 dan düşükse
SERV.NEWITEM random_reagent,{1 35},<SRC>
SRC.SYSMESSAGE @0bb2,,1 Bitkiyi hasat ettiniz.
SRC.GAINIMIVERFORA
ELIF (<SRC.FORENSICS> > 300) //Skill 30.0 dan yüksekse
SERV.NEWITEM random_reagent,{1 35},<SRC>
SERV.NEWITEM random_reagent,{1 35},<SRC>
SRC.SYSMESSAGE @0bb2,,1 Bitkiyi hasat ettiniz.
SRC.GAINIMIVERFORA
ENDIF
ELSE
SRC.SYSMESSAGE @0bb2,,1 Bitkiyi heba ettiniz.
ENDIF
RETURN 1
ENDIFKodu bu şekilde yaptığımızda sorun vermemesi gerekiyor, onun dışında Gainimiverfora functionunun ne yaptığı hakkında fikrim yok, o nedenle itemi onun içinde veriyorsan çantaya aktarma vb şeyler orda yapılmalı.
athynas :NewItem sorgusunda rand değeri yoktur,
Aşağıdaki sorunu şu şekilde çözdüm
aynı soruna çözüm arayan biri olursa diye bırakıyorum. Not: belirli bir yüzde ile eşyayı nasıl düşüreceğim konusunda hala emin değilim ona çözüm arıyorumMesela şu
'Serv.newitem i_aroma_viski,R2,{1 35},<SRC>' işe yaramıyor
NEWITEM id, amount, cont, triggerEquipEğer rand sorgulanacaksa,IF !(<R2>)
SERV.NEWITEM i_item, {1 35}, <SRC>
ENDIFŞeklinde yapılmalıdır.athynas :Bu tamamen sorgulama yaptığın sıraya bağlıdır,
Şimdi tek kalan şu, tamam skill bazında 2 ihtimal olduğunda (600 altı ve 600 skill üstü) bu sorunsuz şekilde çalışır. Ancak ben bu ihtimalleri 800 üstü 900 üstü yaparsam oyuncu önceki iflerin verdiklerini de toplu olarak almaz mı?
IF (<SKILL> > 30.0)
SYSMESSAGE 1
ELIF (<SKILL> > 50.0)
SYSMESSAGE 2
ELIF (<SKILL> > 75.0)
SYSMESSAGE 3
ELIF (<SKILL> > 90.0)
SYSMESSAGE 4
ENDIFYapar isen eğer, SKILL'in 100.0 olsa dahi, ilk sorgu 30.0 olduğundan ve buna uyduğundna "1" cevabı dönecek, 2, 3, 4, devreye girmeyecektir.IF (<SKILL> > 90.0)
SYSMESSAGE 4
ELIF (<SKILL> > 75.0)
SYSMESSAGE 3
ELIF (<SKILL> > 50.0)
SYSMESSAGE 2
ELSE (<SKILL> > 30.0)
SYSMESSAGE 1
ENDIFEğer böyle yaparsak, skill 90.0 dan büyükse, ilk sorgu 90.0 olduğundna ve uyduğundan "4" olarak dönecektir, diğerleri yine devreye girmeyecektir.IF (<SKILL> > 30.0)
SYSMESSAGE 1
ENDIF
IF (<SKILL> > 50.0)
SYSMESSAGE 2
ENDIF
IF (<SKILL> > 75.0)
SYSMESSAGE 3
ENDIF
IF (<SKILL> > 90.0)
SYSMESSAGE 4
ENDIFBu şekilde her döngüyü ayrı sorgular halinde yaparsan, 90.0 üstündeyse skillin, 1,2,3,4 hepsi dönecektir.IF (<SRC.FORENSICS> >= 90.0)
//90.0 üstü olunca olacaklar...
ELIF (<SRC.FORENSICS> >= 80.0)
//80.0 ile 90.0 arasında iken olacaklar...
ELIF (<SRC.FORENSICS> >= 70.0)
//70.0 ile 80.0 arasında iken olacaklar...
ELIF (<SRC.FORENSICS> >= 60.0)
//60.0 ile 70.0 arasında iken olacaklar..
ELSE
//60.0dan düşükken olacaklar.
ENDIFathynas :
Bununla beraber son olarak bir eşyanın yüzde ihtimalle düşmesini nasıl sağlayabilirim? Mesela rare tohumu ekleyeceğim, 100'de bir ihtimal ile düşsün istiyorum, tamam eşyayı çantayı düşürebiliyorum ancak ihtimal düşüremiyorum.
IF !(<R100>) //100 de 1. 100'de 2 = (<R100> < 2), 100'de 9 = (<R100> < 9)
SERV.NEWITEM i_rare_tohum,1,<SRC>
ENDIF
|
|
| Konu | Kategori | Son cevap | Son yazan | Mesaj | Görüntüleme | |
|---|---|---|---|---|---|---|
|
|
Sphere hata debugg
Son cevap: 04-10 11:12 · Son yazan: venezuela · Mesaj: 2 · Görüntü: 1648
|
Konsol Hataları | 04-10 11:12 | 2 | 1648 | |
|
|
tiledata maximum index hata kodu
Son cevap: 12-11 03:02 · Son yazan: B3LyRsy2 · Mesaj: 9 · Görüntü: 4139
|
Muls ve Mul Editing | 12-11 03:02 | 9 | 4139 | |
|
|
Disconnect süreleri ayarlamak
Son cevap: 26-03 16:49 · Son yazan: stylez · Mesaj: 6 · Görüntü: 2676
|
FUNCTION & EVENTS Script Yardımı | 26-03 16:49 | 6 | 2676 | |
|
|
Poison Field Hata
Son cevap: 26-03 16:02 · Son yazan: Jada · Mesaj: 3 · Görüntü: 1921
|
Script Yardımı | 26-03 16:02 | 3 | 1921 | |
|
|
Büyü ve Ataklı Hata
Son cevap: 13-03 20:20 · Son yazan: stylez · Mesaj: 7 · Görüntü: 3568
|
Script Yardımı | 13-03 20:20 | 7 | 3568 |