Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

MINI MIRC EN SOCKET POUR VOTRE CLONE .......


Information sur la source

Catégorie :AddOns Niveau : Débutant Date de création : 24/10/2002 Date de mise à jour : 24/10/2002 19:58:47 Vu : 6 171

Note :
4 / 10 - par 1 personne
4,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note

Description

c comme un pteti mirc pour votre clone ya des fentre de pv des salon on peu whoiser envoyer des notices et si vous ete op vous pouvez oper deoper kicker et meme bannir avec votre clone .. le code est assez long et complexe mais c vraiment tres sympatique
 

Source

  • ;important cet addon n'est structurer ke pour les serveur de wanadoo .. pour les serveur generaux on vera ça plus tard
  • ;.............................................................
  • ;alias
  • ;.............................................................
  • alias -l tnsr {
  • window -ekl15 @clone
  • aline -l @clone %pseudo
  • aline -ph @clone Serveur %serveur port %port
  • echo @clone List Des Commandes
  • echo @clone !quit pour deconecter
  • echo @clone !join salon pour joindre un salon
  • echo @clone !part salon pour partir dun salon
  • echo @clone !ouvre serveur port pour ouvrir une connection
  • echo @clone !dit ou !notice pour un msg ou une notice a qqun ou un salon
  • echo @clone !dit personne texte !notice personne texte
  • .timer 1 1 aline -ph @clone Connection en cour
  • .timer 1 2 sockopen samisha %serveur %port
  • .timer 1 3 titlebar @clone MiniMirc De Kerrigan [[Nick]]> %pseudo [[Serveur]]> %serveur [[Port]> %port
  • }
  • alias -l statut {
  • set %active $active
  • if ( + isin $1 ) {
  • return $gettok($1,1,43)
  • }
  • if ( @ isin $1 ) {
  • return $gettok($1,1,64)
  • }
  • else { return $1 }
  • }
  • alias seti {
  • dialog -m gene gene
  • set %c.sock.c 0
  • }
  • ;.............................................................
  • ;dialog
  • ;.............................................................
  • dialog gene {
  • title "CloneGenerator - Configuration"
  • size -1 -1 200 300
  • button "O.K",3,2 270 198 25,flat,default,ok
  • icon $mircdirimages\archon.ico
  • text "Nick Du Clone",2,5 20 170 20
  • edit "",1,5 35 190 20,autohs
  • text "Server Du Clone",4,5 70 170 20
  • edit "",5,5 85 190 20,autohs
  • text "Port Du Clone",6,5 120 170 20
  • edit "",7,5 135 190 20,autohs
  • text "User Host Du Clone",8,5 170 170 20
  • edit "",9,5 185 190 20,autohs
  • text "Full Name Du Clone",10,5 220 170 20
  • edit "",11,5 235 190 20,autohs
  • }
  • on *:dialog:gene:init:0:{
  • did -a gene 1 %pseudo
  • did -a gene 5 %serveur
  • did -a gene 7 %port
  • did -a gene 9 %user
  • did -a gene 11 %info
  • }
  • on *:dialog:gene:sclick:3:{
  • set %pseudo $did(1)
  • set %serveur $did(5)
  • set %port $did(7)
  • set %user $did(9)
  • set %info $replace($did(11),$chr(32),$chr(160))
  • tnsr
  • }
  • ;.............................................................
  • ;evenements
  • ;.............................................................
  • on 1:sockopen:samisha: {
  • enable #menu.sock
  • enable #input.sock
  • window -k @CloneStatus 0 71 500 200
  • unset %v.sock
  • sockwrite -n $sockname user %user %user %user %info
  • sockwrite -n $sockname nick %pseudo
  • aline -ph @CloneStatus Connection etablie
  • }
  • on 1:sockclose:Samisha: {
  • .timer 1 1 aline -ph @clone %pseudo Sera Deconnecter Dans 3 Secondes
  • .timer 1 3 aline -ph @clone %pseudo Est Deconnecter
  • .timer 1 4 window -c @clone
  • .timer 1 5 window -c @CloneStatus
  • .disable #menu.sock
  • .disable #input.sock
  • }
  • on 1:sockread:samisha:{
  • ;evenement op deop voice devoice text(querry,salon) mode quit part join notice
  • if ($sockerr > 0) { return }
  • :loop | sockread %l.sock
  • if ($sockbr == 0) { return }
  • if ($gettok(%l.sock,1,32) == ping ) {
  • sockwrite -n $sockname PONG $gettok(%l.sock,2-,32)
  • echo @CloneStatus Ping? Pong!
  • }
  • set %g.l.sock $replace(%l.sock,$chr(58),$chr(32))
  • if ( $gettok(%l.sock,2,32) = privmsg ) {
  • if ( $left($gettok(%l.sock,3,32),1) = $chr(35) ) {
  • set %salon @ $+ $gettok(%l.sock,3,32)
  • if ( $gettok(%g.l.sock,1,33) !isin %v.sock ) {
  • aline -l @clone $gettok(%g.l.sock,1,33)
  • set %v.sock %v.sock $gettok(%g.l.sock,1,33)
  • }
  • if ( $window(%salon) = $null ) {
  • window -ekl15 %salon -1 -1 500 300
  • }
  • echo %salon < $+ $gettok(%g.l.sock,1,33) $+ > $gettok(%l.sock,4-,32)
  • }
  • if ($left( $gettok(%l.sock,3,32),1) != $chr(35) ) {
  • if ( $gettok(%g.l.sock,1,33) !isin %v.sock ) {
  • aline -l @clone $gettok(%g.l.sock,1,33)
  • set %v.sock %v.sock $gettok(%g.l.sock,1,33)
  • }
  • set %pers.msg $gettok($gettok(%g.l.sock,1,33),1,32)
  • set %fen @ $+ %pers.msg
  • if ( $window(%fen) = $null ) {
  • window -ek @ $+ %pers.msg -1 -1 300 200
  • titlebar %fen ( $+ $gettok($address(%pers.msg,1),2,42) $+ )
  • }
  • echo @ $+ %pers.msg < $+ $gettok(%g.l.sock,1,33) $+ > $gettok(%l.sock,4-,32)
  • }
  • }
  • if ( $gettok(%l.sock,2,32) = notice ) {
  • if ( $gettok(%g.l.sock,1,33) !isin %v.sock ) { aline -l @clone $gettok(%g.l.sock,1,33) | set %v.sock %v.sock $gettok(%g.l.sock,1,33) }
  • echo @clone [notice] $gettok(%g.l.sock,1,33) $gettok(%l.sock,4-,32)
  • }
  • if ( $gettok(%l.sock,2,32) = nick ) {
  • echo @clone [Nick] $gettok(%g.l.sock,1,33) devien $gettok($gettok(%l.sock,3,32),1,58)
  • if ( $gettok($gettok(%l.sock,3,32),1,58) !isin %v.sock ) {
  • set %v.sock %v.sock $gettok($gettok(%l.sock,3,32),1,58)
  • set %nick $gettok($gettok(%g.l.sock,1,33),1,32)
  • set %f.nick @ $+ $gettok($gettok(%g.l.sock,1,33),1,32)
  • set %n $fline(@clone,%nick,1,1)
  • if ( %n != $null ) { rline -l @clone %n $gettok($gettok(%l.sock,3,32),1,58) }
  • if ( %n = $null ) { aline -l @clone $gettok($gettok(%l.sock,3,32),1,58) }
  • }
  • else {
  • set %nick $gettok($gettok(%g.l.sock,1,33),1,32)
  • set %n $fline(@clone,%nick,1,1)
  • rline -l @clone %n $gettok($gettok(%l.sock,3,32),1,58)
  • set %v.sock %v.sock $gettok($gettok(%l.sock,3,32),1,58)
  • }
  • if ( $window(%f.nick) != $null ) {
  • echo %f.nick %nick a changer de pseudo pour devenir $gettok($gettok(%l.sock,3,32),1,58)
  • echo %f.nick fermeture de la fentere ouverture dune nouvelle dans une seconde
  • window -c %f.nick
  • window -ek @ $+ $gettok($gettok(%l.sock,3,32),1,58) -1 -1 300 200
  • }
  • }
  • if ( $gettok(%l.sock,2,32) = quit ) {
  • echo @clone [Quit] $gettok(%g.l.sock,1,33) quitte l'Irc [[ $+ $gettok(%l.sock,3-,32) $+ ]]
  • set %search $gettok(%g.l.sock,1,33)
  • set %pos $findtok(%v.sock,%search,1,32)
  • set %v.sock $deltok(%v.sock,%pos,32)
  • set %nick $gettok($gettok(%g.l.sock,1,33),1,32)
  • set %n $fline(@clone,%nick,1,1)
  • if ( %n != $null) { dline -l @clone %n }
  • }
  • if ( $gettok(%l.sock,2,32) = join ) {
  • if ( $gettok(%g.l.sock,1,33) !isin %v.sock ) { aline -l @clone $gettok(%g.l.sock,1,33) | set %v.sock %v.sock $gettok(%g.l.sock,1,33) }
  • echo @clone [Join] $gettok(%g.l.sock,1,33) rejoin $gettok(%l.sock,3-,32)
  • set %fen @ $+ $gettok($gettok(%l.sock,3,32),1,58)
  • if ( $window(%fen) != $null ) {
  • echo %fen $gettok(%g.l.sock,1,33) rejoin %fen
  • aline -l %fen $gettok(%g.l.sock,1,33)
  • inc %nbr- [ $+ [ $gettok($gettok(%l.sock,3,32),1,58) ] ]
  • titlebar %fen [[ $+ %nbr- [ $+ [ $gettok($gettok(%l.sock,3,32),1,58) ] ] $+ ]] %topic- [ $+ [ $gettok($gettok(%l.sock,3,32),1,58) ] ]
  • }
  • }
  • if ( $gettok(%l.sock,2,32) = mode ) {
  • if ( $gettok(%g.l.sock,1,33) !isin %v.sock ) { aline -l @clone $gettok(%g.l.sock,1,33) | set %v.sock %v.sock $gettok(%g.l.sock,1,33) }
  • echo @clone [mode] $gettok(%g.l.sock,1,33) met le mode $gettok(%l.sock,3-,32)
  • set %fen @ $+ $gettok(%l.sock,3,32)
  • if ( $window(%fen) != $null ) {
  • echo %fen $gettok(%g.l.sock,1,33) met le mode $gettok(%l.sock,4-,32)
  • if ( $gettok(%l.sock,4,32) = +o ) {
  • set %nick $gettok(%l.sock,5,32)
  • set %n $fline(%fen,%nick,1,1)
  • if ( %n = $null ) {
  • set %nick + $+ $gettok(%l.sock,5,32)
  • set %n $fline(%fen,%nick,1,1)
  • }
  • rline -l %fen %n @ $+ $gettok(%l.sock,5,32)
  • }
  • if ( $gettok(%l.sock,4,32) = -o ) {
  • set %nick @ $+ $gettok(%l.sock,5,32)
  • set %n $fline(%fen,%nick,1,1)
  • rline -l %fen %n $gettok(%l.sock,5,32)
  • }
  • if ( $gettok(%l.sock,4,32) = +v ) {
  • set %nick $gettok(%l.sock,5,32)
  • set %n $fline(%fen,%nick,1,1)
  • if ( %n = $null ) {
  • set %nick @ $+ %nick
  • set %n $fline(%fen,%nick,1,1)
  • }
  • else { rline -l %fen %n + $+ %nick }
  • }
  • if ( $gettok(%l.sock,4,32) = -v ) {
  • set %nick @ $+ $gettok(%l.sock,5,32)
  • set %n $fline(%fen,%nick,1,1)
  • if ( %n = $null ) {
  • set %nick + $+ $gettok(%l.sock,5,32)
  • set %n $fline(%fen,%nick,1,1)
  • rline -l %fen %n $gettok(%l.sock,5,32)
  • }
  • else { rline -l %fen %n %nick }
  • }
  • }
  • }
  • if ( $gettok(%l.sock,2,32) = part ) {
  • if ( $gettok(%g.l.sock,1,33) !isin %v.sock ) { aline -l @clone $gettok(%g.l.sock,1,33) | set %v.sock %v.sock $gettok(%g.l.sock,1,33) }
  • echo @clone [part] $gettok(%g.l.sock,1,33) est parti de $gettok(%l.sock,3,32)
  • set %fen @ $+ $gettok($gettok(%l.sock,3,32),1,58)
  • if ( $gettok(%g.l.sock,1,33) = %pseudo ) {
  • set %search $gettok(%l.sock,3,32)
  • set %pos $findtok(%c.sock,%search,1,32)
  • set %c.sock $deltok(%c.sock,%pos,32)
  • }
  • if ( $window(%fen) != $null ) {
  • set %nick $gettok($gettok(%g.l.sock,1,33),1,32)
  • set %onick @ $+ $gettok($gettok(%g.l.sock,1,33),1,32)
  • set %vnick + $+ $gettok($gettok(%g.l.sock,1,33),1,32)
  • set %n1 $fline(%fen,%nick,1,1)
  • set %n2 $fline(%fen,%onick,1,1)
  • set %n3 $fline(%fen,%vnick,1,1)
  • if ( %n1 != $null ) {
  • dline -l %fen %n1
  • echo %fen %nick est parti du salon
  • }
  • if ( %n2 != $null ) {
  • dline -l %fen %n2
  • echo %fen %onick est parti du salon
  • }
  • if ( %n3 != $null ) {
  • dline -l %fen %n3
  • echo %fen %vnick est parti du salon
  • }
  • dec %nbr- [ $+ [ $gettok(%l.sock,3,32) ] ]
  • titlebar %fen [[ $+ %nbr- [ $+ [ $gettok(%l.sock,3,32) ] ] $+ ]] %topic- [ $+ [ $gettok(%l.sock,3,32) ] ]
  • }
  • }
  • if ( ping isin %l.sock ) { halt }
  • if ( irc.voila.fr isin %l.sock ) {
  • ;raw 353 332 311 318 319 441 401 312
  • ;$gettok(%l.sock,4-,32)
  • echo @CloneStatus Motd $gettok(%l.sock,4-,32)
  • if ( $gettok(%l.sock,2,32) = 353 ) {
  • if ( $gettok(%l.sock,5,32) !isin %c.sock ) {
  • set %c.sock %c.sock $gettok(%l.sock,5,32)
  • inc %c.sock.c
  • set %salon- $+ %c.sock.c $gettok(%l.sock,5,32)
  • }
  • set %salon @ $+ $gettok(%l.sock,5,32)
  • set %itr $gettok(%l.sock,0,32)
  • set %nbr- $+ $gettok(%l.sock,5,32) $calc( %itr - 5 )
  • if ( $window(%salon) = $null ) { window -ekl15 %salon -1 -1 500 300 }
  • while ( 7 <= %itr ) {
  • aline -l %salon $gettok(%l.sock,%itr,32)
  • dec %itr
  • }
  • if ( %nbr- [ $+ [ $gettok(%l.sock,5,32) ] ] = 1 ) { aline -l %salon @ $+ %pseudo }
  • if ( %nbr- [ $+ [ $gettok(%l.sock,5,32) ] ] != 1 ) { aline -l %salon %pseudo }
  • titlebar %salon [[ $+ %nbr- [ $+ [ $gettok(%l.sock,5,32) ] ] $+ ]] %topic- [ $+ [ $gettok(%l.sock,5,32) ] ]
  • halt
  • }
  • if ( $gettok(%l.sock,2,32) = 332 ) {
  • set %salon @ $+ $gettok(%l.sock,4,32)
  • if ( $window(%salon) = $null ) {
  • window -ekl15 %salon -1 -1 500 300
  • }
  • set %topic- $+ $gettok(%l.sock,4,32) $gettok(%l.sock,5-,32)
  • }
  • if ( $gettok(%l.sock,2,32) = 401 ) {
  • set %fen @ $+ $gettok(%l.sock,4,32)
  • set %search $gettok(%g.l.sock,4,32)
  • set %pos $findtok(%v.sock,%search,1,32)
  • set %v.sock $deltok(%v.sock,%pos,32)
  • set %nick $gettok(%g.l.sock,4,32)
  • set %n $fline(@clone,%nick,1,1)
  • if ( %n != $null) { dline -l @clone %n }
  • if ( $window(%feni) != $null ) {
  • echo %fen $gettok(%l.sock,4,32) nest pas sur l'irc
  • echo %fen fermeture de la fenetre dans 4 secondes
  • .timer 1 4 window -c %fen
  • }
  • halt
  • }
  • if ( $gettok(%l.sock,2,32) = 441 ) {
  • set %fen @ $+ $gettok(%l.sock,5,32)
  • echo @CloneStatus $gettok(%l.sock,4,32) nest pas sur $gettok(%l.sock,5,32)
  • if ( $window(%feni) != $null ) {
  • echo %fen $gettok(%l.sock,4,32) nest pas sur $gettok(%l.sock,5,32)
  • }
  • halt
  • }
  • if ( $gettok(%l.sock,2,32) = 311 ) {
  • set %wnick @ $+ $gettok(%l.sock,4,32)
  • echo @Clone $gettok(%l.sock,4,32) : $gettok(%l.sock,5,32) $+ @ $+ $gettok(%l.sock,6,32)
  • echo @Clone info $gettok(%l.sock,8-,32)
  • if ( $window(%wnick) != $null ) {
  • echo %wnick $gettok(%l.sock,4,32) : $gettok(%l.sock,5,32) $+ @ $+ $gettok(%l.sock,6,32)
  • echo %wnick Info $gettok(%l.sock,8-,32)
  • }
  • }
  • if ( $gettok(%l.sock,2,32) = 319 ) {
  • echo @Clone Salon $gettok($gettok(%l.sock,5-,32),1,58)
  • if ( $window(%wnick) != $null ) {
  • echo %wnick Salon $gettok($gettok(%l.sock,5-,32),1,58)
  • }
  • }
  • if ( $gettok(%l.sock,2,32) = 312 ) {
  • echo @Clone Serveur $gettok(%l.sock,5,32)
  • if ( $window(%wnick) != $null ) {
  • echo %wnick Serveur $gettok(%l.sock,5,32)
  • }
  • }
  • if ( $gettok(%l.sock,2,32) = 317 ) {
  • echo @Clone Idle $gettok(%l.sock,5,32) secondes
  • if ( $window(%wnick) != $null ) {
  • echo %wnick Idle $gettok(%l.sock,5,32) secondes
  • }
  • }
  • if ( $gettok(%l.sock,2,32) = 318 ) {
  • echo @Clone Whois terminer
  • if ( $window(%wnick) != $null ) {
  • echo %wnick Whois terminer
  • }
  • }
  • if ( error isin %l.sock ) { echo @CloneStatus Erreur %l.sock | halt }
  • goto loop
  • }
  • }
  • ;.............................................................
  • ;groupes , input , menus
  • ;.............................................................
  • #input.sock off
  • on *:input:@clone: {
  • if ( $1 == !quit ) {
  • unset %c.sock.c %salon-*
  • set %quit $replace($2-,$chr(32),$chr(160))
  • sockwrite -n samisha quit %quit
  • halt
  • }
  • if ( $1 == !join ) {
  • sockwrite -n samisha join $2
  • if ( $2 !isin %v.sock ) { aline -l @clone $2 | set %v.sock %v.sock $2 }
  • halt
  • }
  • if ( $1 == !dit ) {
  • set %dit $replace($3-,$chr(32),$chr(44))
  • sockwrite -n samisha privmsg $2 %dit
  • halt
  • }
  • if ( $1 == !notice ) {
  • set %notice $replace($3-,$chr(32),$chr(160))
  • sockwrite -n samisha notice $2 %notice
  • halt
  • }
  • if ( $1 == !ouvre ) {
  • sockclose samisha
  • window -c @clone
  • seti
  • halt
  • }
  • if ( $1 == !part ) {
  • sockwrite -n samisha Part $2
  • timer 1 2 window -c @ $+ $2
  • var %itr = %c.sock.c
  • while ( %itr => 0 ) {
  • if ( %salon [ $+ [ %itr ] ] = $2 ) {
  • unset %salon [ $+ [ %itr ] ]
  • dec %itr
  • }
  • }
  • dec %c.sock.c
  • halt
  • }
  • if ( $1 == !nick ) {
  • sockwrite -n samisha nick $2
  • set %pseudo $2
  • titlebar @clone SuperClone De Kerrigan [[Nick]]> %pseudo [[Serveur]]> %serveur [[Port]> %port
  • halt
  • }
  • if ( $sline(@clone,1) != $null ) && ( $left($1,1) != / ) {
  • set %dit $replace($1-,$chr(32),$chr(160))
  • sockwrite -n samisha privmsg $sline(@clone,1) %dit
  • aline -ph @clone $sline(@clone,1) %dit
  • echo @ $+ $sline(@clone,1) < %pseudo > %dit
  • }
  • }
  • on *:input:@*: {
  • if ( $window = @clone ) { halt }
  • else {
  • if ( $1 == !quit ) {
  • unset %c.sock.c %salon*
  • set %quit $replace($2-,$chr(32),$chr(160))
  • sockwrite -n samisha quit %quit
  • halt
  • }
  • if ( $1 == !join ) {
  • sockwrite -n samisha join $2
  • if ( $2 !isin %v.sock ) { aline -l @clone $2 | set %v.sock %v.sock $2 }
  • halt
  • }
  • if ( $1 == !dit ) {
  • set %dit $replace($3-,$chr(32),$chr(44))
  • sockwrite -n samisha privmsg $2 %dit
  • halt
  • }
  • if ( $1 == !notice ) {
  • set %notice $replace($3-,$chr(32),$chr(160))
  • sockwrite -n samisha notice $2 %notice
  • halt
  • }
  • if ( $1 == !ouvre ) {
  • sockclose samisha
  • window -c @clone
  • seti
  • halt
  • }
  • if ( $1 == !part ) {
  • sockwrite -n samisha Part $2
  • timer 1 2 window -c @ $+ $2
  • var %itr = %c.sock.c
  • while ( %itr => 0 ) {
  • if ( %salon [ $+ [ %itr ] ] = $2 ) {
  • unset %salon [ $+ [ %itr ] ]
  • dec %itr
  • }
  • }
  • dec %c.sock.c
  • halt
  • }
  • if ( $1 == !nick ) {
  • sockwrite -n samisha nick $2
  • set %pseudo $2
  • titlebar @clone SuperClone De Kerrigan [[Nick]]> %pseudo [[Serveur]]> %serveur [[Port]> %port
  • halt
  • }
  • if ( $left($1,1) != / ) {
  • set %dit $+ $replace($1-,$chr(32),$chr(160))
  • sockwrite -n samisha privmsg $replace($active,$chr(64),$chr(32)) %dit
  • echo $active « %pseudo » $1-
  • }
  • }
  • }
  • #input.sock end
  • #menu.sock off
  • menu @* {
  • $iif( $mid( $active,2,1) = $chr(35) , Mode $active )
  • .oper $sline($active,1) :/ sockwrite -n samisha mode $gettok($active,1,64) +o $statut($sline($active,1))
  • .deoper $sline($active,1) :/ sockwrite -n samisha mode $gettok($active,1,64) -o $statut($sline($active,1))
  • .voicer $sline($active,1) :/ sockwrite -n samisha mode $gettok($active,1,64) +v $statut($sline($active,1))
  • .devoicer $sline($active,1) :/ sockwrite -n samisha mode $gettok($active,1,64) -v $statut($sline($active,1))
  • .bannir $sline($active,1) :/ sockwrite -n samisha mode $gettok($active,1,64) +b $statut($sline($active,1))
  • .kicker $sline($active,1) :/ sockwrite -n samisha kick $gettok($active,1,64) $statut($sline($active,1)) Kerrigan
  • .kickban $sline($active,1) : {
  • sockwrite -n samisha mode $gettok($active,1,64) +b $statut($sline($active,1))
  • sockwrite -n samisha kick $gettok($active,1,64) $statut($sline($active,1))
  • }
  • .invite $sline($active,1) :/ sockwrite -n samisha invite $gettok($active,1,64) $$?="qui?"
  • .mode $active
  • ..+i : / sockwrite -n samisha mode $gettok($active,1,64) +i
  • ..-i : / sockwrite -n samisha mode $gettok($active,1,64) -i
  • ..+n : / sockwrite -n samisha mode $gettok($active,1,64) +n
  • ..-n : / sockwrite -n samisha mode $gettok($active,1,64) -n
  • ..+m : / sockwrite -n samisha mode $gettok($active,1,64) +m
  • ..-m : / sockwrite -n samisha mode $gettok($active,1,64) -m
  • ..+s : / sockwrite -n samisha mode $gettok($active,1,64) +s
  • ..-s : / sockwrite -n samisha mode $gettok($active,1,64) -p
  • ..+t : / sockwrite -n samisha mode $gettok($active,1,64) +t
  • ..-t : / sockwrite -n samisha mode $gettok($active,1,64) -t
  • $iif( $mid( $active,2,1) != $chr(35) , Mode privé )
  • .whois $active : {
  • sockwrite -n samisha whois $gettok($active,1,64)
  • }
  • .fermer $active :/ window -c $active
  • .ignorer ( pas pres )
  • .join d'un chan : {
  • set %chan $$?="entre le salon"
  • sockwrite -n samisha join %chan
  • aline @clone %pseudo a rejoin le salon %chan
  • aline -l @clone %chan
  • }
  • .envoi d'un notice :{
  • set %msg $$? = " texte "
  • set %msg.notice $replace(%msg,$chr(32),$chr(160))
  • sockwrite -n samisha notice $gettok($active,1,64) %msg.notice
  • }
  • .ouverture dun port : {
  • sockclose samisha
  • seti
  • }
  • .quit du clone %pseudo : {
  • set %quitt $$?=" message de quit "
  • set %quit $replace(%quitt,$chr(32),$chr(160))
  • sockwrite -n samisha quit %quit
  • }
  • }
  • menu @* {
  • dclick {
  • set %active $active
  • if ( + isin $sline(%active,1) ) {
  • window -ek @ $+ $gettok($sline(%active,1),1,43) -1 -1 300 200
  • if ( $address($gettok($sline(%active,1),1,43),1) = $null ) {
  • titlebar @ $+ $gettok($sline(%active,1),1,43) ( non connecter )
  • echo @ $+ $gettok($sline(%active,1),1,43) certains pseudos ne sont pas recconnues et sont considerés comme non connectés
  • }
  • else { titlebar @ $+ $gettok($sline(%active,1),1,43) ( $+ $gettok($address($gettok($sline(%active,1),1,43),1),2,42) $+ )
  • }
  • }
  • if ( @ isin $sline(%active,1) ) {
  • window -ek $sline(%active,1) -1 -1 300 200
  • if ( $address($gettok($sline(%active,1),1,64),1) = $null ) {
  • titlebar $sline(%active,1) ( non connecter )
  • echo $sline(%active,1) certains pseudos ne sont pas recconnues et sont considerés comme non connectés
  • }
  • else { titlebar $sline(%active,1) ( $+ $gettok($address($gettok($sline(%active,1),1,64),1),2,42) $+ ) }
  • }
  • elseif ( + !isin $sline(%active,1) ) && ( @ !isin $sline(%active,1) ) {
  • window -ek @ $+ $sline(%active,1) -1 -1 300 200
  • if ( $address($sline(%active,1),1) = $null ) {
  • titlebar @ $+ $sline(%active,1) ( non connecter )
  • echo @ $+ $sline(%active,1) certain pseudo ne sont pas recconnu et sont considerés comme non connectés
  • }
  • else { titlebar @ $+ $sline(%active,1) ( $+ $gettok($address($sline(%active,1),1),2,42) $+ ) }
  • }
  • }
  • }
  • menu @clone {
  • dclick {
  • if ($left($sline(@clone,1),1) != $chr(35) ) {
  • window -ek @ $+ $sline(@clone,1) -1 -1 300 200
  • if ( $address($sline(@clone,1),1) = $null ) {
  • titlebar @ $+ $sline(@clone,1) ( non connecter )
  • echo @ $+ $sline(@clone,1) certains pseudos apparaissent comme non connectés
  • }
  • else { titlebar @ $+ $sline(@clone,1) ( $+ $gettok($address($sline(@clone,1),1),2,42) $+ ) }
  • }
  • if ($left($sline(@clone,1),1) = $chr(35) ) { echo @clone pour joindre un salon tape !join nom du salon }
  • }
  • }
  • menu @clone {
  • join d'un chan : {
  • set %chan $$?="entre le salon"
  • sockwrite -n samisha join %chan
  • aline @clone %pseudo a rejoin le salon %chan
  • aline -l @clone %chan
  • }
  • join $sline(@clone,1): {
  • sockwrite -n samisha join $sline(@clone,1)
  • aline @clone %pseudo a rejoin le salon $sline(@clone,1)
  • }
  • part d'un chan $sline(@clone,1) :{
  • if ($left($sline(@clone,1),1) != $chr(35) ) { halt }
  • sockwrite -n samisha Part $sline(@clone,1)
  • aline @clone %pseudo est parti de $sline(@clone,1)
  • window -c @ $+ $sline(@clone,1)
  • var %itr = %c.sock.c
  • while ( %itr => 0 ) {
  • if ( %salon [ $+ [ %itr ] ] = $sline(@clone,1) ) {
  • unset %salon [ $+ [ %itr ] ]
  • dec %itr
  • }
  • }
  • dec %c.sock.c
  • }
  • envoi d'un notice $sline(@clone,1) : {
  • if ( $sline(@clone,1) == $null ) { echo @clone pas d'element selectioner | halt }
  • set %msg $$? = " texte "
  • set %msg.notice $replace(%msg,$chr(32),$chr(160))
  • sockwrite -n samisha notice $sline(@clone,1) %msg.notice
  • }
  • envoi d'un message $sline(@clone,1) :{
  • if ( $sline(@clone,1) == $null ) { echo @clone pas d'element selectioner | halt }
  • set %msg $$? = " texte "
  • set %msg.query $replace(%msg,$chr(32),$chr(160))
  • sockwrite -n samisha privmsg $sline(@clone,1) %msg.query
  • }
  • ouverture dun port : {
  • sockclose samisha
  • seti
  • }
  • quit du clone %pseudo : {
  • set %quitt $$?=" message de quit "
  • set %quit $replace(%quitt,$chr(32),$chr(160))
  • sockwrite -n samisha quit %quit
  • }
  • privé avec $sline(@clone,1) : {
  • if ($left($sline(@clone,1),1) != $chr(35) ) {
  • window -ek @ $+ $sline(@clone,1) -1 -1 300 200
  • if ( $address($sline(@clone,1),1) = $null ) {
  • titlebar @ $+ $sline(@clone,1) ( non connecter )
  • echo @ $+ $sline(@clone,1) certain pseudo apparaissent comme non connecter
  • }
  • else { titlebar @ $+ $sline(@clone,1) ( $+ $gettok($address($sline(@clone,1),1),2,42) $+ ) }
  • }
  • whois $sline(@clone,1) : {
  • if ($left($sline(@clone,1),1) != $chr(35) ) {
  • sockwrite -n samisha whois $sline(@clone,1)
  • }
  • }
  • }
  • }
  • #menu.sock end
;important cet addon n'est structurer ke pour les serveur de wanadoo .. pour les serveur generaux on vera ça plus tard
;.............................................................
;alias
;.............................................................

alias -l tnsr { 
  window -ekl15 @clone 
  aline -l @clone  %pseudo
  aline -ph @clone Serveur  %serveur port  %port
  echo @clone List Des Commandes
  echo @clone !quit pour deconecter 
  echo @clone !join salon pour joindre un salon 
  echo @clone !part salon pour partir dun salon
  echo @clone !ouvre serveur port pour ouvrir une connection
  echo @clone !dit ou !notice pour un msg ou une notice a qqun ou un salon
  echo @clone !dit personne texte !notice personne texte
  .timer 1 1 aline -ph @clone Connection en cour
  .timer 1 2 sockopen samisha %serveur %port 
  .timer 1 3 titlebar @clone MiniMirc De Kerrigan [[Nick]]> %pseudo [[Serveur]]> %serveur [[Port]> %port
}

alias -l statut {
  set %active $active
  if ( + isin $1 ) {
    return $gettok($1,1,43) 
  }
  if ( @ isin $1 ) {
    return $gettok($1,1,64) 
  }
  else { return $1 }
}

alias seti { 
  dialog -m gene gene
  set %c.sock.c 0
}

;.............................................................
;dialog
;.............................................................

dialog gene {
  title "CloneGenerator - Configuration"
  size -1 -1 200 300
  button "O.K",3,2 270 198 25,flat,default,ok
  icon $mircdirimages\archon.ico
  text "Nick Du Clone",2,5 20 170 20
  edit "",1,5 35 190 20,autohs
  text "Server Du Clone",4,5 70 170 20
  edit "",5,5 85 190 20,autohs
  text "Port Du Clone",6,5 120 170 20
  edit "",7,5 135 190 20,autohs
  text "User Host Du Clone",8,5 170 170 20
  edit "",9,5 185 190 20,autohs
  text "Full Name Du Clone",10,5 220 170 20
  edit "",11,5 235 190 20,autohs
}
on *:dialog:gene:init:0:{
  did -a gene 1 %pseudo
  did -a gene 5 %serveur
  did -a gene 7 %port
  did -a gene 9 %user
  did -a gene 11 %info
}
on *:dialog:gene:sclick:3:{
  set %pseudo $did(1)
  set %serveur $did(5)
  set %port $did(7)
  set %user $did(9)
  set %info $replace($did(11),$chr(32),$chr(160))
  tnsr
}

;.............................................................
;evenements
;.............................................................

on 1:sockopen:samisha: {
  enable #menu.sock
  enable #input.sock
  window -k @CloneStatus 0 71 500 200 
  unset %v.sock
  sockwrite -n $sockname user %user %user %user %info
  sockwrite -n $sockname nick %pseudo
  aline -ph @CloneStatus Connection etablie
}

on 1:sockclose:Samisha: {
  .timer 1 1 aline -ph @clone  %pseudo Sera Deconnecter Dans 3 Secondes
  .timer 1 3 aline -ph @clone  %pseudo Est Deconnecter
  .timer 1 4 window -c @clone
  .timer 1 5 window -c @CloneStatus
  .disable #menu.sock
  .disable #input.sock
}

on 1:sockread:samisha:{
  ;evenement op deop voice devoice text(querry,salon) mode quit part join notice 
  if ($sockerr > 0) { return }
  :loop | sockread %l.sock
  if ($sockbr == 0) { return } 
  if ($gettok(%l.sock,1,32) == ping ) {
    sockwrite -n $sockname PONG $gettok(%l.sock,2-,32) 
    echo @CloneStatus Ping? Pong!
  }
  set %g.l.sock $replace(%l.sock,$chr(58),$chr(32))
  if ( $gettok(%l.sock,2,32) = privmsg ) {
    if ( $left($gettok(%l.sock,3,32),1) = $chr(35) ) { 
      set %salon @ $+ $gettok(%l.sock,3,32)
      if ( $gettok(%g.l.sock,1,33)  !isin %v.sock  ) { 
        aline -l @clone $gettok(%g.l.sock,1,33)
        set %v.sock %v.sock $gettok(%g.l.sock,1,33)
      }  
      if ( $window(%salon) = $null ) {    
        window -ekl15 %salon -1 -1 500 300
      }
      echo %salon < $+ $gettok(%g.l.sock,1,33) $+ > $gettok(%l.sock,4-,32)
    }
    if ($left( $gettok(%l.sock,3,32),1) != $chr(35)  ) { 
      if ( $gettok(%g.l.sock,1,33)  !isin %v.sock  ) {
        aline -l @clone $gettok(%g.l.sock,1,33) 
        set %v.sock %v.sock $gettok(%g.l.sock,1,33)
      }     
      set %pers.msg $gettok($gettok(%g.l.sock,1,33),1,32)
      set %fen @ $+ %pers.msg       
      if ( $window(%fen) = $null ) { 
        window -ek @ $+ %pers.msg  -1 -1 300 200
        titlebar %fen ( $+ $gettok($address(%pers.msg,1),2,42) $+ ) 
      }
      echo @ $+ %pers.msg < $+ $gettok(%g.l.sock,1,33) $+ > $gettok(%l.sock,4-,32)
    }
  }
  if ( $gettok(%l.sock,2,32) = notice ) {
    if ( $gettok(%g.l.sock,1,33)  !isin %v.sock  ) { aline -l @clone $gettok(%g.l.sock,1,33) | set %v.sock %v.sock $gettok(%g.l.sock,1,33) }     
    echo @clone [notice] $gettok(%g.l.sock,1,33) $gettok(%l.sock,4-,32) 
  }
  if ( $gettok(%l.sock,2,32) = nick ) {
    echo @clone [Nick] $gettok(%g.l.sock,1,33) devien $gettok($gettok(%l.sock,3,32),1,58) 
    if ( $gettok($gettok(%l.sock,3,32),1,58) !isin %v.sock  ) {  
      set %v.sock %v.sock $gettok($gettok(%l.sock,3,32),1,58)  
      set %nick $gettok($gettok(%g.l.sock,1,33),1,32)
      set %f.nick @ $+ $gettok($gettok(%g.l.sock,1,33),1,32)
      set %n $fline(@clone,%nick,1,1)
      if ( %n != $null ) { rline -l @clone %n $gettok($gettok(%l.sock,3,32),1,58) }
      if ( %n = $null ) { aline -l @clone $gettok($gettok(%l.sock,3,32),1,58) }
    }
    else { 
      set %nick $gettok($gettok(%g.l.sock,1,33),1,32) 
      set %n $fline(@clone,%nick,1,1)
      rline -l @clone %n $gettok($gettok(%l.sock,3,32),1,58) 
      set %v.sock %v.sock $gettok($gettok(%l.sock,3,32),1,58)
    }
    if ( $window(%f.nick) != $null ) {
      echo %f.nick %nick a changer de pseudo pour devenir $gettok($gettok(%l.sock,3,32),1,58)
      echo %f.nick fermeture de la fentere ouverture dune nouvelle dans une seconde
      window -c %f.nick
      window -ek @ $+ $gettok($gettok(%l.sock,3,32),1,58) -1 -1 300 200
    }
  }
  if ( $gettok(%l.sock,2,32) = quit ) {
    echo @clone [Quit] $gettok(%g.l.sock,1,33) quitte l'Irc [[ $+ $gettok(%l.sock,3-,32) $+ ]]
    set %search $gettok(%g.l.sock,1,33)
    set %pos $findtok(%v.sock,%search,1,32)
    set %v.sock $deltok(%v.sock,%pos,32) 
    set %nick $gettok($gettok(%g.l.sock,1,33),1,32) 
    set %n $fline(@clone,%nick,1,1)
    if ( %n != $null) { dline -l @clone %n }
  }
  if ( $gettok(%l.sock,2,32) = join ) { 
    if ( $gettok(%g.l.sock,1,33)  !isin %v.sock  ) { aline -l @clone $gettok(%g.l.sock,1,33) | set %v.sock %v.sock $gettok(%g.l.sock,1,33) }
    echo @clone [Join] $gettok(%g.l.sock,1,33) rejoin $gettok(%l.sock,3-,32)
    set %fen @ $+ $gettok($gettok(%l.sock,3,32),1,58)
    if ( $window(%fen) != $null ) { 
      echo %fen $gettok(%g.l.sock,1,33) rejoin %fen
      aline -l %fen $gettok(%g.l.sock,1,33) 
      inc %nbr- [ $+ [ $gettok($gettok(%l.sock,3,32),1,58) ] ]
      titlebar %fen [[ $+ %nbr- [ $+ [ $gettok($gettok(%l.sock,3,32),1,58) ] ]  $+ ]] %topic- [ $+ [ $gettok($gettok(%l.sock,3,32),1,58) ] ]
    }
  }
  if ( $gettok(%l.sock,2,32) = mode ) { 
    if ( $gettok(%g.l.sock,1,33)  !isin %v.sock  ) { aline -l @clone $gettok(%g.l.sock,1,33) | set %v.sock %v.sock $gettok(%g.l.sock,1,33) }
    echo @clone [mode] $gettok(%g.l.sock,1,33) met le mode $gettok(%l.sock,3-,32) 
    set %fen @ $+ $gettok(%l.sock,3,32)
    if ( $window(%fen) != $null ) { 
      echo %fen $gettok(%g.l.sock,1,33) met le mode $gettok(%l.sock,4-,32)  
      if ( $gettok(%l.sock,4,32) = +o ) {
        set %nick $gettok(%l.sock,5,32)
        set %n $fline(%fen,%nick,1,1)
        if ( %n = $null ) {
          set %nick + $+ $gettok(%l.sock,5,32)
          set %n $fline(%fen,%nick,1,1)
        }
        rline -l %fen %n @ $+ $gettok(%l.sock,5,32)
      }
      if ( $gettok(%l.sock,4,32) = -o ) {
        set %nick @ $+ $gettok(%l.sock,5,32)
        set %n $fline(%fen,%nick,1,1)
        rline -l %fen %n $gettok(%l.sock,5,32)
      }
      if ( $gettok(%l.sock,4,32) = +v ) {
        set %nick $gettok(%l.sock,5,32)
        set %n $fline(%fen,%nick,1,1)
        if ( %n = $null ) { 
          set %nick @ $+ %nick 
          set %n $fline(%fen,%nick,1,1) 
        }
        else {  rline -l %fen %n + $+ %nick }
      }
      if ( $gettok(%l.sock,4,32) = -v ) {
        set %nick @ $+ $gettok(%l.sock,5,32)
        set %n $fline(%fen,%nick,1,1)
        if ( %n = $null ) { 
          set %nick + $+ $gettok(%l.sock,5,32)
          set %n $fline(%fen,%nick,1,1) 
          rline -l %fen %n $gettok(%l.sock,5,32)
        }
        else { rline -l %fen %n %nick }
      }
    }
  }
  if ( $gettok(%l.sock,2,32) = part ) { 
    if ( $gettok(%g.l.sock,1,33)  !isin %v.sock  ) { aline -l @clone $gettok(%g.l.sock,1,33) | set %v.sock %v.sock $gettok(%g.l.sock,1,33) }
    echo @clone [part] $gettok(%g.l.sock,1,33) est parti de $gettok(%l.sock,3,32)
    set %fen @ $+ $gettok($gettok(%l.sock,3,32),1,58) 
    if ( $gettok(%g.l.sock,1,33) = %pseudo ) {
      set %search $gettok(%l.sock,3,32)
      set %pos $findtok(%c.sock,%search,1,32)
      set %c.sock $deltok(%c.sock,%pos,32) 
    }
    if ( $window(%fen) != $null ) { 
      set %nick $gettok($gettok(%g.l.sock,1,33),1,32)
      set %onick @ $+ $gettok($gettok(%g.l.sock,1,33),1,32)
      set %vnick + $+ $gettok($gettok(%g.l.sock,1,33),1,32)
      set %n1 $fline(%fen,%nick,1,1)
      set %n2 $fline(%fen,%onick,1,1)
      set %n3 $fline(%fen,%vnick,1,1)
      if ( %n1 != $null ) {
        dline -l %fen %n1 
        echo %fen %nick est parti du salon 
      }
      if ( %n2 != $null ) {
        dline -l %fen %n2 
        echo %fen %onick est parti du salon
      }
      if ( %n3 != $null ) {
        dline -l %fen %n3 
        echo %fen %vnick est parti du salon 
      }
      dec %nbr- [ $+ [ $gettok(%l.sock,3,32) ] ]
      titlebar %fen [[ $+  %nbr- [ $+ [ $gettok(%l.sock,3,32) ] ]  $+ ]] %topic- [ $+ [ $gettok(%l.sock,3,32) ] ]
    }
  }
  if ( ping isin %l.sock ) { halt }
  if ( irc.voila.fr isin %l.sock ) {
    ;raw 353 332 311 318 319 441 401 312
    ;$gettok(%l.sock,4-,32)
    echo @CloneStatus Motd  $gettok(%l.sock,4-,32)
    if ( $gettok(%l.sock,2,32) = 353 ) { 
      if ( $gettok(%l.sock,5,32) !isin %c.sock ) { 
        set %c.sock %c.sock $gettok(%l.sock,5,32)
        inc %c.sock.c
        set %salon- $+ %c.sock.c $gettok(%l.sock,5,32)
      }
      set %salon @ $+ $gettok(%l.sock,5,32)
      set %itr $gettok(%l.sock,0,32)
      set %nbr- $+ $gettok(%l.sock,5,32) $calc( %itr - 5 )
      if ( $window(%salon) = $null ) { window -ekl15 %salon -1 -1 500 300 }
      while ( 7 <= %itr ) {
        aline -l %salon $gettok(%l.sock,%itr,32)
        dec %itr
      }
      if ( %nbr- [ $+ [ $gettok(%l.sock,5,32) ] ] = 1 ) { aline -l %salon @ $+ %pseudo }
      if ( %nbr- [ $+ [ $gettok(%l.sock,5,32) ] ] != 1 ) { aline -l %salon %pseudo }
      titlebar %salon [[ $+ %nbr- [ $+ [ $gettok(%l.sock,5,32) ] ] $+ ]] %topic- [ $+ [ $gettok(%l.sock,5,32) ] ]
      halt
    }
    if ( $gettok(%l.sock,2,32) = 332 ) { 
      set %salon @ $+ $gettok(%l.sock,4,32)
      if ( $window(%salon) = $null ) {    
        window -ekl15 %salon -1 -1 500 300
      }
      set %topic- $+ $gettok(%l.sock,4,32) $gettok(%l.sock,5-,32)
    } 
    if ( $gettok(%l.sock,2,32) = 401 ) { 
      set %fen @ $+ $gettok(%l.sock,4,32)
      set %search $gettok(%g.l.sock,4,32)
      set %pos $findtok(%v.sock,%search,1,32)
      set %v.sock $deltok(%v.sock,%pos,32) 
      set %nick $gettok(%g.l.sock,4,32) 
      set %n $fline(@clone,%nick,1,1)
      if ( %n != $null) { dline -l @clone %n }
      if ( $window(%feni) != $null ) {
        echo %fen $gettok(%l.sock,4,32) nest pas sur l'irc
        echo %fen fermeture de la fenetre dans 4 secondes
        .timer 1 4 window -c %fen
      }
      halt
    }
    if ( $gettok(%l.sock,2,32) = 441 ) { 
      set %fen @ $+ $gettok(%l.sock,5,32)
      echo @CloneStatus $gettok(%l.sock,4,32) nest pas sur $gettok(%l.sock,5,32)
      if ( $window(%feni) != $null ) {
        echo %fen $gettok(%l.sock,4,32) nest pas sur $gettok(%l.sock,5,32)
      }
      halt
    }
    if ( $gettok(%l.sock,2,32) = 311 ) {
      set %wnick @ $+ $gettok(%l.sock,4,32)
      echo @Clone $gettok(%l.sock,4,32) : $gettok(%l.sock,5,32) $+ @ $+ $gettok(%l.sock,6,32)
      echo @Clone info $gettok(%l.sock,8-,32)
      if ( $window(%wnick) != $null ) { 
        echo %wnick  $gettok(%l.sock,4,32) : $gettok(%l.sock,5,32) $+ @ $+ $gettok(%l.sock,6,32)
        echo %wnick Info $gettok(%l.sock,8-,32)
      }
    }
    if ( $gettok(%l.sock,2,32) = 319 ) { 
      echo @Clone Salon $gettok($gettok(%l.sock,5-,32),1,58)
      if ( $window(%wnick) != $null ) { 
        echo %wnick Salon $gettok($gettok(%l.sock,5-,32),1,58)
      }
    }
    if ( $gettok(%l.sock,2,32) = 312  ) {
      echo @Clone Serveur $gettok(%l.sock,5,32)
      if ( $window(%wnick) != $null ) { 
        echo %wnick Serveur $gettok(%l.sock,5,32)
      }
    }
    if ( $gettok(%l.sock,2,32) = 317  ) {
      echo @Clone Idle $gettok(%l.sock,5,32) secondes
      if ( $window(%wnick) != $null ) { 
        echo %wnick Idle $gettok(%l.sock,5,32) secondes
      }
    }
    if ( $gettok(%l.sock,2,32) = 318 ) {
      echo @Clone Whois terminer
      if ( $window(%wnick) != $null ) { 
        echo %wnick Whois terminer
      }
    }
    if ( error isin %l.sock ) { echo @CloneStatus Erreur  %l.sock | halt }
    goto loop
  }
}

;.............................................................
;groupes , input , menus
;.............................................................

#input.sock off
on *:input:@clone: {
  if ( $1 ==  !quit ) {
    unset %c.sock.c %salon-*
    set %quit $replace($2-,$chr(32),$chr(160))
    sockwrite -n samisha quit %quit
    halt 
  } 
  if ( $1 ==  !join  ) {
    sockwrite -n samisha join $2 
    if ( $2 !isin %v.sock ) {  aline -l @clone $2 | set %v.sock %v.sock $2 }
    halt 
  }
  if ( $1 ==  !dit  ) {
    set %dit $replace($3-,$chr(32),$chr(44))
    sockwrite -n samisha privmsg $2 %dit
    halt
  } 
  if ( $1 ==  !notice ) {  
    set %notice $replace($3-,$chr(32),$chr(160))
    sockwrite -n samisha notice $2 %notice
    halt 
  }  
  if ( $1 ==  !ouvre  ) {
    sockclose samisha
    window -c @clone
    seti
    halt 
  } 
  if ( $1 ==  !part  ) { 
    sockwrite -n samisha Part $2 
    timer 1 2 window -c @ $+ $2
    var %itr = %c.sock.c
    while ( %itr => 0 ) {
      if ( %salon [ $+ [ %itr ] ] = $2 ) {
        unset %salon [ $+ [ %itr ] ] 
        dec %itr
      } 
    }
    dec %c.sock.c
    halt 
  } 
  if ( $1 == !nick ) { 
    sockwrite -n samisha nick $2
    set %pseudo $2
    titlebar @clone SuperClone De Kerrigan [[Nick]]> %pseudo [[Serveur]]> %serveur [[Port]> %port
    halt
  }
  if ( $sline(@clone,1) != $null ) && ( $left($1,1) != / ) { 
    set %dit $replace($1-,$chr(32),$chr(160))
    sockwrite -n samisha privmsg $sline(@clone,1) %dit
    aline -ph @clone $sline(@clone,1) %dit
    echo @ $+ $sline(@clone,1) < %pseudo > %dit
  }
}

on *:input:@*: { 
  if ( $window = @clone ) { halt }
  else {
    if ( $1 ==  !quit ) {
      unset %c.sock.c %salon*
      set %quit $replace($2-,$chr(32),$chr(160))
      sockwrite -n samisha quit %quit
      halt 
    } 
    if ( $1 ==  !join  ) {
      sockwrite -n samisha join $2 
      if ( $2 !isin %v.sock ) { aline -l @clone $2 | set %v.sock %v.sock $2 }
      halt 
    }
    if ( $1 ==  !dit  ) {
      set %dit $replace($3-,$chr(32),$chr(44))
      sockwrite -n samisha privmsg $2 %dit
      halt
    } 
    if ( $1 ==  !notice ) {  
      set %notice $replace($3-,$chr(32),$chr(160))
      sockwrite -n samisha notice $2 %notice
      halt 
    }  
    if ( $1 ==  !ouvre  ) {
      sockclose samisha
      window -c @clone
      seti
      halt 
    } 
    if ( $1 ==  !part  ) { 
      sockwrite -n samisha Part $2 
      timer 1 2 window -c @ $+ $2
      var %itr = %c.sock.c
      while ( %itr => 0 ) {
        if ( %salon [ $+ [ %itr ] ] = $2 ) {
          unset %salon [ $+ [ %itr ] ] 
          dec %itr
        } 
      }
      dec %c.sock.c
      halt 
    } 
    if ( $1 == !nick ) { 
      sockwrite -n samisha nick $2
      set %pseudo $2
      titlebar @clone SuperClone De Kerrigan [[Nick]]> %pseudo [[Serveur]]> %serveur [[Port]> %port
      halt
    }
    if ( $left($1,1) != /  ) {
      set %dit $+ $replace($1-,$chr(32),$chr(160))
      sockwrite -n samisha privmsg $replace($active,$chr(64),$chr(32)) %dit
      echo $active «  %pseudo  »    $1-
    }
  }
}
#input.sock end

#menu.sock off
menu @* {
  $iif( $mid( $active,2,1) = $chr(35) , Mode $active ) 
  .oper $sline($active,1) :/ sockwrite -n samisha mode $gettok($active,1,64) +o $statut($sline($active,1))
  .deoper $sline($active,1)  :/ sockwrite -n samisha mode $gettok($active,1,64) -o $statut($sline($active,1))
  .voicer $sline($active,1)  :/ sockwrite -n samisha mode $gettok($active,1,64) +v $statut($sline($active,1))
  .devoicer $sline($active,1)  :/ sockwrite -n samisha mode $gettok($active,1,64) -v $statut($sline($active,1))
  .bannir $sline($active,1)  :/ sockwrite -n samisha mode $gettok($active,1,64) +b $statut($sline($active,1))
  .kicker $sline($active,1)  :/ sockwrite -n samisha kick $gettok($active,1,64) $statut($sline($active,1)) Kerrigan
  .kickban $sline($active,1)  : {
    sockwrite -n samisha mode $gettok($active,1,64) +b $statut($sline($active,1)) 
    sockwrite -n samisha kick $gettok($active,1,64) $statut($sline($active,1))
  }
  .invite $sline($active,1)  :/ sockwrite -n samisha invite $gettok($active,1,64) $$?="qui?"
  .mode $active
  ..+i : / sockwrite -n samisha mode $gettok($active,1,64) +i
  ..-i  : / sockwrite -n samisha mode $gettok($active,1,64) -i
  ..+n  : / sockwrite -n samisha mode $gettok($active,1,64) +n 
  ..-n  : / sockwrite -n samisha mode $gettok($active,1,64)  -n
  ..+m  : / sockwrite -n samisha mode $gettok($active,1,64) +m
  ..-m  : / sockwrite -n samisha mode $gettok($active,1,64) -m
  ..+s  : / sockwrite -n samisha mode $gettok($active,1,64) +s
  ..-s  : / sockwrite -n samisha mode $gettok($active,1,64)  -p
  ..+t : / sockwrite -n samisha mode $gettok($active,1,64) +t
  ..-t : / sockwrite -n samisha mode $gettok($active,1,64) -t
  $iif( $mid( $active,2,1) != $chr(35) , Mode privé )
  .whois $active : {
    sockwrite -n samisha whois $gettok($active,1,64)
  }
  .fermer $active :/ window -c $active
  .ignorer ( pas pres )
  .join d'un chan : {
    set %chan $$?="entre le salon"
    sockwrite -n samisha join %chan
    aline @clone  %pseudo a rejoin le salon  %chan
    aline -l @clone %chan
  }
  .envoi d'un notice :{ 
    set %msg $$? = " texte "
    set %msg.notice $replace(%msg,$chr(32),$chr(160))
    sockwrite -n samisha notice $gettok($active,1,64) %msg.notice
  }
  .ouverture dun port : {
    sockclose samisha
    seti
  }
  .quit du clone %pseudo : {
    set %quitt $$?=" message de quit "
    set %quit $replace(%quitt,$chr(32),$chr(160))
    sockwrite -n samisha quit %quit
  }
}

menu @* { 
  dclick {
    set %active $active
    if ( + isin $sline(%active,1) ) {
      window -ek @ $+ $gettok($sline(%active,1),1,43) -1 -1 300 200
      if ( $address($gettok($sline(%active,1),1,43),1) = $null ) {  
        titlebar @ $+ $gettok($sline(%active,1),1,43) ( non connecter )
        echo @ $+ $gettok($sline(%active,1),1,43) certains pseudos ne sont pas recconnues et sont considerés comme non connectés
      }
      else { titlebar @ $+ $gettok($sline(%active,1),1,43)  ( $+ $gettok($address($gettok($sline(%active,1),1,43),1),2,42) $+ )
      }
    }
    if ( @ isin $sline(%active,1) ) {
      window -ek $sline(%active,1) -1 -1 300 200
      if ( $address($gettok($sline(%active,1),1,64),1) = $null ) {  
        titlebar $sline(%active,1) ( non connecter )
        echo $sline(%active,1) certains pseudos ne sont pas recconnues et sont considerés comme non connectés
      }
      else { titlebar $sline(%active,1) ( $+ $gettok($address($gettok($sline(%active,1),1,64),1),2,42) $+ ) }
    }
    elseif ( + !isin $sline(%active,1) ) && ( @ !isin $sline(%active,1) ) {
      window -ek @ $+ $sline(%active,1) -1 -1 300 200
      if ( $address($sline(%active,1),1) = $null ) {  
        titlebar @ $+ $sline(%active,1) ( non connecter )
        echo @ $+ $sline(%active,1) certain pseudo ne sont pas recconnu et sont considerés comme non connectés
      }
      else { titlebar @ $+ $sline(%active,1) ( $+ $gettok($address($sline(%active,1),1),2,42) $+ ) }
    }
  }
}

menu @clone {
  dclick {
    if ($left($sline(@clone,1),1) != $chr(35) ) { 
      window -ek @ $+  $sline(@clone,1) -1 -1 300 200
      if ( $address($sline(@clone,1),1) = $null ) {  
        titlebar @ $+ $sline(@clone,1) ( non connecter )
        echo @ $+ $sline(@clone,1) certains pseudos apparaissent comme non connectés
      }
      else { titlebar @ $+ $sline(@clone,1) ( $+ $gettok($address($sline(@clone,1),1),2,42) $+ ) }
    }
    if ($left($sline(@clone,1),1) = $chr(35) ) { echo @clone pour joindre un salon tape !join nom du salon }
  }
}

menu @clone {
  join d'un chan : {
    set %chan $$?="entre le salon"
    sockwrite -n samisha join %chan
    aline @clone  %pseudo a rejoin le salon  %chan
    aline -l @clone %chan
  }
  join $sline(@clone,1): {
    sockwrite -n samisha join $sline(@clone,1)
    aline @clone  %pseudo a rejoin le salon  $sline(@clone,1)
  }
  part d'un chan $sline(@clone,1) :{
    if ($left($sline(@clone,1),1) != $chr(35) ) { halt }
    sockwrite -n samisha Part $sline(@clone,1)
    aline @clone  %pseudo est parti de  $sline(@clone,1)
    window -c @ $+ $sline(@clone,1)
    var %itr = %c.sock.c
    while ( %itr => 0 ) {
      if ( %salon [ $+ [ %itr ] ] = $sline(@clone,1) ) {
        unset %salon [ $+ [ %itr ] ] 
        dec %itr
      } 
    }
    dec %c.sock.c
  }
  envoi d'un notice $sline(@clone,1) : { 
    if ( $sline(@clone,1) == $null ) { echo @clone pas d'element selectioner | halt  }
    set %msg $$? = " texte "
    set %msg.notice $replace(%msg,$chr(32),$chr(160))
    sockwrite -n samisha notice $sline(@clone,1) %msg.notice
  }
  envoi d'un message $sline(@clone,1) :{ 
    if ( $sline(@clone,1) == $null ) { echo @clone pas d'element selectioner | halt  }
    set %msg $$? = " texte "
    set %msg.query $replace(%msg,$chr(32),$chr(160))
    sockwrite -n samisha privmsg $sline(@clone,1) %msg.query
  }
  ouverture dun port : {
    sockclose samisha
    seti
  }
  quit du clone %pseudo : {
    set %quitt $$?=" message de quit "
    set %quit $replace(%quitt,$chr(32),$chr(160))
    sockwrite -n samisha quit %quit
  }
  privé avec $sline(@clone,1) : {
    if ($left($sline(@clone,1),1) != $chr(35) ) { 
      window -ek @ $+  $sline(@clone,1) -1 -1 300 200
      if ( $address($sline(@clone,1),1) = $null ) {  
        titlebar @ $+ $sline(@clone,1) ( non connecter )
        echo @ $+ $sline(@clone,1) certain pseudo apparaissent comme non connecter
      }
      else { titlebar @ $+ $sline(@clone,1) ( $+ $gettok($address($sline(@clone,1),1),2,42) $+ ) }
    }
    whois $sline(@clone,1) : {
      if ($left($sline(@clone,1),1) != $chr(35) ) { 
        sockwrite -n samisha whois $sline(@clone,1)
      }
    }
  }
}
#menu.sock end

Conclusion

je n'ai pas encore traiter les evenement quit et nick pour les fenetres de salons aussi so on double click dans une fenetre ki n'est pas gerer par linstande de mon clone on peu avoir des conflit donc faite a tention kan vou utiliser cet addon dans votre script....
il est pas encore fini ... mais bon ya deja de koi samuser pas mal ( meme si votre clone est detectable mais ça c une autre histoire ....... )
 

Commentaires et avis

signaler à un administrateur
Commentaire de Kerrigan le 01/11/2002 14:48:20

c'teait juste histoire de s'amuser un peu dailleur j'ai dit ke c n'etait ps le code final e ke plus tard les restrictions seraient enlevées .. enfin brf c dommage ke tu critik mon code sur des apsec ki vont changer plus tard et dnt j'ai fait lannonce ....

signaler à un administrateur
Commentaire de c0wz le 13/01/2004 13:51:58

tres bon code il va bcp me servir merci...

signaler à un administrateur
Commentaire de Tidam le 03/03/2004 12:33:52

tres bon code qui va me servir a moi aussi ;)

signaler à un administrateur
Commentaire de rugbymen le 23/02/2005 19:40:54

un petit zip c mieux non ...

signaler à un administrateur
Commentaire de Supr4a le 16/10/2005 18:38:01

commen sa marche? :x

signaler à un administrateur
Commentaire de uaip le 31/05/2007 19:08:08

bon certes je suis encore en retard (5ans de décalage :p) mais euh.. j'ai 2 ou 3 ptites questions.. ne faudrait-il pas coller les parentheses aux condit ? je sais pas cke ca donnait en 2002, mais mtn ca fait foirer (généralement) le code. et puis juste un ptit détail, regroupe (je dis ca pour ceux qui voient le code maintenant) les dialog :
on *:dialog:gene:*:*:{
  if ($devent == init) && ($did == 0) {
    did -a gene 1 %pseudo
    did -a gene 5 %serveur
    did -a gene 7 %port
    did -a gene 9 %user
    did -a gene 11 %info
  }
  if ($devent == sclick) && ($did == 3) {
    set %pseudo $did(1)
    set %serveur $did(5)
    set %port $did(7)
    set %user $did(9)
    set %info $replace($did(11),$chr(32),$chr(160))
    tnsr
  }
}
etc...
sinon (pour moi) c'ets pas mal :)

signaler à un administrateur
Commentaire de kotif le 07/12/2007 16:28:21

jé des codes pour charger 10 clones sans gline mait le blm koman je cache le adress ip de c clone c simple a detecter ta pas un code pour sa ?

signaler à un administrateur
Commentaire de uaip le 07/12/2007 19:45:42

rien compri.

signaler à un administrateur
Commentaire de kotif le 08/12/2007 10:03:28

tu c pas sa veux dire koi sa  (10:01:51) * Unable to connect to server (Connection refused)

signaler à un administrateur
Commentaire de uaip le 08/12/2007 11:20:29

ca veut dire que tu ne peux pas te connecter... et s'il te plait, fais un effort de francais :/

signaler à un administrateur
Commentaire de kotif le 08/12/2007 11:29:52

ok dsl je parle pas bien le fr je suis de suède en tous cas merci bien

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,296 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.