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 23/11/2024 09:28:47
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
Charietto Acolyte Messages: 25 |
En fait, j'ai plusieurs problèmes différents ici, et donc de multiples questions!
1er problème: Le PJ rencontre un monstre à l'entrée d'un donjon. Le monstre doit fuir à la première calotte qu'il reçoit vers un WP situé sur un déclencheur (qui le détruit alors qu'il est hors de vue du personnage). La seconde partie fonctionne bien, mais la première (faire fuir le monstre) ne marche pas systématiquement. Parfois il fuit, parfois il ne fuit pas. Ai-je raté quelque chose dans le script? Le monstre cesse le combat: NWScript :
#include "NW_I0_GENERIC" void main() { int nDommage = 20; object oPC = GetLastDamager(); if ( GetPercentageHPLoss( OBJECT_SELF ) <= nDommage ) return; else { SurrenderToEnemies (); SpeakString (""); ExecuteScript ("script_fuite",OBJECT_SELF); } } La fuite: NWScript :
void main() { object oPNJ= GetObjectByTag("monstre_lache_01"); object oFuite=GetWaypointByTag("WP_fuite_01"); AssignCommand(oPNJ,ActionMoveToObject(oFuite,TRUE,100.0f)); } 2e problème: Un monstre s'enfui lorsque le PJ passe sur un déclencheur (ça marche), se dirige vers un WP situé prés d'un groupe de monstres en poussant des cris (ça marche), et devient hostile une fois arrivé sur un déclencheur situé auprés du WP (ça marche). Par contre, bien qu'hostile, il n'attaque pas le PJ; il faut que ce soit le PJ qui initie le combat. Le script rendant le PNJ hostile (je pense que le problème vient de là): NWScript :
void main() { object oTraitre= GetObjectByTag("traitre_alerte"); ChangeToStandardFaction(oTraitre, STANDARD_FACTION_HOSTILE); } 3e problème: Bon, celui-là, j'ai fais plusieurs tentatives, mais aucune n'a fonctionné, et je ne vois pas trop comment m'en dépétrer. 2 monstres voient le PJ arriver. Ils sont à proximité d'une porte verrouillée. L'un deux a la clef. Comment faire pour que celui qui a la clef aille à la porte, l'ouvre, passe de l'autre côté suivi de son compagnon, et reverrouille la porte. Je pensais, naïf que je suis , que le PNJ ouvrirai la porte tout seul comme un grand pour aller au WP situé de l'autre côté (puisque même dans la campagne officielle, on voit des monstres ouvrir les portes tous seuls!), mais non. J'ai bien vu quelque scripts sur le forum destinés à faire ouvrir ou fermer des portes par un PNJ, mais je ne vois pas comment les lier entre eux pour que les PNJs accomplissent les actions voulues: Les PNJs voient le PJ (ou le PJ déclenche leur action en passant sur un déclencheur, afin dêtre sur que les PNJ ne commenceront pas leur action trop tard), se déplacent vers un WP situé devant la porte, le PNJ avec la clef ouvre la porte, les 2 vont au WPs situés derrière la porte, le PNJ avec la clef la referme. Question subsidiaire (Rien à voir avec les 3 premières!): J'ai trois PNJs dans une pièce, un homme et une femme du peuple, et un aristocrate. Je les ai juste posés sur la carte pour l'instant, je n'ai pas modifié leur script ou changé quoique ce soit, je ne leur ai même pas encore mis leurs dialogues. Je visite la zone ingame pour vérifier un commerçant qui se trouve à proximité, et là, ô surprise, voilà t'y pas que l'aristo vire hostile et commence à se mettre sur la tronche avec la femme du peuple, sous le regard perdu de l'homme du peuple. Je vérifie leurs factions, les trois font partis de la populace et sont neutres. Alors pourquoi cet affligeant épisode de la lutte des classes? Dernière édition par Charietto le 06/06/2006 17:16:43; édité 1 fois
|
Revenir en haut | |
adn2 Acolyte Messages: 23 |
Pour le 1, je ferais tout en un seul script, les execute script, j'suis pas très pote avec.
NWScript : #include "NW_I0_GENERIC" void main() { int nDommage = 20; object oPC = GetLastDamager(); location lFuite = GetLocation(GetWaypointByTag("WP_fuite_01")); if ( GetPercentageHPLoss( OBJECT_SELF ) <= nDommage ) return; else { SurrenderToEnemies (); SpeakString (""); ActionForceMoveToLocation(lFuite, TRUE, 100.0f); } } |
Revenir en haut | |
adn2 Acolyte Messages: 23 |
Pour le 2, tu peux utiliser ActionAttack ou DetermineCombatRound
NWScript : void main() { object oPC = GetFirstPC(); //determine le pc que tu veux attaquer object oTraitre= GetObjectByTag("traitre_alerte"); ChangeToStandardFaction(oTraitre, STANDARD_FACTION_HOSTILE); AssignCommand(oTraitre, ActionAttack(oPC)); } |
Revenir en haut | |
adn2 Acolyte Messages: 23 |
voila, celui la est moins simple mais il devrait donctionner
NWScript :
//sur le onenter du 1er trigger void main() { object oDoor = GetObjectByTag("tag porte"); object oMonster1 = GetObjectByTag("tag de celui qu'a la cle"); object oMonster2 = GetObjectByTag("tag de son pote"); object oPC = GetEnteringObject(); location lFuite = GetLocation(GetWaypointByTag("WP_FUITE")); if (GetIsPC(oPC)) { AssignCommand(oMonster1, ActionOpenDoor(oDoor)); AssignCommand(oMonster2, ActionWait(3.0)); //le tps que lotre ouvre AssignCommand(oMonster1, ActionDoCommand(ActionForceMoveToLocation(lFuite, TRUE))); AssignCommand(oMonster2, ActionDoCommand(ActionForceMoveToLocation(lFuite, TRUE))); DelayCommand(5.0, DestroyObject(OBJECT_SELF)); } } puis sur le trigger derrière la porte NWScript : void main() { object oDoor = GetObjectByTag("tag porte"); object oEnter = GetEnteringObject(); if (GetTag(oEnter) == "tag du monstre") //arrange toi ac le action wait pr que l'otre soit aussi derriere //j'ai pas de meilleurs soluce la { AssignCommand(oDoor, ActionCloseDoor(oDoor)); SetLocked(oDoor, TRUE); DestroyObject(OBJECT_SELF); } } |
Revenir en haut | |
Charietto Acolyte Messages: 25 |
Merci, ça fonctionne, mes monstres sont vraiment trouillards maintenant!
Pour mon problème de noble hyperaggressif: aucune idée du pourquoi du problème, je l'ai résolu en effaçant ce personnage et en en remmettant un autre à la place. Cette fois il n'est plus aggressif, pourtant, c'est exactement le même à tout point de vue. Chuis perplexe, mais bon, ça marche, donc tout va bien. |
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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