Skripta koju koristim: S.E
Detaljan opis problema: Zelim da mi kod desno dole ugla pise koliko igrac ima exp. odnosno respekata, ja imam TextDraw, ali on radi samo kad igrac kuca /stats, ja zelim da taj TD bude stalno prikazan cim se igrac uloguje na server i da ne mora nista da kuca, kako to da napravim?
Evo ovo je iz komande /stats posto je i ona isto uradjena u TextDrawu pa ako mozete pomozite mi, hvala.
respekt[playerid] = TextDrawCreate(145.000000, 151.000000, "respekt[playerid]i: 100/200");
TextDrawBackgroundColor(respekt[playerid], 255);
TextDrawFont(respekt[playerid], 1);
TextDrawLetterSize(respekt[playerid], 0.370000, 1.600000);
TextDrawColor(respekt[playerid], 848756735);
TextDrawSetOutline(respekt[playerid], 0);
TextDrawSetProportional(respekt[playerid], 1);
TextDrawSetShadow(respekt[playerid], 1);
Znaci samo to da se nekako kopira da ne moraju kucati /stats nego da im stalno pise koliko imaju exp
Dio skripte:
Neke slike/video za lakse dobivanje pomoci(neobavezno):
ono pExp ?
Evo ovo je iz statsa pa ako ti moze pomoci
format(string,128,"Respekti: ~w~%d/%d",PlayerInfo[playerid][pExp], expamount);
TextDrawSetString(respekt[playerid], string);
Mozes malo pojasniti? :)
I ako bih ovako uradio zar mi TD ne bih bio tamo gde je i kada kucam /stats ? Ja zelim da bude na drugom mestu, ako treba da se uradi novi TD posebno da sluzi za to?
Ovako:
Korak 1
na vrh skripte dodaj ovo:
#define MAX_IGRACA 500
new Text:Eksp[MAX_IGRACA];
I pod OnGameModeInit dodaj:
for(new i=0; i<MAX_IGRACA; i++)
{
Eksp[i] = TextDrawCreate(609.000000, 163.187500, "0/0");
TextDrawLetterSize(Eksp[i], 0.534498, 2.002500);
TextDrawAlignment(Eksp[i], 1);
TextDrawColor(Eksp[i], -16776961);
TextDrawSetShadow(Eksp[i], 0);
TextDrawSetOutline(Eksp[i], 1);
TextDrawBackgroundColor(Eksp[i], 51);
TextDrawFont(Eksp[i], 2);
TextDrawSetProportional(Eksp[i], 1);
}
Ti sebi napravi novi textdraw zavisi gdje hoces da ti stoji i to...
Korak 2
Sada Nadji OnPlayerSpawn i dodaj ovo:
new levelexp = 4;
new nxtlevel = PlayerInfo[playerid][pLevel]+1;
new expamount = nxtlevel*levelexp;
new stringexp[100];
format(stringexp,sizeof(stringexp),"Respekti: ~w~%d/%d",PlayerInfo[playerid][pExp], expamount);
TextDrawSetString(Eksp[playerid], string);
TextDrawShowForPlayer(playerid,Eksp[playerid]);
Isto sebi edituj ovo levelexp zavisi kako je kod tebe u modu koliko exp da ide UP po levelu
Korak 3
sada ces napraviti da se updatuje taj textdraw:
na vrh skripte dodaj:
forward Eksp_Update();
a na dno skripte dodaj:
public Eksp_Update()
{
for(new y=0; y<MAX_IGRACA; y++)
{
new ssstring[100];
format(ssstring, sizeof(ssstring),"Respekti: ~w~%d/%d",PlayerInfo[playerid][pExp], expamount);
TextDrawSetString(Eksp[y], ssstring);
}
return 1;
}
i sada pod OnGameModeInit dodajes timer ovako:
SetTimer("Eksp_Update", 500, 1);
eto to ti je to...Nadam se da ti je pomoglo
Mozda ce biti errora posto sam napamet pisao pola stvari...Ako bude javi.