Sistema UP Bugando -
AllanSG - 22.02.2018
Olб Novamente, Eu fiz um sistema de UP em meu GM, ele conta o tempo certinho, da a quantia de EXP que eu quis, salva certinho, Maas quando tem mais de 1 jogador online, quando acaba o tempo de um, seta o EXP para todos, й como se tivesse feito o timer para todos, mas nгo й, veja abaixo o sistema,
Em OnPlayerConnect:
pawn Код:
SetTimerEx("TempoExp", 720000, true, "i", playerid); // comeзa a contar 12 minutos para upar
OnPlayerDisconnect:
pawn Код:
SavePlayer(playerid);
KillTimer(TempoExp(playerid));
Public TempoExp
pawn Код:
forward TempoExp(playerid);
public TempoExp(playerid)
{
new texto[256], msg[256];
if(GetPlayerScore(playerid) == 0)
{
Player[playerid][Exp] += 10000;
format(msg, sizeof(msg), "| UP | Vocк Acaba De Receber 10000 De EXP! (%d/10000)", Player[playerid][Exp]);
SendClientMessage(playerid, 0x2fee00ff, msg);
}
if(GetPlayerScore(playerid) >= 1 && GetPlayerScore(playerid) <= 10)
{
Player[playerid][Exp] += 5000;
format(msg, sizeof(msg), "| UP | Vocк Acaba De Receber 5000 De EXP! (%d/10000)", Player[playerid][Exp]);
SendClientMessage(playerid, 0x2fee00ff, msg);
}
if(GetPlayerScore(playerid) > 10 && GetPlayerScore(playerid) <= 50)
{
Player[playerid][Exp] += 4500;
format(msg, sizeof(msg), "| UP | Vocк Acaba De Receber 4500 De EXP! (%d/10000)", Player[playerid][Exp]);
SendClientMessage(playerid, 0x2fee00ff, msg);
}
if(GetPlayerScore(playerid) > 50 && GetPlayerScore(playerid) <= 100)
{
Player[playerid][Exp] += 4000;
format(msg, sizeof(msg), "| UP | Vocк Acaba De Receber 4000 De EXP! (%d/10000)", Player[playerid][Exp]);
SendClientMessage(playerid, 0x2fee00ff, msg);
}
if(GetPlayerScore(playerid) > 100 && GetPlayerScore(playerid) <= 500)
{
Player[playerid][Exp] += 3000;
format(msg, sizeof(msg), "| UP | Vocк Acaba De Receber 3000 De EXP! (%d/10000)", Player[playerid][Exp]);
SendClientMessage(playerid, 0x2fee00ff, msg);
}
if(GetPlayerScore(playerid) > 500 && GetPlayerScore(playerid) <= 800)
{
Player[playerid][Exp] += 2000;
format(msg, sizeof(msg), "| UP | Vocк Acaba De Receber 2000 De EXP! (%d/10000)", Player[playerid][Exp]);
SendClientMessage(playerid, 0x2fee00ff, msg);
}
if(GetPlayerScore(playerid) > 800)
{
Player[playerid][Exp] += 1000;
format(msg, sizeof(msg), "| UP | Vocк Acaba De Receber 1000 De EXP! (%d/10000)", Player[playerid][Exp]);
SendClientMessage(playerid, 0x2fee00ff, msg);
}
if(Player[playerid][Exp] >= 10000)
{
SetPlayerScore(playerid, GetPlayerScore(playerid) + 1);
format(texto, sizeof(texto), "| UP | Vocк Acaba De Upar De Level! Totalizando %d Leveis!", GetPlayerScore(playerid));
SendClientMessage(playerid, 0x2fee00ff, texto);
Player[playerid][Exp] -= 10000;
Player[playerid][Score] += 1;
}
GameTextForPlayer(playerid, "~p~up", 2000, 3);
DOF2_SetInt( GetPlayerArquivo( playerid ), "Score", Player[ playerid ][ Score ] );
return 1;
}
o que tem de errado? variaveis de Score e EXP sao:
pawn Код:
Player[playerid][Score]
Player[playerid][Exp]
Re: Sistema UP Bugando -
Ermanhaut - 22.02.2018
Nгo seria
Player[MAX_PLAYERS][Score] e
Player[MAX_PLAYERS][Exp]?
Re: Sistema UP Bugando -
AllanSG - 22.02.2018
Nгo:
pawn Код:
SavePlayer(playerid)
{
if( DOF2_FileExists( GetPlayerArquivo( playerid ) ) )
{
DOF2_CreateFile(GetPlayerArquivo(playerid));
DOF2_SetInt( GetPlayerArquivo( playerid ), "Score", Player[ playerid ][ Score ] );
DOF2_SetInt( GetPlayerArquivo( playerid ), "Exp", Player[playerid][ Exp ] );
DOF2_SaveFile();
}
return 1;
}
LoadPlayer(playerid)
{
if( DOF2_FileExists( GetPlayerArquivo( playerid ) ) )
{
Player[ playerid ][ Score ] = DOF2_GetInt( GetPlayerArquivo( playerid ), "Score" );
Player[ playerid ][ Exp ] = DOF2_GetInt( GetPlayerArquivo( playerid ), "Exp" );
SetPlayerScore( playerid, Player[ playerid ][ Score ] );
}
return 1;
}
Re: Sistema UP Bugando -
Ermanhaut - 22.02.2018
Na verdade, esquece.
Minha linha de pensamento estava errada.
Re: Sistema UP Bugando -
TheusCrazzy - 22.02.2018
Olб, nгo sei se jб tentou, nгo sei se vai resolver, mas porque vocк nгo usa assim:
Em
OnPlayerConnect:
PHP код:
SetTimerEx("TempoExp", 12 * 60000, false, "i", playerid); // (sem repetir)
Na
public TempoExp vocк inicia o tempo novamente:
PHP код:
SetTimerEx("TempoExp", 12 * 60000, false, "i", playerid); // (sem repetir)
Re: Sistema UP Bugando -
AllanSG - 22.02.2018
Creio eu que nгo irб resolver, o problema nгo estб na contagem, o problema й que o EXP de um jogador, й dado a todos, Exemplo: Eu estou logado a 11 minutos, faltando 1 para eu receber UP, e mais alguem loga no servidor, quando acabar os 1 minutos que faltava pra mim, o outro jogador tambem recebe, espero que possam me ajudar
Re: Sistema UP Bugando -
SamuelMatheus05 - 22.02.2018
Mano colocar isso cria uma variavel pro timer
PHP код:
new TempoUp[MAX_PLAYERS];
// na public on playerconnect
TempoUp[playerid] = SetTimerEx("TempoExp", 720000, true, "i", playerid);
e aqui n vejo necessidade disso:
PHP код:
Player[playerid][Exp] += 10000;
//coloca
Player[playerid][Exp] +10000;
creio q irá ajudar
(MAS VC QUER Q MANDA SÓ PARA 1 PLAYER OU PARA TODOS?, SE FOR PARA 1 SÓ CREIO Q ESSE SEJA O CERTO..)
Re: Sistema UP Bugando -
AllanSG - 23.02.2018
Valeu SamuelMatheus05, era isso mesmo que faltava, tmj, +REP