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/)
-   -   Sock bot sorun (https://www.ircforumlari.net/mirc-scripting-sorunlari/46552-sock-bot-sorun.html)

lacremel 06 Ocak 2008 17:40

Sock bot sorun
 
Selam arkadaslar..

;"bot" adlı socketımız açıldığında
on *:sockopen:bot:{
;eğer socketta bir sorun varsa işlemi durduruyoruz
if ($sockerr) { echo $color(info) -st Socket botun bağlantısı kesildi. | return }
;servera bağlanırken botun nicki gönderiliyor
swbot NICK osman1
;servera bağlanırken botun identdi ve usernamei gönderiliyor
swbot USER BOT * * :System
;socket botun nickiyle işaretleniyor. yani $sock(bot).mark değeri botun nicki oluyor
sockmark $sockname Osman1 }
;serverdan socketa bilgi geldiğinde
on *:sockread:bot:{
;eğer socketta bir sorun varsa işlemi durduruyoruz
if ($sockerr) { echo $color(info) -st Socket botun bağlantısı kesildi. | return }
;%; diye bir değişken oluşturup sockettan gelen bilgiyi bu değişkene yüklüyoruz ve $1- değerini doldurması için tokenize kullanıyoruz
var %; | sockread %; | tokenize 32 %;
;eğer @sdebug penceresi yoksa pencere oluşturuluyor ve sockettan gelen bilgi o pencereye gösteriliyor
if !$window(@sdebug) { window -k0 @sdebug } | aline -p @sdebug $timestamp < $1-
;sockettan gelen bilgi ile swalias aliasını çağırıyoruz
swalias $1-
}
;socketta bilgi gönderme aliasımız, eğer bot socketı açıksa o socketa istediğimiz bilgiyi gönderiyoruz
alias swbot { if $sock(bot) { sockwrite -n bot $1- } }
;sockettan gelen bilgiyi okumak için oluşturduğumuz swalias aliası
alias swalias {
;eğer bot socketı açıksa
if $sock(bot) {
;%: değişkenine status penceresine echolaması için bir komut yüklüyoruz
var %: = echo $color(info) -st > Socket bot:
;eğer serverdan socket VERSIONu istenirse mIRC v6.17'nin version cevabını gönderiyoruz.
if :VERSION iswm $4- { swbot NOTICE $gettok($gettok($1,1,33),1,58) : $+ $chr(1) $+ VERSION mIRC v6.17 Khaled Mardam-Bey $+ $chr(1) }
;eğer serverdan botumuzun fingerı istenirse ona cevap gönderiyoruz
if :FINGER iswm $4- { swbot NOTICE $gettok($gettok($1,1,33),1,58) : $+ $chr(1) $+ FINGER Sevket Arslan $+ $chr(1) }
;eğer server bizi pinglerse, bizde onu pongluyoruz, düşmemek için bu gerekli.
if $1 == PING { swbot PONG $2- }
;serverdan gelen bilginin 2. kelimesi 474'se, bu 474. rawı gördü demektir, 474. raw bir kanaldan banlı olduğunu gönderir. statuse 4. değer olan kanaldan banlı olduğunu bildiriyor.
if $2 == 474 { %: $4 kanalında banlı. }
;2. kelime 366 ise yani /names komutunun sonu ki bu genelde bot kanala girdiğinde gelir, girdiğimiz kanal status penceresine gösteriliyor.
if $2 == 366 { %: $4 kanalına girdi. }
;eğer 2. kelime kickse ve 4. kelime botumuzun nickiyse, statuse kanaldan kicklendiğimizi kimin kicklediğini ve neden kicklendiğini gösteriyoruz.
if $2 == KICK && $4 == $sock(bot).mark { %: $3 kanalından %n tarafından kicklendi. $+($chr(40),$right($5-,-1),$chr(41)) | swbot JOIN $3 }
;eğer 2. kelime PRIVMSG ise
if $2 == PRIVMSG {
;%n değişkenine nicki, %m değişkenine gelen mesajı, %k değişkenine kanalı ayarlıyoruz
var %n = $gettok($gettok($1,1,33),1,58), %m = $right($4-,-1), %k = $3
;eğer nickler belirlediğimiz nickler ise (burda el33t ve el33t2)
if $istok(el33t el33t2,%n,32) {
;eğer gelen mesajın birinci sözcüğü .hop ise eğer 2. kelime varsa 2. kelimenin olduğu kanalda, yoksa yazılan kanalda hop komutu uygulanıyor yani kanaldan çıkıp tekrar giriliyor.
if .hop == $gettok(%m,1,32) { var %< = $iif($gettok(%m,2,32),$v1,%k) | swbot PART %< | swbot JOIN %< }
;bu da .hop gibi fakat bunda botumuz belirtilen kanaldan çıkıyor. eğer 2. sözcük varsa, o kanaldan, yoksa mesajın yazıldığı kanaldan
if .part == $gettok(%m,1,32) { var %< = $iif($gettok(%m,2,32),$v1,%k) | swbot PART %< }
;bu da .part gibi ama bununla istediğimiz kanala sokuyoruz
if .join #* iswm %m { swbot JOIN $gettok(%m,2-,32) }
}
}
}
}

Ben bu sock botuna kod eklemek istiyorum.

Botun özeline gelen mesajları #X kanalına yansıtmak istiyorum.

Bide komut uygulatmak istiyorum Örnk: !join #kanal, !part #kanal seklinde

Simdiden tsk.ler.

L4roXyL 06 Ocak 2008 18:14

Cevap: Sock bot sorun
 
Uygulatmak istediğin komut örneğini zaten el33t göstermiş.
if $istok(el33t el33t2,%n,32) satırın'da, el33t yazan yere kendi nick'ini yazıcaksın.
Devamında, bot'un özeline .join #kanal-ismi yaptığın zaman, zaten bot belirlediğin kanal'a girecektir.

Bot'un özeline yazılanları, #x kanal'ına yansıtmak için;
if $3 == $sock(bot).mark { swbot privmsg #x Nick: %n - Mesajı: %m }
Satırını eklemen yeterli olur.

lacremel 06 Ocak 2008 22:20

Cevap: Sock bot sorun
 
Hocam bot sadece benim yazdıklarımı baska kanala yansıtıyor. Baska user'ların mesajlarını yansıtmıyor.

L4roXyL 06 Ocak 2008 23:19

Cevap: Sock bot sorun
 
alias swalias {
if $sock(bot) {
var %: = echo $color(info) -st > Socket bot:
if :VERSION iswm $4- { swbot NOTICE $gettok($gettok($1,1,33),1,58) : $+ $chr(1) $+ VERSION mIRC v6.17 Khaled Mardam-Bey $+ $chr(1) }
if :FINGER iswm $4- { swbot NOTICE $gettok($gettok($1,1,33),1,58) : $+ $chr(1) $+ FINGER Sevket Arslan $+ $chr(1) }
if $1 == PING { swbot PONG $2- }
if $2 == 474 { %: $4 kanalında banlı. }
if $2 == 366 { %: $4 kanalına girdi. }
if $2 == KICK && $4 == $sock(bot).mark { %: $3 kanalından %n tarafından kicklendi. $+($chr(40),$right($5-,-1),$chr(41)) | swbot JOIN $3 }
if $2 == PRIVMSG {
var %n = $gettok($gettok($1,1,33),1,58), %m = $right($4-,-1), %k = $3
if $istok(el33t el33t2,%n,32) {
if .hop == $gettok(%m,1,32) { var %< = $iif($gettok(%m,2,32),$v1,%k) | swbot PART %< | swbot JOIN %< }
if .part == $gettok(%m,1,32) { var %< = $iif($gettok(%m,2,32),$v1,%k) | swbot PART %< }
if .join #* iswm %m { swbot JOIN $gettok(%m,2-,32) }
}
if $3 == $sock(bot).mark { swbot privmsg #x Nick: %n - Mesajı: %m }
}
}
}

Kod'u kalın olarak belirttiğim yer. Sen bir üst satıra eklemişsin.
Dolayısı ile $istok identifier'ına takılıyor.

lacremel 07 Ocak 2008 11:13

Cevap: Sock bot sorun
 
hımm. saolun hocam. Son bisey daha ögrenmek istiyorum bota Küfür reklam vs korumaları nasıl eklerim?

L4roXyL 07 Ocak 2008 18:53

Cevap: Sock bot sorun
 
Ben sana bir tane örnek vericem(kufur koruması), ona bakarak mantığını çöz. Ve devamını getir.
Yine /swbot alias'ının içinde örnek veriyorum.

alias swalias {
if $sock(bot) {
var %: = echo $color(info) -st > Socket bot:
if :VERSION iswm $4- { swbot NOTICE $gettok($gettok($1,1,33),1,58) : $+ $chr(1) $+ VERSION mIRC v6.17 Khaled Mardam-Bey $+ $chr(1) }
if :FINGER iswm $4- { swbot NOTICE $gettok($gettok($1,1,33),1,58) : $+ $chr(1) $+ FINGER Sevket Arslan $+ $chr(1) }
if $1 == PING { swbot PONG $2- }
if $2 == 474 { %: $4 kanalında banlı. }
if $2 == 366 { %: $4 kanalına girdi. }
if $2 == KICK && $4 == $sock(bot).mark { %: $3 kanalından %n tarafından kicklendi. $+($chr(40),$right($5-,-1),$chr(41)) | swbot JOIN $3 }
if $2 == PRIVMSG {
var %n = $gettok($gettok($1,1,33),1,58), %m = $right($4-,-1), %k = $3
if $istok(el33t el33t2,%n,32) {
if .hop == $gettok(%m,1,32) { var %< = $iif($gettok(%m,2,32),$v1,%k) | swbot PART %< | swbot JOIN %< }
}
if $left($3,1) == $chr(35) {
var %1 = 1 | while %1 <= $lines(dosya.txt) {
if $regex(%m,$read(dosya.txt,%1)) { swbot mode %k +b %n | swbot kick %k %n sebeb. }
inc %1

}
}

}
}

Kalın olarak gösterdiğim yer, kufur koruması.
Yani dosya.txt içerisin'deki kelimeler, bot'un bulunduğu herhangi bir kanal'da kullanılırsa, kanal'dan ban+kick işlevi ile kullanıcıyı uzaklaştırır.

lacremel 08 Ocak 2008 10:59

Cevap: Sock bot sorun
 
Dosy.txt icine sokar?m *sik* bu sekil ekliyorum. kelimenin icinde sikerim gecerse atsın dedim ama olmadı.

L4roXyL 08 Ocak 2008 20:41

Cevap: Sock bot sorun
 
Öyle yapmana gerek yok, zaten $regex(%m,$read(dosya.txt,%1)) burası, o işlevi görüyor.

lacremel 09 Ocak 2008 16:53

Cevap: Sock bot sorun
 
16:51] < :irc.hehe.net 482 Swtechnology #kelebek :You're not channel operator

[16:48] < :irc.hehe.net 403 Swtechnology 2 :No such channel
[16:48] < :irc.hehe.net 401 Swtechnology +b :No such nick/channel

böle bisiler yazıyor nedir ?

L4roXyL 09 Ocak 2008 16:58

Cevap: Sock bot sorun
 
#Kelebek kanal'ında op değilsiniz.
2: Kanal bulunamadı.
+b: Kanal veya nick bulunamadı.

Ama bunları vermesi için bir sebeb yok.

lacremel 09 Ocak 2008 19:34

Cevap: Sock bot sorun
 
Ben size Komple kodu verim hocam sürekLi o hatayı veriyor.

;"bot" adlı socketımız açıldığında
on *:sockopen:bot:{
;eğer socketta bir sorun varsa işlemi durduruyoruz
if ($sockerr) { echo $color(info) -st Socket botun bağlantısı kesildi. | return }
;servera bağlanırken botun nicki gönderiliyor
swbot NICK Swtechnology
;servera bağlanırken botun identdi ve usernamei gönderiliyor
swbot USER BOT * * :Coder By osman*
;socket botun nickiyle işaretleniyor. yani $sock(bot).mark değeri botun nicki oluyor
sockmark $sockname Swtechnology
}
;serverdan socketa bilgi geldiğinde
on *:sockread:bot:{
;eğer socketta bir sorun varsa işlemi durduruyoruz
if ($sockerr) { echo $color(info) -st Socket botun bağlantısı kesildi. | return }
;%; diye bir değişken oluşturup sockettan gelen bilgiyi bu değişkene yüklüyoruz ve $1- değerini doldurması için tokenize kullanıyoruz
var %; | sockread %; | tokenize 32 %;
;eğer @sdebug penceresi yoksa pencere oluşturuluyor ve sockettan gelen bilgi o pencereye gösteriliyor
if !$window(@sdebug) { window -k0 @sdebug } | aline -p @sdebug $timestamp < $1-
;sockettan gelen bilgi ile swalias aliasını çağırıyoruz
swalias $1-
}
;socketta bilgi gönderme aliasımız, eğer bot socketı açıksa o socketa istediğimiz bilgiyi gönderiyoruz
alias swbot { if $sock(bot) { sockwrite -n bot $1- } }
;sockettan gelen bilgiyi okumak için oluşturduğumuz swalias aliası
alias swalias {
if $sock(bot) {
var %: = echo $color(info) -st > Socket bot:
if :VERSION iswm $4- { swbot NOTICE $gettok($gettok($1,1,33),1,58) : $+ $chr(1) $+ VERSION mIRC v6.17 Khaled Mardam-Bey $+ $chr(1) }
if :FINGER iswm $4- { swbot NOTICE $gettok($gettok($1,1,33),1,58) : $+ $chr(1) $+ FINGER Sevket Arslan $+ $chr(1) }
if $1 == PING { swbot PONG $2- }
if $2 == 474 { %: $4 kanalında banlı. }
if $2 == 366 { %: $4 kanalına girdi. }
if $2 == KICK && $4 == $sock(bot).mark { %: $3 kanalından %n tarafından kicklendi. $+($chr(40),$right($5-,-1),$chr(41)) | swbot JOIN $3 }
if $2 == PRIVMSG {
var %n = $gettok($gettok($1,1,33),1,58), %m = $right($4-,-1), %k = $3
if $istok(el33t el33t2,%n,32) {
if .hop == $gettok(%m,1,32) { var %< = $iif($gettok(%m,2,32),$v1,%k) | swbot PART %< | swbot JOIN %< }
if .part == $gettok(%m,1,32) { var %< = $iif($gettok(%m,2,32),$v1,%k) | swbot PART %< }
if .join #* iswm %m { swbot JOIN $gettok(%m,2-,32) }
}
if $3 == $sock(bot).mark { swbot privmsg #Osman,#kelebek@ Nick: %n - Mesajı: %m }
}
if $left($3,1) == $chr(35) {
var %1 = 1 | while %1 <= $lines(dosya.txt) {
if $regex(%m,$read(dosya.txt,%1)) { swbot mode %k +b %n | swbot kick %k %n %k Sohbet odasında 1 4•1argo.küfür14• içerikli kelime kullandınız. }
inc %1
}
if $left($3,1) == $chr(35) {
var %1 = 1 | while %1 <= $lines(dosya2.txt) {
if $regex(%m,$read(dosya2.txt,%1)) { swbot mode %k +b %n | swbot kick %k %n %k Sohbet odasında 1 4•1web.irc.channel14• vs reklam içerikli kelime kullandınız. }
inc %1
}
}
}

Kod bu

L4roXyL 09 Ocak 2008 20:37

Cevap: Sock bot sorun
 
on *:sockopen:bot:{
if ($sockerr) { echo $color(info) -st Socket botun bağlantısı kesildi. | return }
swbot NICK Swtechnology
swbot USER BOT * * :Coder By osman*
sockmark $sockname Swtechnology
}
on *:sockread:bot:{
if ($sockerr) { echo $color(info) -st Socket botun bağlantısı kesildi. | return }
var %; | sockread %; | tokenize 32 %;
if !$window(@sdebug) { window -k0 @sdebug } | aline -p @sdebug $timestamp < $1-
swalias $1-
}
alias swbot { if $sock(bot) { sockwrite -n bot $1- } }
alias swalias {
if $sock(bot) {
var %: = echo $color(info) -st > Socket bot:
if :VERSION iswm $4- { swbot NOTICE $gettok($gettok($1,1,33),1,58) : $+ $chr(1) $+ VERSION mIRC v6.17 Khaled Mardam-Bey $+ $chr(1) }
if :FINGER iswm $4- { swbot NOTICE $gettok($gettok($1,1,33),1,58) : $+ $chr(1) $+ FINGER Sevket Arslan $+ $chr(1) }
if $1 == PING { swbot PONG $2- }
if $2 == 474 { %: $4 kanalında banlı. }
if $2 == 366 { %: $4 kanalına girdi. }
if $2 == KICK && $4 == $sock(bot).mark { %: $3 kanalından %n tarafından kicklendi. $+($chr(40),$right($5-,-1),$chr(41)) | swbot JOIN $3 }
if $2 == PRIVMSG {
var %n = $gettok($gettok($1,1,33),1,58), %m = $right($4-,-1), %k = $3
if $istok(el33t el33t2,%n,32) {
if .hop == $gettok(%m,1,32) { var %< = $iif($gettok(%m,2,32),$v1,%k) | swbot PART %< | swbot JOIN %< }
if .part == $gettok(%m,1,32) { var %< = $iif($gettok(%m,2,32),$v1,%k) | swbot PART %< }
if .join #* iswm %m { swbot JOIN $gettok(%m,2-,32) }
}
if $3 == $sock(bot).mark { swbot privmsg #Osman,#kelebek@ Nick: %n - Mesajı: %m }
}
if $left($3,1) == $chr(35) {
var %1 = 1 | while %1 <= $lines(dosya.txt) {
if $regex(%m,$read(dosya.txt,%1)) { swbot mode %k +b %n | swbot kick %k %n %k Sohbet odasında 1 4•1argo.küfür14• içerikli kelime kullandınız. }
inc %1
}
var %1 = 1 | while %1 <= $lines(dosya2.txt) {
if $regex(%m,$read(dosya2.txt,%1)) { swbot mode %k +b %n | swbot kick %k %n %k Sohbet odasında 1 4•1web.irc.channel14• vs reklam içerikli kelime kullandınız. }
inc %1
}
}
}
}

Bu şekilde, herhangi bir sorun yok.
İnceledim ve denedim.

lacremel 09 Ocak 2008 21:09

Cevap: Sock bot sorun
 
kanaldan Komut uygulatabilirmiyiz /Swbot join #kanal değilde #X Kanalında !join #kanal sekLinde !msg selam sekLinde? !unban nick ban acması felan

L4roXyL 09 Ocak 2008 21:45

Cevap: Sock bot sorun
 
Evet yapabilirsin.
Örnek veriyorum;

alias swalias {
if $sock(bot) {
var %: = echo $color(info) -st > Socket bot:
if :VERSION iswm $4- { swbot NOTICE $gettok($gettok($1,1,33),1,58) : $+ $chr(1) $+ VERSION mIRC v6.17 Khaled Mardam-Bey $+ $chr(1) }
if :FINGER iswm $4- { swbot NOTICE $gettok($gettok($1,1,33),1,58) : $+ $chr(1) $+ FINGER Sevket Arslan $+ $chr(1) }
if $1 == PING { swbot PONG $2- }
if $2 == 474 { %: $4 kanalında banlı. }
if $2 == 366 { %: $4 kanalına girdi. }
if $2 == KICK && $4 == $sock(bot).mark { %: $3 kanalından %n tarafından kicklendi. $+($chr(40),$right($5-,-1),$chr(41)) | swbot JOIN $3 }
if $2 == PRIVMSG {
var %n = $gettok($gettok($1,1,33),1,58), %m = $right($4-,-1), %k = $3
if $istok(nick'in,%n,32) {
if .hop == $gettok(%m,1,32) { var %< = $iif($gettok(%m,2,32),$v1,%k) | swbot PART %< | swbot JOIN %< }
if .part == $gettok(%m,1,32) { var %< = $iif($gettok(%m,2,32),$v1,%k) | swbot PART %< }
if .join #* iswm %m { swbot JOIN $gettok(%m,2-,32) }
if $gettok(%m,1,32) == !unban { swbot mode $3 +b }
}
if $3 == $sock(bot).mark { swbot privmsg #Osman,#kelebek@ Nick: %n - Mesajı: %m }
}
if $left($3,1) == $chr(35) {
var %1 = 1 | while %1 <= $lines(dosya.txt) {
if $regex(%m,$read(dosya.txt,%1)) { swbot mode %k +b %n | swbot kick %k %n %k Sohbet odasında 1 4•1argo.küfür14• içerikli kelime kullandınız. }
inc %1
}
var %1 = 1 | while %1 <= $lines(dosya2.txt) {
if $regex(%m,$read(dosya2.txt,%1)) { swbot mode %k +b %n | swbot kick %k %n %k Sohbet odasında 1 4•1web.irc.channel14• vs reklam içerikli kelime kullandınız. }
inc %1
}
}
if $2 == 367 && $3 == $sock(bot).mark { swbot mode $4 -b $5 }
}
}

Kalın olarak verdiğim yelere bakarak geliştirebilirsin.

lacremel 10 Ocak 2008 09:35

Cevap: Sock bot sorun
 
[09:27] *** Osman mod değiştirdi:+b ben!*@*
[09:27] <~Osman> !unban ben
[09:27] *** ben mod değiştirdi:+b Osman!*@*

[09:58] < :irc.hehe.net 401 ben +b :No such nick/channel
[09:58] < :irc.hehe.net 403 ben 2 :No such channel
bunun yazma sebebi hocam kanala birisi bise yazınca atmaya calısıyor galiba

L4roXyL 10 Ocak 2008 14:47

Cevap: Sock bot sorun
 
İyide burada nick belirtmiyorsun'ki.
!unban tüm banları açar. Yani kullanım şekli, !unban sadece.

lacremel 10 Ocak 2008 16:33

Cevap: Sock bot sorun
 
Ban Listteki butun banlarımı acıyor :S Belirttiqim nickin banını actıramazmıyız

L4roXyL 10 Ocak 2008 17:05

Cevap: Sock bot sorun
 
Açtırabilirsin ama uzun bir iş olur.
Belirtilen nick', bir değer'e atıyacaksın. 367 raw'ında o nick' taratıcaksın.

ApideX 26 Nisan 2008 18:35

Yanıt: Sock bot sorun
 
Sock Bot Değilse .. Botun Özeline Gelen Mesajları #XxX kanaLina YaziLmasi icin ne yapmak lazim .. ?

XcLusive 26 Nisan 2008 23:04

Cevap: Sock bot sorun
 
Kod:

on ^*:text:*:?:.msg #XxX $1- | closemsg $nick | halt
yapmak lazım ve birazda forumu aramak lazım..


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

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