[Pomoc] TextDraw

Započeo ZC_Bob, Septembar 19, 2013, 15:53:30 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

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.
Poslednja Izmena: Septembar 22, 2013, 12:02:10 POSLE PODNE od |BE|Vuzimir

My Bike KTM 450 SXF 2008