IRCForumu.Net - Türkiye'nin IRC ve mIRC Kullanıcılarının Buluştuğu Forum

IRCForumu.Net - Türkiye'nin IRC ve mIRC Kullanıcılarının Buluştuğu Forum (https://www.ircforumu.net/)
-   Hazır Kodlar (https://www.ircforumu.net/hazir-kodlar/)
-   -   İsteğe göre yazılan kodlar (https://www.ircforumu.net/hazir-kodlar/827-istege-gore-yazilan-kodlar.html)

immortaL 04 Haziran 2016 15:34

İsteğe göre yazılan kodlar
 
Sesli harfleri "*" karakteri olarak gösterme.
Kullanım: Reklam.txt içerisindeki kelimeler üzerinde işlev yapar.

Kod:

on @*:text:*:#:{
  var %s = 1,%ss = $lines(reklam.txt)
  while %s <= %ss {
    if $+(*,$read(reklam.txt,%s),*) iswm $1- {
      var %o = $remove($v1,*),%p = $regsub(%o,/(a|e|i|u|ü|o|ö|[A-Z])/gi,$chr(42)\1,%o)
      ban -k # $nick 2 Yasaklı kelime kullandınız: %o
    }
    inc %s
  }
}

İkinci kullanım:

Örneğin; //echo -: $ok(Nasılsınız?) yaptığında; N*s*ls*n*z? olarak dönecektir.



Kod:

alias ok {
  var %1 = $1-
  var %2 = $regsub(%1,/(a|e|i|u|ü|o|ö|ı)/gi,$chr(42)\1,%1)
  return %1
}



Bu kod özele yazan nick kayıtlı değilse ve kufur.txt dosyasından herhangi bir kelimeyi kullandıysa, tüm kanallardan banlamak için kullanılır.



Kod:

on *:text:*:?: {
  inc -e $+(%,t,$nick)
  if $($+(%,t,$nick),2) == 1 {
    .enable #u
    .who $nick
  }
  else {
    var %1 = 1,%2 = $lines(kufur.txt)
    while %1 <= %2 {
      if $+(*,$read(kufur.txt,%1),*) iswm $1- && $hmatch(nick,$nick) {
        var %p = $nick
      }
      inc %1
    }
    var %s = 1,%ss = $comchan($me,0)
    while %s <= %ss {
      if $nick ison $comchan($me,%s) {
        ban -ku900 $comchan($me,%s) %p 2 BAN SEBEBİ.
      }
      inc %s
    }
  }
}
#u off
raw *:*: {
  if $numeric == 352 {
    if r !isincs $7 {
      haltdef
      hadd -m nick $6 1
    }
  }
  if $numeric == 315 {
    haltdef
    .disable #u
  }
}
#u end




Kanal menüsünü sağ tıklayarak temizle.txt içerisindeki dosyayı kanala yansıtma.
Not: Kanal temizlemek için kullanılır.


Kod:

menu channel {
  Temizle:temizle #
}
alias temizle {
  var %u = 1,%s = $lines(temizle.txt)
  while %u <= %s {
    msg $1 $read(temizle.txt,%u)
    inc %u
  }
}


Belirtilen kanala giren kullanıcıları, belirlenen kanallara random sajoin-lemek.


Kod:

on !*:join:#belirtilen-kanal:{
  var %q = #kanal1 #kanal2 #kanal3 #kanal4 #kanal5,%t = $calc($numtok(%q,32)+1)
  inc -e %r
  $iif(%r != %t,sajoin $nick $gettok(%q,%r,32),unset %r)
}




i) Kufur.txt dosyası üzerinde kanal yazılan text-lere işlem yapmak.
ii) Dosyaya kelime eklemek.
iii) Dosyadan kelime silmek.
iiii) Dosyadaki kelimeleri listemek vs.



Kod:


;/kekle kelime
alias kekle {
  if $1 {
    if $read(kufur.txt,w,$1) {
      echo -at $1 kelimesi zaten listede.
      return
    }
    else {
      write kufur.txt $1
      echo -at $1 kelimesi listeye eklendi.
    }
  }
}

;/ksil kelime
alias ksil {
  if $1 {
    if !$read(kufur.txt,w,$1) {
      echo -st $1 kelimesi listede yok.
      return
    }
    else {
      write $+(-dl,$readn) kufur.txt
      echo -st $1 kelimesi kufur listesinden silindi.
    }
  }
}

;/klist
alias klist {
  var %s = 1,%ss = $lines(kufur.txt)
  while %s <= %ss {
    echo -a Kelime: $read(kufur.txt,%s)
    inc %s
  }
}

;Esas kod
on @*:text:*:#:{
  var %s = 1,%ss = $lines(kufur.txt)
  while %s <= %ss {
    if $+(*,$read(kufur.txt,%s),*) iswm $1- {
      ban -k # $nick 2 küfür yasak vs.
    }
    inc %s
  }
}



Belirtilen kanalda kendi yazdığınız !sebeb [ip] kelimesi ilen belirtilen ip-i gzline/gline vb. listesinde arayıp, banlanma sebebini size/kanala yansıtacak kod.
Kullanım: !sebeb [ip-adresi]



Kod:

on *:input:#belirtilen-kanal:{
  if $1 == !sebeb && $2 {
    .enable #x
    set %ip $2
    stats g
  }
}
#x off
raw *:*:{
  if $numeric = 223 {
    haltdef
    var %& = $remove($3,@,*)
    if %ip == %& {
      hadd -m g $replace($7-,$chr(32),$chr(61))
    }
  }
  if $numeric = 219 {
    haltdef
    if !$hget(g) {
      msg #belirtilen-kanal %ip ip'i bulunamadı.
      return
    }
    else { 
      msg #belirtilen-kanal %ip ip'inin atılma sebebi; $replace($hget(g,1).item,$chr(61),$chr(32))
      hfree g
      disable #x
    }
  }
}
#x end



MsnSONG.dll kullanarak sunucudaki kullanıcı sayısını /map komutu ile msn-ye yansıtmak.


Kod:

alias msnsong {
  var %dll MsnSong.dll
  .comreg %dll
  .comopen msn Msn.Write
  var %i $com(msn,WriteToMsn,1,bstr,$1-,bstr,$null,bstr,$null)
  .comreg -u %dll
  .comclose msn
}
raw 6:*:msnsong $2 user sayısı: $3


Kanal text gönderirken text içerisinde kanalda bulunan bir nick varsa o nick bold/kalın olarak belirleme.


Kod:

on *:input:*: {
  if $left($1,1) != / {
    var %q 1
    while (%q <= $numtok($1-,32)) {
      if ($gettok($1-,%q,32) ison $active) {
        say $replace($1-,$v1,$+($chr(2),$v1,$chr(2)))
        break
      }
      inc %q
    }
    haltdef
  }
}




Özelinizdeki (/query) nickin clone-si hakkında bilgi veren kod.


Kod:

on *:active:?: {
  if $ial($address($active,2),0) >= 2 {
    inc -e $+(%,p,$active)
    if $($+(%,p,$active),2) == 1 {
      var %1 1,%2
      while %1 <= $ial($address($active,2),0) {
        %2 = $addtok(%2,$gettok($ial($address($active,2),%1),1, 33 ),32)
        inc %1
      }
      echo $active %2 nickleri aynı hosta sahipler.
    }
  }
}




Kanala giren guest takılı kullanıcılara işlev(uyarı, 2. uyarı ve ban) yapmak için hazırlamış olduğum bir kod.


Kod:

on *:join:#:$iif($nick == $me,.timerkntrl 0 60 guest #,$iif(guest* iswm $nick,$+(.timer,$v2) 1 30 msg # $+($chr(22),$v2,$chr(22)) nick değiştiriniz vs.))
alias guest {
  if $ialchan(Guest*,$1,0) >= 2 {
    var %t = 1,%y
    while %t <= $ialchan(Guest*,$1,0) {
      %y = $addtok(%y,$+($chr(22),$gettok($ialchan(Guest*,$1,%t),1,33),$chr(22)),32)
      $iif($hmatch(nick,$gettok($ialchan(Guest*,$1,%t),1,33)),hinc -m nick $gettok($ialchan(Guest*,$1,%t),1,33) 1,hadd -m nick $gettok($ialchan(Guest*,$1,%t),1,33) 1)
      if $hget(nick,$gettok($ialchan(Guest*,$1,%t),1,33)) >= 3 {
        ban -k $1 $gettok($ialchan(Guest*,$1,%t),1,33) 2 Sebeb.
        $+(.timer,$gettok($ialchan(Guest*,$1,%t),1,33)) off
        hdel -s nick $gettok($ialchan(Guest*,$1,%t),1,33)
      }
      inc %t
    }
    msg $1 %y nick değişiniz vs.
  }
}



Gelen noticeleri, snoticeleri ve rumuzunun geçtiği mesajları(kanal ayrı, özel ayrı) ayrı pencerelerde gösteren kodlar.


Kod:


on ^*:snotice:*:{
 $iif(!$window(@duyuru),window -nCBas @duyuru)
 echo 5 @duyuru SNOTICE: $1-
}
on ^*:notice:*:?:{
 $iif(!$window(@duyuru),window -nCBas @duyuru)
 echo 5 @duyuru Servis: $nick - Mesajı: $1-
}
on *:text:$($+(*,$me,*)):?: {
  if $active != $nick {
    $iif(!$window(@seslenme),window -nCBas @seslenme)
    echo 5 @seslenme Nick: $nick - Mesajı: $1-
    echo -ate Nick: $nick - Mesajı: $1-
  }
}
on *:text:$($+(*,$me,*)):#: {
  if $active != # {
    $iif(!$window(@seslenme),window -nCBas @seslenme)
    echo 5 @seslenme Kanal: # - Nick: $nick - Mesajı: $1-
    echo -ate Kanal: # - Nick: $nick - Mesajı: $1-
  }
}




Size whois çeken kullanıcıları aynı bir pencerede(-l) listeleyen(aline) kod.


Kod:

on *:snotice:*did a /whois on you*: {
  inc %1 
  $iif(!$window    @Whois),window -lCb    @Whois,aline 2    @Whois $+(%1,-) $2 whois çekti.)
}



Tüm kanallardaki flaglarınızı(a,o,v,h,q vb.) larınızı geri almak için yazmış olduğum bir kod.
Kullanım: /opall


Kod:

alias opall {
  var %s = 1
  while %s <= $comchan($me,0) {
    mode $comchan($me,%s) -aqhvo $str($+($me,$chr(32)),5)
    inc %s
  }
}




Belitilen kanala giren kullanıcıların IP numaralarını işleme alarak, daha önce sunucuya girip/girmediği gösteren detaylı bir kod.


Kod:

on *:join:#belirtilen-kanal:userip $nick
alias iptara {
  if $hget(kayıt) {
    var %o = 1
    while %o <= $hget(kayıt,0).item {
      if $gettok($hget(kayıt,%o).item,2,189) == $1 && $gettok($hget(kayıt,%o).item,1,189) != $2 {
        $iif(!$window(@sonuc),window -nCbsa @sonuc)
        echo -te @sonuc Bilgi: $gettok($hget(kayıt,%o).item,2,189) IP adresin'den daha önce; $gettok($hget(kayıt,%o).item,1,189) nick'i ile giriş yapıldı.
      }
      inc %o
    }
  }
}
raw *:*: {
  haltdef
  if ($numeric = 340) {
    set %ip $gettok($2,2,64)
    who +h $gettok($2,2,64)
    hadd -m kayıt $+($gettok($2,1,61),½,$gettok($2,2,64))
    iptara $gettok($2,2,64) $gettok($2,1,61)
  }
  if ($numeric = 352) {
    hadd -m nick $6 1
  }
  if ($numeric = 315) {
    var %& = 1,%&&
    while %& <= $hget(nick,0).item {
      %&& = $addtok(%&&,$hget(nick,%&).item,32)
      inc %&
    }
    $iif(!$window(@IP),window -nCbsa @IP)
    echo -t @IP Bilgi: %ip adresin'den bağlantı kuranlar: %&&
    unset %ip
    hfree nick
  }
}



Belirtilen kanala giriş yaptığınızda dosya.txt dosyasından mesajları 15 dakikada bir sırayla göndermek için yazmış olduğum bir kod.


Kod:

on me:join:#belirtilen-kanal:.timer 0 180 textsnd #
alias textsnd {
  if $lines(dosya.txt) = %t {
    unset %t
    inc %t
  }
  else inc %t
  msg $1 $read(dosya.txt,%t)
}


/exit yazdığınızda belirlediğiniz mesajı /ame olarak attıktan sonra çıkış yapmak için yazdığım bir kod.


Kod:

alias exit {
  inc -e %e
  if (%e = 1 && $status = connected) {
    ame mesajın
  }
  else exit -n
}


Socket bot için sunucuya giren ve belirtilen idente sahip kullanıcıyı belirtilen kanala /sajoin-lemek için yazmış olduğum bir kod.


Kod:

if ($2 = notice && *Client connecting* iswm $3-) {
  if ($remove($gettok($13,1,64),$chr(40)) = belirtilen-ident) {
    sockwrite -n socket-ismi sajoin $12 #belirtilen-kanal
  }
}


Kanal belirlediğiniz flood saldırısında, kanalı belirlediğiniz süre ile +m moduna alıp, temizle.mrc dosyasındaki verilerle kanalı temizleyip tekrar kanalaı açmak için yazmış olduğum bir kod


Kod:

alias -l fld {
  hinc $+(-mu,$1) fld $+($3,½,$4,$encode($5)) 1
  if ($hget(fld,$+($3,½,$4,$encode($5))) >= $2) return $true
  else return $false
}
alias temizle {
  var %t 1
  while %t <= $lines(temizle.mrc) {
    msg $1 $read(temizle.mrc,%t)
    inc %t
  }
}
on @*:text:*:#: {
  if $nick isreg # && $fld(10,3,#,$nick,$1-) {
    ban -k # $nick 2 sebeb.
    mode # +m
    temizle #
    msg # Kanal güvenlik amaçlı 20 sn vs.
    if !$timer($+(#,½,fld)) {
      $+(.timer,½,#) 1 20 mode # -m
      .timer 1 21 msg # Kanal açıldı.
    }
  }
}

/fld alias'ının kullanımı; $fld(saniye,limit,#kanal,text-own,mesaj)
Ben örnek olarak; 10 saniye içerisin'de, aynı text 3 defa tekrar edilirse, gördüğünüz işlevleri sırası ile gerçekleştirir.

Eğer aynı yazının tekrar'ı değilde, belirlediğim saniye içerisin'de belirlediğim satır limit'i aşılırsa(hızlı text) işlev yapmak istiyorum diyorsan;
/fld alias'ını aşşağıdaki şekilde değiştir;


Kod:

alias -l fld {
 hinc $+(-mu,$1) fld $+($3,½,$4) 1
 if ($hget(fld,$+($3,½,$4)) >= $2) return $true
 else return $false
}

Ve kullanım şeklini verdiğim şekilde yap; $fld(saniye,limit,#kanal,text-own)

Örneğin; $fld(10,5,#,$nick)
10 saniye içerisinde, 5 satır text gönderen'e işlev yapar. Kanal'ı temizler vs.




Bu kod kanal veya özel loglarını aramak/okumak vb. işlemler için yazılmış detaylı bir snippet-dır.


Kod:

menu channel {
  Loglar menüsü
  .# logu:kanal #
  .Özel logları:falan $$?="Log'unu okumak istediginiz nick'i giriniz:"
}
alias falan {
  if $findfile($logdir,$+($1,*),0) >= 1 {
    var %1 = $v1
    $iif($input(Aradığınız nick için %1 adet veri bulundu açmak istiyormusunuz?,w) == $false,halt)
    var %2 = 1,%3 = $findfile($logdir,$+($1,*),0)
    while %2 <= %3 { run $findfile($logdir,$+($1,*),%2) | inc %2 }
  }
  else {
    var %/ = $1,%½ = $left($1,1)
    $iif($input(Aradığınız %/ nick'i için uygun kayıt bulunamadı. %½ harfi ile başlıyan loglar listelensinmi?,w) == $false,halt)
    echo -at $left($1,1) ile başlıyan loglar sıralanıyor.
    echo -at $findfile($logdir,$+($left($1,1),*),0,echo -at $gettok($1-,$numtok($1-,92),92))
  }
}
alias kanal {
  if $findfile($logdir,$+($1,*),0) >= 1 {
    var %1 = $v1, %% = $1
    $iif($input(Aradığınız %% kanal'ı için %1 adet veri bulundu açmak istiyormusunuz?,w) == $false,halt)
    var %2 = 1,%3 = $findfile($logdir,$+($1,*),0)
    while %2 <= %3 {
      run $findfile($logdir,$+($1,*),%2)
      inc %2
    }
  }
  else { 
    var %& = $1
    $input(%& kanal'ı için herhangi bir kayıt bulunamadı,ohud,UYARI,)
  }
}




Bu kod belirtilen kanala(sağ tıklayın popups bölümünde var) logları okumanıza yarar.


Kod:

menu channel {
  # kanal log'u:searchlog # $gettok($server,2-,46)
}
alias searchlog {
  if ($findfile($logdir,$+($1,.,$2,*),0) = 0) $iif($input($1 kanal' için log bulunamadı.,ohud,uyarı) = $true,return,return)
  run $findfile($logdir,$+($1,.,$2,*),1)
}




Bu kod belirtilen kanaldaki tüm kullanıcılara kontrol mesajı yollar. Eğer 10 saniye içerisinde herhangi bir kullanıcı mesaja cevap verirse kanaldan banlayacaktır.
Kodu kullanmak için, belirtilen kanalın client editbox kutusuna /kontrol yazmanız yeterli olacaktır.

Kod:

alias kontrol {
  write -c kontrol.txt
  set -eu10 %k $active
  var %1 = 1,%v1
  while $nick(%k,%1) {
    %v1 = $v1
    if %v1 != $me {
      .msg %v1 Kontrol mesajıdır.
      write kontrol.txt %v1
    }
    inc %1
  }
}
on *:text:*:?:if (%k && $nick ison %k && $read(kontrol.txt,w,$nick)) ban -k %k $nick 2 sebeb.




Bu kod #help - #yardım kanalına giren kullanıcının host adresine bakarak, admin, ircop vb. kişiler dışındaki kişilere +v(voice) verip mesaj göndermek için yazılmıştır.


Kod:

on !*:join:#help,#yardım: {
  if (!$regex($gettok($address($nick,2),2,64),/network|admin|ircop/i)) {
    mode # +v $nick
    msg # $nick mesajın.
  }
}

Not: | operatörü ile daha fazla host ekleyebilirsiniz.




Bu kod sunucuya giren kullanıcının ident, nick ve fullname-si birbirinin aynısı ise sunucudan gline ile uzaklaştırmak için yazılmıştır.



Kod:

on *:snotice:*client connect*: {
  if ($left($9,-2) = $remove($gettok($10,1,64),$chr(40)) && $remove($11,[,]) = $left($9,-2)) {
    gline $9 sebeb.
  }
}



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

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.6.0
Copyright ©2005 - 2023 IRCForumu.Net - Tüm Hakları Saklıdır.