Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

TibacK - zdjęcie

TibacK

Rejestracja: 03.07.2013
Aktualnie: Korzysta z komunikatora
Poza forum Ostatnio: dziś, 19:53
*****

Moje tematy

Naprawa: Plugin uses an unknown function (name "xxx")

18.09.2019 19:46

A napisze sobie tutka, bo mam wolne 15 minut :D Może sie przyda komuś.

 

Przykładowy błąd:

[AMXX] Plugin "csgo_ranks_us.amxx" failed to load: Plugin uses an unknown function (name "add_user_elo") - check your modules.ini.

1. Skąd się bierze ten błąd?

 

Błąd generalnie nie jest jakiś skomplikowany. Chodzi o to, że mamy plugin csgo_ranks_us, który chce skorzystać z natywu add_user_elo, ale żaden plugin nie udostępnia takiego natywu. No i stąd ten błąd. Kompilator nie jest w stanie wychwycić tego typu błędu, ponieważ on tak naprawdę nie ma pojecia czy natyw, którego chcemy użyć istnieje. My mu dostarczamy tylko linijkę, która informuje, że zamierzamy skorzystać z jakiegoś natywu np:

native add_user_elo(id, ile);

I kompilator w tym momencie mówi - ok, ja to skompiluje, ale twoim zadaniem jest zadbanie o to, żeby inny plugin udostępniał ten natyw. Powyższą linijkę można traktować jako taką 'zapowiedź', że będzie istniał taki natyw jak add_user_elo. Jeśli jednak nie dostarczymy pluginu, który będzie obsługiwał ten natyw to dostaniemy błąd, o którym mowa.

Więcej o natywach można poczytać w tutorialu mojego serdecznego kolegi tu: https://amxx.pl/topi...e-api-w-amxxie/ lub tu: https://amxx.pl/topic/20034-natywy/

 

Warto dodać także, że może się tak zdarzyć, że wgramy plugin całkiem od innego moda i brakuje jakiegoś natywu i wtedy raczej trzeba będzie przerobić plugin, tak aby współpracował z naszym modem.

 

 

2. Jak naprawić?

 

Proste - dostarczyć plugin, który obsługuje dany natyw. No własnie, ale skąd wiadomo co wgrać? Ano tu trzeba mieć troszkę obycia i ogarnięcia, bo można się domyśleć - jeśli wywala nam coś o natywie na przykład z cod moda, to można sie domyslać, że z czymś do CoD'a jest nie tak. Najprostszy sposób to wrzucić nazwe natywu w google i po tych śladach dojść co za plugin go udostępnia. No dobra, ale nie zawsze się tak uda i co wtedy? Mogło się zdarzyć tak, że wywalił nam się silnik jakiegoś moda i wszystkie pluginy, które korzystają z natywów tegoż silnika się wywali też. Przykład? Masz:

 

Spoiler

 

Widzimy tutaj, w 3 linijce, że wywalił sie silnik cod mod i co? I poleciały wszystkie perki i klasy po kolei, więc warto czasem przeglądnąć w logu co tam sie zrobiło i wydedukować czy czasem nie jest tak, że jeden plugin sie wysypał, a reszta zaleznych od niego też. W tym przypadku należy poprawić silnik (a tak naprawdę wgrac moduł hamsandwich, ale na potrzeby tego tutoriala to uprościłem), a zależne od niego pluginy się uruchomią.

Pamiętaj, że możesz sprawdzić stan pluginów wpisując 'amxx plugins' w konsole serwera i w ostatniej kolumnie mamy status pluginu. Jeśli się nie załaduje jakiś plugin to będzie miał status 'bad load', wtedy należy się zacząć martwić, a potem naprawić go ;)

Przykładowy wydruk po wpisaniu 'amxx plugins'

Spoiler

 

 

3. Uwagi

 

Jeśli jesteś spostrzegawczy to zauważyłeś, że w błędzie jest napisane: "check your modules.ini", ale tak naprawdę nawet nie trzeba tam zaglądać. Moduły ładują się automatycznie jeśli są wymagane (bodajże od wersji 1.8.1)

 

 

 

Jeśli masz pomysł co by tu można dodać jeszcze to napisz :P

Respawn Alert - kara dla kampiacych - możliwość ustawienia własnej strefy

09.09.2019 20:44

Witam, miałem zrobić to zrobiłem i sie podziele.

 

opis

Jest to modyfikacja tego pluginu: https://amxx.pl/topi...buyzone-respie/

Z tym, że plugin ma możliwośc ustawienia stref, czyli nie jesteśmy ograniczeni przez buyzone, ale możemy sobie rozciągnąć strefy jak nam się podoba.

 

inne informacje

Z góry dziękuję autorowi za jego kod, który dostosowałem troszke na potrzeby moich zmian.

 

konfiguracja

No więc tak - polecam poczytać opis pluginu zalinkowanego wyżej, bo funkcjonalności się nie zmieniły.

 

Jedyna różnica to mozliwość ustawiania strefy.

Menu kreatora stref mamy pod komendą: /strefy , a także pod klawiszami Z,X,C (radio1,2,3).

Menu jest na flage: ADMIN_RCON czyli flaga "l" (l jak lama)

Menu jest dość proste do ogarnięcia. Po zapisaniu stref stworzy nam sie plik w folderze configs/respawn_zone/nazwaMapy.ini
Możemy poustawiać sobie pare stref, w których gracz ma być karany za przebywanie

 

instalacja

https://amxx.pl/topi...-pluginów-amxx/

oraz

Plik Respawn_Alert.cfg wrzucamy do foldery configs i w nim ustawiamy cvary.

plik .ini wrzucamy do folderu configs/respawn_zone/  (jeśli nie istnieje to trzeba stworzyć)

tu jest pokazowa strefa, którą zrobiłem (jesli ktoś chce zrobić lepsze lub dla innych map to proszę wrzucić do tematu a ja dodam tu): 

 

Strefa sięga tak:

Załączony plik  1.png   1,32 MB  0 Ilość pobrań

Załączony plik  2.png   1,36 MB  0 Ilość pobrań

naprawa: fatal error 100: cannot read from file: "xxx"

06.09.2019 21:57

Z racji, że widziałem pare już takich przypadków, więc napisze to, żeby mieć gdzie odsyłać :D

 

1. O czym mowa?

 

Mowa o błędzie 'cannot read from file' podczas kompilacji. Błąd najczęściej ma postać:

 
C:\Users\user\Desktop\scripting\plugin.sma(6) : fatal error 100: cannot read from file: "stripweapons"

2. Skąd się bierze ten błąd?

 

To proste. Kompilator nie mógł znaleźć pliku stripweapons.inc w folderze include.

 

 

3. Jak naprawić?

 

Rozwiązanie jest proste. Należy znaleźć i pobrać wskazany plik .inc, a następnie wgrać do go folderu /include naszego kompilatora.

 

 

4. Gdzie szukać plików .inc?

 

  • Gdy pobieramy jakąś paczke pluginów to wymagane pliki .inc można znaleźć w paczce (prawdopodobnie folder /scripting/include)
  • Na naszej kochanej, cudownej, przewspaniałej dokumentacji https://amxx.pl/dokumentacja/  tam możemy kliknąć na nazwe modułu/biblioteki i tam przejść do pobierania
    Załączony plik  screen.png   12,24 KB  0 Ilość pobrań
  • wpisujemy następującą fraze w google: "stripweapons.inc amxx" lub "stripweapons.inc alliedmodders"  (oczywiście zamiast stripweapons podajemy nazwę pliku, którego chcemy znaleźć)

 

 

Mam nadzieje, że się komuś przyda. Pozdrawiam serdecznie.

 

 

 

 

Advanced info - w której strefie mapy znajduje się gracz, kara za kampienie na respie

19.08.2019 20:43

Witam, z racji, że dawno nic nie wrzucałem to wrzuce. Plugin powstał, po wielu irytujących meczach w cska, gdzie zespół był do kasacji bo dawali albo złe info, ale nie dawali.

 

opis

Zamysł pluginu był banalny. Tworzymy strefy a potem pokazujemy graczowi, w której strefie na mapie jest.

Plugin ma pare przydatnych rzeczy jak:

  • kreator stref, dzięki któremu możemy utworzyć sobie strefy na mapie (prosty w obsłudze)
  • kara za kampienie na respie
  • pokazywanie, kto gdzie zginął (lub z którego miejsca został zabity)
  • pokazywanie, gdzie leży paka, jeśli jakiś CT ją zauważył
  • jeśli paka leży zaplantowana i ct zobaczy pake to reszta dostanie info na ktorym BS lezy
  • paka może być zaznaczona na radarze
  • jakieś domyślne pozycje, w których jest wyświetlana informacja o strefie na ekranie
  • omijanie pierwszych kilkunastu sekund rundy, po to by nie spamować wiadomościami od początku rundy
  • natyw, którym możemy pobrać strefe, w której znajduje się jakiś gracz/entity
  • system kolejkowania wiadomosci

Załączony plik  2.png   575,66 KB  0 Ilość pobrań

 

cvary

info_display_style 2 				// czyja lokalizacje pokazywac?  0 - nikogo (wyłącz), 1 - ofiary, 2 - zabojcy
info_display_zone_only 0 			// pokazywac tylko nazwy stref czy dodatkowy tekst tez? 0 - nie, 1 - tak
info_hud_holdtime 5.0 				// jak dlugo ma byc pokazywana informacja
info_hudpos 2 					// pozycja gdzie wyswietlac wiadomosci, 0 - kolo radaru, 1 - pod death info, 2 - nizej celownika
info_hudcolor "0 200 0" 			// kolor wiadomosci
info_block_time 20.0 				// jak dlugo blokowac informacje od poczatku rundy
info_bomb_info 1 				// czy pokazywac info na temat pozycji bomby, 0 - nie, 1 - tak
info_bomb_reminder 12.0 			// odstep miedzy powiadomieniami o bombie (czyli takie jakby, jak czesto odswiezac ta wiadomosc)
info_bomb_on_radar 1 				// czy pokazywac pozycje bomby na radarze? 0 - nie, 1 - tak
info_player_zone 1 				// czy pokazywac w ktorej strefie jest gracz? 0 - nie, 1 - tak
info_hudpos_player 2 				// pozycja gdzie wyswietlac wiadomosci dla strefy gracza, 0 - pod radarem, 1 - nad death info, 2 - srodek gora, 3 - pod czatem
info_hudcolor_player "90 222 50" 		// kolor wyzej wymienionej wiadomosci
info_kill_resp_time "30.0"                      // po jakim czasie ma sprawdzic polozenie graczy (czyli ile czasu mozna stac na respie po rozpoczeciu rundy)

instalacja

https://amxx.pl/topi...-pluginów-amxx/

 

konfiguracja

Dobra, to teraz pare słów o konfiguracji:

 

Aby zabijało graczy na respie to strefa musi zawierać w swojej nazwie "resp" oraz "tt" (wielkość liter nie ma znaczenia). Czyli strefe od respa tt mozemy nazwac "Resp TT", "Respior tT" itd.

 

Menu kreatora stref mamy pod komendą: /strefy  , a także pod klawiszami Z,X,C (radio1,2,3).

Menu jest na flage: ADMIN_RCON czyli flaga "l" (l jak lama)

Załączony plik  1.png   992,02 KB  0 Ilość pobrań
No i dobra, po ustawieniu i zapisaniu strefek stworzy nam się plik w configs/info_zone/nazwaMapy.ini, gdzie nazwaMapy to nazwa obecnej mapy (a jakże by inaczej?)
Wrzucam Wam strefki do mapy de_dust2 (download niżej), które przygotował wiktor000. Dzięki Ci za to  :blaga:  :blaga:
 
Kilka porad co do ustawiania stref:
  • najlepiej jak strefy będa dość duże, a nie kilka malutkich dotyczących tego samego
  • strefy mogą mieć takie same nazwy
  • strefy nie powinny na siebie nachodzić
  • nie zapomnij zapisać stref :D
 
Reszta konfiguracji jest na początku kodu pluginu. Tam można poustawiać jakies bardziej zaawansowane rzeczy, ale nie trzeba ich ruszac w sumie.
Wyżej wymienione cvary można sobie dopisać do amxx.cfg. Cvary dotyczące kolorów odświeżają się co runde.
 
Jeśli hud by migał (mowa tu o tym, który pokazuje gdzie obecnie się znajdujemy) to można zmienić go na dhud - ale proszę o nowy wątek na forum - tam to rozwiążemy
 
 
inne informacje
W pluginie jest nawalone set_tasków, zdaje sobie sprawe, że jest to napisane niejasno itp.
Cała kolejka to jakiś wielki śmieszny task, ale taką miałem wene :D
Mamy też natyw, który pozwala pobrać lokalizacje jakiegoś entity:
 
// team -> 1 - TT, 2 - CT
// message -> wiadomośc
info_add_message(team, message[]);

Dzięki temu łatwo zintegrować takie info po śmierci, bo to domyślne jest na czacie i słabo widać, tak to jest szansa, że więcej osób zauważy dane info ;)

 

 

Radze nie napieprzać tym natywem w jakimś thinku czy coś.

 

Czuje, że wyjdą bugi, ale poprawi sie najwyzej  :/

Część kodu zakrzywiłem ze swojego starego antyrushera, który był bazowany na jakimś innym antyrusherze :D

Wszelkie sugestie mile widziane!

 

 

download

Pliki stref (wrzucamy do addons/amxmodx/configs/info_zone):

 

Jeśli ktoś chciałby/zrobiłby konfiguracje/edycje/poprawki pod inne mapki to proszę o wrzutke ;)

 

20.08.2019 - dodanie zabijania graczy kampiących na respie.

04.09.2019 - poprawiono wyświetlanie HELP_LINE

07.09.2019 - poprawka w enumie - nie wpływała na działanie pluginu, ale kłuła w oczy

pobranie id podlozonej paki

16.08.2019 21:03

Hejo, zna ktoś jakiś dobry sposób na pobranie id paki, która jest podłożona?

iEnt = fm_find_ent_by_model(-1, "grenade", "models/w_c4.mdl");

Taka metoda odpada, bo zależy od modelu.

Pozdrawiam ;)