Tekil Mesaj gösterimi
Alt 09 Mayıs 2015, 13:17   #5
Çevrimdışı
Feragat
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: on TEXT ile ilgili




uFuK güzel bir konuya değinmiş. Bu konuda biraz açıklama yapmakta fayda var.

1- On Text eventını aynı sayfada bir kereden fazla kullanmak ve sonuçları.

Aynı sayfadaki 1'den fazla Text eventında matchtext'ler (eventı tetikleyen, çalışmasını sağlayan belirtilmiş stringler) farklı ise çalışma konusunda herhangi bir sorun yaşamazsınız.

Örnek1:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on *:text:a:#deney:echo -a Sonuç: a on *:text:b:#deney:echo -a Sonuç: b on *:text:c:#deney:echo -a Sonuç: c

Sonuç:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
[11:53] <Feragat> a [11:53] <deneme6> Sonuç: a [11:53] <Feragat> b [11:53] <deneme6> Sonuç: b [11:53] <Feragat> c [11:53] <deneme6> Sonuç: c

- Matchtext'ler farklı olduğu için herhangi bir sorun yaşamadık ve eventlar ayrı ayrı tetiklendi.

Örnek2:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on *:text:*:#deney:msg # Sonuç: a on *:text:b:#deney:msg # Sonuç: b on *:text:c:#deney:msg # Sonuç: c

Sonuç:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
[11:55] <~Feragat> a [11:55] <deneme6> Sonuç: a [11:55] <~Feragat> b [11:55] <deneme6> Sonuç: a [11:55] <~Feragat> c [11:55] <deneme6> Sonuç: a

- ilk event'da * (herhangi bir matchtext) karakterini kullandık, bu yüzden * karakteri, gireceğimiz tüm metinlerde tetikleneceği için tüm girilen metinlerde tetiklendi ve sonuç olarak sadece a döndü.

Not: Bazı durumlarda Remote sayfasındaki event'ların sıralarının önemi vardır. Buna örnek verecek olursak.

Sıra Örnek:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on *:text:b:#deney:msg # Sonuç: b on *:text:*:#deney:msg # Sonuç: a on *:text:c:#deney:msg # Sonuç: c

Sonuç:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
[12:00] <Feragat> a [12:00] <deneme6> Sonuç: a [12:00] <Feragat> b [12:00] <deneme6> Sonuç: b [12:00] <Feragat> c [12:00] <deneme6> Sonuç: a

Görüldüğü gibi matchtext üzerinde * bu karakteri kullanmış da olsak, sırayı önemsedi ve #deney kanalında b yazıldığında, b matchtexti geçen event ilk sırada olduğu için onu çalıştırdı.
- c metni yazıldığında ise öncelik olarak * karakteri kullanılan eventı önemsedi ve a cevabı verdi.

Sıra Örnek2:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on *:text:b:#deney:msg # Sonuç: b on *:text:c:#deney:msg # Sonuç: c on *:text:*:#deney:msg # Sonuç: a

Sonuç:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
[12:06] <Feragat> a [12:06] <deneme6> Sonuç: a [12:06] <Feragat> b [12:06] <deneme6> Sonuç: b [12:06] <Feragat> c [12:06] <deneme6> Sonuç: c

- Eventlar yine sıralamayı önemsedi ve * karakteri kullanılan event en altta olduğu için, b ve c matchtext i ile tetiklenen eventlarda doğru tetiklendi ve doğru yanıt verdi. Diğer tüm text'lerde ise a yanıtı verecektir.

Sıra Örnek3:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on *:text:*:#deney:msg # Sonuç: b on *:text:*:#deney:msg # Sonuç: c on *:text:*:#deney:msg # Sonuç: a

Sonuç:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
[12:17] <Feragat> a [12:17] <deneme6> Sonuç: b [12:17] <Feragat> b [12:17] <deneme6> Sonuç: b [12:17] <Feragat> c [12:17] <deneme6> Sonuç: b

Tüm matchtext'ler, herhangi bir metinde tetiklendiği için, sıralamayı önemsedi ve ilk eventı baz aldı. Tüm sonuçları b olarak döndü.

2- Event Prefixlerinde On Text eventının işleyişi

- & Prefixi:

Bu prefix ile On text eventında halt veya haltdef edilen metin veya metinleri belirtilen kanal veya kanallarda başka bir On text eventının etkilememesi sağlanır.

Örnek:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on ^*:text:a:#deney:haltdef

Eğer #deney kanalında a karakteri yazılırsa görmeyeceğiz.

Eğer 2 event alt alta kullanırsak;

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on ^*:text:a:#deney:haltdef on *:text:a:#:echo -a deneme

- 1. Event'ta #deney kanalında a karakteri yazıldığında bize gösterme dedik.
- 2. Event'ta ise # Herhangi bir kanalda a karakteri yazılırsa deneme kelimesini aktif ekrana echo yap dedik. Bu şekilde #deney kanalındaki a karakterini kapattığımız halde alttaki event yüzünden yinede a kelimesine tepki verecek ve aktif ekrana deneme yazısı yansıyacaktır.

- Biz 2. eventta & Prefixini kullanırsak eğer, alttaki event üstteki haltdef ile a harfine kapatılan eventa saygı duyacak ve #deney kanalında a karakterini haltdef ettiğimiz için deneme kelimesi echo edilmeyecek.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on ^*:text:a:#deney:haltdef on &*:text:a:#:echo -a deneme

3- $ Prefixinde opsiyonel m parametresi.

mIRC.chm dosyasında "Event Prefixes" başlığındaki anlatımı:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on $*:TEXT:m/regular expression/switches:#:/echo message: $1- The 'm' and switches are optional.

- m parametresi ile regexte kullanılan /()/ karakterlerini biçimlendirebiliriz.
(regexin başında kullanılması şartıyla..)

Örnek:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
//echo -a $regex(mirc,mxrc) - 1

- m parametresi biçimlendirici bir parametre olduğu için biz eğer $regex(mirc,/mxrc/) veya $regex(mirc,(mxrc)) şeklinde bir kalıp kullanmazsak sonuç 1 dönecektir.

Üstteki örnekte regex'imiz $regex(mirc,/rc) bu mantıkla çalışmış oldu ve mirc kelimesi içinde rc yi aradı ve buldu, sonuç 1 döndü.

- m parametresi ile / / slash karakterlerini biçimlendirmeye bir kaç örnek verelim.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
//echo -a $regex(deneme,mx(deneme)xi)

Burada m parametresi ile /(deneme)/i kalıbını mx(deneme)xi kalıbına dönüştürdük.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
//echo -a $regex(DeNeMe,m\(deneme)\i)

Üstte ise m parametresi ile / / bunlar m\ \ buna dönüşmüş oldu.

- m parametresi mirc.chm de anlatıldığı üzere On Text eventında da aynı işlevi sağlamaktadır.

- Biraz kendi kendinize örnekler ve denemeler yaparak konuyu daha iyi kavrarsınız. Kolay gelsin.

__________________
The Ghost of Christmas Past...

i'm here sometimes
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet reklamver