L'atelier des scripto-rameurs
Moderator: Modérateurs pour les forum Français
-
- Posts: 12
- Joined: Fri, 11. Apr 08, 22:09
-
- Posts: 5
- Joined: Sun, 30. Nov 08, 17:42
Salut à tous,
J'essaie de faire un script "simple", mais je suis bloqué...
Je veux juste, pour l'instant, faire un script de commande pour faire aller à un vaisseau à l'endroit où je lui demande (je sais ça existe déjà
).
J'ai bien ma commande qui apparait dans mon menu commande, mais je vois pas comment faire pour que, lorsque je la lance, j'ai une fenêtre de sélection de la cible (par exemple une station).
Des suggestions ?
Merci d'avance.
J'essaie de faire un script "simple", mais je suis bloqué...
Je veux juste, pour l'instant, faire un script de commande pour faire aller à un vaisseau à l'endroit où je lui demande (je sais ça existe déjà

J'ai bien ma commande qui apparait dans mon menu commande, mais je vois pas comment faire pour que, lorsque je la lance, j'ai une fenêtre de sélection de la cible (par exemple une station).

Des suggestions ?

Merci d'avance.
-
- Posts: 6
- Joined: Sun, 9. Nov 08, 15:52
Nettoyage secteur
Bonjour à tous,
Ayant une petite config, j'aurais aimé faire du "ménage" dans certains secteurs pour allèger le moteur 3D et ainsi gagner des FPS.
BUT -> enlever les petits roids d'un secteur et garder seulement ceux qui un certain niveau d'intérêt (ex yield >= 20)
Voilà mon bout de script (mon tout premier
) :
MAIS ce script n'enlève pas les roids tout petits, ceux que l'on peut miner manuellement (je pense !?)
Y-a-t-il une fonction miracle pour me retouner la liste de ces objets pour pouvoir les supprimer ?
Merci !
Ayant une petite config, j'aurais aimé faire du "ménage" dans certains secteurs pour allèger le moteur 3D et ainsi gagner des FPS.
BUT -> enlever les petits roids d'un secteur et garder seulement ceux qui un certain niveau d'intérêt (ex yield >= 20)
Voilà mon bout de script (mon tout premier

Code: Select all
Script syl.roids
Version: 1
for Script Engine Version: 41
Description
Détruire roids y<20 dans secteur
Arguments
1: secteur , Var/Sector , 'Choisir un secteur'
Source Text
001 $tableau = $secteur -> get asteroid array from sector
002 $roids = size of array $tableau
003 $i = 0
004 while $i < $roids
005 |$roid = $tableau[$i]
006 |$yield = $roid -> get asteroid yield
007 |skip if $yield >= 20
008 ||$roid -> destruct: show no explosion=[TRUE]
009 |inc $i =
010 end
011 return null
Y-a-t-il une fonction miracle pour me retouner la liste de ces objets pour pouvoir les supprimer ?
Merci !

-
- Posts: 757
- Joined: Tue, 26. Feb 08, 16:24
Bon alors avant que tu te prenne la tête encore, plus, il existe déjà des scripts pour cela chez les anglophones : Less asteroids, low yield asteroids, et remove rocks.
Tu as la possibilité, en une exécution, de virer tous les petits morceaux et toutes les astéroîdes en dessous d'un yield que tu préciseras, et cela pour tout l'univers. Sympa.
Effectivememnt le gain en fps est le plus gros que j'ai pu connaitre grâce à ces scripts. Rien à voir avec les modifs de CPP ou du HUD.
Par précaution, tu connais les manips à faire pour faire tourner des scripts anglo sur une version fr?
Edit: il me semble bien que les petits morceaux qui t'énervent sont différenciés entre eux par un code chiffré correspondant à leur format, cela pourrait être utile dans le script. Mais je suis vraiment pas sûr de ça.
Tu as la possibilité, en une exécution, de virer tous les petits morceaux et toutes les astéroîdes en dessous d'un yield que tu préciseras, et cela pour tout l'univers. Sympa.
Effectivememnt le gain en fps est le plus gros que j'ai pu connaitre grâce à ces scripts. Rien à voir avec les modifs de CPP ou du HUD.
Par précaution, tu connais les manips à faire pour faire tourner des scripts anglo sur une version fr?
Edit: il me semble bien que les petits morceaux qui t'énervent sont différenciés entre eux par un code chiffré correspondant à leur format, cela pourrait être utile dans le script. Mais je suis vraiment pas sûr de ça.
*fervent défenseur du Down sacré*
*a défoncé les toilettes privées du forum français*
*Patient préféré des infirmières du Doc *
*Comité de lutte pour une meilleur fluidité du jeu*
*a défoncé les toilettes privées du forum français*
*Patient préféré des infirmières du Doc *
*Comité de lutte pour une meilleur fluidité du jeu*
PrizzZ wrote: il vaut mieux prévenir que taper ... enfin non, guérir
-
- Posts: 6
- Joined: Sun, 9. Nov 08, 15:52
Merci ! j'ai trouvé mon bonheur !leyo wrote:Bon alors avant que tu te prenne la tête encore, plus, il existe déjà des scripts pour cela chez les anglophones : Less asteroids, low yield asteroids, et remove rocks.
Tu as la possibilité, en une exécution, de virer tous les petits morceaux et toutes les astéroîdes en dessous d'un yield que tu préciseras, et cela pour tout l'univers. Sympa.
Effectivememnt le gain en fps est le plus gros que j'ai pu connaitre grâce à ces scripts. Rien à voir avec les modifs de CPP ou du HUD.
Par précaution, tu connais les manips à faire pour faire tourner des scripts anglo sur une version fr?
Edit: il me semble bien que les petits morceaux qui t'énervent sont différenciés entre eux par un code chiffré correspondant à leur format, cela pourrait être utile dans le script. Mais je suis vraiment pas sûr de ça.

C'est clair que ça sert à rien de réinventer la roue !

-
- Posts: 757
- Joined: Tue, 26. Feb 08, 16:24
De rien, c'est toujours un plaisir de solutionner un problème.
J'en profite car je vois que tu t'y connais bien mieux que moi en édition de script, et je cherche à améliorer mon premier script, qui doit désactiver en permanence les collision entre vaisseaux. J'ai pondu ça:
résultat : je dois sélectionner mon vaisseau à chaque fois que je lance le script ; je dois relancer le script à chaque fois que je change de secteur. Ce sont ces deux choses que je veux éviter et faire en sorte que ça se fasse automatiquement. Pourrait-tu m'indiquer le code stp?
J'en profite car je vois que tu t'y connais bien mieux que moi en édition de script, et je cherche à améliorer mon premier script, qui doit désactiver en permanence les collision entre vaisseaux. J'ai pondu ça:
Code: Select all
$ship=[THIS]-> get ship array from : race null type null
[THIS]->ignore collision : [TRUE]
return null
*fervent défenseur du Down sacré*
*a défoncé les toilettes privées du forum français*
*Patient préféré des infirmières du Doc *
*Comité de lutte pour une meilleur fluidité du jeu*
*a défoncé les toilettes privées du forum français*
*Patient préféré des infirmières du Doc *
*Comité de lutte pour une meilleur fluidité du jeu*
PrizzZ wrote: il vaut mieux prévenir que taper ... enfin non, guérir
-
- Posts: 2230
- Joined: Sun, 2. Apr 06, 00:12
pour ne pas a avoir à sélectionner ton vaisseau
Pour le changement de secteur, je voie bien une boucle mais il y a sûrement mieux:
Là tu n'a besoin que de lancer le script qu'une fois. Il le rends perméable toute les 2 secondes.
Maintenant ça ne le fait que pour TON vaisseau. Mais si tu le fait pour tout les vaisseaux du secteur, je ferais plutôt un test sur le secteur de ton vaisseau et lancer la désactivation sur tout les vaisseaux que si elle a changé.
Pour ça utilise :
get sector
set local variable (pour enregistrer le secteur actuel)
Code: Select all
$Vaisseau -> get player ship
$vaisseau -> ignore collision : [true]
Code: Select all
$Vaisseau -> get player ship
while = [true]
$vaisseau -> ignore collision : [true]
wait 2000ms
end
return null
Maintenant ça ne le fait que pour TON vaisseau. Mais si tu le fait pour tout les vaisseaux du secteur, je ferais plutôt un test sur le secteur de ton vaisseau et lancer la désactivation sur tout les vaisseaux que si elle a changé.
Pour ça utilise :
get sector
set local variable (pour enregistrer le secteur actuel)
[ external image ]
"On apprend en faisant des erreurs, mais le problème c'est qu'en explosifs, l'erreur est fatale." Aldébaran v10
[ external image ]<-- Clef Des Toilettes Privées Du Forum Français décernée par Thoto le 23/06/07
"On apprend en faisant des erreurs, mais le problème c'est qu'en explosifs, l'erreur est fatale." Aldébaran v10
[ external image ]<-- Clef Des Toilettes Privées Du Forum Français décernée par Thoto le 23/06/07
-
- Posts: 757
- Joined: Tue, 26. Feb 08, 16:24
merci pour tous ces éclairages.
Malgré tes explications claires, je ne comprend pas la dernière partie de ton post :"lancer le test sur le secteur...", je ne vois pas du tout comment le construire.
Egalement j'ai essayé de mettre une variable comme $vaisseau devant "ignore collisons", mais la commande ne semble fonctionner qu'avec [THIS].
Egalement, le but est de désactiver la collision de tous les vaisseaux, c'est pourquoi j' ai choisi le "get ship array of: race null type null". Puis-je conserver cette ligne ?
Dure ,dure les débuts en scripts...
Malgré tes explications claires, je ne comprend pas la dernière partie de ton post :"lancer le test sur le secteur...", je ne vois pas du tout comment le construire.
Egalement j'ai essayé de mettre une variable comme $vaisseau devant "ignore collisons", mais la commande ne semble fonctionner qu'avec [THIS].
Egalement, le but est de désactiver la collision de tous les vaisseaux, c'est pourquoi j' ai choisi le "get ship array of: race null type null". Puis-je conserver cette ligne ?
Dure ,dure les débuts en scripts...

*fervent défenseur du Down sacré*
*a défoncé les toilettes privées du forum français*
*Patient préféré des infirmières du Doc *
*Comité de lutte pour une meilleur fluidité du jeu*
*a défoncé les toilettes privées du forum français*
*Patient préféré des infirmières du Doc *
*Comité de lutte pour une meilleur fluidité du jeu*
PrizzZ wrote: il vaut mieux prévenir que taper ... enfin non, guérir
-
- Posts: 2230
- Joined: Sun, 2. Apr 06, 00:12
Je me dépèche je dois encore prendre ma douche avant d'aller au boulot...
étant donner qu'appliquer la désactivation sur de nombreux vaisseaux prend plus de temps que sur un seul, avec une boucle, la lancer plusieurs fois va faire rammer ton PC.
Alors qu'un "test sur le secteur" ne prends qu'un temps.
Donc:
Au plaisir!
[edit] en fait on peut même se passer de variable locale en fait...
En supprimant les commande local variable est en remplaçant par les lignes marquées d'un ¤.
étant donner qu'appliquer la désactivation sur de nombreux vaisseaux prend plus de temps que sur un seul, avec une boucle, la lancer plusieurs fois va faire rammer ton PC.
Alors qu'un "test sur le secteur" ne prends qu'un temps.
Donc:
Code: Select all
*initialisation script:
$vsx -> get player ship
$sector -> $vsx get sector
set local variable "$secteuractuel" -> $sector (me souviens plus très bien de la forme de la commande mais c'est un truc comme ça)
¤$test==$sector
label : boucle
$test -> get local variable "$secteuractuel"
* teste si le secteur du vaisseau joueur change:
while $test = $sector
$sector -> $vsx get sector
wait 2000ms
end
*sortie de la boucle == changement de secteur
*on enregistre le nouveau secteur en cours
set local variable "$secteuractuel" -> $sector
¤$test==$sector
* on applique ton script:
$ship=[THIS]-> get ship array from : race null type null
[THIS]->ignore collision : [TRUE]
*on retourne à la surveillance du changement de secteur:
goto label boucle
return null
[edit] en fait on peut même se passer de variable locale en fait...
En supprimant les commande local variable est en remplaçant par les lignes marquées d'un ¤.
[ external image ]
"On apprend en faisant des erreurs, mais le problème c'est qu'en explosifs, l'erreur est fatale." Aldébaran v10
[ external image ]<-- Clef Des Toilettes Privées Du Forum Français décernée par Thoto le 23/06/07
"On apprend en faisant des erreurs, mais le problème c'est qu'en explosifs, l'erreur est fatale." Aldébaran v10
[ external image ]<-- Clef Des Toilettes Privées Du Forum Français décernée par Thoto le 23/06/07
-
- Posts: 757
- Joined: Tue, 26. Feb 08, 16:24
Enorme ! Enorme ! je vais bosser là-dessus. Mille mercis Peroxyde, je retire ce que j'ai dit sur le gardien des clés des toilettes privées...
Je te tiendrai au jus. Bonne douche.
Je te tiendrai au jus. Bonne douche.
*fervent défenseur du Down sacré*
*a défoncé les toilettes privées du forum français*
*Patient préféré des infirmières du Doc *
*Comité de lutte pour une meilleur fluidité du jeu*
*a défoncé les toilettes privées du forum français*
*Patient préféré des infirmières du Doc *
*Comité de lutte pour une meilleur fluidité du jeu*
PrizzZ wrote: il vaut mieux prévenir que taper ... enfin non, guérir
-
- Posts: 1031
- Joined: Tue, 18. May 04, 20:14
si je puis me permettre, deux petites choses,
je ne saisis pas bien l'utilité de la ligne
et il faut prévoir que le script s'arrête si le joueur change de vaisseau avec un test du genre
à insérer qqpart dans la boucle principale
je ne saisis pas bien l'utilité de la ligne
Code: Select all
$ship=[THIS]-> get ship array from : race null type null
et il faut prévoir que le script s'arrête si le joueur change de vaisseau avec un test du genre
Code: Select all
if [THIS]<> Player Ship
return null
endif
-
- Posts: 2230
- Joined: Sun, 2. Apr 06, 00:12
En fait moi je comprends pas comment ça peut marcher déjà...Azz wrote:si je puis me permettre, deux petites choses,
je ne saisis pas bien l'utilité de la ligneCode: Select all
$ship=[THIS]-> get ship array from : race null type null
Mais ça peux se comprendre. Je comprendrais que si type = null, aucun type particulier n'est pris en compte. Similairement, Race= nul, doit prendre en compte toute les races.
Enfin le [this], bah, y'en a qui mettent $dummy (vide) dans certaines commandes.
Dans ce cas ça change probablement rien à ce qu'on souhaite faire (un coup de bol quoi).
mais ce que je saisi pas moi c'est la ligne suivante. Si on a chargé laliste des vaisseaux du secteur dans $ship, pour moi la commande suivante ne s'effectue que sur le vaisseau et non sur l'array.
Et même si on fait l'operation sur $ship->ignore colision je suis pas sur que ça fonctionne. je verrais plus (encore une fois ) une boucle incrémentielle pour traiter chacun des vaisseaux de l'array...
[ external image ]
"On apprend en faisant des erreurs, mais le problème c'est qu'en explosifs, l'erreur est fatale." Aldébaran v10
[ external image ]<-- Clef Des Toilettes Privées Du Forum Français décernée par Thoto le 23/06/07
"On apprend en faisant des erreurs, mais le problème c'est qu'en explosifs, l'erreur est fatale." Aldébaran v10
[ external image ]<-- Clef Des Toilettes Privées Du Forum Français décernée par Thoto le 23/06/07
-
- Posts: 757
- Joined: Tue, 26. Feb 08, 16:24
en fait j'ai choisi cette commande dans le but ultime d'appliquer la désactivation sur mon groupe d'hypérion sur-tunés qui n'arrêtent pas de jouer les kamikazes sur les M1 ennemis. J'avais commencé par choisir "get ship array from sector/ship/station", puis ayant fouillé dans les scripts d'xtended, j'ai trouvé cette commande " get ship array from race null type null", et je me suis dit que cela permettrai de désactiver la collision sur tous les vaisseaux et que cela rendrai un peu d'équilibre.
La commande fonctionne bien (alors pourquoi je sais pas) même si je change de vaisseau (et c'est le but, Azz, mais merci du tuyau je note ça quelque part pour une éventuelle future utilisation) . C'est seulement en changeant de secteur que cela se désactive (avant, maintenant faut que je teste le script de Pero, dès que mon PC sera dispo).
Très clairement c'est mon premier script, j'ai pioché des idées dans ce qui se faisait donc c'est fort possible que ça ne semble pas "académique"
La commande fonctionne bien (alors pourquoi je sais pas) même si je change de vaisseau (et c'est le but, Azz, mais merci du tuyau je note ça quelque part pour une éventuelle future utilisation) . C'est seulement en changeant de secteur que cela se désactive (avant, maintenant faut que je teste le script de Pero, dès que mon PC sera dispo).
Très clairement c'est mon premier script, j'ai pioché des idées dans ce qui se faisait donc c'est fort possible que ça ne semble pas "académique"

*fervent défenseur du Down sacré*
*a défoncé les toilettes privées du forum français*
*Patient préféré des infirmières du Doc *
*Comité de lutte pour une meilleur fluidité du jeu*
*a défoncé les toilettes privées du forum français*
*Patient préféré des infirmières du Doc *
*Comité de lutte pour une meilleur fluidité du jeu*
PrizzZ wrote: il vaut mieux prévenir que taper ... enfin non, guérir
-
- Posts: 2230
- Joined: Sun, 2. Apr 06, 00:12
Tien oui ça me fait penser qu'il y a une correction à faire, du coup, puisque le test de changement de secteur est affilié au vaisseau. Car si le joueur change de vaisseau le script ne sera effectif que si le vaisseau quitté entre dans le secteur du joueur...
Pour corriger ça, il faut donc rajouter dans la boucle du script déjà donné, un get player ship:
Pour corriger ça, il faut donc rajouter dans la boucle du script déjà donné, un get player ship:
Code: Select all
* teste si le secteur du vaisseau joueur change:
while $test = $sector
$vsx->get player ship
$sector -> $vsx get sector
wait 2000ms
end
[ external image ]
"On apprend en faisant des erreurs, mais le problème c'est qu'en explosifs, l'erreur est fatale." Aldébaran v10
[ external image ]<-- Clef Des Toilettes Privées Du Forum Français décernée par Thoto le 23/06/07
"On apprend en faisant des erreurs, mais le problème c'est qu'en explosifs, l'erreur est fatale." Aldébaran v10
[ external image ]<-- Clef Des Toilettes Privées Du Forum Français décernée par Thoto le 23/06/07
-
- Posts: 757
- Joined: Tue, 26. Feb 08, 16:24
oui bonne précision c'est sur le joueur et non le vaisseau qu'il occupe.
Mais on peut insérer ça n'importe où dans le script?
Mais on peut insérer ça n'importe où dans le script?
*fervent défenseur du Down sacré*
*a défoncé les toilettes privées du forum français*
*Patient préféré des infirmières du Doc *
*Comité de lutte pour une meilleur fluidité du jeu*
*a défoncé les toilettes privées du forum français*
*Patient préféré des infirmières du Doc *
*Comité de lutte pour une meilleur fluidité du jeu*
PrizzZ wrote: il vaut mieux prévenir que taper ... enfin non, guérir
-
- Posts: 2230
- Joined: Sun, 2. Apr 06, 00:12
leyo wrote:Mais on peut insérer ça n'importe où dans le script?
Allez, je suis de trop bonne humeur ce soir, je te le remets même corrigé en entier!Peroxyde wrote: il faut donc rajouter dans la boucle du script déjà donné,
Code: Select all
001 *initialisation script:
002 $vsx -> get player ship
003 $sector -> $vsx get sector
004 $test==$sector
005
006 label : boucle
007
008 * teste si le secteur du vaisseau joueur change:
009 while $test = $sector
010 $vsx -> get player ship
010 $sector -> $vsx get sector
011 wait 2000ms
012 end
013
014 *sortie de la boucle == changement de secteur
015
016 *on enregistre le nouveau secteur en cours
017 $test==$sector
018
019 *on applique ton script:
020 $ship=[THIS]-> get ship array from : race null type null
021 [THIS]->ignore collision : [TRUE]
022
023 *on retourne à la surveillance du changement de secteur:
024 goto label boucle
025
026 return null
[ external image ]
"On apprend en faisant des erreurs, mais le problème c'est qu'en explosifs, l'erreur est fatale." Aldébaran v10
[ external image ]<-- Clef Des Toilettes Privées Du Forum Français décernée par Thoto le 23/06/07
"On apprend en faisant des erreurs, mais le problème c'est qu'en explosifs, l'erreur est fatale." Aldébaran v10
[ external image ]<-- Clef Des Toilettes Privées Du Forum Français décernée par Thoto le 23/06/07
-
- Posts: 757
- Joined: Tue, 26. Feb 08, 16:24
Ah j'ai du rater pas mal de chose ; j'ai recopié le script tel quel, à l'exception près que je n'arrive pas à construire la ligne " $test==$sector" ,pas moyen de trouver le == tant que je mets pas de "if" ou "while", également les expressions en "if" et "while" sont tjrs construites avec == et non pas = tel qu'il y a dans ton script.
Egalement je n'ai pas gardé les "set local variable" et "get local variable" dont tu parlais au début ; j'ai recopié tel quel le script de ton dernier post.
le script fonctionne pas j'ai l'impression qu'il manque quelque chose.
Es-tu sûr qu'il est exhaustif, qu'il n'y a pas de code à mettre à la place des commentaires (je les suspecte de faire référence à d'autres lignes de codes)?
je me gratte la tête depuis trois jours j'atteins bientôt l'os.
J'imagine que j'en demande beaucoup, mais il s'agit de la cerise sur le gâteau pour mon mod perso ultra-violent, après j'aurai enfin un jeu sur mesure pil poil, j'en suis pas loin donc rien ne presse, mais si tu pouvais m'éclairer un peu plus encore, je te serai très reconnaissant. Merci.

Egalement je n'ai pas gardé les "set local variable" et "get local variable" dont tu parlais au début ; j'ai recopié tel quel le script de ton dernier post.
le script fonctionne pas j'ai l'impression qu'il manque quelque chose.
Es-tu sûr qu'il est exhaustif, qu'il n'y a pas de code à mettre à la place des commentaires (je les suspecte de faire référence à d'autres lignes de codes)?

je me gratte la tête depuis trois jours j'atteins bientôt l'os.
J'imagine que j'en demande beaucoup, mais il s'agit de la cerise sur le gâteau pour mon mod perso ultra-violent, après j'aurai enfin un jeu sur mesure pil poil, j'en suis pas loin donc rien ne presse, mais si tu pouvais m'éclairer un peu plus encore, je te serai très reconnaissant. Merci.
*fervent défenseur du Down sacré*
*a défoncé les toilettes privées du forum français*
*Patient préféré des infirmières du Doc *
*Comité de lutte pour une meilleur fluidité du jeu*
*a défoncé les toilettes privées du forum français*
*Patient préféré des infirmières du Doc *
*Comité de lutte pour une meilleur fluidité du jeu*
PrizzZ wrote: il vaut mieux prévenir que taper ... enfin non, guérir
-
- Posts: 2230
- Joined: Sun, 2. Apr 06, 00:12
Salut!
J'ai fait tout ça de tête hein, et il est vrai qu'il y a bcp de langage qui se ressemblent, c'est possible qu'il y ai qu'un seul '='.
La commande se trouve dans la rubrique "commande générale", dans les premières et a cette forme : <RetVar/IF><Expression> (lien vers tableau récapitulatif des commandes)
Quand tu la sélectionnes, il te suffi de choisir(/définir si ça pas été encore fait)$test et juste après il te demande la seconde variable. C'est on ne peux plus simple! ^^
Le script devrait fonctionner sans elleS (la commande apparait 2 fois) MAIS il applique sans arrêt ton script (la valeur de $test restant "null") donc dans un secteur contenant beaucoup de vaisseau attends toi à un ralentissement général.
Enfin je dit ça faut encore vérifier. Je sais que certain langage vérifie la condition après l'exécution de la boucle et d'autres sautent directement. C'est peut-être le cas ici et dans ce cas $test=$sector est absolument nécéssaire.
Mais sinon, non les lignes commentaires ne font pas référence à d'autre ligne de codes.
Tu as bien fait de ne pas garder les locals variables ça alourdit le code.
Après si tu as des doute sur le fonctionnement du script tu peux mettre des "mouchards" qui t'informent sur l'avancée du script.
Il te suffira de les retirer ensuite.
pour cela utilise ton journal de bord et la commande:
A la ligne 005 par exemple tu peux mettre:
Donc après avoir nettoyé ton journal, cette note ne devrais apparaitre qu'une fois dans ton journal (là c'est pas très utile sauf pour voir si tes variables sont initialisées correctement)
Si tu la met dans la boucle du while (entre Wait et le End du while) tu aura un rapport toute les deux secondes. Dans la majeure partie des cas $test et $sector dans ton journal auront la même valeur. Mais lors d'un changement il apparaîtra une seule fois où $test aura la valeur du secteur d'où tu viens et $sector celle de celui ou tu arrives.
Si tu la met juste après le end de la boucle while, tu aura une notification qu'à chaque fois ou tu changes de secteur.
Attention si tu change deux fois de secteur en moins de deux secondes (un retour arrière brusque, ça m'arrive) le secteur n'aura pas eu le temps d'être modifié dans la variable. C'est le seul défaut que je voie à ce script.
Pour terminer, si tu met une notification journal juste avant le "return null" et qu'elle apparaît dans le journal, c'est que pour ce script il y a effectivement une c*uille dans le potage puisqu'il ne devrait pas se terminer.
J'ai fait tout ça de tête hein, et il est vrai qu'il y a bcp de langage qui se ressemblent, c'est possible qu'il y ai qu'un seul '='.
La commande se trouve dans la rubrique "commande générale", dans les premières et a cette forme : <RetVar/IF><Expression> (lien vers tableau récapitulatif des commandes)
Quand tu la sélectionnes, il te suffi de choisir(/définir si ça pas été encore fait)$test et juste après il te demande la seconde variable. C'est on ne peux plus simple! ^^
Le script devrait fonctionner sans elleS (la commande apparait 2 fois) MAIS il applique sans arrêt ton script (la valeur de $test restant "null") donc dans un secteur contenant beaucoup de vaisseau attends toi à un ralentissement général.
Enfin je dit ça faut encore vérifier. Je sais que certain langage vérifie la condition après l'exécution de la boucle et d'autres sautent directement. C'est peut-être le cas ici et dans ce cas $test=$sector est absolument nécéssaire.
Mais sinon, non les lignes commentaires ne font pas référence à d'autre ligne de codes.

Tu as bien fait de ne pas garder les locals variables ça alourdit le code.
Après si tu as des doute sur le fonctionnement du script tu peux mettre des "mouchards" qui t'informent sur l'avancée du script.
Il te suffira de les retirer ensuite.
pour cela utilise ton journal de bord et la commande:
Code: Select all
write to player logbook: sprintf: fmt=<Var/String>,<Value>,<Value>,<Value>,<Value>,<Value>
Code: Select all
write to player logbook: sprintf: fmt='démarrage du script, $vsx=%s ; $sector=%s ; $test=%s', $vsx, $sector, $test, <value>, <value>
Si tu la met dans la boucle du while (entre Wait et le End du while) tu aura un rapport toute les deux secondes. Dans la majeure partie des cas $test et $sector dans ton journal auront la même valeur. Mais lors d'un changement il apparaîtra une seule fois où $test aura la valeur du secteur d'où tu viens et $sector celle de celui ou tu arrives.
Si tu la met juste après le end de la boucle while, tu aura une notification qu'à chaque fois ou tu changes de secteur.
Attention si tu change deux fois de secteur en moins de deux secondes (un retour arrière brusque, ça m'arrive) le secteur n'aura pas eu le temps d'être modifié dans la variable. C'est le seul défaut que je voie à ce script.
Pour terminer, si tu met une notification journal juste avant le "return null" et qu'elle apparaît dans le journal, c'est que pour ce script il y a effectivement une c*uille dans le potage puisqu'il ne devrait pas se terminer.
[ external image ]
"On apprend en faisant des erreurs, mais le problème c'est qu'en explosifs, l'erreur est fatale." Aldébaran v10
[ external image ]<-- Clef Des Toilettes Privées Du Forum Français décernée par Thoto le 23/06/07
"On apprend en faisant des erreurs, mais le problème c'est qu'en explosifs, l'erreur est fatale." Aldébaran v10
[ external image ]<-- Clef Des Toilettes Privées Du Forum Français décernée par Thoto le 23/06/07
-
- Posts: 757
- Joined: Tue, 26. Feb 08, 16:24
Merci encore d'avoir détaillé les choses, malheureusement j'ai déjà essayé tout ce que tu me dis (pour les = notament), j'ai même essayé de remplacer par les local variable, changer la position de départ de la boucle, rajouter un bloc "ignore collision", rien n'y fait.
Dure dure...
Dure dure...
*fervent défenseur du Down sacré*
*a défoncé les toilettes privées du forum français*
*Patient préféré des infirmières du Doc *
*Comité de lutte pour une meilleur fluidité du jeu*
*a défoncé les toilettes privées du forum français*
*Patient préféré des infirmières du Doc *
*Comité de lutte pour une meilleur fluidité du jeu*
PrizzZ wrote: il vaut mieux prévenir que taper ... enfin non, guérir
-
- Posts: 2351
- Joined: Sun, 28. Mar 04, 15:56
tout simplement par ce que cette partie là :
.... ne marche pas : petite explication : mettre les deux paramètres à null renvoie ... 0 vaisseaux, et ces 0 vaisseaux sont enregistré dans un tableau, sur lequel on ne peut pas appliquer la commande ignore collision, et en plus, ce tableau est enregistré dans $ship, et pas [THIS].
J'ai codé quelque chose, je publie ça dans la soirée.
Code: Select all
019 *on applique ton script:
020 $ship=[THIS]-> get ship array from : race null type null
021 [THIS]->ignore collision : [TRUE]
J'ai codé quelque chose, je publie ça dans la soirée.
Last edited by PrizzZ on Fri, 12. Dec 08, 00:02, edited 1 time in total.