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 19:51:24
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 |
warpShadow Légende vivante Messages: 363 Localisation: Perpignan |
Volà mon idée :
X possède un instrument, il a appris l'Ode à l'Eau grâce à un dialogue, et il a maintenant un parchemin dans son inventaire. Quand il l'utilise, le dialogue s'ouvre, avec une liste de toutes les musiques qu'il connait (ici, il n'y a que l'Ode à l'eau). Il décide donc de jouer l'ode à l'eau, et rien ne se passe. Dans une fôret, il se place sur un piedestal contenant un trigger, qui attend qu'on joue "le bal de la forêt" en étant à l'intérieur du trigger pour faire une action. X joue donc sur ce piedestal l'Ode à l'Eau, et rien ne se passe. Puis X va sur un lac, il trouve un autre piedestal, avec un trigger qui attend qu'on joue "l'Ode à l'Eau". Il se place donc dessus, et joue la bonne musique, donc le trigger réagit et execute une action. Voilà, cela vous semble-t-il possible ? de mon côté je commence que je pense arriver à faire, je posterai sur ce topic. Merci de vos conseils et de votre aide ^^ ++ Je vais faire une liste avec ce que j'ai réussit à faire et ce qui a été fait. Ouvrir le dialogue si utilisation du parchemin : OK Proposer une musique dans le dialogue si apprise : Systeme D utilisé Le trigger attend une musique précise : OK Les branches du dialogues de musique font réagir le trigger : OK L'action s'effectue si la musique correspond au trigger : OK --------------------------- Je poste ici la solution pour ceux qui la veulent : On crée donc : - Un marchand qui vend des instruments et le parchemin des musiques - Un objet qui fera le parchemin des musiques, avec pouvoir utilisation illimité - Des objets qui feront les partitions des différentes musiques - Un trigger POUR LE TRIGGER : OnEnter : NWScript :
/***************************** ********************/ /* Created By: Shadow & Djezebel */ /***************************** ********************/ void main() { object oPC = GetEnteringObject(); SetLocalInt(oPC, "Odeeau", 1); } OnExit 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. Maintenant créez un script dont le nom sera le même que le TAG du parchemin de musique : NWScript :
/***************************** ********************/ /* Created By: Shadow */ /***************************** ********************/ void main() { object oPc = GetItemActivator(); object oItem = GetItemActivated(); string sTag = GetTag(oItem); if (sTag == "TAG_ICI") // changer le tag { AssignCommand( oPc, ActionStartConversation( oPc, " NOM_DIALOGUE", TRUE, FALSE)); // mettre le nom du dialogue ici } } Il faut maintenant créer les partitions en leur donnant chacun un tag, par exemple pour la musique de l'eau "partitioneau". Créez ensuite un dialogue qui commence par "Quelle musique voulez vous jouer ?" Dans chaque réponse, mettez un titre d'une musique. SUR CHAQUE CONDITION D'EXECUTION DE REPONSES : NWScript :
/***************************** ********************/ /* Created By: Shadow & Djezebel */ /***************************** ********************/ #include "nw_i0_tool" int StartingConditional() { if(!HasItem(GetPCSpeaker(), "partitionXX")) return FALSE; return TRUE; } SUR CHAQUE ACTION CONSEQUENTE : NWScript :
/***************************** ********************/ /* Created By: Shadow & Djezebel */ /***************************** ********************/ void main() { object oPC = GetPCSpeaker (); effect eFX1 = EffectVisualEffect(36); object oColonne1 = GetNearestObjectByTag("Colonneeau1"); object oColonne2 = GetNearestObjectByTag("Colonneeau2"); object oColonne3 = GetNearestObjectByTag("colonneeau3"); object oColonne4 = GetNearestObjectByTag("Colonneeau4"); object oColonne5 = GetNearestObjectByTag("Colonneeau5"); object oColonne6 = GetNearestObjectByTag("colonneeau6"); if (GetLocalInt(oPC, "Odeeau") == 1) { // On place les effets DelayCommand(05.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eFX1, oColonne1)); DelayCommand(10.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eFX1, oColonne2)); DelayCommand(15.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eFX1, oColonne3)); DelayCommand(20.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eFX1, oColonne4)); DelayCommand(25.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eFX1, oColonne5)); DelayCommand(30.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eFX1, oColonne6)); // On detruit les colonnes DelayCommand(45.0, DestroyObject(oColonne1)); DelayCommand(50.0, DestroyObject(oColonne2)); DelayCommand(55.0, DestroyObject(oColonne3)); DelayCommand(60.0, DestroyObject(oColonne4)); DelayCommand(65.0, DestroyObject(oColonne5)); DelayCommand(70.0, DestroyObject(oColonne6)); } } Il faut ensuite créer les fameuses colones qui doivent, ici, bloquer une porte, et bien leur donner les bons tags. Et voilà ! Les noeud de dialogue de chaque musique ne seront disponibles que quand le joueur aura les partitions qui corresponent. Enjoy et merci à Djezebel. _________________ Asphia Module RP Médiéval Fantastique pour Neverwiner Nights Dernière édition par warpShadow le 10/07/2006 11:06:45; édité 6 fois
|
Revenir en haut | |
Djezebel Héros Messages: 252 |
Salut !
Ton idée est très originale, félicitations ! ^^ Je pense que tu pourrais faire ainsi : quand ton personnage entre dans le trigger, il a une variable qui se met à 1. Exemple : 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. Et quand il sort, ça se remet à 0. 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. A présent, dans ton dialogue, lorsqu'il joue l'ode à l'eau, dans l'action conséquente, tu fais un : 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. Ainsi, si le joueur est sur le trigger, il se passera quelque chose, et sinon, tu peux tout de même jouer un petit air. J'espère que ça marche (je l'ai fais à main levée) et que ça t'aidera. |
Revenir en haut | |
warpShadow Légende vivante Messages: 363 Localisation: Perpignan |
Super, j'essaie de faire quelque chose avec ça, merci ^^
[Edit :] Super, j'ai réussit à compiler les script Je pense que ça marche, néanmoins il faut maintenant scripter les actions à faire en cas de musique jouée au bon endroit : Il y a toujours une entrée de temple, mais inaccessible à cause de je ne sais quoi, par exemple des piliers (comme ceux au début de HotU), et lorsque la musique est jouée, ces piliers disparaissent dans un effet de lumière bleue (pour le lac, la couleur varie en fonction du reste hein. Une idée pour m'aider ? merci ^^ _________________ Asphia Module RP Médiéval Fantastique pour Neverwiner Nights |
Revenir en haut | |
Djezebel Héros Messages: 252 |
Donc à la place de "ce que tu veux qu'il se passe", tu dois faire :
- un effet de lumière sur des colonnes - détruire des colonnes. Ces colonnes ont un tag (dans mon exemple "Colonne1" et "Colonne2", donc tu devrais pouvoir le récupérer en faisant : NWScript :
object oColonne1 = GetNearestObjectByTag("Colonne1"); object oColonne2 = GetNearestObjectByTag("Colonne2"); DestroyObject(oColonne1); DestroyObject(oColonne2); Pour ce qui est de l'effet visuel, tu as le choix : soit tu choisis un sort et tu appliques l'effet visuel (vfx) en mettant un : NWScript :
effect eFx = EffectVisualEffect(36); ApplyEffectToObject(DURATION_TYPE_INSTANT,eFX , oColonne1); ApplyEffectToObject(DURATION_TYPE_INSTANT,eFX , oColonne2);// idem sur la seconde Tu as aussi la possibilité de créer les colonnes de lumière (CreateObject) et de les enlever au bout d'un certain temps, après c'est à toi de voir. ^^ |
Revenir en haut | |
warpShadow Légende vivante Messages: 363 Localisation: Perpignan |
je pense que ce sera super comme ça, merci beaucoup à toi
_________________ Asphia Module RP Médiéval Fantastique pour Neverwiner Nights |
Revenir en haut | |
warpShadow Légende vivante Messages: 363 Localisation: Perpignan |
J'ai fini ! je poste tout en premier post
merci ! +++ _________________ Asphia Module RP Médiéval Fantastique pour Neverwiner Nights |
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