Salutation ou bonsoir j'ai faut un Syteme de register j'ai déjà demander de l'aide mais ca ne marche toujours pas en bref voici le code.
#pragma unused ret_memcpy
#include <a_samp>
#include <Dini>
#include <dudb>
#define Login 0
#define Register 1
#define vert 0xCE0000FF
#define jaune 0xFF2828FF
#define rouge 0x820000FF
enum list{level,skinid,death,kill,score,money};
new stats[MAX_PLAYERS][list];
new name[20][MAX_PLAYERS];
new st[256];
public OnFilterScriptInit()
{
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
main()
{
}
public OnPlayerConnect(playerid)
{
name[playerid] = GetName(playerid);
Entry(playerid);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == Register)
{
if(response)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid, jaune, "Le mot de passe doit comprendre entre 5-20 caractères (champ vide).");
return Entry(playerid);
}
if(20 < strlen(inputtext) || strlen(inputtext) < 5)
{
SendClientMessage(playerid, jaune, "Le mot de passe doit comprendre entre 5-20 caractères (champ invalide).");
return Entry(playerid);
}
else
{
format(st,sizeof(st),"Comptes/%s.user",name[playerid]);
dini_Create((st));
dini_IntSet((st), "password", udb_hash(inputtext));
dini_Set((st),"pass",inputtext);
dini_IntSet((st), "level", 0);
dini_IntSet((st), "skinid", 0);
dini_IntSet((st), "death", 0);
dini_IntSet((st), "kill", 0);
dini_IntSet((st), "score", 0);
dini_IntSet((st), "money", 10000);
printf(st);
format(st, sizeof(st), "%s compte créé. Mot de passe : %s", name[playerid], inputtext);
SendClientMessage(playerid, jaune, st);
Entry(playerid);
}
}
else
{
Entry(playerid);
}
}
if(dialogid == Login)
{
if(response)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid, rouge, "Mauvais mot de passe.");
return Entry(playerid);
}
if(20 < strlen(inputtext) || strlen(inputtext) < 5 )
{
SendClientMessage(playerid, rouge, "Mauvais mot de passe.");
return Entry(playerid);
}
else
{
format(st,sizeof(st),"Comptes/%s.user",name[playerid]);
new string[256];
string = dini_Get((st), "Password");
if (udb_hash(inputtext) != strval(string))
{
SendClientMessage(playerid, rouge, "Mauvais mot de passe.");
return Entry(playerid);
}
else
{
dini_Set((st),"pass",inputtext);
stats[playerid][level] = dini_Int((st), "level");
stats[playerid][skinid] = dini_Int((st), "skinid");
stats[playerid][death] = dini_Int((st), "death");
stats[playerid][kill] = dini_Int((st), "kill");
stats[playerid][score] = dini_Int((st), "score");
SetPlayerMoney(playerid, stats[playerid][money]);
SetPlayerScore(playerid, stats[playerid][score]);
SendClientMessage(playerid, vert, "Vous êtes maintenant logger sur votre compte.");
}
}
}
else
{
Entry(playerid);
}
}
return 1;
}
Entry(playerid)
{
format(st,sizeof(st),"Comptes/%s.user",name[playerid]);
if(dini_Exists(st))
{
format(st,256,"Bienvenue\nentrer votre identifient secret\npour vous logger:");
ShowPlayerDialog(playerid,Login,DIALOG_STYLE_INPUT,"Identification ",st,"Login","Annuler");
}
else
{
format(st,256,"Bienvenue\nentrer votre identifient secret\npour vous crée un compte:");
ShowPlayerDialog(playerid,Register,DIALOG_STYLE_INPUT,"Enregistrement ",st,"Register","Annuler");
}
return 1;
}
GetName(playerid)
{
new pseudo[20];
GetPlayerName(playerid,pseudo,sizeof(pseudo));
return pseudo;
}
public OnPlayerSpawn(playerid)
{
SetPlayerMoney(playerid, stats[playerid][money]);
SetPlayerScore(playerid, stats[playerid][score]);
return 0;
}
Et je voudrais qu'a la mort Dini mette le score du joueur.
Donc j'ai ajouter
stats[playerid][score] = GetPlayerScore(playerid);
stats[playerid][money] = GetPlayerMoney(playerid);Dans le onplayerdeath mais ca ne marche pas ?
Problème ?
Merci.