La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 22/09/2024 06:39:35


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Eldorane
Héros
Inscrit le: 18 Oct 2003
Messages: 298
Localisation: Moselle
Répondre en citant
Posté le : 07/02/2005 01:34:43 Sujet du message : Déclencheurs de transition récupérant la variable [reglé]

Salut tout le monde !

Je voulais savoir quel était le moyen le plus simple de faire un déclencheur de type zone de transition mais invisible ?

Je souhaite que le joueur qui marche dessus ne le voit pas et qu'il soit téléporté.

Je vais en mettre plusieurs donc j'aimerai une solution simple, un peu comme les zone de transition qui sont faciles à mettre en place.
Dernière édition par Eldorane le 16/04/2005 02:27:24; édité 1 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Mars
Seigneur
Inscrit le: 31 Mar 2004
Messages: 199
Répondre en citant
Posté le : 07/02/2005 03:50:48 Sujet du message :

Moi je mettrais un trigger avec dans le OnEnter un script de téléportation du genre

Code :
void main()
{
object oPC = GetEnteringObject ();
object oDest = GetObjectByTag ("WP_Destination");
location lDest = GetLocation (lDest);
AssignCommand (oPC, ActionJumpToLocation(lDest));
}


Je n'ai pas l'éditeur sous la main donc il y a peut etre une erreur de syntaxe mais sinon ça devrait marcher.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 07/02/2005 07:01:25 Sujet du message :

petite correction ( sans l'editeur moi non plus, donc possibilité de reste de fautes... ) :

NWScript :
void main()
{
object oPC = GetEnteringObject();
object oDest = GetObjectByTag( "WP_Destination" );
location lDest = GetLocation( oDest );
AssignCommand( oPC, ClearAllActions() );
AssignCommand( oPC, ActionJumpToLocation( lDest ));
}
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
 
Athanagorn
Acolyte
Inscrit le: 12 Déc 2004
Messages: 38
Répondre en citant
Posté le : 07/02/2005 11:05:46 Sujet du message :

penser à verifier que oPC est bien un joueur, faute de quoi tous les objets commandables seront téléportés aussi.
 
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 : 07/02/2005 11:31:53 Sujet du message :

Et pour faire plus mieux bien et plus réutilisable, au lieu de coder en dur le nom du WP de destination et bien le stocker sur le trigger (je crois qu'on peut le faire dans les propriétés de l'objet). Comme ça il suffira de mettre le nouveau trigger et de signifier le tag du WP de destination dans une variable du trigger. Je sais pas si je suis hyper clair...

Ca donnerai un truc de ce genre :

NWScript :
void main()
{
object oPC = GetEnteringObject();
string sWP = GetLocalString(OBJECT_SELF, vWP);
object oDest = GetObjectByTag(sWP);
location lDest = GetLocation(oDest);
if (GetIsPC(oPC)) // si l'objet entrant est bien un joueur
  {
  AssignCommand( oPC, ClearAllActions() );
  AssignCommand( oPC, ActionJumpToLocation( lDest ));
  }
}
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.


sur le trigger tu mets une variable vWP, de type string et ayant pour valeur Tag_du_WP.

Ca devrait marcher non ?

Moi en général je n'utilise pas ActionJumpToLocation car soivent ça ne marchait pas, j'utilise plutôt ActionJumpToObject (là tu mets l'objet, ici ce serais oDest)
_________________
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 : 07/02/2005 13:12:23 Sujet du message :

lol ! j'y comprends rien Cool

Pourtant ça a l'air marrant tout ce que vous dites Sad


Donc je mets le script dans le ON Enter de la zone, ensuite je place des déclencheurs de type générique là où je veux et ensuite je tag le WP... heu non je... heu...

Comment je mets une variable au déclencheur ?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 07/02/2005 13:26:48 Sujet du message :

Deja le script c'est sur le OnEnter du trigger, ensuite tu place une variable sur ton trigger en fesant bouton droit sur le trigger > variables.
Ensuite la tu ajoute une variable
nom : vWP
type : string
valeur : tag_du_wp

par contre je pense qu'il serai mieu de remplacer sa :
NWScript :
object oDest = GetObjectByTag(sWP);
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.


par sa :
NWScript :
object oDest = GetWaypointByTag(sWP);
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.


Voilà ^^
_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Eldorane
Héros
Inscrit le: 18 Oct 2003
Messages: 298
Localisation: Moselle
Répondre en citant
Posté le : 07/02/2005 13:38:14 Sujet du message :

merci ! Je test ça de suite !!!!
 
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 : 07/02/2005 13:59:03 Sujet du message :

Même observation pour le GetWayPointByTag que pour le ActionJumpToLocation, j'ai eu des cas où ça ne marchaait pas et je n'ai jamais trouvé pourquoi alors j'utilise toujours le GetObjectByTag.

Sinon les explications de Ivellios sont bonnes, le trigger (déclencheur générique) à la place de ta zone de transition, la variable stockée dessus, le script dans le OnEnter du Triiger et le WayPoint à l'endroit de destination (qui peut très bien être dans une autre map), Par contre attention à bien mettre des nom différents à tes WP car moi il m'est arrivé d'avoir 2 noms identiques sur 2 map différentes et le joueur était téléporté au mauvais endroit mais si tu utilise une "norme" pour tes noms, il n'y a pas de raison d'en avoir en double (par exemple un tag du genre WP_nom de l'area_dest(car WP de destination)_numero avec ça le seul risque c'est que tu en ais en double dans la même map mais tu ne risque pas d'en avoir 50 sur la même map, tu peux facilement vérifier les noms.

Pour plus de conseils, voir sur mon site.
_________________
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 : 07/02/2005 14:34:50 Sujet du message :

ça marche pas... Crying or Very sad

J'ai créé un trigger (déclencheur générique), j'ai placé le script dans son oNEnter et j'ai ajouté ce trigger dans la palette (comme ça je peux le récupérer x fois)
Je fais juste là ?

L'erreur se situe au début du script, dans le
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.

il me dit : ERREUR : VARIABLE DEFINED WITHOUT TYPE
 
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 : 07/02/2005 14:42:18 Sujet du message :

Pardon, pardon, j'ai encore fais la même erreur que la dernière fois ou j'ai écrit un script sur la bibli de NWN (sans l'éditeur sous la main on fait parfois des erreurs), il faut mettre "vWP" et non vWP tout seul, ne jamais oublier les " Very Happy
_________________
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 : 07/02/2005 17:49:18 Sujet du message :

Au fait, j'ai pas précisé, tous ces triggers téléportent le PNJ toujours dans la même zone.
On peu pas encore simplifier ?


Aussi, il faut que ce soit le plus discret possible car les joueurs ne doivent pratiquement pas se rendre compte qu'ils ont étés téléportés !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Athanagorn
Acolyte
Inscrit le: 12 Déc 2004
Messages: 38
Répondre en citant
Posté le : 07/02/2005 17:49:22 Sujet du message :

Personnellement, j'aurais tendance à essayer ceci:

NWScript :
void main()
{
  object oPC = GetEnteringObject();
  string sWP = GetLocalString(OBJECT_SELF, "vWP");
  object oDest = GetWaypointByTag(sWP);
  if (GetIsPC(oPC)) // si l'objet entrant est bien un joueur
    AssignCommand( oPC, JumpToObject(oDest) );
}
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.


voire même à supprimer sWP et à l'intergrer dans GetWaypointByTag().
 
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 : 07/02/2005 19:22:01 Sujet du message :

 
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 : 07/02/2005 20:46:21 Sujet du message :

non, maintenant que j'ai testé et surtout compris le principe, ça va tout seul Smile

je testerai également la version de Athanagorn
 
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 : 08/02/2005 13:45:22 Sujet du message :

ça fonctionne parfaitement et ça simplifie nettement le travail !!!!

Merci pour votre aide !

Mais ce n'est que le début car on finit tout doucement les maps et je vais donc attaquer les scripts. Et comme on a pas de scripteur, je vais devoir demander la plupart des trucs ici.Confused
 
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 205.565ms