Z racji, że dużo osób ma problemy z tym błędem to postanowiłem napisać coś na szybko o co chodzi w tym wszystkim.
1. Skąd się bierze ten błąd?
Błąd się pojawia, gdy wersja AMXX na serwerze jest niezgodna z wersją kompilatora, którym są skompilowane nasze pluginy.
Przykład:
Mamy sobie AMXX 1.8.1 i wszystko działa. Postanawiamy zrobić update do 1.8.2, no więc wgrywamy pliki nowego AMXX'a, odpalamy serwer i? No i dużo pluginów sypie błędami Load error 17 (invalid file format or version).
2. Jak żyć? Co robić?
Otóż sprawa jest prosta. Najpierw należy się zorientować jaką wersje AMXX posiadamy na serwerze.
Służą do tego komendy:
- meta list
- amxx version
Przykładowy output z komendy 'meta list'. W tym przypadku wersja to 1.8.2
'amxx version'
Gdy ustalimy już wersje czas na kompilacje. Można użyć kompilatora online, który jest na http://amxx.pl, ale sugerowałbym użycie kompilatora lokalnego.
W tym celu wchodzimy sobie na stronke https://www.amxmodx.org/ tam mamy AMXX'y 1.8.2 i 1.9 (reszty wersji trzeba pogrzebać sobie gdzieś w necie czy coś, te najpopularniejsze obecnie). Pobieramy sobie AMX Mod X Base windows/linux (zależy jakiego systemu używasz, mowa tu o twoim systemie, nie tym na serwerze).
Pliczek pobrany, należy go wypakować i przejść do folderu scripting. Tam znajduje się nasz kompilator. Głowne jego pliki to te widoczne na screenie:
Pamiętajcie, aby wrzucić pliki .inc do folderu include, jeżeli jakiś plugin korzysta z własnych.
Teraz gdy mamy nasz kompilator wystarczy przekompilować nasze pluginy z serwera. W tym celu należy wrzucić nasze pliki .sma do folderu z kompilatorem, a później uruchomić plik compile.exe (bądź compile.sh, gdy jesteśmy na linuxie). Wyskoczy okienko, a pluginy się skompilują i będą w folderze 'compiled'. Stamtąd pozostaje nam je wgrać na nasz serwer oraz zmienić mape/zrestartować serwer. Błędy powinny ustąpić. Aby sprawdzić, które pluginy działają bądź nie wystarczy użyć komendy 'amxx plugins' albo 'amx_plugins'
3. Uwagi
1. Pluginy standardowe, czyli:
należy wgrywać wraz z aktualizacją AMXX (są w folderze plugins), z wersji na wersje są zmieniane (dodają jakieś łatki do nich czy nowe ficzery). Nie ma potrzeby ich ponownej kompilacji, gdyż w paczce są one już skompilowane.
2. Błędy przy kompilacji pluginów
Może się tak zdarzyć, że niektóre pluginy będą się kompilowały z błędem na nowszym kompilatorze. Wynika to ze zmian w kolejnych wersjach AMXX. Wtedy należy albo samemu pokombinować coś (zwykle błędy są proste w naprawie), albo napisać na forum temat w odpowiednim dziale. (może będę doklejac do tego tematu listy popularnych błędów itp)
Lista typowych błędów/ostrzeżeń kompilatora:
-
warning 233: symbol "client_disconnect" is marked as deprecated: Use client_disconnected() instead.
Naprawa:
- szukamy w naszym pluginie client_disconnect i zamieniamy na client_disconnected, po czym kompilujemy plugin ponownie i ma śmigać.
3. Dla leniwych kompilator w wersji 1.8.2 na windowsa znajduje się w załączniku.