01.04.2013, 19:56
Hola a todos, bueno tengo un problema con el registro y el guardado de cuentas, en realidad, las cuentas se guardan pero el problema es que no se actualizan, osea, yo entro creo mi cuenta y se guarda el archivo pero solamente con la contraseсa, el personaje sube de nivel, sube sus kills y al desconectarse no se actualiza el archivo, entonces siempre esta en 0
Asi tengo mi codigo
Asi tengo mi codigo
pawn Код:
new Kills[MAX_PLAYERS];
new Deaths[MAX_PLAYERS];
new isLogged[MAX_PLAYERS];
new Level[MAX_PLAYERS];
new Admin[MAX_PLAYERS];
new Phabilidad[MAX_PLAYERS];
pawn Код:
public OnGameModeExit()
{
print("TDM");
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(isLogged[i] == 1)
{
new name[256],check[256];
Delete3DTextLabel(levl[i]);
Delete3DTextLabel(admlabl[i]);
GetPlayerName(i, name, sizeof(name));
format(check, sizeof(check), "%s.ini", name);
dini_IntSet(check,"kills", Kills[i]);
dini_IntSet(check,"Deaths", Deaths[i]);
dini_IntSet(check,"money", GetPlayerMoney(i));
dini_IntSet(check,"level", Level[i]);
dini_IntSet(check,"admin", Admin[i]);
dini_IntSet(check,"Phabilidad", Phabilidad[i]);
}
}
return 1;
}
pawn Код:
public OnPlayerConnect(playerid)
{
new string[64], pName[MAX_PLAYER_NAME], string2[64];
GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
format(string,sizeof(string),"~Agua~El jugador %s se ah conectado",pName);
format(string2, sizeof(string2), "%s.ini", pName);
SendClientMessageToAll(0xFFFFFFAA,string);
SendClientMessage(playerid, 0xFFFFFFAA, "Bienvenido a TDM");
isLogged[playerid] = 0;
Admin[playerid] = 0;
Level[playerid] = 0;
Deaths[playerid] = 0;
Kills[playerid] = 0;
Phabilidad[playerid] = 0;
if(!dini_Exists(string2))
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Registrar nueva cuenta", "Esta cuenta aun no esta registrada\nPara registrar coloque su contraseсa en la casilla de abajo:", "Registrar", "Salir");
}
else ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Bienvenido", "Esta cuenta esta registrada\nIntrodusca su contraseсa en la casilla:", "Entrar", "Salir");
return 1;
}
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
new string[64], name[MAX_PLAYER_NAME], check[256];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
switch(reason)
{
case 0: format(string,sizeof string,"El jugador %s ah salido del servidor(Crash)",name);
case 1: format(string,sizeof string,"El jugador %s a salido del servidor",name);
case 2: format(string,sizeof string,"El jugador %s a sido baneado/kikeado",name);
}
SendClientMessageToAll(0x757575AA,string);
format(check, sizeof(check), "/Users/%s.ini", name);
new cash;
cash = GetPlayerMoney(playerid);
if(isLogged[playerid] == 1)
{
dini_IntSet(check,"kills", Kills[playerid]);
dini_IntSet(check,"Deaths", Deaths[playerid]);
dini_IntSet(check,"money", cash);
dini_IntSet(check,"level", Level[playerid]);
dini_IntSet(check,"admin", Admin[playerid]);
dini_IntSet(check,"Phabilidad", Phabilidad[playerid]);
}
Delete3DTextLabel(levl[playerid]);
Delete3DTextLabel(admlabl[playerid]);
return 1;
}
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(response)
{
if(dialogid == 1) //register
{
new name[24], check[258];
GetPlayerName(playerid, name, sizeof(name));
format(check, sizeof(check), "%s.ini", name);
dini_Create(check);
dini_Set(check,"password", inputtext);
dini_IntSet(check,"money", 0);
dini_IntSet(check,"kills", 0);
dini_IntSet(check,"Deaths", 0);
dini_IntSet(check,"level", 0);
dini_IntSet(check,"admin", 0);
SendClientMessage(playerid, 0xFFFFFFAA, "Ah entrado correctamente al servidor");
isLogged[playerid] = 1;
return 1;
}
if(dialogid == 2) //login
{
new name[24], check[258];
GetPlayerName(playerid, name, sizeof(name));
format(check, sizeof(check), "%s.ini", name);
if(dini_Exists(check))
{
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Iniciar session con su cuenta", "Contraseсa incorrecta\nPor favor escriba su contraseсa de nuevo:", "Entrar", "Salir");
}
else
{
if(strcmp(inputtext, dini_Get(check, "password"), false) == 0)
{
isLogged[playerid] = 1;
SCM(playerid, 0xFFFFFFAA, "Ah entrado correctamente");
SetPlayerMoney(playerid, dini_Int(check, "money"));
SetPlayerScore(playerid, dini_Int(check, "kills"));
Kills[playerid] = dini_Int(check, "kills");
Deaths[playerid] = dini_Int(check, "Deaths");
Level[playerid] = dini_Int(check, "level");
Admin[playerid] = dini_Int(check, "admin");
}
else ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Iniciar con su cuenta", "Contraseсa incorrecta\nPor favor intrudusca su contraseсa:", "Entrar", "Salir");
}
}
else
{
SCM(playerid, 0xFF0000AA, "FATAL ERROR: UNKNOWN ERROR 1");
Kick(playerid);
}
return 1;
}
}
else
{
if(dialogid == 1) //register
{
Kick(playerid);
}
if(dialogid == 2)
{
Kick(playerid);
}
if(dialogid == 3)
/// WARNING! I SCRAPPED THE SKILL SYSTEM. YOU CAN ACTIVATE IT BY REMOVING THE "/^ ^/"
if(dialogid == 4) //Deagle edit
{
}
}
return 0;