13.06.2014, 22:52
Galera estou fazendo um sistema de banco para meu server sу e queria saber como salvar o saldo do player porque dando desligo o server e ligo de volta o saldo volta como 0 vou postar como estou fazendo para poderem ver....
News
Comandos
Como estou colocando no sistema de login
News
Код:
new Saldo[MAX_PLAYERS];
Код:
if(strcmp(cmd, "/Sacar", true) == 0) { new tmp[256], dinheiro, String[200]; tmp = strtok(cmdtext, idx); dinheiro = strval(tmp); if(strlen(tmp) == 0) { SendClientMessage(playerid, -1, "{FF0000}Vocк deve digitar /Sacar [Quantia]"); return 1; } if(dinheiro > Saldo[playerid]) { SendClientMessage(playerid, -1, "{FF0000}Quantia invбlida!{FFFFFF} (Vocк pediu mais do que tem)"); return 1; } if(dinheiro < 0) { SendClientMessage(playerid, -1, "{FF0000}Quantia invбlida!{FFFFFF} (Vocк pediu um nъmero negativo)"); return 1; } GivePlayerMoney(playerid, dinheiro); Saldo[playerid] -= dinheiro; format(String, sizeof(String), "Vocк sacou $%d", dinheiro); SendClientMessage(playerid, -1, String); return 1; } if(strcmp(cmd, "/Depositar", true) == 0) { new tmp[256], dinheiro, String[200]; tmp = strtok(cmdtext, idx); dinheiro = strval(tmp); if(strlen(tmp) == 0) { SendClientMessage(playerid, -1, "{FF0000}Vocк deve digitar /Depositar [Quantia]"); return 1; } if(dinheiro > GetPlayerMoney(playerid)) { SendClientMessage(playerid, -1, "{FF0000}Quantia invбlida!{FFFFFF} (Vocк quer depositar mais do que tem)"); return 1; } if(dinheiro < 0) { SendClientMessage(playerid, -1, "{FF0000}Quantia invбlida!{FFFFFF} (Vocк digitou um nomero negativo)"); return 1; } GivePlayerMoney(playerid, -dinheiro); Saldo[playerid] += dinheiro; format(String, sizeof(String), "Vocк depositou $%d", dinheiro); SendClientMessage(playerid, -1, String); return 1; } if(strcmp(cmd, "/Saldo", true) == 0) { new String[200]; format(String, sizeof(String), "Seu saldo й de $%d", Saldo); SendClientMessage(playerid, -1, String); return 1; }
Код:
enum pInfo { pSenha, pScore, pDinheiro, pSaldo, pAdmin } new PlayerInfo[MAX_PLAYERS][pInfo]; public OnPlayerDisconnect(playerid, reason) { if(INI_Open(ObterINI(playerid))) { INI_WriteInt("Score",PlayerInfo[playerid][pScore]); INI_WriteInt("Dinheiro",GetPlayerMoney(playerid)); INI_WriteInt("Admin",PlayerInfo[playerid][pAdmin]); INI_WriteInt("Saldo",PlayerInfo[playerid][pSaldo]); INI_Save(); INI_Close(); } return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch( dialogid ) { case DIALOG_REGISTRO: { if (!response) return Kick(playerid); if (response) { if(!strlen(inputtext)) { ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, ""BRANCO"Registrando...",""VERMELHO"Vocк digitou uma senha invбlida.\n"BRANCO"Digite sua senha abaixo para registrar uma nova conta.","Registro","Quit"); } if(INI_Open(ObterINI(playerid))) { INI_WriteString("Senha",inputtext); INI_WriteInt("Score",1); INI_WriteInt("Dinheiro",5000); INI_WriteInt("Admin",0); INI_WriteInt("Saldo",0); INI_Save(); INI_Close(); ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_INPUT,""BRANCO"Logar",""BRANCO"Digite sua senha abaixo para efetuar login.","Logar","Quit"); } } } case DIALOG_LOGAR: { if ( !response ) return Kick ( playerid ); if( response ) { if(!strlen(inputtext)) { ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_INPUT, ""BRANCO"Logar",""VERMELHO"Vocк digitou uma senha invбlida.\n"BRANCO"Digite sua senha abaixo para efetuar login.","Logar","Quit"); } if(INI_Open(ObterINI(playerid))) { INI_ReadString(PlayerInfo[playerid][pSenha],"Senha",20); if(strcmp(inputtext,PlayerInfo[playerid][pSenha],false)) { ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_INPUT, ""BRANCO"Logar",""VERMELHO"Vocк digitou uma senha incorreta.\n"BRANCO"Digite sua senha abaixo para acessar.","Logar","Quit"); } SetPlayerScore( playerid, INI_ReadInt("Score" ) ); ResetPlayerMoney( playerid ); GivePlayerMoney( playerid, INI_ReadInt( "Dinheiro" ) ); PlayerInfo[playerid][pAdmin] = INI_ReadInt("Admin"); PlayerInfo[playerid][pSaldo] = INI_ReadInt("Saldo"); INI_Close(); } } } } return 1; } stock ObterINI(playerid) { new conta[64]; format(conta,30,"Contas/%s.ini",gPlayerName[playerid]); return conta; }