IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

 Kayıt ol  Topluluk
30Beğeni(ler)
  • 5 Post By Feragat
  • 4 Post By IrCbaStarD
  • 5 Post By uFuK
  • 8 Post By Feragat
  • 6 Post By Feragat
  • 2 Post By Feragat

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 09 Mayıs 2015, 01:54   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
on TEXT ile ilgili




merhabalar scripting konusunda kendimi geliştirmeye çalışıyorum. "On Events" konusunda şöyle bir örnekle karşılaştım fakat bir türlü çalıştıramadım hiçbir yerde de örnek yok.

bir örnek; burda %text'e !cool değeri yüklenmiş
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on $*:text:%text:#:{ msg $chan I am the coolest! }

böyle bir kod yazmaya çalışsak örneğin %text'e nasıl değer yükleriz? şöyle bi saçmalamadım ama başarısız oldum;
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on $*:text:%text:#:{ var %hile = !cool msg $chan I am the coolest! }


 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet
Alt 09 Mayıs 2015, 02:10   #2
Çevrimdışı
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




Zifiri Nickli Üyeden Alıntı
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
merhabalar scripting konusunda kendimi geliştirmeye çalışıyorum. "On Events" konusunda şöyle bir örnekle karşılaştım fakat bir türlü çalıştıramadım hiçbir yerde de örnek yok.

bir örnek; burda %text'e !cool değeri yüklenmiş
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on $*:text:%text:#:{ msg $chan I am the coolest! }

böyle bir kod yazmaya çalışsak örneğin %text'e nasıl değer yükleriz? şöyle bi saçmalamadım ama başarısız oldum;
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on $*:text:%text:#:{ var %hile = !cool msg $chan I am the coolest! }


On Text event'ında $ prefix'i ile matchtext yani %text kısmına Regular Expression (regex) ifade eklersin.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on $*:text:%text:#:{ msg $chan I am the coolest! }

Üstteki event için alttaki gibi bir atama yaparsan !cool veya .cool metinlerine tepki verecektir.
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
//set %text /^[.!]cool$/Si

Örnek:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on $*:text:/ircforumlari/i:#:{ kodlar }

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on $*:text:/naber|nbr|nasılsın/i:#:{ kodlar }


__________________
The Ghost of Christmas Past...

i'm here sometimes
 
Alıntı ile Cevapla

Alt 09 Mayıs 2015, 02:15   #3
Çevrimdışı
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




Sonunda istek disinda teknik birsey soran cıktı sevindim
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

 
Alıntı ile Cevapla

Alt 09 Mayıs 2015, 07:43   #4
Çevrimdışı
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




Biz genelde text eventini kullanırken %text değişkeni şeklinde değilde :*: koyarak çalıştırırız böylelikle alt alta tek bir eventta birçok koşulu kontrol edebiliriz eğer sen %text şeklinde yaparsan o eventi sadece %text değişkenine bağlamiş olursun böyle yapmak yerine

Alıntı:
on *:text:*:#: {
if %text isin $1- {
yapılacak işlemler
}
if *!komut* iswm $1- {
yapılacak işlemler
}
if *#* iswm $1- {
mode # +b $address($nick,2) | kick # $nick kanal reklami yasaktir
}
}

Unutmadan ayni remote sayfasinda ayni eventta birden çok kullanma.

on *:text:*:#: {
işlemler
}
on *:text:%text:#: {
işlemler
}

Ayni sayfada olursa çalışmayabilirler.

 
Alıntı ile Cevapla

Alt 09 Mayıs 2015, 13:17   #5
Çevrimdışı
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

Alt 09 Mayıs 2015, 16:26   #6
Çevrimdışı
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




@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] verdiğin açıklayıcı ve öğretici cevaplar için teşekkür ederim. ON eventinde $ prefixi ile ilgili merak ettiğim bir konu daha var. mesela içinde küfür kelimeleri olan bir txt dosyamız olsun. #benimkanalim'da bu sözlerin geçmesi durumunda nicke ban atacak bir script yapmak isteyelim;

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on $*:text:%kufurkoruma:#benimkanalim:{ ban $chan $nick }

bu scripti ayarlamamız için %kufurkoruma'yı nasıl set'lememiz gerekiyor?

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
//set %kufurkoruma $read(kufurler.txt)

yine şu şekilde saçmaladım ama? yanlış yoldayım sanırım
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

 
Alıntı ile Cevapla

Alt 09 Mayıs 2015, 16:52   #7
Çevrimdışı
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




Zifiri Nickli Üyeden Alıntı
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] verdiğin açıklayıcı ve öğretici cevaplar için teşekkür ederim. ON eventinde $ prefixi ile ilgili merak ettiğim bir konu daha var. mesela içinde küfür kelimeleri olan bir txt dosyamız olsun. #benimkanalim'da bu sözlerin geçmesi durumunda nicke ban atacak bir script yapmak isteyelim;

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on $*:text:%kufurkoruma:#benimkanalim:{ ban $chan $nick }

bu scripti ayarlamamız için %kufurkoruma'yı nasıl set'lememiz gerekiyor?

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
//set %kufurkoruma $read(kufurler.txt)

yine şu şekilde saçmaladım ama? yanlış yoldayım sanırım
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.



on text eventında $ prefixi yalnızca regex matchtext eklemek için kullanılır. Üstteki koduna örneklerde gösterdiğim gibi,

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on *:text:/kelime1|kelime2|kelime3|kelime4|kelime5/Si:#benimkanalim:{

böyle bir eklenti yaparsan, belirttiğin kelimelerde event tetiklenir ve ne uygulamak istiyorsan onu uygular.

Matchtext kısmına $read komutuda eklenebilir ama senin istediğin gibi bir olay için değil.

- Matchtext kısmına $read eklemek,

mIRC Klasöründe deneme.txt isimli bir dosyamız olduğunu farzedelim. Bu .txt dosyasının içeriği şöyle olsun.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
bir iki üç dört beş

1-
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on *:text:$($read(deneme.txt,w,ü*)):#deney:msg # Eşleşen: $matchkey - deneme.txt içindeki ü* filtresine uyan ilk satır ile tetiklenir. [16:44] <Feragat> üç [16:44] <deneme6> Eşleşen: üç


2-
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on *:text:$($read(deneme.txt,w,*i*)):#deney:msg # Eşleşen: $matchkey - deneme.txt içinde *i* filtresine uyan ilk satırla tetiklenir. [16:45] <Feragat> bir [16:45] <deneme6> Eşleşen: bir

3-
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on *:text:$($read(deneme.txt,1)):#deney:msg # Eşleşen: $matchkey - deneme.txt içindeki 1. satırda geçen text ile tetiklenir. [16:46] <Feragat> bir [16:46] <deneme6> Eşleşen: bir

- Ve daha pek çok olasılık mümkün.

Bunun dışında .txt içindeki küfürlü kelimeleri okutup karşılaştırmak için matchtext e veri girmek yerine farklı yollar denemelisin, örnek: while döngüsü gibi..

__________________
The Ghost of Christmas Past...

i'm here sometimes
 
Alıntı ile Cevapla

Alt 10 Mayıs 2015, 00:36   #8
Çevrimdışı
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




@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] inan while döngüsü hakkında hiçbir bilgim yok. birkaç örnek verebilir misin nasıl yapacağıma dair veya link verebilir misin?

 
Alıntı ile Cevapla

Alt 10 Mayıs 2015, 01:06   #9
Çevrimdışı
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




Zifiri Nickli Üyeden Alıntı
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] inan while döngüsü hakkında hiçbir bilgim yok. birkaç örnek verebilir misin nasıl yapacağıma dair veya link verebilir misin?

Buradan inceleye bilirsin.

Link: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

__________________
The Ghost of Christmas Past...

i'm here sometimes
 
Alıntı ile Cevapla

Alt 10 Mayıs 2015, 02:06   #10
Çevrimdışı
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




@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] şöyle bir kod yaptım while döngüsü ile ilgili, fakat kodu /deneme komutuyla çalıştırdığımda mIRC donup kalıyor.. yanlışım nerde?

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
alias deneme { var %x 1 var %t $lines(kufurler.txt) while %x <= %t { echo -a $read(kufurler.txt,%x) inc %x } }

bir de; while döngüsünü kullanarak benim istediğim şeyi nasıl yapıcaz tam olarak onu anlamadım?

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on *:TEXT:%deneme:#:{

şeklinde mi?
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

 
Alıntı ile Cevapla

Cevapla

Etiketler
ile, ilgili, text


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Göz ile ilgili Deyimler - Gözle ilgili Deyim Zen Atasözleri ve Deyimler 0 03 Şubat 2013 12:20
on ^*:TEXT: ile ilgili Requiem mIRC Scripting Sorunları 13 13 Aralık 2008 20:55
$_sw(TEXT) ve $_swkoruma(TEXT) identifiers (küfür koruması) SpecifiC mIRC Scripting Hazır Kodlar 1 20 Ağustos 2007 18:08