Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Robijas poslato Oktobar 30, 2022, 04:21:43 PRE PODNE

Naslov: Skidanje vip sati kada je igrac offlien
Poruka od: Robijas poslato Oktobar 30, 2022, 04:21:43 PRE PODNE
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...
Naslov: Odg: Skidanje vip sati kada je igrac offlien
Poruka od: Bit Frosty poslato Oktobar 30, 2022, 13:46:47 POSLE PODNE
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
Naslov: Odg: Skidanje vip sati kada je igrac offlien
Poruka od: njoBe_ poslato Oktobar 30, 2022, 14:30:51 POSLE PODNE
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
Naslov: Odg: Skidanje vip sati kada je igrac offlien
Poruka od: Bit Frosty poslato Oktobar 30, 2022, 14:40:02 POSLE PODNE
Citat: njoBe_ poslato Oktobar 30, 2022, 14:30:51 POSLE PODNE
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
Naslov: Odg: Skidanje vip sati kada je igrac offlien
Poruka od: index poslato Oktobar 31, 2022, 23:02:41 POSLE PODNE
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
Naslov: Odg: Skidanje vip sati kada je igrac offlien
Poruka od: Fergosonn poslato Oktobar 31, 2022, 23:13:10 POSLE PODNE
[pawn]if(gettime() - PlayerInfo[playerid][VipVreme] > 1)
{
//Suspendujemo vip-a i napisemo poruku
}
else
{
// koristi timestamp kako bi proverio datum
new d,m,y,h,mi,s;
TimestampToDate(PlayerInfo[playerid][VipVreme],y,m,d,h,mi,s,2,1);
va_SendClientMessage(playerid, NS_YELLOW, "[VIP] {FFFFFF}Vas vip istice '%d/%d/%d'",d,m,y);
}[/pawn]
a kada setamo vip samo ides
[pawn]PlayerInfo[player][VipVreme] = gettime() + ( 60 * 60 *24);[/pawn]
Naslov: Odg: Skidanje vip sati kada je igrac offlien
Poruka od: Bit Frosty poslato Oktobar 31, 2022, 23:49:42 POSLE PODNE
Citat: BTL | jevta poslato Oktobar 31, 2022, 23:02:41 POSLE PODNE
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.
Naslov: Odg: Skidanje vip sati kada je igrac offlien
Poruka od: index poslato Novembar 01, 2022, 02:28:08 PRE PODNE
Citat: Deleted User poslato Oktobar 31, 2022, 23:49:42 POSLE PODNE
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
Naslov: Odg: Skidanje vip sati kada je igrac offlien
Poruka od: Bit Frosty poslato Novembar 01, 2022, 10:52:42 PRE PODNE
Citat: BTL | jevta poslato Novembar 01, 2022, 02:28:08 PRE PODNE
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%.
Naslov: Odg: Skidanje vip sati kada je igrac offlien
Poruka od: index poslato Novembar 02, 2022, 02:26:22 PRE PODNE
Citat: Deleted User poslato Novembar 01, 2022, 10:52:42 PRE PODNE

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
Naslov: Odg: Skidanje vip sati kada je igrac offlien
Poruka od: Fr0z3n poslato Novembar 06, 2022, 19:36:59 POSLE PODNE
Neaktivna tema, Lock!