Armure "mangeuse" D'or
#1
Posté 09 décembre 2008 - 18:39
#2
Posté 09 décembre 2008 - 19:08
Je ne crois pas qu'il soit possible de modifier le poids d"une armure en cours de jeu, car il est fixé au moment de sa création sur la fiche de l'objet, mais tu peux donner au joueur un sort de fardeau qui aura le même effet....
(Wiwi d'or de la plus serviable et de la plus cool... Merci à vous tous...)
#3
Posté 09 décembre 2008 - 20:43
voici le premier script
begin startscript short OnPCEquip if ( OnPCEquip == 1 ) StartScript "armor_feed_gold" endif
et voici celui qui est activé
begin armor_feed_gold float timer if ( timer == 1 ) while ( player-> "Gold_001" >=1 ) player->removeitem "Gold_001" 1 endwhile endif if ( player-> "Gold_001" == 0 ) player-> addspell "gold_fardeau" 1 endif if ( OnPCEquip == 0 ) player->removespell "gold_fardeau" 1 endif end
#4
Posté 09 décembre 2008 - 20:44
#5
Posté 09 décembre 2008 - 21:29
Je pense qu'il serait plus judicieux de regrouper les deux scripts, afin d'alléger un peu l'ensemble....
begin armor_feed_gold float timer short pgc short OnPcEquip short done if ( menumode ==1 ) return endif if ( OnPcEquip == 1 ) set pgc to ( Player->GetItemCount "Gold_001" ) set timer to ( timer+GetSecondPassed ) set done to 1 endif if ( done == 1 ) if ( gpc > 0 ) if (timer == 1 ) Player->Removeitem "Gold_001" 1 set timer to 0 endif endif endif if ( done == 1 ) if ( gpc ==0 ) if timer ==1 player-> addspell "gold_fardeau" 1 MessageBox "L'armure maudite vient de frapper" set done to 2 endif
Ce n'est qu'une suggestion, je ne l'ai pas testé, et je ne suis pas une spécialiste des scripts, mais je pense que ça a des chances de marcher....
(Wiwi d'or de la plus serviable et de la plus cool... Merci à vous tous...)
#6
Posté 09 décembre 2008 - 22:51
Not Quite Dead, le 22.06.2006 à 19:42, dit :
Fervent Partisan de l'Immuabilité Avatarienne.
#7
Posté 09 décembre 2008 - 23:12
Que deviendrait-on sans prince, aussi charmant que bleu, prêt à intervenir?.....
(Wiwi d'or de la plus serviable et de la plus cool... Merci à vous tous...)
#8
Posté 09 décembre 2008 - 23:23
begin startscript short OnPCEquip if ( OnPCEquip == 1 ) StartScript "armor_feed_gold" endifstartscript est déjà un très mauvais nom pour un script puisque c'est aussi une commande de script. D'autre part, OnPCEquip est à 1 tant que tu as l'objet équipé, donc en fait ce que fait ce script c'est en lancer un autre en continu... et donc saturer le système.
begin armor_feed_gold float timer if ( timer == 1 )timer ne sera jamais égal à 1 si tu ne le modifies jamais
while ( player-> "Gold_001" >=1 ) player->removeitem "Gold_001" 1 endwhileUn while s'exécute tout d'un trait dans la même frame (image) du jeu, si bien que dès que timer sera à 1 (dans ton cas jamais, mais imaginons), le joueur perdra immédiatement tout son or, au lieu d'en perdre peu à peu.
Attention : perfectionniste paresseux.
#9
Posté 09 décembre 2008 - 23:58
Bon voici quand même mon avis qui rejoint ce qui a été dit précédemment :
begin startscript [b]; utiliser un nom de fonction pour nommer le script est trop risqué.[/b] short OnPCEquip if ( OnPCEquip == 1 ) StartScript "armor_feed_gold" [b]; sans condition supplémentaire, le startscript sera fait inutilement à chaque frame.[/b] endif end [b]; il manquait mais c'est sans doute dans la copie[/b]
begin armor_feed_gold float timer if ( timer == 1 )[b] ; il n'y a rien pour faire passer cette variable à 1[/b] while ( player-> "Gold_001" >=1 )[b] ; Tant que le PJ a de l'or, reste en boucle (dans la même frame)[/b] player->removeitem "Gold_001" 1[b] ; enlève 1 or à chaque boucle[/b] endwhile [b]; ce qui revient à enlever tout l'or du PJ en une seule frame.[/b] endif if ( player-> "Gold_001" == 0 )[b] ; sans condition supplémentaire, le sort sera redonné inutilement à chaque frame.[/b] player-> addspell "gold_fardeau" 1 endif if ( OnPCEquip == 0 )[b] ; sans condition supplémentaire, le sort sera oté inutilement à chaque frame.[/b] player->removespell "gold_fardeau" 1 endif end
begin armor_feed_gold float timer short pgc short OnPcEquip short done if ( menumode ==1 ) return endif if ( OnPcEquip == 1 ) set pgc to ( Player->GetItemCount "Gold_001" ) set timer to ( timer+GetSecondPassed ) set done to 1 endif if ( done == 1 ) if ( gpc > 0 ) if (timer == 1 )[b] ; On ne peut pas employer l'égalité avec un timer car il y a peu de chance de tomber pile.[/b] Player->Removeitem "Gold_001" 1 set timer to 0 endif endif endif if ( done == 1 )[b] ; la condition étant déjà donnée, les 2 blocs peuvent être fondus.[/b] if ( gpc ==0 ) if timer ==1[b] ; il manque les paranthèses.[/b] player-> addspell "gold_fardeau" 1[b] ; la quantité n'est pas nécessaire. Le même sort n'est pas cumulable.[/b] MessageBox "L'armure maudite vient de frapper" set done to 2 endif endif endif end
Je n'ai pas testé ce qui suit mais voici ce que ça donnerait en partant du script de Kira :
begin armor_feed_gold float timer short pgc short OnPcEquip short done if ( menumode == 1 ) return endif if ( OnPcEquip == 1 ) set pgc to ( Player -> GetItemCount, "Gold_001" ) set timer to ( timer + GetSecondsPassed ) set done to 1 else if ( done == 2 ) player -> RemoveSpell, "gold_fardeau" set done to 0 endif endif if ( done == 1 ) if ( gpc > 0 ) if ( timer >= 1 ) Player -> Removeitem, "Gold_001", 1 set timer to 0 endif else if ( Player -> GetSpellEffects, "gold_fardeau" == 0 ) Player -> addspell, "gold_fardeau" MessageBox "L'armure maudite vient de frapper" set done to 2 endif endif endif end
#10
Posté 10 décembre 2008 - 09:44
L'abus de SMS est dangereux pour l'élocution mentale
Le mod qui révèle (presque) tout sur les dwemers : Dwarmor
Fervent Partisan de l'Instabilité Avatarienne
Quart du quarteron des VGM...
#11
Posté 10 décembre 2008 - 10:04
Korfandar, le 10.12.2008 à 09:43, dit :
"Je pense que Mirror's Edge sera extra, mais ils me montrent trop de parkour, je veux voir du gameplay au flingue. J'espère qu'il ne faut pas se contenter de courir et de sauter", Cliff Bleszinki
#12
Posté 10 décembre 2008 - 10:19
L'avantage du remplacement d'armure est qu'on peut modifier d'autres caractéristiques comme la protection qu'elle apporte, l'inconvénient est que ça réinitialise son état d'usure.
L'abus de SMS est dangereux pour l'élocution mentale
Le mod qui révèle (presque) tout sur les dwemers : Dwarmor
Fervent Partisan de l'Instabilité Avatarienne
Quart du quarteron des VGM...
#13
Posté 10 décembre 2008 - 10:44
salut, je viens d'avoir une autre idée, c'est peut peut être un peu gros mais il fraudais que l'armure affiche aussi une message box de l'or du jouer (pour pouvoir garder un œil dessus). Mais il me semble qu'on ne peut pas scripter l'inventaire du jouer je me trompe?
#14
Posté 10 décembre 2008 - 10:54
set pgc to ( pgc - 1 ) MessageBox "Votre or : %g" pgcaprès :
Player -> Removeitem, "Gold_001", 1 set timer to 0
Attention : perfectionniste paresseux.
#15
Posté 10 décembre 2008 - 11:04
#16
Posté 10 décembre 2008 - 16:14
Korfandar, le 10.12.2008 à 09:43, dit :
Le défaut de cette méthode est de ne pas pouvoir changer l'état de dégradation de l'armure pour qu'elles soient identiques.
Les sorts, capacités, etc. quand à eux ont une icône pour indiquer leur présence (ce qui n'est pas toujours souhaité) et leurs effets peuvent être annulés. De plus, si le PJ peut avoir une résistance importante aux sorts (avec un objet par exemple), il peut le contrer au moment où il n'a plus d'or. C'est ce que je faisais pour enfiler les bottes de rapidité . Je pouvais donc les porter sans jamais être atteint de cécité.
Une autre possibilité est de faire un "Player -> AddItem" avec un conteneur. Le conteneur ne se place pas dans l'inventaire mais son poids est quand même donné au PJ. Le poids est enlevé ensuite avec un "Player -> RemoveItem" de la même ID.
Cela peut aussi permettre de faire un poids faible mais qui s'ajoute progressivement toutes les secondes de la même manière que l'or était enlevé toutes les secondes, tant que le PJ en avait.
#17
Posté 10 décembre 2008 - 17:34
Ou alors on peut faire du sorts une malédiction comme j'ai fait et le problème ne se pause plus car seul une potion de délivrance de la malédiction marcherais pour l'enlever ou la commande player->removespell "gold_fardeau"
Modifié par Iranil, 10 décembre 2008 - 17:34.
0 utilisateur(s) li(sen)t ce sujet
0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)