Merci ça marche parfaitement, tout simplement ce que je voulais :D
J'ai une autre question mais ce serait plutôt du côté protection serveur.
En effet les doubles compte comme vous le savez ce n'est pas très facile à reperer etc.
Donc je voudrai intégrer un système vérifiant le rang du joueur ex 25.58.**.** pour vérifier si une ip ayant crée un compte existe déjà.
Mais 3 problèmes se posent:
le 1er: Comment faire pour comparer l'ip d'un joueur enregistré à un joueur non enregistré.
le 2ème: Mes fichiers sauvegarde sont enregistrés en .dudb avec mdp hach, argent et score docn je voudrai savoir comment y intégrer l'ip du joueur
le 3ème: il faudra que j'enregistre les ips des joueurs ayant déjà un compte durant la commande /login
Mais j'ai du mal pour sauvegarder des données dans un fichier comme ici .dudb donc j'aimerai que vous me donniez quelques renseignements. Voici quelesques données pour que vous puissez m'aider
Ex de fichier .dudb d'une save de compte:
password_hash=54564813
Money=3745719
Score=3745719
Kills=-1812395550
Deaths=41529779
PS: les kills bug mais ne faites pas attention à ça :lmfao
Mes commandes login et register:
dcmd_register(playerid,params[]) {
if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"Vous êtes déjà logué.");
if (udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"Ce compte existe déjà '/login mot de passe'.");
if (strlen(params)==0) return SystemMsg(playerid,"Usage correct: '/register mot de passe'");
if (udb_Create(PlayerName(playerid),params)) return SystemMsg(playerid,"Compte crée '/login mot de passe.");
return true;
}
dcmd_login(playerid,params[]) {
if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"Vous êtes déjà logué.");
if (!udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"Ce compte n'existe pas '/register mot de passe'.");
if (strlen(params)==0) return SystemMsg(playerid,"Tapez '/login mot de passe'");
if (udb_CheckLogin(PlayerName(playerid),params)) {
// Status
GivePlayerCash(playerid,dUserINT(PlayerName(playerid)).("money")+GetPlayerMoney(playerid));
SetPlayerScore(playerid,dUserINT(PlayerName(playerid)).("Score")+GetPlayerScore(playerid));
pkills[playerid] = (playerid,dUserINT(PlayerName(playerid)).("Kills")+pkills[playerid]);
pdeaths[playerid] = (playerid,dUserINT(PlayerName(playerid)).("Deaths")+pdeaths[playerid]);
PLAYERLIST_authed[playerid]=true;
KillTimer(protectionOK[playerid]);//protection
logged[playerid] = 1;
return SystemMsg(playerid,"Vous êtes logué avec succès!");
}
Merci d'avance pour votre aide ;)
A+ ;)