UO-Dev Arama

 




Paylaş

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

^Qnd^


UO-Dev Üyesi
Skill Title: Novice
Online durumu
Toplam Mesaj: 24
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 29
Karma:   1   Level 1
Messenger: Msn iletişim
Mesaj #32945   09-09-2010 04:35 GMT    
        
Öncelikle selamlar;
Size event vermeyi ve nasıl yapıldığını anlatacağım,



Örneklerle anlatayım.

Kod:
[events e_uodeveloper]



şuanda e_uodeveloper diye bi event yarattık bunu npc'e verebilmek için;

Kod:
TEVENTS=e_uodeveloper


Npc'den silebilmek için;

Kod:
TEVENTS= -e_uodeveloper




Playera vermek için ise;

Kod:
Events +e_uodeveloper



Playerdan Event silmek için;

Kod:
Events -e_uodeveloper



İf sorgusu ile eventi şu şekilde kontrol ettiririz;

Kod:
if (<isevent.e_uodeveloper>)


İf Sorgusu nedir? ;

If sorgusunu ilk görünüşte karışık gibi dursa da.Mantığını anladıktan sonra çok basit bir hal alır.

İf oyunda sorgulama yapmaya yarar.

İlk önce sorgudaki terimleri öğrenerek başlayalım...

Kod:
if = eğer anlamına gelir.sorguyu bu terim ile başlatırız.

Else = Başka anlamına gelir.if de belirtilen sorgulamanın tam tersi demektir.(Örneklerde daha çabuk anlayacaksınız)

Elseif = if içerisinde başka bir sorgulama yapmanızı sağlar.

Endif = if sorgulamasını kapatır.

< küçüktür

> büyüktür

= eşittir

>= hem büyüktür, hem eşittir

<= hem küçüktür, hem eşittir

!= eşit değildir


! , || , && gibi terimleri örnek verdikten sonra açıklayacağım...

basit bir örnek verelim.


Kod:
[function deneme]
if (<src.kills> < 7)
src.sysmessage Kill sayiniz 7den kuçuk.
else
src.sysmessage Kill sayiniz 7den buyuk
endif



Bu if sorgulamasını açıklamadan önce Türkçe sini size yazmak istiyorum.Böylece daha kolay anlayacaksınız.


Eger killsim kucukse 7 den
bana kill sayiniz 7den kucuk diye mesaj ver
değilse
bana kill sayiniz 7den buyuk diye mesaj ver
ve sorgulama biter.

verdiğimiz örnekteki satırları tek tek açıklayalım.


Kod:
function deneme] // Deneme diye bir komut yaptık
if (<src.kills> < 7) // burada killimizin 7den küçük olup olmadığını kontrol ediyoruz.
src.sysmessage kill sayiniz 7den kucuk // Burada Killimizin 7 den küçük olduğunu bildiriyoruz.
else // burada ifin tam tersi için işlem yapıyoruz.yani killsi 7 den küçük olmayan kişiler için işlem yaptıracağız.
src.sysmessage Kill sayiniz 7den buyuk // Burada Killimizin 7 den büyük olduğunu bildiriyoruz.
endif // Ve bardada ifi kapatıyoruz.



Elseifden bahsetmek istiyorum.


Kod:
[function deneme]
if (<src.kills> == 7)
src.say 7 kilim var
elseif (<src.kills> == 6)
src.say 6 kilim var
elseif (<src.kills> == 5)
src.say 5 kilim var
else
src.say kilim 7,6,5 değil
endif



Burada sphere bize bir kıyak geçmiş elseifi yapmış elseif olmasaydı o sorgulamalar için ayrı ifler açmak zorundaydık ve hepsine endif vermek zorundaydık..

yani elseifi if sorgusu içerisinde kullanabilirsiniz.Onun için ayrı bir endif yazmanıza gerek yoktur.

Yukarıda ne yaptık?

Killsi 7 ise bildiriyor. 6 ise bildiriyor. 5 ise bildiriyor.7, 6 yada 5 değilse bildiriyor.



Şimdi yukarıda verdiğim ! , && , || karakterlerine geçeyim.

! den başlayalım.

Yukarıda öğrendiklerimizle benim killsim 7 değilse yi nasıl yaparız.Şöyle yaparız dimi?


Kod:
if (<src.kills> == 7)
else
src.say killim 7 degil
endif



Sphere bordada bize kıyak geçmiş ! bunu yapmış.yukarıda verdiğimiz örneği ! terimini kullanarak şu şekilde yaparız.



Kod:
if !(<src.kills> == 7)
src.say killim 7 degil
endif


Evet gördüğünüz gibi if den sonra ! kullanarak ifi tam tersine çevirdik.Yani ! karakteri else ile aynı görevi yapıyor.



&& dan bahsedelim birazda.

Yukarıda öğrendiklerimize göre kişinin hem famesi hem karması hem killsi 10 ise işlemini nasıl yaparız.



Kod:
if (<src.fame> == 10)
if (<src.karma> == 10)
if (<src.kills> == 10)
src.say Famem karmam killim 10
endif
endif
endif



Evet bu şekilde yaparız dimi.&& sayesinde bunları tek bir if de toplayabiliyoruz...

Kod:
if ((<src.fame> == 10) && (<src.karma> == 10) && (<src.kills> == 10))
src.say famem karmam killim 10
endif




NE kadar pratik dimi Yani && birleştirmeye yarar.Yukarıda famesi,killsi,karması 10 ise olarak kullandık.

Yani Kill,fame,karma 10 ise oyle işlem yapacaktir.


Ve son terimimiz olan || ya geldik.

Buda && gibi birleştirmeye yarar fakat biraz daha farklı.

&& da fame karma kills 10 olması gerekiyordu || ile birleştirirsek 3 unden biri 10 olursa işlem yapacaktır.

Örnek verelim.


Kod:
if ((<src.fame> == 10) || (<src.karma> == 10))
src.say famem yada karmam 10 yada ikisi de 10 :)
endif



&& de illa fame ve karmanın 10 olması gerekirken.|| da ikisinden birinin olması yeterli olacaktır.

Yani && verdiğiniz tüm seçeneklerin olmasını isterken. || verdiğiniz seçeneklerden en az birinin olmasını kabul eder.


|| ve && den birer örnek daha vereyim.kendiniz açıklamaya çalışın.Ve kendiniz sık sık if sorgusu kullanarak scpler yazın.



Kod:
if (<src.account.plevel> > 2) && (<src.account.plevel> < 6)
src.sysmessage Plevelim 3,4 yada 5.
endif





Kod:
if (<src.findid.i_katana> || (src.findid.i_kryss>)
src.sysmessage cantamda ya katana var ya kryss var yada ikiside var.
endif


Kişide olan eventleri görebilmeniz için oyun içerisinden .show events komutunu kullanırız.

Şimdide eventle ne yapabiliriz, trigger kullanmayı göstereceğim;


Kod:
[events e_uodeveloper]
src.say event var
return 1



bu şekilde çalışmaz, buna vurduğunda tıkladığında gibi yapmak zorundasınız.



Kod:
[events e_uodeveloper]
on=@Click
message Bana bir defa tıkladın



Trigger dediğimiz şey on=@ ile başlayan şeylerdir. bi event yazalım, oyun'a girdiğinde stara gitsin


Kod:
[events e_uodeveloper]
on=@login
src.go star
src.sysmessage stara hoşgeldiniz.



Event hakkında bi bilgi daha vereyim, örneğin ; ( Sunucu Adı yetkili ) yazan şey bi eventtir.


Kod:
[events e_gm]
On=@Click
Message [<serv.name> yetkili]
Message <name>
Return 1

On=@Dclick
if (<src.account.plevel< < 2)
Src.sysmessage stafflarin görüntüsünü acamazsiniz.
Return 1


Not; İf Sorgusu Alıntıdır, Event Anlatımı Uo-Developer İçin Hazırlanmıştır.


Son güncelleme: ^Qnd^ tarafından 09-09-2010 04:44 GMT, 624 Gün önce düzenlendi.


Qnd

Unutmaki, dostum dediğin insan bir gün düşmanın olabilir...

Yazar

System_Error


UO-Dev Üyesi
Skill Title: Expert
Online durumu
Toplam Mesaj: 267
Oyun Tarzı: Pp
Emulatör: 0.56b
Tecrübe: Player
Yaş: 21
Karma:   2   Level 1
Messenger: Msn iletişim
Mesaj #32948   09-09-2010 04:49 GMT    
        
HELAL OLsun öğretici birşeyler sunmuşsun bilmeyenler yani benim için ideal



Yazar

^Qnd^


UO-Dev Üyesi
Skill Title: Novice
Online durumu
Toplam Mesaj: 24
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 29
Karma:   1   Level 1
Messenger: Msn iletişim
Mesaj #32949   09-09-2010 04:50 GMT    
        
Tabi caner öğren bunları uheuh


Qnd

Unutmaki, dostum dediğin insan bir gün düşmanın olabilir...

Yazar

DiabloII


Yasaklı
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 150
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Diğer
Yaş: 11
Karma:   1   Level 1
Messenger: Msn iletişim
Mesaj #32951   09-09-2010 05:27 GMT    
        
Öncelikle merhaba,
güzel bir iş yapmaya çalışmışsınız fakat dikkat çekici yanlışlılar var. Amacım baltalamak değil, sadece doğrusunu gösterebilmek. Yanlış anlaşılmama dilekleri ile başlıyorum.

Alıntı
^Qnd^ :
Kod:
if = eğer anlamına gelir.sorguyu bu terim ile başlatırız.
Else = Başka anlamına gelir.if de belirtilen sorgulamanın tam tersi demektir.
Elseif = if içerisinde başka bir sorgulama yapmanızı sağlar.
Endif = if sorgulamasını kapatır.



Başlangıç olarak şunu bilmek gerek, If bir selection statement'dır. Hatta conditional selection statement'dır. Yani bir şarta bağlı olarak işlem yapar. Elseif/elif, birden fazla şart varsa bunları birbirinden ayırmak ve seçim yapmak için kullanılır. Else, başka anlamına gelmez, belirtilen sorgulamanın tam tersi demek hiç değildir. Else, kendisinden önceki expression'ların hiç biri true sonucu döndürmezse yapılacak olan default işlemi belirtir, tıpkı elseif gibi illa ki olmak zorunda değildir. (if'i else'i falan daha iyi anlamak için switch statement'larına bakılmasını öneririm. birbirine birebir dönüşebilen bir yapıdır, sadece switch daha kolay anlaşılır.)
< > = <= >= ! gibi işaretler, Relational Operator'lerdir, iki şeyin birbiri ile olan ilişkisini incelerken sıklıkla kullanılır.

Alıntı
^Qnd^ :
Evet gördüğünüz gibi if den sonra ! kullanarak ifi tam tersine çevirdik.Yani ! karakteri else ile aynı görevi yapıyor.


! (not) operatörü bir Logical Operator'dür, tıpkı && (and) ve || (or) gibi. Yaptığı iş if'i else yapmak değil, if statement'ının içindeki expression'ı tersine çevirmektir. ! = else gibi bir yargıya nasıl varılmış bilmiyorum fakat oldukça komik bir durum olmuş. Dediğim gibi, else kullanılması zorunlu bir şey değildir.

Logical Operator'lere girmişken devam edelim,

Alıntı
^Qnd^ :
Yani && birleştirmeye yarar.


&& operatörü, and anlamına gelir ve birden çok expression'ı bir arada değerlendirmeye yarar, istenirse nested if kullanılabilir, fakat hem göze daha iyi görünmesi hem de satır azaltması bakımından && tercih sebebi olabilir. Tüm expression'lar true döndürürse if, en az 1'i false döndürürse else geçerli olacaktır, tabi eğer varsa.

Alıntı
^Qnd^ :
Ve son terimimiz olan || ya geldik.
Buda && gibi birleştirmeye yarar fakat biraz daha farklı.


|| operatörü, or anlamına gelir ve girilen expression'lardan en az 1'i true döndürürse if, hepsi false döndürürse else geçerli olur, tabi yine var ise.

Tekrar söylüyorum, amacım baltalamak değil. Bir laf vardır ya hani, 'nasıl öğrenirsen öyle gider' gibisinden, işte doğrusunu öğrenelim ki doğru gitsin.
Saygılar, sevgiler.



Yazar

basic


Sphere Destek
Skill Title: Master
Online durumu
Toplam Mesaj: 1018
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 19
Karma:   5   Level 1
Messenger: Msn iletişim
Mesaj #32952   09-09-2010 05:27 GMT    
        
if sorgusu kimden alıntı?


if endif, for endfor, dorand enddo... niye hep birşeyleri kısıtlıyoruz?

Meinen Blog/My Blog/Benim Blogum

Yazar

^Qnd^


UO-Dev Üyesi
Skill Title: Novice
Online durumu
Toplam Mesaj: 24
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 29
Karma:   1   Level 1
Messenger: Msn iletişim
Mesaj #32953   09-09-2010 05:31 GMT    
        
Alıntı
basic :
if sorgusu kimden alıntı?



Micheall'dan

@diablo dediğim gibi, İf Sorgusu alıntıdır.


Qnd

Unutmaki, dostum dediğin insan bir gün düşmanın olabilir...

Yazar

DiabloII


Yasaklı
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 150
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Diğer
Yaş: 11
Karma:   1   Level 1
Messenger: Msn iletişim
Mesaj #32954   09-09-2010 05:32 GMT    
        
Benim de dediğim gibi, alıntı olması değil yanlışlığın düzeltilmesi önemli
Yapabildiysek ne mutlu.



Yazar

basic


Sphere Destek
Skill Title: Master
Online durumu
Toplam Mesaj: 1018
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 19
Karma:   5   Level 1
Messenger: Msn iletişim
Mesaj #32955   09-09-2010 05:33 GMT    
        
Bunu yoksa dökümanlarada ekleyiniz.


if endif, for endfor, dorand enddo... niye hep birşeyleri kısıtlıyoruz?

Meinen Blog/My Blog/Benim Blogum

Yazar

^Qnd^


UO-Dev Üyesi
Skill Title: Novice
Online durumu
Toplam Mesaj: 24
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 29
Karma:   1   Level 1
Messenger: Msn iletişim
Mesaj #32956   09-09-2010 05:35 GMT    
        
Alıntı
basic :
Bunu yoksa dökümanlarada ekleyiniz.



Ekliyorum,

@Diablo teşekkürler.


Qnd

Unutmaki, dostum dediğin insan bir gün düşmanın olabilir...

Yazar

BlackEagle


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 242
Oyun Tarzı: Pp
Emulatör: 0.56b
Tecrübe: Diğer
Yaş: 21
Karma:   0   Level 0
Messenger: Msn iletişim
Mesaj #32966   09-09-2010 13:46 GMT    
        
Güzel bir döküman aferin



Sayfalar: 1



Benzer Konular

KonularMesajlarSon gönderenTarih
Toplu event ekleme6circir12-05-2012
Bineğe event ve ekle butonu7muhacan22-04-2012
Event süresi ve gösterme14Brownie28-04-2012
Vipli Bineklere Event verme6Mrs.xariyla18-03-2012
Alan dolu/boş sorgusu.14Mrs.xariyla09-03-2012


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