Započeo Robijas
•22. Nov. 2023.Offline skidanje sati
661
pregleda
11
postova
Wheel Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
40 / 100 XP
Početnik(0)
26
Postovi:
12
Teme:
Pridružio se:Avg. 2020
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);
}
}
}
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);
}
}
}
Made Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
442
Postovi:
44
Teme:
Pridružio se:Apr. 2021
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;
}
Shot Caller
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
134
Postovi:
14
Teme:
Pridružio se:Jan. 2022
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);
}
}
}
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);
}
}
}
Hustler
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
40 / 100 XP
Početnik(0)
72
Postovi:
3
Teme:
Pridružio se:Apr. 2022
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.
Made Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
69 / 100 XP
Početnik(0)
352
Postovi:
7
Teme:
Pridružio se:Apr. 2021
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...
Administrator
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP Doprinos24
Saradnik
24 / 500 XP
Doprinosilac(50)
2,746
Postovi:
151
Teme:
Pridružio se:Jul 2011
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.
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.
Enforcer
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
46 / 100 XP
Početnik(0)
289
Postovi:
8
Teme:
Pridružio se:Maj 2022
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);
}
}
}
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.
Enforcer
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
25 / 100 XP
Početnik(0)
315
Postovi:
0
Teme:
Pridružio se:Jun 2021
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
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
Made Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
7 / 250 XP
Početnik(0)
370
Postovi:
40
Teme:
Pridružio se:Apr. 2021
25. Nov. 2023.
Kad setas vip-a
Kad se konektuje igra proveravamo
PlayerInfo = gettime()+ 60*60*24*31; // Setamo VIP-a na 31 dan od sadaKad 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
