Intercepter msg

Badablek Messages postés 3 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 6 janvier 2003 - 1 janv. 2003 à 17:26
YoSkATeR Messages postés 17 Date d'inscription dimanche 28 juillet 2002 Statut Membre Dernière intervention 13 avril 2003 - 6 mars 2003 à 00:12
salut tlm...

j'me suis mis au scripting depuis peu, et je voudrais réaliser un ptit script permettant d'intercepter les msg sur le channel (avant qu'ils n'apparaissent sur le channel), afin de pouvoir "traduire" les smileys txt du style :) , ;) , :D par des smileys graphiques (à l'aide de la Font spéciale, contenant des smileys graphiques à la place de certains caractères.

G deja réussi a coder l'inverse, c a dire intercepter ce que JE dis, et transmettre le code hexa correspondant au smiley graphique. (utilisation d'une table)

code :

ON *:start: HMAKE alex 20 | HLOAD alex al.hsh
ON 1:INPUT:*: {
VAR %smile = 1
:detection
VAR %detect = $HGET(alex,%smile).item
IF ( %detect isin $1-) { VAR %temp = $HGET(alex,%smile).data | MSG $active $replace($1-,%detect,%temp) | HALT }
ELSEIF (%smile < 10 ) { INC %smile | GOTO detection }
}

la table alex.hsh :

:) | $xx
:-) | $xx
;) | $xx
;-) | etc...
:D |
:( |
:-( |
:s |
:-s |

donc , pour le moment, qd je tape :) , il le remplace par le code hexa correspondant au smley graphique, et transmet ce code aux autres personnes du channel (pb car si ils n'ont pas la font spéciale, ca affiche n'importe quoi)

Je voudrais en fait que ca ne modifie QUE MA fenêtre, et que je puisse aussi intercepter les smileys txt des autrs avant que ca ne s'affiche, afin de traiter ces données pour la conversion.

J'éspère que mon exposé a été clair......

en bref, existe il une commande, une astuce de programmation, etc... pour intercepter les msg qui me parviennent

7 réponses

softkey Messages postés 110 Date d'inscription lundi 11 mars 2002 Statut Membre Dernière intervention 20 octobre 2008
2 janv. 2003 à 21:04
kan tu recois un message (on:msg) tu dois faire un /halt pour ne pas qu'il ne l'affiche dans ta fenetre de canal et ensuite tu fait un /echo pour l'Afficher aik le font que tu veux

SoFtKeY
Badablek Messages postés 3 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 6 janvier 2003
2 janv. 2003 à 21:05
merci beaucoup, j'v tester ça de suite...
YoSkATeR Messages postés 17 Date d'inscription dimanche 28 juillet 2002 Statut Membre Dernière intervention 13 avril 2003
6 janv. 2003 à 15:27
on *:text ......

L'important c'est pas la connaissance du language mais c'est L'analyse du probleme....yoskater :approve)
Badablek Messages postés 3 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 6 janvier 2003
6 janv. 2003 à 16:37
merci YoSkATeR, g trouvé depuis (d'ailleurs, c pas on *:text mais on ^*:text, afin de bloquer les msg arrivants....)

Par contre, mnt g un autre pb, qd les autres interlocuteurs envoient des smileys, mon script les intercepte et les transforme en smileys graphiques (il ne c decoder qu'un smiley par phrase :()

Par contre, je ne c pas comment faire pour envoyer des smileys aux autres (que sur MA fenetre ca affiche un smiley en graphique, et que ca leur envoie le smiley en txt)

Peut on intercepter ses propres paroles, afin de pouvoir traiter les données ??? (g essayé avec on ^*:INPUT mais ca ne bloque pas mes paroles:()

[Source pour afficher les smileys arrivants :]

ON *:START: HMAKE alex 20 | HLOAD alex alex.hsh
ON ^*:TEXT:*:#: {
VAR %smile = 1
:detection
VAR %detect = $HGET(alex,%smile).item
IF ( %detect ISIN $1- ) { VAR %temp = $HGET(alex,%smile).data | ECHO $CHAN < $+ $NICK $+ > $REPLACE($1-,%detect,%temp) | HALT }
ELSEIF (%smile < 14 ) { INC %smile | GOTO detection }
}

avec une table contenant 14 items (smileys) avec leur correspondance graphique dans la police spéciale)

[Sources pour afficher mes smileys en graphique] (mais envoie un code de caractère érroné pour qui n'utilise pas la police spéciale)

ON *:start: HMAKE alex 20 | HLOAD alex al.hsh
ON 1:INPUT:*: {
VAR %smile = 1
:detection
VAR %detect = $HGET(alex,%smile).item
IF ( %detect isin $1-) { VAR %temp = $HGET(alex,%smile).data | MSG $active $replace($1-,%detect,%temp) | HALT }
ELSEIF (%smile < 10 ) { INC %smile | GOTO detection }
}

Si qq'un a une id....

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
YoSkATeR Messages postés 17 Date d'inscription dimanche 28 juillet 2002 Statut Membre Dernière intervention 13 avril 2003
6 janv. 2003 à 22:58
on ^*:INPUT:*:{
.msg $chan ce ke tu veu envoyer
.echo $chan ce ke tu veu faire apparaitre a ton ecran

}

en esperant ke ca t'aide ;)

L'important c'est pas la connaissance du language mais c'est L'analyse du probleme....yoskater :approve)
cs_kikool Messages postés 19 Date d'inscription mercredi 5 mars 2003 Statut Membre Dernière intervention 14 mai 2003
5 mars 2003 à 21:14
perso j'utiliserait plutot $active que $chan... comme c sur un on ^*:INPUT:*:{ }

'fin bref :

on ^*:INPUT:*:{
; mieux vo reserver les carctères / ! et . pour des commandes ... y'en a aussi qui reservent @ ... ;)

if ($left($1-,1) !isin !/.) {
.msg $active ce ke tu veu envoyer
echo $active ce ke tu veu faire apparaitre a ton ecran
haltdef
}
else {
$1-
}
}
YoSkATeR Messages postés 17 Date d'inscription dimanche 28 juillet 2002 Statut Membre Dernière intervention 13 avril 2003
6 mars 2003 à 00:12
certes tu as raison
Rejoignez-nous