
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.







La date/heure actuelle est 01/05/2025 10:50:36
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 |
phil76 Héros Messages: 262 Localisation: Rouen |
Dans le script suivant, j'utilise
DelayCommand(0.2,SetCommandable(FALSE,oPC)); puis DelayCommand(20.0,SetCommandable(TRUE,oPC)); Afin que le PC ne soit plus commandable pendant le script. Mais ça ne fonctionne pas, si je clique avec la souris, cela interrompt le script. Y a t'il une autre méthodes ? NWScript :
//: ![]() //:: FileName ari_gotobed //: ![]() // Fonction pour creer une creature void ActionCreate(string sCreature, location lLoc) { CreateObject(OBJECT_TYPE_CREATURE, sCreature, lLoc); } void main() { // declaration des objets Aribeth, PC et fantome de Fentick object oAri = GetObjectByTag("Aribeth"); object oPC = GetPCSpeaker(); object oFentick = GetObjectByTag("Fentick"); // oArmor contient le tag de l'armure: Aribethsrobe // oSexy = "Aribethsexy" tag de la tenue de nuit object oArmor = GetItemInSlot(INVENTORY_SLOT_CHEST, oAri); object oBlade = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oAri); object oSexy = GetObjectByTag("Aribethsexy"); object oBed = GetObjectByTag("ARI_BED"); // oWP est le lit de Aribeth object oWP = GetNearestObjectByTag("WP_BED_IN", oAri); SetLocalObject(oAri,"NW_L_FORMERMASTER", GetMaster(oAri)); // de Aribeth, sPCroom chambre du PC string sCorridor = "ARI_TOBED1"; string sBedroom = "ARI_TOBED2"; string sPCroom = "PC_TOBED"; string strFentick = "fentick"; int nObjectType = OBJECT_TYPE_CREATURE; int bUseAppearAnimation = TRUE; location myLocation= GetLocation(GetObjectByTag(sBedroom)); RemoveHenchman(GetMaster(oAri), oAri); // Efface la liste d'actions AssignCommand(oAri, ClearAllActions()); AssignCommand(oPC,ClearAllActions()); // PC non commandable DelayCommand(0.2,SetCommandable(FALSE,oPC)); AssignCommand(oPC, ActionWait(1.0)); AssignCommand(oAri, ActionForceMoveToObject(GetObjectByTag(sCorridor), FALSE, 1.0, 60.0)); AssignCommand(oPC, ActionForceMoveToObject(GetObjectByTag(sCorridor), FALSE, 1.0, 60.0)); AssignCommand(oAri, ActionSpeakString("Bonne nuit, mon ami !")); AssignCommand(oPC, ActionWait(2.0)); AssignCommand(oPC, ActionSpeakString("Bonne nuit, Aribeth")); AssignCommand(oAri, ActionForceMoveToObject(GetObjectByTag(sBedroom), TRUE, 1.0, 60.0)); AssignCommand(oPC, ActionForceMoveToObject(GetObjectByTag(sPCroom), TRUE, 1.0, 60.0)); AssignCommand(oAri, ActionUnequipItem(oArmor)); AssignCommand(oAri, ActionUnequipItem(oBlade)); // Aribeth met sa tenue de nuit AssignCommand(oAri, ActionEquipItem(oSexy, INVENTORY_SLOT_CHEST)); // Aribeth se couche AssignCommand(oAri, ClearAllActions()); AssignCommand(oAri, JumpToObject(oWP)); DelayCommand(1.0, AssignCommand(oAri, PlayAnimation(ANIMATION_LOOPING_DEAD_FRONT, 1.0, 99999.0))); DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_IMP_SLEEP), oAri, 5.0)); // Apparition du fantome de Fentick AssignCommand(oFentick, ActionWait(4.0)); ActionCreate(strFentick, myLocation); // Le PC entend des bruits AssignCommand(oPC, ActionSpeakString("(Vous entendez du bruit en provenance de la chambre de Aribeth")); AssignCommand(oPC, ActionWait(2.0)); AssignCommand(oPC, ActionSpeakString("(Aribeth parle quelqu'un")); AssignCommand(oPC, ActionWait(2.0)); AssignCommand(oPC, ActionForceMoveToObject(GetObjectByTag(sBedroom), TRUE, 1.0, 60.0)); AssignCommand(oPC, ActionSpeakString("Aribeth: Noon! Fentick ARRETE, tu me fais maaall! Aaahh")); AssignCommand(oPC, ActionWait(2.0)); AssignCommand(oPC, ActionSpeakString("Fentick: Viens Aribeth ! Donnes moi ta vie....tue le...venge toi")); AssignCommand(oPC, ActionWait(2.0)); AssignCommand(oPC, ActionSpeakString("Aribeth: Fentick non, laisse le! Pitie ! Aaaahh ! Noon")); DelayCommand(20.0, AddHenchman (oPC, oAri)); DelayCommand(20.0,SetCommandable(TRUE,oPC)); } Autre problème dans ce script, à la fin, le PJ attaque Fentick. Il y a 4 factions: PJ, Aribeth, Fentick et commoners (pour la faction Fentick, j'ai décoché la case "global") Ces factions sont toutes amicales entre elles au début. Quand j'attaque fentick, Aribeth devient hostile, et les commoners (clients de l'auberge) restent amicaux mais viennent voir ce qui se passe dans la chambre. Comment faire pour que: 1 - seul Fentick devienne hostile ? 2 - les commoners (clients) ne se déplacent pas ? |
Revenir en haut | ![]() ![]() ![]() |
Cassin Papa-poule(t) & poissard intemporel ![]() Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
phil76 a écrit : Comment faire pour que:
Si ta faction "Aribeth" est amicale (+ de 75) avec la faction "Fenthick", les PNJ de cette faction réagiront si les PNJ de l'autre faction sont attaqués.
1 - seul Fentick devienne hostile ? Pour ne pas que ça arrive, met-les en Neutres l'une envers l'autre, ça devrait marcher. _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | ![]() ![]() ![]() ![]() |
micka Grand Sage du Conseil ![]() Messages: 884 Localisation: /dev/null |
Et je pense que les commoners ne se déplacent pas pour voir se qui se passe, mais qu'ils sont hostiles envers Fenthick et Aribeth. Mais les gens du peuple n'attaquent pas, parce qu'il n'ont pas les moyens je pense.
Il ne faut pas qu'ils soient trop amicaux envers les pjs. |
Revenir en haut | ![]() ![]() ![]() |
phil76 Héros Messages: 262 Localisation: Rouen |
J'ai mis toutes les factions neutres vis à vis des autres et ça marche: Aribeth ne devient pas hostile et les clients de la taverne ne raplique plus dans la chambre quand j'attaque fentick.
Merci Cassin ! ![]() Bon il reste l'autre problème: comment empêcher d'interrompre le script ? Pour moi ce n'est pas un problème, je sais qu'à la fin de la conversation, je ne dois surtout pas toucher à la souris. Mais, bon si je fais un module, j'espère qu'il servira à d'autres que moi ! ![]() Peut être que c'est la période pendant laquelle le PJ est non commandable qui est trop courte ? J'ai mis 20 secondes, je vais augmenter ce délai pour voir. Ou alors, autre hypothèse: est ce qu'il ne faudrait pas encapsuler le NWScript :
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème. dans un "AssignCommand" ? |
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