Skocz do zawartości
Myślę więc jestem

Klikalne TextDrawy

Rekomendowane odpowiedzi

Witajcie droga społeczności serwisu Pawno.pl . W tym oto poradniku chciałbym wstępnie naprowadzić was na tworzenie tak zwanych "interaktywnych , klikalnych textdrawów (nazwa własna)". Na wstępie proszę o szczere opinie na temat tego poradnika mam nadzieję iż wyjaśnię to bardzo dobrze i że nikt z tym nie będzie miał problemu.
 
 
 Cały KOD podany w Poradniku jest podany "na odwal" co oznacza że nie powinien on zadziałać poprawnie.
Jest to tak zwany Fake Code.
 
Część Pierwsza
Wstęp
 
 
W części pierwszej znajduję się niewielka dawka informacji. Zajmiemy się tu definicjami, wyjaśnieniem ich oraz tworzeniem zwykłych (nieinteraktywnych) textdrawów. 
 
- Pierwszym krokiem do oskryptowania interaktywnego textdrawu jest samo stworzenie go.
  Więc co, spróbujmy. Pierwszą rzeczą którą musimy wykonać jest zdefiniowanie oraz 
  nazwanie naszego textdrawu. Uczynimy to poprzez wklepanie na góre "mapki*":
 
 
new Text:NAZWA_TEXTDRAWU;
 
- Drugim krokiem do oskryptowania interaktywnego textdrawu jest samo stworzenie go 
  jak już wcześniej wspomniałem. Aby to uczynić musimy odnaleźć w naszym skrypcie
  public który nosi nazwę OnGameModeInit lub OnFilterScriptInit w zależności czy
  kod tworzony przez nas to filterscript czy też gamemod. No więc powinno to wyglądać
  mniej więcej tak:
  
 
  NAZWA_TEXTDRAWU =TextDrawCreate(1.000000, 120.000000, "STRING");
  // ... DALSZY KOD TEXTDRAWU
 TextDrawUseBox (Textdraw2, 1);
 TextDrawSetSelectable (Textdraw2, true);
 
 
 Chciałbym zwrócić Waszą uwagę tu na dwie ostatnie linijki kodu którymi są:
 
 TextDrawUseBox (Textdraw2, 1);
 TextDrawSetSelectable (Textdraw2, true);
 
 Odpowiadają one za to czy nasz TextDraw ma posiadać Box oraz za to czy ma
 on być "klikalny / interaktywny".
 TextDraw interaktywny musi posiadać box.
 
 
Część Druga
Rozwinięcie
 
 
 W tej części zajmiemy się dalszym programowaniem TextDrawu. mamy za sobą
 już najważniejsze czynności jakimi są stworzenie textdrawu oraz jego 
 interaktywność. Ale co dalej ? Teraz musi się coś dziać, nieprawdaż ? Aby coś
 miało się dziać po kliknięciu w nasz interaktywny text draw odpowiada jeden z
 public'ów który nosi nazwę OnPlayerClickTextDraw. Musimy teraz "powiedzieć"
 public'owi o który interaktywny textdraw nam chodzi. Robimy to poprzez podanie
 clickedid. Co na nasze oznacza ID klikniętego Text Drawu (ID w tym przypadku
 jest nazwą TextDrawu).
 
 
 if(clickedid == NAZWA_TEXTDRAWU) 
 {
 // Co sie dzieje po kliknięciu.
 SendClientMessage(playerid, -1, "Interaktywny TextDraw zadziałał poprawnie.");
 } // Kończymy i potem robimy tak samo dalej z innymi TD'ami.
 
 
Część Trzecia
Podsumowanie
 
 
 A więc teraz gdy chcemy zobaczyć czy nasz TextDraw działa musimy go
 gdzieś wywołać. Ja na przykładzie pokażę Wam to na przykładzie spawnu
 gracza.
 
 
 public OnPlayerSpawn(playerid)
 {
 TextDrawShowForPlayer(playerid, NAZWA_TEXTDRAWU);
 return 1;
 }
 
 Przedstawiony kod jak widzicie ukaże nam TextDraw. Ale co dalej skoro my
 powiedzieliśmy skryptowi że ma go tylko pokazać. Potrzebna będzie nam 
 jeszcze jedna funkcja jaką jest SelectTextDraw.
 
 
 SelectTextDraw(playerid, /*TUTAJKOLOR*/);
 
 
 Po zastosowaniu tej funkcji nasz TextDraw jest w pełni klikalny.
 W miejscu gdzie możemy podać kolor jest to kolor na który
 ma podświetlać się TextDraw.
 
 
Dzięki wielkie za obejrzenie tego poradnika. 
Mam nadzieje iż Wam pomoże ! :)
Zapraszam do oceny i pozdrawiam.
Edytowane przez Myślę więc jestem

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

TextDraw interaktywny musi posiadać box.

 

Gówno prawda. Box nie jest niezbędny, żeby nasz TextDraw był 'klikalny' (funkcja TextDrawTextSize() ).

 

Moim skromnym zdaniem poradnik jest napisany bez konkretnego przygotowania się z Twojej strony. Coś niby wiesz, ale brakuje tutaj sporej dawki informacji.

 

Przykładowo, piszesz o możliwości wyboru TD, ale nie ma nic o funkcji CancelSelectTextDraw() - która powinna się w Twoim tekście znaleźć.

http://wiki.sa-mp.com/wiki/Textdraw

Poczytaj i zrób obszerniejszy poradnik, w którym wyczerpiesz temat TextDraw'ów.

Edytowane przez zrio

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×