Malibu 5 Posted November 13, 2012 Share Posted November 13, 2012 Wstep chyba wam sie to przyda do nauki Poradnik ten pisałem dawno temu, gdy sam umiałem tyle co zawarte w tym poradniku. Jest to poradnik dla ludzi, którzy nie znają programowania w żadnym języku. Jeśli znasz inny język, ten poradnik na mało Ci się przyda Na początku należy ściągnąć AMXX Pro Studio, jest on w każdej paczce AMXX, można go też ściągnąć tutaj AMXX Studio Pluginy AMXX są pisane w języku o nazwie pawn W poradniku tym, będę opisywał rzeczy bezpośrednio w kodzie używając komentarzy. Komentarze w kodzie są bardzo przydatne szczególnie jeśli nie tworzysz dla siebie. Komentarzy używa się w następujący sposób Kod php: Kod: zwykły kod //komentarz jedno-liniowy zwykły kod /* a oto komentarz wielo-liniony pierwsza linia komentarza druga linia komentarza trzecia czwarta */ Otwierając AMXX Studio otrzymujemy taki kod: Kod php: Kod: /* Plugin generated by AMXX-Studio */ #include #include #define PLUGIN "new plugin" //definiujemy tutaj nazwę... #define VERSION "1.0" //...wersję... #define AUTHOR "author" //... oraz autora pluginu, będą one się wyświetlać w konsoli po wpisaniu amx_plugins //warto też wspomnieć, iż tekst który ma pzred sobą "//" jest komentarzem- jest ignorowany przez kompilator, można to również zastąpić 2 innymi znakami: "/*"- początek komentowanego tekstu, "*/"- koniec komentarza public plugin_init() { //jedna z ważniejszych części pluginu, tutaj rejestrujemy (mowimy) kompilatorowi co będzie robił plugin. register_plugin(PLUGIN, VERSION, AUTHOR) // Add your code here... tutaj dodajemy dowolny kod, o tym dalej Jak widać wszystyko jest ustawione domyślnie, można to zmienić w ustawieniach: tools/settings/misc Co oznacza #define? Przykład: Kod php: Kod: #define AUTHOR "Inside" wartość AUTHOR w cudzysłowiu(Inside) będzie zastępować AUTHOR w poniższym kodzie- jako autor pluginu będzie podany Inside Kod php: Kod: register_plugin(PLUGIN, VERSION, AUTHOR) Funkcje Funkcje są zawsze przypisane do jakiejś komendy lub eventa(DeathMsg itd.) Oto przykład rejestrowania funkcji: Kod php: Kod: register_clcmd("komenda", "funkcja") Co jest czym register_clcmd- client command, czyli komenda wykonywana przez klienta(gracza) np say /admin czy znany z serwerów pokemod +pokeskill register_concmd- komenda w konsoli, np amx_kick, amx_ban itd. Jest tego znacznie więcej, dochodzą do tego także eventy, być może opiszę je w innym poradniku. Kiedy mam dawać cudzysłów? Cudzysłowów używa się, gdy coś nie ma wartości string(string to wartość zmienna ale ma ograniczone wartości), lub id gracza Przykładem jest client_print(pokazuje wiadomość graczowi): Kod php: Kod: client_print(id, print_chat, "wiadomosc w cudzyslowiu") //id oraz wartość string print_chat nie sa w cudzyslowiu, natomiast wiadomosc- nie jest string i musi go mieć Wartości string client_printa print_chat - wiadomość na czacie, print_console - wiadomość w konsoli, print_notify - wiadomość konsoli w dev, print_center - napis na środku ekranu. Czym jest id? id mówi właściwie na czym ma wykonać komendę(na jakim graczu, 0= na wszystkich) Przykład Powiedzmy, że chcemy, aby graczowi po wpisaniu na czacie siema wyświetlała się na czacie odpowiedź- witamy cię! Kod php: Kod: //nie potrzebujemy tutaj autora, wersji oraz co to będzie za plugin, dlatego to ignorujemy //jednak potrzebne nam są moduły z których będziemy korzystać: #include //to są 2 moduły podstawowe #include //jeśli chcesz korzystać z bardziej zaawansowanych musisz dodać inne moduły public plugin_init() { register_plugin("test", "1.0", "Inside") //jako że zignorowaliśmy defines, możemy zarejestrować plugin teraz register_clcmd("say siema", "funkcja_siema") //rejestrujemy client command dla gracza dla funkcji funkcja_siema } //nie zapomnij zamknąć plugin_init klamrą(to bardzo ważne, ponieważ kompilator pomyśli, że jeszcze nie skończyłeś tego) teraz naciskamy na magiczny przycisk public function u górze kompilatora(można pisac, ale tak szybciej;p), pojawia nam się to: public Function() //tutaj musi być nazwa naszej funkcji oraz id gracza(w nawiasie)- id jest pobierane z wykonaniem clcmd say siema //tutaj będzie to, co chcemy zrobić graczowi będzie to wyglądać następująco: public funkcja_siema(id) //mówimy kompilatorowi, że teraz ma zająć się funkcją funkcja_siema, oraz pobieramy id client_print(id, print_chat, "Witamy cie!") //musimy podac id! to samo id, które wcześniej pobralismy, print_chat opisane wyżej, trzecim argumentem jest wiadomość wyświetlana graczowi Podam również przykład, że gdy jeden gracz coś napisze, widzą go wszyscy(plugin_init taki sam jak wyżej) Kod: Kod php: public funkcja_siema() //nie musimy pobierać id, bo będzie to dla wszystkich graczy client_print(0, print_chat, "Witamy cie!")// w tym przypadku id to liczba 0- wiadomość ta wyświetla się wszystkim graczom Podsumowanie jak pewnie zaważyłeś, użyłem funkcji client_print, jest wiele takich funkcji i to właśnie na tym opiera się pisanie pluginów AMXX Link to comment Share on other sites More sharing options...
Guest Ogen Dogen Posted November 14, 2012 Share Posted November 14, 2012 Hej! Nie widzisz zawartości tego postu? Sign In lub Create an account, aby korzystać ze wszystkich dostępnych funkcji! Link to comment Share on other sites More sharing options...
Malibu 5 Posted November 14, 2012 Topic Author Share Posted November 14, 2012 Hej! Nie widzisz zawartości tego postu? Sign In lub Create an account, aby korzystać ze wszystkich dostępnych funkcji! Link to comment Share on other sites More sharing options...
Andy 2 Posted February 18, 2013 Share Posted February 18, 2013 Hej! Nie widzisz zawartości tego postu? Sign In lub Create an account, aby korzystać ze wszystkich dostępnych funkcji! Link to comment Share on other sites More sharing options...
Recommended Posts