Echo chan [Résolu]

cs_fred48 20 Messages postés mardi 11 mai 2004Date d'inscription 11 novembre 2008 Dernière intervention - 2 nov. 2008 à 12:09 - Dernière réponse : cs_fred48 20 Messages postés mardi 11 mai 2004Date d'inscription 11 novembre 2008 Dernière intervention
- 11 nov. 2008 à 22:35
Bonjour,

Je cherche comment faire un echo (d'un user) d'un chan vers un autre chan .

merci pour votre aide
Afficher la suite 

33 réponses

Répondre au sujet
cs_wims 2473 Messages postés vendredi 23 juillet 2004Date d'inscription 1 août 2010 Dernière intervention - 2 nov. 2008 à 17:44
+3
Utile
Ca serai donc pas un echo mais un /msg, tu veux rediriger un message d'un user d'un salon vers un autre salon ?
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_wims
cs_fred48 20 Messages postés mardi 11 mai 2004Date d'inscription 11 novembre 2008 Dernière intervention - 3 nov. 2008 à 00:13
+3
Utile
oui exactement

repeter les annonce d'un user vers un autre salon
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_fred48
WorldDMT 882 Messages postés jeudi 6 juillet 2006Date d'inscription 6 janvier 2012 Dernière intervention - 3 nov. 2008 à 15:26
+3
Utile
salut
tu a /amsg
regarde /help /amsg si ça te convient
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de WorldDMT
cs_wims 2473 Messages postés vendredi 23 juillet 2004Date d'inscription 1 août 2010 Dernière intervention - 3 nov. 2008 à 20:44
+3
Utile
Eessaye ca :

on *:text:*:#:{
;quand qqun dis qqch, qqpart
if ($nick == pseudo) {
;si le pseudo qui parle est le pseudo (a modifie) que tu veux
msg #autre-salon $v1 a dis sur $chan : $1-
;on envoi un msg sur l'autre salon (a modifie)
    }
}

Attention, ceci ne marche qu'a travers un seul server, n'oublie pas de modifie le pseudo et l'autre salon
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_wims
cs_wims 2473 Messages postés vendredi 23 juillet 2004Date d'inscription 1 août 2010 Dernière intervention - 3 nov. 2008 à 21:38
+3
Utile
Si on peut, mais c'est ce que j'ai dis, ce code la ne fonctionne que pour des salons sur les meme server, pour le faire marcher sur different server, il faut utiliser /scid ou /scon pour modifie la connection courante et envoye le msg
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_wims
cs_wims 2473 Messages postés vendredi 23 juillet 2004Date d'inscription 1 août 2010 Dernière intervention - 3 nov. 2008 à 22:55
+3
Utile
ca donnera ce que tu seras capable de faire ou ce que qqun fera p-e pour toi, moi je t'ai donne la base, rapidement (en sachant pertinament que tu demanderai pour plusieur server ;)) et je t'ai meme donner les commandes a utiliser.Essaye de regarder l'aide sur /scid et /scon, et reviens en expliquant ce que tu ne comprend pas ou avec un semblant de debut de code.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_wims
cs_wims 2473 Messages postés vendredi 23 juillet 2004Date d'inscription 1 août 2010 Dernière intervention - 7 nov. 2008 à 19:03
+3
Utile
moi j'paris un coca que c'est qqun qui a commence a t'aider, puis qui ta laisse avec ce bout de code, parce que si tu arrives a pondre ce code, tu arrives aussi a le debugger.... *logiquement*

je le reecris proprement, avec des commentaires... mais je le laisse tel quel hein.

on *:text:*:#chansource:{
;quand on ecris sur le salon source  if ($nick `nicksource`) && ($network networkircsource) {
;on verifie le pseudo  ainsi que le reseau (network)
    var %temp = $strip($1-)
    ;on retire les controls code de $1-
    var %r = \[(.*)\] \[ (.*) \] \[ (.*) \].*
    ;on stock une certain expression reguliere, je suppose que c'est toi qui la voulu
    if ($regex(%temp, %r)) {
     ;on verifie si le texte de l'user (sans les controls code) correspond a l'expression reguliere
    if ($regml(1) = pre) {
;ici, $regml(1) vaut ce qui sera entre le premier couple de () ds l'exepression reguliere
        scid -t1 $idnet(serveurirccible)
          ;on se place sur la connexion d'id $idnet(...)
         msg #chancible [�3;3 $regml(1) �3;] - [�3;07 $regml(2) �3;] - �3;[ $regml(3) ]
          ;on /msg ...
      }
      if ($regml(1) = nuke) {
        scid -t1 $idnet(serveurirccible)
        msg #chancible [�3;4 $regml(1) �3;] - [ $regml(2) ] - �3;[�3;4 $regml(3) �3;]
      }
    }
  }
}

alias idnet {
  var %k = 1
  while (%k <= $scid(0)) {
    if ($scid($scon(%k)).network == $1) { return $scon(%k) }
    inc %k
    }
 }

cet alias la sert a retourne l'identite de connexion du server passe en parametre, mais celui qu'il la fait n,est pas tres malin, jte conseil de regarde la section Tip sur www.scriptsdb.org, en cherchant bien, tu trouvera le meme alias, mais qui est juste...

Autre chose aussi, imagine que je poste un code de 130 000 ligne, et que jte dise, "ca marche pas, aide moi !" tu crois que ya qqun qui va prendre la peine de m'aider ? c'est pareil ici, au lieu de dire ca ne marche pas, decris un petit peu ce qui ne marche pas, ce qu'il se passe, ce qu'il devrait se passer,  ce genre de chose...

Pourquoi avoir demander du code tout cuit a qqun ? Maintenant t'es comme un con a poster ici, et tu ne depend que de nos reponses, alors que si t'avais appris cmt faire, tu saurais debugger le code :)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_wims
cs_wims 2473 Messages postés vendredi 23 juillet 2004Date d'inscription 1 août 2010 Dernière intervention - 7 nov. 2008 à 22:27
+3
Utile
C'est p-e vrai, mais permet moi d'en douter, et tu n'a tjs pas dis ce qui n'allais pas ;)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_wims
cs_wims 2473 Messages postés vendredi 23 juillet 2004Date d'inscription 1 août 2010 Dernière intervention - 8 nov. 2008 à 12:16
+3
Utile
Donc ca veux dire que l'evenement on text est juste, mais qu'il ne se place pas sur la bonne connection (bon server, ou network), donc jte conseille de faire un ptit test, tu vas sur le salon ou tu veux envoyer le message, et tu regarde la valeur de $cid (c'est ce dont tu as besoin, et ce qu'est cense te renvoye l'alias idnet) ensuite tu regarde la valeur que te renvoi $idnet(network) et tu compare, si c'est different,  alors l'alias idnet ne fonctionne pas correctement.

Une petite note a propos de $network c'est qu'il peut ne pas renvoyer de valeur (c'est le cas sur orange d'apres mes souvenirs) donc si tu essaye ca sur orange, network ne vaut rien, fait gaffe, utilise  plutot $server)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_wims
cs_wims 2473 Messages postés vendredi 23 juillet 2004Date d'inscription 1 août 2010 Dernière intervention - 8 nov. 2008 à 17:54
+3
Utile
non quand tu es sur le bon server, $cid renvoi l'IDentite de Connexion,
$scid renvoi une identite de connexion par rapport a $cid
Utilise par exemple //echo -a $cid une fois sur le bon server, ca n'a pas de rapport avec les salons.

le but etant de faire une boucle sur chaque connexion, $scid(0) retourne le nombre total de connexion, $scid(1) renvoi 1 si il existe une connexion ayant pour identite 1 (les identites de connexion peuvent avoir des valeurs illogique)
$scon lui, fonctione par rapport au numero de connexion, $scon(0) retourne egalement le nombre de connexion, mais $scon(1) retourne l'identite de connexion du premier server.

Regarde bien l'aide sur $scid $scon /scid et /scon, ce sont des notions qui embrouille souvent les gens (meme moi), jespere meme ne pas avoir dis de connerie dans ce post :)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_wims
cs_wims 2473 Messages postés vendredi 23 juillet 2004Date d'inscription 1 août 2010 Dernière intervention - 9 nov. 2008 à 17:53
+3
Utile
Relis bien mes precedent post, tu na besoin que de l'identite de connexion ($cid) du server source, $cid n'est pas associe a un salon, mais a une connexion, un server.

La valeur 4 que tu as obtenu sur le server source est variable c'est pour ca qu'il y a  $scid et $scon pour retrouver facilement ces information.
Cette valeur c'est ce que tu doit mettre dans ton /scid pour qu'il change la connexion active.

var %a $scon(0);
   ;%a contient le nombre de connexion total
   while (%a)
    ;tant qu'il y a des connexion
       if (irc.tonserverirc.com == $scon(%a).server) {
       ;si le server de la connexion numero %a est le server que tu veux
       echo -a $scon(%a).cid
       ;on affiche l'identite de connexion pour cette connexion
        }
      dec %a
       ;on decremente %a pour faire la boucle :)
}

voila le bout de code que tu doit utiliser, $scon(%a).cid est la valeur que tu veux pour le /scid...
A noter que je t'ai dis que ce bout de code etais dispo qqpart, bref, normalement avec ca tu devrais y arriver
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_wims
cs_wims 2473 Messages postés vendredi 23 juillet 2004Date d'inscription 1 août 2010 Dernière intervention - 9 nov. 2008 à 20:50
+3
Utile
Quel annonce sur le chan source ? L'annonce sur le chan source est ce qui declenche ton code oO, tu doit surement parler du msg qui devait s'envoyer ds le vide que toi tu voyait, c'est parce que tu as commente la ligne ds le code....
Ton code a egalement des problemes de {}
Sinon je ne t'avais donne qu'un bout de code, il fallait pas l'ecrire comme ca
, tu respectes rien la, essayes avec ca :

on *:text:*:#:if ($nick == `pseudosource`) { scid -t1 $$idnet(irc.server.com) | msg #chancible $v1 a dis sur $chan : $1- }
alias idnet var %a $scon(0) | while (%a) && (irc.server.com != $scon(%a).server) dec %a | return $$scon(%a).cid
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_wims
cs_wims 2473 Messages postés vendredi 23 juillet 2004Date d'inscription 1 août 2010 Dernière intervention - 9 nov. 2008 à 22:41
+3
Utile
Je sais pas cmt tu copie ca, mais le code ne fait que deux ligne normalement, je l'ai bien compacte.As tu bien pense a changer les infos tel que le nick et le nom des server ? fait voir ici cmt est ton code avec les bonnes valeurs...
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_wims
cs_wims 2473 Messages postés vendredi 23 juillet 2004Date d'inscription 1 août 2010 Dernière intervention - 11 nov. 2008 à 18:07
+3
Utile
C'est bien de me remercier, mais plutot que de valider tes reponses, valide celle de celui qui a passer 30 messagea t'aider pour finalement te donner la solution ^^.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_wims
cs_fred48 20 Messages postés mardi 11 mai 2004Date d'inscription 11 novembre 2008 Dernière intervention - 3 nov. 2008 à 19:31
0
Utile
ca repete un message sur tous les salons

moi je souhaite juste repeter les annonces d'un user sur un autre chan
Commenter la réponse de cs_fred48
cs_fred48 20 Messages postés mardi 11 mai 2004Date d'inscription 11 novembre 2008 Dernière intervention - 3 nov. 2008 à 20:59
0
Utile
c'est bien ca parcontre on peut pas le faire sur un autre server d'un autre salon

Merci pour ton aide
Commenter la réponse de cs_fred48
cs_fred48 20 Messages postés mardi 11 mai 2004Date d'inscription 11 novembre 2008 Dernière intervention - 3 nov. 2008 à 21:58
0
Utile
ca donnerais quoi comme script ?
Commenter la réponse de cs_fred48
cs_fred48 20 Messages postés mardi 11 mai 2004Date d'inscription 11 novembre 2008 Dernière intervention - 4 nov. 2008 à 13:25
0
Utile
ok je vais essayer de le faire , je ne sui spas responsable des degats :D
Commenter la réponse de cs_fred48
WorldDMT 882 Messages postés jeudi 6 juillet 2006Date d'inscription 6 janvier 2012 Dernière intervention - 4 nov. 2008 à 17:14
0
Utile
lol c'est un code pas une bombe a retardement :p
Commenter la réponse de WorldDMT
cs_fred48 20 Messages postés mardi 11 mai 2004Date d'inscription 11 novembre 2008 Dernière intervention - 7 nov. 2008 à 13:29
0
Utile
voila ce que j'ai fait mais ca marche pas

merci pour votre aide

on *:text:*:#chansource:{  if ($nick `nicksource`) && ($network serveurircsource) {
    var %temp = $strip($1-)
    var %r = \[(.*)\] \[ (.*) \] \[ (.*) \].*
    if ($regex(%temp, %r)) { if ($regml(1) = pre) {
        scid -t1 $idnet(serveurirccible)
        if ($network = serveurirccible) { msg #chancible [�3;3 $regml(1) �3;] - [�3;07 $regml(2) �3;] - �3;[ $regml(3) ]  }
      }
      if ($regml(1) = nuke) {
        scid -t1 $idnet(serveurirccible)
        if ($network = serveurirccible) { msg #chancible [�3;4 $regml(1) �3;] - [ $regml(2) ] - �3;[�3;4 $regml(3) �3;] }
      }
    }
  }
}
alias idnet {
  var %k = 1
  while (%k <= $scid(0)) {
    if ($scid($scon(%k)).network == $1) { return $scon(%k) }
    inc %k
} }
Commenter la réponse de cs_fred48

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Echo chan - page 2