[Ajuda] dъvida DOF2
#1

Entгo galera,eu fui mudar a maneira de salvar as mortes e os assasinatos dos players.
antes era assim
pawn Код:
new Matou[MAX_PLAYERS];
new Morreu[MAX_PLAYERS];

public OnPlayerDeath(playerid, killerid, reason)
{
SendDeathMessage(killerid, playerid, reason);
if(IsPlayerConnected(killerid))
{
GameTextForPlayer(playerid,"~r~Seu nub morreu pra esse cara",5000,5);
GameTextForPlayer(killerid,"~g~Ae tu matou esse otario",3000,5);
Matou[playerid]++;
SetPlayerScore(killerid,GetPlayerScore(playerid)+1);
GivePlayerMoney(killerid,GetPlayerMoney(playerid)+1000);
Morreu[playerid]++;
SetPlayerScore(playerid,GetPlayerScore(playerid)-1);
GivePlayerMoney(playerid,GetPlayerMoney(playerid)-1000);
}
return 1;
}


// e no final

SetarPlayer(playerid)
{
    new contastexto[50];
    new Nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Nome, sizeof(Nome));
    format(contastexto, sizeof(contastexto), CONTAS, Nome);
    GivePlayerMoney(playerid, DOF2_GetInt(contastexto,"Dinheiro"));
    SetPlayerScore(playerid, DOF2_GetInt(contastexto,"Score"));
    Admin[playerid] = DOF2_GetInt(contastexto,"Admin");
    Matou[playerid] = DOF2_GetInt(contastexto, "Matou");
    Morreu[playerid] = DOF2_GetInt(contastexto, "Morreu");
   
    return 1;
}


SalvarContas(playerid)
{
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid,Nome,sizeof(Nome));
new String[50];
format(String,sizeof(String),CONTAS,Nome);
DOF2_SetInt(String,"Admin", Admin[playerid]);
DOF2_SetInt(String,"Score", GetPlayerScore(playerid));
DOF2_SetInt(String,"Dinheiro", GetPlayerMoney(playerid));
DOF2_SetInt(String,"Matou",Matou[playerid]);
DOF2_SetInt(String,"Morreu",Morreu[playerid]);
DOF2_SaveFile();
     return 1;
}
e salvava de boa,mas ai inventei de mudar pra isso:
pawn Код:
enum info
{
 dinheiro,
 score,
 matou,
 morreu
 }
new pInfo[MAX_PLAYERS][info];

public OnPlayerDeath(playerid, killerid, reason)
{
SendDeathMessage(killerid, playerid, reason);
if(IsPlayerConnected(killerid))
{
GameTextForPlayer(playerid,"~r~Seu nub morreu pra esse cara",5000,5);
GameTextForPlayer(killerid,"~g~Ae tu matou esse otario",3000,5);
pInfo[killerid][matou]++;
SetPlayerScore(killerid,GetPlayerScore(playerid)+1);
GivePlayerMoney(killerid,GetPlayerMoney(playerid)+1000);
pInfo[playerid][morreu]++;
SetPlayerScore(playerid,GetPlayerScore(playerid)-1);
GivePlayerMoney(playerid,GetPlayerMoney(playerid)-1000);
}
return 1;
}

SetarPlayer(playerid)
{
    new contastexto[50];
    new Nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Nome, sizeof(Nome));
    format(contastexto, sizeof(contastexto), CONTAS, Nome);
    GivePlayerMoney(playerid, DOF2_GetInt(contastexto,"Dinheiro"));
    SetPlayerScore(playerid, DOF2_GetInt(contastexto,"Score"));
    Admin[playerid] = DOF2_GetInt(contastexto,"Admin");
    pInfo[playerid][matou] = DOF2_GetInt(contastexto, "Matou");
    pInfo[playerid][morreu] = DOF2_GetInt(contastexto, "Morreu");
   
    return 1;
}


SalvarContas(playerid)
{
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid,Nome,sizeof(Nome));
new String[50];
format(String,sizeof(String),CONTAS,Nome);
DOF2_SetInt(String,"Admin", Admin[playerid]);
DOF2_SetInt(String,"Score", GetPlayerScore(playerid));
DOF2_SetInt(String,"Dinheiro", GetPlayerMoney(playerid));
DOF2_SetInt(String,"Matou",pInfo[playerid][matou]);
DOF2_SetInt(String,"Morreu",pInfo[playerid][morreu]);
DOF2_SaveFile();
     return 1;
}
Reply
#2

nгo salva mais? qual o problema?
Reply
#3

simplesmente nгo salva o.o

tipo,salva o dinheiro,conta, e etc..
mas a morte e o assasinato nгo o.o
posso matar a vontade,e morrer a vontade,mas salvar que й bom nгo salva :C
Reply
#4

o codigo nгo parece possuir erros .. tem certeza que o erro nгo estб em outro local
Reply
#5

pawn Код:
Matou[playerid]++;
Isso estava errado, quem deve ganhar um ponto pela morte й o killerid e nгo o playerid. Mas concertou isso no segundo cуdigo.

Verifique se o valor й setado no arquivo .ini, se sim, nesse caso o problema й no carregamento e nгo no salvamento.

Manda o contastexto e o CONTAS.
Reply
#6

Quote:
Originally Posted by Josma_cmd
Посмотреть сообщение
pawn Код:
Matou[playerid]++;
Isso estava errado, quem deve ganhar um ponto pela morte й o killerid e nгo o playerid. Mas concertou isso no segundo cуdigo.

Verifique se o valor й setado no arquivo .ini, se sim, nesse caso o problema й no carregamento e nгo no salvamento.

Manda o contastexto e o CONTAS.
=D, й por que eu fiz o primeiro cуdigo as preзas,pois jб o tinha apagado,mas lembro dele.

pawn Код:
#define CONTAS "Players/%s.ini"
new contastexto[50];

SetarPlayer(playerid)
{
    new Nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Nome, sizeof(Nome));
    format(contastexto, sizeof(contastexto), CONTAS, Nome);
    GivePlayerMoney(playerid, DOF2_GetInt(contastexto,"Dinheiro"));
    SetPlayerScore(playerid, DOF2_GetInt(contastexto,"Score"));
    Admin[playerid] = DOF2_GetInt(contastexto,"Admin");
    pInfo[playerid][matou] = DOF2_GetInt(contastexto, "Matou");
    pInfo[playerid][morreu] = DOF2_GetInt(contastexto, "Morreu");
   
    return 1;
}


SalvarContas(playerid)
{
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid,Nome,sizeof(Nome));
new String[50];
format(String,sizeof(String),CONTAS,Nome);
DOF2_SetInt(String,"Admin", Admin[playerid]);
DOF2_SetInt(String,"Score", GetPlayerScore(playerid));
DOF2_SetInt(String,"Dinheiro", GetPlayerMoney(playerid));
DOF2_SetInt(String,"Matou",pInfo[playerid][matou]);
DOF2_SetInt(String,"Morreu",pInfo[playerid][morreu]);
DOF2_SaveFile();
     return 1;
}
contastexto sу й usado nisso ai em cima :P
Reply
#7

UP ?
o.o
Reply
#8

Responda minha duvida.
Vocк abriu o arquivo Players/Seu_Nick.ini
Lб dentro existe o valor Matou e Morreu? Se sim, ele foi salvo e nгo estб sendo carregado.
Se nгo, ele nгo foi salvo pra ser carregado.
A partir disso podemos refazer o que pode tar errado.
Reply
#9

Sim,lб existe o Matou e morreu.
Reply
#10

Pra mim o cуdigo de carregamento estб certo, tanto que pelo que vocк disse carrega o nнvel de adm score e dinheiro do player.
Use o printf pra ver se o valor carregado pelo GetInt й nulo. Se hб valor na variбvel.
Deixa o cуdigo ser executado e manda exatamente o que apareceu no console(samp server, o prompt, a tela preta)


pawn Код:
SetarPlayer(playerid)
{
    new Nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Nome, sizeof(Nome));
    format(contastexto, sizeof(contastexto), CONTAS, Nome);
    GivePlayerMoney(playerid, DOF2_GetInt(contastexto,"Dinheiro"));
    SetPlayerScore(playerid, DOF2_GetInt(contastexto,"Score"));
    Admin[playerid] = DOF2_GetInt(contastexto,"Admin");

    printf("Matou: %d, Morreu: %d", pInfo[playerid][matou], pInfo[playerid][morreu]);

    pInfo[playerid][matou] = DOF2_GetInt(contastexto, "Matou");
    pInfo[playerid][morreu] = DOF2_GetInt(contastexto, "Morreu");

    printf("Matou: %d, Morreu: %d [Segundo Print]", pInfo[playerid][matou], pInfo[playerid][morreu]);

    printf("Matou: %d", DOF2_GetInt(contastexto, "Matou");
    printf("Morreu: %d",DOF2_GetInt(contastexto, "Morreu");
   
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)