mIRC Scripting  


Geri dön   mIRC Scripting > mIRC Scripting > Help - Yardım

Help - Yardım mIRC Scripting hakkında her konuda yardım alabileceğiniz bölümdür.

Cevapla
 
LinkBack Seçenekler
  #1  
Alt 22 Ocak 2014, 17:49
Avatar Yok

mS Puan: 1
mS Derece: MerakLıuser
 
Üyelik tarihi: 28 Haziran 2012
Mesajlar: 3
Konular: 2
Eklentiler: 0
Alınan Teşekkür: 0
Yapılan Teşekkür: 0
Standart Yazı code problem.

Alıntı:
Feragat Nickli Üyeden Alıntı Mesajı göster
Bu konu ile ilgili yapılmış bazı çalışmalar var fakat yapılan snippet(parça) kodları incelediğimde, while döngüleri veya alias'lar falan kullanıldığını gördüm. Hatta hatalı regex tanımı uygulandığına da şahit oldum. Döngü ve alias kullanmadan neler yapılabilir diye düşünürken bir snippet oluşturdum.

Özellikleri:
Cümle, (/ ! .) bu 3 karakterden biriyle başlamıyorsa çalışır.
- Yazdığınız aktif ekran eğer bir #Kanal ise, cümle içinde geçen Nick(Kanalda bulunması şartıyla) renklendirir. Ayrıca Punct(!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~) karakterlerini de tek tek ve ayrı ayrı renklendirir.
- Yazdığınız aktif ekran query(Özel) penceresi ise, yukarıda anlatılan tanımdaki gibi aynı özelliklerle çalışır.
- Cümlenin ilk harfini büyük yapar ve noktadan sonra yada nokta ve boşuktan sonra yazıldığında ilk harfi yine büyük yapar.

Not: Kodu çalıştırdığınız/yüklediğiniz remote sayfasında farklı input event'ları varsa problem yaşarsınız. Mümkünse boş bir remote sayfasında kullanın. Bu tarz kodlar %100 sağlıklı çalışır diyemem ama görüntü ve eğlence açısında kullanılabilir.

Kod:
on *:input:*: {
  if $regex($left($1-,1),/[^.!/]/S) {
    if $window($active).type == channel { msg $active $regsubex($regsubex($regsubex($1-,/(\S+)/Sg,$iif(\1 ison #,$+(,,$r(2,6),\1,),\1)),/([[:punct:]])/g,$+(,$r(2,6),\1,)),/(^.|[0-9[:cntrl:]]\x2E\xF\s?.)/g,$upper(\1)) | halt }
    if $window($active).type == query { msg $active $regsubex($regsubex($regsubex($1-,/(\S+)/Sg,$iif(\1 == $active,$+(,$r(2,6),\1,),\1)),/([[:punct:]])/g,$+(,$r(2,6),\1,)),/(^.|[0-9[:cntrl:]]\x2E\xF\s?.)/g,$upper(\1)) | halt }
  }
}
Örnek görüntü:


İyi forumlar.
on *:input:*:{
if !$istok(/ ! .,$left($1,1),32) {
if $window($active).type == channel { msg $active $regsubex($1-,/([^[:punct:]\s]+)/gi,$iif(\1 ison #,\1,\1)) }
elseif $window($active).type == query { msg $active $regsubex($1-,/([^[:punct:]\s]+)/gi,$iif(\1 == $active,\1,\1)) }
halt
}
}

bu kod sizinkine benziyorda renk falan yok sadece nickleri ince yazdiriyor, ama nick icindeki _ | { vs karakterle sıkınti cikiyor nasil giderebilirim?

Konu Difuzyon tarafından (24 Ocak 2014 Saat 19:24 ) değiştirilmiştir. Sebep: gülümsemeler gösterilmesin
Alıntı ile Cevapla
Sponsored Links
  #2  
Alt 24 Ocak 2014, 19:29
Avatar Yok
 Coders 

mS Puan: 621
mS Derece: Difuzyon ÇalışkanDifuzyon ÇalışkanDifuzyon ÇalışkanDifuzyon ÇalışkanDifuzyon ÇalışkanDifuzyon Çalışkan
 
Üyelik tarihi: 16 Temmuz 2009
Bulunduğu yer: code talks!
Mesajlar: 83
Konular: 36
Eklentiler: 4
Alınan Teşekkür: 5
Yapılan Teşekkür: 0
Standart

[:punct:] noktalama işaretlerini simgeler.
\s boşluk karakterini simgeler.
[^[:punct:]\s] içerisinde noktalama işaretleri ve boşluk karakteri olmayan karakterleri simgeler. Bazı nicklerde (ahmet_32, serap|ist, [lalegul] vb.) bu tür noktalama işaretleri geçtiğinden regsubex tanımın olumsuz etki edecektir.

Bu sıkıntıyı yaşamamak için ([^[:punct:]\s]+) tanımı yerine (\S+) tanımını kullanmalısın.
Burada ki \S boşluk olmayan karakterleri simgeler.
__________________
Koli
Alıntı ile Cevapla
  #3  
Alt 24 Ocak 2014, 23:05
Feragat - ait Kullanıcı Resmi (Avatar)
 Headcoder 

mS Puan: 801
mS Derece: Feragat ÇalışkanFeragat ÇalışkanFeragat ÇalışkanFeragat ÇalışkanFeragat ÇalışkanFeragat ÇalışkanFeragat Çalışkan
 
Üyelik tarihi: 31 Mart 2012
Bulunduğu yer: $mircdir
Mesajlar: 89
Konular: 41
Eklentiler: 5
Alınan Teşekkür: 60
Yapılan Teşekkür: 37
Cool

Sunucumuz üzerinden cevap verdim ama, konu altına da fikrimi belirteyim.
Kullandığın kodu hatırlıyorum regex filtresini Difuzyon yapmıştı. Difuzyon'un söylediği seçenek dışında kısmen çalışabilecek şöyle bir seçenekte olabilir;
- \S yani [^[:space:]] Non-Space operatörüne biraz özellik ekleyebiliriz.

Örnek:

Kod:
on *:input:*:{
  if !$istok(/ ! .,$left($1,1),32) {
    if $window($active).type == channel { msg $active $regsubex($1-,/([^[:space:]\*\?\,\.\:\51\50\{\}\^\\\%\<\>\/\=\@\;\&\!\"\#\'\]\[]+)/gi,$iif(\1 ison #,\1,\1)) }
    elseif $window($active).type == query { msg $active $regsubex($1-,/([^[:space:]\*\?\,\.\:\51\50\{\}\^\\\%\<\>\/\=\@\;\&\!\"\#\'\]\[]+)/gi,$iif(\1 == $active,\1,\1)) }
    halt
  }
}
Notlar:
Nick içerisinde izin verilen karakterler bellidir. { } _-`| gibi (ve rakamlar.) Nick içinde eğer bu karakterlerden birisi geçiyorsa, sonradan nickin başına veya sonuna bunları koyduğunda kod istediğin şekilde çalışmaz..
Örnek veriyorum kullanıcının nicki D{aR}k ise ve sen nickin sonuna veya başına D{aR}k} (Bracket) ilave edip yazarsan istediğin sonucu vermez. Nickin içinde olmasını istediğin karakterleri Non-Space ve diğer eşleşmeyenlerin filtre edildiği bölümden(([^[:space:]\*\?\,\.\:\51\50\{\}\^\\\%\<\>\/\=\@\;\&\!\"\#\'\]\[]+) yani burdan) çıkarmalısın. Eğer nickin içinde { } bunlar olduğunda da kod işlem yapsın istiyorsan; regexin içinden \{\} bu şekilde silmelisin, punct karakter çakışmasını engelleyip kodu çalıştırabilmek adına. .
-- Biraz uzun bir yol oldu farklındayım ve kısmi bir yol
İyi forumlar.
__________________
Vi veri veniversum vivus vici..
Alıntı ile Cevapla
Cevapla

Etiketler
code, problem, yazı

Seçenekler

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 Açık
Pingbacks are Açık
Refbacks are Açık



Yasal Uyarı

    5651 sayılı yasada belirtilen "Yer Sağlayıcı" olarak hizmet sunmaktadır. İlgili yasaya göre site yönetiminin tüm içerikleri kontrol etme yükümlülüğü yoktur. Bu sebep ile sitemiz, uyarıları dikkate alarak yasa dışı paylaşımlar hakkında gerekli işlemleri yapmaktadır. Oluşabilecek yasal sorumluluklar üyelerimize aittir. Gerekli şikayet bildirimleri yapabilmek için "burayı" tıklayarak gerekli alanları doldurup yapabilirsiniz.
mIRCScripting©
Powered by vBulletin®
Copyright © 2000-2015, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1

1 2 13 14 16 17 18 19 21 22 23 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 49 50 51 52 54 55 56 57 58 59 60 61 62 63 67 68 69 70 71 72 73 74 75 76