Aller au contenu


Combat À Mains Nues Pas À Mort


  • Veuillez vous connecter pour répondre
Aucune réponse à ce sujet

#1 Troglodyte

Troglodyte

Posté 31 août 2015 - 15:51

Bonsoir, j'ai de nouveau un script en panne. Il s'agit d'un personnage contre lequel on se bat en diverses occasions, le combat s'arrête lorsque l'un des combattants tombe à 0 de fatigue. Voilà le script en question.

Citation

Begin Bus_carmen_script

if ( MenuMode == 1 )  
return   
endif

if ( getjournalindex bus_soumission == 20 )
if ( player->getfatigue <= 0 )
journal, bus_soumission, 30
setfight 30
stopcombat
forcegreeting
endif
endif

if ( getjournalindex bus_soumission == 40 )
if ( getitemcount bus_ale_black_boots_a < 1 )
additem bus_ale_black_boots_a 1
endif
if ( getitemcount bus_ale_black_leather_a < 1 )
additem bus_ale_black_leather_a 1
endif
endif

if ( getjournalindex bus_mainsnues == 10 )
if ( getfatigue <= 0 )
journal, bus_soumission, 20
setfight 30
stopcombat
endif

if ( player->getfatigue <= 0 )
setfight 30
stopcombat
endif
endif

if ( getjournalindex bus_mainsnues == 30 )
if ( getfatigue <= 0 )
setfight 30
stopcombat
endif
endif

end Bus_carmen_script

La partie suivante ne fonctionne pas :

Citation

if ( getjournalindex bus_mainsnues == 10 )
if ( getfatigue <= 0 )
journal, bus_soumission, 20
setfight 30
stopcombat
endif

Lorsque le personnage tombe à 0 de fatigue, l'annonce de la mise à jour du journal s'affiche en flux continu jusqu'à ce que la condition getfatigue <= 0 ne se vérifie plus. Seulement, le journal n'est pas du tout mis à jour, et le journal reste à l'entrée 10.

Ca fait un bon moment que je pédale dans la semoule, ce que je ne comprend pas c'est que ça marche très bien avec d'autres personnages avec ça :

Citation

if ( getjournalindex bus_possession == 10 )
if ( getfatigue <= 0 )
journal, bus_possession, 30
setfight 0
stopcombat
forcegreeting
endif

(EDIT : Je réalise que je n'ai pas effectivement testé le paragraphe ci-dessus, j'ai perdu le combat durant la phase de test (paragraphe ci-dessous), mais je n'ai pas vérifié ce que gagner donnait. Je me suis dit qu'il n'y avait pas de raison que ça ne marche pas.)

if ( player->getfatigue <= 0 )
journal, bus_possession, 20
setfight 0
stopcombat
forcegreeting
endif
endif

Tout comme avec la première partie du script dont nous parlons :

Citation

if ( getjournalindex bus_soumission == 20 )
if ( player->getfatigue <= 0 )
journal, bus_soumission, 30
setfight 30
stopcombat
forcegreeting
endif
endif

J'ai même testé le fait de copier-coller le script dans un nouveau script du même nom et d'effacer l'ancien, ça avait marché pour un autre script qui ne fonctionnait pas sans raison apparente, mais là ça ne fonctionne pas, donc il doit y avoir une erreur là-dedans.
La seule chose que je vois c'est que ma sauvegarde est corrompue, mais j'en ai réparé et testé plusieurs et le résultat est le même.

A ce stade j'envisage carrément de supprimer la quête bus_mainsnues pour qu'elle ne bloque pas le reste.

Merci de votre aide.

Edit : Okay les gars, j'ai trouvé finalement. Pour ceux que ça intéresse, voilà le résultat final, absolument pas instinctif, mais ça marche. J'ai l'impression de marcher sur des oeufs à chaque fois que je joue à force, mais bon, ça passe.

Citation

if ( getjournalindex bus_mainsnues == 10 )
if ( OnKnockout == 1 )
if ( journal == 0 )
set journal to 1
setfight 30
stopcombat
forcegreeting
endif
endif

if ( player-> getfatigue <= 0 )
setfight 30
stopcombat
messagebox "Revenez lorsque vous serez de taille."
endif
endif

if ( journal == 1)
journal, bus_mainsnues, 20
set journal to 2
endif

Messieurs les modérateurs, vous pouvez faire ce que bon vous semble de ce sujet où je me suis autorépondu...

Modifié par Troglodyte, 31 août 2015 - 15:52.





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

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