Vremensko skidanje VIP-levela

Započeo Nidza
pre 7 godina
1,527
pregleda
19
postova
Nidza
Shot Caller
pre 7 godina
Problem(error/warning): Zeleo bih da napravim pri komandi /makevip da se vip posle 30 dana sam skine (nezavisno dal je igrac online ili offline), gledao sam po internetu ali nisam uspeo u tome, ako bi neko mogo ovde da mi pojasni kako sta treba da radim
Dio skripte: [ pawn ]dacu sta treba[ /pawn ]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]/[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): /
mus4
Made Man
pre 7 godina
Zasto ne napravis sate vipa?
Npr
Vip 1 ima 1000h
Vip 2 ima 2000h i tako

Kada dajes komandu /makevip samo napravis tajmer koji ce mjeriti kada taj igrac udje na server i da mu skida sate i kad dodje do kraja da nema više permisije da koristi komande?

To je samo prijedlog jer ti je to laganije.
Nidza
Shot Caller
pre 7 godina
znam jesam uspeo da napravim to da mu se skidaju/dodaju sati do skidanja vipa ali samo kad je igrac in-game, zeleo bih da se vip skida i kad je offline i da se zna 30dana i tjt.
Rudimental
OG Legend
pre 7 godina
Ako zelis preko sati da napravis onda moras pomocu ovoga https://wiki.sa-mp.com/wiki/Gettime da bih radilo i kada je offline.
Ukoliko zelis preko dana jednostavno ti treba 1 varijabla na kojoj ces sacuvati datum isteka vipa potom napravis proveru kada igrac ulazi na server da proverava datum sa datumom isteka i ukoliko prodje datum napravis da mu skine vipa takodje jednostavno.
cadilab
Administrator
pre 7 godina
static 
expires_at;

// 30 dana, 1 dan je 86400 sekundi, 30 * 86400 = 30 dana u sekundama
expires_at = gettime() + (30 * 86400);

// ako je vrijeme sadasnje vece od vremena postavljanja skidas mu vipa
if(gettime() > expires_at) {
// istekao vip
}
Nidza
Shot Caller
pre 7 godina
¤ Cadilab 笨蛋 wrote on December 22, 2018, 2:34 pm:
static 
expires_at;

// 30 dana, 1 dan je 86400 sekundi, 30 * 86400 = 30 dana u sekundama
expires_at = gettime() + (30 * 86400);

// ako je vrijeme sadasnje vece od vremena postavljanja skidas mu vipa
if(gettime() > expires_at) {
// istekao vip
}

Gde treba to da ide ? ne kontam bas najbolje
Nidza
Shot Caller
pre 7 godina
ja kako god da napravim sve ispada da se vreme odbrojava kad je online
cadilab
Administrator
pre 7 godina
Ovo nema nikakve veze sa odbrojavanjem vremena, vec usporedjivanja timestampova.
Suttix
Hustler
pre 7 godina
Napravi provjeru da kada igrac udje na server da mu uzme vrijednosti datuma isteka vipa i onda provjeri ukoliko je taj datum prosao prikazi mu poruku da mu je vip istekao i set mu vipa na 0.
Nidza
Shot Caller
pre 7 godina
Suttix wrote on December 22, 2018, 6:01 pm:
Napravi provjeru da kada igrac udje na server da mu uzme vrijednosti datuma isteka vipa i onda provjeri ukoliko je taj datum prosao prikazi mu poruku da mu je vip istekao i set mu vipa na 0.

Kako to treba da izgleda odprilike jer se prvi put susrecem sa ovim.
Suttix
Hustler
pre 7 godina


// Ovo je za provjeru isteka vipa

new god,mjesec,dan; GetDate(god, mjesec, dan);

if(PlayerInfo < god) { SendClientMessage(playerid, -1, "Istekao vam je vip"); PlayerInfo = 0; }
else if(PlayerInfo == god && PlayerInfo < mjesec) { SendClientMessage(playerid, -1, "Istekao vam je vip"); PlayerInfo = 0; }
else if(PlayerInfo == god && PlayerInfo == mjesec && PlayerInfo < dan) { SendClientMessage(playerid, -1, "Istekao vam je vip"); PlayerInfo = 0; }

Macas
Enforcer
pre 7 godina
Suttix wrote on December 23, 2018, 10:27 am:


// Ovo je za provjeru isteka vipa

new god,mjesec,dan; GetDate(god, mjesec, dan);

if(PlayerInfo < god) { SendClientMessage(playerid, -1, "Istekao vam je vip"); PlayerInfo = 0; }
else if(PlayerInfo == god && PlayerInfo < mjesec) { SendClientMessage(playerid, -1, "Istekao vam je vip"); PlayerInfo = 0; }
else if(PlayerInfo == god && PlayerInfo == mjesec && PlayerInfo < dan) { SendClientMessage(playerid, -1, "Istekao vam je vip"); PlayerInfo = 0; }



if(PlayerInfo < god) a sta ako ga stavi 31. decembra pa dodje 1. januar?

CMD:makevip(playerid, params[])
{
    PlayerInfo = gettime() + (30 * 86400);
    return 1;
}

stock ProveraVipa(playerid)
{
    if(gettime() >  PlayerInfo )
    {
        PlayerInfo = 0;
    }
    return 1;
}
Nidza
Shot Caller
pre 7 godina
rizla wrote on December 23, 2018, 11:08 am:
if(PlayerInfo < god) a sta ako ga stavi 31. decembra pa dodje 1. januar?

CMD:makevip(playerid, params[])
{
    PlayerInfo = gettime() + (30 * 86400);
    return 1;
}

stock ProveraVipa(playerid)
{
    if(gettime() >  PlayerInfo )
    {
        PlayerInfo = 0;
    }
    return 1;
}

jel njemu vreme tece i kad je offline ?
Macas
Enforcer
pre 7 godina
tece
Chezno
Enforcer
pre 7 godina
Najbolje i najjednostavnije ti je da koristis unix time, nema nikakvog odbrojavanja, samo provera dva parametara koji je veci a koji je manji.

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava