UO-Dev Arama

 

İçerde : 1 misafir, 0 üye : --- Sayfalar: 1
Yazar
Skill Title: Novice
Toplam Mesaj: 44
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Diğer
Yaş: 28
Beğeni: 7
Mesaj #100974   21-02-2021 11:13 GMT    
     
Merhaba arkadaşlar, Aslında bu soruyu en başında sormam gerekirdi ama bakış açısı bir işe ısınma da denilebilir ısındıkça olayı farklı bir yerden bakma ve doğrusunu yanlış görmüş olabiliyor insan. Şimdi soruma gelince

1.

Script Kodu:
ON=@Dclick
src.sysmessage @0481,,1 Yeterince yakın değilsiniz.
if (<distance> >3)
else


Burada distance src nin tıkladığı bir iteme uzaklığını belirtiyor.

diyelim ki


Script Kodu:
@Mount
if (<distance> >3)
else


Altına ekledim burada daha farklı bir anlamı var galiba.

3.

Script Kodu:
@npcseenewplayer
if (<distance> >3)
else

Burada daha farklı bir anlamı var galiba

4.

Script Kodu:
@Resurrect
if (<distance> >3)
else

Burada farklı bir anlamı var galiba

Örnek biraz fazla vermeye çalıştım
Şimdi burada sadece

Script Kodu:
distance
komutunu kullandık ve hepsinde farklı bir anlama geliyor ise

Script Kodu:
distance=mesafe
bir taşa tıklamaya çalıştığında devreye giren 3 kare uzaklıkta bize uyarıyı verir.

2. de src bineğe binerken hata veriyor 3 kare uzaklıkta bize uyarı verir.

gibi şimdi biz bütün trigerlerin altında kullandığımızda bu komutu sadece mesafe mi bize bildiriyor. 3.

Script Kodu:
@npcseenewplayer[code] da ne anlama gelir yada 4. [code]@Resurrect[code] altına koyduğumuzda farklı bir anlamı bürünüyor.

Sadece distance örneği değil atıyorum

[code]src.consume 500 i_odun
koyduğumuzda tüm triggerlerde aynı anlama gelmiyordur sadece 2 örnek distance ve consume
Benim burada genel mantığı ile nasıl düşünmem gerekir bir işe başlıyorsam distance sadece bütün triggerlerin altında src nin tıkladığı eşyaya uzaklığını mı ölçer

yada

Script Kodu:
src.consume
sadece kendi cantasında ki ni sorgulayıp tüketmesi mi

Daha önceden sorduğum sorularda tag0 aslında net bilgi verilmemesi de bunun sebeplerinden büyük ihtimalle örnek veriyorum
Tag sorduğum konular;
https://www.uo-developer.com.....g--kullanimi.html#100751

https://www.uo-developer.com.....al-kullanimi.html#100832

Script Kodu:
@Resurrect , ON=@Dclick , @npcseenewplayer , @Mount
hepsinde tag0 farklı anlamlara geliyor.

Umarım anlatabilmişimdir. eksik ise anlatım daha açabilirim. aslında burada sormam gereken düşünce mantığı nedir ? nasıl düşünmeliyiz bir kodlama yazarken distance, consume vs. nasıl düşünerek karar vermeliyiz sadece tıkladıkları ve tükettikleri eşya olarak değildir büyük ihtimalle. Çoğu script olarak baktığımda kodlamalar içerik olarak aynı ama trigger değiştiği anda içerik aynı olsa bile yapılan iş değişiyor.


Son güncelleme: Nioble tarafından 21-02-2021 11:34 GMT, 6 Gün önce düzenlendi.



Yazar
Skill Title: Expert
Toplam Mesaj: 344
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 33
Beğeni: 8
Mesaj #100976   21-02-2021 12:13 GMT    
     
Hocam şuan bende " npcseenewplayer " öğrenmeye çalışıyorum..
Fakat ingilizcesini çeviriyorum ve

Script Kodu:
npc see new player = npc yeni oyuncuya bakın

Sanırım NPC'de " @npcseenewplayer " kullanırsak yeni gördüğü tüm playerları kapsayacak
@Resurrect karşıtı diriltmek ama

Script Kodu:
ON=@@Resurrect

Kullanmadım hiç

Script Kodu:
ON=@Dclick

Çift tıklama

Script Kodu:
@Mount

Binmek, sanırım bir nevi bineğe verilen event ama üzerine binince devreye girer


Yasin

Yazar
Skill Title: Novice
Toplam Mesaj: 44
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Diğer
Yaş: 28
Beğeni: 7
Mesaj #100981   21-02-2021 13:31 GMT    
     
.d keşke iyi okuyup yorum yapsaydin guzel olurdu



Yazar
Skill Title: Journeyman
Toplam Mesaj: 214
Oyun Tarzı: Pvp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 29
Beğeni: 33
Mesaj #100982   21-02-2021 13:35 GMT    
     
Merhaba,

alttaki linkte referanslar mevcut. çok fazla referans olduğu için hepsnin içinde çalışma durumlarını farklı farklı anlatıyor.
Genelde hepsinde verdiği ortak mantık şu : src,act,argo,i gibi ve return 1 yapınca neler olduğunu belirtiyor.
https://wiki.spherecommunity.....ory:Reference_Compendium

Şimdi bahsettiğin örneklere gelirsek.

distance iki objenin arasındaki mesafeyi sorgulamada kullanılıyor. genel mantık bu
@dclick , @mount , @npcseenewplayer , @resurrect sorgulamalarındada bu mantık aynı, yine mesafeyi ölçüyorsun.
Burada sadece src kullanırsan, src.distance diyelim.

örn : src.distance
@dclick //tıklayan kişi ? //tıklayan kişinin mesafesi
@mount // binmeye çalışan kişi. // binmeye çalışan kişinin mesafesi.
@npcseenewplayer // görülen oyuncu. // görülen oyuncunun mesafesi. ( burada çünkü bu işlemi başlatan npc, oyuncu değil ters mantık gibi geliyor ilk bakışta)
@resurrect // dirilen kişi // dirilecek oyuncunun mesafesi. ( bu kendin de olabilirsin yada başkası )

Yinede mesafe farklı farklı çalışmadı, sadece kullandığın referanstaki kullanım mantığı ile sorgulamalar değişti. anlam aynı : mesafe


Gelelim tag0'a ; Taglar aslında sabit diyebiliriz. verdiğin tagdaki yazıyı sorgulamanda yarıyor.
diyelimki oyuncuda tag.deneme = 3 var.

@resurrect

Script Kodu:
if (<eval <src.tag0.deneme>> == 3) // diyelim bu tag varsa oyuncu reslenmesin. ( 3 e eşitse )
src.sysmessage @38,,1 Senin tagın var abi reslenemezsin.
return 1
endif


@dclick

Script Kodu:
if !(<eval <src.tag0.deneme>> == 3) // diyelim bu tag varsa ve 3'e eşitse tıklasın. burada sorguyu eşit değilse yaptım.
src.sysmessage @38,,1 Senin tagın yok tıklayamazsın. // diyelimki vip stone yaptın sadece vipler açacak :)
return 1
endif


@npcseenewplayer

Script Kodu:
if (<src.tag0.deneme>)  // mesela tag değerinin bir değeri yok diyelim. sadece oyuncuda tag.deneme var. tag.deneme = 1 , tag.deneme = 3 , tag.deneme = tagı var abi veya tag.deneme = nioble    hiç önemli değil.
sysmessage @,,1 Seni görüyorum <src.name> çünkü tagın var.
return 0
endif
return 1 // görmesin diğerlerini


@mount

Script Kodu:
if (<src.tag0.deneme>)
sysmessage @,,1 <src.name> senin tagın var bu bineğe binmen yasak kardeşim :D.
return 1
endif



Consume olayıda yine bu referanslarda sorgu olarak değilde yapıldığı zaman kullanılır.
reslendin 500 odunun gitti veya bineğe binmek için 500 odun lazım gibi.
bunun sorgusunuda (<src.findid.i_odun.amount> >= 500 )şeklinde yaptırabilirsin.

bkz:

Script Kodu:
on=@mount
if (<src.findid.i_odun.amount> >= 500 )
src.consume 500 i_odun
else
src.sysmessage @38,,1 Binebilmek için 500 odununuz yok.
return 1
endif.


 manyaqq
Time is ower

Yazar
Skill Title: Expert
Toplam Mesaj: 344
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 33
Beğeni: 8
Mesaj #100983   21-02-2021 13:37 GMT    
     
Hocam belki tecrübesizliğimden kaynaklanıyor ama @ ile olan trigger oluşacak olay, if <<distance>>3> gibi yazılar ise @ olayında karakter veya npc için aranacak sorgu


Yasin

Yazar
Skill Title: Expert
Toplam Mesaj: 291
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Player
Yaş: 31
Beğeni: 56
Mesaj #100985   21-02-2021 13:48 GMT    
     
Genel olarak @Mount @DClick @Click @Rename @Step vs vs ... ve diğer tüm Triggerler bir eylem bildirir bu eylemlerin altındaki satırlar o eylemi gerçekleştirmek için gerekli koşulları sağlar şöyle ki :

Sen birşeye çift tıklıyorsan eğer burada bir eylem gerçekleştirmek üzeresindir ve bu eylemi gerçekleştirip gerçekleştirmemek o satırın altında ki kodlara bağladır

@DClick // Bir şeye çift tıklayınca tetiklenen bir Trigger yani Tetikleyicidir

"Distance" bir eylem değil mesafe belirtir eğer sen bunu DCLICK Tetikleyicisi altına yerleştirirsen burada çift tıklayacağın obje ya da nesne ile bir obje ya da nesnelinin arasında uzaklık yakınlık bağlantısı kurar AMA sen eğer bunu @MOUNT Tetikleyicisi altına yerleştirirsen bu sefer bineceğin bir NPC ile bir obje ya da nesnenin arasında uzaklık yakınlık bağlantısı kurar

umarım açıklayıcı olmuştur



Yazar
Skill Title: Expert
Toplam Mesaj: 364
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 29
Beğeni: 75
Mesaj #100986   21-02-2021 15:26 GMT    
     
"Kodlama mantığı" esasen algoritma ve yazılım mantığı dediğimiz şeyi ifade ediyor. Sphere script yazımına geçmeden iyi bir kaynaktan bunları araştırmanı tavsiye ediyorum. Çünkü sphere script sadece belli yazım kuralları olan bir dil. Nasıl kod yazılır, mantık nedir kısmını öğrendikten sonra istediğin dilin yapısını kullanarak bir şeyler ortaya çıkartırsın. Şu anki durumda soruların yanıtlansa dahi bir şeyler havada kalacağı için bir soruya 20 soru olarak geriye dönecek.


 Paco, Gaia

Yazar
Skill Title: Apprentice
Toplam Mesaj: 64
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: World Builder
Yaş: 35
Beğeni: 12
Mesaj #100996   22-02-2021 04:15 GMT    
     
Şöyle bir not buldum pdf belki işine yarar.
https://www.google.com/url?s.....tNRe&cshid=1613956151194


Work in progress "Resurection Of Sosaria"

https://goo.gl/photos/ZpkTVAXWu2KSfBHy6

Yazar
Skill Title: Adept
Toplam Mesaj: 800
Oyun Tarzı: Pp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 34
Beğeni: 52
Mesaj #100998   22-02-2021 05:38 GMT    
     
Öncelikle SphereWiki sitesine giriyoruz. Daha sonra sağ üstte yer alan " Search " bölümüne örnek olarak " @resurrect " yazıyoruz ve arıyoruz. Açılan bu sayfada ;

Description ( Açıklama ) bölümü bizi karşılıyor.
This trigger fires when a character is about to be resurrected. Yani kısmi anlatmak istediği bir karakterin canlandığı anda tetiklenen bir trigger olduğundan bahsediyor. Triggerlarda genel olarak dikkat edilmesi gereken anlık bir olaydır bu tetiklenmeler yani @Resurrect triggerında karakter canlandıktan sonra işlemez, canlanacağı an tetiklenir. Sanırım daha doğru bir anlatım oldu.

Onun altında ise " Fires on " yani bu triggerın ne tarz bir obje, nesne veya türde kullanılabileceğini belirtiyor. Bu triggerımız ise karakterler üzerinde kullanılabiliyormuş. Ama burada karakterden kasıt sadece oyuncular değil kaba tabir ile nefes alan her canlıda kullanılabilir ( binek, yaratık vs vs )

Reference bölümüne bakıyoruz. Burada anlatılmak istenen " SRC, I, ARGO " terimlerini (triggerlara göre değişiklik gösterebilir) görüyoruz. Teker teker ele alacak olursak bu trigger üzerinden ;

I ==> The character being resurrected. ( Canlanan karakter )
SRC ==> The character being resurrected. ( Canlanan karakter )
ARGO ==> The corpse (If any is near) (Readable only). ( Ceset ( Yakınlarda ceset var ise ) ( Sadece sorgulamak için yani işlem yapılamaz )

Buradan da anlıyoruz ki " I ve SRC " sıfatları aynı işi görüyor. ( Dil bilgim pek iyi olmayabilir )

Arguments bölümüne gelecek olursak " ARGN1 " yazdığını görüyoruz. Hemen yanındaki açıklamasında ise " Hit point value when resurrected. ( Canlandığı zaman canlanan kişinin canının kaç olması gerektiğine karar verebiliyoruz )"

Return Values bölümü ise kendimce bu bölümü komut döndürdüğünde veya döndüğünde alacağın sonuçlar olarak türkçeleştiriyorum. Return komutu Sphere Scripting'de genellikle yapılan işlemleri sonuçlandırmak için kullanılır. Misal ;
return 1 dediğimiz de üstündeki işlemleri tamamlayıp bir sonraki işleme değil başa dön deriz.
return 0 dediğimiz de ise işlemi gerçekleştir fakat başa dönmeden bir sonraki işleme devam et olarak düşünebiliriz.
Return komutu daha detaylı olarak kullanılabilir fakat şuanda senin için temel olarak yeterli olacaktır bu kullanımlar.


Diğer triggerları da bu sitenin search bölümünden aratarak nasıl ve ne için kullanıldığına dair bilgi edinebilirsin.
Bildiğimi yazıya ancak bu şekilde aktarabildim amacım dalga geçmek veya küçümsemek değildi. Bence benim bu durumum bir çok script veya yazılım işleri ile uğraşanların konuyu anlatırken zorlandığı gerçeğini gün yüzüne çıkarttı


Sunucu Projesi : Resurrection of Sosaria

Yazar
Skill Title: Novice
Toplam Mesaj: 44
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Diğer
Yaş: 28
Beğeni: 7
Mesaj #101002   22-02-2021 17:43 GMT    
     
Arkadaşlar doğru bilgileri vermeye çalışıyorsunuz ne kadar teşekkür etsem az çünkü kodlama mantığını anlamadan başlamak ve devam edebilmek çok önemli, baktığımda bir sürü insan belli bir yere yada kodlamayı öğreniyor, sınırlı bir süre sonra bırakıyor bırakan kişilerden olmamak için biraz daha öğrenmeye açık olmaya çalışıyorum sizin yardımlarınızla teşekkür ederim değerli bilgilerinizden dolayı.



Yazar
Skill Title: Apprentice
Toplam Mesaj: 85
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 30
Beğeni: 8
Mesaj #101029   23-02-2021 23:25 GMT    
     
Önce "Mantık ( Logic ) " dan başlamanı tavsiye ederim. Daha sonrasında Mantık Tasarımı ( Logic Design ) konularını araştırabilirsin. Şuan öğrenmek istediğin konular genel olarak "Prosedürel/Yapısal Programlama ( Procedural Programming ) olarak geçiyor. Fakat öncesinde "Fonksiyonel Programlama ( Functional Programming )" ile mantık kavramını pekiştirip sonrasında "Prosedürel" konulara geçmeni öneririm.

Önemli olan hangi dil, script ya da ortamda ne geliştirdiğin değil, geliştirme metotları ve yöntemlerini kavramaktır. Temel mantık kavramlarını hakim olduktan sonra farklı bir göz ile konulara bakacağına inanıyorum.

1995 yılında senin sorduğun soruların peşine düşen biri olarak, seni çok iyi anlıyorum. Script'i nasıl yazacağından ziyade yukarıda belirttiğim konulara odaklanırsan, sorularına "Mantıklı" cevapları basit bir şekilde kendin bulabileceksin.

İyi çalışmalar


 MirroR

Yazar
Skill Title: Adept
Toplam Mesaj: 707
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 29
Beğeni: 107
Mesaj #101030   24-02-2021 00:22 GMT    
     
Bir mantıktan örnek vermek gerekirse sphere scripts dilinde yapılan en büyük hatalardan biride şudur. İşlem sırası.


Script Kodu:
[function res] // örnek yanlış olan
serv.newitem = i_robe,1,<src>
src.resurrect 1


ölü adama robeyi giydiremezsin, canlı birine robeyi giydirebilirsin.


Script Kodu:
[function res] // doğru olan.
src.resurrect 1
serv.newitem = i_robe,1,<src>


 Ege ERKEK
Hayat dediğin bir çift bacak gidebildiğin yol kadardır.

Sayfalar: 1


Benzer Konular :

KonularMesajlarSon gönderenTarih
Src,Act,Targ,Cont Nedir ?5Nioble07-02-2021
Fındlayer.X nedir84s3d303-02-2021
Areadef Group nedir?3Nioble29-01-2021
'mount'Nedir11futbolcu3420-07-2020
UO Sitesi Yaptırma Fiyatları Nedir?9ozanbey13-11-2019


Kullanıcı Adı:Parola: Beni Hatırla?


Mythic broadsword sphereserver modernuo runuo ServUO JustUO

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ı,

UO-Dev Footer UO-Dev Footer