[Ajuda] Grana Multiplicando.
#1

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(stringsizeof(string), "© {FFFFFF}Bem vindo Novamente ao Servidor %s\n© {FFFFFF}Digite sua Senha para Logar\n© {FFFFFF}Estado: {00CC00}Registrado"PlayerName(playerid));
        
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"{00CC00}Logar no Servidor"string"Logar","Sair");
    }
    else
    {
        
// DIALOG REGISTRO
        
format(stringsizeof(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(playeridDIALOG_REGISTRODIALOG_STYLE_INPUT"{CC0000}Registrar no Servidor"string"Registrar","Sair");
    }
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    
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(playeriddialogidresponselistiteminputtext[])
{
    new 
string[350];
    if(!
isnull(inputtext))
    {
    if(
strfind(inputtext"%"true) != -1) return SendClientMessage(playeridERRO"| ERRO | Retire os caracteres de porcentagem (%%)");
    }
    if(
dialogid == DIALOG_LOGIN)
    {
        if(!
response)
        {
            
Kick(playerid);
            return 
1;
        }
        if(
strlen(inputtext) < || strlen(inputtext) > 20)
        {
            
format(stringsizeof(string), "© {FFFFFF}Bem vindo Novamente ao Servidor %s\n© {FFFFFF}Digite sua Senha para Logar\n© {FFFFFF}Estado: {00CC00}Registrado"PlayerName(playerid));
            
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"{00CC00}Logar no Servidor"string"Logar","Sair");
            
SendClientMessage(playeridERRO"| ERRO | Digite uma senha entre 4 a 20 caracteres.");
            return 
1;
        }
        if(
strcmp(inputtextDOF2_GetString(ContaPlayer(playerid), "Senha"), true) == 0)
        {
            
CarregarConta(playerid);
            
SendClientMessage(playeridAZUL2"| LOGIN | Login efetuado com sucesso");
            return 
1;
        }
        else
        {
            if(
tentativas[playerid] == 3)
            {
                
format(stringsizeof(string), "| KICK | %s foi kickado por errar 3 vezes a senha"PlayerName(playerid));
                
SendClientMessageToAll(ERROstring);
                
KickPlayer(playerid);
                return 
1;
            }
            else
            {
                
tentativas[playerid]++;
                
format(stringsizeof(string), "| ERRO | Senha digitada estб incorreta tentativas: (%d/3)"tentativas[playerid]);
                
SendClientMessage(playeridERROstring);
                
format(stringsizeof(string), "© {FFFFFF}Bem vindo Novamente ao Servidor %s\n© {FFFFFF}Digite sua Senha para Logar\n© {FFFFFF}Estado: {00CC00}Registrado"PlayerName(playerid));
                
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"{00CC00}Logar no Servidor"string"Logar","Sair");
            }
        }
    }
    if(
dialogid == DIALOG_REGISTRO)
    {
        if(!
response)
        {
            
Kick(playerid);
            return 
1;
        }
        if(
strlen(inputtext) < || strlen(inputtext) > 20)
        {
            
format(stringsizeof(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(playeridDIALOG_REGISTRODIALOG_STYLE_INPUT"{CC0000}Registrar no Servidor"string"Registrar","Sair");
            
SendClientMessage(playeridERRO"| 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(playeridAZUL2"| REGISTRO | Registro efetuado com sucesso");
                
SendClientMessage(playeridAZUL2"| INFO | Vocк recebe 500$ de Cash e 1 Level! Relogue para Receceber.");
                return 
1;
            }
        }
    }
    return 
0;
}
stock ContaPlayer(playerid)
{
    new 
file[50];
    
format(filesizeof(file), PASTA_CONTASPlayerName(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(playeridpInfo[playerid][Dinheiro]);
    
SetPlayerScore(playeridpInfo[playerid][Score]);
    
SendClientMessage(playeridAZUL2"| LOGIN | Suas informaзхes foram carregadas com sucesso");
    return 
1;
}
stock sGivePlayerCash(playeridquantia)
{
    
GivePlayerCash(playeridquantia);
    
DOF2_SetInt(ContaPlayer(playerid), "Dinheiro"GetPlayerCash(playerid));

Reply
#2

Acho que pode ser porque vocк estб carregando a conta do player no OnPlayerConnect e no OnPlayerDialogResponse.
Reply
#3

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
    if(
DOF2_FileExists(ContaPlayer(playerid))) 
    { 
        
//Login 
        
format(stringsizeof(string), "© {FFFFFF}Bem vindo Novamente ao Servidor %s\n© {FFFFFF}Digite sua Senha para Logar\n© {FFFFFF}Estado: {00CC00}Registrado"PlayerName(playerid)); 
        
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"{00CC00}Logar no Servidor"string"Logar","Sair"); 
    } 
    else 
    { 
        
// DIALOG REGISTRO 
        
format(stringsizeof(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(playeridDIALOG_REGISTRODIALOG_STYLE_INPUT"{CC0000}Registrar no Servidor"string"Registrar","Sair"); 
    } 
    return 
1

public 
OnPlayerDisconnect(playeridreason

    
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(playeriddialogidresponselistiteminputtext[]) 

    new 
string[350]; 
    if(!
isnull(inputtext)) 
    { 
    if(
strfind(inputtext"%"true) != -1) return SendClientMessage(playeridERRO"| ERRO | Retire os caracteres de porcentagem (%%)"); 
    } 
    if(
dialogid == DIALOG_LOGIN
    { 
        if(!
response
        { 
            
Kick(playerid); 
            return 
1
        } 
        if(
strlen(inputtext) < || strlen(inputtext) > 20
        { 
            
format(stringsizeof(string), "© {FFFFFF}Bem vindo Novamente ao Servidor %s\n© {FFFFFF}Digite sua Senha para Logar\n© {FFFFFF}Estado: {00CC00}Registrado"PlayerName(playerid)); 
            
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"{00CC00}Logar no Servidor"string"Logar","Sair"); 
            
SendClientMessage(playeridERRO"| ERRO | Digite uma senha entre 4 a 20 caracteres."); 
            return 
1
        } 
        if(
strcmp(inputtextDOF2_GetString(ContaPlayer(playerid), "Senha"), true) == 0
        { 
            
CarregarConta(playerid); 
            
SendClientMessage(playeridAZUL2"| LOGIN | Login efetuado com sucesso"); 
            return 
1
        } 
        else 
        { 
            if(
tentativas[playerid] == 3
            { 
                
format(stringsizeof(string), "| KICK | %s foi kickado por errar 3 vezes a senha"PlayerName(playerid)); 
                
SendClientMessageToAll(ERROstring); 
                
KickPlayer(playerid); 
                return 
1
            } 
            else 
            { 
                
tentativas[playerid]++; 
                
format(stringsizeof(string), "| ERRO | Senha digitada estб incorreta tentativas: (%d/3)"tentativas[playerid]); 
                
SendClientMessage(playeridERROstring); 
                
format(stringsizeof(string), "© {FFFFFF}Bem vindo Novamente ao Servidor %s\n© {FFFFFF}Digite sua Senha para Logar\n© {FFFFFF}Estado: {00CC00}Registrado"PlayerName(playerid)); 
                
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"{00CC00}Logar no Servidor"string"Logar","Sair"); 
            } 
        } 
    } 
    if(
dialogid == DIALOG_REGISTRO
    { 
        if(!
response
        { 
            
Kick(playerid); 
            return 
1
        } 
        if(
strlen(inputtext) < || strlen(inputtext) > 20
        { 
            
format(stringsizeof(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(playeridDIALOG_REGISTRODIALOG_STYLE_INPUT"{CC0000}Registrar no Servidor"string"Registrar","Sair"); 
            
SendClientMessage(playeridERRO"| 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(playeridAZUL2"| REGISTRO | Registro efetuado com sucesso"); 
                
SendClientMessage(playeridAZUL2"| INFO | Vocк recebe 500$ de Cash e 1 Level! Relogue para Receceber."); 
                return 
1
            } 
        } 
    } 
    return 
0

stock ContaPlayer(playerid

    new 
file[50]; 
    
format(filesizeof(file), PASTA_CONTASPlayerName(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(playeridpInfo[playerid][Dinheiro]); 
    
SetPlayerScore(playeridpInfo[playerid][Score]); 
    
SendClientMessage(playeridAZUL2"| LOGIN | Suas informaзхes foram carregadas com sucesso"); 
    return 
1

stock sGivePlayerCash(playeridquantia

    
GivePlayerCash(playeridquantia); 
    
DOF2_SetInt(ContaPlayer(playerid), "Dinheiro"GetPlayerCash(playerid)); 

E cria uma variбvel em OnPlayerConnect que diz que o player estб deslogado e a mesma variбvel, porйm true, quando o player efetuar login
Reply
#4

Quote:
Originally Posted by zMorningStar
Посмотреть сообщение
Acho que pode ser porque vocк estб carregando a conta do player no OnPlayerConnect e no OnPlayerDialogResponse.
E nгo era isso mesmo. kkkk vlw Mano, Vc й foda.
Continue ajudando os Leks, vc vai longe.
<3 Vlw a todos que me ajudaram.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)