Offline skidanje sati

Započeo Robijas
22. Nov. 2023.
617
pregleda
11
postova
Kikisa
3
Wheel Man
22. Nov. 2023.
Pitanje/savjet: Kako da napravim da se vipu skidaju sati kada je on offline
Opširnije: Znam da malo ispadam glup, ali nema veze, nisam baš radio ništa u vezi offline stvari tako da mi treba pomoć. Trenutno imam kod u skripti koji skida svaki sat točno u, na primjer, 13:00h, 14:00h. Igraću VIP sate za 1h, ali problem je što kada igrač ode offline, tada mu se ne skidaju sati i doslovno može imati VIP-a 2 mjeseca, bez obzira što ga je kupio na 24 sata. Sada mi treba kod koji će napraviti da se igraču skidaju sati čak i kada je offline, a ne samo kada je online. Ako može neko da pomogne bio bih jako zahvalan.
Dodatno:
Ovu funkciju pokrećem svaki točan sat, i tako skida vipsate igracima koji su online
Kod:
stock ProvjeraZaVipa(playerid)
{
if(PlayerInfo > 0)
{
PlayerInfo--;
if (PlayerInfo <= 0)
{
PlayerInfo = 0;
PlayerInfo = 0;
BojaIgraca(playerid);
new string;
SCM(playerid, -1, ""CRVENA": "BIJELA"Upravo vam je istekao VIP");
AdminPoruka(-1, string);
}
}
}
Dime123
4
Made Man
22. Nov. 2023.
Ja bi za takve stvari odradio ovako nesto..

CMD:vipcic(playerid, params[])
{
    if(vreme < 1 || vreme > 14) return SendClientMessage(playerid, -1,"Broj dana ne moze biti manji od 1 i veci od 14");
    getdate(godina, mesec, dan);
    if(dan+vreme >= 30)
    {
        PlayerInfo = 1; PlayerInfo = (dan+vreme)-30; PlayerInfo = mesec+1; PlayerInfo = godina;
    }
    if(dan+vreme < 30)
    {
        PlayerInfo = 1; PlayerInfo = (dan+vreme); PlayerInfo = mesec; PlayerInfo = godina;
    }
    return 1;
}
i kod on playerlogin

new godina, mesec, dan;
    getdate(godina, mesec, dan;
    if(PlayerInfo == 1)
    {
        if(PlayerInfo == mesec)
        {
            if(PlayerInfo <= dan)
            {
                SCM(playerid, -1 ,"Vas Vip je istekao");
                PlayerInfo = 0; PlayerInfo = 0; PlayerInfo = 0; PlayerInfo = 0;
            }
        }
        else if(PlayerInfo < mesec)
        {
            SCM(playerid, -1 ,"Vas Vip je isteka");
            PlayerInfo = 0; PlayerInfo = 0; PlayerInfo = 0; PlayerInfo = 0;
        }
        return 1;
    }
Wizzard1
4
Shot Caller
22. Nov. 2023.
Robijas wrote on November 22, 2023, 3:54 pm:
Pitanje/savjet: Kako da napravim da se vipu skidaju sati kada je on offline
Opširnije: Znam da malo ispadam glup, ali nema veze, nisam baš radio ništa u vezi offline stvari tako da mi treba pomoć. Trenutno imam kod u skripti koji skida svaki sat točno u, na primjer, 13:00h, 14:00h. Igraću VIP sate za 1h, ali problem je što kada igrač ode offline, tada mu se ne skidaju sati i doslovno može imati VIP-a 2 mjeseca, bez obzira što ga je kupio na 24 sata. Sada mi treba kod koji će napraviti da se igraču skidaju sati čak i kada je offline, a ne samo kada je online. Ako može neko da pomogne bio bih jako zahvalan.
Dodatno:
Ovu funkciju pokrećem svaki točan sat, i tako skida vipsate igracima koji su online
Kod:
stock ProvjeraZaVipa(playerid)
{
if(PlayerInfo > 0)
{
PlayerInfo--;
if (PlayerInfo <= 0)
{
PlayerInfo = 0;
PlayerInfo = 0;
BojaIgraca(playerid);
new string;
SCM(playerid, -1, ""CRVENA": "BIJELA"Upravo vam je istekao VIP");
AdminPoruka(-1, string);
}
}
}
Samo stavis timer igracu. i onda kada se igrac loginuje uradis proveru da li je timer istekao i tjt.
michaelstar
3
Hustler
23. Nov. 2023.
Wizzard1 wrote on November 22, 2023, 7:59 pm:
Samo stavis timer igracu. i onda kada se igrac loginuje uradis proveru da li je timer istekao i tjt.
?HAHHAHAHAHAHHAHAHA
Lakering
4
Made Man
23. Nov. 2023.
Wizzard1 wrote on November 22, 2023, 7:59 pm:
Samo stavis timer igracu. i onda kada se igrac loginuje uradis proveru da li je timer istekao i tjt.

Sreca pa tvoj odgovor ima veze sa mozgom...
Wizzard1
4
Shot Caller
23. Nov. 2023.
Meni radi,to sto vi nerazumete nije moj problem. Ja sam mu rekao kako da napravi da necu mozda sve da mu postavim citavu cmd?
cadilab
10
Administrator
🔥65
23. Nov. 2023.
https://sampwiki.blast.hk/wiki/Function:gettime
Ne cuvas broj sati vec vrijeme kada vip istice, sto znaci kad nekome postavis vipa na gettime mu dodas broj sati/dana koliko vip traje.
Kad se igrac uloguje, ili kako vec provjeravas, provjeri razliku vremena, i ako je trenutno vrijeme vece od vremena isteka skines mu vipa.
Xyza
4
Enforcer
23. Nov. 2023.
Robijas wrote on November 22, 2023, 3:54 pm:
Pitanje/savjet: Kako da napravim da se vipu skidaju sati kada je on offline
Opširnije: Znam da malo ispadam glup, ali nema veze, nisam baš radio ništa u vezi offline stvari tako da mi treba pomoć. Trenutno imam kod u skripti koji skida svaki sat točno u, na primjer, 13:00h, 14:00h. Igraću VIP sate za 1h, ali problem je što kada igrač ode offline, tada mu se ne skidaju sati i doslovno može imati VIP-a 2 mjeseca, bez obzira što ga je kupio na 24 sata. Sada mi treba kod koji će napraviti da se igraču skidaju sati čak i kada je offline, a ne samo kada je online. Ako može neko da pomogne bio bih jako zahvalan.
Dodatno:
Ovu funkciju pokrećem svaki točan sat, i tako skida vipsate igracima koji su online
Kod:
stock ProveraZaVipa(playerid)
{
if(PlayerInfo > 0)
{
PlayerInfo--;
if (PlayerInfo <= 0)
{
PlayerInfo = 0;
PlayerInfo = 0;
BojaIgraca(playerid);
new string;
SCM(playerid, -1, ""CRVENA": "BIJELA"Upravo vam je istekao VIP");
AdminPoruka(-1, string);
}
}
}


Nije glupo  postaviti takvo pitanje, svaki pocetnik  se suočava s izazovima, a učenje novih stvari je ključno. Kako bi rešio svoj problem s oduzimanjem VIP sati i kada je igrač offline, trebaće ti neki mehanizam za praćenje vremena između svakog pokretanja tvog koda. Jedan od načina da to postigneš je korišćenje timestampova (vremenskih oznaka).

Evo kako to možeš implementirati:

1. **Prilikom postavljanja VIP-a😘*
  - Kada igrač kupi VIP, zabeleži trenutno vreme (timestamp) i sačuvaj ga u podatkovnu strukturu igrača.

2. **Prilikom svake provere VIP vremena (u tvom trenutnom kodu)😘*
  - Proveri koliko je vremena prošlo od trenutnog timestampa do sada.
  - Ako je prošlo dovoljno vremena, oduzmi sate. Ako ne, ostavi sate nepromenjenima.

3. **Prilikom prijave igrača😘*
  - Ako igrač nije online, prilikom prijave izračunaj koliko mu je VIP vremena isteklo od zadnjeg puta kada je bio online. Oduzmi to od ukupnog broja VIP sati.

Primer implementacije u tvom kodu:
```pawn
stock ProveraZaVipa(playerid)
{
  if(PlayerInfo > 0)
  {
      // Dobavi trenutni timestamp
      new trenutnoVreme = gettime();

      // Izračunaj proteklo vreme od zadnjeg puta
      new protekloVreme = trenutnoVreme - PlayerInfo;

      // Oduzmi proteklo vreme od VIP sati
      PlayerInfo -= protekloVreme;

      // Ažuriraj poslednji login timestamp
      PlayerInfo = trenutnoVreme;

      if (PlayerInfo <= 0)
      {
        PlayerInfo = 0;
        PlayerInfo = 0;
        BojaIgraca(playerid);
        new string;
        SCM(playerid, -1, ""CRVENA": "BELA"Upravo vam je istekao VIP");
        AdminPoruka(-1, string);
      }
  }
}
```[


Ovaj primer pretpostavlja da imaš pVipSati, pPoslednjiLogin i možda neke druge promenljive u svojoj podatkovnoj strukturi za praćenje VIP informacija. Takođe, funkcija gettime() vraća trenutno vreme u sekundama, pa možeš koristiti tu razliku u vremenu za praćenje proteklog vremena. Ovo će omogućiti da se VIP sati oduzimaju i kada je igrač offline.
Raskiselišelitiseopanci
4
Enforcer
23. Nov. 2023.
TIMESTAMP UN

1 minuta (60 sekundi) je 60 * 1 = 60
2 minute (120 sekundi) su 60 * 2 = 120

1 sat (60 minuta) je 60 * 60 = 3600
2 sata (120 minuta) su 60 * 120 = 7200

1 dan (24 sata) je 60 * 60 * 24 = 86400
2 dana (48 sati) su 60 * 60 * 48 = 172800

1 tjedan (7 dana) je 60 * 60 * 24 * 7 = 604800
2 tjedna (14 dana) su 60 * 60 * 24 * 14 = 1209600

1 mjesec (30 dana) je 60 * 60 * 24 * 30 = 2592000
2 mjeseca (60 dana) su 60 * 60 * 24 * 60 = 5184000

1 godina (365 dana) je 60 * 60 * 24 * 365 = 31536000
2 godine (730 dana) su 60 * 60 * 24 * 730 = 63072000
Fergosonn
4
Made Man
25. Nov. 2023.
Kad setas vip-a
PlayerInfo = gettime()+ 60*60*24*31; // Setamo VIP-a na 31 dan od sada


Kad se konektuje igra proveravamo
if(gettime()-PlayerInfo < 1){
// Znaci da je istokao suspendujemo
}
else {
    SendClientMessahe(playerid, -1, " : Vas VIP nije istekao");
}

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha