Aller au contenu
Invité

Loop à l'envers O_o

Messages recommandés

Invité

Eh oui!

J'ai besoin de loop une loop à l'envers.

 

Le problème c'est que je vois que 1 seul moyen. Avec les loops-index

 

En gros au lieu de commencer par {v::1} et après {v::2} etc...

Faire l'inverse: {v::2} après {v::1}

 

Mais je sais pas comment structurer le code le faire.

 

Merci de votre aide ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Mais dans quel cadre on peut avoir besoin de loop à l'envers ? x)

Sinon j'ai bricolé un truc comme ça, à toi de voir si t'arrive à l'adapter:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Normalement ça marche tant que tout les arguments restent supérieurs à 0.

  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
Mais dans quel cadre on peut avoir besoin de loop à l'envers ? x)

Sinon j'ai bricolé un truc comme ça, à toi de voir si t'arrive à l'adapter:

command /loop <number> <number>: # /loop 1 10 -> 10,9,8,7,6,5,4,3,2,1
   trigger:
       if arg-2 is smaller than arg-1:
           message "Usage: /loop <début> <fin>"
       else if arg-2 is equal to arg-1:
           message "Usage: /loop <début> <fin>"
       message "décompte de %arg 2% à %arg 1%"
       set {_total} to arg 2 - arg 1 + 1
       set {_mid} to {_total}/2

       set {_index} to 0
       set {_add} to {_total} - 1
       loop {_total} times:
           set {_index} to {_index} + {_add}
           remove 2 from {_add}
           message "%{_index}%"

       stop

Normalement ça marche tant que tout les arguments restent supérieurs à 0.

Merci , je vais voir sa après

En fait, c'est pour un skript de report;

 

Je veux que dans le chat à un interval régulier sa envoie tous les reports

du plus ancien au plus récent, c'est donc la que j'ai besoin d'un boucle inversée :)

 

Mais dans quel cadre on peut avoir besoin de loop à l'envers ? x)

Sinon j'ai bricolé un truc comme ça, à toi de voir si t'arrive à l'adapter:

command /loop <number> <number>: # /loop 1 10 -> 10,9,8,7,6,5,4,3,2,1
   trigger:
       if arg-2 is smaller than arg-1:
           message "Usage: /loop <début> <fin>"
       else if arg-2 is equal to arg-1:
           message "Usage: /loop <début> <fin>"
       message "décompte de %arg 2% à %arg 1%"
       set {_total} to arg 2 - arg 1 + 1
       set {_mid} to {_total}/2

       set {_index} to 0
       set {_add} to {_total} - 1
       loop {_total} times:
           set {_index} to {_index} + {_add}
           remove 2 from {_add}
           message "%{_index}%"

       stop

Normalement ça marche tant que tout les arguments restent supérieurs à 0.

Problème:

command /viewreports:
   permission: viewreports
   permission message: &cVous n'avez pas la permission
   trigger:
       set {_total} to size of {report::*} - 2 + 1
       set {_mid} to {_total}/2
       set {_index} to 0
       set {_add} to {_total} - 1
       loop {_total} times:
           set {_index} to {_index} + {_add}
           remove 2 from {_add}
           send "%{report::%{_index}%}%"

 

Sa m'envoie des none et tous :'(

Partager ce message


Lien à poster
Partager sur d’autres sites

Si ça envoie des <none> partout c'est forcement que {report::%{_index}%} n'existe pas (évidement) et ça viens de là :

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

ajoute un send "%{_index}%" et tu verra que la valeur va monter en fleche,

met plutôt remove 2 from {_index}

  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
Si ça envoie des <none> partout c'est forcement que {report::%{_index}%} n'existe pas (évidement) et ça viens de là :

loop {_total} times:
           set {_index} to {_index} + {_add}
           remove 2 from {_add}

 

ajoute un send "%{_index}%" et tu verra que la valeur va monter en fleche,

met plutôt remove 2 from {_index}

Je vais tester demain et je te redis ;)

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
J'ai en effet fais une erreur, il faut faife : set {_index} to loop-value + {_add}

Sinon évidemment les index s'accumulent et donnent des chiffres aberrants

 

Sinon:

 

set {_taille} to size of {report::*}
loop {_taille}:
   send "%{report::%{_taille}%}%"
   remove 1 from {_taille}

 

Peut marcher non?

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
Euh rajoute Times derrière la variable

set {_taille} to size of {report::*}
loop {_taille} times:
   send "%{report::%{_taille}%}%"
   remove 1 from {_taille}

C'est pas obligatoire ^^ :')

Je peux pas trop tester en se moment ^^

Partager ce message


Lien à poster
Partager sur d’autres sites

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.