Co mam na myśli ? Chociażby wlepianie do tekstu nicku danego gracza, fragów, zgonów i tak dalej...
Przejdźmy do rzeczy, jedną z najbardziej znanych funkcji do formatowania tekstu, jest funkcja formatex(output[] ,len ,const format[] , any:...)
Musimy wypełnić w niej jednak następujące parametry
output[] - tablica, do której trafi nasz sformatowany już tekst
len - wielkość tablicy
const format[] - tekst, który będziemy przygotowywać do formatowania
any:... - tutaj dodamy, to, co zechcemy wrzucić do tekstu

Formatowanie nie jest aż tak skomplikowane, lecz istnieje coś takiego jak znaki (o których wcześniej wspomniałem) formatujące

Źródło: http://amxx.pl/dokum...a/f1366/format.
Przed każdy znak należy dodać %. Wydaje mi się że najlepiej wytłumaczyć będzie to na przykładzie
if(id == 1) { new tekst[101]; formatex(tekst, 100, "Twoj index jest rowny %d", id); //tekst - "Twoj index jest rowny 1" }Jak widać dodałem do tekstu %d, użyłem znaku d, gdzie odpowiada on za liczbe dziesiętną ze znakiem.
Oczywiście to tylko przykład, istnieje naprawdę dużoooo 'rzeczy' (naprawdę bardzo dużo), które możemy wrzucić do tekstu.
A tera trochę więcej, chcemy dodać do tekstu liczbę wymierną, lecz jest ona liczbą która nie ma końca (zapomniałem jak na takie liczby się mówi

Czyli, np. 100/3 = 33.333...
Możemy ograniczyć dodawanie tych liczb (po przecinku w tym przypadku), poprzez zamiast dodanie znaku
%fna
%.2fWtedy wyświetli nam się w danym miejscu 33.33
Podobnie można działać na znaku d czyli na liczbach rzeczywistych
new tekst[101]; formatex(tekst, 100, "Twoj index jest rowny %02d", id); //tekst = "Twoj index jest rowny 01"Warto powiedzieć że w np. ColorChat mamy że tak się wyrażę wbudowane formatowanie tekstu
Pokaże na przykładzie wyświetlania nicku na chacie, kiedy ten wchodzi na serwer

public client_putinserver(id) { new nick[64]; get_user_name(id, nick, 63); ColorChat(0, GREEN, "Na serwer wchodzi^x03 %s", nick); }Oczywiście formatex nie jest takie doskonałe (jest szybsze od innej funkcji, http://amxx.pl/dokum...ja/f1366/format), a mianowicie, istnieje funkcja format w której można zrobić coś takiego:
new tekst[101] = "de_dust2"; format(tekst, 100, "maps/%s.bsp", tekst);Chodzi mi tutaj o to, że tekst jako tablica do której wysyłamy sformatowany ciąg znaków, w format możemy użyć jeszcze jako jeden z parametrów do sformatowania, w formatex natomiast nie można już tak postępować.
Tak w sumie to są szanse że to zadziała, ale tylko wtedy, kiedy parametr który jest tablicą wynikową, jest na początku (Poprawka sebula

Myślę że dość zrozumiałe, poradnik na tym się kończy

Użytkownik d0n tHe Pr0oo edytował ten post 03.02.2013 11:15