Bienvenue, Invité. Veuillez vous connecter ou vous enregistrer.
04 Décembre 2008, 22:20:08

Connexion avec identifiant, mot de passe et durée de la session
Recherche:     Recherche +
Incapable de poster un message sur les forums ?  Demandez de l'aide sur le canal #Olympe sur IRC.
14484 Messages dans 1663 Sujets par 753 Membres
Dernier membre: Vijay
* Accueil Aide Recherche Calendrier Identifiez-vous Enregistrez-vous
L'Agora EpiKnet  |  Forums thématiques  |  Programmation  |  Scripts  |  Sujet: Aide scripting 0 Membres et 1 Invité sur ce sujet. « sujet précédent | | sujet suivant »
Pages: [1] Imprimer
Auteur Sujet: Aide scripting  (Lu 3027 fois)
Simon``
Citoyen(ne)
***

EpiKarma : +5/-2
Hors ligne Hors ligne

Messages: 57


=D


Voir le profil WWW
Aide scripting
« le: 12 Mars 2006, 12:51:34 »

Bonjour les scripteurs :]
Bon en fait comme je galère à me faire un tit code, je me demandais si il y avait moyen de demander de l'aide ici, car j'ai essayé de demander sur #scripts, mais j'ai beaucoup de mal à expliquer ce que je veux faire :s
Donc voila, je demande l'erreur que j'ai fait sur ce code:

Code:
dialog kick {
  title "Acharn Kick"
  size -1 1 250 200
  box "Acharn Kick",1, 5 5 240 190
  list 2, 10 25 30 172
  list 3, 42 25 200 172
}
on *:dialog:kick:init:3:{
  nicklost
}
alias nicklost {
  var %i = 1
  while $nick($iif($chan($active),$active,$chan(1)),%i) {
    did -a kick 3 $nick($iif($chan($active),$active,$chan(1)),%i)
    inc %i
  }
}

Donc voici le screen de ce que je voudrais que ca donne...
=> ICI <=

Voila j'espère qu'avec ca, j'ai réussi à expliquer ^^
Et si ce topic ne sert à rien, vous pouvez supprimer Smiley
PS: z'êtes pas obligés de lire derrière c_c
Journalisée

Kitai
Citoyen(ne)
***

EpiKarma : +16/-1
Hors ligne Hors ligne

Messages: 126


Ga is Ga


Voir le profil WWW
Re : Aide scripting
« Réponse #1 le: 12 Mars 2006, 13:11:41 »

Ga,
Bien, la principale erreur est le "3" dans le "on ... init". Lorsqu'un dialog se lance, il ne fait référence à aucun contrôle en particulier, donc $did == 0 (il me semble...)
Bref, il faudrait faire :
Code:
on *:dialog:kick:init:*:{

Ensuite au lieu de reprendre le membre de la while comme tu fais, utilise $ifmatch ou $v1 (si $version >=6.16)

Pis voilà, ça doit être à peu près tout je pense...
Journalisée

Les gens qui disent "Ma maison a moi, c'est le monde", je m'demande de quel pays y s'servent pour les chiottes. ©NUNUS
CoolWave
Citoyen(ne)
***

EpiKarma : +34/-2
Hors ligne Hors ligne

Messages: 79



Voir le profil
Re : Aide scripting
« Réponse #2 le: 12 Mars 2006, 14:47:18 »

Salut Simon``,

    Hormis le soucis d'ID dans la déclaration de l'évènement, il y a un problème dans la condition in-line $iif()
    mIRC possède un "comparateur" qui permet de vérifier si une fenêtre est un salon ou non: ischan
    Code:
    $iif($active ischan,$active,$chan(1))

  • Autre petite chose, tu peux utiliser $dname pour retourner le nom du dialog associé à un évènement On Dialog, ou dans un alias appelé à partir d'un tel évènement. Cela évite de devoir saisir le nom exact à chaque fois et si tu modifies le nom de ton dialog tu n'auras pas besoin de le remplacer partout, $dname s'adaptera.

  • A part cela tout semble correct, l'utilisation du $v1/$ifmatch dans le ligne /did conseillée par Kitai te fera également gagner du temps (mIRC mémorise les valeurs des membres des conditions dans $v1 et $v2, évitant ainsi de devoir les recalculer (ou dans $ifmatch, qui dans les anciennes versions renvoyait le 1er terme de la condition s'il y en a qu'un seul, ou le 2ème s'il y en a deux)).
  •  

  • Sinon, une alternative à ta boucle pourrait être l'utilisation de la commande /filter:

  • Celle-ci permet d'envoyer toute la nicklist du salon dans l'ID 3 de ton dialog (10 à 30 fois plus rapide que la /while que tu utilises)
    -w signifie que l'on filtre à partir d'une fenêtre (le salon ici), -l pour que ça prenne en compte la nicklist et non le texte sur le salon, -o signifie que l'on envoie les données à un dialog & son ID et -c efface le contenu de l'ID du dialog avant de le remplir (dans un On Dialog Init c'est pas utile en soit)
    Code:
    alias nicklost filter -wloc $iif($active ischan,$active,$chan(1)) $dname 3 *
     
    L'inconvénient de la commande ci-dessus est que les modes @%+ restent devant le pseudo. Pour une gestion de kick ce n'est pas spécialement intéressant. L'alternative de cette commande serait alors d'utiliser un 2ème alias. La commande /filter envoie cette fois toutes les lignes de la nicklist à l'alias nicklost_load qui les charge dans le dialog kick après leur avoir retiré les prefix (2 fois plus rapide qu'une /while ici) :
    Code:
    alias nicklost filter -wckl $iif($active ischan,$active,$chan(1)) nicklost_load
    alias nicklost_load did -a kick 3 $remove($1,@,%,+)


Voila pour quelques idées, l'utilisation de la commande /filter est juste un gain de temps d'exécution & de taille du code, mais la /while de base peut faire l'affaire toutefois (préférence pour /filter si tu mets à jour ton dialog sur des grands salons)

Bonne journée Smiley
Journalisée
Simon``
Citoyen(ne)
***

EpiKarma : +5/-2
Hors ligne Hors ligne

Messages: 57


=D


Voir le profil WWW
Re : Aide scripting
« Réponse #3 le: 12 Mars 2006, 21:58:35 »

OWi ca marche Smiley ( quel con j'ai été -_- )
Sinon, j'ai fait tout ce que vous m'avez conseillé, j'ai changé tout, même si j'ai pas trop trop encore compris (merci pour le tuto CoolWave Wink)
Bon, maintenant, j'ai un problême de commandes, je donne le code...
Code:
on *:dialog:kick:sclick:4:{
  !rk $did(3).seltext $did(2).seltext
}

on *:input:*:{
  if ($1 == !Multikick) { var %i = 1 | while (%i <= $chan(0)) {
      if ($2 ison $chan(%i)) && ($me isop $chan(%i)) { kick $chan(%i) $2 4Multi4Kick }
      inc %i
    }
  }
  if ($1 == !rk) && ($3 != $null) {
    .timerrk [ $+ [ $2 ] ] 1 120 unset %rk-c [ $+ [ $2 ] ] | set %rk-n [ $+ [ $2 ] ] $2 | set %rkn [ $+ [ $2 ] ] $3
    set %rk-c [ $+ [ $2 ] ] $chan | kick %rk-c [ $+ [ $2 ] ] %rk-n [ $+ [ $2 ] ] Plus que $calc(%rkn - 1) Kicks | dec %rkn
  }
}
on *:join:#:{
  if ($chan == %rk-c [ $+ [ $nick ] ] ) {
    if ($nick == %rk-n [ $+ [ $nick ] ]) { kick %rk-c [ $+ [ $nick ] ] %rk-n [ $+ [ $nick ] ] Plus que $calc(%rkn [ $+ [ $nick ] ] - 1) kicks | dec %rkn [ $+ [ $nick ] ] }
    if (%rkn [ $+ [ $nick ] ] == 0) { unset %rk-n [ $+ [ $nick ] ] | unset %rk-n [ $+ [ $nick ] ] | unset %rk-c [ $+ [ $nick ] ]
    }
  }
}

Donc voila, je sais pas quoi mettre pour que quand je click sur mon bouton, ca fasse la commande !rk $nick "nombre de kicks"...
J'espère que j'ai réussi à expliquer ^^
Deja je suis sur et certain que l'erreur est ici : (au niveau de !rk ...)
Code:
on *:dialog:kick:sclick:4:{
  !rk $did(3).seltext $did(2).seltext
}
Merci encore.


[Edit]
J'ai eu la solution de l'erreur, il suffisait d'ajouter editbox -n avant le !rk Smiley
Sinon, le problême maintenant, c'est ça:
.oOo. Erreur : Plus : Pseudo introuvable
Et j'ai presque aucunes idée d'où ca peut venir...
Je dirais ici :

Code:
on *:join:#:{
  if ($chan == %rk-c [ $+ [ $nick ] ] ) {
    if ($nick == %rk-n [ $+ [ $nick ] ]) { kick %rk-c [ $+ [ $nick ] ] %rk-n [ $+ [ $nick ] ] Plus que $calc(%rkn [ $+ [ $nick ] ] - 1) kicks | dec %rkn [ $+ [ $nick ] ] }
Voila...
« Dernière édition: 12 Mars 2006, 22:18:21 par Simon`` » Journalisée

CoolWave
Citoyen(ne)
***

EpiKarma : +34/-2
Hors ligne Hors ligne

Messages: 79



Voir le profil
Re : Aide scripting
« Réponse #4 le: 13 Mars 2006, 15:49:20 »

Salut Simon```,

Ton problème avec le "pseudo introuvable" vient du fait que tu as créé une variable %rkn [ $+ [ $2 ] ] et pour avoir sa valeur tu utilisais %rk-n [ $+ [ $2 ] ] (le '-' en trop/moins). Par la suite tu utilisais également %rkn sans lui ajouter le $2 (pour le nombre de kicks dans les /dec)

Je te propose une idée de code, introduisant l'identifieur $comchan pour les boucles sur les salons communs, une alternative à l'utilisation de /timer pour effacer une variable via la commande /set -uN, l'utilsation de ELSEIF, des prefix d'évènements, une manière de limiter le nombre de variables créées, entre autre..

(chez moi les balises Code/Quote ne sont pas super lisibles :/)


[table][tr][td]

on *:dialog:kick:sclick:3:{

  ; - le $iif() permet de vérifier si la fenêtre active est bien un salon.
  ; - Mettre des $$ à la place des $ a une utilité particulière : si l'identifieur ( ici les deux $did() et $iif() ) ne retourne pas
  ; de valeur, alors l'évènement est arrêté : la ligne n'est pas exécutée, et tout le code qui peut la suivre non plus.
  ; Donc ici si tu cliques sur l'ID 4 alors que l'un des $did (ou les 2) n'a pas de valeur, ou bien que la fenêtre active n'est pas
  ; un salon, alors /editbox ne sera pas exécuté.

  editbox -n $$iif($active ischan,$active) !rk $$did(3).seltext $$did(2).seltext

}

on *:input:*:{

  ; 1ère CONDITION
  if ($1 == !Multikick) {

    ; Il existe un $identifieur permettant de retourner les salons communs avec une personne :
    ; $comchan(<pseudo>,N), qui retourne le Nème salon commun et évite ainsi d'utiliser $chan(N) + ison


    var %i 1

    ; Tant qu'il existe un %ième chan commun, alors la boucle se poursuit
    while ($comchan($2,%i)) {

      ; Comment on l'a vu dans un poste au dessus, mIRC stocke dans $v1 et $v2 les termes de la dernière condition.
      ; Ici $v1 retourne le nom du salon retourné par $comchan() dans la ligne /while au dessus,
      ; et après la nouvelle condition $v2 stocke le 2ème terme de la condition ISOP, qui est le nom du salon.

      if ($me isop $v1) { kick $v2 $2 4Multi4Kick }

      inc %i
    }
  }


  ; 2ème CONDITION :

  ; - Quand tu ajoutes une condition, au lieu de mettre IF (SI) tu peux mettre ELSEIF (SINON SI) dans le cas où
  ; cette condition n'a pas à être exécutée si l'une des précédentes l'a déjà été. (Si $1 = !multikick, alors il est impossible que $1
  ; soit également = à !rk). Cela évite à mIRC de lire chaque condition inutilement. Dès que l'une d'elles est exécutée
  ; alors les suivantes commençant par ELSEIF ne seront pas lues. (gain de rapidité)
  ; - Etant donné que tu exécutes un /kick il faut vérifier que tu aies bien le statût nécessaire.

  elseif ($1 == !rk) && ($me isop $chan) {


    ; - Ci dessous le code est différent du tien. Au lieu d'utiliser 3 variables, on en utilise une seule, de la forme :
    ; %rk-<salon>-<pseudo>, et on y stocke comme valeur le nombre de kick soumis.
    ; - Utiliser /set avec comme flag -uN permet de créer une variable temporaire de N secondes, qui s'efface tout seule donc.
    ; - Au lieu de mettre ($3 != $null) dans la condition au dessus, on peut utiliser $$3 ici (qui arrête le script si $3 n'existe pas)

    ; - Utiliser $+(mot1,mot2,mot3) revient à faire mot1 $+ mot2 $+ mot3. C'est plus rapide à taper, et plus simple à déchiffrer.
    ; Attention : quand on utilise $+() avec des variables, il est important de bien mettre le % à part : $+(%,mot1,mot2)
    ; Le nom de variable est donc optenu, ici, en faisant $+(%,rk-,<salon>,-,<pseudo>) (ex: %rk-#Scripts-Simon``)
    ; Sa valeur en revanche necessite l'utilisation de $eval(<variable>,2) : $eval($+(%,rk-,<salon>,-,<pseudo>),2)
    ; L'identifieur $eval peut-être écrit également avec un simple $ : $($+(%,rk-,<salon>,-,<pseudo>),2), comme on le fera.

    ; ici c'est donc le NOM de la variable qui est utilisé (sans $/$eval )

    set -u120 $+(%,rk-,$chan,-,$2) $$3


    ; on diminue la valeur de la variable (dans /set, /dec, /inc et /unset, l'évaluation n'est pas necessaire en général,
    ; il faut donner le NOM de la variable, et pas sa VALEUR)

    dec $+(%,rk-,$chan,-,$2)

    ; On kick la personne du salon, avec comme raison le nombre de kicks restants
    ; (nom de variable avec $+() pour accolé tous les mots, associé à $(,2) pour récupérer la valeur)

    kick $chan $nick Plus que $($+(%,rk-,$chan,-,$2),2) Kicks

  }
}


; - Mettre @ devant l'évènement impose que tu sois OP sur le salon pour que le code soit lu.
; - Le ! impose quant à lui que le code soit lu seulement si c'est une autre personne que toi qui entre sur le salon.
; - 2 choix possibles de manière de coder, niveau "lisibilité":


; Le 1er, avec des $+() et $($+(),2) partout


on @!*:join:#:{

  ; Si la variable %rk-$chan-$nick a une VALEUR, alors on exécute le code (c'est que les 120 secondes ne se sont
  ;  pas écoulées ou que la valeur n'est pas encore arrivée à 0 donc)

  if ($($+(%,rk-,$chan,-,$nick),2)) {

    ; On diminue la valeur de la variable (en donnant à /dec son NOM)
    dec $+(%,rk-,$chan,-,$nick)

    ; on kicke la personne, en affichant la VALEUR de la variable
    kick $chan $nick Plus que $($+(%,rk-,$chan,-,$nick),2) Kicks

    ; Si la VALEUR n'existe pas (égale à 0 donc), on efface la variable sans attendre que /set le face lui même au
    ; bout des 120 secondes. (on utilise donc son NOM, dans /unset)

    if (!$($+(%,rk-,$chan,-,$nick),2)) unset $+(%,rk-,$chan,-,$nick)

  }
}


; Le 2ème, où on va stocker le nom de la variable dans %x, pour que ça soit plus "lisible" à la relecture.
on @!*:join:#:{

  ; On stocke dans %x le NOM de la variable : %rk-$chan-$nick (ex: %rk-#Scripts-Simon``)
  var %x $+(%,rk-,$chan,-,$nick)

  ; On vérifie si la VALEUR existe (pas la valeur de %x, mais la valeur de la variable dont le nom est dans %x,
  ; en l'occurence le nombre de kicks contenu dans la variable %rk-*

  if ($(%x,2)) {

    ; On diminue %x. Ici c'est particulier, on fait un $eval() tout court (qui correspond à un $eval(,1))
    ; Ca informe mIRC qu'il faut prendre la VALEUR de la variable %x, mais sans l'évaluer,
    ; ça renvoit donc le NOM de la variable %rk-*, sans en donner pour autant sa VALEUR (le nombre de kick)
    ; Si on oublie le $(), alors c'est %x qui est diminué, et non pas %rk- (ce qui sert à rien ici car c'est pas notre but)

    dec $(%x)

    ; On kicke la personne du salon, en affichant cette fois la VALEUR de la variable dont le NOM est dans %x (eheh !)
    ; (la VALEUR de %rk-* donc)

    kick $chan $nick Plus que $(%x,2) Kicks

    ; Si la valeur de la variable %rk- n'existe pas, on efface la variable. Le $() force mIRC à effacer %rk-*.
    ; Si on ne met pas $() alors c'est %x qui est effacé.

    if (!$(%x,2)) unset $(%x)
  }

}

[/td][/tr][/table]



En espérant que tu y vois plus clair, et que ça te sois utile Wink (et que je n'ai pas laissé quelques bugs s'installer ^^)

N'hésite pas à passer sur #Scripts si tu te poses de nouvelles questions, s'il y a des personnes de libre et aptent à te donner un coup de pouce elles le feront certainement avec plaisir, et de manière commentée également.
« Dernière édition: 13 Mars 2006, 15:51:01 par CoolWave » Journalisée
Simon``
Citoyen(ne)
***

EpiKarma : +5/-2
Hors ligne Hors ligne

Messages: 57


=D


Voir le profil WWW
Re : Aide scripting
« Réponse #5 le: 13 Mars 2006, 20:00:05 »

Owi ca marche presque xD un grand merci à toi Smiley j'en aprrends beaucoup là Cheesy
Petit problême, c'est que ça kick celui qui fait la commande, et non celui qui la subit Smiley
Et je met le résultat de mon code, au cas ou j'ai pas mit ce qu'il fallait...
Code:
dialog kick {
  title "Multi Kick"
  size -1 1 260 225
  box "Multi Kick",1, 2 5 255 190
  list 2, 8 25 40 172
  list 3, 52 25 200 172
  button "Kicker" 4, 25 200 70 20
  button "Annuler" 5, 150 200 70 20, ok
}
on *:dialog:kick:init:*:{
  nicklost
  numlost
}
alias nicklost filter -wloc $iif($active ischan,$active,$chan(1)) $dname 3 *
alias nicklost filter -wckl $iif($active ischan,$active,$chan(1)) nicklost_load
alias nicklost_load did -a kick 3 $remove($1,@,%,+)
alias numlost {
  var %i = 1
  while (%i <= $lines(scripts/kick.txt)) {
    did -a kick 2 $read(scripts/kick.txt,%i)
    inc %i
  }
}

on *:dialog:kick:sclick:4:{
  editbox -n $$iif($active ischan,$active) !rk $$did(3).seltext $$did(2).seltext
}
on *:input:*:{
  if ($1 == !Multikick) {
    var %i 1
    while ($comchan($2,%i)) {
      if ($me isop $v1) { kick $v2 $2 4Multi4Kick }
      inc %i
    }
  }
  elseif ($1 == !rk) && ($me isop $chan) {
    set -u120 $+(%,rk-,$chan,-,$2) $$3
    dec $+(%,rk-,$chan,-,$2)
    kick $chan $nick Plus que $($+(%,rk-,$chan,-,$2),2) Kicks
  }
}
on @%!*:join:#:{
  if ($($+(%,rk-,$chan,-,$nick),2)) {
    dec $+(%,rk-,$chan,-,$nick)
    kick $chan $nick Plus que $($+(%,rk-,$chan,-,$nick),2) Kicks
    if (!$($+(%,rk-,$chan,-,$nick),2)) unset $+(%,rk-,$chan,-,$nick)
  }
}
on @%!*:join:#:{
  var %rk-#Kick $+(%,rk-,$chan,-,$nick)
  if ($(%rk-#Kick,2)) {
    dec $(%rk-#Kick)
    kick $chan $nick Plus que $(%rk-#Kick,2) Kicks
    if (!$(%rk-#Kick,2)) unset $(%rk-#Kick)
  }
}
Par contre, si je veux kicker les pseudo +,% ou @, ca me met:
 Pour un voice : !rk +pseudo nombre de kicks
 Pour un halfop : !rk %pseudo nombre de kicks
Pour un op : !rk @pseudo nombre de kicks
J'ai essayé un peu vers
on *:dialog:kick:sclick:4:{
  editbox -n $$iif($active ischan,$active) !rk $$did(3).seltext $$did(2).seltext
}
Mais j'ai pas trouvé où c'était Sad
Sinon, le code de kick, c'est pas moi qui l'ai fait, je suis pas assez expérimenté pour ça Smiley j'essaie simplement d'en faire un dialog...
Journalisée

Kitai
Citoyen(ne)
***

EpiKarma : +16/-1
Hors ligne Hors ligne

Messages: 126


Ga is Ga


Voir le profil WWW
Re : Aide scripting
« Réponse #6 le: 13 Mars 2006, 21:11:24 »

Dans un événement, $nick se réfère en général au déclencheur de cet événement, plus souvent à celui qui agit qu'à celui qui subit.
Dans ton cas, il y a un on input dans lequel tu (CoolWave ^^) a utilisé $nick pour désigner la personne à kicker.
C'est sûrement un réflexe qui est ici une erreur, car, en effet, la commande a ce format "!rk pseudo raison", et donc pseudo correspondra au membre $2 dans le on input.
Il faut donc remplacer la ligne :
    kick $chan $nick Plus que $($+(%,rk-,$chan,-,$2),2) Kicks
par :
    kick $chan $2 Plus que $($+(%,rk-,$chan,-,$2),2) Kicks

Et aussi, regarde bien ton code : tu as deux aliases nommés nicklost.
Par défaut, mIRC prend le premier entré dans le fichier remote, et n'exécute que celui-ci.
Si CoolWave t'en a donné deux, c'est à titre de comparaison, pour te montrer que le deuxième était plus efficace, car en appelant l'alias nicklost_load, il permet de supprimer les caractères "+","%" et "@" devant les pseudonymes.
Tu dois donc supprimer le premier alias nicklost pour permettre au deuxième d'être éxécuté, et d'appeler nicklost_load qui se chargera gentiment de transférer les pseudos sans les signes de grades dans la list ^^
« Dernière édition: 13 Mars 2006, 21:14:43 par Kitai » Journalisée

Les gens qui disent "Ma maison a moi, c'est le monde", je m'demande de quel pays y s'servent pour les chiottes. ©NUNUS
Simon``
Citoyen(ne)
***

EpiKarma : +5/-2
Hors ligne Hors ligne

Messages: 57


=D


Voir le profil WWW
Re : Aide scripting
« Réponse #7 le: 13 Mars 2006, 21:53:58 »

C'est bon, tout vas comme il faut ^^
Merci pour la remarque des alias d'ailleurs c_c
Merci pour tout en fait =D
Continuez d'aider comme vous le faites, c'est du super boulot ^^
Journalisée

Simon``
Citoyen(ne)
***

EpiKarma : +5/-2
Hors ligne Hors ligne

Messages: 57


=D


Voir le profil WWW
Re : Aide scripting
« Réponse #8 le: 01 Avril 2006, 11:35:52 »

Bon, j'en appelle encore à vous pour régler un problême que j'ai du mal à régler.
Je met le zip avec la remote et les fichiers requis sur mon ftp : => ICI <=
Le fichier s'appelle "Away.rar"
Donc voila, essayez de supprimer le "pseudo retour", ca va bugger Sad

Journalisée

CoolWave
Citoyen(ne)
***

EpiKarma : +34/-2
Hors ligne Hors ligne

Messages: 79



Voir le profil
Re : Aide scripting
« Réponse #9 le: 01 Avril 2006, 17:32:19 »

Salut Simon``,

Code:

    if ($did == 12) && ($did(14,0).sel != 0) {
      var %i = 1
      while $did(14,%i).sel {
        did -d away 19 $did(14,%i).sel
      }
      inc %i
      savebuf -o away 14 nickre.txt
    }




Fort probable que tu aies déjà trouvé la solution. Si ce n'est pas le cas relis bien ta commande /while pour la gestion de la liste d'ID 14. Tu utilises le mauvais ID dans ta commande de supression de lignes : did -d away 19 $did(14,%i).sel

La raison pour laquelle ça gèle mIRC ? Les lignes ne sont donc pas retirées de la liste, ce qui fait que $did(14,1).sel retourne toujours une valeur dans ta /while, et donc ça boucle indéfiniment.

Au passage, pour quelle raison utiliser une variable %i dans toutes tes /while, alors que mettre la valeur 1 dans tes $did(N,%i).sel suffirait ?
En plus de cela tu as des inc %i en dehors de la /while, qui ne servent à rien (si c'est simplement pour s'en servir de "debug" sans retirer les lignes et en modifiant la commande /did, oublie ce que je viens de dire ^^)

Bref, petite erreur bête hein !

Si éventuellement tu es intéressé par un moyen d'optimiser ton code pour éviter autant de /while (genre en utiliser qu'une seule au lieu de 6) n'hésite pas à demander.

Bon scripting Smiley
Journalisée
Pages: [1] Imprimer 
L'Agora EpiKnet  |  Forums thématiques  |  Programmation  |  Scripts  |  Sujet: Aide scripting « sujet précédent | | sujet suivant »
Aller à:  

Propulsé par MySQL Propulsé par PHP L'Agora EpiKnet | Propulsé par SMF 1.0.13.
© 2005, Simple Machines LLC. Tous droits réservés.
XHTML 1.0 Transitionnel valide ! CSS valide !