Pomoc


Započeo Fr0z3n, April 28, 2020, 02:49:33 PRE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Kada sam ubacio sat na server nece da menja vreme tipa ako je 21:00 nece da se promeni sve dok ne uradim restart i kad uradim restart onda se promeni ali se posle ne menja sta da radim?
Deo skripte:
new hou,mou;
		gettime(hou,mou);
		new srk[64];
		format(srk, 64, "~w~%02d~w~:~w~%02d",hou,mou);
		TextDrawSetString(TDEditor_TD[30], srk);

Napravi novi timer od 60 sekundi, zatim stavi taj kod unutar tog timera:

Koristeci y_timers:

task NekiTamoTimer[60000]()
{
	new hou,mou;
	gettime(hou,mou);
	new srk[64];
	format(srk, 64, "~w~%02d~w~:~w~%02d",hou,mou);
	TextDrawSetString(TDEditor_TD[30], srk);
}


Iznad je timer koji na svakih 60 sekundi postavi vreme, samo ovo stavis u skriptu, include-as y_timers i tjt, sve ce odraditi za tebe, ne moras da ga pozivas niti bilo sta drugo :)

Citat: V01D poslato April 28, 2020, 03:07:36 PRE PODNE
Napravi novi timer od 60 sekundi, zatim stavi taj kod unutar tog timera:

Koristeci y_timers:

task NekiTamoTimer[60000]()
{
	new hou,mou;
	gettime(hou,mou);
	new srk[64];
	format(srk, 64, "~w~%02d~w~:~w~%02d",hou,mou);
	TextDrawSetString(TDEditor_TD[30], srk);
}


Iznad je timer koji na svakih 60 sekundi postavi vreme, samo ovo stavis u skriptu, include-as y_timers i tjt, sve ce odraditi za tebe, ne moras da ga pozivas niti bilo sta drugo :)

Ne koristim taj tajmer koristim one SetTimer i SetTimerEx.... znam da ne bi trebalo ali sta da radim kad je ceo mod na tome i ne mogu da menjam, da li postoji neki nacin da pored tih tajmera ubacim i ovaj nekako? jer ako #include YSI/y_timers onda pise kao da je simbol vec definisan

Da ga nisi vec include?? Sta se desi ako stavis ovo sto sam ti poslao negde unutar skripter ( da napomenem, van svakog callbacka, svake funkcije itd.. )

Takodje mozes uraditi i preko SetTimer i SetTimerEx, samo sto taj timer moras da pozoves..

Ako me secanje dobro sluzi, upotreba je ovakva:

public OnGameModeInit()
{
	SetTimer("Vreme", 60000, 1); //Pozivamo timer i stavimo da se konstantno ponavlja
}

forward Vreme(playerid); //Ovo dodas unutar skripte isto kao i za task
public Vreme(playerid)
{
	new hou,mou;
	gettime(hou,mou);
	new srk[64];
	format(srk, 64, "~w~%02d~w~:~w~%02d",hou,mou);
	TextDrawSetString(TDEditor_TD[30], srk);
}


Eh sada, takodje mozes da koristis i callback OnPlayerUpdate, on je nesto slicno timeru od 1 sekunde. Ali za tim nema potrebe..


Citat: V01D poslato April 28, 2020, 11:57:39 PRE PODNE
Da ga nisi vec include?? Sta se desi ako stavis ovo sto sam ti poslao negde unutar skripter ( da napomenem, van svakog callbacka, svake funkcije itd.. )

Takodje mozes uraditi i preko SetTimer i SetTimerEx, samo sto taj timer moras da pozoves..

Ako me secanje dobro sluzi, upotreba je ovakva:

public OnGameModeInit()
{
	SetTimer("Vreme", 60000, 1); //Pozivamo timer i stavimo da se konstantno ponavlja
}

forward Vreme(playerid); //Ovo dodas unutar skripte isto kao i za task
public Vreme(playerid)
{
	new hou,mou;
	gettime(hou,mou);
	new srk[64];
	format(srk, 64, "~w~%02d~w~:~w~%02d",hou,mou);
	TextDrawSetString(TDEditor_TD[30], srk);
}


Eh sada, takodje mozes da koristis i callback OnPlayerUpdate, on je nesto slicno timeru od 1 sekunde. Ali za tim nema potrebe..

Error mislim da je mozda zato sto sam dodao ono forward na vrh skripte jer nisam skontao gde tacno treba

invalid expression, assumed zero
C:\Users\uSER\Desktop\MOd13\gamemodes\BEofficial.pwn(118115) : error 029: invalid expression, assumed zero
C:\Users\uSER\Desktop\MOd13\gamemodes\BEofficial.pwn(118115) : error 004: function "Vreme" is not implemented
Pawn compiler 3.10.4           Copyright (c) 1997-2006, ITB CompuPhase

Hmmm, ovo ce biti problem posto ne radim sa obicnim timerima xDD

Probaj ovako nesto:

forward Vreme(); 
public Vreme()
{
	new hou,mou;
	gettime(hou,mou);
	new srk[64];
	format(srk, 64, "~w~%02d~w~:~w~%02d",hou,mou);
	TextDrawSetString(TDEditor_TD[30], srk);
}


Takodje da napomenem da forward mozes dodati apsolutno bilo gde, samo da ga ima :D

Citat: V01D poslato April 28, 2020, 12:34:38 POSLE PODNE
Hmmm, ovo ce biti problem posto ne radim sa obicnim timerima xDD

Probaj ovako nesto:

forward Vreme(); 
public Vreme()
{
	new hou,mou;
	gettime(hou,mou);
	new srk[64];
	format(srk, 64, "~w~%02d~w~:~w~%02d",hou,mou);
	TextDrawSetString(TDEditor_TD[30], srk);
}


Takodje da napomenem da forward mozes dodati apsolutno bilo gde, samo da ga ima :D

A mogu li nekako da koristim i Y_timers i SetTimer, SetTimerEx?

Naravno da mozes, probaj ubaci task i vidi sta ce biti.

#include <YSI\y_timers> //Zavisi od verzije YSI-a, ali svakako ce ti pisati


Probaj prvo da ga ne include-as, posto si gore naveo da ti izbaci da simbol nije definisan??

Ako se to opet desi, posalji liniju gde baca i ceo error

Ovo mi izlazi bez include

error 010: invalid function or declaration

A ovo kada includam

C:\Users\uSER\Desktop\MOd13\gamemodes\BEofficial.pwn(123518) : error 010: invalid function or declaration
C:\Users\uSER\Desktop\MOd13\gamemodes\BEofficial.pwn(123518) : error 021: symbol already defined: "_Timer_F"
C:\Users\uSER\Desktop\MOd13\gamemodes\BEofficial.pwn(123518) : error 054: unmatched closing brace ("}")
C:\Users\uSER\Desktop\MOd13\gamemodes\BEofficial.pwn(123518) : fatal error 107: too many error messages on one line

Na liniji

FUNCTION: stop()//ovoj
{
   countzapocet = false;
   return true;
}