Duvida sobre o meu sistema de payday -
kevinho.007 - 01.02.2017
Olб Pessoal eu queria tirar uma duvida com vocкs...
Eu fiz um sistema simples de payday com o tempo no qual esse tempo й salvo na conta do player
Exemplo: o Player X entra no servidor ai inicia a contagem digamos que ta em 10min ele resolve sair esses minutos serao salvo na conta dele pra quando ele logar continuar o tempo de onde ele parou atй ai tudo certo o sistema a minha duvida й que eu fiz um timer na OnGamemodeInit a cada 1 segundo ele chamar a public Atualizar
com o loop usando o foreach a minha duvida й se haver uma boa quantidade de player online se vai lagar o servidor? vou postar o codigo...
PHP код:
public OnGameModeInit()
{
SetTimer("PayDay", segundos(1), true);
SetTimer("Atualizar", 1000, true);
return 1;
}
CallBack:: Atualizar()
{
foreach(Player, i)
{
if(JogadorLogado[i])
{
PlayerInfo[i][pTempoOnline]++;
}
}
return 1;
}
CallBack:: PayDay()
{
foreach(Player,i)
{
if(JogadorLogado[i])
{
if(PlayerInfo[i][pTempoOnline] == 3600000)
{
PlayerInfo[i][pTempoOnline] = 0;
SendClientMessage(i, -1, "Funcionou o sistema");
}
}
}
}
Re: Duvida sobre o meu sistema de payday -
TheBob - 01.02.2017
primeiramente se comeзar a contar de onde o player parou, tem que ser um sistema independente!
Agora vocк coloca SetTimer("Atualizar", 600000, true); //10 minutos = 600mil segundos
na onplayerconnect.
Re: Duvida sobre o meu sistema de payday -
RodrigoMSR - 01.02.2017
Код:
if(PlayerInfo[i][pTempoOnline] == 3600000)
A callback que vocк fez aumenta 1 nъmero na variбvel a cada 1 segundo, nesse cуdigo acima vocк estб contando como milissegundos, coloque 3600.
E tambйm nгo й necessбrio 2 callbacks que fazem a mesma coisa, use sу uma:
Код:
public OnGameModeInit()
{
SetTimer("PayDay", 1000, true);
return 1;
}
CallBack:: PayDay()
{
foreach(Player,i)
{
if(JogadorLogado[i])
{
PlayerInfo[i][pTempoOnline]++;
if(PlayerInfo[i][pTempoOnline] >= 3600)
{
PlayerInfo[i][pTempoOnline] = 0;
SendClientMessage(i, -1, "Funcionou o sistema");
}
}
}
}
Re: Duvida sobre o meu sistema de payday -
kevinho.007 - 01.02.2017
Vaaaleeeu , Agora entendi +rep
Re: Duvida sobre o meu sistema de payday -
dudu_Insane - 02.02.2017
Entгo, para aumentar o tempo do payday aumente o ContagemMinutos...
Код:
// No Topo Do GM
new ContagemMinutos[MAX_PLAYERS];
new ContagemSeg[MAX_PLAYERS];
//ONDE TERMINA O TUTO DO SEU GM
ContagemMinutos[playerid] = 10;
ContagemSeg[playerid] = 59;
//SetPlayerUnjail Pode ser no OnPlayerUpdate Tambйm
if(ContagemMinutos[i] == 1 && ContagemSeg[i] <= 0)
{
PayDay(i);
}
if(ContagemSeg[i] >= 1)
{
ContagemSeg[i] -= 1;
}
else
{
ContagemMinutos[i] -= 1;
ContagemSeg[i] = 59;
}
//PUBLIC PAYDAY
ContagemMinutos[playerid] = 10;
ContagemSeg[playerid] = 59;
//OnPlayerLogin Ou Onde vocк carrega os arquivos das contas dos players
ContagemMinutos[playerid] = DOF2_GetInt(string2, "ContagemMinutos");
ContagemSeg[playerid] = DOF2_GetInt(string2, "ContagemSeg");
//OnPlayerSave Ou Local que vocк salva os arquivos das contas dos players
DOF2_SetInt(savecount, "ContagemMinutos", ContagemMinutos[playerid]);
DOF2_SetInt(savecount, "ContagemSeg", ContagemSeg[playerid]);
//OnPlayerUpdate para evitar bugs
if(ContagemMinutos[playerid] <= 0)
{
ContagemMinutos[playerid] = 10;
}