Ha sen oyuncunun çantasına mı düşsün istiyorsun? Eğer öyle istiyorsan itemi yarattığın yerin altına NEW.CONT=<PLAYERIN UIDI> şeklinde belirleyeceksin, mesela SRC.NAME playerin adı ise, NEW.CONT=<SRC> gibi, eğer <NAME> playerin adı ise, NEW.CONT=<UID> gibi...
Şimdi biz bunu
Kod:
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 1
itemin, seçeneği olarak var sayıyoruz, toparlayalım tek tek;
Kod:
on=@TargOn_Item
if <SRC.DISTANCE <ARGO>> > 1
SRC.SYSMESSAGE @0845,1,1 Çok uzaksınız!
Burda 1 kareden daha uzak ise engelledik,
Kod:
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
Buraya kadar targetlediğimiz eşyayı güncelleyip şansı belirledik.
Kod:
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
Buraya kadar CHANCE değeri ile ne yapacağımızı ayarladık.
Kod:
RETURN 1
ENDIF
Burada ilk açtığımı ifi kapatıp, RETURN 1 ile sonradan gelecek SPHERE-BASE işlemleri engelledik, kısaca hepsini alt alta toplarsak;
Kod:
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
ENDIF
Kodu 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ı.