La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 05/05/2024 10:40:33


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
arain gend
Légende vivante
Inscrit le: 24 Mai 2003
Messages: 371
Localisation: quecpar en france
Répondre en citant
Posté le : 22/08/2004 12:54:50 Sujet du message : changements de zone

je voudrais faire un scriptqui fait que le joueur est teleporté dans une nouvelle zone en passant par une zone de transitions qui est censé mené ailleurs mais uniquement quand il a remplis certain objectif.

voila merci d'avance.

ps: je cherche un volontaire pouir m'expliquer le nwscripts me contacter par mp.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Longbow
Grand Sage du Conseil
Inscrit le: 10 Déc 2003
Messages: 638
Localisation: Orléans
Répondre en citant
Posté le : 22/08/2004 13:37:39 Sujet du message :

Hum, hum...

Si je comprends bien, tu veux une zone de transition à deux directions:
- qd la condition n'est pas remplie
- qd la condition (quête sans doute) est remplie.

Allons-y !!
NWScript :
// A placer dans le OnClick de la zone de transition
void main()
{
  object oClicker = GetClickingObject();

// si la condtion est remplie...
    if(GetLocalInt(GetModule(), "Quest") >= 20)
    {AssignCommand(oClicker,JumpToObject(GetWaypointByTag("WP_Remplie")));}

    // si la condition n'est pas remplie
    else
    {AssignCommand(oClicker,JumpToObject(GetWaypointByTag("WP_Non_Remplie")));}

}
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.

_________________
Rex illeteratus
Quasi Asinus Coronatus
Jean de Salisbury
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
arain gend
Légende vivante
Inscrit le: 24 Mai 2003
Messages: 371
Localisation: quecpar en france
Répondre en citant
Posté le : 22/08/2004 13:42:16 Sujet du message :

merci a premiere vue ça ressemble a ce que je cherche mais comment je fais pour choisir la condition?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Longbow
Grand Sage du Conseil
Inscrit le: 10 Déc 2003
Messages: 638
Localisation: Orléans
Répondre en citant
Posté le : 22/08/2004 14:16:17 Sujet du message :

hum, hum...

Alors là on entre effectivement dans les délices du nwscript...

C'est la ligne
if(GetLocalInt(GetModule(), "Quest") >= 20)
qui est importante...

Je prends un exemple simple, la condition est la mort du gardien de cette zone. Dans le OnDead de celui-ci, tu modifies la variable Quest avec le script suivant (la variable passe à 20)

NWScript :

// OnDead du Gardien
void main()
{
// SetLocalInt veut dire modification de la variable
SetLocalInt(GetModule(), "Quest", 20);
}
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.


Si je reviens sur le 1e script... Le GetLocalInt permet de regarder et de vérifier la variable (elle est à 20 la condition est remplie, la téléportation est modifiée...)

Bon courage
_________________
Rex illeteratus
Quasi Asinus Coronatus
Jean de Salisbury
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
arain gend
Légende vivante
Inscrit le: 24 Mai 2003
Messages: 371
Localisation: quecpar en france
Répondre en citant
Posté le : 23/08/2004 08:21:30 Sujet du message :

merci mais j'ais toujours pas tout compris tu peut m'expliquer comment je determine la condition.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Laxam
Légende vivante
Inscrit le: 12 Avr 2004
Messages: 425
Localisation: Lyon
Répondre en citant
Posté le : 23/08/2004 18:34:48 Sujet du message :

Heu.... be c'est à toi de nous dire dans quelle condition tu veux que ton Pj aille dans la fameuse zone.. non ?Confused
_________________
Mon site NWN nouvelle version et mon module Boisperdu en ligne ! Et maintenant un FORUM
La première version française de la doc du NPC Activities (version 2.0)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Jaheira 007
Seigneur
Inscrit le: 24 Juin 2004
Messages: 223
Répondre en citant
Posté le : 23/08/2004 19:16:24 Sujet du message :

Oui comme par exemple: le joueur ne peut aller à la zone suivante que si et seulement si il a tué un monstre, ou si il a parlé à un pnj pour mettre le journal à jour.
Dis nous ce que tu veux exactement.
_________________
La nature reprendra ses droits ici, aprés notre passage.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
arain gend
Légende vivante
Inscrit le: 24 Mai 2003
Messages: 371
Localisation: quecpar en france
Répondre en citant
Posté le : 23/08/2004 19:53:57 Sujet du message :

la condition sera de remplir une quete.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Longbow
Grand Sage du Conseil
Inscrit le: 10 Déc 2003
Messages: 638
Localisation: Orléans
Répondre en citant
Posté le : 23/08/2004 23:14:39 Sujet du message :

Hum, hum...

Cela nous avance guère... Mais avançons... Si la quête se termine par une conversation de récompense par exemple.

1. Dans la conversation, à la ligne du PNJ du genre "Prenez ceci pour vous récompensez"

Dans l'onglet "Actions Conséquentes" tu places le script suivant
NWScript :


void main()
{
// SetLocalInt veut dire modification de la variable
    SetLocalInt(GetModule(), "Quest", 20);


    GiveGoldToCreature(GetPCSpeaker(), 50);

   
    GiveXPToCreature(GetPCSpeaker(), 200);
}
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.


2. Ainsi dans la zone de transition, tu peux placer le script
NWScript :
// A placer dans le OnClick de la zone de transition
void main()
{
object oClicker = GetClickingObject();

// si la condtion est remplie...
if(GetLocalInt(GetModule(), "Quest") >= 20)
{AssignCommand(oClicker,JumpToObject(GetWaypointByTag("WP_Remplie")));}

// si la condition n'est pas remplie
else
{AssignCommand(oClicker,JumpToObject(GetWaypointByTag("WP_Non_Remplie")));}

}
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.


J'espère que cet exemple sera éclairant...
_________________
Rex illeteratus
Quasi Asinus Coronatus
Jean de Salisbury
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
arain gend
Légende vivante
Inscrit le: 24 Mai 2003
Messages: 371
Localisation: quecpar en france
Répondre en citant
Posté le : 24/08/2004 09:42:31 Sujet du message :

merci mais c'est pas assez eclairant pour moi. pour remplir la quete il faut tuer un monstre j'espere que ça te permetera de me donner le bon sripts.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Fantome
Ecuyer
Inscrit le: 06 Nov 2002
Messages: 63
Répondre en citant
Posté le : 24/08/2004 10:25:07 Sujet du message :

Hello,

si c'est la mort d'un monstre, reprend la solution que t'a écrit Longbow plus haut dans son exemple de gardien.
_________________
Arcantia
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Laxam
Légende vivante
Inscrit le: 12 Avr 2004
Messages: 425
Localisation: Lyon
Répondre en citant
Posté le : 24/08/2004 18:11:35 Sujet du message :

Si c'est la mort du monstre la fin de la quête, dans ce cas mets le script de longbow dans le OnDeath du monstre.
_________________
Mon site NWN nouvelle version et mon module Boisperdu en ligne ! Et maintenant un FORUM
La première version française de la doc du NPC Activities (version 2.0)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Eldorane
Héros
Inscrit le: 18 Oct 2003
Messages: 298
Localisation: Moselle
Répondre en citant
Posté le : 03/10/2004 03:42:33 Sujet du message :

Salut à tous,

j'ai copié ce script pour mon module, mais j'arrive pas à le faire fonctionner. J'ai trois cartes concernées :
- Relais du Sud
- Relais du Sud HS
- Campagne X

Le PJ démarre sur la carte Relais du Sud. Il va ensuite sur la carte Campagne X. Là il rencontre un PNJ avec qui il engage un dialogue. Ce dialogue affecte la variable SetLocalInt(GetModule(), "Relais_Mass", 20);.

Ensuite s'il veut revenir au relais, il se retrouve à la carte Relais du Sud HS.

J'ai créé sur la carte Relais du Sud un déclencheur nommé RELAIS_OK.
Sur la carte Campagne X un déclencheur X
Sur la carte Relais du Sud HS un déclencheur nommé RELAIS_HS

J'ai placé sur le ONCLIK du déclencheur X le script de Longbow adapté :

NWScript :

// Zone de transition conditionnelle
void main()
{
  object oClicker = GetClickingObject();

// si la condtion est remplie...
    if(GetLocalInt(GetModule(), "Relais_Mass") >= 20)
    {AssignCommand(oClicker,JumpToObject(GetWaypointByTag("RELAIS_HS")));}

// si la condition n'est pas remplie
    else
    {AssignCommand(oClicker,JumpToObject(GetWaypointByTag("RELAIS_OK")));}
}
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.


Seulement si je clique sur le déclencheur X, il ne se passe rien. Je dois le définir d'une manière particulière ? Ou lui donner une transition par défaut ? Ou bien j'ai l'impression de mélanger zones de transitions et points de passages...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
grosraoul
Ecuyer
Inscrit le: 10 Sep 2004
Messages: 60
Répondre en citant
Posté le : 03/10/2004 08:32:54 Sujet du message :

es tu sure que les objets qui ont pour tag RELAIS_HS et RELAIS_OK sont des waypoints ?
d'apres ce que tu dis , RELAIS_HS ,RELAIS_OK et X sont des declencheurs.

alors pour X c'est ok , normal que cela soit un declencheur, puisque c'est une zone de transition. Par contre d'apres le script, il faut que RELAIS_HS et RELAIS_OK soient des WAYPOINTS et non pas des déclencheurs.
si ce sont des déclencheurs c'est sur que ca ne marchera pas.

les déclencheurs sont les objets que tu dessines à la souris, les waypoints c'est les petits triangles jaune avec un drapeau bleu.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Laxam
Légende vivante
Inscrit le: 12 Avr 2004
Messages: 425
Localisation: Lyon
Répondre en citant
Posté le : 03/10/2004 09:22:12 Sujet du message :

Personnellement je n'utiise pas la fonction GetWayPointByTag car j'ai souvent constaté des dysfonctionnement, j'utilise plutôt GetObjectByTag et ça marche très bien même si l'objet est un WayPoint.
_________________
Mon site NWN nouvelle version et mon module Boisperdu en ligne ! Et maintenant un FORUM
La première version française de la doc du NPC Activities (version 2.0)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Eldorane
Héros
Inscrit le: 18 Oct 2003
Messages: 298
Localisation: Moselle
Répondre en citant
Posté le : 04/10/2004 00:38:28 Sujet du message :

heu.... je plâne un peu là...

il faudrait que je mette sur la première zone un déclencheur vers la Campagne X. Là dialogue avec le PNJ qui affecte la variable. Ensuite pour aller à la zone 3 ? Je met un déclencheur qui renvoi sur des waypoints ?Surprised

Pis je corrige le script en :

NWScript :

// Zone de transition conditionnelle
void main()
{
object oClicker = GetClickingObject();

// si la condtion est remplie...
if(GetLocalInt(GetModule(), "Relais_Mass") >= 20)
{AssignCommand(oClicker,JumpToObject(GetObjectByTag("RELAIS_HS")));}

// si la condition n'est pas remplie
else
{AssignCommand(oClicker,JumpToObject(GetObjectByTag("RELAIS_OK")));}
}
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.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Eldorane
Héros
Inscrit le: 18 Oct 2003
Messages: 298
Localisation: Moselle
Répondre en citant
Posté le : 04/10/2004 14:09:51 Sujet du message :

j'ai finalement réussi à le faire marcher mais je sais pas comment...

quelqu'un peu m'expliquer ?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
grosraoul
Ecuyer
Inscrit le: 10 Sep 2004
Messages: 60
Répondre en citant
Posté le : 04/10/2004 14:21:19 Sujet du message :

y'a pas de raisons que ca marche pas eldorane, le script que tu as mis est correct a condition que RELAIS_HS et RELAIS_OK soient des waypoint et non pas des declencheurs.
j'imagine que c'est ce que tu as fait non ? tu as remplacé tes declencheurs par des wp ?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Eldorane
Héros
Inscrit le: 18 Oct 2003
Messages: 298
Localisation: Moselle
Répondre en citant
Posté le : 04/10/2004 22:25:33 Sujet du message :

heu non, la seule chose que j'ai fait c'est GetWaypointByTag par GetObjectByTag dans le script. Je suppose que la solution était là.

Par contre j'ai du mal à faire la diférence entre les déclencheurs et les waypoints.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Laxam
Légende vivante
Inscrit le: 12 Avr 2004
Messages: 425
Localisation: Lyon
Répondre en citant
Posté le : 05/10/2004 18:58:29 Sujet du message :

Les déclencheurs ou trigger, sont des zones dessinées par tes soins qui servent à déclencher un évenement quand le joueur (ou un NPC) passe dessus, ils peuvent avoir la forme et la taille que tu veux. Les Waypoint ou point de passage, sont comme des petits drapeaux qui servent à localiser un point, pour par exemple y faire apparaître une créature, une note de carte ou encore faire quelque chose de particulier comme par exemple un effet visuel ou bien indiquer une destination (c'est ton cas, les waypoint sont pour toi des point de destination de ta téléportation du joueur.)

En espérant que ça éclaire ta lanterne.Razz
_________________
Mon site NWN nouvelle version et mon module Boisperdu en ligne ! Et maintenant un FORUM
La première version française de la doc du NPC Activities (version 2.0)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur 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 34.988ms