Pomoc

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

prethodna tema - sledeća tema

0 članova i 2 gostiju 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:[pawn]      new hou,mou;
      gettime(hou,mou);
      new srk[64];
      format(srk, 64, "~w~%02d~w~:~w~%02d",hou,mou);
      TextDrawSetString(TDEditor_TD[30], srk);[/pawn]

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

Koristeci y_timers:

[pawn]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);
}[/pawn]

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:

[pawn]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);
}[/pawn]

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:

[pawn]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);
}[/pawn]

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:

[pawn]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);
}[/pawn]

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:

[pawn]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);
}[/pawn]

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:

[pawn]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);
}[/pawn]

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.

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

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

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