JeuxOnLineForumsPlusConnectés : 640 (sites) | 1165 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > teleportation d'un portailA vers un point B RSS
   
Répondre
Partager Outils Rechercher
Avatar de sojkowski
sojkowski
Dauphin
 
Avatar de sojkowski
 

teleportation d'un portailA vers un point B

Code PHP:
void main()
{
object oPc;        
string sTagDest;
sTagDest="Destination_B";

oPc GetEnteringObject();

AssignCommand(oPcActionJumpToObject(GetObjectByTag(sTagDest)));

j'aimerai copier ce script ds le onused du portailA, le script s'enregistre normalement, mais qd j'essai de me teleporter bah il teleporte pas
Lien direct vers le message - Vieux
Avatar de Archamedes_Fr
Archamedes_Fr
Alpha & Oméga
 
Avatar de Archamedes_Fr
 
Tu as placé un Déclencheur générique ou un point de transition ?

Tu tests en DM ou en perso ? Parce que les DM n'active pas les Déclencheurs lorsqu'ils passent dessus. Mais peuvent les activer manuellement.

Tu dis avoir mis le script dans le OnUsed ? Mais il n'y a pas de OnUsed sur un trigger... il y a éventuellement OnClick...

Mais si tu mets ça: oPc = GetEnteringObject();
Ton script a plus sa place dans le OnEnter.

Si faut cliquer, il y a GetClickingObject() ou un truc dans le genre.
Lien direct vers le message - Vieux
Avatar de sojkowski
sojkowski
Dauphin
 
Avatar de sojkowski
 
marche pas non plus...



je veux juste que qd je vais sur un teleporteur avec mon perso il me teleporte à un autre endroit...


donc si j utilise le portail (onused), il me teleporte.

je suis ds une salle avec un dragon d'argent, il garde le portail vers l'exterieur.


j'aimerai simplement qd je clique sur ce portail qu'il me tranferst sur une autre zone. j'utilise un portail taggué "Destination_A" et j'aimerai aller vers un object invissible taggué "Destination_B"

tout les teleporteurs teleportent, j'aimerai que le mien aussi
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
A priori, tes problèmes viennent du fait que tu n'as pas encore très bien compris l'importance du système d'évènement dans le NWScript, par exemple ici, tu utilises GetEnteringObject() (= Obtenir l'objet en train d'entrer) dans un évènement OnUsed (= Lorsqu'utilisé , sous entendu, lorsque l'objet sur lequel se trouve cet évènement est utilisé).
Rien qu'avec la traduction tu devrais voir que ça ne va pas...

Maintenant, pour trouver simplement la fonction qu'il te faut il te suffit de taper "use" dans le filtre de fonction (en haut à droite dans l'éditeur de script), ce qui t'affiche quelques fonctions dont la fonction qui va te ramener le bon objet : GetLastUsedBy() !!
Maintenant tu sélectionnes "GetEnteringObject" dans ton script, tu double-clique sur "GetLastUsedBy" dans la liste des fonctions et tu compiles. Oh miracle, ça marche (pourvu que ton tag soit exact évidemment) !
Lien direct vers le message - Vieux
Avatar de sojkowski
sojkowski
Dauphin
 
Avatar de sojkowski
 
Code PHP:
void main()
{

string sTagDest;
sTagDest "VOTRE_TAG_DE_DESTINATION";

object oPc;
//oPc = GetEnteringObject(); //spawn directement
oPc GetLastUsedBy(); //utiliser un teleporteur
object oWP GetObjectByTag(sTagDest);
if(
GetIsObjectValid(oWP))
AssignCommand(oPcActionJumpToObject(oWP));
else
;

compilé et a mettre dans onused de votre portail....

voilà! cette fois ci ça marche tres bien.


quel galére! faut bien me comprendre ce n'est que mon 3 ieme jours de programation avec aurora...

j'ai qd meme tiré ça du script pour le spawn en fonction des alignement...


j'ai eu un autre probleme, plus mecanique je dirai.. qd j'utilisai le portail le perso avait du mal a aller dessu car y a trop d'objet autour...

bref ça marche!


autre petite question. si je désactive le portail par default et que je souhaite réactiver le portail qd je parle a un pnj.. je dois voir la fonction onactived?
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
Ca existe pas OnActived non ?

De toutes façon, tous les problèmes de ce genre se traite de la même façon : on utilise les variables locales à un objet.

Il s'agit de variables qu'on attache à un objet bien particulier grâce aux fonctions :
SetLocalInt(), SetLocalFloat(), SetLocalString(), SetLocalLocation() et SetLocalObject().
Ces 5 fonctions ont les mêmes paramètres : SetLocalTruc( objet auquel on attache la variable(object), nom de la variable (string), valeur de la variable(du type spécifié par Truc));

Exemple :
Code PHP:
//Ce code attache une variable entière au PC qui est 
//en train de parler, de nom "bFirstTalk" et de valeur 1

//il s'agit d'un script sur une "action conséquente" dans une discussion

void main() {
    
    
object oPC GetPCSpeaker();
    
    
SetLocalIntoPC"bFirstTalk");
    

Maintenant, il faut pouvoir récupérer ces variables à partir d'un autre script, ceci se fait avec les fonctions :
GetLocalInt(), GetLocalFloat(), GetLocalString(), GetLocalLocation() et GetLocalObject().

Ces 5 fonctions ont toutes les mêmes arguments : GetLocalTruc( objet auquel est attaché la variable à récupérer(object), nom de la variable à récupérer(string);

Elles renvoient la valeur de la variable du nom et du type spécifié attaché à l'objet spécifié. (Les fonctions SetLocal*() ne renvoient rien)

Exemple :
Code PHP:
//Ce code se trouve sur une autre branche de la discussion du
//script précédent, cette fois-ci il s'agit d'une "condition d'exécution"
//ce script va vérifier que le PJ a déjà parlé au moins une fois au PNJ

int StartingConditional() {
    
    
object oPC GetPCSpeaker();
    
    
//Attention, la casse du nom de variable est importante
    
return ( GetLocalIntoPC"bFirstTalk" ) );//n'oublions pas que 
    //toute valeur différente de 0 est considéré comme "VRAI" en NWScript
    


Avec ces renseignements, tu devrais être en mesure de faire ce que tu veux, sinon, demandes de l'aide.
Lien direct vers le message - Vieux
Avatar de sojkowski
sojkowski
Dauphin
 
Avatar de sojkowski
 
Citation:
Provient du message de Jedaï
Ca existe pas OnActived non ?

De toutes façon, tous les problèmes de ce genre se traite de la même façon : on utilise les variables locales à un objet.

Il s'agit de variables qu'on attache à un objet bien particulier grâce aux fonctions :
SetLocalInt(), SetLocalFloat(), SetLocalString(), SetLocalLocation() et SetLocalObject().
Ces 5 fonctions ont les mêmes paramètres : SetLocalTruc( objet auquel on attache la variable(object), nom de la variable (string), valeur de la variable(du type spécifié par Truc));

Exemple :
Code PHP:
//Ce code attache une variable entière au PC qui est 
//en train de parler, de nom "bFirstTalk" et de valeur 1

//il s'agit d'un script sur une "action conséquente" dans une discussion

void main() {
    
    
object oPC GetPCSpeaker();
    
    
SetLocalIntoPC"bFirstTalk");
    

Maintenant, il faut pouvoir récupérer ces variables à partir d'un autre script, ceci se fait avec les fonctions :
GetLocalInt(), GetLocalFloat(), GetLocalString(), GetLocalLocation() et GetLocalObject().

Ces 5 fonctions ont toutes les mêmes arguments : GetLocalTruc( objet auquel est attaché la variable à récupérer(object), nom de la variable à récupérer(string);

Elles renvoient la valeur de la variable du nom et du type spécifié attaché à l'objet spécifié. (Les fonctions SetLocal*() ne renvoient rien)

Exemple :
Code PHP:
//Ce code se trouve sur une autre branche de la discussion du
//script précédent, cette fois-ci il s'agit d'une "condition d'exécution"
//ce script va vérifier que le PJ a déjà parlé au moins une fois au PNJ

int StartingConditional() {
    
    
object oPC GetPCSpeaker();
    
    
//Attention, la casse du nom de variable est importante
    
return ( GetLocalIntoPC"bFirstTalk" ) );//n'oublions pas que 
    //toute valeur différente de 0 est considéré comme "VRAI" en NWScript
    


Avec ces renseignements, tu devrais être en mesure de faire ce que tu veux, sinon, demandes de l'aide.


je crois que l'aide a mon stade est plus qu'indispensable. j'arrive pas trop a mis faire a ce code

Mais bon, j'arrive dejà a reperer ce qui m'interresse et a purger le reste ds un script.

Pis bon, y a dejà pas mal de possibilité avec l'editeur lui meme. J'ai du mal a comprendre faut script sur les dialogues par exemple. Car pratiquement tout est dans l'editeur...

en 1 semaine, je suis arrivé à

utiliser completement un dialogue , mise a jour de journal et de quetes. Avec tous ce que ça comporte, gain xp, d'objet etc..
imposser des conditions etc...

j'ai toutes les possibilités de spawn, respawn etc

bref, tous ce qu'a fais bioware pour le mode solo, je pourrais le refaire.. y a tous sur ce forum! il est génial

j'ai besoin plus que 2 choses pour module:

1) une gestion de score en de clan (alignement mauvais / bon)

2) la perte ou le gain de d'alignement suivant certains actes...
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > teleportation d'un portailA vers un point B
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 22h35.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite