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







La date/heure actuelle est 11/04/2025 04:14:41
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 |
Yoyo Seigneur ![]() Messages: 223 |
J'explique mon probleme:
Lorsque le PJ marche sur un déclencheur j'aimerais: 1 Qu'on ne puisse plus le controller 2 Qu'il avance tout seul pret d'une porte 3 Que la porte se dévérouille (C'est une porte vérouillée) 4 Que la porte s'ouvre 5 Que le PJ passe la porte (ver un Waypoint situé plus loin) 6 Que la porte se referme 7 Que la porte se revérouille 8 Et Que l'on puisse reprendre le controlle du PJ Voila ![]() ![]() _________________ BOUH! (je vous ai fait peur ??) désolé Vive moi Pas vive Securom |
Revenir en haut | ![]() ![]() ![]() |
Mathrim Cauthon Ecuyer Messages: 54 |
Je dirais qu'il faut:
1) Utiliser SetCutsceneMode pour que le PJ ne soit plus contrôlable 2) AssignCommand(oPC, ActionMoveToObject(GetObjectByTag("tagdelaporte"))); 3) Utiliser SetLocked pour déverrouiller la porte 4) et 5) AssignCommand(oPC, ActionMoveToObject(GetWaypointByTag("tagduwaypoint"))); 6 et 7) Utiliser un ActionDelay de 5 secondes puis un ActionCloseDoor et un SetLocked ![]() _________________ It's time to toss the dice. |
Revenir en haut | ![]() ![]() ![]() |
Lunshire Héros Messages: 259 Localisation: Ben ... Devant mon ordi bien sûr ! |
Sur le OnEnter du trigger
NWScript :
void main() { object oPC = GetEnteringObject(); object oWP = GetWaypointByTag("wp_1");//celui pres de la porte object oWP2 = GetWaypointByTag("wp_2"); object oDoor = GetObjectByTag("tagdelaporte"); if(GetIsPC(oPC)) { DelayCommand(0.5, SetCommandable(FALSE, oPC)); DelayCommand(1.0, AssignCommand(oPC, ActionMoveToObject(oWP, TRUE)));//le fait avancer jusqu'au WP1 if (GetLocked(oDoor) == TRUE) { DelayCommand(2.0, SetLocked(oDoor, FALSE)); DelayCommand(2.5, AssignCommand(oDoor, ActionOpenDoor(oDoor)));//ouvre la porte } DelayCommand(3.0, AssignCommand(oPC, ActionMoveToObject(oWP2, TRUE)));//le fait avancer jusqu'au WP2 if (GetLocked(oDoor) == FALSE) { DelayCommand(4.0, AssignCommand(oDoor, ActionCloseDoor(oDoor)));//ferme la porte DelayCommand(4.5, SetLocked(oDoor, TRUE)); } DelayCommand(5.0, SetCommandable(TRUE,oPC)); } } Voilà, après tu adapteras les DelayCommand parce que je pense que ça ne conviendra pas... Au moins ça compile ! ![]() _________________ Cogito ergo sum. |
Revenir en haut | ![]() ![]() ![]() |
Mathrim Cauthon Ecuyer Messages: 54 |
Forcément, dit comme ça, c'est plus clair...
_________________ It's time to toss the dice. |
Revenir en haut | ![]() ![]() ![]() |
Lunshire Héros Messages: 259 Localisation: Ben ... Devant mon ordi bien sûr ! |
C'est pas que c'est plus clair, c'est que c'est utilisable imméditemment.
![]() ![]() Je suis passé par là moi aussi ! ![]() _________________ Cogito ergo sum. |
Revenir en haut | ![]() ![]() ![]() |
Yoyo Seigneur ![]() Messages: 223 |
Ben en fait il y a comme un ch'ti probleme :
En fait dans mon module le perso active un levier et apres l'avoir activé le perso cours tout seul (effet voulue ![]() Alors il se passe: la porte s'ouvre (normale) MAIS le perso n'avance pas ![]() et au bout d'un moment la porte se referme (encore normale MAIS sans que le perso n'aie pus avancer) Mais si le perso quitte et re-entre dans le déclencheur (sans avoir activé le levier) Alors il se passe: la porte s'ouvre ET là, le perso avance vers le waypoint situé plus loin Et la porte se referme Donc j'aimerai savoir comment faire pour que des la 1er fois que le perso entre dans le déclencheur (donc en ayant activé le levier) la porte s'ouvre, le perso passe et la porte se referme Voila ![]() ![]() _________________ BOUH! (je vous ai fait peur ??) désolé Vive moi Pas vive Securom |
Revenir en haut | ![]() ![]() ![]() |
Lunshire Héros Messages: 259 Localisation: Ben ... Devant mon ordi bien sûr ! |
Pourquoi tu ne ferais pas ce que je te propose... Au lieu de mettre ce script sur le trigger, tu supprimes ce trigger, et tu mets le script sur le OnUsed de ton levier... Je pense que ça fonctionnera mieux...
Récapitulons : NWScript :
////////////////////////////// ///////////////// ////////////////////////////// ///////////////// void main() { object oPC = GetLastUsedBy(); object oWP = GetWaypointByTag("wp_1");//celui pres de la porte object oWP2 = GetWaypointByTag("wp_2"); object oDoor = GetObjectByTag("tagdelaporte"); if(GetIsPC(oPC)) { DelayCommand(0.5, SetCommandable(FALSE, oPC)); DelayCommand(1.0, AssignCommand(oPC, ActionMoveToObject(oWP, TRUE)));//le fait avancer jusqu'au WP1 if (GetLocked(oDoor) == TRUE) { DelayCommand(2.0, SetLocked(oDoor, FALSE)); DelayCommand(2.5, AssignCommand(oDoor, ActionOpenDoor(oDoor)));//ouvre la porte } DelayCommand(3.0, AssignCommand(oPC, ActionMoveToObject(oWP2, TRUE)));//le fait avancer jusqu'au WP2 if (GetLocked(oDoor) == FALSE) { DelayCommand(4.0, AssignCommand(oDoor, ActionCloseDoor(oDoor)));//ferme la porte DelayCommand(4.5, SetLocked(oDoor, TRUE)); } DelayCommand(5.0, SetCommandable(TRUE,oPC)); } } Et là, je pense que ça doit marcher... _________________ Cogito ergo sum. |
Revenir en haut | ![]() ![]() ![]() |
Yoyo Seigneur ![]() Messages: 223 |
Ben une fois que j'active le levier le perso va au 1er Waypoint et la porte souvre MAIS le perso bouge plus
En fait j'ai trouvé comment il fallait faire NWScript : ////////////////////////////// ///////////////// ////////////////////////////// ///////////////// void main() { object oPC = GetLastUsedBy(); object oWP2 = GetWaypointByTag("wp_2"); object oDoor = GetObjectByTag("tagdelaporte"); if(GetIsPC(oPC)) { DelayCommand(0.5, SetCommandable(FALSE, oPC)); DelayCommand(1.0, AssignCommand(oPC, ActionMoveToObject(oWP2, TRUE)));//le fait avancer //jusqu'au WP2 (a ajuster selon la longueur qui separe le PC de la porte) DelayCommand(2.0, SetLocked(oDoor, FALSE)); DelayCommand(2.5, AssignCommand(oDoor, ActionOpenDoor(oDoor)));//ouvre la porte (a ajuster DelayCommand(4.0, AssignCommand(oDoor, ActionCloseDoor(oDoor)));//ferme la porte DelayCommand(4.5, SetLocked(oDoor, TRUE)); DelayCommand(5.0, SetCommandable(TRUE,oPC)); } } _________________ BOUH! (je vous ai fait peur ??) désolé Vive moi Pas vive Securom |
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