Restitution de la location d'un PJ

Répondre
Partager Rechercher
Sur mon module, je sauvegarde régulièrement la position du pj dans la bdd bioware pour pouvoir la restituer dans le çadre d'un module persistant.
jusqu'ici ca va...

Sur le onClientEnter de mon module je récupère la dernière position du perso dans la base et si elle existe, je fais un

AssignCommand(oPC,JumpToLocation(MaLocation));

ok sauf que ça marche pas... apparemment y'a un problème de synchronisation entre le chargement du module et le fait que je lui demande de jumper

Donc j'essaye un:

AssignCommand(oPC,ActionDoCommand(JumpToLocation(MaLocation)));

...marche pas non plus

J'essaye autre chose:

DelayCommand(1.0,AssignCommand(oPC,JumpToLocation(MaLocation)));

Et là cela fonctionne ! mais le DelayCommand ça ne me plait pas ! Que se passe-t-il si le module met 3 plombes pour se charger ...je reviens dans me premier cas?

Est-ce donc là la bonne solution? Sinon quelle est la bonne.

Merci
__________________
MadCat
Si tu lance en serveur (comme ca doit etre le cas apres lecture de ton poste) ce script s'execute sur le onClient enter ... donc rien a voir avec le chargement du module.

Et Si tu ne veux pas mettre de delayCommand (a cause de ta fobi (surement) du mange ressource... je pense pas que 1 seconde soit gros ... surtout que tesPJs ne se connect pas par vague de 100 ... A moin que tu es une charette comme PC je ne voix pas ton probleme.
Merci de me répondre Tyrion

J'ai bien lancé le module en mode serveur.
Cependant lorsque le client se connecte, il doit bien charger l'area (c'est vrai je n'ai pas été clair mais je voulais parler du chargement de l'area et non du module).
Et bien si je ne met pas le DelayCommand sur le JumpToLocation, le jump ne fonctionne pas.

En fait je voulais savoir si le DelayCommand(1.0,AssignCommand(oPC,JumpToLocation(MaLocation))); sur le onClientEnter de l'area était la bonne solution à adopter pour que ça fonctionne.

Et dans le cas contraire, comment était restauré la position des PJ dans les autres modules.
Tu n'as pas le choix. La première zone va obligatoirement se charger, car le DelayCommand (un délai de 0,1 suffit) est nécessaire.

Ce que je te conseille, c'est de créer une sorte de "zone tampon" dans ton module, entièrement vide et faisant 2x2, avec la StartLocation. Tu l'appelle "Bienvenue dans mon module à moi !" et dès que le joueur arrive dans cette zone tu l'envoie à sa dernière position. Voilà
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés