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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Sauvagarde de position et connection admin

Par Kray le 4/7/2002 à 5:02:40 (#1754698)

B'soir à tous.

J'ai deux questions à vous soumettre!

La première :

Est-ce possible, via script ou configuration, de sauvegarder la position d'un personnage, pour qu'à sa reconnection, il réapparaisse non pas au point normal mais au même endroit qu'il a déconnecté?

La deuxième :

Le "server admin password" sert à quoi? Comment se connecter au serveur à distance?

Merchi d'avance :)

Par Lumina le 4/7/2002 à 11:21:00 (#1755535)

Pour se connecter au serveur à distance, je ne sais pas.
Mais pour le probleme de position, je vais tenter une solution.

Tout d'abord, il est impossible de sauvegarder des données entre deux sessions d'un module. Donc les solutions ne sont applicables qu'à des modules permanents.

Ensuite, trois approches possibles :
* La sauvegarde reguliere dans le temps de la position des personnages : trop couteux
* La sauvegarde au moment ou le personnage quitte : pas certain de fonctionner
* Des points de sauvegarde (qui se déclenchent automatiquement ou pas)

Je vais écrire la seconde solution, mais je ne peux pas la tester. Si on me dit qu'elle ne fonctionne pas, alors j'essayerai la troisieme solution.

1) Creer un objet qui servira à mémoriser les positions. Il doit avoir un tag unique, dans mon exemple c'est Tag_de_SaveObject.

2) A placer dans OnClientEnter :

// recuperation de position du personnage
// à l'entree du module (pour NwN v1.19)
// auteur : Lumina
// création : 4 Juillet 2002
// derniere modification : aucune (v1.0 #1)
// installation : module properties -> Events -> OnClientEnter

void main()
{
object oPC = GetEnteringObject();
object oSaveObject = GetObjectByTag("Tag_de_SaveObject");
if (GetIsPC(oPC) && GetIsObjectValid(oSaveObject))
{
string sLocationList = "loc";
location lLoc = GetLocalLocation(oSaveObject, sLocationList+GetName(oPC));
AssignCommand(oPC, ActionJumpToLocation(lLoc));
}
}


3) A placer dans OnClientLeave :
// sauvegarde de position du personnage
// à sa sortie du module (pour NwN v1.19)
// auteur : Lumina
// création : 4 Juillet 2002
// derniere modification : aucune (v1.0 #1)
// installation : module properties -> Events -> OnClientLeave

void main()
{
object oPC = GetExitingObject();
object oSaveObject = GetObjectByTag("Tag_de_SaveObject");
if (GetIsPC(oPC) && GetIsObjectValid(oSaveObject))
{
string sLocationList = "loc";
location lLoc = GetLocation(oPC);
SetLocalLocation(oSaveObject, sLocationList+GetName(oPC), lLoc);
}
}


Enfin bon, je rappelle que ce n'est pas du tout certain de fonctionner.
La méthode avec les points de sauvegarde, ce sera un peu la meme chose mais avec "OnUse" au lieu de "OnClientLeave"

Par ZeDuckMaster le 4/7/2002 à 11:45:19 (#1755615)

c'est sympa ca comme script ! :)
ce qui serait bien c'est que tu créé 2 chtites fonctions dans un fichier d'include :
genre SavePosition(object oPC); et RestorePosition(object oPC);

comme ca on pourrait tous s'en servir directement, non ?

Par Kray le 4/7/2002 à 11:54:58 (#1755646)

Merci bien Lumina :)

Mais qu'est-ce qu'on ferait sans toi? :p

Bon, pour plus de sécurité, si je met ça en OnHeartBeam, ça risque pas de... Surcharger un peu?

Par Sir Baltord le 4/7/2002 à 13:58:13 (#1756258)

Quelqu'un a testé alors ?
Si ca marche Lumina... je t'épouse ! Hum non ? Certaine ? :(

Rah toutes pareilles ces elfes...

JOL Archives 1.0.1
@ JOL / JeuxOnLine