Tu tapes kick moi en salle et le script demande aux gens si il faut te kicker.
Le code est basique, plus à titre d'idée qu'addon, il est optimisable et modifiable à souhait.
certaines choses ne sont pas prises en compte , à vous d'agrémenter.
ici utilisable juste sur flashvsi (pour modif voir le stgrip sur le tokenize)
CODE
on *:TEXT:*:#: {
tokenize 32 $vsix.strip($1-)
;premier mot == kick 2eme == moi
if ($1 == kick) && ($2 == moi) {
;petite condition pour eviter de se faire flooder et de s'autoflooder
if (%voteflood == on) { halt }
;si la condition le permet, mettre l'antiflood sous variable ici 25 secondes mais tu peux changer
set -u25 %voteflood on
;tu mets la salle en variable ( à voir pour eventuel multisalle)
set %votksalle #
;met le nick en variable
set %votekick $nick
;deux timer pour mettre un temps entre les messages + 1 pour lancer l'alias ici 21 mais tu peux changer
timervotekick.1 1 1 msg # Je reclame votre attention, $nick demande à être kické.
timervotekick.2 1 2 msg # Si vous êtes d'accord, Tapez OUI. Sinon, Tapez NON
timervotekick.3 1 21 vote.resultat
}
;ici les conditions pour que le oui ou le non soit pris en compte
if ((%votekick != $null) && (%votekick ison $chan) && ($chan == %votksalle)) {
;ici conditions si le mot est egale à oui et si il n'existe pas de hash
if (($1 == oui) && (!$hget(votant,$nick))) {
;incremente dans une hash de 1 chaque oui
hinc -m %votekick resultat 1
;indique que ce nick a voté
hadd -m votant $nick ok
msg $nick Ton vote a été pris en compte
}
if (($1 == NON) && (!$hget(votant,$nick)) && ($chan == %votksalle)) {
;met la table qui comptabilise à zero si elle edxistait pas
if (!$hget(%votekick)) { hadd -m %votekick resultat -1 | hadd -m votant $nick ok | msg $nick Ton vote a été pris en compte }
else {
;decremente de un par nick qui a dit nom
hdec -m %votekick resultat 1
hadd -m votant $nick ok
msg $nick Ton vote a été pris en compte
}
}
}
}
alias vote.resultat {
var %ll $hget(%votekick,resultat)
echo -a > %ll
;si le nombre de vote est inferieur ou egale à zero
if ($hget(%votekick,resultat) <= 0) {
msg %votksalle %votekick est epargné
;efface les tables
hfree %votekick
hfree votant
;efface les variables
unset %votekick
}
;sinon si vote superieur à zero
elseif ($hget(%votekick,resultat) > 0) {
Kick %votksalle %votekick Le peuple a voté !!
hfree %votekick
hfree votant
unset %votekick %votksalle
}
}
tokenize 32 $vsix.strip($1-)
;premier mot == kick 2eme == moi
if ($1 == kick) && ($2 == moi) {
;petite condition pour eviter de se faire flooder et de s'autoflooder
if (%voteflood == on) { halt }
;si la condition le permet, mettre l'antiflood sous variable ici 25 secondes mais tu peux changer
set -u25 %voteflood on
;tu mets la salle en variable ( à voir pour eventuel multisalle)
set %votksalle #
;met le nick en variable
set %votekick $nick
;deux timer pour mettre un temps entre les messages + 1 pour lancer l'alias ici 21 mais tu peux changer
timervotekick.1 1 1 msg # Je reclame votre attention, $nick demande à être kické.
timervotekick.2 1 2 msg # Si vous êtes d'accord, Tapez OUI. Sinon, Tapez NON
timervotekick.3 1 21 vote.resultat
}
;ici les conditions pour que le oui ou le non soit pris en compte
if ((%votekick != $null) && (%votekick ison $chan) && ($chan == %votksalle)) {
;ici conditions si le mot est egale à oui et si il n'existe pas de hash
if (($1 == oui) && (!$hget(votant,$nick))) {
;incremente dans une hash de 1 chaque oui
hinc -m %votekick resultat 1
;indique que ce nick a voté
hadd -m votant $nick ok
msg $nick Ton vote a été pris en compte
}
if (($1 == NON) && (!$hget(votant,$nick)) && ($chan == %votksalle)) {
;met la table qui comptabilise à zero si elle edxistait pas
if (!$hget(%votekick)) { hadd -m %votekick resultat -1 | hadd -m votant $nick ok | msg $nick Ton vote a été pris en compte }
else {
;decremente de un par nick qui a dit nom
hdec -m %votekick resultat 1
hadd -m votant $nick ok
msg $nick Ton vote a été pris en compte
}
}
}
}
alias vote.resultat {
var %ll $hget(%votekick,resultat)
echo -a > %ll
;si le nombre de vote est inferieur ou egale à zero
if ($hget(%votekick,resultat) <= 0) {
msg %votksalle %votekick est epargné
;efface les tables
hfree %votekick
hfree votant
;efface les variables
unset %votekick
}
;sinon si vote superieur à zero
elseif ($hget(%votekick,resultat) > 0) {
Kick %votksalle %votekick Le peuple a voté !!
hfree %votekick
hfree votant
unset %votekick %votksalle
}
}
petit exemple de ce que ça donne :
Cliquez pour voir le fichier-joint Cliquez pour voir le fichier-joint
bon amusement