- YouGta http://www.yougta.pun.pl/index.php - Poradniki do PAWN http://www.yougta.pun.pl/viewforum.php?id=38 - Jak zrobić textdraw http://www.yougta.pun.pl/viewtopic.php?id=34 |
szefcio - 2012-04-30 20:38:53 |
Witam w tym poradniku przedstawie wam jak zrobić własny textdraw. Kod:new Text: Nazwa Text Drawa; Szukamy public OnGameModeInit() Kod: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: Kod:TextDrawShowForPlayer(playerid, NazwaTD);//pokazujemy graczowi TextDraw Mniej wiecej objasnilem jak zrobic zwykly TextDraw, teraz pora na cos bardziej skomplikowanego, np. TextDraw z respektem./color] Kod:new respekt[MAX_PLAYERS];//zmienna Pozniej tworzymy TextDraw, ale inaczej jak wyzej, bo na gorze mapy nalezy dac: Kod:new Text:NazwaTD[MAX_PLAYERS];//zmienna dla wszystkich graczy oddzielnie Teraz w public OnGameModeInit() robimy pętle na wszystkich graczy: Kod:for(new i=0; i<GetMaxPlayers(); i++) pod pętlą dajemy klamrę otwierajaca, a pod klamra, tworzymy TD: Kod: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. Kod:SetTimer("TextDraw", 1000, 1);//czyli będzie się odtwarzał co 1 sek. Teraz tworzymy nasz public TextDraw Kod: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: Kod:TextDrawShowForPlayer(playerid, NazwaTD[playerid]); Aby nie było problemów z limitem, należy dać w public OnGameModeExit(): Kod:TextDrawDestroy(NazwaTD); A w drugim przypadku: (w pętli) Kod:TextDrawDestroy(NazwaTD[i]); |