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 17:06:02
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 |
Heldar Seigneur Messages: 169 Localisation: France |
Mon 1er problème est tou bête mais j'ai regarder sur d'autres sujets et je n'ai trouvait que des scripts qui fonctionnait pas.Voilà, je voudrais quand parlant à un PNJ, le PJ soit teleporter à un waypoint 001.
Mon 2eme problème est plus compliqué(enfin je crois), je voudrais quand parlant à un pnj, ce dernier nous allie un autre PNJ. _________________ Heldar qui tue tous les monstres du soir. |
Revenir en haut | |
Panda Fou Grand Chevalier Messages: 101 Localisation: Qui me parle ? |
Voila déja pour la téléportation:
Citation : OBJECTIF / Commentaire : créer un évènement qui téléporte le joueur
Voilà, si vous voulez utiliser ça dans une conversation, vous mettez ce script dans ActionTaken dans la phrase quand le joueur sera téléporté. ATTENTION : Je conseille de mettre une phrase vide apres (End Dialog) qui aura lui le script, sinon la téléportation coupera la conversation, et ça a tendance à bugger. Le script a juste un changement, vous changez GetLastUsedBy(), par GetLastSpeaker. Puis pour un Trigger, vous mettez toujours le meme script dans "OnEnter" du Trigger. En changeant GetLastUsedBy(), par GetEnteringObject(). Le script dans le trigger a un super effet de surprise Vous pouvez aussi utiliser un délai avant la téléportation, pour cela, changez juste la ligne : AssignCommand( oPC, JumpToObject( oTarget)); Par : DelayCommand(5.0, AssignCommand( oPC, JumpToObject( oTarget))); Ici, le délai et de 5 secondes, pour 10 seconde, changez le 5.0 par 10.0 Voilà, c'est aussi simple que ça. NWScript :
void main () { object oPC = GetLastUsedBy(); if (GetIsPC(oPC)) { object oTarget = GetWaypointByTag ("wp_destination"); AssignCommand( oPC, JumpToObject( oTarget)); } /* warning: 1 unclosed block {} */ Tu peux aussi y ajouter des "effets visuels" pour que ce soit tout beau tout pleins. _________________ Suis-je fou ? -Panda Fou- |
Revenir en haut | |
Panda Fou Grand Chevalier Messages: 101 Localisation: Qui me parle ? |
J'ai encore trouvé ça dans mes fichiers, je te donnerait volontier le lien mais je ne m'en souvient plus.
Citation : Au mimimum, vous voudrez un PC qui parle avec un NPC mercenaire et que ce NPC se joigne au PC, ou le quitte si le PC le veut. Un paiement est aussi une bonne idée. Vous voudrez aussi (souvent) que le mercenaire soit loyal, et prévienne le PC avant d'être loué par un autre PC et de quitter le premier PC !
Pour que ce soit un autre pnj, tu met un dialogue où le pnj qui offre l'équipier lui demande de l'or ou quoi que ce d'autre et lorsque le pj a payé, tu fait un script faisant venir ou en téléportant (tu peux le faire maintenant ) l'équipier et voilà, le pj lui parle et il vient avec lui. A ce moment là ne mets pas le dialogue pour l'or au henchman mais plutot au pnj.La première ligne apparaît uniquement si le PC l'emploi, et offre une branche de conversation qui permet au PC de changer les options avec le mercenaire(comme le renvoyer). Pour ceci, sélectionnez l'onglet Text Appears When puis sélectionnez " nw_ch_tactic2 " comme script pour cette ligne. La seconde ligne du mercenaire apparaît uniquement si le mercenaire est employé, mais pas nécessairement par le PC. Cela permet au locuteur de savoir si le mercenaire est déjà employé par quelqu'un d'autre, et le préviendra de tout renvoie par le premier maitre. Pour celui ci, sélectionnez " nw_ch_tactics " dans l'onglet Text Appears When. Si la première ou seconde ligne n'apparaît pas, cela veut dire que le mercenaire est libre, donc la troisième ligne apparaît, permettant au PC de le louer. Les options du PC doivent inclure choisir ou non de l'employer. Si vous voulez que le mercenaire coûte 100 po, vous pouvez créer ce script dans le Text Appears When du " Je veux vous employer " pour vérifier si le PC a assez d'argent: NWScript :
// * script: can_pay100 #include "NW_I0_PLOT" int StartingConditional() { return (HasGold(100,GetPCSpeaker())); } Puis pour payer le mercenaire, voici le script qui va dans Action Taken de la même ligne du dialogue: 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, pour que le mercenaire se joigne au PC, ajoutez ce script dans [Actions Taken] de la ligne ou le mercenaire accepte: NWScript :
// * script: henchman_joins #include "nw_i0_henchman" void main() { if (GetIsObjectValid(GetHenchman(GetPCSpeaker())) == TRUE) { SetFormerMaster(GetPCSpeaker(), GetHenchman(GetPCSpeaker())); object oHench = GetHenchman(GetPCSpeaker()); RemoveHenchman(GetPCSpeaker(), GetHenchman(GetPCSpeaker())); AssignCommand(oHench, ClearAllActions()); } SetWorkingForPlayer(GetPCSpeaker()); SetBeenHired(); ExecuteScript("NW_CH_JOIN", OBJECT_SELF); } Finallement, pour permettre au PC de renvoyer le mercenaire, nous allons ajouter l'option dans la ligne de la branche de dialogue où le mercenaire est renvoyé. Nous ajoutons ce script dans le Action Taken de la lligne ou le mercenaire dit au revoir: NWScript :
// * script: henchman_leaves // * NPC mercenaire quitte le PC. // * A utiliser dans [Actions Taken] de la ligne ou le mercenaire part #include "nw_i0_henchman" void main() { SetFormerMaster(GetPCSpeaker(), OBJECT_SELF); RemoveHenchman(GetPCSpeaker()); ClearAllActions(); } Nous savons tout ce que nous avons besoin de savoir pour la conversation avec le mercenaire lui même. Nous allons maintenant créer le mercenaire lui même dans le Creature Wizard (ou copier une créature déjà crée) et ajouter quelques étapes supplémentaires. Onglet Basic - Conversation: Utilisez le dialogue que nous venons de créer en l'étoffant un peu si nécessaire. OngletAdvanced - Sound Set: Soyez sur de lui assigner un set de sons qu'il puisse dire en entier. Ca peut être n'importe lequel des mercenaires de la campagne officielle, ou un set de sons commencant par " Male... " ou " Female... " Inventaire - Quelques bonnes potions de soin sont indispensables. Si vous voulez qu'il ait une arme normalement non accessible pour son niveau (comme un arc avec des flèches illimitées comme ça ils n'en ont pas besoin), créez l'arme comme un objet de créature (creature item), mais quippez le dans l'emplacement normal des armes. Dans la campagne officielle, il y a aussi des objets avec des propriétés cachées qui immunusent les mercenaires contre Charme personne, domination et charme de masse. Personnellement, je préfère que mes mercenaires ne soient pas des sur hommes, c'est pourquoi je ne leur donne pas des objets spéciaux. Onglet Scripts - mettez les scripts indiquez: OnBlocked: nw_ch_ace OnCombatRoundEnd: nw_ch_ac3 OnConversation: nw_ch_ac4 OnDamaged: nw_ch_ac6 OnDeath: nw_ch_ac7 OnDisturbed: nw_ch_ac8 OnHeartbeat: nw_ch_ac1 OnPerception: nw_ch_ac2 OnPhysicalAttacked: nw_ch_ac5 OnRested: nw_ch_aca * OnSpawn: nw_ch_ac9 OnSpellCastAt: nw_ch_acb OnUserDefined: nw_ch_acd * Note: Le script OnRested (nw_ch_aca) peut être non existant, donc c'est une bonne idée de laisser l'emplacement vide, spéciallement si vous pensez exporter votre mercenaire. Il y a une astuce pour remplacer tous les scripts par défaut - surlignez le texte " nw_c2_default " dans chaque emplacement (enlevez la dernière lettre ou le dernier chiffre) et copiez " nw_ch_ac " à la place. Maintenant, nous avons un mercenaire basic qui suit le PC. Il se joint à votre cause, contribut avec ces compétences, écoute les ordres, vous quitte quand vous lui demandé et peut être réemployé. Il ne monte pas de niveau, et quand il meurt il ne réapparait pass, il reste mort (mais peut être réssucité. Je préfère que les mercenaires soient comme ça, mais si vous êtes un bon scripteur, vous pouvez regarder dans le script nw_i0_henchman et le script OnDeath du mercenaire. Vous pouvez ainsi utiliser des options dans votre propre module. Ainsi, notez que pour que votre mercenaire passe de niveau, vous devez en faire une copie. _________________ Suis-je fou ? -Panda Fou- |
Revenir en haut | |
Heldar Seigneur Messages: 169 Localisation: France |
j'ai éessayer la teleportation et elle marche pas.
sauf si on rajoute: [nwscript] }[/nwscript] _________________ Heldar qui tue tous les monstres du soir. |
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