Aller au contenu


Enragement


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

#1 Dago_Bert

Dago_Bert

Posté 15 avril 2010 - 21:30

Bonjour à tous.
Le Script suivant consiste à rendre la créature plus puissante lorsque sa santé atteind 100:
begin script0101
if ( gethealth == 100 )
SetStrength 120
MessageBox "LaCréature s'enrage"
endif
end

malheureusement, le script ne marche pas, et il n'y a pas de message d'erreur qui apparaît.

Quelqu'un sait pourquoi?
merci.

PS: j'ai tenté de remplacer gethealth par gothealth, mais ça ne marche pas plus.

Modifié par Dago_Bert, 15 avril 2010 - 21:31.

http://img151.imageshack.us/img151/6506/wiwidoranim.gifWiwi d'or 2010 de l'avatar le plus moche. Nul ne peut battre le lama dans son domaine d'élégance

À la recherche de mods?  http://lorddagobert....traducteurs.fr/

#2 Cogite Stibon

Cogite Stibon

    Théoriquement moddeur


Posté 15 avril 2010 - 21:52

Bonjour,

Je suis loin d'être un expert en script, mais je vois un problème avec cette ligne :
if ( gethealth == 100 )
Il y a peu de chance que la santé de la créature atteigne exactement 100. Les dégâts subis sont en général de plus d'un point. Donc mieux vaudrait utiliser :
if ( gethealth <= 100 )
Avec un système de "doonce" pour éviter de faire des setstrength à chaque frame.

Tout droit vers le non-linéaire !
It's not the engine, it's the writing.
HERMA MORA ALTADOON AE


#3 abg

abg

    L'ABG pour les civilisés


Posté 15 avril 2010 - 22:02

Bonsoir,

Voir le messageDago_Bert, le 15 avril 2010 - 21:30, dit :

Le Script suivant consiste à rendre la créature plus puissante lorsque sa santé atteind 100:

begin script0101

Je te déconseille d'utiliser des noms de scripts trop abstraits (et sans préfixe). Sur un mod complexe c'est le meilleur moyen de ne plus s'y retrouver... Mieux vaut utiliser des noms genre "dago_creaturefurie" ou autre plus "lisible" et facile à mémoriser ;)

Citation

if ( gethealth == 100 )

Le principal problème : il n'y a que peu de chances que la vie de ta créature atteigne pile-poil 100 points. Il faudrait mieux écrire :
if ( gethealth <= 100 )
Il faudrait aussi encapsuler tout ça dans un test de type "doonce" sinon le script met à jour la force de la créature en permanence :

If ( DoOnce == 0 )
	If ( GetHealth <= 100 )
		SetStrength 100
		Set DoOnce To 1
Etc...

Ou mieux encore, pour le cas probablement rare où le PJ visite plusieurs fois la créature, remplacer le DoOnce et le SetStrength par un sort (capacité) de fortification de force qui remplacera le SetStrengh et servira de marqueur (Pour des raisons de tendance à l'amnésie du jeu, je n'entre pas dans les détails...)

Citation

PS: j'ai tenté de remplacer gethealth par gothealth, mais ça ne marche pas plus.

La syntaxe est bien GetHealth...
Tu pourrais aussi utiliser GetHealthGetRatio (voir le MSfD pour la définition de cette commande)
If ( GetHealthGetRatio <= 0.5 )
SetStrengh 120
...

Modifié par abg, 15 avril 2010 - 22:07.
Syntax error et passage de Cogite pendant que j'avais le dos tourné :p

Antoninus Bibulus Glaber
Coaching de PNJs chez Morrowind Renaissance

#4 Dago_Bert

Dago_Bert

Posté 15 avril 2010 - 22:19

Merci pour votre réponse rapide.
"Script0101" n'était pas le vrai nom de mon script ;), c'est juste moins long à écrire.
http://img151.imageshack.us/img151/6506/wiwidoranim.gifWiwi d'or 2010 de l'avatar le plus moche. Nul ne peut battre le lama dans son domaine d'élégance

À la recherche de mods?  http://lorddagobert....traducteurs.fr/




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

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