Prévenir une fois sur 5 qu'on est away

Résolu
Messages postés
249
Date d'inscription
mardi 5 août 2003
Statut
Membre
Dernière intervention
15 juillet 2006
-
Messages postés
407
Date d'inscription
samedi 11 septembre 2004
Statut
Membre
Dernière intervention
25 août 2005
-
Hello tout le monde !
voici mon code :

on *:text:*:?: {
if (($away == $true) && ($nick != $me)) { msg $nick Désolé mais je suis away depuis $duration($awaytime) pour la raison suivante : $awaymsg }
}

il sert à afficher la raison de mon away à chaque phrase dite par qqun en pv.
Mais on m'a informer qu'on pouvait se faire kill sur certains serveurs si on "flood" avec ce genre de phrase. Je cherche donc un moyen à ce que cette phrase se déclenche moins souvent. Du genre 1 fois toutes les 5 phrases que l'autre aura écrit. Je sais faire ça facilement avec une variable mais je me refuse d'utiliser les variables (principe). Qqun voit til comment faire svp ? merci

17 réponses

Messages postés
407
Date d'inscription
samedi 11 septembre 2004
Statut
Membre
Dernière intervention
25 août 2005

Je vois pas pk ça ne marchera pas $away O_o





Sinon perso j'aurai fait ( sans remettre en cause ce qu'a dit KiNdErMaXi ) :


Pourquoi tu n'aimes pas les variables ?




on *:text:*:?: {
if ($away) {

inc %nmbremsg

if (
%nmbremsg = 5) {
msg $nick Désolé mais je suis away
depuis $duration($awaytime) pour la raison suivante : $awaymsg | unset
%nmbremsg
}
}

}



Sinon sans var (hashtable) je pense que c'est la façon la ( deuxième ) plus simple :/





on *:text:*:?: {
if ($away) {

if (!$hget(away)) hmake away 100
hadd away
nmbre $calc($hget(away,nmbre) +1)




if (
$hget(away,nmbre)
= 5) {
msg $nick Désolé mais je suis away
depuis $duration($awaytime) pour la raison suivante : $awaymsg
}
}

}





Je pense que ça marche mais bon :)
Messages postés
1052
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
30 novembre 2009
2
if (($away == $true) marchera pas

il faut faire :
var %a $away
if %a == $true && $nick != $me { bla bla }
Messages postés
249
Date d'inscription
mardi 5 août 2003
Statut
Membre
Dernière intervention
15 juillet 2006

heu dsl mais ça marche parfaitement lol
tout monde code marche ya aucun pb.
le pb c juste que mon msg s'effectue à chaque message reçu par le nick
et je voudrais qu'il s'exécute tous les 5 msg
Messages postés
1052
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
30 novembre 2009
2
ah pardon :x
utilise une variable que tu incrémente a chaque hl.
je sais que tu ne veux pas de variable mais sans ca va etre dur
peut etre avec les htables je sais pas du tout
Messages postés
249
Date d'inscription
mardi 5 août 2003
Statut
Membre
Dernière intervention
15 juillet 2006

ok merci quand même =)
avis à ceux qui ont tout de même une solution
ne serait-ce que pour savoir par simple curiosité ;)
Messages postés
407
Date d'inscription
samedi 11 septembre 2004
Statut
Membre
Dernière intervention
25 août 2005

J'ai oublié un truc :




on *:text:*:?: {
if ($away) {

if (!$hget(away)) hmake away 100
hadd away
nmbre $calc($hget(away,nmbre) +1)




if (
$hget(away,nmbre)
= 5) {
msg $nick Désolé mais je suis away
depuis $duration($awaytime) pour la raison suivante : $awaymsg | hdel away nombre
}
}

}




Je cherche un autre moyen :)
Messages postés
1052
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
30 novembre 2009
2
fyltum, sachant qu'il veut tout les 5 fois, il vaut mieux mettreif (%nbremsg 5) || (%nbremsg 10) || (%nbremsg == 15) { bla bla }
:)
Messages postés
407
Date d'inscription
samedi 11 septembre 2004
Statut
Membre
Dernière intervention
25 août 2005

Bah nan héhé banane ton truc est ripoux, j'ai mis unset %nmbremsg

:D
Messages postés
1052
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
30 novembre 2009
2
encore une boulette de la part de kinder maxi (pour changer)
autant pour moi :p
Messages postés
249
Date d'inscription
mardi 5 août 2003
Statut
Membre
Dernière intervention
15 juillet 2006

merci bien =)
je crois que je vais utiliser les hashtables ^^
j'aime pas les variables c par principe... ça m'a déjà causé qq pbs avec d'autres scripts etc... donc je préfère m'en passer et utiliser des écritures INI ou autres. Je connaissais pas encore les hast tables (enfin je savais que ça existait et à quoi ça servait mais je savais pas m'en servir) donc ça va aussi me permettre d'apprendre ^^
encore merci à vous 2
Messages postés
407
Date d'inscription
samedi 11 septembre 2004
Statut
Membre
Dernière intervention
25 août 2005

Utilise bien mon deuxième post soit :




on *:text:*:?: {
if ($away) {

if (!$hget(away)) hmake away 100
hadd away
nmbre $calc($hget(away,nmbre) +1)




if (
$hget(away,nmbre)
= 5) {
msg $nick Désolé mais je suis away
depuis $duration($awaytime) pour la raison suivante : $awaymsg | hdel away nombre
}
}

}



Autremment np bonne chance :)
Messages postés
50
Date d'inscription
dimanche 10 août 2003
Statut
Membre
Dernière intervention
28 mars 2009

Hum si c'est pour répondre une fois toutes les 5 phrases essaye




on *:text:*:?: {
if $away {
if !$hget(away) { hmake away 100 }
hadd away nmbre
$calc($hget(away,nmbre) +1)



if
$hget(away,nmbre)
= 1 ||
$right($hget(away,nmbre)
,1) isin 05 {
msg $nick Désolé mais je suis away
depuis $duration($awaytime) pour la raison suivante : $awaymsg }


}

}



Et si t'as un alias de retour d'away mets dedans "
hfree away"




J'ai pas testé mais ça devait marcher :)



(Pour ceux qui veulent des explications, a chaque phrase en pv ça
incrémente la HT et si le nombre est 1 (1ère phrase) ou que le nombre
fini par un 5 ou un 0, ça envoie la phrase.)
Messages postés
50
Date d'inscription
dimanche 10 août 2003
Statut
Membre
Dernière intervention
28 mars 2009

Aussi au lieu de



hadd away nmbre
$calc($hget(away,nmbre) +1)



Je crois qu'on peux mettre




hinc away nmbre
Messages postés
407
Date d'inscription
samedi 11 septembre 2004
Statut
Membre
Dernière intervention
25 août 2005

Ton truc il vaut le mien mais il vaut mieux l'inc et la supprimer c'est plus simple, et tu as raison pour hinc Donc :




on *:text:*:?: {
if ($away) {

if (!$hget(away)) hmake away 100
hinc away
nmbre




if (
$hget(away,nmbre)
= 5) {
msg $nick Désolé mais je suis away
depuis $duration($awaytime) pour la raison suivante : $awaymsg | hdel away nombre
}
}

}
Messages postés
50
Date d'inscription
dimanche 10 août 2003
Statut
Membre
Dernière intervention
28 mars 2009

Oué t'as pas tord ;)



Juste un truc t'as collé {msg dans ton code, à décoller pour Squallou en { msg
Messages postés
249
Date d'inscription
mardi 5 août 2003
Statut
Membre
Dernière intervention
15 juillet 2006

oui merci =)
jpense que je l'aurais remarqué mais bon ça m'évite de m'en rendre compte lol
encore merci ^^
Messages postés
407
Date d'inscription
samedi 11 septembre 2004
Statut
Membre
Dernière intervention
25 août 2005

Ah ouais dsl :)