AMX Mod 2005 RC1

Od HLDS.pl
Skocz do: nawigacji, wyszukiwania

Spis treści

Instalacja

Ten artykuł jest niepełny i wymaga uzupełnienia. Jeżeli jesteś w stanie - postaraj się go uzupełnić.. Pamiętaj, że nawet najmniejsza zmiana jest cenna i pomocna :)


  • w sekcji Kompilacja - porawić ściekzę
  • dodac sekcje o modułach - a nie mieszać
  • dodac linka do komend (strona jescze nie istnieje)
  • dodać linka do edycji innych plików cfg - ale to trzeba rzbic bo jak pamietam wiekszosc plików sie nie zmienila od 0.9.3 (tzn zawartosc, lokalcje to non stop sie mzienialy)
  • na bazie tego arta potem powstanie opis 2006 rc1
  • wymordowac literowki :D

Wstęp

Przeczytaj najpierw o HLDS i AMX Mod. Musisz mieć na serwerze zainstalowane MetaMod lub MetaMod-P 1.18 lub nowszy

$moddir oznacza nazwę katalogu modu, np cstrike

Linie zaczynające się średnikiem w większości przypadków oznaczają komentarz - nie są przetwarzane przez pluginy/skrypty. Przeważnie używa się ich w celu szybkiego włączenia lub wyłączenia pewnych funkcji całości albo dodania ekstra informacji w celu opisania co do czego służy


Pliki

Pobieramy interesującą nas wersję AMX Mod'a (z końcówką dla danego moda):

  • cstrike - dla Counter-Strike lub Condition-Zero
  • dod - dla Day of Defeat
  • lite - dla innych modów (np TFC, DMC, NS)

UWAGA - nie pobierać wszystkich pakietów i nie nadpiswać wersjami dla innych modów.

Warto zaopatrzyć się też w zestaw dźwięków (sounds), szczególnie jeśli instalujemy od zera. Aktualna wersja pisania instrukcji to 2005 rc1.

Archiwa rozpakowywujemy do katalogu HLDS do podkatalogu modu. Pod linuksem będzie to coś w rodzaju ~/hlds_l/cstrike, pod Windows do

X:/Katalog_ze_STEAM/SteamApps/twoj@mail.com/counter-strike/cstrike/

lub do

X:/Katalog_z_HLDS/cstrike/ 
zarówno dla pliku gółwnego jak i pakietu dzwięków.

MetaMod

Uwaga - pakiet od razu zawiera w sobie pliki MetaModa 1.18p26 Jeśli nie masz pliku $moddir/addons/metamod/plugins.ini to skopiuj go z pliku $moddir/addons/metamod/sample_plugins.ini, w innym przypadku dołącz sample_plugins.ini do plugins.ini

W ostateczności twój $moddir/addons/metamod/plugins.ini powinien zawierać linie :

; AMX Mod
win32 addons/amx/dlls/amx_mm.dll
linux addons/amx/dlls/amx_mm_i386.so

Aktywacja modułów AMX Mod

  • W zależności od tego, jakie chcesz pluginy amx uruchamiać na serwerze, mozliwe, że będziesz musiał aktywowac pare modułów.
    • Na przykład dla ATAC czy CSDM i paru innych generujących efekty specjalne, należy aktywować moduł VexdUM.
    • Dla dodaktów tłumaczących numery IP na nazwy krajów należy aktywować moduł GeoIP.
    • Dla dodatków łączących się z innymi serwerami (np do aktywacji HLTV, pobierania ekstra plików) aktywujemy moduł Sockets
    • Niektóre serwery (np klanowe) mogą wymagać deaktywacji modułów (np CSStats)
  • Otwórz plik addons/amx/config/modules.ini, zastaniesz tam takie oto linie
; CS Stats (for Counter-Strike)
csstats.dll
csstats_i386.so
; Fun: more functions for modifications in HL
fun.dll
fun_i386.so
; Vexd Util.
;VexdUM.dll
;VexdUM_i386.so
; GeoIP
;geoip.dll
;geoip_i386.so
; Sockets
;sockets.dll
;sockets_i386.so

Średnik na początku linii oznacza komentarz - więc linia nie będzie przetwarzana.

  • Jak widać domyślnie moduły VexdUM, GeoIP i Sockets są nieaktywne - mają średniki w liniach kończących się na .so oraz .dll

Aktywne są za to domyslnie moduły CSStats, Fun (Functions).

Uwaga

  • Przykład jak powinen wyglądąć ten plik jeśli chcemy aktywować moduł VexdUM (popatrz uważnie na średniki)
; CS Stats (for Counter-Strike)
csstats.dll
csstats_i386.so
; Fun: more functions for modifications in HL
fun.dll
fun_i386.so
; Vexd Util.
VexdUM.dll
VexdUM_i386.so
; GeoIP
;geoip.dll
;geoip_i386.so
; Sockets
;sockets.dll
;sockets_i386.so
  • Przykład aktywacji wszystkich modułów
; CS Stats (for Counter-Strike)
csstats.dll
csstats_i386.so
; Fun: more functions for modifications in HL
fun.dll
fun_i386.so
; Vexd Util.
VexdUM.dll
VexdUM_i386.so
; GeoIP
geoip.dll
geoip_i386.so
; Sockets
sockets.dll
sockets_i386.so

Przykład deaktywacji wszelkich modułów

; CS Stats (for Counter-Strike)
;csstats.dll
;csstats_i386.so
; Fun: more functions for modifications in HL
;fun.dll
;fun_i386.so
; Vexd Util.
;VexdUM.dll
;VexdUM_i386.so
; GeoIP
;geoip.dll
;geoip_i386.so
; Sockets
;sockets.dll
;sockets_i386.so

Konfiguracja

Dodawanie Adminów

W celu utworzenia admina, wchodzimy do: addons/amx/config i edytujemy plik users.ini

Standardowo zawarte są w nim przykłady jak należy dodać admina na samym końcu. Poprawne konto wygląda tak:

<nick|ip|steamid> <hasło> <flagi_dostępu> <flagi_konta>

Flagi dostępu

  • a - immunitet (gracz z tą flagą ma immunitet czyli nie może być kickowany, banowany, slapowany itp. Zaleca sie nie dawanie tej flagi nikomu. Co najwyżej sobie (H@)).
  • b - rezerwacja slotu (gracz dostaje rezerwacje slotu)
  • c - amx_kick (admin z tą flagą może kopać ludzi z serwera).
  • d - amx_ban i amx_unban (admin z tą flagą może banować i odbanowywac graczy)
  • e - amx_slay i amx_slap (admin z tą flagą może slayować i slapować graczy)
  • f - amx_map (admin z tą flagą może zmieniać mapę)
  • g - amx_cvar (admin z tą flagą może zmieniać ustawienia serwera [nie wszystkie!])
  • h - amx_cfg (admin z tą flagą może uruchamiać configi serwera)
  • i - amx_chat (admin z tą flagą może używać kolorowych napisów)
  • j - amx_vote (admin z tą flagą może uruchamiać glosowania)
  • k - dostęp do sv_password (admin z tą flagą może ustawić hasło na serwerze)
  • l - dostęp do amx_rcon (admin z tą flagą może wykonywać polecenia na konsoli samego serwera poprzez amx_cvar)
  • m - własny poziom A
  • n - własny poziom B
  • o - własny poziom C
  • p - własny poziom D - (Flagi te są używane przez dodatkowe pluginy - informacje wenatrz plików .sma)
  • q - własny poziom E
  • r - własny poziom F
  • s - własny poziom G
  • t - własny poziom H
  • u - menu access (admin z tą flagą może używać menu)
  • z - użytkownik (flaga do oznaczenia NIE admin, zwykłego użytkownika)

Flagi konta

  • a - rozłącz gracza przy podaniu złego hasła
  • b - tag klanowy, fragment nicka
  • c - użytkownik na STEAMID
  • d - użytkownik na IP
  • e - hasło do konta nie jest sprawdzane (wymagany jest tylko nick / ip / steamid admina)

Uwaga Jeśli w plik .ini linia zaczyna się od średnika, to ta linia nie będzie przetwarzana przez AMX Mod – tak stosuje się komentarze, albo usuwa się niepotrzebne wpisy bez potrzeby ich kasacji.

Przykłady

"192.168.0.10" "haslo" "abcdefghijklmnopqrstu" "ad"

Admin jest dany na IP:192.168.0.10 oraz dodatkowo sprawdzane jest hasło. Przy błędnym haśle gracz zostanie wykopany z serwera.

"192.168.0.15" "" "abcdefghijklmnopqrstu" "de"

Admin dany jest na IP:192.168.0.15 Hasło nie jest wymagane. Każdy gracz z tego IP dostanie uprawnienia admina.

"STEAM_0:0:000000" "haslo" "abcdefghijklmnopqrstu" "ac"

Admin dany jest na STEAMID oraz wymagane jest hasło.

"nick_admina" "haslo" "abcdefghijklmnopqrstu" "a"

Admin dany jest na nicka oraz wymagane jest hasło. Aby admin dostał swoje uprawnienia musi mieć hasło w configu (patrz niżej) oraz musi mieć nicka na jakiego nadano mu admina (wielkość liter jest ważna!).

"STEAM_0:0:000000" "" "abcdefghijklmnopqrstu" "ce" 

Admin dany jest tylko na STEAMID, bez hasła


  • Adminom, których dostęp wymaga hasła do zalogowania się każemy do configa dopisać:

setinfo _pw "haslo"

hasło - to, które podaliśmy przy tworzeniu konta admina.

amx.cfg

  • edytujemy plik addons/amx/config.amx.cfg
  • Domyslny poziom graczy - definuje dostęp do komend itp, radzę nie zmieniać.
amx_default_access "z" 
  • Nazwa pola przy sprawdzaniu hasła admina, wykorzystywane przy setinfo, radzę nie zmieniać.
amx_password_field "_pw" 

kiedys było _amx_pw

  • Metoda logowania graczy w amx
    • 0 - wyłącza logowanie - gracze nie są sprawdzani i adminy nie działają
    • 1 - tryb normalny - gracze będący zapisani w users.ini dostaną możliwość użycia przydzielonych im komend
    • 2 - kopie wszystkich graczy nie zapisanych w users.ini
amx_mode 1 
  • Automatyczna korekcja wpisów w users.ini, wartośc 1 rekomendowana dla osób nie obezanych z amx
amx_correct_usersfile 1 
  • Pokazywanie aktywności adminów
    • 0 - wyłączona - nie będzie napisane w grze ze admin coś zmienił, wkopał kogoś itd.
    • 1 - bez nicków - w grze będzie napisane np. "ADMIN: wykopal xxx" itd.
    • 2 - z nickami - w grze będzie napisane np. ADMIN yyy: wykopal xxx" itd.
amx_show_activity 2 
  • Tutaj jest napis przesuwający się na dole ekranu. Ostatnia wartość to czas w sekundach co ile ma się napis pojawiać
amx_scrollmsg "Witaj na %hostname% -- Na serwerze uzywany jest AMX Mod 2005" 600 
  • Napisy pojawiające się na środku ekranu co jakiś czas.

Ostatnie 9 cyfr jest to kolor napisu w formacie RRRGGGBBB. Są to wartości trzech kolorów: czerwonego, zielonego i niebieskiego. Można je wziąć np z mspaint'a, zakres dla jednego koloru wynosi 0-255

amx_imessage "Grasz teraz na %hostname%" "000255100"

amx_imessage "Na serwerze zainstalowano AMX Mod n Odwiedz strone projektu: http://www.amxmod.net" "000100255"

  • Częstotliwość (w sekundach) pojawiania się napisów na środku ekranu
amx_freq_imessage 180 
  • Czas (w sekundach) co ile gracze mogą napisać wiadomość na say'u. Zapobiega spamowi w grze.
amx_flood_time 0.75 
  • Ilość zarezerwowanych slotów (aby działało musi być włączony odpowiedzialny plugin za to)
    • 0 - Wyłączone
    • 1 - Wykop gracza najkrócej grającego na serwerze w chwili podłączenia się admina
    • 2 - Wykop gracza najdłużej grającego na serwerze w chwili podłączenia się admina
    • 3 - Wykop gracza z najwikszym pingiem na serwerze w chwili podłączenia się admina
    • 4 - Jeden slot jest zawsze wolny, nikogo nie kopie z serwera (wyświetla się zawsze 1 wolny slot
amx_reservation 0 


  • Wyświetlanie czasu do końca mapy (automatyczne)
    • a - pokazuje biały tekst na dole
    • b - używa głosu
    • c - nie używa słowa "remaining" (tylko w przypadku użycia głosu)
    • d - nie dodaje słów "hours/minutes/seconds" (j/w)
    • e - pokazuje/mówi jeżeli obecny czas jest mniejszy niż czas zadany
amx_time_display "ab 1200" "ab 600" "ab 300" "ab 180" "ab 60" "bcde 11" 
  • Gdy zostanie użyte "say thetime" lub "say timeleft" używany jest głos by podać aktualny czas/pozostały czas
amx_time_voice 1 
  • Minimalny czas (w sekundach) jaki musi upłynąć od poprzedniego głosowania aby zacząć nowe
amx_vote_delay 10 
  • Jak długo będzie trwało głosowanie (w sekundach)
amx_vote_time 10 
  • Wyświetlaj odpowiedzi na głosowania
amx_vote_answers 1 
  • Wymagana ilość głosów aby głosowania przeszły (0.40 = 40%). Maksimum jest 1 czyli 100%
amx_votekick_ratio 0.40
amx_voteban_ratio 0.40
amx_votemap_ratio 0.40
amx_vote_ratio 0.50 
  • Map menu - pobierani danych z:
    • 0 - maps.ini
    • 1 - mapcycle (przeważnie mapcycle.txt)
    • 2 - fokderu z mapami (jak dodasz mapkę to po zmianie na dowolną mapę pojawi się nowa pozycja z właśnie dodaną mampą w menu)
amx_mapsmenu_mapsloc 0 
  • NextMap - skąd pobirać dane o mapach do zmian map po upływie czasu grania na mapie, pobiera z:
    • 0 - maps.ini
    • 1 - mapcycle
    • 2 - folderu z mapami
amx_mapchooser_mapsloc 0 
  • Sposób wyboru map
    • 0 - przypadkowe z maps.ini/mapcycle/folderu map
    • 1 - nominacje
amx_mapchooser_type 0 
  • Nominacje map przez graczy
    • 0 - gracz może nominowac dowolną mapę z folderu z mapami
    • 1 - gracz może nominowac wyłącznie mapy z maps.ini/mapcycle
amx_nominfromfile 0 
  • Nominacje - liczba map jaką gracz może nominować do końca mapy
amx_maxnominperplayer 1 
  • Przedłużenie mapy - ile razy maksymalnie dana mapa może być przełużona (0 dla nieskończoności, nie zalecane)
amx_extendmap_max 3 
  • O ile czasu mapa może być przedłużona (w minutach) po głosowaniu
amx_extendmap_step 15 
  • Ile razy mapa może byc przedłużona maksymalnie jeśli jest ustawiony mp_roundlimit
amx_extendround_max 3 
  • Ile rund tra przełdużenie jeśli jest ustawiony mp_roundlimit
amx_extendround_step 3 
  • Ile razy mapa mapa może byc przedłużona maksymalnie jeśli jest ustawiony mp_winlimit
amx_extendwin_max 3 
  • Ile rund tra przełdużenie jeśli jest ustawiony mp_winlimit
amx_extendwin_step 3 
  • Automatyczna aktualizacja pliku addons/amx/config/plugins.ini
    • 0 - nie używaj auto aktualizacji, zawsze plugins.ini jest stałe.
    • 1 - dodaj/usuń automatycznie wszelkie pluginy z katalogu addons.amx/plugins/*.amx i wprowadź zmiany do plugins.ini
amx_manage_plugins 0 
  • Automatyczna aktualizacja pliku addons/amx/config/modules.ini
    • 0 - nie uzywaj auto aktualizacji, zawsze modules.ini jest stałe
    • 1 - dodaj/usuń automatycznie wszelkie moduły z katalogu addons.amx/modules/ (*.so oraz *.dll) i wprowadź zmiany do modules.ini
amx_manage_modules 0 
  • Debug - sposób zgłasznaia błędów pluginów .amx
    • 0 - wyłącz
    • 1 - wyświetl w konsoli serwera
    • 2 - wyświetl w konsoli serwera i wpisuj do logów AMX (addons/amx/logs/)
amx_debug 0 

CSStats

Counter-Strike / Condition-Zero

  • Ile punktów gracz dostaje (fragów) jeśli podłożona/rozbrojona przez niego bomba wybuchnie

Uwaga - wymagane załadowanie modułu Fun oraz VexdUM

amx_bomb_frags 3 
  • Czas wyświelania kolorowych statystyk na ekranie, w sekundach, domyslnie 12sekund czyli 12.0

Zwiększ do 24.0 aby wydłuzyc dwukrotnie czas

amx_statsx_duration 12.0 
  • Relatywny czas usunięcia wyświetlania statystyk w odniesieniu do końca freezetime (zamrożenia w miesjcu na początku rundy)

Używaj wartości ujemnych dla zakończenia wyświetlania przed upłynięciem freezetime

amx_statsx_freeze -2.0 

Przykład -2.0 - zakończy 2 sekundy przed końcem freezetime 3.0 - zaończy 3 sekundy po końcu freezetime


  • Metoda śledzenia graczy na potrzeby statystyk
    • 0 - przez nick
    • 1 - przez SteamID
    • 2 - przez IP
csstats_rank 1 

Info: tryb 0 oraz tryb 2 są zalecane na lanie w trybie offline mode lub no-steam

  • Dołącz boty do statystyk
csstats_rankbots 1 

Info - wszystkie boty mogą być pod jedną pozycją dla trybu csstats_rank 1 oraz 2 (nie pamiętam :) )

  • Pauzuj staty (nie zliczaj np podczas meczu albo map typu fun map)
    • 0 - zliczaj normalnie
    • 1 - pauzuj, nie zliczaj
csstats_pause 0 
  • Maksymalna ilość graczy w pliku ze statystykami
csstats_maxsize 3500 
  • Sposób przechowywania statystyk
    • 0 - binarne (szybsze, domyslne)
    • 1 - plik tekstowy - wolniej, ale latwo edytowac po wyłączeni userwera oraz przetwarzać na stronę www/motd
csstats_storagetype 0 

Uwaga - usuń znaki // z początku linii aby ustawic daną wartość, inaczej będzie ona domyslna, czyli 0

  • Resetuj staty po zmiane mapy
    • 0 - nie resetuj, domyślnie
    • 1 - resetuj
csstats_reset 1 

Uwaga, usunięcie znaków // u ustawienie wartości na 1 spowoduje że staty będą resetowane co zmianę mapy


Język

Zobacz [Tłumaczenie AMX Mod 2005 PL]

Mapy

  • Edytujesz plik addons/amx/config/maps.ini
  • Jesli chcesz usunąć mapę - wstaw średnik na początku linii zawierającej nazwę mapy, np dla as_oilrig zmień linię tak aby wyglądała jak poniżej
;as_oilrig    "OilRig - Assassination" 
  • Jeśli chcesz dodać mapę (musi istnieć w $moddir/maps/nazwa_mapy.bsp - inaczej będzie ostrzeżenie, a w menu nie będzie opcji)
  • Przykład dla de_spree, dodajesz na końcu (albo gdziekolwiek indziej :) )
de_spree    "Spree - Bomb/Defuse" 




Pluginy

Kompilacja

Ten fragment nie jest precyzyjny. Jeżeli jesteś w stanie - postaraj się go poprawić. tak, aby był zgodny z prawdą.

  • Dany tekst jest mieszanką kilku artykułów
  • Tekst zawarty w tej sekcji pochodzi z innego artykułu i po prostu nie pasuje.
  • W tekście jest inna ścieżka niż w rzeczywistości.
  • Literówki w komendach, mogą być w fatalne w skutkach.

Jednak mamy nadzieję, że osoby czytające tekst myślą, i nie kopiują wszystkiego bezsensownie.


  • Najpierw polecam zapoznać się z artykułem Small - dowiesz się co to są pliki .sma oraz .amx
  • Źródła pluginów (czyli pliki z rozszerzeniem sma) umieszczamy w katalogu addons/amx/examples/source/ albo w addons/smx/examples/.

Np. chcemy skompilować/przekompilować plugin nazwa_pluginu.sma W zależności od posiadanego systemu operacyjnego robimy tak:

Windows

Po prostu odpalamy plik compile.bat i czekamy aż wszystkie pluginy się skompilują. Jeśli chcemy 1 plik przekompilować - łapiemy go myszką i przeciągamy na plik compile_drag&drop.bat

Linux

Tutaj sprawa wygląda podobnie jak pod Windows, tylko że uruchamiamy plik compile. Nie ma opcji drag & drop

Uwaga - jeśli posiadasz dokładnie taką samą konfigurację AMX MOD'a pod Windows i Linux (tzn te same moduły i pliki addons/amx/examples/include/*.ini) to możesz skompilować .sma pod dowolną platformą i używac na drugiej - np kompilujesz na windows i plik .amx z katalogu compiled/ wrzucasz do serwera na linuksie. Można też odwrotnie - kompilowane na linuksie wykorzystywac pod windows. Jeśli jednak użyjesz pliku .amx z innej wersji prawdopodobnie nie uruchomi się on, a w najgorszym wypadku utracisz ważne dane, i wywali ci serwer. Dlatego lepiej mieć .sma i przekompilowac u siebie niż pobierać .amx (często nie wiadomo z jakiej wersji pochodzi)

.amx

Ok. Jak już się skompilowało wchodzimy do podkatalogu addons/amx/examples/compiled wynajdujemy w nim nasz nazwa_pluginu.amx i kopiujemy go do katalogu addons/amx/plugins. Jesli nie ma pliku .amx patrz strona Pluginy a Moduły. Teraz (jeżeli jest to nowy plugin) trzeba go dopisać do plugins.ini (patrz następna strona).

Pluginy są ładowane/wyładowywane przy zmianie mapy. Dlatego tak ważne jest przeładowanie mapy (czasem dwa razy) aby plugi zadziałał.

Dodawanie

Otwieramy do edycji plik addons/amx/config/plugins.ini i dopsujemy przeważnie na jego końcu:

nazwa_pluginu.amx 

Gdzie nazwa_pluginu to nazwa pluginu jaki chcemy dodać. Należy pamiętać żeby plugin się załadował musi się znajdować w podkatalogu plugins oraz muszą być załadowane wymagane moduły (o tym w dalszej części artykułu).

Usuwanie

Szukamy nazwy pluginu który chcemy wywalić lub tylko czasowo usunąć np. antiflood.amx. Aby tylko wyłączyć plugin na początku linijki gdzie się znajduje dopisujemy ; (średnik). Teraz tylko trzeba zapisać plik i po zmianie mapy na serwerze nie mamy pluginu. Aby go z powrotem przywrócić wywalamy sprzed jego nazwy średnik. Można także zastosowac zmienną w amx.cfg która kontroluej automatyczne dodawanie pluginów do plugins.ini (nie zalecane), zobacz dokładnie stronę o amx.cfg

Kolejność

Czasem pluginy potrafią wykonywać komendy tak, że blokują wykonywanie dalszych pluginów albo nie działają poprawnie. Najczęściej zdarza się to z pluginami reagującymi na komendy say. Zauważcie, że jeśli wstawimy plugin pausechat po pluginie floodprotect to w ostateczności nie będziemy w stanie rozmawiać podczas pauzy w meczu.

To samo się tyczy, jeśli kilka pluginów korzysta z tej samej komendy – są dodatki logujące wykonywanie pewnych komend i nic więcej nie robiące.

Warto czytać instrukcje wewnątrz zipów czy plików .sma, aby upewnić się czy ważna jest kolejność pluginu w plugins.ini

Konfiguracja pluginów

Bardzo często pluginy mają własne opcje takie jak komendy, zmienne, pliki konfiguracyjne. Przde wsztkim powieneś zapoznac się z plikiem readme w zipie/rarze, lub na forum w topiku o pluginie.

Jak nie ma readme należy zajrzec do źródła czyli pliku .sma. Dowiemy się trochę także z komedny amx_help w grze (i konsoli serwera), szczególnie jak nie pamiętamy komend.

Niektóre pluginy mają pliki .ini czy .txt gdzie przetrzmują specjalne dane, np noswear trzyma w badwords.ini i goodwords.ini brzydkie i dobre słowa które przetwarza w komunikatach u graczy.

Jescze inne pluginy tworzą oddzielny katalog z konfigiem i stamtąd ładują dane - np ATAC trzyma dane w addons/amx/config/atac - zajrzyjcie do plików w tamtym katalogu Najczęściej taki konfig jest ładowany przy starcie mapy.


Jescze inne pluginy potrafią współdzielić dane w jednym pliku - typowe jest to dla plików korzystających z mysql- ładują amx_mysql.cfg :) A reszta jest a bazie danych.






Problem w kompilacji

Przy kompilacji mogą wyskakiwac błędy: warning XX loose identation .. i podobne - warning to nie jest błąd ale ostrzeżenie, nie ma się czym przejmować - ktoś zamiast tabulatora, używał spacji, ale plik .amx powinen powstać

Error XXX - to jest fatalny błąd który przerywa tworzenie pliku .amx, najczęsciej typu ..: error 017: undefined symbol "get_user_money" ... gdzie wytłuszczona częśc daje nam mozliwośc rozpoznania problemu

Funkcje z listy: get_user_gravity get_user_maxspeed get_user_deaths_cs get_user_godmode get_user_hitzones get_user_money get_user_noclip get_user_team_cs give_item set_user_armor set_user_deaths_cs set_user_footsteps set_user_frags set_user_godmode set_user_gravity set_user_health set_user_hitzones set_user_maxspeed set_user_money set_user_noclip set_user_origin set_user_rendering set_user_team_cs user_spawn

oznaczają, że trzeba dodać jedną linię do pliku .sma związaną zmodułem Fun (sczególne w przypadu starszych pluginów i AMM 2005 ) znajdujemy w wadliwym pliku .sma linijkę

#include <amxmod> 

i niżej dodajemy (pod blokiem innych podobnych)

#include <fun> 

i rekompilujemy jeszcze raz - powinno zadziałać.

Jesli mamy wiele takich pluginów to lepiej w addons/amx/examples/include/amxmod.inc dodac w 18 linii

#include <fun> 

i oczywiście jescze raz zrekompilować.

Jeśli nadal mamy problemy - należy sprawdzic czy nie istnieje nowsza wersja pluginu na http://amxmod.net/forums w dziale Released Plugins

Koniecznie zobacz następną stronę o modułach.




Pluginy a Moduły

Dosyć często zdarza się że po dodaniu jakiegoś nowego pluginu ten się nie ładuje mimo iż jest dobrze dodany i skompilowany i mamy .amx w opdowienich miejscach. Wtedy najprawdopodobniej nie mamy włączonego modułu wymaganego przez plugin.

lista aktywnych

Najczęsciej jak wykonujemy w konsoli serwera komendę amx list alob poprzez rcon komendę rcon amx list możemy uzyskac listę załdowanych pluginów jeśli widzimy gdzieś badload - oznacza to, że nie mamy jakiegos modułu albo plugin wymaga specjalnych plików do działania (np modeli ale to raczej serwer nie wystartuje)

Rozpoznanie błedu

Dodatkowo przy ładowaniu pluginu podawany jest błąd, dość jednoznacznie definujący jakiego modułu nam brakuje Najczęściej nie mamy modułu VexdUM. Aby sprawdzić jakeigo modułu nam brazuje szukamy nazwy zwróconej funkcji której brazuje, w plikach addons/amx/examples/include/*.ini po nazwie pliku .ini można wnioskowac jakiego moduu brakuje.

Często także w pliku s.ma znajdziemy na początku informacje jakich modułów i dodatków on wymaga do poprawnej pracy.

Rozpoznanie modułu

Pluginy (źródła) zbudowane są przeważnie w następujący sposób:

 /* 
*  Tutaj jakiś komentarz odnośnie pluginu,
*  jego opis, wersja, lista dostępnych komend,
*  lista zmian, itp. itd.
*/

#include <amxmod>
#include <amxmisc>

właściwy kod pluginu 

Nas interesuje tylko to co znajduje się po #include. Ta nazwa pomiędzy znakami mniejszości i większości jest nazwą modułu niezbędnego do działania pluginu. Dodatkowe linie podaja nam tez jakiego innego modułu możemy się spodziewać.

Spis

Oto opis jaki include odpowiada za jaki moduł:

  • #include <amxmod> - Plugin korzysta z standardowej biblioteki czyli amxmod. Nie trzeba żadnego dodatkowego modułu.
  • #include <amxmisc> - j/w
  • #include <file> - j/w
  • #include <string> - j/w
  • #include <vault> - j/w
  • #include <dodxmod> - Plugin wymaga do działania modułu DodXMod (amxmod pod DOD)
  • #include <translator> - j/w , ale dodatkowo obsługuje system tłumaczeń


  • #include <sockets> - Plugin wymaga do działania modułu Sockets
  • #include <fun> - Plugin wymaga do działania modułu Fun
  • #include <csstats> - Plugin wymaga do działania modułu CSStats, przezanczony na serwery CS, CS:CZ
  • #include <geoip> - Plugin wymaga do działania modułu GeoIP
  • #include <VexdUM> - Plugin wymaga do działania modułu VexdUM
  • #include <Vexd_Utilities> - j/w
  • #include <VexdUM_stock> - j/w
  • #include <cstrike> - Plugin wymaga do działania modułu CSStats oraz VexdUM, jest przeznaczony na serwery CS, CS:CZ,


  • #include <xtrafun> - Plugin wymaga do działania modułu xtrafun, zastąpionego w nowszych wersjach VexdUM

Trzeba jednak dostosowac taki plugin do pracy (ale bardzo często juzna necie mozna znaleźć poprawoną wersję)

  • #include <udp> - Plugin wymaga do działania modułu UDP, znanego także pod nazwą Rcon Module, na razie nie dostępnego, zastąpniony zostanie modułem Sockets, wykorzystywany w amx_hltv czy amx_match_deluxe
  • #include <mysql> - Plugin wymaga do działania modułu MySQL albo czasem sqlite
  • #include <cmath> - Plugin wymaga do działania modułu cmath, ale jest on w podstawowym pakiecie amxmod
  • inne - istnieją także inne jak logd (log module), sqlite (SQLLite support), mthread (multithread), tsxmod (The Specialist mod, podobne jak CSStats), war3 (warcraft, ale chyba juz wycofany)


Uwaga - często w pluginach jest opcja aby włączyc korzystanie z danego modułu albo nie, np dla mysql często dodaje się wersje nie korzystająca z mysql tylko z plików ini Należy jednak dokładnie poczytać opis pluginu. Najczęściej wtedy jest opcja typu :

#define USE_MYSQL 0    //  Set to 0 and recompile if you dont use MySQL!!

ustawiamy 1 aby korzystac z mysql i rekompilujemy (oczywiście to dla zawansowanych użytkowników, bo trzeba mieć baze dnaych, tabele,lginy, i dane w nich

Pad serwera po dodaniu pluginu/modułu

  • Cofnij zmiany jakich ostatnio dokonałeś.
  • Zobacz w logi serwera ($moddir/logs/), sortuj po dacie ;D
  • Na linuksie odpal serwer na screenie i patrz na to o się dzieje, albo bez screena, pod Windows opdal serwer z parametrem -console
  • Sprawdź czy na pewno masz poprawną wersje modułów (szczególnie amxmod 0.9.9 miał problemy z VexdUM - lepiej zrób upgrade całości do amxmod 2005)
  • Sprawdź czy dodałeś wymagane extra pliki - szczególnie modele, i sprite (powinny byc w zipie razem z .sma i .amx)

Uwagi

Odnośnie wersji amx'a:

  • Właściwie powinenes byc w stanie przekompilowac wszelkie pluginy z amx 0.9.3 czy starszych na wersji amxmod 2005 (czy nowszych). W drugą strone może nie działać.
  • Transport pluginów z AMX Mod X na AMX Mod jest możliwy ale bardzo często trudny - trzeba znać się na obu platformach i umiec pisać w .sma
  • Struktura katalogów w wersji AMX Mod 2005 i AMX Mod X 1.60 jest bardzo podobna - różnice są przeważnie w nazewnictniwe zmiennych, katalogów plików.
  • Struktura katalogów w wersjach przed 0.9.9 jest inna niż we współczesnej - inaczej się nazywają katalogi oraz pliki, w innych miejscach są moduły. Ale jak wysilisz mózgownicę załapiesz co jest gdzie :D
  • Więcej info w readme.txt AMXMod'a w Changelog i FAQ
Osobiste
Przestrzenie nazw
Warianty
Działania
HLDS.pl - Menu:
Inne
IRC
Inne sekcje:
Znajomi:
Narzędzia