|
moongate_gototown=0 //Bu eğer 1 ise moongate lere değil şehirlere gider.
moongate_useguild=1 //Moongatelerden guilde geçiş olsun mu? (1=Evet 0=Hayır)
moongate_usestaffplaces=1 //Staff alanları olsun mu?
moongate_staffplaces=star_chamber,green_acres_3 4
moongate_regions=britain,moonglow,minoc_vesper,trinsic,skara_brae,yew,jhelom,magincia
moongate_towns=britain,moonglow,minoc,vesper,trinsic,skarabrae,yew,jhelom,magincia //Regionlar (a_townİsim_1) formatında olmalıdır.Şimdi sizlere öncelikle defname kullanmayı öğretmek istiyorum çünkü bütün ayarlar dialogdan değil! buradan yapılıyor.[Itemdef i_moongate]
Defname=i_moongate_v7
ID=i_moongate_red
Name=moongate
On=@Dclick
if (<distance> < 3) && (<canseelos>)
sdialog d_moongate_v7
else
src.sysmessage You can't reach that.
endifDialog;[Dialog d_moongate_v7]
0,0
nomove
PAGE 1
LOCAL.TBN=<eval (<f_moonsep 0,<qval <ddef.moongate_gototown>?<def.moongate_towns>:<def.moongate_regions>>> * 20) + 90>
if (<ddef.moongate_useguild>) && (<src.memoryfindtype.memory_guild>)
LOCAL.TBN +=40
if (<ddef.moongate_usestaffplaces>) && (<dsrc.account.plevel> > 1)
LOCAL.TBN +=20
endif
elif (<ddef.moongate_usestaffplaces>) && (<dsrc.account.plevel> > 1)
LOCAL.TBN +=40
endif
TBH 50,50,200,<DLOCAL.TBN>,<serv.servname> Moongate
obj = <src.memoryfindtype.memory_guild.link.uid>
LOCAL.TBG=<f_moonsep 0,<qval <ddef.moongate_gototown>?<def.moongate_towns>:<def.moongate_regions>>>
if (<ddef.moongate_useguild>) && (<src.memoryfindtype.memory_guild>)
button 70 <EVAL (<DLOCAL.TBG>*20)+140> 55 56 1 0 100
dhtmlgump 88 <EVAL (<DLOCAL.TBG>*20)+140> 124 20 0 0 <obj.name>
if (<ddef.moongate_usestaffplaces>) && (<dsrc.account.plevel> > 1)
Button 70 <EVAL (<DLOCAL.TBG>*20)+160> 55 56 0 2
dhtmlgump 88 <EVAL (<DLOCAL.TBG>*20)+160> 124 20 0 0 Staff Places
endif
elif (<ddef.moongate_usestaffplaces>) && (<dsrc.account.plevel> > 1)
button 70 <EVAL (<DLOCAL.TBG>*20)+140> 55 56 0 2
dhtmlgump 88 <EVAL (<DLOCAL.TBG>*20)+140> 124 20 0 0 Staff Places
endif
For 1 <f_moonsep 0,<qval <ddef.moongate_gototown>?<def.moongate_towns>:<def.moongate_regions>>>
if !<ddef.moongate_gototown>
dhtmlgump 88 <EVAL (<DLOCAL._FOR>*20)+100> 124 20 0 0 <strreverse <strsub 9 30 <strreverse <serv.area.a_<strarg <f_moonsep <DLOCAL._FOR>,<def.moongate_regions>>>_moongate_1.name>>>>
else
dhtmlgump 88 <EVAL (<DLOCAL._FOR>*20)+100> 124 20 0 0 <serv.area.a_town<strarg <f_moonsep <DLOCAL._FOR>,<def.moongate_towns>>>.name>
endif
Button 70 <EVAL (<DLOCAL._FOR>*20)+100> 55 56 1 0 <DLOCAL._FOR>
Endfor
PAGE 2
TBH 50,50,200,<eval (<f_moonsep 0,<def.moongate_staffplaces>>*20)+90>,<serv.servname> Staff Places
For 1 <f_moonsep 0,<def.moongate_staffplaces>>
dhtmlgump 88 <EVAL (<DLOCAL._FOR>*20)+100> 124 20 0 0 <serv.area.a_<strarg <f_moonsep <DLOCAL._FOR>,<def.moongate_staffplaces>>>_1.name>
button 70 <EVAL (<DLOCAL._FOR>*20)+100> 55 56 1 0 <eval 200+<DLOCAL._FOR>>
Endfor
[Dialog d_moongate_v7 BUTTON]
ON=1 90
LOCAL.MOONEVENT=<streat <streat <f_moonsep <dargn>,<qval <ddef.moongate_gototown>?<DEF.moongate_towns>:<DEF.moongate_regions>>>>>
if (<distance> > 2) || !(<canseelos>)
src.sysmessage You can't reach that.
elif (<src.flags>&statf_poisoned)
src.fix Üzerinizde zehir varken bunu kullanamazsınız.
elif (<src.hits> < <src.maxhits>) //MHITS özelliği.
src.fix Yaralıyken bunu kullanamazsınız.
elif (<eval <strarg <streat <f_moonsep <dargn>,<qval <ddef.moongate_gototown>?<DEF.moongate_towns>:<DEF.moongate_regions>>>>>> == 1) && !(<src.ismurderer>) && (<dsrc.account.plevel> < 2)
src.fix Buraya maviler giremez.
elif (<eval <strarg <streat <f_moonsep <dargn>,<qval <ddef.moongate_gototown>?<DEF.moongate_towns>:<DEF.moongate_regions>>>>>> == 2) && (<src.ismurderer>) && (<dsrc.account.plevel> < 2)
src.fix Buraya pklar giremez.
elif (<eval <strarg <streat <f_moonsep <dargn>,<qval <ddef.moongate_gototown>?<DEF.moongate_towns>:<DEF.moongate_regions>>>>>> == 3) && !(<src.iscriminal>) && (<dsrc.account.plevel> < 2)
src.fix Buraya maviler ve pklar giremez.
elif (<dsrc.isevent.<LOCAL.MOONEVENT>>)
src.fix Buraya girmeye yetkiniz yok.
elif (<src.action> == id(skill_magery)) || (<src.action> == skill_magery)
src.skill fail
src.fix Büyü kullanırken buradan geçemezsiniz. //Hadi şimdide geç gatetende markla (:
elif !(strmatch('<src.region.name>', '<qval <ddef.moongate_gototown>?<serv.area.a_town<strarg <f_moonsep <DARGN>,<DEF.moongate_towns>>>.name>:<serv.area.a_<strarg <f_moonsep <DARGN>,<DEF.moongate_regions>>>_moongate_1.name>>'))
src.go <qval <ddef.moongate_gototown>?<serv.area.a_town<strarg <f_moonsep <DARGN>,<DEF.moongate_towns>>>.p>:<serv.area.a_<strarg <f_moonsep <DARGN>,<DEF.moongate_regions>>>_moongate_1.p>>
endif
return 1
On=100
if <distance> > 2
src.sysmessage You can't reach that.
elif (<src.action> == id(skill_magery)) || (<src.action> == skill_magery)
src.skill fail
else
src.go <src.memoryfindtype.memory_guild.link.p>
endif
return 1
On=200 250
if <distance> > 2
src.sysmessage You can't reach that.
elif <dsrc.account.plevel> < <streat <f_moonsep <eval <dargn>-200>,<def.moongate_staffplaces>>>
src.fix Buraya girmeye yetkiniz yok.
elif (<src.action> == id(skill_magery)) || (<src.action> == skill_magery)
src.skill fail
else
src.go <serv.area.a_<f_moonsep <eval <dargn>-200>,<def.moongate_staffplaces>>_1.p>
src.f_fizzle
endif
return 1Gerekli functionlar;[Function TBH]
resizepic <argv[0]> <argv[1]> 5054 <argv[2]> <eval <argv[3]>+20>
resizepic <eval <argv[0]>+10> <eval <argv[1]>+10> 3000 <eval <argv[2]>-20> <argv[3]>
dhtmlgump <eval <argv[0]>+10> <eval <argv[1]> + <argv[3]> - 15> <eval <argv[2]> - 20> 20 0 0 <def.center><def.bfont_blue><serv.url>
dhtmlgump <eval <argv[0]>+25> <eval <argv[1]>+25> <eval <argv[2]>-50> 20 0 0 <def.center><def.bfont_red><argv[4]>
[function f_moonsep]
if <argv[0]> == 0
return <eval <argv> - 1>
else
return <argv[<argv[0]>]>
endifDeneyenler eğer hata bulurlarsa buradan yazarlarsa sevinirim.
şimdiden özür diliyorum direk ilgimi çekti 




xwerswoodx :Fix'inle ilgili sıkıntı yok yahu sonuna kadar kullan.Ama dialog kısmı yaklaşık 40+ satır tutmuş.dtext ve button ile yapsaydın ancak bu kadar olabilirdi zaten.Defname ihtiyacında ortadan kalkardı boşuna for döngüsü yaparak client cpu kullanma oranını anlıkta olsa yükseltmezdin.
Peki kardeşim seni mi kırıcam
Bu arada sorduğun için söyleyim, bu kadar fix önemli neden dersen, sunucuların sorunlarının çoğunda sorun moongatedeki buglar yüzünden çıkıyor.
Mortal :Evet uzunluk konusunda katılıyorum sana ama şöyle düşün dtext ile button u defnameden kontrol edemezsin kendine eklemen ve dialog uzunluğunuda ayarlaman gerekir ayrıca onda staff ve guild butonlarını gizlersen dialog uzunluğu gereğinden fazla gözükür buda göz kirliliği demek.xwerswoodx :Fix'inle ilgili sıkıntı yok yahu sonuna kadar kullan.Ama dialog kısmı yaklaşık 40+ satır tutmuş.dtext ve button ile yapsaydın ancak bu kadar olabilirdi zaten.Defname ihtiyacında ortadan kalkardı boşuna for döngüsü yaparak client cpu kullanma oranını anlıkta olsa yükseltmezdin.
Peki kardeşim seni mi kırıcam
Bu arada sorduğun için söyleyim, bu kadar fix önemli neden dersen, sunucuların sorunlarının çoğunda sorun moongatedeki buglar yüzünden çıkıyor.
Bu arada dialog açılır açılmaz 5-10 saniye içinde otomatik olarak kapanma olayını ekleyebilirsin.
|
|
| Konu | Kategori | Son cevap | Son yazan | Mesaj | Görüntüleme | |
|---|---|---|---|---|---|---|
|
|
Heal Player Versus Player
Son cevap: 10-03 14:14 · Son yazan: sadeceoyuncu1 · Mesaj: 10 · Görüntü: 1098
|
Server Reklam, Tartışma | 10-03 14:14 | 10 | 1098 | |
|
|
Tracking Sistemi NPC ve Player Görmüyor
Son cevap: 08-03 00:39 · Son yazan: RasmuS · Mesaj: 2 · Görüntü: 1995
|
Script Yardımı | 08-03 00:39 | 2 | 1995 | |
|
|
MaxBaseSkill/ New player
Son cevap: 30-01 15:35 · Son yazan: Nioble · Mesaj: 13 · Görüntü: 4694
|
Script Yardımı | 30-01 15:35 | 13 | 4694 | |
|
|
Player Vendor Item Fiyat Koyma
Son cevap: 29-12 23:48 · Son yazan: Alone · Mesaj: 3 · Görüntü: 2048
|
FUNCTION & EVENTS Script Yardımı | 29-12 23:48 | 3 | 2048 | |
|
|
Player baslangıc noktası
Son cevap: 07-12 18:39 · Son yazan: hiphop2 · Mesaj: 3 · Görüntü: 2233
|
FUNCTION & EVENTS Script Yardımı | 07-12 18:39 | 3 | 2233 |