La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/11/2024 22:20:59


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
nemesis_rebirth
Voyageur
Inscrit le: 20 Nov 2003
Messages: 3
Répondre en citant
Posté le : 25/11/2003 17:24:08 Sujet du message : se souvenir de l'nedroit de deco

Salut a tous!
Je me demandais si il était possible de ce que le serveur se "souvienne" de l'endroit ou un joueur a déco, et que quand celui ci se reconnecte, pouf il se retrouve a l'endroit ou il a déconnecté.
Je me demandais aussi si il était possible d'utiliser a cette fin la BDD qui a été implementé dans NWN

Citation :
http://www.heaven-ly.net/news.php?newsid=5 : avec la version 1.30 du client neverwinter, on a acces a une base de données (a la maniere de nwnx/aps sauf que la, le gros avantage est de pouvoir stocker des objets dans la bdd).
merci d'avance Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
lendraste
Grand Maître Chanteur du Conseil
Inscrit le: 20 Fév 2003
Messages: 1403
Localisation: Quelque part ailleurs
Répondre en citant
Posté le : 25/11/2003 19:09:05 Sujet du message :

Le serveur se souvient des endroits depuis lesquels les personnages des joueurs se sont déconnectés. Cela est conservé tant que le module est "en ligne" et est conservé également dans la sauvegarde. Si tu n'arrêtes pas ton serveur ou si tu le redémarres à partir d'une sauvegarde, alors le dernier endroit où se trouvait le personnage d'un joueur sera utilisé pour sa reconnexion.
Si au contraire, tu redémarres ton module en mode "standard" et non depuis une sauvegarde, ces emplacements seront perdus. Sauvegarder soi-même, par script, l'emplacement de déconnexion et le restaurer est un problème en soi. Tout d'abord, il faut savoir que lorsqu'un personnage se déconnecte, il déclenche un évènement, mais l'objet représentant le personnage est déjà considéré comme n'étant plus présent sur le serveur, il est donc impossible de lire sa position pour la sauvegarder. De la même façon, si tu arrives à sauvegarder une telle position (par le truchement de diverses bidouilles), se posera le problème de la restitution. Tout personnage ne s'étant jamais connecté sur un module (tel que c'est le cas lors de son premier démarrage ou lors d'une reprise sans sauvegarde) se verra alors envoyé au "point de départ" (la StartLocation). Cette projection au point de départ est incontournable. Même si on force le personnage à se rendre à un nouvel emplacement, ce "déplacement" n'empêchera pas le chargement de la zone de départ avant de placer le personnage au point voulu (si c'est une autre zone, un nouveau chargement de zone est automatiquement déclenché). Je passe sur les détails de ce problème épineux qui peut probablement être résolu à gros coup de scripts massifs et bidouilleurs. Essaie de voir si le fonctionnement standard te convient avant tout.
_________________
Lendraste de Loreval
Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel.
La cité des mensonges - 1
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
nawer
Chevalier
Inscrit le: 01 Juil 2003
Messages: 93
Répondre en citant
Posté le : 26/11/2003 10:24:29 Sujet du message :

perso j'utilise une micro zone fermée pour faire arriver les pj.
je place un delaycommand à la fin du script de l'evennement onClientEnter pour aller chercher en base les dernières coordonnées correspondant à ce perso, puis je lui applique un JumpToLocation.

détail : je me suis rendu compte que les fonctions Set/GetCampaignLocation ne sont pas très fiables, si tu rajoutes des zones à ton module, ça ne marche plus.
Donc je stocke le tag de la zone où se trouve le pj, ainsi que son vecteur et là ça fonctionne même si je change complètement les zones (sauf leurs tags bien entendu)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
fredboisselier
Acolyte
Inscrit le: 14 Juin 2003
Messages: 23
Localisation: lyon/france
Répondre en citant
Posté le : 09/07/2004 22:44:39 Sujet du message :

je cherche la meme chose , mais pour les point de vie.... z'auriez qqch sous la main?
pour la position et la gestion de la mort , j utilise une base mysql avec une save sur le OHB, je sauve aussi les point de vie, mais bon, pas top, si le joueur deco avec 1 pv, il reviens avec les pv qu il avait la min d'avant...une sauvegarde des PV sur le onclientleave me permettrais de freiner certains joueurs profitant de cette faille...Mad

Pourquoi une base mysql ? je me suis apercu que les setcampaign ne resistent pas toujours a un reboot... enfin rarement dans mon cas, comme je suis en train de builder un mod...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Devilon Bersek
Ecuyer
Inscrit le: 13 Sep 2004
Messages: 59
Localisation: Certainement dans une forge...sinon a Beaune
Répondre en citant
Posté le : 20/01/2005 14:31:51 Sujet du message :

bonjour a vous, je cherche le meme genre de chose.

mon module n'est pas en persistant, mais j'aimerais faire une save des pv's des pj a la deco, car si deco reco, il retrouvent tous leurs pv, et comme on est pas toujours la pour les surveiller, je voudrais eviter cet abus.
donc un script sur le onClientLeave et un sur le onClientEnter pour recharger ses pv serait ideal, mais si apres reboot ça ne fonctionne pas, c'est sans importance ! Very Happy

voilà, je suis sur que c'est pas si compliqué, mais je sais pas vraiment comment m'y prendre..merci d'avance pour vos propositions.
_________________
Rien n'est grave dans la vie...sauf de la perdre...
Chroniques des Royaumes Perdus :
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Athanor salamander
Légende vivante
Inscrit le: 01 Avr 2003
Messages: 306
Localisation: Ecole du Script
Répondre en citant
Posté le : 20/01/2005 17:53:12 Sujet du message :

Persistant ou pas, rien n'empêche d'utiliser les fonctions de campagne pour ce genre de truc non ??
Je peux ptet me planter mais bon... Sinon bah :
Sur le OnClientExit :
NWScript :
string sMaCampagne = "Module " + GetModuleName();
object oPC = GetExitingObject();
location lPClocation = GetLocation(oPC);
SetCampaignLocation(sMaCampagne, "sPClocation", lPClocation, oPC);
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Pis sur le OnClientEnter :
NWScript :
string sMaCampagne = "Module " + GetModuleName();
object oPC = GetEnteringObject();
location oLocation = GetCampaignLocation(sMaCampagne, "sPClocation", oPC);
AssignCommand(oPC, ActionJumpToLocation(oLocation));
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Pis vala...
_________________
Atha, Artisan Scripteur.
meet the most beautiful woman in the world
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Athanagorn
Acolyte
Inscrit le: 12 Déc 2004
Messages: 38
Répondre en citant
Posté le : 20/01/2005 18:37:11 Sujet du message :

Tu te plantes. location lPClocation = GetLocation(oPC); ne marchera pas. Voir les nombreuses infos à ce sujet, y compris dans ce post.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Athanor salamander
Légende vivante
Inscrit le: 01 Avr 2003
Messages: 306
Localisation: Ecole du Script
Répondre en citant
Posté le : 20/01/2005 21:59:46 Sujet du message :

Ok le getlocation ne marche pas. Embarassed
Par contre le GetPosition marche sur un joueur. J'en suis certain. Donc plutot de chercher une location, décomposons la location, sauvons la en plusieurs morceau pis recompose tout ensuite.
_________________
Atha, Artisan Scripteur.
meet the most beautiful woman in the world
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Kétil Dimzad
Ecuyer
Inscrit le: 10 Oct 2003
Messages: 62
Localisation: Fijj'Bool City
Répondre en citant
Posté le : 20/01/2005 23:36:23 Sujet du message :

Dans la biliotheque nwn xi_io_position ( c pas la bonne synthaxe dsl ) il y a 2 fonctions tres utile pour ça.

StringToLocation()

et

LocationToString()

Donc, en récupérant la location avec GetLocation, puis en la passant en string, on peut la sauvegarder soit en BDD sous forme de string, soit sur un item no drop dans l'inventaire du PJ.

Et pour le retrouver pas de prob, c la marche inverse à faire.

Apres, pour le QUAND sauvegarder la position du PJ.... Ca peut etre fait au repos, dans le OnHeartBeat, avec un script récurcif, au choix du PJ via un dialogue..... Ya plusieurs méthodes Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Numéro ICQ Ignorer l'utilisateur
 
Athanagorn
Acolyte
Inscrit le: 12 Déc 2004
Messages: 38
Répondre en citant
Posté le : 21/01/2005 00:44:07 Sujet du message :

TTT...

Le problème n'est pas avec le GetLocation, le problème est avec le OnClientExit.
Au moment ou le OnClientExit est déclenché, le joueur est déjà sorti. Donc, sa position est invalide. C'est expliqué dans le second post de ce sujet. Il y a une explication dans le lexicon sur comment contourner le problème.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
Page 1 sur 1 ¤


Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 32.4ms