|
Log et événement
|
| Auteur |
Message |
phenix
Membre
Messages : 266
Groupe : Membre
Inscription : May 2007
Statut :
Hors ligne
Réputation : 2
|
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é
Phenix, administrateur de streamanga
Visitez aussi mon MMORPG la vallée des larmes
|
|
| 08-02-2008 10:26 PM |
|
 |
Yoda54
Membre
Messages : 83
Groupe : Membre
Inscription : Feb 2007
Statut :
Hors ligne
Réputation : 0
|
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 |
|
 |
Sephi-Chan
Administrateur
      
Messages : 4,290
Groupe : Administrateur
Inscription : Aug 2006
Statut :
Hors ligne
|
RE: Log et événement
Salut,
Veux-tu faire en sorte que quand le joueur A lit :
Vous frappez B et lui infligez X points de dégâts.
B meurt.
Le joueur B lit :
A vous frappe et vous inflige X points de dégâts.
Vous mourrez.
Ou bien veux-tu un log unique genre :
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 |
|
 |
phenix
Membre
Messages : 266
Groupe : Membre
Inscription : May 2007
Statut :
Hors ligne
Réputation : 2
|
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 |
|
 |
Kassak
Membre
Messages : 795
Groupe : Membre
Inscription : Aug 2006
Statut :
Hors ligne
Réputation : 4
|
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 |
|
 |