UO-Dev Arama

 



İçerde : 1 misafir, 0 üye : --- Sayfalar: 1
Yazar

Athynas


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 118
Oyun Tarzı: Pp
Emulatör:
Tecrübe: World Builder
Yaş: 32
Mesaj #96140   13-08-2018 15:30 GMT    
        
Merhaba, şimdi kısaca şöyle özetleyeyim; bir telepad yerleştirdim. Bu telepad üzerine gelen adam event alıyor. Bu eventın yanında memory giyiyor ve bu memorydeki timer ile her 5 saniyede bir çantasına belirlediğim random ore düşüyor. Şimdi benim istediğim eline aldığı balta ya da kazmaya göre çantasına ore ya da log düşmesi. Elinde kazma ya da balta olup olmadığını nasıl sorgulatabilirim? Tahmin ediyorum ki yine memorydeki on=@timer altında sorgulatarak ona göre ore ya da log vermesini veya eşya yok uyarısını verdirtmem gerekiyor. Ancak bunu nasıl yapabilirim?

Daha anlaşılır olmak ve özet geçmek babında; "eldeki eşyayı nasıl kontrol edebilirim?

*Tamam buldum, findlayer ile yapıyormuşuz


Son güncelleme: athynas tarafından 13-08-2018 17:27 GMT, 403 Gün önce düzenlendi.



Yazar

xwerswoodx


Sphere Destek
Skill Title: Master
Online durumu
Toplam Mesaj: 1750
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 10
Mesaj #96141   13-08-2018 17:30 GMT    
        
Elindeki kazmayı findlayer ile sorgulayabilirsin, tam olarak kazma 1 mi yoksa 2. layere mi geliyordu hatırlamıyorum. Ancak .info dan layer bölümüne bakabilirsin.

Sonrasında, oyuncuyu ne olarak çekiyorsan, SRC ise
Kod:
if <SRC.FINDLAYER.2> && <SRC.FINDLAYER.2.TYPE> == t_pickaxe

İle sorgulayabilirsin. Ben burada layeri 2 olarak seçtim eğer layer kaç ise sen ona göre yazmalısın.

Memory den sorgulayacaksan eğer, oyuncu Container yani CONT'a eşit olacağı için şu şekilde sorgulamak gerekecektir.
Kod:
if <CONT.FINDLAYER.2> && <CONT.FINDLAYER.2.TYPE> == t_pickaxe


Buradaki
Kod:
<CONT.FINDLAYER.2>
Eşyanın olup olmadığını kontrol eder. Eğer eşya yok ise direkt iptal etsin ki TYPE yapıp 0 unknown Type tarzı hatalar almamak için önce sorguladık.

Sonrasındaki
Kod:
<CONT.FINDLAYER.2.TYPE> == t_pickaxe

Burada 2. elinde tuttuğu (tüm çift elli kılıçlar için 2. el esas alınır) eşyanın Type'ını çektik ve t_pickaxe mi diye kontrol ettik. Sen Burada TYPE yerine BASEID yazıp == i_benim_pickaxem gibi sorgulayabilirsin.


 Athynas
Geçmişi olmayanın, geleceği olmaz.

Scripting Destek Discord: https://discord.gg/yXQ3m5S

Yazar

Athynas


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 118
Oyun Tarzı: Pp
Emulatör:
Tecrübe: World Builder
Yaş: 32
Mesaj #96142   13-08-2018 18:15 GMT    
        
Şu noktada tıkandım, muhakkak benim göremediğim basit bir hata yaptım ancak işin içinden çıkamadım. Baltayı bir türlü görmüyor, direkt elseden sonraki uyarıyı veriyor, kazmada sorun yok normal işlevinde çalışıyor hata nerede acaba?
Kod:
if ((<cont.findlayer(layer_hand1).baseid> == i_pickaxe)
topobj.sysmessage @0790,,1 Topladığınız malzemeyi çantanıza koydunuz.
topobj.kaz
cont.newitem random_ore {1 2}
cont.bounce <new>
timer 5
elseif ((<cont.findlayer(layer_hand1).baseid> == i_hatchet)
topobj.sysmessage @0790,,1 Topladığınız malzemeyi çantanıza koydunuz.
topobj.kir
cont.newitem i_log {1 2}
cont.bounce <new>
timer 5
else
topobj.sysmessage @0790,,1 Bu alanda kaynak toplayabilmek için elinizde bir kazma ya da balta olması gerekiyor.
timer 5
endif
return 1



Yazar

xwerswoodx


Sphere Destek
Skill Title: Master
Online durumu
Toplam Mesaj: 1750
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 10
Mesaj #96147   14-08-2018 01:59 GMT    
        
Hatana gelirsek, baltanın layerini doğru yazdığından emin misin? Layerleri kontrol etmedim çünkü. Diğer yandan ifler için 2 kere parantez açmışsın, 1 kere açıp 1 kere kapatman gerek. Ayrıca oyuncuya verdiğin kazmanın baseid sinin i_hatched olduğunu kontrol etmelisin, eğer özel bir balta kullanıyorsa mesela i_hatched_benim gibi onu yazmalısın. Diğer yandan parantezler dışında hata görünmüyor. Ayrıca elseif yerine elif kullanmak daha sağlıklı oolacaktır. Ancak kazmanın hand1 de olması baltaya da hand1 zorunluluğu getirmiyor, baltanın layerini kontrol etmeni öneririm. Ayrıca parantezler ufak bir hata olsa da işleyişi engelleyebilirler bu yüzden baştan birer parantez kaldırmalısın.


Geçmişi olmayanın, geleceği olmaz.

Scripting Destek Discord: https://discord.gg/yXQ3m5S

Yazar

Athynas


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 118
Oyun Tarzı: Pp
Emulatör:
Tecrübe: World Builder
Yaş: 32
Mesaj #96149   14-08-2018 07:23 GMT    
        
Layerın doğru olduğuna emindim zaten ikisi de aynı eldeydi. Ancak dediğin gibi xWerswoodx parantezlerden kaynaklı bir hata olmuş şimdi tıkır tıkır çalışıyor. Teşekkürler.



Sayfalar: 1



Benzer Konular

KonularMesajlarSon gönderenTarih
Levele göre Random chest6sekkk05-10-2018
Plevele göre izin vermek11Gokku21-03-2018
Skille Göre Drop Ayarlamak ve Hata ile Başarısı...8xwerswoodx11-10-2017
Pokemon Ölünce Çantaya Düşmesi3emre1105-08-2017
Quest Eşya Kayit Bag'i4mahsuni29-06-2017


Keywords:

ultima online, RunUO, ultima online download, sphere scripting, role play, uo grafik, second age ultima, uo loop, macroman, pvp server, server kurulumu, sphere, multool, ml mulls, 56b 55r 55i, htmlgumps, client 4x, client edit, sphere release, osi, rp server, sunucular, ghost mouse, inside uo, kingdom reborn, stygian abyss, uo nasıl oynanır, mondain's legacy, age of shadows, world build, grandmaster, ultima online pvp, player dosyaları, ultima online indir, frp game, RunUO 1.0.0, razor, uo rice, hue editör, skill tools, ultima online patch, axis, world build, verdata, verdata patcher, map editör, gump editör, mul patcher, aos mulls, scriptler, anim edit, anim publish, hues mul, hosting vps, event dialog, account sistemi, skill gain, static yapımı,