Probleme vote kick

Résolu
cs_lebiloute Messages postés 26 Date d'inscription mardi 12 avril 2005 Statut Membre Dernière intervention 1 septembre 2005 - 8 juil. 2005 à 15:56
cs_lebiloute Messages postés 26 Date d'inscription mardi 12 avril 2005 Statut Membre Dernière intervention 1 septembre 2005 - 10 juil. 2005 à 14:52
Salut, il y a peu de temps j'ai codé un vote kick, c'est un défi que je
me suis donné, mais le probleme c'est que ca ne marche pas bien
.. voire même pas du tout si vous pouviez m'aider voila le code :

on 1:text:!oui:%chan.vote:{

if (%vote.on == oui) {

inc %vote.oui 1

.notice $nick Merci de votre vote :)

.guser 5 $nick 2

}

}

on 1:text:!non:%chan.vote:{

if (%vote.on == oui) {

inc %vote.non 1

.notice $nick Merci de votre vote :)

.guser 5 $nick 2

}

}



on *:input:*:{

if ($1 == .vote && $2 ison $chan && $2 && $me ishop $chan) {

set %chan.vote $chan

set %temps 60

unset %vote.oui

unset %vote.non

set %nick.vote $2

enable #niark

msg %chan.vote 4Votre attention s'il vous plait
$chan ! 10Un 7vote démocratique 10va decider si %nick.vote va se
faire 7kicker par moi :)

msg %chan.vote 10Si vous voulez que %nick.vote soit
7kicker 10taper 7!oui 10sinon taper 7!non 10résultats dans 7Une
minute !

set %vote.on oui

.timerkick 1 60 /sentence

.timer1 1 60 .disable #niark

.timer1 1 60 .rlevel 5

}

}

#niark on

on 5:text:!oui:%chan.vote:{

.notice $nick Tu as deja voté :) | halt

}

on 5:text:!non:%chan.vote:{

.notice $nick Tu as deja voté :) | halt

}

#niark end

alias sentence {

if ($calc(%vote.oui + %vote.non != $null)

if (%vote.oui > %vote.non) {

msg %chan.vote 4ATTENTION !!

kick %chan.vote %nick.vote 10Vous etes le 4Maillon faible10 aurevoir !

}

elseif (%vote.oui < %vote.non) {

msg %chan.vote 10Tu l'as echapé belle7 %nick.vote :)

}

elseif (%vote.oui = %vote.non) {

msg %chan.vote 10Les votes sont nuls :) 7Ca sera pour la prochaine fois :)

}

}

}

C'est sûrement mal codé ++

10 réponses

S333 Messages postés 266 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 26 juin 2008
9 juil. 2005 à 14:42
A mon avis, c'est à recoder en beaucoup plus simple. C'est juste la'architecture du script qui va pas :)

Alors :

if ($1 == .vote && $2 ison $chan && $2 && $me ishop $chan)

devient :



if ((($1 == .vote) && ( $2 ison $chan ) && ($2))) {

if (($me ishop $chan) || ($me isop $chan)) {



Je fais des script plus long, mais ça me semble plus clair ^^ (au
passage tu avais oublié si tu étais op...) Il serait plus facile de
lancer le vote à partir du popups Channel...



.timerkick 1 60 /sentence ----> .timerkick 1 %temps sentence

.timer1 1 60 .disable #niark -----> .timer 1 %temps .disable #niark

.timer1 1 60 .rlevel 5 -----> disparait ;)



Au lieu de mettre des levels aux nick, mets tous les votant dans une
variable %votant et tu pourras les retrouver grace à $findtok

Un conseil aussi, sur le principe du vote kick... imgaine qu'il n'y ait
qu'un seul votant pour le oui, le gars sera kické... à ta place je
ferais un pourcentage avec le nombre de personnes sur le channel :/



Si t'as besoin d'une aide plus précise avec ton script modifié, hésite pas.

-------------------------------------------------------
Signature des parents :
3
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
8 juil. 2005 à 19:38
Note : tu as commencé avec des variables, donc je continue avec

if ($calc(%vote.oui + %vote.non != $null)tu as oublié de fermer la parenthèse, et le !$null ne sert à rien, ainsi que le { en fin de ligne> if ($calc(%vote.oui + %vote.non)) {
...
}

pour ton on *:text (qui est toujours dans le groupe #niark)
on *:TEXT:*:#:{
if ($chan != %chan.vote) return if (($1 !oui) || ($1 !non)) {
if (%vote. [ $+ [ $nick ] ]) { .notice $nick déjà voté | return }
inc %vote. [ $+ [ $remove($1,!) ] ]
.notice $nick merci pr ton vote
}
}

essaye déjà ça, ça devrait marcher un peu mieux
le code n'est cependant pas très optimisé :)
0
cs_lebiloute Messages postés 26 Date d'inscription mardi 12 avril 2005 Statut Membre Dernière intervention 1 septembre 2005
8 juil. 2005 à 20:55
euh j'ai remplacé :
on 5:text:!oui:%chan.vote:{
.notice $nick Tu as deja voté :) | halt
}
on 5:text:!non:%chan.vote:{
.notice $nick Tu as deja voté :) | halt
}
par :
on *:TEXT:*:#:{
if ($chan != %chan.vote) return
if (($1 !oui) || ($1 !non)) {
if (%vote. [ $+ [ $nick ] ]) { .notice $nick déjà voté | return }
inc %vote. [ $+ [ $remove($1,!) ] ]
.notice $nick merci pr ton vote
}
}
et j'ai fait l'autre modification mais ca ne marche toujours pas :(
0
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
8 juil. 2005 à 21:03
ça fait rien du tout ?
mets quelques "echo" bidons pour savoir par où le script passe, pour mieux isoler le problème
exemple :

on *:input:*:{
echo -a passage1
if ($1 == .vote && $2 ison $chan && $2 && $me ishop $chan) {
echo -a passage2
...

ce code est bien dans un nouveau fichier, isolé des autres ?
ton ON INPUT peut être stoppé par un autre remote sinon :x
0

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

Posez votre question
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
9 juil. 2005 à 14:55
le problème avec %votant c'est que tu ne sais pas combien de personnes vont voter. Si il y en a beaucoup, cette variable ne pourra pas contenir toute la liste
tu devrais aussi choisir un autre nom que %temps pour ta variable, ce nom est trop commun

ma méthode utilise beaucoup plus de variables certes, mais il n'y aura pas de problèmes de longueur de liste :)
0
cs_lebiloute Messages postés 26 Date d'inscription mardi 12 avril 2005 Statut Membre Dernière intervention 1 septembre 2005
9 juil. 2005 à 18:35
J'ai choisi la reponse aceptée pour S333 mais vous m'avez tout les deux bien aidé merci les gars (ou peut être des filles ? :p)
0
S333 Messages postés 266 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 26 juin 2008
9 juil. 2005 à 18:53
Lol, c'est pas important qui tu prends ^^ Mais il faut que tu
comprennes le code que tu as à la fin. Mais c'est vrai que la variable
%votant peut être remplie... au pire tu mets dans un fichier txt :/

Mais l'idée d'arkanis aurait crée un nombre considérable de variables :/



Fait ce que tu préfères ;)


----------------------------------------------------
Signature des parents :
0
cs_lebiloute Messages postés 26 Date d'inscription mardi 12 avril 2005 Statut Membre Dernière intervention 1 septembre 2005
9 juil. 2005 à 19:21
J'ai gardé ma solution de /guser ^^
C'est celle qui marchait le mieux :pp merci quand même
0
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
10 juil. 2005 à 13:41
perso j'aurait fait en hash tables mais je ne sais pas si il aurait compris ...
si tu veux voir comment ça peut marcher, pour un code à peu près similaire, tu peux toujours regarder ma source sur le sondage "illimité" :)
0
cs_lebiloute Messages postés 26 Date d'inscription mardi 12 avril 2005 Statut Membre Dernière intervention 1 septembre 2005
10 juil. 2005 à 14:52
Ok les hash tables je compte bien me lancer dedans je vois que c'est à la mode et ça à l'air d'être pas mal fiable parce que les variables c'est simple mais c'est pas top top :)
0