Jump to content
Sign in to follow this  
darketheal

[bug] Machine Sur Geh'lo'nah

Recommended Posts

Voilà après en avoir longuement parlé ici, je poste le problème rencontré avec la machine du laboratoire de Geh'lo'nah :

 

La machine s'active une fois mais rien ne se passe, l'erreur viens d'un script qui s'exécute mal (ou ne s'exécute pas);

 

La solution a été trouvée par Alakdar, je la poste ici :

 

j'ai trouvé l'erreur, vous trouverez après le script corrigé, mais attendez d'abord que Confridín valide les modifications avant de les faires

 

Spoiler : cliquez ici pour voir le message
begin "SG_Scr_Act_Geh_Bouton"

 

 

short notified

short DoOnce

short tropres

short unefois

short superjournal

float timer

 

 

if ( MenuMode == 1 )

Return

endif

 

 

if ( DoOnce == 0 )

"SG_St_Geh_LightningShield"->Disable

"SG_St_Geh_FrostShield2"->Disable

"SG_St_Geh_FrostShield"->Disable

StopSound "SG_Snd_Electricité"

Set DoOnce to 1

endif

 

 

if ( DoOnce == 1 )

if ( OnActivate == 1 )

PlayGroup Idle2

PlaySound "SG_Snd_bouton_porte_morro"

MessageBox "La machine semble se mettre en marche"

Set DoOnce to 2

endif

endif

 

 

if ( DoOnce == 2 )

Set Timer to ( Timer + GetSecondsPassed )

if ( Timer >= 2 )

if ( unefois == 0 )

PlaySound "SG_Snd_Tremblement"

set unefois to 1

endif

endif

if ( Timer >= 3 )

"SG_St_Geh_LightningShield"->Enable

"SG_St_Geh_FrostShield2"->Enable

"SG_St_Geh_FrostShield"->Enable

PlayLoopSound3D "SG_Snd_Electricité" 0.7

MessageBox "Vous entendez une voix qui provient de la machine : Dysfonctionnement, ne pas s'approcher !"

if ( superjournal == 0 )

journal "SG_Geh" 17

set superjournal to 1

endif

Set DoOnce to 3

endif

endif

 

 

if ( DoOnce == 3 )

if ( OnActivate == 1 )

playgroup Idle

PlaySound "SG_Snd_bouton_porte_morro"

MessageBox "La machine semble s'éteindre"

Set unefois to 0

Set DoOnce to 0

Set Timer to 0

endif

endif

 

 

if ( DoOnce == 3 )

if ( "Player"->GetDistance "SG_St_Geh_FrostShield" < 150 )

Set tropres to 1

Elseif ( "Player"->GetDistance "SG_St_Geh_FrostShield2" < 150 )

Set tropres to 1

Elseif ( "Player"->GetDistance "SG_St_Geh_LightningShield" < 150 )

Set tropres to 1

Else

set notified to 0

Set tropres to 0

endif

endif

 

 

if ( tropres == 1 )

"Player"->ModCurrentHealth - 10

if ( notified == 0 )

MessageBox "La machine commence à vous brûler le corps"

set notified to 1

endif

endif

 

 

end

 

moi j'ai fait les modifications puis je les ai enregistré dans un autre mod conçu exprès.

 

part contre j'ai remarqué que les dégats quant on est proche ne se font pas... alors que le message s'affiche :yeuxtournants:

 

Bon je sais pas si Confridin à confirmé les modifications, mais en tout cas elles fonctionnes au moins chez deux personnes ^^.

 

EDIT : Pour ceux qui ne savent pas faire et qui veulent découvrir cette planète je fournirais un fichier Correction-Qehlonah.esp une fois que le sript aura été approuvé par Confridin ou toute autre personne du staff Morrowind Stargate.

Share this post


Link to post
Share on other sites

D'après ce que j'ai compris le Furling intervient dans une quete qui sera dispo dans la V2 mais je ne sais pas si cette machine doit attendre la V2 pour fonctionner ou si il y'a bien un problème

 

Attendons donc les commentaires des concepteurs :)

Share this post


Link to post
Share on other sites
SeiKen   

Je dirais "+1" avec Nightmare.

On compte sortir l'esp en V1.1 dans les prochains jours pour corriger ces problèmes ;)

Share this post


Link to post
Share on other sites
Je dirais "+1" avec Nightmare.

On compte sortir l'esp en V1.1 dans les prochains jours pour corriger ces problèmes ;)

Je savais plus trop combien de temps (en gros) après la version 1.0 la version 1.1 devait sortir, c'était juste pour ceux qui ne voulaient voir Mezhchanus tout de suite ^^

Share this post


Link to post
Share on other sites
J'ai trouvé qui donne les coordonnées de Mezhchanus: il s'agit du furling Odin Valkar.

Il nous donne ces coordonnées suite à une quête quant on va au labo qu'on actionne la machine plusieurs fois puis...

le problème est que la machine ne s'actionne qu'une fois pour moi, et qu'après il ne se passe plus rien.

 

Edit:

 

j'ai trouvé l'erreur, vous trouverez après le script corrigé, mais attendez d'abord que Confridín valide les modifications avant de les faires

 

Spoiler : cliquez ici pour voir le message
begin "SG_Scr_Act_Geh_Bouton"

 

 

short notified

short DoOnce

short tropres

short unefois

short superjournal

float timer

 

 

if ( MenuMode == 1 )

Return

endif

 

 

if ( DoOnce == 0 )

"SG_St_Geh_LightningShield"->Disable

"SG_St_Geh_FrostShield2"->Disable

"SG_St_Geh_FrostShield"->Disable

StopSound "SG_Snd_Electricité"

Set DoOnce to 1

endif

 

 

if ( DoOnce == 1 )

if ( OnActivate == 1 )

PlayGroup Idle2

PlaySound "SG_Snd_bouton_porte_morro"

MessageBox "La machine semble se mettre en marche"

Set DoOnce to 2

endif

endif

 

 

if ( DoOnce == 2 )

Set Timer to ( Timer + GetSecondsPassed )

if ( Timer >= 2 )

if ( unefois == 0 )

PlaySound "SG_Snd_Tremblement"

set unefois to 1

endif

endif

if ( Timer >= 3 )

"SG_St_Geh_LightningShield"->Enable

"SG_St_Geh_FrostShield2"->Enable

"SG_St_Geh_FrostShield"->Enable

PlayLoopSound3D "SG_Snd_Electricité" 0.7

MessageBox "Vous entendez une voix qui provient de la machine : Dysfonctionnement, ne pas s'approcher !"

if ( superjournal == 0 )

journal "SG_Geh" 17

set superjournal to 1

endif

Set DoOnce to 3

endif

endif

 

 

if ( DoOnce == 3 )

if ( OnActivate == 1 )

playgroup Idle

PlaySound "SG_Snd_bouton_porte_morro"

MessageBox "La machine semble s'éteindre"

Set unefois to 0

Set DoOnce to 0

Set Timer to 0

endif

endif

 

 

if ( DoOnce == 3 )

if ( "Player"->GetDistance "SG_St_Geh_FrostShield" < 150 )

Set tropres to 1

Elseif ( "Player"->GetDistance "SG_St_Geh_FrostShield2" < 150 )

Set tropres to 1

Elseif ( "Player"->GetDistance "SG_St_Geh_LightningShield" < 150 )

Set tropres to 1

Else

set notified to 0

Set tropres to 0

endif

endif

 

 

if ( tropres == 1 )

"Player"->ModCurrentHealth - 10

if ( notified == 0 )

MessageBox "La machine commence à vous brûler le corps"

set notified to 1

endif

endif

 

 

end

 

moi j'ai fait les modifications puis je les ai enregistré dans un autre mod conçu exprès.

 

part contre j'ai remarqué que les dégats quant on est proche ne se font pas... alors que le message s'affiche :yeuxtournants:

Merci pour le script.

 

On teste dès que possible.

Share this post


Link to post
Share on other sites
Alakdar   

Il devait s'agir d'une erreur car voici l'algorithme de départ:

 

Si Timer >= 2

alors ......

Sinon Si Timer >3

alors ......

FinSi

 

on essaye pour Timer vaut 1 -> il se passe rien,

si Timer vaut 2 -> la condition "Timer >= 2" est vérifié et on éxecute la commande,

mais si Timer vaut 3 ou + alors la condition "Timer >= 2" est vérifié, donc la condition "Si Timer >3" ne s'exécute pas puisque Timer est supérieur à 2 et que la condition est un sinon !!!

 

Il aurait fallu faire:

 

Si Timer >3

alors ......

Sinon Si Timer >= 2

alors ......

FinSi

 

Ou alors, ce que j'ai fait:

 

Si Timer >= 2

alors ......

FinSi

Si Timer >= 3

alors ......

FinSi

 

En espérant avoir été clair ;)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×