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

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   mIRC Scripting Sorunları (https://www.ircforumlari.net/mirc-scripting-sorunlari/)
-   -   shunlist hk. (https://www.ircforumlari.net/mirc-scripting-sorunlari/836915-shunlist-hk.html)

Fredyyy 13 Eylül 2019 16:23

shunlist hk.
 
İyi çalışmalar dilerim bir kaç koda bakıp birleştirmeye çalışarak kendi çapımda bir deneme yaptım. Yalnız kodu çalıştıramadım. Eksiklerim nerede yardımcı olur musunuz? Bir de wilcard olayı da olsun istiyorum. *zebani* *z*e*b*a*n*i* tarzında.. Şimdiden teşekkür ederim.




Kod:

on *:join:#sohbet: {
if $read(shunn.txt,w,$+($3,¿,*)) { msg #takip $nick kanala giriş yaptı ve shun atıldı. | shun $nick $network tedbir! } }
on *:input:#: {
  if $regex($1,/^([.!]shun)/Si) {
    if !$read(master.txt,w,$nick) { msg #takip 2Yetkili listesinde bulunamadıgınız için kullanamazsınız. | return }
    if !$2 { msg #takip 2Lütfen parametre belirtiniz.4 !shun at|listele|atma | return }
  }
  if $2 == listele {
    if $lines(shunn.txt) = 0 { msg #takip 2Shun kayiti bulunamadi. | halt }
    msg #takip 2Shun listesi siralaniyor.
    var %massacre 1
    while (%massacre <= $lines(shunn.txt)) {
      msg #takip $+(%massacre,-,$chr(41),) 4Nick:2 $token($read(shunn.txt,%massacre),1,191) 4Sebep:2 $token($read(shunn.txt,%massacre),2,191)
      inc %massacre
    }
  }
  if $2 == at {
    if !$3 { msg #takip 2Lütfen nick belirtiniz.4 !shun at nick | return }
    if $read(shunn.txt,w,$+($3,¿,*)) { msg #takip 2Eklemeye çalıştığınız nick zaten listede ekli, tekrar ekleyemezsiniz. | return }
    write shunn.txt $+($3,¿,$iif($4 == $null,Belirsiz,$4-))
    msg #takip 4 $+ $3 $+ , 2shun listesine eklenmiştir. 4Sebep:2 $iif($4 == $null,Belirsiz,$4-)
  }
  if $2 == atma {
    if !$3 { msg #takip 2Lütfen nick belirtiniz.4 !shun atma nick | return }
    if !$read(shunn.txt,w,$+($3,¿,*)) { msg #takip 4 $+ $3 $+ , 2listede bulunamadı. | return }
    write -dw $+ $+($3,¿,*) shunn.txt
    msg #takip 4 $+ $3 $+ , 2Shun listesinden silinmiştir.
  }
}


Emrehan 13 Eylül 2019 20:08

Cevap: shunlist hk.
 
Kod:

on *:join:#sohbet:{
  if $read(shunn.txt,w,$+($nick,¿*)) {
    msg #takip $nick kanala giriş yaptı ve shun atıldı.
    shun $nick $network tedbir!
  }
}
on *:input:#:{
  if $regex($1,/^[.!]shun/Si) {
    if !$read(master.txt,w,$nick) { msg #takip 2Yetkili listesinde bulunamadıgınız için kullanamazsınız. | return }
    elseif !$regex($2,/(at|atma|l[ıiİ]stele)/Si) { msg #takip 2Hatalı kullanım:4 !shun at|listele|atma | return }
    elseif $2 == listele {
      if $lines(shunn.txt) <= 0 { msg #takip 2Shun kayiti bulunamadi. | halt }
      msg #takip 2Shun listesi siralaniyor.
      var %massacre 1 | while (%massacre <= $lines(shunn.txt)) {
        msg #takip $+(%massacre,-,$chr(41),) 4Nick:2 $token($read(shunn.txt,%massacre),1,191) 4Sebep:2 $token($read(shunn.txt,%massacre),2,191)
        inc %massacre
      }
    }
    elseif $2 == at {
      if !$3 { msg #takip 2Lütfen nick belirtiniz.4 !shun at nick | return }
      elseif $read(shunn.txt,w,$+($3,¿*)) { msg #takip 2Eklemeye çalıştığınız nick zaten listede ekli, tekrar ekleyemezsiniz. | return }
      else {
        write shunn.txt $+($3,¿,$iif($4 == $null,Belirsiz,$4-))
        msg #takip 4 $+ $3 $+ , 2shun listesine eklenmiştir. 4Sebep:2 $iif($4 == $null,Belirsiz,$4-)
      }
    }
    elseif $2 == atma {
      if !$3 { msg #takip 2Lütfen nick belirtiniz.4 !shun atma nick | return }
      elseif !$read(shunn.txt,w,$+($3,¿*)) { msg #takip 4 $+ $3 $+ , 2listede bulunamadı. | return }
      else {
        write $+(-,dl,$readn) shunn.txt
        msg #takip 4 $+ $3 $+ , 2Shun listesinden silinmiştir.
      }
    }
  }
}


Fredyyy 13 Eylül 2019 20:34

Cevap: shunlist hk.
 
Sayın @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] ne yazık ki olmadı. Eklediğim shun nickini görmüyor wilcard olarak eklediklerimi de aynı şekilde görmüyor ne yazık ki. ;s2

Emrehan 13 Eylül 2019 20:40

Cevap: shunlist hk.
 
Alıntı:

Fredyyy Nickli Üyeden Alıntı (Mesaj 1042154525)
Sayın @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] ne yazık ki olmadı. Eklediğim shun nickini görmüyor wilcard olarak eklediklerimi de aynı şekilde görmüyor ne yazık ki. ;s2

Kod:

on *:join:#sohbet:{
if $read(shunn.txt,w,$+($3,¿*)) {

Burayı

Kod:

on *:join:#sohbet:{
if $read(shunn.txt,w,$+($nick,¿*)) {

şeklinde değiştirin.

Fredyyy 13 Eylül 2019 21:28

Cevap: shunlist hk.
 
Ne yazık ki bir şey değişmedi efendim. ;s2

Feragat 14 Eylül 2019 00:24

Cevap: shunlist hk.
 
Alıntı:

Fredyyy Nickli Üyeden Alıntı (Mesaj 1042154552)
Ne yazık ki bir şey değişmedi efendim. ;s2

Kodu denedim biraz, çalışıyor.

Örnek görüntüler.
-
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

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

Sende hiç tepki vermiyor mu ?

Fredyyy 14 Eylül 2019 00:35

Cevap: shunlist hk.
 
Alıntı:

Feragat Nickli Üyeden Alıntı (Mesaj 1042154683)
Kodu denedim biraz, çalışıyor.

Örnek görüntüler.
-
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

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

Sende hiç tepki vermiyor mu ?

Hayır ne yazık ki hiçbir tepki yok sayın @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] hatta statuste herhangi bir kod ile de çakıştığı ile ilgili bir belirti de yok :)

YouMyCure 14 Eylül 2019 12:06

Cevap: shunlist hk.
 
Alıntı:

Fredyyy Nickli Üyeden Alıntı (Mesaj 1042154689)
Hayır ne yazık ki hiçbir tepki yok sayın @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] hatta statuste herhangi bir kod ile de çakıştığı ile ilgili bir belirti de yok :)

çakışıyor olabilir boş remote sayfasına ekleyin

Fredyyy 14 Eylül 2019 12:18

Cevap: shunlist hk.
 
Alıntı:

YouMyCure Nickli Üyeden Alıntı (Mesaj 1042154848)
çakışıyor olabilir boş remote sayfasına ekleyin

Hiçbir çakışma yoktu Sayın @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] yalnız Sayın @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] beyin dediği on *:join:#sohbet:{
if $read(shunn.txt,w,$+($nick,¿*)) {
kısmında $+($nick,¿,*) olan yere virgün koyup kodun diğer kısımlarındaki benzer noktaları da aynı şekil değiştirdim. Şimdi kanala giren ÖRN: ceber nickine shun atıyor yalnız ceber* şeklinde shun eklediğim vakit, ÖRN: ceberrrr olarak nick girişi olunca algılamıyor. Özetle wilcard kısmı olmuyor sanırım. :) Sizlerin de kıymetli vaktini aldığımın farkındayım, kusuruma bakmayın lütfen. Bir de @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] bey sizde de wilcardlı olarak komut işlev gördü mü? Şimdiden ilginiz için teşekkür ederim.


Kod:

on *:join:#sohbet:{
  if $read(shunn.txt,w,$+($nick,¿,*)) {
    msg #takip $nick kanala giriş yaptı ve shun atıldı.
    shun $nick $network tedbir!
  }
}
on *:input:#:{
  if $regex($1,/^[.!]shun/Si) {
    if !$read(master.txt,w,$nick) { msg #takip 2Yetkili listesinde bulunamadıgınız için kullanamazsınız. | return }
    elseif !$regex($2,/(at|atma|l[ıiİ]stele)/Si) { msg #takip 2Hatalı kullanım:4 !shun at|listele|atma | return }
    elseif $2 == listele {
      if $lines(shunn.txt) <= 0 { msg #takip 2Shun kayiti bulunamadi. | halt }
      msg #takip 2Shun listesi siralaniyor.
      var %massacre 1 | while (%massacre <= $lines(shunn.txt)) {
        msg #takip $+(%massacre,-,$chr(41),) 4Nick:2 $token($read(shunn.txt,%massacre),1,191) 4Sebep:2 $token($read(shunn.txt,%massacre),2,191)
        inc %massacre
      }
    }
    elseif $2 == at {
      if !$3 { msg #takip 2Lütfen nick belirtiniz.4 !shun at nick | return }
      elseif $read(shunn.txt,w,$+($3,¿,*)) { msg #takip 2Eklemeye çalıştığınız nick zaten listede ekli, tekrar ekleyemezsiniz. | return }
      else {
        write shunn.txt $+($3,¿,$iif($4 == $null,Belirsiz,$4-))
        msg #takip 4 $+ $3 $+ , 2shun listesine eklenmiştir. 4Sebep:2 $iif($4 == $null,Belirsiz,$4-)
      }
    }
    elseif $2 == atma {
      if !$3 { msg #takip 2Lütfen nick belirtiniz.4 !shun atma nick | return }
      elseif !$read(shunn.txt,w,$+($3,¿,*)) { msg #takip 4 $+ $3 $+ , 2listede bulunamadı. | return }
      else {
        write $+(-,dl,$readn) shunn.txt
        msg #takip 4 $+ $3 $+ , 2Shun listesinden silinmiştir.
      }
    }
  }
}


Feragat 14 Eylül 2019 21:56

Cevap: shunlist hk.
 
Alıntı:

Fredyyy Nickli Üyeden Alıntı (Mesaj 1042154859)
Hiçbir çakışma yoktu Sayın @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] yalnız Sayın @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] beyin dediği on *:join:#sohbet:{
if $read(shunn.txt,w,$+($nick,¿*)) {
kısmında $+($nick,¿,*) olan yere virgün koyup kodun diğer kısımlarındaki benzer noktaları da aynı şekil değiştirdim. Şimdi kanala giren ÖRN: ceber nickine shun atıyor yalnız ceber* şeklinde shun eklediğim vakit, ÖRN: ceberrrr olarak nick girişi olunca algılamıyor. Özetle wilcard kısmı olmuyor sanırım. :) Sizlerin de kıymetli vaktini aldığımın farkındayım, kusuruma bakmayın lütfen. Bir de @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] bey sizde de wilcardlı olarak komut işlev gördü mü? Şimdiden ilginiz için teşekkür ederim.

Merhabalar.

Yaptığın kodu, Fırsat bulup ancak inceleyebildim.

Yapmak istediğin işi anlıyorum ama istediğin gibi çalışması için mantığı değiştirmen gerek.

Şöyle anlatayım. Neyi, neyin içinde aradığına dikkat etmen gerek.

Örneğin; Elindeki veri Nick ve sen bu nicki dosya içinde eklediğin filtreler içinde arayacaksan eğer üstteki yaptığın hatalı çalışır.

Mantık hatası şudur;
$read mantığında Bütünü, parçanın içinde arayamazsın. Parçayı bütünde araman gerekiyor.
Mesela kanala giren nick Feragat diyelim, shunn.txt içinde eklediğin verilerin wildcard kullanılarak eklendiğini düşünelim.

Kanala Giren Nick = Feragat
Wildcard Ekli Parça = Fera*

Sen burada Feragat nickini Fera* kalıbı içinde ararsan sonuç alamazsın. Tam tersi Fera* yı Feragat'in içerisinde ararsan sonuç bulabilirsin.
Bunu başarabilmen için döngü kullanmalısın ki bu sağlıklı sonuç verebilse de yüzlerce kalıp ekli olduğunu düşünürsek çok yavaş sonuç verir. Döngü .txt içindeki her veriyi kanala giren nick ile kıyaslayacak ve eşleşme olursa sonuç dönecek. 1000 satır veri olduğunu var sayarsan bir hayli yavaş olur.

Bunu tek bir tanım içinde yapabilmek için hash table tanımlarını kullanabilirsin. Hash table Bütünü, parçanın içinde arayabiliyor.

Hash table için örnek.

Kod:

//hadd -ms Nickler Fer* Reklam

//echo -a $hfind(Nickler,Feragat,1,W)


Feragat bütününü Fer* parçasının içinde buldu.

Bunun dışında Access Levels konusundaki User List kullanmanı öneririm.

Event prefixi olarak join eventına ekleyip wildcard ile kanala giren nickleri döngüsüz tespit edip işlem yaptırabilirisin. ( Sebep de ekleyebilirsin. )

Access Levels için incelemeni önereceğim konu: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
Belki fikir verebilir. Ayrıca .txt dosyalarına yazma/okuma/silme yaptırmana da gerek kalmaz.


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 09:17.

Powered by vBulletin® Version 3.8.8 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2024 IRCForumlari.Net