Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > Perdu dans les scripts
Perdu dans les scripts
Par Nikles le 10/12/2002 à 14:21:50 (#2751875)
Voila je cherche a faire un portail qui teleporterai un p.j dans plusieurs salles diferentes, 3 en fait via un dialogue demandant au p.j ou il souhaite se rendre . Niveau1,2 ou 3 . pour le dialogue j'ai trouver mais pôur le teleporter je bloque quelqu'un pourait t'il m'ecrire un script vite fait s'il vous plait .
merci d'avance .
Je recherche toujours la reponse a cette eternelle questions : Pourquoi ?
Par eMRaistlin le 10/12/2002 à 14:32:31 (#2751982)
Mais le mieux, si tu maitrise pas trop le script, c'est que dans le OnActionTaken, tu mette ceci :
Reponse 1
void main()
{
AssignCommand(GetPCSpeaker(),ActionJumpToLocation(GetWaypointByTag("TAG_DU_WP1")));
}
Reponse 2
void main()
{
AssignCommand(GetPCSpeaker(),ActionJumpToLocation(GetWaypointByTag("TAG_DU_WP2")));
}
Reponse 3
void main()
{
AssignCommand(GetPCSpeaker(),ActionJumpToLocation(GetWaypointByTag("TAG_DU_WP3")));
}
Par Nikles le 10/12/2002 à 14:34:17 (#2752000)
Je recherche toujours la reponse a cette eternelle question : pourquoi?
Par Nikles le 10/12/2002 à 14:35:59 (#2752025)
Je recherche toujours la reponse a cette eternelle question : pourquoi?
Par Mastokk le 10/12/2002 à 14:39:19 (#2752065)
void main ()
{
object oCreature = GetPCSpeaker() ;
AssignCommand(oCreature, ActionJumpToObject(GetObjectByTag("TAG_DU_WP_CIBLE"))) ;
}
Tu mets ca sur le Action taken de tes dialogues où il doit y avoir téléportation en oubliant pas de mettre les Waypoints correspondants aux points d'arriver et de remplacer leur nom dans le script (Tu dois sauvegarder ton script sous 1 nom différent par Waypoint destinations bien sûr).
normalement ça marche.
erf trop tard...
Edit\ en effet, il manquait une parenthèse
Par Nikles le 10/12/2002 à 14:57:53 (#2752268)
:D
Je recherche toujours la reponse a cette eternelle question : pourquoi?
Par Iridian le 10/12/2002 à 15:09:17 (#2752397)
Par Nikles le 10/12/2002 à 15:13:22 (#2752437)
Merci encore ;)
Je recherche toujours la reponse a cette eternelle question : pourquoi?
Par Cassin le 10/12/2002 à 16:51:06 (#2753294)
e recherche toujours la reponse a cette eternelle question : pourquoi?
Pourquoi y a-t-il toujours une paranthèse en trop ou en moins ? ;) :D :mdr:
Désolé... :maboule:
Par Taern le 10/12/2002 à 18:58:38 (#2754517)
Personnelement, j'utiliserait un seul script qui recupere une variable attribuée durant le dialogue, et qui le collerait au tag TLP_, et je ferait les tag des WP d'arrivée en consequence.
Ah ça m'intéresse :) Je ne vois pas comment on pourrait faire l'économie de 2 scripts dans ce cas de figures. Dans ce cas ça ne représente pas grand-chose, mais quand il s'agit d'une conversation qui propose plus d'une dizaine de choix, ça peut être très intéressant :)
Merci de m'éclairer :ange:
Par Baltord Vlad Mortem le 10/12/2002 à 19:24:38 (#2754771)
Provient du message de Taern
Merci de m'éclairer :ange:
*allume une torche*
Voila ma poule.
Bon ok je sors désolé :rasta:
Par Taern le 10/12/2002 à 21:13:16 (#2755660)
Provient du message de Baltord Vlad Mortem
Voila ma poule.
Retourne dans ta fosse vil suceur de sang :doute:
Par Baltord Vlad Mortem le 10/12/2002 à 21:35:33 (#2755841)
Par eMRaistlin le 10/12/2002 à 21:50:18 (#2755952)
Donc, dans ton dialogue, tu peut touot simplement mettre :
SetLocalInt(oPC,"vers_loc",k);, puis a la fin de ton dial, tu fais un
JumpToLocation(GetWPByTag("WP_"+IntToString(GetLocalInt(oPC,"vers_loc"))));
Donc, tu n'a qu'une ligne pour gerer toute tes téléportation.
Evidemment, sur un evenement aussi simple, ca semble pas vraiment interressant, mais c'est une astuce qui me sert regulierement (a partir du moment ou tu maitrise tes tag apres, bien sur ^^)
Par coolstar le 11/12/2002 à 1:48:58 (#2757315)
:D
Par eMRaistlin le 11/12/2002 à 1:57:19 (#2757338)
Tu appeles tout tes Waypoints comme ca :
WP_ARRIVE_1
WP_ARRIVE_2
WP_ARRIVE_3
...
WP_ARRIVE_10
Puis, au lieu de mettre 10 fois :
JumpToObject(GetWaypointByTag("WP_ARRIVE_1"));
JumpToObject(GetWaypointByTag("WP_ARRIVE_2"));
JumpToObject(GetWaypointByTag("WP_ARRIVE_3"));
...
JumpToObject(GetWaypointByTag("WP_ARRIVE_10"));
tu met :
JumpToObject(GetWaypointByTag("WP_ARRIVE_"+IntToString(GetLocalInt(oPC,"arrive")))));
du coup, il contruira le nom du waypoint en fonction de l'INT contenu sur ta variable locale.
Encore une fois, ca necessite un controle total de tes tag/noms/resref, et pour une fonction aussi basique que celle ci, ce n'est pas forcment interessant (vu que de toute facon, tu va devoir faire appel a 10 fonction différente pour le SetLocalInt(oPC,"arrive") qui va avec l'utilisation de ceci.
Mais ca peut se reveler interessant si tu fais des quêtes evolutives, et que tu affecte a un objet un INT progressif qui determine le cours de la quete (entre autre) ou si tu as des long scripts a developper qui dependent de cette variable (donc, tu economise du texte, donc du temps machine.)
Par coolstar le 11/12/2002 à 2:21:22 (#2757407)
:merci: :merci: :merci:
Par Taern le 11/12/2002 à 16:49:00 (#2761938)
@Balty
J'amène la bouffe si tu veux. T'aime le saucisson à l'ail ? :ange:
Par Baltord Vlad Mortem le 11/12/2002 à 19:15:21 (#2763291)
Mais je constate que notre amitié s'est éteinte comme un feu de bois le jour ou l'éternité m'a été offerte... C'est regrettable.
( Bon sinon stop, les modos y vont mordre :p )
JOL Archives 1.0.1
@ JOL / JeuxOnLine