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


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

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