Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Perdu dans les scripts

Par Nikles le 10/12/2002 à 14:21:50 (#2751875)

Dans un premier temps bonjour a tous :)

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)

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.

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)

C'est encore moi ;) . Je tenais juste a preciser pour les gars a qui j'avais demander que ca y'est ma version de nwn marche parfaitement et vous aviez raison c'etait les drivers de la carte graphique . J'en ai pris des moin recent et ca marche, donc pour ceux qui ont une RADEON7200 comme moi si votre jeux bloque toute les 30 min cherchez pas c'est les drivers .

Je recherche toujours la reponse a cette eternelle question : pourquoi?

Par Nikles le 10/12/2002 à 14:35:59 (#2752025)

Je te remercie pour ton aide sympa ;)

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)

desoler mais ca marche pas ca me dit erreur unknow state is compiler j'ai mis le tag d'un waypoint et j'ai meme essayer avec le tag de l'autre portail pas grand chose . Honetement ca m'enerve faut faire tout un truc pour une simple teleportation je trouve que ils exagerent mais bon c'est un autre sujet ca si vous pouviez me dire ou j'ai deconer ce serait cool .:aide:
:D

Je recherche toujours la reponse a cette eternelle question : pourquoi?

Par Iridian le 10/12/2002 à 15:09:17 (#2752397)

si tu utilises le script de Mastokk (que je trouve plus clair meme s'il fait une ligne de plus), il manque je pense une fermeture de parenthese sur le AssignCommand.

Par Nikles le 10/12/2002 à 15:13:22 (#2752437)

Efectivement c'etait ca . Je tiens a tous vous remercier vous m'avait bien depaner :)
Merci encore ;)


Je recherche toujours la reponse a cette eternelle question : pourquoi?

Par Cassin le 10/12/2002 à 16:51:06 (#2753294)

Provient du message de Nikles
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)

Provient du message de eMRaistlin
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)

Ceux de mon rang n'ont pas de "fosse" cher ami, je t'inviterai un de ces 4 ;)

Par eMRaistlin le 10/12/2002 à 21:50:18 (#2755952)

Le principe est simple : tu peux faire des additions de string.

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)

Heeuuu, eMR... ça a l'air vraiment très cool ça (comme moi quoi!) , mais tu pourrais pas mettre un exemple plus probant (genre un Script avec 2 ou 3 destinations??)... Merci! :merci:

:D

Par eMRaistlin le 11/12/2002 à 1:57:19 (#2757338)

Bein, imaginons que tu ais 10 destinations possibles.

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)

:eek:



:merci: :merci: :merci:

Par Taern le 11/12/2002 à 16:49:00 (#2761938)

Pas bête en effet eMRaistlin, j'y avais pas pensé :p

@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)

L'ail, la croix, l'eau bénite, tu crois encore à ces légendes pour faire peur aux chtits vampires ?

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