Aller au contenu


Une Arme Qui Équipe Une Armure


  • Veuillez vous connecter pour répondre
3 réponses à ce sujet

#1 Ariya

Ariya

Posté 30 mai 2010 - 11:56

bonjour, bonsoir

voila, je veux crée un script qui, lorsque j'équipe une arme (une lance dans l'exemple) une armure apparaissent dans l'inventaire

Spoiler

le script me donne des centaines d'armures IG.

j'ai donc demandé au débuggeur de script du wiwiland ce qui n'allai pas.

voici la réponse :

Spoiler

please HELP
- Apprends comme si tu devais vivre pour toujours et vis comme si tu devais mourir ce soir.
- Bavardage est écume sur l’eau, action est goutte d’or.
proverbes tibétains

#2 Shadow she-wolf

Shadow she-wolf

    Le katana de la GBT


Posté 30 mai 2010 - 20:31

Coucou, :wacko:


Pour commencer, je ne crois pas que l'on puisse arrêter un script local, donc ton stopscript "0o_darth_sc" ne sert à rien. (à vérifier toutefois)


Ensuite, manifestement, la démultiplication des objets est dû au fait que tu n'as pas mit de "player->" devant les GetItemCount du premier champ de if.

En plus de cela, les RemoveItem ne s'appliqueront jamais en l'état, en effet:
Au premier lancement du script, le champ de if passe la variable ObjectCount à 1.
Ensuite, lorsque tu t'équipes de l'arme, la variable ObjectCount passe à 2.
Quoi qu'il arrive par la suite, vu la vitesse d'exécution d'un script, celui-ci rebouclera avant que le joueur ne fasse quoi que se soit.
On retourne donc dans le champ de if, qui cette fois retournera un résultat faux, et donc passera la variable ObjectCount à 0.

Ce qui fait que ton:
if ( player->HasItemEquipped, "0o_darth_spear" == 0 )
		if ( ObjectCount == 2 )
Ne sera jamais vrai.

Supprimer "if ( ObjectCount == 2 )" devrait faire l'affaire.


Normalement, ton script devrait mieux fonctionner comme cela ; j'ai rapidement testé en jeu pour voir ce que ça donne...

#3 abg

abg

    L'ABG pour les civilisés


Posté 30 mai 2010 - 20:48

Voir le messageShadow she-wolf, le 30 mai 2010 - 20:31, dit :

Pour commencer, je ne crois pas que l'on puisse arrêter un script local, donc ton stopscript "0o_darth_sc" ne sert à rien. (à vérifier toutefois)

En effet on ne peut pas...
La solution habituelle de remplacement est un "court-circuit" type DoOnce :
If ( DoOnce == 1 )
	Return
EndIf

... Choses à faire ...

Set DoOnce To 1

Antoninus Bibulus Glaber
Coaching de PNJs chez Morrowind Renaissance

#4 Ariya

Ariya

Posté 01 juin 2010 - 17:04

ok je test comme ça
encore merci abg et Shadow she-wolf

Modifié par Ariya, 01 juin 2010 - 17:04.

- Apprends comme si tu devais vivre pour toujours et vis comme si tu devais mourir ce soir.
- Bavardage est écume sur l’eau, action est goutte d’or.
proverbes tibétains




0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)