06/08/2008, 13:15
L'utilisation de [ ] force l'évaluation (entendre exécution) du code contenu à l'intérieur.
prenons par exemple ta première condition :
vaut 1 si les conditions sont vérifiées et 0 sinon.
Les [ ] qui l'entourent vont exécuter le résultat (donc 1 ou 0)
Donc tu exécutes [1] ou [0] selon le résultat de l'évaluation, et ni 1 ni 0 ne sont une commande valide.
Maintenant que tu comprends le problème, voici la ligne corrigée :
Ici, certaines parenthèses que j'ai mises pourraient être enlevées mais dans un souci de lisibilité et de rapidité d'exécution du code (ça aide l'interpréteur), laissons-les.
tcl
if {[[$timer_flood < $timer_max && $anti_flood < $request_max] || [$timer_flood >= $timer_max && $anti_flood <= $request_max]] && $attente_max == 60} {
prenons par exemple ta première condition :
tcl
$timer_flood < $timer_max && $anti_flood < $request_max
vaut 1 si les conditions sont vérifiées et 0 sinon.
Les [ ] qui l'entourent vont exécuter le résultat (donc 1 ou 0)
Donc tu exécutes [1] ou [0] selon le résultat de l'évaluation, et ni 1 ni 0 ne sont une commande valide.
Maintenant que tu comprends le problème, voici la ligne corrigée :
tcl
if {((($timer_flood < $timer_max) && ($anti_flood < $request_max)) || (($timer_flood >= $timer_max) && ($anti_flood <= $request_max))) && ($attente_max == 60)} {
Ici, certaines parenthèses que j'ai mises pourraient être enlevées mais dans un souci de lisibilité et de rapidité d'exécution du code (ça aide l'interpréteur), laissons-les.