Skidanje vip sati kada je igrac offlien

Započeo Robijas
30. Okt. 2022. Zaključano
700
pregleda
11
postova
Kikisa
3
Wheel Man
30. Okt. 2022.
Pitanje/savjet: Skidanje vip sati offline
Opširnije: Nisam do sada radio sa time varijablama pa me zanima kako da napravim da se igracu skidaju vip sati kada je on offline, napravio sam da mu skida sate ingame ali mi treba da skida i offline jer ako lik uzme vipa na ono 20 dana moze ga imati doslovno 2 mjeseca
Dodatno: tjt...
NegativeIQ
5
Kingpin
30. Okt. 2022.
Cuvaj kada mu istice, tacan trenutak. Recimo uzeo je sad, na 30 dana. Uzmes trenutno vreme, dodas 30 dana na to, i sacuvas. U ViP proveri gledas da li je trenutno vreme manje nego kad istice i ako omas levele i slicno.

Samo se ne zajebavaj previse sa danima, mesecima i slicno nego koristi timestamp gettime funkcija vraca koliko znam, imas wikini google ako ne znas sta je timestamp
njoBe_
4
Shot Caller
30. Okt. 2022.
https://github.com/Agneese-Saini/SA-MP/blob/master/pawno/include/timestamp.inc

imas i ovaj include, sa nekim korisnim funkcijama za vrijeme pa pogledaj ako hoces i ako bi ti znacilo
NegativeIQ
5
Kingpin
30. Okt. 2022.
njoBe_ wrote on October 30, 2022, 1:30 pm:
https://github.com/Agneese-Saini/SA-MP/blob/master/pawno/include/timestamp.inc

imas i ovaj include, sa nekim korisnim funkcijama za vrijeme pa pogledaj ako hoces i ako bi ti znacilo

Je, kako ti je covek dao, brutalno ce ti pomoci oko prikazivanja vremena i datuma
Jevtic Script
4
Made Man
31. Okt. 2022.
Ako koristis mysql sistem cuvanja možeš staviti na 1h timer
Proveru za vreme i svakog dana u 00:00 saljes query da skine 1 dan svim userima ciji je value veci od 1, i kada se seta vip stavis dane tipa vip = 30 kao 30 dana, ako ti je potrebna pomoć javi se PP sastavicu ti query
Fergosonn
4
Made Man
31. Okt. 2022.
if(gettime() - PlayerInfo > 1)
{
//Suspendujemo vip-a i napisemo poruku
}
else
{
// koristi timestamp kako bi proverio datum
new d,m,y,h,mi,s;
TimestampToDate(PlayerInfo,y,m,d,h,mi,s,2,1);
va_SendClientMessage(playerid, NS_YELLOW, " {FFFFFF}Vas vip istice '%d/%d/%d'",d,m,y);
}

a kada setamo vip samo ides
PlayerInfo = gettime() + ( 60 * 60 *24);
NegativeIQ
5
Kingpin
31. Okt. 2022.
BTL | jevta wrote on October 31, 2022, 10:02 pm:
Ako koristis mysql sistem cuvanja možeš staviti na 1h timer
Proveru za vreme i svakog dana u 00:00 saljes query da skine 1 dan svim userima ciji je value veci od 1, i kada se seta vip stavis dane tipa vip = 30 kao 30 dana, ako ti je potrebna pomoć javi se PP sastavicu ti query

Nepotrebno sa tajmerima i cudima ako ima timestamp koji se samo uporedi. Bilo da koristi gettime u samp-u pa to da cuva, ili da koristi timestamp funkcije iz sql tipa NOW(), svejedno, ali je poenta da se proveri uporedjivanjem timestampa tako da ViP moze nekome dati i na 15 minuta da proba i slicno...Ne kazem da tvoj nacin ne bi radio ili da ne valja, ali postoji bolji i nema nikakvih tajmera i cuda, a uvek ces znati tacno u sekundu kolliko je preostalo vremena.
Jevtic Script
4
Made Man
1. Nov. 2022.
Deleted User wrote on October 31, 2022, 10:49 pm:
Nepotrebno sa tajmerima i cudima ako ima timestamp koji se samo uporedi. Bilo da koristi gettime u samp-u pa to da cuva, ili da koristi timestamp funkcije iz sql tipa NOW(), svejedno, ali je poenta da se proveri uporedjivanjem timestampa tako da ViP moze nekome dati i na 15 minuta da proba i slicno...Ne kazem da tvoj nacin ne bi radio ili da ne valja, ali postoji bolji i nema nikakvih tajmera i cuda, a uvek ces znati tacno u sekundu kolliko je preostalo vremena.

Naravno može i timestamp ali meni je ovako nekako prosto i brzo ide bukvalno jedan query (ako je mysql sistem čuvanja) može da reši sve to
NegativeIQ
5
Kingpin
1. Nov. 2022.
BTL | jevta wrote on November 1, 2022, 1:28 am:
Naravno može i timestamp ali meni je ovako nekako prosto i brzo ide bukvalno jedan query (ako je mysql sistem čuvanja) može da reši sve to

SELECT
  `ViP_Level`,
  TIMESTAMPDIFF(SECOND, NOW(), `ViP_TimeEnd`) AS `TimeLeft`
FROM
  `users`
WHERE
  `UserID` = 1

ViP_TimeEnd bi bio timestamp polje u DB kada ViP istice. TimeLeft je izvedeno (ne postoji u DB) i kaze kolliko je vremena preostalo u sekundama (moze i u minutima, satima, danima, itd...samo se zameni jedna rec).
To je samo kao primer sta mozes u SQL sa timestampovima. Mnogi ih izbegavaju i koriste razne tajmere misleci da ce brze i lakse odraditi nesto, dok sa timestampovima je to jos lakse i nema da pazis na to da li si skinuo nesto nekome ili nisi. Plus jako su korisni za logove i uvek mozes da znas sta je kada uzeto ili je isteklo.

PS: Nisam testirao query, mozda se zavukla greska u sintaksi negde, ali primer je validan 100%.
Jevtic Script
4
Made Man
2. Nov. 2022.
Deleted User wrote on November 1, 2022, 9:52 am:

SELECT
  `ViP_Level`,
  TIMESTAMPDIFF(SECOND, NOW(), `ViP_TimeEnd`) AS `TimeLeft`
FROM
  `users`
WHERE
  `UserID` = 1

ViP_TimeEnd bi bio timestamp polje u DB kada ViP istice. TimeLeft je izvedeno (ne postoji u DB) i kaze kolliko je vremena preostalo u sekundama (moze i u minutima, satima, danima, itd...samo se zameni jedna rec).
To je samo kao primer sta mozes u SQL sa timestampovima. Mnogi ih izbegavaju i koriste razne tajmere misleci da ce brze i lakse odraditi nesto, dok sa timestampovima je to jos lakse i nema da pazis na to da li si skinuo nesto nekome ili nisi. Plus jako su korisni za logove i uvek mozes da znas sta je kada uzeto ili je isteklo.

PS: Nisam testirao query, mozda se zavukla greska u sintaksi negde, ali primer je validan 100%.

Da, validan je primer, samo bih ja stavio dane jer je realno lakse i praktičnije
Frozen_Capone
5
Crime Lord
6. Nov. 2022.
Neaktivna tema, Lock!

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha