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/)
-   -   Bot Hakkında... (https://www.ircforumlari.net/mirc-scripting-sorunlari/6089-bot-hakkinda.html)

goXXip 06 Ağustos 2005 09:35

Bir kaç örnek vereyim... Örneğin MephisTo Arkadaşımız Token Identifier anlatımında Massdeop dan bahsetmiş... Ama 400 Kişilik bir kanalda 20 tane op olduğunu düşünün. En fazla 8. yi deop ederken flood dan düşebilirsiniz. O yüzden MephisTo arkadaşımızın bu kodunu;

Alıntı:

MephisTo Nickli Üyeden Alıntı
raw 319:* {
set %nick $2
set %kanallar $remove($3-,@)
}

alias tamdeop {
var %toplam = $numtok(%kanallar,32)
var %x = 1
while %x <= %toplam {
samode $gettok(%kanallar,%x,32) -o %nick
inc %x
}
}



Alıntı:

goXXip Nickli Üyeden Alıntı
raw 319:* {
set %nick $2
set %kanallar $remove($3-,@)
}

alias tamdeop {
var %toplam = $numtok(%kanallar,32)
var %x = 1
while %x <= %toplam {
_linedance samode $gettok(%kanallar,%x,32) -o %nick
inc %x
}
}
_linedance {
if ($timer(.line.dance. $+ $cid) == $null) {
hadd -m pnp.qcommand count. $+ $cid 1
hadd -m pnp.qcommand 1. $+ $cid $1-
_dolinedance 1
}
else {
hinc -m pnp.qcommand count. $+ $cid
hadd -m pnp.qcommand $hget(pnp.qcommand,count. $+ $cid) $+ . $+ $cid $1-
}
}
_dolinedance {
if ($hget(pnp.qcommand,$1 $+ . $+ $cid) != $null) {
var %data = $ifmatch
.timer.line.dance. $+ $cid -m 1 $calc(1500 - $gettok(1250 1000 750 500 250,$1,32)) _dolinedance $calc($1 + 1)
%data
}
else hdel -w pnp.qcommand *. $+ $cid
}


Şeklinde değiştirirseniz sorununuz olmaz...

BoSs 06 Ağustos 2005 09:43

bu günkü dersimizin sonuna geldik dağılabilirsiniz..

goXXip 06 Ağustos 2005 10:08

Son olarak hash table lardan bahsedeyim. Bir Hash table oluşturmak için

hmake <tabloadı> <limit>

Örneğin;

Kod:

hmake goldenex 5
Yazdığımda Goldenex Tablosu oluşturacak ve 5 'in 10 Katı kadar yani 50 Datalık kapasitesi olacaktır. Eğer oraya 5 yerine 10 yazsaydım o zaman 100 Datalık bir tablo oluşturacaktı...

Eklediğimiz tabloya Kayıt Girebilmek için ise;

hadd <tabloadı> <item> <data>

Örneğin;

Kod:

hadd goldenex 1 [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
veya
Kod:

hadd goldenex web [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
şeklinde olabilir. Burada item; Data nın ID Numarasını ya da Terimini simgeliyor. Bu dataları çağırırken çok işimize yarayabilir.

Tabi Bu oluşturduğunuz tablo mirci kapatıp yeniden açtığınızda gidecektir. O yüzden bu tabloları kayıt etmemiz gerekiyor...

hsave <tabloadı> <dizin>

Kod:

hsave goldenex goldenex.data
Datayı mIRC in ana dizinine yerleştirecektir..

Bunla da işimiz bitmiyor. Her açılışta bunu load etmemiz gerekiyor yani

Kod:

on 1:start: { hmake goldenex | hload goldenex goldenex.data }
gibi.

Son olarak arama ve çağırmayı anlattıktan sonra ilk bölümü bitireceğim:)

Dosyayı çağırmak için hget kullanılır.

Kod:

$hget(goldenex,1)
i çağırdığınızda yukarıda ki [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] i çağıracaktır. Kod içinde bunu rahatlıkla kullanabilirsiniz. Fakat Tablolara yazdırmak istediğinizde ya da echo ile görüntülemek istediğinizde

[/code]$hget(goldenex,1).data[/code] Şeklinde çağırmanız gerekiyor.

Örneğin bir datanın tablonuzda olup olmadığını öğrenmek istiyorsunuz;

Alın size basit bir karaliste ;) ;
Kod:

on 1:join:#: {
  ;Eğer Giren kişi KaraListe Tablosunda ise kanaldan at ve yasakla.
  if $hfind(karaliste,$nick,1,W) {
        ban $chan $nick 2
        kick $chan $nick Kara Listemdesin
  }
}

Bu karalisteyi şu şekilde düzenleyebiliriz...

Kod:

on 1:start: { 
  ;Eğer karaliste.data dosyası bilgisayarımda mevcut değilse
  if !$findfile($mircdir,karaliste.data,1) {
        ;KaraListe Tablosu oluştur ve kayıt et
        hmake karaliste 10
        hsave karaliste karaliste.data
  }
  ;Aksi taktirde Var olan dosyayı belleğe al ve kullan
  else {
        hmake karaliste
        hload karaliste karaliste.data
  }
}
 
alias karaliste {
  if $1 == ekle && $2 {
        if !$hfind(karaliste,$2,1,W) {
          hadd karaliste $r(0,99999) $2
          hsave karaliste karaliste.data
        }
        else echo Listenizde bu kişi mevcut...
  }
  elseif $1 == sil && $2 {
        if !$hfind(karaliste,$2,1,W) {
        hdel karaliste $hfind(karaliste,$2,1,W)
        hsave karaliste karaliste.data
  }
  else echo Listenizde böyle birisi yok...
  }
  elseif $1 == liste {
        var %:l = 1
        while %:l <= $hget(karaliste,0).item {
          echo -a %:l $hget(karaliste,%:l).data
          inc %:l
        }
  }
  else {
  echo -a Eklemek için /karaliste ekle nick
  echo -a Kaldırmak için /karaliste sil nick
  echo -a Listelemek için /karaliste liste
 }
}

Devam edecek:)

Dipnot: Hiç birini denemedim :)


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

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk