19.01.2018, 14:56
Vou explicar.. Quando eu seto Tipo 10K de Grana na pasta fica 10K sу que quando eu relogo e entro denovo a grana Multiplica entende? '-' Tipo fica 20k, ai se eu sair e entrar denovo vai pra 40k e assim sucessivamente.. Nгo tou postando mais a gamemode Pq ta mt Grande e jб tou comeзando Sistema de Profissгo :P
PHP код:
#define GivePlayerCash(%0,%1) SetPVarInt(%0,"Money",GetPlayerCash(%0)+%1),GivePlayerMoney(%0,%1)
#define ResetPlayerCash(%0) SetPVarInt(%0,"Money",0),ResetPlayerMoney(%0)
#define GetPlayerCash(%0) GetPVarInt(%0,"Money")
#define PASTA_CONTAS "Contas/%s.ini" // Feito
#define DIALOG_LOGIN 638 // Feito
#define DIALOG_REGISTRO 639 // Feito
enum PlayerInfo
{
Dinheiro,
Cargo,
Prof,
Score
}
new pInfo[MAX_PLAYERS][PlayerInfo];
public OnPlayerConnect(playerid)
{
new string[150];
tentativas[playerid] = 0;
CarregarConta(playerid);
if(DOF2_FileExists(ContaPlayer(playerid)))
{
//Login
format(string, sizeof(string), "© {FFFFFF}Bem vindo Novamente ao Servidor %s\n© {FFFFFF}Digite sua Senha para Logar\n© {FFFFFF}Estado: {00CC00}Registrado", PlayerName(playerid));
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{00CC00}Logar no Servidor", string, "Logar","Sair");
}
else
{
// DIALOG REGISTRO
format(string, sizeof(string), "© {FFFFFF}Bem vindo Pela Primeira Vez no Servidor %s\n© {FFFFFF}Digite uma Senha Para Registrar\n© {FFFFFF}Estado: {CC0000}Nгo Registrado", PlayerName(playerid));
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "{CC0000}Registrar no Servidor", string, "Registrar","Sair");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
DOF2_SetInt(ContaPlayer(playerid), "Dinheiro", GetPlayerCash(playerid));
DOF2_SetInt(ContaPlayer(playerid), "Score", GetPlayerScore(playerid));
DOF2_SetInt(ContaPlayer(playerid), "Cargo", pInfo[playerid][Cargo]);
DOF2_SetInt(ContaPlayer(playerid), "Prof", pInfo[playerid][Prof]);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new string[350];
if(!isnull(inputtext))
{
if(strfind(inputtext, "%", true) != -1) return SendClientMessage(playerid, ERRO, "| ERRO | Retire os caracteres de porcentagem (%%)");
}
if(dialogid == DIALOG_LOGIN)
{
if(!response)
{
Kick(playerid);
return 1;
}
if(strlen(inputtext) < 4 || strlen(inputtext) > 20)
{
format(string, sizeof(string), "© {FFFFFF}Bem vindo Novamente ao Servidor %s\n© {FFFFFF}Digite sua Senha para Logar\n© {FFFFFF}Estado: {00CC00}Registrado", PlayerName(playerid));
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{00CC00}Logar no Servidor", string, "Logar","Sair");
SendClientMessage(playerid, ERRO, "| ERRO | Digite uma senha entre 4 a 20 caracteres.");
return 1;
}
if(strcmp(inputtext, DOF2_GetString(ContaPlayer(playerid), "Senha"), true) == 0)
{
CarregarConta(playerid);
SendClientMessage(playerid, AZUL2, "| LOGIN | Login efetuado com sucesso");
return 1;
}
else
{
if(tentativas[playerid] == 3)
{
format(string, sizeof(string), "| KICK | %s foi kickado por errar 3 vezes a senha", PlayerName(playerid));
SendClientMessageToAll(ERRO, string);
KickPlayer(playerid);
return 1;
}
else
{
tentativas[playerid]++;
format(string, sizeof(string), "| ERRO | Senha digitada estб incorreta tentativas: (%d/3)", tentativas[playerid]);
SendClientMessage(playerid, ERRO, string);
format(string, sizeof(string), "© {FFFFFF}Bem vindo Novamente ao Servidor %s\n© {FFFFFF}Digite sua Senha para Logar\n© {FFFFFF}Estado: {00CC00}Registrado", PlayerName(playerid));
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{00CC00}Logar no Servidor", string, "Logar","Sair");
}
}
}
if(dialogid == DIALOG_REGISTRO)
{
if(!response)
{
Kick(playerid);
return 1;
}
if(strlen(inputtext) < 4 || strlen(inputtext) > 20)
{
format(string, sizeof(string), "© {FFFFFF}Bem vindo Pela Primeira Vez no Servidor %s\n© {FFFFFF}Digite uma Senha Para Registrar\n© {FFFFFF}Estado: {CC0000}Nгo Registrado", PlayerName(playerid));
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "{CC0000}Registrar no Servidor", string, "Registrar","Sair");
SendClientMessage(playerid, ERRO, "| ERRO | Digite uma senha entre 4 a 20 caracteres.");
return 1;
}
else
{
if(!DOF2_FileExists(ContaPlayer(playerid)))
{
DOF2_CreateFile(ContaPlayer(playerid));
DOF2_SetString(ContaPlayer(playerid), "Senha", inputtext);
DOF2_SetInt(ContaPlayer(playerid), "Dinheiro", 0);
DOF2_SetInt(ContaPlayer(playerid), "Prof", 0);
DOF2_SetInt(ContaPlayer(playerid), "Score", 1);
DOF2_SetInt(ContaPlayer(playerid), "Cargo", 0);
DOF2_SaveFile();
SendClientMessage(playerid, AZUL2, "| REGISTRO | Registro efetuado com sucesso");
SendClientMessage(playerid, AZUL2, "| INFO | Vocк recebe 500$ de Cash e 1 Level! Relogue para Receceber.");
return 1;
}
}
}
return 0;
}
stock ContaPlayer(playerid)
{
new file[50];
format(file, sizeof(file), PASTA_CONTAS, PlayerName(playerid));
return file;
}
stock CarregarConta(playerid)
{
pInfo[playerid][Dinheiro] = DOF2_GetInt(ContaPlayer(playerid),"Dinheiro");
pInfo[playerid][Prof] = DOF2_GetInt(ContaPlayer(playerid), "Prof");
pInfo[playerid][Score] = DOF2_GetInt(ContaPlayer(playerid), "Score");
pInfo[playerid][Cargo] = DOF2_GetInt(ContaPlayer(playerid), "Cargo");
sGivePlayerCash(playerid, pInfo[playerid][Dinheiro]);
SetPlayerScore(playerid, pInfo[playerid][Score]);
SendClientMessage(playerid, AZUL2, "| LOGIN | Suas informaзхes foram carregadas com sucesso");
return 1;
}
stock sGivePlayerCash(playerid, quantia)
{
GivePlayerCash(playerid, quantia);
DOF2_SetInt(ContaPlayer(playerid), "Dinheiro", GetPlayerCash(playerid));
}