Qnd -  09-09-2010 05:36
Ö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.

YORUMLAR (2)

DiabloII 09-09-2010 14:56    
Bunu alan bunları da aldı:
http://www.uo-developer.com.....ve-if-sorgusu.html#32951
berk1925 19-12-2011 04:21    
Harika Anlatmışın Ağzına Sağlık..

BENZER SAYFALAR