La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/09/2024 03:29:48


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Heldar
Seigneur
Inscrit le: 09 Sep 2004
Messages: 169
Localisation: France
Répondre en citant
Posté le : 25/09/2004 09:12:36 Sujet du message : Teleportation et don d'équipier

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Panda Fou
Grand Chevalier
Inscrit le: 15 Nov 2003
Messages: 101
Localisation: Qui me parle ?
Répondre en citant
Posté le : 25/09/2004 10:02:35 Sujet du message :

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 Smile

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 {} */
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.

Tu peux aussi y ajouter des "effets visuels" pour que ce soit tout beau tout pleins.
_________________
Suis-je fou ?
-Panda Fou-
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Panda Fou
Grand Chevalier
Inscrit le: 15 Nov 2003
Messages: 101
Localisation: Qui me parle ?
Répondre en citant
Posté le : 25/09/2004 10:20:17 Sujet du message :

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 !

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()));
}
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.


Puis pour payer le mercenaire, voici le script qui va dans Action Taken de la même ligne du dialogue:


NWScript :
// * script: pay100


void main()
{
  TakeGoldFromCreature(100, GetPCSpeaker(), TRUE);
}
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 :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.


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();
}
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.

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.
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 Very Happy) 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.
_________________
Suis-je fou ?
-Panda Fou-
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Heldar
Seigneur
Inscrit le: 09 Sep 2004
Messages: 169
Localisation: France
Répondre en citant
Posté le : 25/09/2004 15:01:48 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
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


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 37.255ms