format(Query, sizeof(Query), "UPDATE `vip` SET `vipNome`='%s',`vipGetTime`='%i' WHERE `vipKey`='%s'",
PlayerInfo[playerid][pNome],(VipInfo[playerid][vDias] * 24 * 60 * 60) + gettime(),key);
db_query(Connect, Query);
ChecarVip(playerid);
new Query[90], DBResult:Resultado;
format(Query, sizeof(Query), "SELECT * FROM `vip` WHERE `vipNome`='%s'", PlayerInfo[playerid][pNome]);
Resultado = db_query(Connect, Query);
if(db_num_rows(Resultado))
{
VipInfo[playerid][vLevel] = db_get_field_assoc_int(Resultado, "vipLevel");
db_get_field_assoc(Resultado, "vipKey", VipInfo[playerid][vKey], 13);
VipInfo[playerid][vDias] = db_get_field_assoc_int(Resultado, "vipDias");
VipInfo[playerid][vGetTime] = db_get_field_assoc_int(Resultado, "vipGetTime");
if(gettime() >= VipInfo[playerid][vGetTime])
{
format(Query, sizeof(Query), "DELETE FROM `vip` WHERE `vipNome`='%s'", PlayerInfo[playerid][pNome]);
db_query(Connect, Query);
SendClientMessage(playerid,COR_AMARELO,"=-=-=-=-= VENCIMENTO =-=-=-=-=");
SendClientMessage(playerid,COR_AMARELO,"Infelizmente, seu Vip venceu!");
SendClientMessage(playerid,COR_AMARELO,"=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
ResetVipStats(playerid);
}
}
if(gettime() >= VipInfo[playerid][vGetTime])
new Hour, Minute, Second, Timestamp; Timestamp = gettime(Hour, Minute, Second); printf("%02d:%02d:%02d", Hour, Minute, Second); printf("Seconds since midnight 1st January 1970: %d", Timestamp);
(VipInfo[playerid][vDias] * 24 * 60 * 60) + gettime()
new vipDias[MAX_PLAYERS];
vipDias[playerid] = gettime() + dias
https://sampwiki.blast.hk/wiki/Gettime
gettime tem que ser chamado com variaveis para guardar hora minuto e segundo. deve ser por isso. Код:
new Hour, Minute, Second, Timestamp; Timestamp = gettime(Hour, Minute, Second); printf("%02d:%02d:%02d", Hour, Minute, Second); printf("Seconds since midnight 1st January 1970: %d", Timestamp); |
Entгo, disso eu sei, mais em dois sistemas parecidos que vi, eles utilizam desta maneira sem salvar em nenhuma variбvel.Eu li no wiki que o gettime()sem parвmetros retorna um "codigo" sу nгo entendi muito bem como funciona.
Mais obrigado pela ajuda, irei tentar fazer por getdate, se souber de algum sistema base com getdate e puder mandar pra min eu agradeзo! |
format(Query, sizeof(Query), "UPDATE `vip` SET `vipNome`='%s',`vipGetTime`='%i' WHERE `vipKey`='%s'",
PlayerInfo[playerid][pNome],(1 * 24 * 60 * 60) + gettime(),key);
db_query(Connect, Query);
ChecarVip(playerid);
Nгo й relativo ao seu problema, mas queria soltar uma opiniгo em relaзгo ao seu codigo.
ChecarVip = CheckVip pNome = pName vDias = vDays Resultado = Result ========= OU ======== PlayerInfo = InfoJogador ChecarVip = AnalisarVip etc etc.... Ou faзa tudo em portugues, ou tudo em ingles Nгo misture Se deseja avanзar na area do script / programaзгo, tente comeзar por ser coerente e escrever tudo em Ingles. Sobre o seu problema: Funзгo gettime() , devolve o timestamp, ou seja, o numero de segundos que passaram desde 1970 Dai sim, o valor que passa й uma quantia de segundos Some o valor que quer adicionar de vip , ao timestamp, e o resultado serб o timestamp que representa a data de termino. Apos ter esse valor, para analizar que acabou, so verifique se o timestamp atual й >= que o timestamp salvo de termino do vip. Em mysql existe um tipo de dados mesmo chamado "timestamp", que dб ao phpmyadmin uma representaзгo grafica da data correspondente. Use-o, em vez de um valor inteiro. Espero ter ajudado. |