Happy Job/Hour bez komande

Započeo rOLDen, Oktobar 18, 2019, 14:57:03 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

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.
Jel se ovo radi možda o tome da sam negdje nešto preskočio ili zamijenio?
Poslednja Izmena: Oktobar 18, 2019, 19:28:53 POSLE PODNE od Aaron

daj te dve linije koda

Mnogo imaš ti još da jedeš kačamak.
skrr
Moj tutorijali: Bazilion indent warninga
WORK? : Smart Project 1.2 , Leskovacki Detmec, Rodjendanski  server


Penzionisani balkanski samp kripter


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
}
Poslednja Izmena: Oktobar 27, 2019, 22:26:33 POSLE PODNE od Aaron

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:

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[i]);
    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[i]);
    }
    happyjob = false;
}
Poslednja Izmena: Oktobar 27, 2019, 23:03:23 POSLE PODNE od malipablo

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!
Pasting code from the Internet into production code is like chewing gum found in the street.

Also known as:Marshall Bleach Newton




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
for(new i=0;i<MAX_PLAYERS;i++)


Rješeno. Hvala svima na pomoći. Lock.