GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: imerdu91 le 27 Septembre 2010, 23:14:09

Titre: [Demande Conseille] Dini Ou MySql ?
Posté par: imerdu91 le 27 Septembre 2010, 23:14:09
Bonjour,

Je script depuis maintenant 1 ans et demi un serveur RolePlay de la base du larp, et qui pour l'instant fonctionne bien.
Actuellement et cela depuis le début, le serveur enregistre les compte ou tout autre fichier avec l'include Dini, donc les compte sont en .ini etc,
Mais j'entend beaucoup parler du MySql, a la base du larp, il était présent, mais enlever je ne sait pourquoi.

Ma question, quel est le mieux entre l'include Dini ou le MySql,
Qu'apporte t'il de plus, quesqu'il permet de réaliser en plus, a t'il des limite, des défauts, est il difficile de s'en servir, et si oui y a t'il un site pour apprendre ou quelqu'un qui connaîtrai un bon tutoriel.

Ce système m'a l'air intéressant et c'est pour cela que je souhaite me renseigner, sachant que je suit patient, je pense avoir les capacité d'apprendre a m'en servir.

Merci d'avance ;)
Titre: Re : [Demande Conseille] Dini Ou MySql ?
Posté par: steve76 le 28 Septembre 2010, 12:54:08
Pour le Mysql toutes les infos sont stockées dans une base de données. Cela peut te permettre de faire plein de trucs que Dini ne permet pas.
Comme par exemple, la création d'un panel admin pour gérer les comptes des joueurs, les logs... Idem un panel pour les joueurs pour qu'ils puissent gérer leurs comptes. Cela évite à ton staff d'avoir à intervenir directement sur la machine pour récupérer les infos des joueurs et autres.

Selon moi le MySQL est mieux mais il nécessite d'apprendre un nouveau langage en plus du PAWN.

Tu trouveras de bon tuto sur le site du zéro.

En espérant avoir répondu à tes questions.

++
Steve
Titre: Re : [Demande Conseille] Dini Ou MySql ?
Posté par: R@f le 28 Septembre 2010, 18:02:42
Salut,

Utiliser MySQL pour un gamemode est une bonne idée si tu souhaites faire un site et utiliser les informations des comptes de tes joueurs (un classement par exemple). Tu peux également utiliser MySQL si tu souhaites avoir les comptes de tes joueurs sur un autre serveur (moins performant par contre). Sinon, je trouve qu'avoir des comptes dans des tables SQL est plus clair et c'est plus facile pour s'y retrouver.
Un désavantage, c'est qu'il faut avoir un serveur MySQL (qui peut tourner sur la même machine). Si t'es chez un hébergeur qui ne propose par cette option, il faudra chercher un serveur MySQL gratuit (en cherchant un hébergeur web gratuit) ou en trouver un payant (OVH propose un service MySQL). Si t'as ton propre dédié, c'est mieux. Il suffit simplement d'installer le paquet et configurer ton serveur MySQL (choisir un mot de passe, etc... rien de compliqué).
Sinon, j'ai jamais essayé de comparer la rapidité de dini et MySQL (serveur local), donc pour les performances, j'en ai aucune idée.
Et si tu cherches des scripts d'exemple, il y a mon RAdmin qui utilise le MySQL.

Voici encore quelques liens utiles :
Site officiel de MySQL : http://www.mysql.fr/ (http://www.mysql.fr/)
Documentation MySQL : http://dev.mysql.com/doc/ (http://dev.mysql.com/doc/)
Site du zéro (tuto PHP/MySQL) : http://www.siteduzero.com/tutoriel-3-14668-concevez-votre-site-web-avec-php-et-mysql.html#part_14671 (http://www.siteduzero.com/tutoriel-3-14668-concevez-votre-site-web-avec-php-et-mysql.html#part_14671)
Plugin MySQL pour SA-MP par ADreNaLiNe-DJ : http://forum.sa-mp.com/showthread.php?t=7106 (http://forum.sa-mp.com/showthread.php?t=7106)
Plugin MySQL pour SA-MP par G-sTyLeZzZ : http://forum.sa-mp.com/showthread.php?t=56564 (http://forum.sa-mp.com/showthread.php?t=56564)
Plugin MySQL pour SA-MP par StrickenKid : http://forum.sa-mp.com/showthread.php?t=122983 (http://forum.sa-mp.com/showthread.php?t=122983)
Script RAdmin utilisant le plugin MySQL de ADreNaLiNe-DJ : http://www.gtaonline.fr/forums/index.php/topic,6269.0.html (http://www.gtaonline.fr/forums/index.php/topic,6269.0.html)

++
R@f
Titre: Re : Re : [Demande Conseille] Dini Ou MySql ?
Posté par: NatiVe™ le 28 Septembre 2010, 19:27:08
utiliser un serveur MySQL n'est pas un peu risqué ?

Lalu's utilise MySQL, donc je pense que non c'est pas risqué.

NV. 8)

Titre: Re : Re : [Demande Conseille] Dini Ou MySql ?
Posté par: Ssk le 28 Septembre 2010, 19:32:40
Salut,
utiliser un serveur MySQL n'est pas un peu risqué ?
Enfin je ne sais pas si c'est protégé par un mot de passe ou autre mais le premier petit idiot qui te pirate supprime les comptes de ton serveur et
les joueurs vont s'attribuer des stats complètements faux ( du genre dire qu'on a un score de 13 alors qu'on a un score de 10 ..)
++
Beno

Tu peut faire en sorte que Mysql soit accessible qu'en local donc, moins de risque de piratage ( on peut même dire aucun risque, mais on sait jamais )
Titre: Re : [Demande Conseille] Dini Ou MySql ?
Posté par: imerdu91 le 28 Septembre 2010, 21:37:04
Merci énormément pour vos renseignement et votre partage d’expérience, je vai me documenté grâce au lien de R@f, et j’espère pouvoir le maîtriser aussi rapidement que Pawno :)
Titre: Re : [Demande Conseille] Dini Ou MySql ?
Posté par: Will_Kayne le 28 Septembre 2010, 23:59:23
Par contre quand tu devras passé tes comptes .ini en .sql je te conseil de faire un shell. 25 lignes à tout cassé et tu poura passer surement tes 5'000 compte en fichier .sql sans aucun problème ;)
Titre: Re : [Demande Conseille] Dini Ou MySql ?
Posté par: vincentdu90 le 29 Septembre 2010, 21:04:32
Une question est-ce qu'il est possible de créer des comptes avec File ? Ou Dini serait plus approprié ?
Titre: Re : Re : [Demande Conseille] Dini Ou MySql ?
Posté par: S!m le 30 Septembre 2010, 03:15:11
Salut,

Une question est-ce qu'il est possible de créer des comptes avec File ? Ou Dini serait plus approprié ?

oui c'est possible de faire des comptes directement avec les fonctions de fichiers.

Il existe même plusieurs méthodes....

1. On connait déjà la structure du fichier (donc la position de chaque information)
2. On cherche un caractère ou une chaîne de caractère l'identifiant

La seconde méthode ressemble un peu au système ini (même si on peut rendre le fichier radicalement différent).
La première donne les meilleurs résultats, mais il faut faire attention, surtout si les fichiers sont manipulés à la main...

Pour votre information, le point faible de dini, c'est qu'à chaque lecture il ouvre et teste ligne après ligne le fichier afin de trouver le bon identifiant (key), procédure longue et couteuse en temps (chargement du fichier, parcours des données contenues...). C'est encore pire quand on arrive à l'écriture, il faut chercher la ligne correspondante dans le fichier nouvellement ouvert, tout en retranscrivant les informations dans un nouveau fichier (temporaire), une fois la ligne trouvée, la retranscrire dans le fichier temporaire, mais modifiée puis terminer la retranscription. Puis renommer le fichier temporaire afin de remplacer le fichier ouvert. Sans la fonction frename non-inclue de base dans les fonctions fichier, cela signifie la lecture de ce fichier pour créer le fichier d'origine modifié et ensuite supprimer le fichier temporaire. Bref, c'est un gros boulot.

++Sim++
Titre: Re : [Demande Conseille] Dini Ou MySql ?
Posté par: vincentdu90 le 01 Octobre 2010, 20:30:14
Merci de ces conseils Sim .
Titre: Re : [Demande Conseille] Dini Ou MySql ?
Posté par: Ssk le 01 Octobre 2010, 20:43:06
Dini est très simple, mais la rapidité d'écriture / lecture non ^^


Surtout si vous faites un truc qui sauvegarde les comptes tout les x secondes pour tout les joueurs en même temps, je voit bien les gros moment où le serveur ramme ^^
Titre: Re : [Demande Conseille] Dini Ou MySql ?
Posté par: Ssk le 01 Octobre 2010, 21:34:38
Mais bien sur que si qu'il comporte les timeout !



( Mon cas de figure s'applique aussi, si on restart, ou change de GM ^^ )
Titre: Re : [Demande Conseille] Dini Ou MySql ?
Posté par: Bayshore le 01 Octobre 2010, 22:17:45
Pourquoi veux-tu choisir entre Dini et MySQL ? Les deux sont bien lourds pour l'usage que tu veux en faire, MySQL je doute que tu observes des gains de performance avant 10 000 enregistrements et Dini... Dini est une horreur codé avec les pieds.
Ce que je te conseille c'est de faire ton propre système de sauvegarde par fichier.
Titre: Re : Re : Re : [Demande Conseille] Dini Ou MySql ?
Posté par: S!m le 02 Octobre 2010, 17:45:17
Salut,

Bah bien sûr que si qu'il prend en compte les timeout, j'avais fait quelques tests avec le PC de ma sœur et le miens en tant que serveur, et c'était très concluant.

serieusement ?  ???
Il comporte les timeout ? o.o
Car le OnPlayerExitVehicle ne comporte pas les chute ( HS je sais mais c'est unpeu pareil)

les seul cas qui n'est pas détecté par la callback, c'est le crash du serveur (ce qui me parait logique...) et une très grosse charge de calcul genre boucle infinie qui empêche le serveur de répondre

++Sim++
Titre: Re : [Demande Conseille] Dini Ou MySql ?
Posté par: Ssk le 02 Octobre 2010, 18:03:17
C'est méchant Gz' lol
Titre: Re : [Demande Conseille] Dini Ou MySql ?
Posté par: Bayshore le 02 Octobre 2010, 18:51:43
Gzsume s'il arrive à un système de sauvegarde opérationnel franchement, je doute qu'il puisse être plus mal codé que Dini.
Titre: Re : Re : [Demande Conseille] Dini Ou MySql ?
Posté par: Ssk le 02 Octobre 2010, 18:52:51
Gzsume s'il arrive à un système de sauvegarde opérationnel franchement, je doute qu'il puisse être plus mal codé que Dini.

Dini n'est pas mal codé, il utilise juste des méthodes qui font qu'écrire sur un fichier est long ^^
Titre: Re : [Demande Conseille] Dini Ou MySql ?
Posté par: Bayshore le 02 Octobre 2010, 18:55:19
Le terme approprié serait plutôt "mal pensé" en effet.
Titre: Re : [Demande Conseille] Dini Ou MySql ?
Posté par: Bayshore le 02 Octobre 2010, 19:12:44
Il s'agit d'écrire sur le fichier sans le refermer/réouvrir à chaque fois, PEN1 fait ça très bien par exemple...