|
|
Paylaş |
| İçerde : 1 misafir, 0 üye : --- | Sayfalar: 1 |
|
Yazar
|
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.
|
|
Yazar
|
Mesaj #32948
09-09-2010 04:49 GMT
|
|
Yazar
|
Mesaj #32949
09-09-2010 04:50 GMT
Qnd Unutmaki, dostum dediğin insan bir gün düşmanın olabilir... |
|
Yazar
|
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ı 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ı ! (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ı && 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ı || 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. |






elseif olmasaydı o sorgulamalar için ayrı ifler açmak zorundaydık ve hepsine endif vermek zorundaydık..
öğren bunları uheuh


