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/)
-   -   Socket, kanaldakilere mesaj hakkında. (https://www.ircforumlari.net/mirc-scripting-sorunlari/35021-socket-kanaldakilere-mesaj-hakkinda.html)

MavipikSeL 25 Temmuz 2007 14:52

Socket, kanaldakilere mesaj hakkında.
 
Merhaba arkadaşlar. el33t'in dersine bakarak, aşağıdaki socket'ı bağladım ama if $2 == JOIN { diye başlayıp, kanala girişte herkezin özeline $chr(160) mesajını gönderemedim.

Kod:

on *:sockopen:bot:{
  if ($sockerr) { echo $color(info) -st Socket botun bağlantısı kesildi. | return }
  swbot NICK axwd
  swbot USER HG * * :Kontrol.
  sockmark $sockname axwd
}
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(MavipikSeL mvpksl2,%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 *irc.* iswm %m { swbot PRIVMSG mavipiksel reklam, $nick }
      }
    }
  }
}

Yapmak istediğim, kanala girişte herkezin özeline $chr(160) yazdırmak...

SCouNDReL 25 Temmuz 2007 17:08

Cevap: Socket, kanaldakilere mesaj hakkında.
 
names rawıyla önce nickleri almalısın ondan sora mesaj göndermelisin.

MavipikSeL 25 Temmuz 2007 17:44

Cevap: Socket, kanaldakilere mesaj hakkında.
 
Alıntı:

SCouNDReL Nickli Üyeden Alıntı (Mesaj 240605)
names rawıyla önce nickleri almalısın ondan sora mesaj göndermelisin.

Names rawi'i dediğin, raw 353:* {numaralı raw mi ? Buradan girişte setletsem, ne şekilde sajoin kullanmam gerekecek?

detay 25 Temmuz 2007 20:24

Cevap: Socket, kanaldakilere mesaj hakkında.
 
if $2 == 353 {
kodlar..
}
seklinde aliasina eklemen gerekir sonra gelen mesaja göre while döngüsü kurup yollayabilirsin sen dene olmazsa kaldigin yerden devam ederiz

MavipikSeL 25 Temmuz 2007 20:44

Cevap: Socket, kanaldakilere mesaj hakkında.
 
if $2 == 353 { .set %names $1- } şeklinde ekledim.

Alıntı:

%names :$server 353 $me = # :x-man JozafGujjar excitement MF01- PoWeR Melih-_ mardinli supason-iC Massaey T-A-R--I-K VaTan ^^DiN-cAr^^ turkeyy BeRRiin alone_vagrand _evRe-n- evrense-l^ FiNaL Show_T-ime643
Şeklinde değer çıktı ama eksik rumuzlar var. Denediğim kanalda o an "101" kişi var. Fakat "19" rumuz setlenmiş.

detay 25 Temmuz 2007 20:49

Cevap: Socket, kanaldakilere mesaj hakkında.
 
tek satirda halledemiyor isinide ondan (: ikinci satir geldiginde 1. satirda setledigin gidiyor
ben soyle bir kod yazdim sanirim isini gorucektir buyuk olcude

Kod:

    if $2 == 353 {
      var %n $remove($6-,:,@,&,~,+) | var %t $numtok(%n,32) | echo -s : %t
      while %t {
      msg $gettok(%n,%t,32) $chr(160)
        dec %t
      }

    }

excess flooddan dusmezsen iyi tabi

MavipikSeL 25 Temmuz 2007 23:40

Cevap: Socket, kanaldakilere mesaj hakkında.
 
detay, bu işe yaradı ama ben vazgeçtim bu sevdadan daha farklı bir çözüm yolu bulmak istedim. :)

if $2 == JOIN {
kullanınca, birisi #kanal'a girdiğinde timer açarak 1 dakika sonra $chr(160) yazmak, daha mantıklı olucaktır sanırım. Bunun için kişi kanala girdiğinde swbot timer 1 60 PRIVMSG $chr(160) kısmını socketta belirtmekte zorlandım. Çünkü hangisi beni ifade eder, hangisi giren kullanıcıyı henüz çözemedim. :)

detay 26 Temmuz 2007 00:37

Cevap: Socket, kanaldakilere mesaj hakkında.
 
Kod:

if $2 == JOIN {
var %n = $gettok($remove($1,:),1,33)
+(.timer,%n,msg) 1 60 /msg %n $chr(160)
}

$1 kelimesinden : isaretini remove ile silip gettok ile ünlem($chr(33)) isaretine gore birinci kelimeyi aldik

CipriX 26 Temmuz 2007 09:47

Cevap: Socket, kanaldakilere mesaj hakkında.
 
Madem Sock Yazıyorsun.. detay bilir bende o işe kalkıştım :D

Şöyle işini kolaylaştıracak basit birşey vereyim;

alias botfnick {
return $remove($gettok($1,1,33),:)
}

Nicki Alıcağın Yerde ÖRN: Join'de $botfnick($1) Kullanıyorsun Misal..

if $2 == Join {
if $botfnick($1) == CipriX { swbot privmsg $botfnick($1) Merhaba Hoşgeldin..
}
}

vb. Gibi bişi Sanırım bu alias NoMercy'e Ait..

MavipikSeL 29 Temmuz 2007 14:42

Cevap: Socket, kanaldakilere mesaj hakkında.
 
Alıntı:

if $2 == PRIVMSG {
Bunu kullandığım zaman, joker karakter nasıl olmalı? Yani, *selam* bu şekilde mask'a almak istiyorum, if *selam* iswm $1- { socketsız hali ama socketta bunun mantığı nedir?

Yada if $read'ı socketta nasıl tanımlarız? Yani, metin.txt içindeki *selam*, *naber*, *nasılsın* bu şekilde mask'a alınmış kelimeleri kullananlara mesaj gibi. ;huh

detay 29 Temmuz 2007 15:17

Cevap: Socket, kanaldakilere mesaj hakkında.
 
Kod:

if $2 == PRIVMSG {
  ;kanal nick ve mesaja deger atayip isleme devam ediyoruz on text gibi
  var %nick = $gettok($gettok($1,1,33),1,58), %mesaj = $right($4-,-1), %kanal = $3
  if %nick isreg %chan {
    if $read(kufur.txt, w,%mesaj) {
      mode %kanal ....
    }
  }

  }

demek istedigin socketi event gibi kullanabilmek ise yukaridaki gibi deger atamak ve sonrasinda ayni seyler zaten tek farkı $chan tanimli degil onu biz ayarliyoruz

MavipikSeL 29 Temmuz 2007 22:44

Cevap: Socket, kanaldakilere mesaj hakkında.
 
Sanırım yanlış anladın, detay. Kufur.txt'ye eklediğim masksız bir yazı işimi görmüyor. Mutlaka wildcard karakter kullanmalıyım. Ben özeldeki yazıları kastetmiştim ama sen kanaldaki anlamışsın. Bunu da denedim ama sonuç olumsuz. :)

DeLiTiM 30 Temmuz 2007 12:35

Yanıt: Cevap: Socket, kanaldakilere mesaj hakkında.
 
Alıntı:

MavipikSeL Nickli Üyeden Alıntı (Mesaj 241657)
Sanırım yanlış anladın, detay. Kufur.txt'ye eklediğim masksız bir yazı işimi görmüyor. Mutlaka wildcard karakter kullanmalıyım. Ben özeldeki yazıları kastetmiştim ama sen kanaldaki anlamışsın. Bunu da denedim ama sonuç olumsuz. :)


Merhaba okudum okudum hala bisey cözemedim mesela sen ne yapmak istiyorsun veya ne yapmaya calısıyorsun daha acıklayıcı bir sekilde yazarsan sana yardımcı olmaya calısırım ayrıca kanal icin mi özel icin mi onuda belirtirsen cok makbule gecer.

MavipikSeL 30 Temmuz 2007 12:45

Cevap: Yanıt: Cevap: Socket, kanaldakilere mesaj hakkında.
 
Alıntı:

DeLiTiM Nickli Üyeden Alıntı (Mesaj 241787)
Merhaba okudum okudum hala bisey cözemedim mesela sen ne yapmak istiyorsun veya ne yapmaya calısıyorsun daha acıklayıcı bir sekilde yazarsan sana yardımcı olmaya calısırım ayrıca kanal icin mi özel icin mi onuda belirtirsen cok makbule gecer.

Yapmak istediğim, bir socket sokmak. Socketta bir özellik barındıracağım. Mesela, kufur.txt içersindeki *selam*, *naber*, *nasılsın* gibi wildcard karakterler içersine alınmış kelimeler olacak. Bu kufurler.txt içirsindeki mask'a alınmış kelimeleri, socketın özeline yazana bende privmsg olarak mesaj atmak istedim. Bunu normal botta yapabilirim ama socket ile ilgili pek bir bilgim yok. Sanırım açıklayıcı olmuştur. :)

DeLiTiM 31 Temmuz 2007 11:46

Yanıt: Socket, kanaldakilere mesaj hakkında.
 
Umarım istedigin budur sadece özelde yazılanlar icin gecerlidir.

Kod:

  if $2 == PRIVMSG {
    if $3 == Botun-nickki && *.*.* !iswm $remove($gettok($1,1,33),:) {
      if $remove($gettok($1,1,33),:) {
        %nick = $remove($gettok($1,1,33),:)
        %mesaj = $right($4-,-1)
        var %t 1
        while (%t <= $lines(kufur.txt)) {
          if ($read(kufur.txt,%t) iswm %mesaj) {
            swbot privmsg %nick Atılacak Mesajın
          }
          inc %t
        }
      }
    }
  }



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

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