19/10/2023 16:17
(Esta mensagem foi modificada pela última vez a: 19/10/2023 16:30 por Cifra Modder.)
(19/10/2023 08:33)pushline Escreveu: Tenho a teoria pra você:
Sistema de vip temporário é só criar uma booleana "isVip" e um váriavel do tempo do vip (pro player na sua enum), podes fazer a manipulação de tempo com gettime() ou pawn-chrono.
Quando o tempo (gettime / unix epoch) atual passar o tempo adicionado no dia, retirar o vip do player (isvip = false) e excluir da tabela / excluir do dof2.
Sim você está totalmente certo. Só que acho que minha hospedagem está com algum problema, quando eu seto o gettime com o horário, minutos, segundo, no arquivo do player salva um número nada aver, por exemplo: 170828....
Eu tentei usar isso:
Código:
#define OneDay 3600*24
Código:
gettime() + (OneDay * 30);
(19/10/2023 10:45)leonardos08bt Escreveu: Em Gettime:
Comprou/Setou um VIP:
Código:User[playerid][TempoVIP] = gettime()+(86400*MESES); //Substitua o MESES pela quantidade de meses do VIP
Verificar se possui VIP e se o tempo expirou:
Código:stock VerificarVIP(playerid)
{
if(User[playerid][NivelVIP] > 0 && (User[playerid][TempoVIP] - gettime()) > 0) //Verifica se é VIP e se o tempo não expirou
return true;
else //Caso não tenha VIP ou o tempo expirou:
{
if(User[playerid][NivelVIP] > 0) { //Verifica se o Player possui VIP (tempo expirou)
User[playerid][NivelVIP] = 0; //Seta o nível vip para 0
User[playerid][TempoVIP] = 0; //Seta o tempo do vip para 0
SendClientMessage(playerid, -1, "Seu vip acabou!");
}
return false;
}
}
A stock verificar vip pode ser usada em timer de um segundo ou na hora do login do player, fica a seu critério de como irá utilizar.
Eu tentei dessa forma agora, só que deu um número nada aver que sai dos cálculos da gettime. Salvo esses números: 1699039694