Pitanje/savjet: Zdravo zelim da napravim jedan sistem vezan za objekte i da radi automatski u pitanju su tri objekta i zelim da se menjaju na vreme.
Opširnije: Kada pokrenem kucni server zelim da timer pocne raditi te da odbrojava prvih sat vremena do prvog objekta. Kada prodje dodatnih sat vremena taj objekat nestaje a stvara se sledeci. Isto tako i za treci objekat ceka sat vremena i drugi nestaje. Moze li mi neko ikako pomoci da odradim ovaj sistem posto mi je jako vazan.
Dodatno: /
Citat: desibro poslato Januar 16, 2023, 21:35:00 POSLE PODNE
Pitanje/savjet: Zdravo zelim da napravim jedan sistem vezan za objekte i da radi automatski u pitanju su tri objekta i zelim da se menjaju na vreme.
Opširnije: Kada pokrenem kucni server zelim da timer pocne raditi te da odbrojava prvih sat vremena do prvog objekta. Kada prodje dodatnih sat vremena taj objekat nestaje a stvara se sledeci. Isto tako i za treci objekat ceka sat vremena i drugi nestaje. Moze li mi neko ikako pomoci da odradim ovaj sistem posto mi je jako vazan.
Dodatno: /
Koristis funkciju SetTimer() za postavljanje timera, evo ti ispod kako bi to odprilike izgledao
[pawn]
new Objekat[3];
new faza;
public OnGameModeInit()
{
SetTimer("ObjectTimer", 3600000, true);
// "ObjectTimer" je ime timer-a, drugo je trajanje timera(3600000 milisekundi je sat vremena), trece je ponavljanje(true je da/false je ne)
Objekat[0] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior)
// moze i CreateObject()
faza = 0;
return 1;
}
forward ObjectTimer()
public ObjectTimer()
{
if(faza == 0) // Faza predstavlja broj ponavljanja timera, ovde se timer ponovio jednom
{
faza = 1; // Stavljamo brojac na 1, pokazatelj da ulazimu u drugo ponavljanje timera
DestroyDynamicObject(Objekat[0]); // Brisemo prvi objekat
Objekat[1] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior) // Pravimo drugi objekat
}
if(faza == 1) // Proveravamo dali smo u drugoj fazi
{
faza = 2; // Stavljamo brojac na 2, pokazatelj da ulazimu u trece ponavljanje timera
DestroyDynamicObject(Objekat[0]); // Brisemo prvi objekat
Objekat[1] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior) // Pravimo treci objekat
}
}
[/pawn]
Citat: Rex poslato Januar 17, 2023, 00:04:03 PRE PODNE
Koristis funkciju SetTimer() za postavljanje timera, evo ti ispod kako bi to odprilike izgledao
[pawn]
new Objekat[3];
new faza;
public OnGameModeInit()
{
SetTimer("ObjectTimer", 3600000, true);
// "ObjectTimer" je ime timer-a, drugo je trajanje timera(3600000 milisekundi je sat vremena), trece je ponavljanje(true je da/false je ne)
Objekat[0] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior)
// moze i CreateObject()
faza = 0;
return 1;
}
forward ObjectTimer()
public ObjectTimer()
{
if(faza == 0) // Faza predstavlja broj ponavljanja timera, ovde se timer ponovio jednom
{
faza = 1; // Stavljamo brojac na 1, pokazatelj da ulazimu u drugo ponavljanje timera
DestroyDynamicObject(Objekat[0]); // Brisemo prvi objekat
Objekat[1] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior) // Pravimo drugi objekat
}
if(faza == 1) // Proveravamo dali smo u drugoj fazi
{
faza = 2; // Stavljamo brojac na 2, pokazatelj da ulazimu u trece ponavljanje timera
DestroyDynamicObject(Objekat[0]); // Brisemo prvi objekat
Objekat[1] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior) // Pravimo treci objekat
}
}
[/pawn]
Brises svaki put "Objekat[0]" a novi cuvas u "Objekat[1]".
PS. Deklarises array sa 3 slota, koristis samo 2 kroz citav kod, a dovoljna je jedna varijabla.
Citat: // xunder poslato Januar 17, 2023, 15:39:15 POSLE PODNE
Brises svaki put "Objekat[0]" a novi cuvas u "Objekat[1]".
PS. Deklarises array sa 3 slota, koristis samo 2 kroz citav kod, a dovoljna je jedna varijabla.
U fazi dva treba da pise
[pawn]
DestroyDynamicObject(Objekat[1]); // Brisemo prvi objekat
Objekat[2] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior) // Pravimo treci objekat
[/pawn]
Evo ispravljen kod
[pawn]
new Objekat[3];
new faza;
public OnGameModeInit()
{
SetTimer("ObjectTimer", 3600000, true);
// "ObjectTimer" je ime timer-a, drugo je trajanje timera(3600000 milisekundi je sat vremena), trece je ponavljanje(true je da/false je ne)
Objekat[0] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior)
// moze i CreateObject()
faza = 0;
return 1;
}
forward ObjectTimer()
public ObjectTimer()
{
if(faza == 0) // Faza predstavlja broj ponavljanja timera, ovde se timer ponovio jednom
{
faza = 1; // Stavljamo brojac na 1, pokazatelj da ulazimu u drugo ponavljanje timera
DestroyDynamicObject(Objekat[0]); // Brisemo prvi objekat
Objekat[1] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior) // Pravimo drugi objekat
}
if(faza == 1) // Proveravamo dali smo u drugoj fazi
{
faza = 2; // Stavljamo brojac na 2, pokazatelj da ulazimu u trece ponavljanje timera
DestroyDynamicObject(Objekat[1]); // Brisemo prvi objekat
Objekat[2] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior) // Pravimo treci objekat
}
}
[/pawn]
Citat: Rex poslato Januar 17, 2023, 16:14:38 POSLE PODNE
Evo ispravljen kod
[pawn]
new Objekat[3];
new faza;
public OnGameModeInit()
{
SetTimer("ObjectTimer", 3600000, true);
// "ObjectTimer" je ime timer-a, drugo je trajanje timera(3600000 milisekundi je sat vremena), trece je ponavljanje(true je da/false je ne)
Objekat[0] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior)
// moze i CreateObject()
faza = 0;
return 1;
}
forward ObjectTimer()
public ObjectTimer()
{
if(faza == 0) // Faza predstavlja broj ponavljanja timera, ovde se timer ponovio jednom
{
faza = 1; // Stavljamo brojac na 1, pokazatelj da ulazimu u drugo ponavljanje timera
DestroyDynamicObject(Objekat[0]); // Brisemo prvi objekat
Objekat[1] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior) // Pravimo drugi objekat
}
if(faza == 1) // Proveravamo dali smo u drugoj fazi
{
faza = 2; // Stavljamo brojac na 2, pokazatelj da ulazimu u trece ponavljanje timera
DestroyDynamicObject(Objekat[1]); // Brisemo prvi objekat
Objekat[2] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior) // Pravimo treci objekat
}
}
[/pawn]
bas me interesuje da li bi ti to radilo kada faze dostignu svoj maximum
[pawn]new Objekat[3];
new faza;
public OnGameModeInit()
{
SetTimer("ObjectTimer", 3600000, true);
// "ObjectTimer" je ime timer-a, drugo je trajanje timera(3600000 milisekundi je sat vremena), trece je ponavljanje(true je da/false je ne)
Objekat[0] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior)
// moze i CreateObject()
faza = 0;
return 1;
}
forward ObjectTimer()
public ObjectTimer()
{
if(faza == 0) // Faza predstavlja broj ponavljanja timera, ovde se timer ponovio jednom
{
faza = 1; // Stavljamo brojac na 1, pokazatelj da ulazimu u drugo ponavljanje timera
DestroyDynamicObject(Objekat[0]); // Brisemo prvi stvoreni objekat
Objekat[1] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior) // Pravimo drugi objekat
}
else if(faza == 1) // Proveravamo dali smo u prvoj fazi
{
faza = 2; // Stavljamo brojac na 2, pokazatelj da ulazimu u drugo ponavljanje timera
DestroyDynamicObject(Objekat[1]); // Brisemo drugi stvoreni objekat
Objekat[2] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior) // Pravimo treci objekat
}
else if(faza == 2) // Proveravamo dali smo u zadnjoj fazi
{
faza = 0; // Vracamo na nula da bi se vratili na sami pocetak jer u tvom slucaju bi zapelo na 2
DestroyDynamicObject(Objekat2]); // Brisemo treci stvoreni objekat
Objekat[0] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior) // Vracamo prvi
}
}[/pawn]
isto tako moras if i else if da procitas malo https://balkan-samp.com/forum/index.php?topic=141426.0
Citat: Grella™ poslato Januar 17, 2023, 16:35:02 POSLE PODNE
bas me interesuje da li bi ti to radilo kada faze dostignu svoj maximum
[pawn]new Objekat[3];
new faza;
public OnGameModeInit()
{
SetTimer("ObjectTimer", 3600000, true);
// "ObjectTimer" je ime timer-a, drugo je trajanje timera(3600000 milisekundi je sat vremena), trece je ponavljanje(true je da/false je ne)
Objekat[0] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior)
// moze i CreateObject()
faza = 0;
return 1;
}
forward ObjectTimer()
public ObjectTimer()
{
if(faza == 0) // Faza predstavlja broj ponavljanja timera, ovde se timer ponovio jednom
{
faza = 1; // Stavljamo brojac na 1, pokazatelj da ulazimu u drugo ponavljanje timera
DestroyDynamicObject(Objekat[0]); // Brisemo prvi stvoreni objekat
Objekat[1] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior) // Pravimo drugi objekat
}
else if(faza == 1) // Proveravamo dali smo u prvoj fazi
{
faza = 2; // Stavljamo brojac na 2, pokazatelj da ulazimu u drugo ponavljanje timera
DestroyDynamicObject(Objekat[1]); // Brisemo drugi stvoreni objekat
Objekat[2] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior) // Pravimo treci objekat
}
else if(faza == 2) // Proveravamo dali smo u zadnjoj fazi
{
faza = 0; // Vracamo na nula da bi se vratili na sami pocetak jer u tvom slucaju bi zapelo na 2
DestroyDynamicObject(Objekat2]); // Brisemo treci stvoreni objekat
Objekat[0] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior) // Vracamo prvi
}
}[/pawn]
isto tako moras if i else if da procitas malo https://balkan-samp.com/forum/index.php?topic=141426.0
Ja sam napravio da radi to samo za tri objekta, bez ponavljanja. Sad neka on namesta kako on hoce.
U redu je ljudi ponavljanje ce svakako imati samo mi je bio bitan temelj sistema. Hvala vam <3 ;D
Citat: Grella™ poslato Januar 17, 2023, 16:35:02 POSLE PODNE
bas me interesuje da li bi ti to radilo kada faze dostignu svoj maximum
[pawn]new Objekat[3];
new faza;
public OnGameModeInit()
{
SetTimer("ObjectTimer", 3600000, true);
// "ObjectTimer" je ime timer-a, drugo je trajanje timera(3600000 milisekundi je sat vremena), trece je ponavljanje(true je da/false je ne)
Objekat[0] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior)
// moze i CreateObject()
faza = 0;
return 1;
}
forward ObjectTimer()
public ObjectTimer()
{
if(faza == 0) // Faza predstavlja broj ponavljanja timera, ovde se timer ponovio jednom
{
faza = 1; // Stavljamo brojac na 1, pokazatelj da ulazimu u drugo ponavljanje timera
DestroyDynamicObject(Objekat[0]); // Brisemo prvi stvoreni objekat
Objekat[1] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior) // Pravimo drugi objekat
}
else if(faza == 1) // Proveravamo dali smo u prvoj fazi
{
faza = 2; // Stavljamo brojac na 2, pokazatelj da ulazimu u drugo ponavljanje timera
DestroyDynamicObject(Objekat[1]); // Brisemo drugi stvoreni objekat
Objekat[2] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior) // Pravimo treci objekat
}
else if(faza == 2) // Proveravamo dali smo u zadnjoj fazi
{
faza = 0; // Vracamo na nula da bi se vratili na sami pocetak jer u tvom slucaju bi zapelo na 2
DestroyDynamicObject(Objekat2]); // Brisemo treci stvoreni objekat
Objekat[0] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior) // Vracamo prvi
}
}[/pawn]
isto tako moras if i else if da procitas malo https://balkan-samp.com/forum/index.php?topic=141426.0
zasto dodavati nepotrebno if/else? Isto tako nema potrebe unistavati objekat, samim stvaranjem novog na njegovo mesto se samo overwriteruje...
[pawn]new Objekat[3];
new faza = 0;
public OnGameModeInit()
{
Objekat[faza] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior);
SetTimer("ObjectTimer", 3600000, true);
return 1;
}
forward ObjectTimer();
public ObjectTimer()
{
Objekat[faza] = CreateDynamicObject(modelid, x, y, resultz, 0, 0, 0, vw, interior);
faza = (faza + 1) % 3;
}
[/pawn]
Neaktivno, lock