Localisation permanente

Répondre
Partager Rechercher
Tout dépend du module, comme le disait si bien Azmathiel, (non je ne t'en veux pas ) et la façon dont il est construit.
Par exemple ma zone d'arrivée est assez loin de ma zone de respawn en cas de mort.
Comme l'xp et l'or ne posent pas particulièrement de problème sur Oriel, mourir ne fait pas trop râler les joueurs.

Après si tu as un module à restrictions injouables ou à xp réduit, je comprend que les joueurs puissent pleurnicher.

Tout dépend de la globalité. Ce système convient à Oriel mais peut-être pas à d'autres modules.

Je propose ce système régulièrement quand on demande des systèmes de localisations car j'estime que tout le monde a le droit de s'en servir s'il en a envie ou besoin.
Il n'a pas été créer de bout en bout par mes soins et beaucoup de gens sur JOL m'ont aidé à le faire fonctionner.
C'est une façon de renvoyer l'ascenseur en quelque sorte.
Je laisse l'utilisateur ou le demandeur seul juge de la pertinence d'un tel script sur son module.
Je suis sure par ailleurs que vous pourrez proposer des choses mille fois mieux si vous prenez le temps de vous y pencher
Tu peux aussi sauvé la position lorsque le joueur dors, ca évite d'avoir un pic d'activité toutes les 30s.

En prévenant les joueurs, ils prendront vite l'habitude de sauvegarder leur position lorsqu'ils en ont besoin.

Sur Arkalym, nous avons mis en place les deux systèmes.
C'est normal, c'est un script qui contient des fonction et qui ne doit pas être compilé séparément des autres. Si tu veux vraiment le compiler ajoute a la fin :
Code PHP:

 void main() {} 

Mais enlève le après car cela ne doit pas rester.
@ Camelia :
pardon pour le retard dans ma réponse.

Le repos est lance dans l'evenement on_rest comme ceci :
Code PHP:

void yi_OnRest()
{  if (
GetLastRestEventType() == REST_EVENTTYPE_REST_STARTED)
   {  
object pj GetLastPCRested();
       
save_location(pj);
    }

et par exemple pour la fonction de save :

Code PHP:

// pour stocker ds la database
string LocToString(location lLocation)
{
    
object oArea GetAreaFromLocation(lLocation);
    
vector vPosition GetPositionFromLocation(lLocation);
    
float fOrientation GetFacingFromLocation(lLocation);
    
string sReturnValue;

    if (
GetIsObjectValid(oArea))
        
sReturnValue "#AREA#" GetTag(oArea) + "#POSITION_X#" FloatToString(vPosition.x) + "#POSITION_Y#" FloatToString(vPosition.y) + "#POSITION_Z#" FloatToString(vPosition.z) + "#ORIENTATION#" FloatToString(fOrientation) + "#END#";

    return 
sReturnValue;
}

// memorise la position d'un PJ
void save_location(object pj)
{  if (
pj != OBJECT_INVALID) {
     
string s LocToString(GetLocation(pj));
     if (
s!="") {SetCampaignString(Identifiant(pj),PermanentPlayerPosition,s);}
   }

voila.
Je fais la meme chose dans un UDF lancé toutes les 500 secondes "au cas ou"


j'aimerais savoir si .... (va poser beaucoup de questions)


- il etait possible de garder la localisation ... des monstres ?

car c'est bien beau de penser au joueur mais les pauvres Gobelins ou les armees Orcs qui viennent ravager un village ... puis platch plantouille ... ils doivent tout recommencer


apres celle la, vous vous doutez bien que j'allais poser celle-ci

et pour les placeables c'est possible aussi ?
je pense a ca dans le sens ou un pj achete ou cree un objet
(coffre chaise table .. etc)
et ainsi le rendre permanant meme apres un reboot ^^

Citation :
Publié par JUGGER


j'aimerais savoir si .... (va poser beaucoup de questions)


- il etait possible de garder la localisation ... des monstres ?

car c'est bien beau de penser au joueur mais les pauvres Gobelins ou les armees Orcs qui viennent ravager un village ... puis platch plantouille ... ils doivent tout recommencer
Tout dépend du statut de tes créatures. Il y a trois réponses possibles :

- Tes monstres proviennent de spawns, alors c'est clairement non, puisque le spawn sera réinitialisé après un reboot. Et tes monstres ne seront plus là

- Tes monstres sont placés depuis l'interface MD. Non, c'est évident pour les mêms raisons qu'au dessus.

- Tes monstres sont placés depuis Aurora, alors oui, mais bon courage pour les scripts à faire


Citation :
Publié par JUGGER
apres celle la, vous vous doutez bien que j'allais poser celle-ci

et pour les placeables c'est possible aussi ?
je pense a ca dans le sens ou un pj achete ou cree un objet
(coffre chaise table .. etc)
et ainsi le rendre permanant meme apres un reboot ^^

Oui, mais là encore, même plus que pour les créatures, bon courage pour la gestion

Cela dit, tout dépend du mode de fonctionnement de ton module : persistant, ponctuel, en petit groupe, etc...
Il vaudrait mieux voir du côté de la sauvegarde du serveur (intégrée au serveur et paramétrable au lancement). Ce serait bien plus simple, à mon avis. En gardant toutefois présent à l'esprit qu'on s'expose à certains bugs lors des sauvegardes (passage de zones de transit notamment qui plantent le client)
Citation :
Tout dépend du statut de tes créatures. Il y a trois réponses possibles :

- Tes monstres proviennent de spawns, alors c'est clairement non, puisque le spawn sera réinitialisé après un reboot. Et tes monstres ne seront plus là

- Tes monstres sont placés depuis l'interface MD. Non, c'est évident pour les mêms raisons qu'au dessus.

- Tes monstres sont placés depuis Aurora, alors oui, mais bon courage pour les scripts à faire
-une petite partie de ceux-ci seront places a partie de spawn unique

-les autres etant places directement sur la carte, mais ont un mode de "division" au bout d'un laps de temps



Citation :
Oui, mais là encore, même plus que pour les créatures, bon courage pour la gestion
-Pourquoi ?
il faudrait simplement recueillir les points de localisation dans une base de donnee avec le bluestring et le tag de l'objet ..non ??



Citation :
Cela dit, tout dépend du mode de fonctionnement de ton module : persistant, ponctuel, en petit groupe, etc...
je pense le mettre en persistant
pour le moment j'ai calculer les ressources globales du module pour 40 joueurs



Citation :
Il vaudrait mieux voir du côté de la sauvegarde du serveur (intégrée au serveur et paramétrable au lancement). Ce serait bien plus simple, à mon avis. En gardant toutefois présent à l'esprit qu'on s'expose à certains bugs lors des sauvegardes (passage de zones de transit notamment qui plantent le client)
Sauvegarde du server ...??
celle ci ne fait que sauvegarder les parmettres statiques du server
les paramettres dynamiques quant a eux sont sauvegarder sur une Bdd ...??

Nan ???

donc pour moi un placeable qui n'a pas ete mis par aurora dans le modul est bien cree dynamiquement ...???
tout comme le sont les paramettres que l'on recueillent pour le positionnement et les pv (evnetuellement pour le repos^^)

nan ???
Re:
A l'époque où il n'y avait pas de base de données, un module se servait des tokens (objets remplis d'informations) pour enregistrer la localisation des joueurs quand ils quittaient. ça m'avait bluffé.

A part le lieu des joueurs, y en a t'il qui utilisent des protections pour enregistrer l'état du joueur (hp, contamination, poison etc. ?). Les systèmes anti-déconnexion prennent rarement en compte ces "détails" en général, et c'est aux DMs de surveiller...
Répondre

Connectés sur ce fil

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