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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

changement d'area

Par Cradle_of_Borgir le 1/8/2002 à 17:47:07 (#1892000)

Probleme : un Pnj vient parler au Pj, revient, ouvre la porte de son maison, et rentre dedans.
Question : quel est la fonction qui pourra permettre au Pnj de l'area 01 a 02 ( en gros il est dans la ville, il va dans sa maison ) ?
Merci d'avance :merci:

Par El_viking le 1/8/2002 à 18:27:31 (#1892315)

Le plus simple est surement de placer un WayPoint la ou tu veux que le PNJ arrive dans la maison. Ensuite, quand tu veux le faire changer de zone, utilise la commande suivante :

object oPNJ = GetObjectByTag("pnj_TAG");
object oWP = GetObjectByTag("WayPointMaison_TAG");
AssignCommand(oPNJ,ActionJumpToObject(oWP);

Ca devrait le faire ;)

Par Gargantuel le 1/8/2002 à 19:16:52 (#1892682)

Attention : jump aura pour effet de téléporter le NPC à la cible.
Utilise plutot :
AssignCommand(oPNJ,ActionMoveToObject(oWP));

De plus le move a un parametre supplémentaire permettant de faire marcher le NPC ou de le faire courrir.

Par Cradle_of_Borgir le 1/8/2002 à 20:22:51 (#1893202)

Merci, j'ai utilisert la commande ke El_viking ma donner ki marche tres bien, mais le probleme c kil fait tt ce ke le script lui dit sauf d'ouvrir la porte, par contre si c moi ki l'ouvre il va dans l'autre zone, voila mon script :

object oPorte01 = GetObjectByTag("dt_house01");
object oMaire = GetObjectByTag("ct_maire");
object oWpmaire = GetObjectByTag("wp_maire");


void main()
{
ActionMoveToObject(oPorte01, FALSE, 30.0f);
if (GetIsOpen(oPorte01) == TRUE)
{
AssignCommand(oMaire, ActionJumpToObject(oWpmaire));
}
else
{
ActionOpenDoor(oPorte01);
AssignCommand(oMaire, ActionJumpToObject(oWpmaire));
}
}

et si vous pouvier encore m'aider ( je suis chiant mais la ), je pense avoir utiliser les bonne fonctions donc .....
En tt cas merci

Par Azharial del'Amrhyn le 1/8/2002 à 21:25:16 (#1893725)

Ton script fonctionne très bien à condition que le déclencheur soit le oMaire, si ton déclencheur est différent, alors il faut ajouter AssignCommand, comme ceci :

void main()
{
AssignCommand(oMaire, ActionMoveToObject(oPorte01, FALSE, 30.0f));
if (GetIsOpen(oPorte01) == TRUE)
{
AssignCommand(oMaire, ActionJumpToObject(oWpmaire));
}
else
{
AssignCommand(oMaire, ActionOpenDoor(oPorte01));
AssignCommand(oMaire, ActionJumpToObject(oWpmaire));
}
}

Personnellement, lorsque je lance une Action, j'ai toujours tendance à la lancer à partir de d'AssignCommand, ce qui permet d'être sur du subject sur lequel l'Action va porter.

Par Cradle_of_Borgir le 1/8/2002 à 22:54:15 (#1894504)

Ah cool, ca marche, merci, en plus jai reduit mon scripts, vu ke la porte est tjr fermé ... lol ben merci a tous c vraiment sympa

JOL Archives 1.0.1
@ JOL / JeuxOnLine