GTA 3, GTA Vice City, GTA SA, GTA IV, GTA V, mapy, skrypty, pluginy, wszystko o gta, multiplayery do GTA.
Witam w tym poradniku przedstawie wam jak zrobić własny textdraw.
Na górze dajemy:
new Text: Nazwa Text Drawa;
Szukamy public OnGameModeInit()
i tworzymy tam TextDraw, czyli:
NazwaTD = TextDrawCreate(X,Y, "Tresc");//tworzymy TextDraw, w miejsce X,Y podajemy położenie TextDraw'u w pixelach TextDrawColor(NazwaTD, Kolor);//ustawiamy jego kolor i opcjonalnie: TextDrawLetterSize(NazwaTD, X,Y);//ustawiamy szerokosc i wysokosc liter Mozna tez dac duzo innych funkcji TextDraw'u ale nie bede o nich pisal
Mamy juz stworzony TextDraw, teraz trzeba go pokazac graczu, wiec szukamy:
public OnPlayerConnect(playerid) wtedy pokaze sie zaraz przy polaczeniu gracza.
A gdy chcemy aby sie pokazal po spawnie, to szukamy public OnPlayerSpawn(playerid)
i dajemy tam:
TextDrawShowForPlayer(playerid, NazwaTD);//pokazujemy graczowi TextDraw
Mniej wiecej objasnilem jak zrobic zwykly TextDraw, teraz pora na cos bardziej skomplikowanego, np. TextDraw z respektem./color]
A wiec...
tworzymy zmienna, ktora bedzie przechowywac respekt graczom:
new respekt[MAX_PLAYERS];//zmienna
Pozniej tworzymy TextDraw, ale inaczej jak wyzej, bo na gorze mapy nalezy dac:
new Text:NazwaTD[MAX_PLAYERS];//zmienna dla wszystkich graczy oddzielnie
Teraz w public OnGameModeInit() robimy pętle na wszystkich graczy:
for(new i=0; i<GetMaxPlayers(); i++)
pod pętlą dajemy klamrę otwierajaca, a pod klamra, tworzymy TD:
NazwaTD[i] = TextDrawCreate(X,Y,"_");//tworzymy pusty TextDraw dla kazdego gracza oddzielnie, potem tak samo jak powyżej, tylko należy pamiętać, że po NazwaTD dawać [i]
Teraz, trzeba jakoś dodawać do zmiennej respekt, zazwyczaj respekt sie dodaje jak gracz kogoś zabije, to nie jest poradnik jak zrobic respekt, więc tego nie wytłumacze.
Teraz w publicu OnGameModeInit() robimy timer, który będzie aktualizował nam TextDraw, więc:
SetTimer("TextDraw", 1000, 1);//czyli będzie się odtwarzał co 1 sek.
Teraz tworzymy nasz public TextDraw
forward TextDraw();//forwardujemy public public TextDraw() { for(new i=0; i<GetMaxPlayers(); i++); //pętla na wszystkich graczy { new string[256];//tworzymy string, ktory bedzie nam przechowywal treść TD format(string, sizeof(string), "Respekt: %d", respekt[i]); //formatujemy tekst TextDrawSetString(NazwaTD[i], string);// zmieniamy nasz pusty TextDraw na ten ze stringa } return 1; }
I jeszcze go pokazujemy graczowi, więc w public OnPlayerConnect lub public OnPlayerSpawn, dajemy:
TextDrawShowForPlayer(playerid, NazwaTD[playerid]);
Aby nie było problemów z limitem, należy dać w public OnGameModeExit():
TextDrawDestroy(NazwaTD);
A w drugim przypadku: (w pętli)
TextDrawDestroy(NazwaTD[i]);
Offline
Pomogłeś mi dzięx idzie + :]
Offline