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 13:50:15
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 |
P.Patoche Chevalier Messages: 70 Localisation: France 77 |
Bonjour a toutes et a tous, voilà je suis dans une impasse je ne trouve pas comment faire ce script, j'explique sa fonction
Je lance un dialogue via une item que j'ai dans mon inventaire, cette item est active dans toutes les zones, mais je voudrais soit active de la zone 1 a la zone 100 mais que le dialogue ne se lance pas dans la zone 101 et 102, avec une phrase du style « vous ne pouvez utiliser cette item dans ses lieux » voici les scripts en fonction ( les chiffres sont un exemple) Script d'activation de l'item : ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// Scripte_1 void main() { object oPc = GetItemActivator(); object oItem = GetItemActivated(); string sTag = GetTag(oItem); if (sTag == "PIERRE_DE_RAPPEL") { AssignCommand(oPc,ActionStartConversation(oPc,"mon_dial",TRUE)); } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Dialogue ; « mon_dial » Voulez-vous partir ? Oui. (lance le scripte « scripte_2 » Non. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Scripte_2 void main() { // "Tag point de passage" object oPortal = GetObjectByTag("NW_PIERRE_RAPPEL"); if (GetIsObjectValid(oPortal) == TRUE) { // "Tag point de passage" string sTag = "NW_PIERRE_RAPPEL"; object oClicker = GetItemActivator(); object oTarget = GetObjectByTag(sTag); AssignCommand(oClicker, ClearAllActions()); AssignCommand(oClicker, PlaySound("as_mg_telepout1")); AssignCommand(oClicker,JumpToObject(oTarget)); AssignCommand(oClicker, ActionDoCommand(ClearAllActions())); } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// dans l'attente d'une réponse, merci bien a vous et bon jeux. Patoche. |
Revenir en haut | |
Fanboy Acolyte Messages: 23 |
trés simple a faire.
dans ton script1 su rergarde SI le tag d'object activé = PEIRRE_DE_RAPPEL il suffit de rajouter a ce IF "et que le tage de la zone du PC est différente de zone 101, et pareil pour la zone 102. ce qui devrait donner ca : NWScript :
void main() { object oPc = GetItemActivator(); object oItem = GetItemActivated(); string sTag = GetTag(oItem); if (sTag == "PIERRE_DE_RAPPEL" && GetTag(GetArea(oPC)) !="101" && GetTag(GetArea(oPC))!="102") // "101" et "102" doivent correspondre au tag exact de tes 2 zones { AssignCommand(oPc,ActionStartConversation(oPc,"mon_dial",TRUE)); } } "101" et "102" doivent correspondre au tag exact de tes zones... ca déclenchera le dialogue donc partout sauffe dans ces 2 zones.. a la suite tu peut rajouter un if pour que si toujours stag = pierre de rappel et que le tag de la zone est = cet fois a "101" ou "102" cela envoi un mésage au joueur. _________________ Kikoo |
Revenir en haut | |
P.Patoche Chevalier Messages: 70 Localisation: France 77 |
Merci bien pour ta reponce mais desole sa ne veut pas compiler !!!
|
Revenir en haut | |
Fanboy Acolyte Messages: 23 |
j'ais mis oPC au lieu du oPc ^^
je l'ai fait sans l'editeur mais ca marchera trés bien.. remplace les oPC que j'ai mis par des oPc _________________ Kikoo |
Revenir en haut | |
P.Patoche Chevalier Messages: 70 Localisation: France 77 |
Je suis desoler je l'est pas vue merci pour tes reponces rapide.
bon la je m'enerve, je sais que la commande pour le massage sais "SendMessageToPC" mais j'arrive pas la l'integret dans le script ( je sais je suis nul mais je me soigne) peut ton me montré ?? svp merci bien Patoche |
Revenir en haut | |
Black Knight Grand Maître Chanteur du Conseil Messages: 1031 Localisation: Fin fond du trou du cul du monde |
Hmm sa dépend ou tu veux le place! ^^
NWScript : void main() { object oPc = GetItemActivator(); object oItem = GetItemActivated(); string sTag = GetTag(oItem); if (sTag == "PIERRE_DE_RAPPEL" && GetTag(GetArea(oPC)) !="101" && GetTag(GetArea(oPC))!="102") // "101" et "102" doivent correspondre au tag exact de tes 2 zones { AssignCommand(oPc,ActionStartConversation(oPc,"mon_dial",TRUE)); } else { SendMessageToPC(oPc, "Vous ne pouvez utiliser le portail dans cette endroit!"); } } _________________ [http] |
Revenir en haut | |
P.Patoche Chevalier Messages: 70 Localisation: France 77 |
Merci bien c'est juste comme je le voulais (j'ai encore des progres a faire).
Patoche. |
Revenir en haut | |
Fanboy Acolyte Messages: 23 |
le mieux je pense serait d'imbriquer un if car la solution proposer marchera que si tu a qu'un objet activable dans ton module
suffit que tu intégré un 2eme objet pour que ca pose probleme.. je propose ca, : NWScript :
void main() { object oPc = GetItemActivator(); object oItem = GetItemActivated(); string sTag = GetTag(oItem); if (sTag == "PIERRE_DE_RAPPEL") // l'objet activer { if (GetTag(GetArea(oPC)) =="101" ||GetTag(GetArea(oPC))=="102") // "101" et "102" doivent correspondre au tag exact de tes 2 zones { SendMessageToPC(oPc, "Vous ne pouvez utiliser le portail dans cette endroit!"); } else { AssignCommand(oPc,ActionStartConversation(oPc,"mon_dial",TRUE)); } }//fin du premier if // ici pour placer un autre objet activable.. }// fin du main faut pas te faire de reporche, vu la situation je pense que pour placer le méssage (en cas d'autre objet a activé j'entend) passe par une imbrication de if..et c'est pas forcément évident a trouver.^^ ca demande toujours un temps de réflexion si tu y a réflechi c'est bien que tu sentait qu'il y avait un truc .... la comme ca a la suite du 1er IF tu pourra rajouter un IF pour l'object activable suivant.. un 1er if poour déterminer l'objet utiliser.. un autre imbriquer au premier pour savoir si le PJ n'est ou n'est pas dans les zone concerner.. si il y est méssage Sinon conversation.en d'autre terme l'IF imbrique va géré les conditions que tu souhaite pou tel ou tel object activable.. enfin aprés y avoir réfléchi ^^ je pense que c'est le plus logique d'imbriquer 2 if. _________________ Kikoo |
Revenir en haut | |
Black Knight Grand Maître Chanteur du Conseil Messages: 1031 Localisation: Fin fond du trou du cul du monde |
Citation : faut pas te faire de reporche, vu la situation je pense que pour placer le méssage (en cas d'autre objet a activé j'entend) passe par une imbrication de if..et c'est pas forcément évident a trouver.^^ ca demande toujours un temps de réflexion si tu y a réflechi c'est bien que tu sentait qu'il y avait un truc ....
Ouch j'ai mal a la tête maintenant la comme ca a la suite du 1er IF tu pourra rajouter un IF pour l'object activable suivant.. un 1er if poour déterminer l'objet utiliser.. un autre imbriquer au premier pour savoir si le PJ n'est ou n'est pas dans les zone concerner.. si il y est méssage Sinon conversation.en d'autre terme l'IF imbrique va géré les conditions que tu souhaite pou tel ou tel object activable.. enfin aprés y avoir réfléchi ^^ je pense que c'est le plus logique d'imbriquer 2 if. _________________ [http] |
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