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...
Skidanje vip sati kada je igrac offlien
677
677
pregleda
11
11
postova
Ova tema je zaključana. Samo moderatori i administratori mogu odgovarati.
pre 3 godine
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
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
pre 3 godine
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
imas i ovaj include, sa nekim korisnim funkcijama za vrijeme pa pogledaj ako hoces i ako bi ti znacilo
pre 3 godine
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
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
pre 3 godine
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
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
pre 3 godine
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);
pre 3 godine
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
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.
pre 3 godine
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
pre 3 godine
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%.
pre 3 godine
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
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava