Skripta koju koristim:N/A
Detaljan opis problema:stavio sam da mi izbaciva tekst na sredini kad je igrac u zatvoru compiluje mod sve ok ali u igri ne ispisuje tekst
Dio skripte:[pawn]forward Jail();
public Jail()
{
new string[128];
for(new i = 0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[pZatvorenVreme] > 0)
{
format(string, sizeof(string), "Preostalo vrijeme~n~u zatvoru:~n~%d",PlayerInfo[pZatvorenVreme]);
GameTextForPlayer(i, string, 1000, 3);
}
}
}
return 1;
}[/pawn]
Neke slike/video za lakse dobivanje pomoci(neobavezno):
string[256] probaj
Glupost Nemanja, string mu je 35 + eventualnih 5 za vrijeme (%d), stoga je i on sam previse stavio.
@Arkoo, IsPlayerConnected ne moras koristiti vec od 0.3 verzije sampa ako se dobro sjecam. Preporucam ti da koristis foreach ili nesto slicno, a ne da loopas kroz sve igrace moguce (0.3.7 je to 1000) - to opterecuje skriptu.
Vjerojatno ti ne pokazuje (inace je sve dobro sto se tice same funkcije) iz razloga sto vec postoji neki GameText prikazan na ekranu (mozda skriven ili nesto) jer koliko ja znam ne moze se prikazati vise od jednog u isto vrijeme. To mozes rjesiti Textdrawom pa mjenjati ga, ili pa da ga prikaze samo na par sekundi kad napises komandu i sl. Ali najbolje rjesenje bi bilo da pronadjes taj drugi GameText koji ti blokira ovo :).
ne mogu pronaci taj drugi gametext
Na koliko si stavio da se repeatuje timer?
-Probaj :)
if(PlayerInfo[i][pZatvorenVreme] == 0)
{
PlayerInfo[i][pZatvorenVreme]--;
format(string, sizeof(string),"~y~Preostalo vrijeme u zatvoru: ~n~~w~%d",PlayerInfo[i][pZatvorenVreme]);
GameTextForPlayer([i], string, 1000, 3);
}
Citat: United Extreme RolePlay poslato Oktobar 28, 2015, 13:03:09 POSLE PODNE
-Probaj :)
if(PlayerInfo[i][pZatvorenVreme] == 0)
{
PlayerInfo[i][pZatvorenVreme]--;
format(string, sizeof(string),"~y~Preostalo vrijeme u zatvoru: ~n~~w~%d",PlayerInfo[i][pZatvorenVreme]);
GameTextForPlayer([i], string, 1000, 3);
}
error 029: invalid expression, assumed zero
expression has no effect
error 001: expected token: ";", but found "]"
error 029: invalid expression, assumed zero
fatal error 107: too many error messages on one line
-----------------------------------------------------------------------------
GameTextForPlayer([i], string, 1000, 3);
--------------------------------------------------------------------------------
P.S. POPRAVIO SAM ERROR
Citat: United Extreme RolePlay poslato Oktobar 28, 2015, 13:03:09 POSLE PODNE
-Probaj :)
if(PlayerInfo[i][pZatvorenVreme] == 0)
{
PlayerInfo[i][pZatvorenVreme]--;
format(string, sizeof(string),"~y~Preostalo vrijeme u zatvoru: ~n~~w~%d",PlayerInfo[i][pZatvorenVreme]);
GameTextForPlayer([i], string, 1000, 3);
}
Ne ispisuje opet tekst.
@ElectricityBoy , Kakav timer?
-Ovako ce ti bit lakše bar po meni napravis textdraw za npr:Do izlaska imate jos 30 minuta i tako to i ovako postavis
i radice ti
Textdraw1[playerid] = TextDrawCreate(, " "); //Napravi sebi textdraw
TextDrawAlignment(Textdraw1[playerid], );
TextDrawBackgroundColor(Textdraw1[playerid], );
TextDrawFont(Textdraw1[playerid], );
TextDrawLetterSize(Textdraw1[playerid], );
TextDrawColor(Textdraw1[playerid], );
TextDrawSetOutline(Textdraw1[playerid], );
TextDrawSetProportional(Textdraw1[playerid], );
if(PlayerInfo[i][pZatvorenVreme] == 0)
{
PlayerInfo[i][pZatvorenVreme]--;
format(string, sizeof(string),"~y~Preostalo vrijeme u zatvoru: ~n~~w~%d",PlayerInfo[i][pZatvorenVreme]);
TextDrawSetString(Textdraw1[i],string);//Ovo stavis i bice ti sve ok
}
Citat: United Extreme RolePlay poslato Oktobar 28, 2015, 16:37:35 POSLE PODNE
-Ovako ce ti bit lakše bar po meni napravis textdraw za npr:Do izlaska imate jos 30 minuta i tako to i ovako postavis
i radice ti
Textdraw1[playerid] = TextDrawCreate(, " "); //Napravi sebi textdraw
TextDrawAlignment(Textdraw1[playerid], );
TextDrawBackgroundColor(Textdraw1[playerid], );
TextDrawFont(Textdraw1[playerid], );
TextDrawLetterSize(Textdraw1[playerid], );
TextDrawColor(Textdraw1[playerid], );
TextDrawSetOutline(Textdraw1[playerid], );
TextDrawSetProportional(Textdraw1[playerid], );
if(PlayerInfo[i][pZatvorenVreme] == 0)
{
PlayerInfo[i][pZatvorenVreme]--;
format(string, sizeof(string),"~y~Preostalo vrijeme u zatvoru: ~n~~w~%d",PlayerInfo[i][pZatvorenVreme]);
TextDrawSetString(Textdraw1[i],string);//Ovo stavis i bice ti sve ok
}
Zbunio sam se sad ovdje da postavim ovaj kod zajedno ovako ili da razdvojim
Pa kako pozivaš ovu gore public funkciju koja ti updatuje gamemodetext
Citat: ElectricityBoy poslato Oktobar 28, 2015, 18:02:30 POSLE PODNE
Pa kako pozivaš ovu gore public funkciju koja ti updatuje gamemodetext
ovo je sve sto sam napravio sad sam stavio da ide preko foreach ali opet ne prikazuje [pawn]forward ZatvorVR();
public ZatvorVR()
{
foreach(Player,i)
{
if(PlayerInfo
[pZatvorVreme] >= 0)
{
new string[128];
format(string, sizeof(string), "Preostalo vrijeme~n~u zatvoru:~n~%d", PlayerInfo[pZatvorenVreme]);
GameTextForPlayer(i, string, 1000, 3);
}
}
}[/pawn]
Pa brate moraš napravit timer koji će pozivat tu funkciju da bi radilo
Citat: ElectricityBoy poslato Oktobar 28, 2015, 18:29:44 POSLE PODNE
Pa brate moraš napravit timer koji će pozivat tu funkciju da bi radilo
hahahahahhaha mislis da u cmd uhapsi ubacim settimer....... i na ovaj public ?
na koliko da stavim timer?
Dodaj ovaj STOCK
[pawn]stock KonvertujVreme(vreme)
{
new minuti, sekunde, string[128];
if(vreme > 59)
{
minuti = floatround(vreme/60);
sekunde = floatround(vreme - minuti*60);
if(sekunde > 9) format(string, sizeof(string), "%d:%d", minuti, sekunde);
else format(string, sizeof(string), "%d:0%d", minuti, sekunde);
}
else
{
sekunde = floatround(vreme);
if(sekunde > 9) format(string, sizeof(string), "0:%d", sekunde);
else format(string, sizeof(string), "0:0%d", sekunde);
}
return string;
}[/pawn]
A ovo tu neka bude tvoj kod
[pawn]forward Jail();
public Jail()
{
new string[128];
for(new i = 0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[pZatvorenVreme] > 0)
{
format(string, sizeof(string), "Preostalo vrijeme~n~u zatvoru:~n~%s", KonvertujVreme(PlayerInfo[pZatvorenVreme]));
GameTextForPlayer(i, string, 1200, 5);
}
}
}
return 1;
}[/pawn]
I koristi "FOREACH" jer je brzi od ove petlje. Na puno igraca dizat ce ti se CPU servera!
@ElectricityBoy , ehhh jbg sad mi cim se logujem izbacuje preostalo vreme u zatvoru: 0 :D kako timer da postavim :'(
//EDITED
Vrijeme ponavljanja timera moraš uskladit sa vremenom koliko dugo se prikazuje GameText na sred ekrana
timer staviÅ¡ u gamemodeinit da se repeatuje na onoliko vremena koliko Äesto hoćeÅ¡ da se updateuje to vrijeme, ako ćeÅ¡ da bude real-time staviÅ¡ 1 sekundu i vrijeme prikazivanja texta 1 sekundu
pokusat cu s ovim
new asd[256];
format(asd,sizeof(asd),"~b~Preostalo vreme~n~~w~do izlaska~n~%d",PlayerInfo[playerid][pZatvorenVreme]);
GameTextForPlayer(ID,asd,3000,4);
Citat: Arkoo poslato Oktobar 28, 2015, 20:09:40 POSLE PODNE
pokusat cu s ovim
new asd[256];
format(asd,sizeof(asd),"~b~Preostalo vreme~n~~w~do izlaska~n~%d",PlayerInfo[playerid][pZatvorenVreme]);
GameTextForPlayer(ID,asd,3000,4);
onda ti i timer mora biti stavljen na 3000
rijesio sam na taj nacin radi hvala na pomoci svima. Moze LOCK