Problem(error/warning): Zanima me kako staviti nesto da se događa prema stvarnom vremenu. Tipa, pokusavam napraviti happy hour i job, kao sto imaju neki serveri, ali bez komande za te stvari nego da server sam ocita da se happy hour odvija od 20:00 do 21:00 a happy job od 16:00 do 18:00? Ne treba mi nikakav kod za te stvari jer sam ih napravio. Zanima me samo sta trebam napisat da se odvijaju prema stvarnom vremenu u odredjenom terminu?
Dio skripte: Nije potrebno
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): //
Slika/video ingame problema(obavezno ako je ingame problem): //
Ovisno od moda do moda na nekima imas publice a na nekima taskove na novijim su ti taskovi npr task synctime kod ATH/SM moda, eh tu ako vec nemas definisano za sate mada bi trebao imati radis ovo
new tmphour,
tmpminute,
tmpsecond;
gettimeEx( tmphour, tmpminute, tmpsecond );
sada tu negdje u tom tasku mozes uraditi ovaj nacin
if( tmphour == 20 && tmpminute == 1) {
// kod za happy hour
}
i sada koristis taj isti kod samo pomjeris tmphour na 21 i stavljas kod za prekidanje happy houra.
Ovo je bilo na brzinu ali mislim da je dovoljno da skontas
Hvala ti na pomoći. Uspio sam napraviti kako si rekao i radi. Samo mi se pojavio mali problemčić a to su 2 Warninga.
Slika. (https://imgur.com/8kpVfRL)
Jel se ovo radi možda o tome da sam negdje nešto preskočio ili zamijenio?
daj te dve linije koda
Citat: bunta poslato Oktobar 18, 2019, 23:19:22 POSLE PODNE
daj te dve linije koda
for(new i=0;i<MAX_PLAYERS;i++)
if(hour == 19 && minute == 00)
{
SendClientMessage(i, COLOR_GOLD, "INFO: Vrijeme je za Happy Job - Iskoristite ovaj sat i ostanite online.");
TextDrawShowForPlayer(i, Happyjob[i]);
PlayerInfo[i][happyjob] = 1; //WARNING JE U OVOJ LINIJI
}
else if(hour == 20 && minute == 00)
{
SendClientMessage(i, COLOR_GOLD, "INFO: Happy Job vrijeme je zavrsilo - nadamo se da ste iskoristili ovo vrijeme.");
TextDrawHideForPlayer(i, Happyjob[i]);
PlayerInfo[i][happyjob] = 0; //WARNING JE U OVOJ LINIJI
}
PlayerInfo[happyjob] ti je verovatno boolean tipa tako da umesto 0 i 1 ide false i true.
Savetujem ti da sklonis taj happyjob iz player infa i stavis kao globalnu varijablu koju ce svi moci da koriste jer ovako ako neko izadje sa servera a ti mu ne skines, ostace mu happyjob ukljucen + server mora da se pomuci da to svakom igracu postavi + posalje poruku i proveri istovremeno.
primer:
[pawn]
vrh skripte:
new bool:happyjob;
provera:
if(hour == 19){
SendClientMessageToAll(BOJA, "INFO: Vrijeme je za Happy Job - Iskoristite ovaj sat i ostanite online.");
foreach(new i: Player) TextDrawShowForPlayer(i, Happyjob);
happyjob = true;
}
else if(happyjob == true && hour != 19){
SendClientMessageToAll(BOJA,"INFO: Happy Job vrijeme je zavrsilo - nadamo se da ste iskoristili ovo vrijeme.");
foreach(new i: Player) TextDrawHideForPlayer(i, Happyjob);
}
happyjob = false;
}
[/pawn]
Pokušao sam i dobio sljedeći warning:
CENZURA : warning 219: local variable "i" shadows a variable at a preceding level
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Warning.
Update streamer!
Citat: Aaron poslato Oktobar 27, 2019, 22:24:25 POSLE PODNE
for(new i=0;i<MAX_PLAYERS;i++)
if(hour == 19 && minute == 00)
{
SendClientMessage(i, COLOR_GOLD, "INFO: Vrijeme je za Happy Job - Iskoristite ovaj sat i ostanite online.");
TextDrawShowForPlayer(i, Happyjob[i]);
PlayerInfo[i][happyjob] = 1; //WARNING JE U OVOJ LINIJI
}
else if(hour == 20 && minute == 00)
{
SendClientMessage(i, COLOR_GOLD, "INFO: Happy Job vrijeme je zavrsilo - nadamo se da ste iskoristili ovo vrijeme.");
TextDrawHideForPlayer(i, Happyjob[i]);
PlayerInfo[i][happyjob] = 0; //WARNING JE U OVOJ LINIJI
}
Koristi Foreach
[pawn]for(new i=0;i<MAX_PLAYERS;i++)[/pawn]
Citat: BitchLasagna poslato Oktobar 28, 2019, 00:25:42 PRE PODNE
Update streamer!
A ti da prestanes da lupas sa tvojim strimerom :)
Rješeno. Hvala svima na pomoći. Lock.