La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 22/11/2024 22:04:26
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
Altrorm Novice Messages: 6 |
Bonjour bonjour!
Voila, je suis en train de créer un donjon pour un futur monde persistant, et j'ai (vous vous en doutez ) un problème. Le premier boss de ce donjon est un geolier~loup-garou (oui j'ai un esprit tordu), le combat est censé se derouler en trois phases: d'abord le geolier tout seul, ensuite il appel deux chiens et enfin il se transforme en gros truc poilue et plein de griffes Pour metre un peu d'ambiance dans le combat j'ai voulut lui faire dire quelques phrases bidons, bref voila mes scripts: OnPerception du boss: NWScript :
void main() { object oPC = GetLastPerceived(); int nPhase = GetLocalInt(OBJECT_SELF, "phase"); if(GetIsPC(oPC)&& nPhase == 0) { ActionSpeakString("Quoi?! Qui etes vous, comment etes vous arrive ici, que font ces foutues gardes?! Raaah, c'est pas vrai, moi qui avait un prisonnier sur le feu... On est vraiment pas assistes dans c'te baraque!",TALKVOLUME_SHOUT); SetLocalInt(OBJECT_SELF, "phase", 1); } // Le bout de code nwn de base: ExecuteScript("nw_c2_default2", OBJECT_SELF); } OnDamaged: NWScript :
void main() { object oSpawn = GetNearestObjectByTag("WP_spawn"); location lSpawn = GetLocation(oSpawn); int nPV = GetCurrentHitPoints(); int nPhase = GetLocalInt(OBJECT_SELF, "phase"); if (nPV <= 50) { nPhase = 3; AssignCommand(OBJECT_SELF, ActionSpeakString("Vous... ne m'aurez pas... si facilement!!!")); CreateObject(OBJECT_TYPE_CREATURE, "ti_boss1_phase3", lSpawn); DestroyObject(OBJECT_SELF); ApplyEffectAtLocation( DURATION_TYPE_INSTANT, EffectVisualEffect( VFX_FNF_FIREBALL), GetLocation(OBJECT_SELF)); } if (nPV <= 200) { if (nPhase == 1) { ActionSpeakString("Vous n'etes pas si mauvais... A moi Brutus, Brutalus!!"); CreateObject(OBJECT_TYPE_CREATURE, "brutus", lSpawn, TRUE); CreateObject(OBJECT_TYPE_CREATURE, "brutalus", lSpawn, TRUE); SetLocalInt(OBJECT_SELF, "phase", 2); } } // le bout de code nwn de base: if (GetPlotFlag(OBJECT_SELF)) { return; } ExecuteScript("nw_c2_default6", OBJECT_SELF); } (je l'avait bien dit que mes phrases etaient bidons ) Et la plusieurs problèmes se presentent: - Le boss ne dit pas ses phrases - Il n'invoque pas ses chients - La "copie" du boss n'est pas créée, bien que l'effet visuel s'affiche correctement Voila, j'ai essayé des tas de trucs, bidouillé de partout mais... je trouve pas ^^" Merci d'avance de votre aide |
Revenir en haut | |
Claudius33 Grand Sage du Conseil Messages: 547 |
Bonjour,
De manière générale, utiliser SpeakString lorsque que le script est lié à un évenement d'OBJECT_SELF, ActionSpeakString quand on lie la phrase à une créature par AssignCommand. Je pense que le pb vient du fait que le boss est en mode combat donc que les actions générées par l'IA de NWN2 sont prioritaires. Essayes d'encadrer les paroles et les CreateObject par : NWScript : ClearAllActions(FALSE); // vide la queue d'actions du Boss tout en gardant le mode combat actif // actions ici (phrase, chiens, double) AssignCommand(OBJECT_SELF, ActionAttack(oPC)); |
Revenir en haut | |
Altrorm Novice Messages: 6 |
Salut et tout d'abord merci pour ta reponse
En effet le problème des paroles venait simplement du ActionSpeakString, je l'ai changé en SpeakString et maintenant ca marche. J'ai egalement ajouté les ClearAllAction() et ActionAttack(), mais les creatures... n'aparaissent toujours pas -_-' J'ai testé pas mal de trucs, j'ai verifié les resref, le tag du WP, j'ai essayé de les faire spawn via un trigger (ce qui ne marche pas), de les faire apparaitre via un EffetSummonCreature... mais j'ai rien trouvé. Je suis sur que c'est un truc tout bete mais la... je seche^^" Donc si quelqu'un a une idée... P.S Je vient de remarquer que je me suis betement trompé de forum, en effet je scripte sous nwn 1 :s (enfin, ceci dit je pense pas que ca change grand chose, le nwscript etant resté globalement identique) |
Revenir en haut | |
orange angel Ecuyer Messages: 45 Localisation: Belgique |
Et au passage, ya trois petites fautes d'orthographe que tu peux corriger dans tes dialogues:
- Foutus gardes, ne prend pas de e sauf si tous les gardes sont des femmes - Moi qui avais, première personne du singulier se conjugue avec S à l'imparfait - On n'est pas assisté , le participe ne prend pas de s quand on l'accorde avec on. Voilou voilou ! _________________ Alors que le monde allait à sa perte, l'ange descendit du ciel et, d'un battement d'aile couleur soleil couchant, il rétablit la paix et l'harmonie |
Revenir en haut | |
Claudius33 Grand Sage du Conseil Messages: 547 |
Tout a l'air correct (encore que je n'ai pas pratiqué sous NWN1).
Essayes une méthode plus brutale en remplaçant GetNearestObjectByTag par GetObjectByTag pour vérifier que le spawning des créatures se fait bien. |
Revenir en haut | |
Altrorm Novice Messages: 6 |
Orange==> Je te remercie, j'ai redigé mes dialogues un peu a l'arrache
Sinon j'ai deja essayé avec un GetObjectByTag, et ca marche pas mieu, j'ai surement fait une bete connerie quelque part, mais la... je voit pas :s |
Revenir en haut | |
Claudius33 Grand Sage du Conseil Messages: 547 |
As tu essayé de mettre l'animation à FALSE dans le CreateObject? Comme tu es en mode combat ça gêne peut être.
|
Revenir en haut | |
Altrorm Novice Messages: 6 |
Oui, j'ai essayé ca, helas pas plus de resultats
J'ai egalement tenté d'enlever le mode combat du joueur avec un ClearAllActions(sait on jamais)... toujours rien, je commence a desesperer un peu, je croit que je vais passer a autre chose et y revenir plus tard... ou carrément changer le deroulement de mon combat^^" |
Revenir en haut | |
Altrorm Novice Messages: 6 |
Problème résolu en codant a la barbare; l'editeur ne voulant apperament pas créer de creatures provenant de la palette personalisée je les ai prealablement spawn dans une autre zone et les ai amené dans le combat via un JumpToObject() (quand je disais codage de barbare... :°)
En tout cas merci pour le coup de main, pluche |
Revenir en haut | |
Page 1 sur 1 ¤
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum