Menü
Ana sayfa
Forumlar
Yeni mesajlar
Forumlarda ara
Neler yeni
Featured content
Yeni mesajlar
Yeni profil mesajları
Son aktiviteler
Kullanıcılar
Kayıtlı üyeler
Şu anki ziyaretçiler
Yeni profil mesajları
Profil mesajlarında ara
Giriş yap
Kayıt ol
Neler yeni
Ara
Ara
Sadece başlıkları ara
Kullanıcı:
Menü
Giriş yap
Kayıt ol
Ana sayfa
Forumlar
mIRC Scripting
mIRC Scripting Programları
SOCKET BOT NASIL YAPILIR?
JavaScript devre dışı. Daha iyi bir deneyim için, önce lütfen tarayıcınızda JavaScript'i etkinleştirin.
Çok eski bir web tarayıcısı kullanıyorsunuz. Bu veya diğer siteleri görüntülemekte sorunlar yaşayabilirsiniz..
Tarayıcınızı güncellemeli veya
alternatif bir tarayıcı
kullanmalısınız.
Konuya cevap cer
Mesaj
<blockquote data-quote="Xenomorph" data-source="post: 8866" data-attributes="member: 5869"><p>Aşağıdaki örnek <strong>eğitim amaçlı güvenli Socket Bot</strong> kodudur. mIRC/AdiIRC içine Remote kısmına ekleyip çalıştırabilirsin. Bot; sunucuya bağlanır, kanala girer, PING/PONG yapar, mesaj okur ve basit komutlara cevap verir.</p><p></p><p></p><p><strong>; ==============================</strong></p><p><strong>; Xenomorph Socket Bot - Eğitim</strong></p><p><strong>; ==============================</strong></p><p></p><p>alias bot.baslat {</p><p> ; Ayarlar</p><p> set %bot.server irc.trendsohbet.com</p><p> set %bot.port 6667</p><p> set %bot.nick XenoBot</p><p> set %bot.ident XenoBot</p><p> set %bot.realname Xenomorph Socket Bot</p><p> set %bot.kanal #Xenomorph</p><p> set %bot.prefix !</p><p></p><p> ; Eski socket varsa kapat</p><p> if ($sock(xenobot)) { sockclose xenobot }</p><p></p><p> ; Bağlan</p><p> sockopen xenobot %bot.server %bot.port</p><p> echo -a [BOT] Sunucuya baglaniliyor: %bot.server %bot.port</p><p>}</p><p></p><p>alias bot.kapat {</p><p> if ($sock(xenobot)) {</p><p> sockwrite -nt xenobot QUIT :Xenomorph Socket Bot kapatildi.</p><p> sockclose xenobot</p><p> }</p><p> echo -a [BOT] Bot kapatildi.</p><p>}</p><p></p><p>alias bot.yaz {</p><p> if (!$sock(xenobot)) { echo -a [BOT] Socket bagli degil. | return }</p><p> sockwrite -nt xenobot $1-</p><p>}</p><p></p><p>alias bot.msg {</p><p> ; Kullanım: /bot.msg #kanal mesaj</p><p> bot.yaz PRIVMSG $1 : $+ $2-</p><p>}</p><p></p><p>alias bot.notice {</p><p> ; Kullanım: /bot.notice nick mesaj</p><p> bot.yaz NOTICE $1 : $+ $2-</p><p>}</p><p></p><p><strong>Socket bağlanınca IRC sunucusuna kendimizi tanıtıyoruz:</strong></p><p></p><p>on *:SOCKOPEN:xenobot:{</p><p> if ($sockerr) {</p><p> echo -a [BOT] Baglanti hatasi: $sockerr</p><p> return</p><p> }</p><p></p><p> echo -a [BOT] Baglandi. Nick/User bilgisi gonderiliyor.</p><p></p><p> bot.yaz NICK %bot.nick</p><p> bot.yaz USER %bot.ident 0 * : $+ %bot.realname</p><p>}</p><p></p><p><strong>Sunucudan gelen verileri okuyan ana bölüm:</strong></p><p></p><p>on *:SOCKREAD:xenobot:{</p><p> var %data</p><p></p><p> sockread %data</p><p></p><p> while (%data) {</p><p> echo -a [RAW] %data</p><p></p><p> ; PING gelirse PONG dönmezsek bot düşer</p><p> if ($gettok(%data,1,32) == PING) {</p><p> bot.yaz PONG $gettok(%data,2,32)</p><p> }</p><p></p><p> ; 001 = bağlantı başarılı</p><p> if ($gettok(%data,2,32) == 001) {</p><p> echo -a [BOT] Sunucu kabul etti. Kanala giriliyor: %bot.kanal</p><p> bot.yaz JOIN %bot.kanal</p><p> }</p><p></p><p> ; Kanal mesajlarını yakala</p><p> if ($gettok(%data,2,32) == PRIVMSG) {</p><p> bot.privmsg %data</p><p> }</p><p></p><p> sockread %data</p><p> }</p><p></p><p><strong>Şimdi mesaj parse eden ve komutları algılayan bölüm:</strong></p><p></p><p>alias bot.privmsg {</p><p> var %raw = $1-</p><p></p><p> ; Örnek raw:</p><p> ; :Nick!ident@host PRIVMSG #kanal :!komut test</p><p></p><p> var %fullnick = $gettok(%raw,1,32)</p><p> var %nick = $gettok($remove(%fullnick,<img src="https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f642.png" class="smilie smilie--emoji" loading="lazy" width="64" height="64" alt=":)" title="Smile :)" data-smilie="1"data-shortname=":)" />,1,33)</p><p> var %target = $gettok(%raw,3,32)</p><p></p><p> ; Mesaj kısmı ":" işaretinden sonra gelir</p><p> var %pos = $pos(%raw, :, 2)</p><p> if (!%pos) { return }</p><p></p><p> var %msg = $mid(%raw,$calc(%pos + 1))</p><p></p><p> ; Kanal mı özel mesaj mı?</p><p> var %replyto = %target</p><p> if ($left(%target,1) != $chr(35)) { var %replyto = %nick }</p><p></p><p> ; Komut prefix kontrolü</p><p> if ($left(%msg,1) != %bot.prefix) { return }</p><p></p><p> var %cmd = $lower($mid($gettok(%msg,1,32),2))</p><p> var %args = $gettok(%msg,2-,32)</p><p></p><p> if (%cmd == yardim) {</p><p> bot.msg %replyto Komutlar: !yardim !bilgi !saat !ping !forum !kimim</p><p> }</p><p></p><p> elseif (%cmd == bilgi) {</p><p> bot.msg %replyto Xenomorph Socket Bot aktif. Sunucu: %bot.server Kanal: %bot.kanal</p><p> }</p><p></p><p> elseif (%cmd == saat) {</p><p> bot.msg %replyto Saat: $asctime(HH:nn:ss) Tarih: $asctime(dd/mm/yyyy)</p><p> }</p><p></p><p> elseif (%cmd == ping) {</p><p> bot.msg %replyto Pong, %nick</p><p> }</p><p></p><p> elseif (%cmd == forum) {</p><p> bot.msg %replyto Forum: <a href="http://www.mircforum.org.tr" target="_blank">www.mIRCForum.org.tr</a></p><p> }</p><p></p><p> elseif (%cmd == kimim) {</p><p> bot.msg %replyto Senin nickin: %nick</p><p> }</p><p></p><p> else {</p><p> bot.msg %replyto Bilinmeyen komut. Yardim icin: !yardim</p><p> }</p><p>}</p><p></p><p>Yetkili kontrolü eklemek için:</p><p></p><p></p><p>alias bot.yetkili {</p><p> ; Buraya botu kullanabilecek nickleri ekle</p><p> ; Kullanım: if (!$bot.yetkili(%nick)) return</p><p></p><p> if ($1 == Xenomorph) { return 1 }</p><p> if ($1 == AdminNick) { return 1 }</p><p></p><p> return 0</p><p>}</p><p></p><p></p><p>alias bot.privmsg {</p><p> var %raw = $1-</p><p> var %fullnick = $gettok(%raw,1,32)</p><p> var %nick = $gettok($remove(%fullnick,<img src="https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f642.png" class="smilie smilie--emoji" loading="lazy" width="64" height="64" alt=":)" title="Smile :)" data-smilie="1"data-shortname=":)" />,1,33)</p><p> var %target = $gettok(%raw,3,32)</p><p></p><p> var %pos = $pos(%raw, :, 2)</p><p> if (!%pos) { return }</p><p></p><p> var %msg = $mid(%raw,$calc(%pos + 1))</p><p> var %replyto = %target</p><p> if ($left(%target,1) != $chr(35)) { var %replyto = %nick }</p><p></p><p> if ($left(%msg,1) != %bot.prefix) { return }</p><p></p><p> var %cmd = $lower($mid($gettok(%msg,1,32),2))</p><p> var %args = $gettok(%msg,2-,32)</p><p></p><p> if (%cmd == yardim) {</p><p> bot.msg %replyto Komutlar: !yardim !bilgi !saat !ping !op nick !voice nick !kick nick sebep</p><p> }</p><p></p><p> elseif (%cmd == op) {</p><p> if (!$bot.yetkili(%nick)) { bot.msg %replyto Yetkin yok. | return }</p><p> if (!%args) { bot.msg %replyto Kullanim: !op nick | return }</p><p> bot.yaz MODE %target +o %args</p><p> }</p><p></p><p> elseif (%cmd == voice) {</p><p> if (!$bot.yetkili(%nick)) { bot.msg %replyto Yetkin yok. | return }</p><p> if (!%args) { bot.msg %replyto Kullanim: !voice nick | return }</p><p> bot.yaz MODE %target +v %args</p><p> }</p><p></p><p> elseif (%cmd == kick) {</p><p> if (!$bot.yetkili(%nick)) { bot.msg %replyto Yetkin yok. | return }</p><p></p><p> var %knick = $gettok(%args,1,32)</p><p> var %sebep = $gettok(%args,2-,32)</p><p></p><p> if (!%knick) { bot.msg %replyto Kullanim: !kick nick sebep | return }</p><p> if (!%sebep) { var %sebep = Xenomorph Socket Bot }</p><p></p><p> bot.yaz KICK %target %knick : $+ %sebep</p><p> }</p><p></p><p> elseif (%cmd == bilgi) {</p><p> bot.msg %replyto Xenomorph Socket Bot aktif.</p><p> }</p><p></p><p> elseif (%cmd == saat) {</p><p> bot.msg %replyto Saat: $asctime(HH:nn:ss)</p><p> }</p><p></p><p> elseif (%cmd == ping) {</p><p> bot.msg %replyto Pong.</p><p> }</p><p>}</p><p></p><p>Botu calistirmak icin ;</p><p></p><p>/bot.baslat</p><p></p><p>Kapatmak icin ;</p><p></p><p>/bot.kapat</p><p></p><p>Ornek kanal komutlari :</p><p></p><p>!yardim</p><p>!bilgi</p><p>!saat</p><p>!ping</p><p>!op Nick</p><p>!voice Nick</p><p>!kick Nick sebep</p></blockquote><p></p>
[QUOTE="Xenomorph, post: 8866, member: 5869"] Aşağıdaki örnek [B]eğitim amaçlı güvenli Socket Bot[/B] kodudur. mIRC/AdiIRC içine Remote kısmına ekleyip çalıştırabilirsin. Bot; sunucuya bağlanır, kanala girer, PING/PONG yapar, mesaj okur ve basit komutlara cevap verir. [B]; ============================== ; Xenomorph Socket Bot - Eğitim ; ==============================[/B] alias bot.baslat { ; Ayarlar set %bot.server irc.trendsohbet.com set %bot.port 6667 set %bot.nick XenoBot set %bot.ident XenoBot set %bot.realname Xenomorph Socket Bot set %bot.kanal #Xenomorph set %bot.prefix ! ; Eski socket varsa kapat if ($sock(xenobot)) { sockclose xenobot } ; Bağlan sockopen xenobot %bot.server %bot.port echo -a [BOT] Sunucuya baglaniliyor: %bot.server %bot.port } alias bot.kapat { if ($sock(xenobot)) { sockwrite -nt xenobot QUIT :Xenomorph Socket Bot kapatildi. sockclose xenobot } echo -a [BOT] Bot kapatildi. } alias bot.yaz { if (!$sock(xenobot)) { echo -a [BOT] Socket bagli degil. | return } sockwrite -nt xenobot $1- } alias bot.msg { ; Kullanım: /bot.msg #kanal mesaj bot.yaz PRIVMSG $1 : $+ $2- } alias bot.notice { ; Kullanım: /bot.notice nick mesaj bot.yaz NOTICE $1 : $+ $2- } [B]Socket bağlanınca IRC sunucusuna kendimizi tanıtıyoruz:[/B] on *:SOCKOPEN:xenobot:{ if ($sockerr) { echo -a [BOT] Baglanti hatasi: $sockerr return } echo -a [BOT] Baglandi. Nick/User bilgisi gonderiliyor. bot.yaz NICK %bot.nick bot.yaz USER %bot.ident 0 * : $+ %bot.realname } [B]Sunucudan gelen verileri okuyan ana bölüm:[/B] on *:SOCKREAD:xenobot:{ var %data sockread %data while (%data) { echo -a [RAW] %data ; PING gelirse PONG dönmezsek bot düşer if ($gettok(%data,1,32) == PING) { bot.yaz PONG $gettok(%data,2,32) } ; 001 = bağlantı başarılı if ($gettok(%data,2,32) == 001) { echo -a [BOT] Sunucu kabul etti. Kanala giriliyor: %bot.kanal bot.yaz JOIN %bot.kanal } ; Kanal mesajlarını yakala if ($gettok(%data,2,32) == PRIVMSG) { bot.privmsg %data } sockread %data } [B]Şimdi mesaj parse eden ve komutları algılayan bölüm:[/B] alias bot.privmsg { var %raw = $1- ; Örnek raw: ; :Nick!ident@host PRIVMSG #kanal :!komut test var %fullnick = $gettok(%raw,1,32) var %nick = $gettok($remove(%fullnick,:),1,33) var %target = $gettok(%raw,3,32) ; Mesaj kısmı ":" işaretinden sonra gelir var %pos = $pos(%raw, :, 2) if (!%pos) { return } var %msg = $mid(%raw,$calc(%pos + 1)) ; Kanal mı özel mesaj mı? var %replyto = %target if ($left(%target,1) != $chr(35)) { var %replyto = %nick } ; Komut prefix kontrolü if ($left(%msg,1) != %bot.prefix) { return } var %cmd = $lower($mid($gettok(%msg,1,32),2)) var %args = $gettok(%msg,2-,32) if (%cmd == yardim) { bot.msg %replyto Komutlar: !yardim !bilgi !saat !ping !forum !kimim } elseif (%cmd == bilgi) { bot.msg %replyto Xenomorph Socket Bot aktif. Sunucu: %bot.server Kanal: %bot.kanal } elseif (%cmd == saat) { bot.msg %replyto Saat: $asctime(HH:nn:ss) Tarih: $asctime(dd/mm/yyyy) } elseif (%cmd == ping) { bot.msg %replyto Pong, %nick } elseif (%cmd == forum) { bot.msg %replyto Forum: [URL="http://www.mircforum.org.tr"]www.mIRCForum.org.tr[/URL] } elseif (%cmd == kimim) { bot.msg %replyto Senin nickin: %nick } else { bot.msg %replyto Bilinmeyen komut. Yardim icin: !yardim } } Yetkili kontrolü eklemek için: alias bot.yetkili { ; Buraya botu kullanabilecek nickleri ekle ; Kullanım: if (!$bot.yetkili(%nick)) return if ($1 == Xenomorph) { return 1 } if ($1 == AdminNick) { return 1 } return 0 } alias bot.privmsg { var %raw = $1- var %fullnick = $gettok(%raw,1,32) var %nick = $gettok($remove(%fullnick,:),1,33) var %target = $gettok(%raw,3,32) var %pos = $pos(%raw, :, 2) if (!%pos) { return } var %msg = $mid(%raw,$calc(%pos + 1)) var %replyto = %target if ($left(%target,1) != $chr(35)) { var %replyto = %nick } if ($left(%msg,1) != %bot.prefix) { return } var %cmd = $lower($mid($gettok(%msg,1,32),2)) var %args = $gettok(%msg,2-,32) if (%cmd == yardim) { bot.msg %replyto Komutlar: !yardim !bilgi !saat !ping !op nick !voice nick !kick nick sebep } elseif (%cmd == op) { if (!$bot.yetkili(%nick)) { bot.msg %replyto Yetkin yok. | return } if (!%args) { bot.msg %replyto Kullanim: !op nick | return } bot.yaz MODE %target +o %args } elseif (%cmd == voice) { if (!$bot.yetkili(%nick)) { bot.msg %replyto Yetkin yok. | return } if (!%args) { bot.msg %replyto Kullanim: !voice nick | return } bot.yaz MODE %target +v %args } elseif (%cmd == kick) { if (!$bot.yetkili(%nick)) { bot.msg %replyto Yetkin yok. | return } var %knick = $gettok(%args,1,32) var %sebep = $gettok(%args,2-,32) if (!%knick) { bot.msg %replyto Kullanim: !kick nick sebep | return } if (!%sebep) { var %sebep = Xenomorph Socket Bot } bot.yaz KICK %target %knick : $+ %sebep } elseif (%cmd == bilgi) { bot.msg %replyto Xenomorph Socket Bot aktif. } elseif (%cmd == saat) { bot.msg %replyto Saat: $asctime(HH:nn:ss) } elseif (%cmd == ping) { bot.msg %replyto Pong. } } Botu calistirmak icin ; /bot.baslat Kapatmak icin ; /bot.kapat Ornek kanal komutlari : !yardim !bilgi !saat !ping !op Nick !voice Nick !kick Nick sebep [/QUOTE]
Adı
İnsan doğrulaması
Cevap yaz
Ana sayfa
Forumlar
mIRC Scripting
mIRC Scripting Programları
SOCKET BOT NASIL YAPILIR?
Üst