Poster une réponse  Créer un sujet 
Log et événement
Auteur Message
phenix
Membre


Messages : 266
Groupe : Membre
Inscription : May 2007
Statut : Hors ligne
Réputation : 2
Message : #1
Log et événement

Bonjour à tous,

Voila, il est souvent utiles dans un jeu de garder des logs des actions des joueurs, pour par exemple les afficher. Je citerais l'exemple de Mountyhall, qui dispose d'un système d'événement très complet.

Malheureusement, les événements a enregistrer sont nombreux et varier:

- Machin a attaquer bidule, il a infligé X points de dégâts.
- Machine a utiliser une compétence.
etc.

Pour le moment, je me suis bordé a enregistré un événement personnaliser pour chaque action du joueur au moment ou elle est activer.
Je me retrouve devant plusieurs problème:

- Les log sont décentraliser, cela donne souvent une certaine anarchie dans le contenu du log qui parfois donne des données et parfois pas, bref cette personnalisation n'est pas dans l'intérêt des logs.
- C'est lourd a modifier, "qu'est-ce que j'ai mit sur ce sort la ? Ha oui, donc faut que je fasse pareil la...".

Je pourrais bien sur utiliser une fonction qui s'occuperait d'insérer le bon log, mais comment gérer la multitude d'information différente que peuvent contenir les logs (pseudo attaquant, pseudo défenseur, point de dégat, nom du sort, etc.) ?

Si vous avez des astuces, je serais très intéressé 57


Phenix, administrateur de streamanga
Visitez aussi mon MMORPG la vallée des larmes
08-02-2008 10:26 PM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Yoda54
Membre


Messages : 83
Groupe : Membre
Inscription : Feb 2007
Statut : Hors ligne
Réputation : 0
Message : #2
RE: Log et événement

Ta parenthèse ressemble fortement aux champs d'une table, non?
Donc j'opterai bien pour une table dans une base de données et des jointures pour retrouver les pseudos, le nom des sorts...

08-02-2008 11:09 PM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Sephi-Chan
Administrateur
*******


Messages : 4,290
Groupe : Administrateur
Inscription : Aug 2006
Statut : Hors ligne
Message : #3
RE: Log et événement

Salut,

Veux-tu faire en sorte que quand le joueur A lit :

Citation :
Vous frappez B et lui infligez X points de dégâts.
B meurt.


Le joueur B lit :

Citation :
A vous frappe et vous inflige X points de dégâts.
Vous mourrez.


Ou bien veux-tu un log unique genre :

Citation :
A frappe B et lui infligez X points de dégâts.
B meurt.


Sinon, je dirais que tu peux lancer une fonction (de callback ?) à chaque fois qu'un joueur effectue une action. Cette fonction enregistre l'événement avec les paramètres de l'action (transmis dans un array, par exemple).

Mais il doit y avoir pas mal de solutions, selon ce que tu veux faire.


Sephi-Chan


08-02-2008 11:13 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
phenix
Membre


Messages : 266
Groupe : Membre
Inscription : May 2007
Statut : Hors ligne
Réputation : 2
Message : #4
RE: Log et événement

la base de donnée serait une solution, seulement, avec des logs conserver 15 jours, sa va vite faire beaucoup de log et sa risque de faire très lourd pour le serveur.

Je vais voir si il n'y a pas moyen, mais je préférerais un autre système s'il y a.

Edit pour sephi:

Je préfère la première solution.

Pour la fonction, tu peux détailler un peu plus:
- je sais pas du tout ce qu'est un fonction de callback.
- Comment organiserait tu l'array envoyer à la fonction ?


Phenix, administrateur de streamanga
Visitez aussi mon MMORPG la vallée des larmes

Ce message a été modifié le: 08-02-2008 11:19 PM par phenix.

08-02-2008 11:16 PM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Kassak
Membre


Messages : 795
Groupe : Membre
Inscription : Aug 2006
Statut : Hors ligne
Réputation : 4
Message : #5
RE: Log et événement

Pour ma part, j'ai décidé de faire simple (qui dit simple dit pas top moumoute quand même).

Ma table action (log) contient comme champs :

-Id
-Description (Ex : Vous avez attaqué, Vous avez été attaqué)
-Joueur
-Adversaire
-Chiffre
-Date

Ensuite, pour faire une phrase cohérente à partir de la même entrée pour les deux joueurs, cela donne ça :

Coté Joueur :

Vous avez attaqué Adversaire et lui avez infligé chiffre dégat.


Coté Adversaire :

Vous avez été attaqué par Joueur qui vous a infligé chiffre.


Le champ chiffre me sert à rentrer..les chiffres ! Par exemple les degats, les soins rendus, l'or échangé etc...

Le champ description sert pas à grand chose, mais cela ne prend pas beaucoup de place donc autant en profiter, et sinon je supprime tous les soirs à minuit toutes les entrées qui ont + de 5 jours afin de garder une base pas trop lourde.


Il est pas magnifique ce sol?
08-03-2008 12:21 AM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Poster une réponse  Créer un sujet 

Voir une version imprimable
Envoyer ce sujet à un ami
S'abonner au sujet | Ajouter le sujet aux favoris