Plugin AMX Mod X pro Counter-Strike 1.6 je zkompilovaný soubor .amxx. Nainstaluješ ho tak, že ho zkopíruješ do cstrike/addons/amxmodx/plugins/, jeho název přidáš na samostatný řádek do cstrike/addons/amxmodx/configs/plugins.ini, v modules.ini zapneš moduly, které potřebuje, a změníš mapu. To je celý mechanismus. Dobrý nebo špatný server z 1.6 dělá to, jaké pluginy vybereš, jak málo jich provozuješ a zda poznáš, proč se některý nenačetl - log AMX Mod X to řekne jedním řádkem a většina lidí ho nikdy neotevře. Tento návod pokrývá soubory pluginů, standardní pluginy, které stojí za to nechat, oblíbené pluginy třetích stran, kompilaci ze zdrojáků, adminy v souboru nebo v databázi a chyby, na které opravdu narazíš.
Soubory, které řídí pluginy#
AMX Mod X se načítá přes Metamod a jeho vlastní konfigurace leží v cstrike/addons/amxmodx/. Pokud jsi celý stack ještě nenastavil, návod na server Counter-Strike 1.6 popisuje ReHLDS, Metamod a úpravu liblist.gam. Za předpokladu, že meta list ukazuje běžící AMX Mod X, jsou pro pluginy důležité tyto soubory:
| File | Purpose |
|---|---|
configs/plugins.ini | Které pluginy se načtou, v jakém pořadí |
configs/plugins-*.ini | Další seznamy pluginů, načítané po hlavním |
configs/maps/plugins-<map>.ini | Pluginy načítané jen na jedné mapě |
configs/modules.ini | Moduly k načtení, když automatické načítání nestačí |
configs/amxx.cfg | Základní cvary, spouštěné při každém startu mapy |
configs/users.ini | Admini, pokud nepoužíváš SQL |
configs/sql.cfg | Nastavení databáze pro SQL adminy a SQL pluginy |
plugins/ | Samotné soubory .amxx |
logs/ | Denní logy a error_*.log s chybami pluginů |
scripting/ | Zdrojáky .sma, include soubory a kompilátor |
plugins.ini se čte odshora dolů a na pořadí někdy záleží: plugin, který registruje příkaz používaný i jiným pluginem, vyhraje nebo prohraje podle toho, který se načetl dřív. Středník řádek zakomentuje, takže plugin vypneš, aniž bys ho mazal.
; Admin base - exactly one of theseadmin.amxx ; admins from users.ini;admin_sql.amxx ; admins from a database; Basicadmincmd.amxx ; amx_kick, amx_ban, amx_map and the restadminhelp.amxx ; amx_helpadminslots.amxx ; reserved slotsmultilingual.amxx ; per-player language; Menusmenufront.amxx ; amxmodmenuplmenu.amxx ; player menus: kick, ban, slap, teammapsmenu.amxx ; map and vote menus; Chat and votesadminchat.amxx ; amx_say, amx_chat, amx_psayantiflood.amxx ; chat flood protectionadminvote.amxx ; amx_votemap, amx_votekick, amx_voteban; Mapsnextmap.amxx ; "nextmap" in chatmapchooser.amxx ; end-of-map votetimeleft.amxx ; "timeleft" in chat; Counter-Strikestatsx.amxx ; /rank, /top15, round stats (needs csx);restmenu.amxx ; weapon restrictions; Third-party plugins below this lineresetscore.amxxStandardní seznam se mezi AMX Mod X 1.8.2, 1.9 a 1.10 trochu liší, ale struktura je stejná. Pluginy třetích stran patří dolů pod komentář, aby se při upgradu AMX Mod X - který může standardní plugins.ini nahradit - dal tvůj seznam snadno slít zpátky.
Pluginy pro jednotlivé mapy a další seznamy
Každý soubor s názvem configs/plugins-<něco>.ini se načte po plugins.ini, což je úhledný způsob, jak držet skupinu pluginů pohromadě: plugins-zombie.ini pro mód, plugins-community.ini pro vlastní doplňky. Seznamy pro jednotlivé mapy v configs/maps/ načtou plugin jen na dané mapě, díky čemuž server spouští plugin pro knife arény na mapách 35hp_ a nikde jinde. Některé verze AMX Mod X také přijímají ve stejné složce soubor s prefixem mapy, například plugins-de.ini; než se na shodu podle prefixu spolehneš, zkontroluj dokumentaci své verze.
Moduly: část, kterou lidé přehlížejí#
Pluginy volají funkce, které žijí v modulech - zkompilovaných knihovnách v addons/amxmodx/modules/. Mezi standardní moduly patří fun, engine, fakemeta, hamsandwich, cstrike, csx, sqlite a mysql. AMX Mod X 1.8 a novější automaticky načítají moduly, které plugin deklaruje jako potřebné, takže modules.ini většinou zůstává tak, jak byl dodán. Když plugin potřebuje modul, který ve složce vůbec chybí, nenačte se a log to řekne.
Jeden modul třetí strany si na moderních serverech zaslouží zmínku. ReAPI je modul AMX Mod X, který zpřístupňuje pluginům hooky ReHLDS a ReGameDLL. Vyžaduje ho spousta novějších pluginů - a většina těch psaných pro současné veřejné servery - protože hookování hry přes ReGameDLL je rychlejší a spolehlivější než patchování přes fakemeta. Pokud stránka pluginu říká „requires ReAPI“, nainstaluj do modules/ build modulu odpovídající verzím tvého ReHLDS a ReGameDLL a přes amxx modules ověř, že se načetl.
amxx versionamxx modulesamxx pluginsmeta listTyto čtyři příkazy spusť v konzoli serveru po každé změně. amxx plugins vypíše každý plugin s jeho stavem - running, paused, bad load nebo stopped - a amxx modules ukáže, které moduly se načetly. U pluginu se stavem bad load najdeš důvod v logs/.
Admini: users.ini nebo databáze#
Admini jsou podrobně popsáni v návodu na server CS 1.6 včetně kompletní tabulky příznaků. Ve zkratce: jeden admin na řádek v configs/users.ini, identifikovaný přes SteamID s příznaky účtu ce, příznaky přístupu zvolenými pro každého zvlášť a amx_reloadadmins pro aplikaci změn bez restartu.
; identity password access flags account flags"STEAM_0:1:123456" "" "abcdefghijklmnopqrstu" "ce""STEAM_0:0:987654" "" "bcdefiju" "ce"Příznaky admina a imunita fungují stejně napříč všemi admin systémy Source i GoldSrc - příznaky adminů a imunita v SourceMod popisují obecný model, pokud provozuješ i novější hry.
Pro víc než jeden server nebo pro často se měnící tým moderátorů dej adminy do databáze. Zakomentuj admin.amxx, odkomentuj admin_sql.amxx, zapni modul mysql, pokud se nenačítá automaticky, a vyplň sql.cfg:
amx_sql_host "db.example.net"amx_sql_user "amxx"amx_sql_pass "a-long-random-password"amx_sql_db "amxx"amx_sql_table "admins"amx_sql_type "mysql"Při prvním startu s funkčním připojením admin_sql vytvoří svou tabulku adminů. Všechny servery mířící na stejnou databázi pak sdílejí jeden seznam adminů. Herní plán na RE:NODE obsahuje jeden databázový slot s vygenerovaným hostem, uživatelem a heslem; SQL pluginy AMX Mod X očekávají server kompatibilní s MySQL, takže než je na slot nasměruješ, zkontroluj v panelu jeho engine.
Základní cvary v amxx.cfg#
configs/amxx.cfg se spouští při každém startu mapy. Hrstka jeho cvarů mění chování všech admin pluginů:
| Cvar | Common value | What it does |
|---|---|---|
amx_mode | 1 | 0 vypnuto, 1 normální, 2 vyhodí všechny, kdo nejsou v seznamu adminů |
amx_password_field | "_pw" | Pole setinfo na klientovi, které nese heslo admina |
amx_default_access | "" | Příznaky pro hráče mimo users.ini; nech prázdné |
amx_show_activity | 2 | Oznamuje akce adminů s jejich jménem |
amx_reservation | 0 or 1 | Sloty držené volné pro adminy s příznakem b |
amx_vote_ratio | 0.02 | Podíl hlasů potřebný ke schválení hlasování |
amx_vote_time | 10 | Délka hlasování v sekundách |
amx_votekick_ratio | 0.40 | Podíl potřebný pro vote kick |
amx_voteban_ratio | 0.40 | Podíl potřebný pro vote ban |
amx_extendmap_max | 90 | Nejdelší možné prodloužení mapy, v minutách |
amx_extendmap_step | 15 | Minuty přidané při jednom prodloužení |
Výchozí hodnoty se mezi verzemi AMX Mod X mírně liší a dodaný amxx.cfg každou z nich popisuje v komentáři. Přečti si ho jednou; je krátký.
Oblíbené pluginy a co stojí#
Katalog pluginů pro 1.6 je obrovský a sahá dvacet let zpátky. Většina serverů potřebuje jen velmi málo z nich. Tohle jsou dlouhodobě osvědčené a široce používané volby, seskupené podle toho, co řeší:
| Plugin | Solves | Notes |
|---|---|---|
| AMXBans | Bany s historií, webové rozhraní, sdílené napříč servery | Potřebuje databázi kompatibilní s MySQL a webhosting pro panel |
| Advanced Bans | Časové bany ukládané lokálně nebo v SQL, bez webového panelu | Jednodušší než AMXBans |
| Galileo or Deagsmapmanager | Lepší hlasování o mapách, nominace, rock the vote | Nahrazuje standardní mapchooser.amxx |
| Reset Score | /rs vynuluje hráči jeho vlastní skóre | Drobnost, na veřejných serverech se očekává všude |
| High ping kicker | Vyhazuje hráče s pingem nad limitem příliš dlouho | Nastav štědrý limit a odklad |
| AFK manager | Přesouvá nebo vyhazuje nečinné hráče | Nejvíc záleží na plných serverech |
| CSDM | Deathmatch s respawny a menu zbraní | Modul plus pluginy; ReGameDLL má vlastní varianty |
| GunGame | Mód s postupem po zbraních | Změní server v jinou hru |
| Zombie Plague | Mód se zombie nákazou | Plnohodnotný mód s vlastní sadou pluginů a modelů |
| Deathrun manager | Deathrun mapy s jedním hráčem u pastí | Potřebuje deathrun mapy |
Když nahrazuješ standardní plugin - Galileo místo mapchooser.amxx, pokročilý systém banů místo příkazů pro bany - zakomentuj ten původní. Dva pluginy registrující stejné hlasování nebo stejný příkaz jsou nejčastější příčinou hlášení „hlasování proběhlo dvakrát“ nebo „můj příkaz nic nedělá“.
Systémy banů
Standardní amx_ban zapisuje bany do vlastního seznamu banů enginu, banned.cfg, přes writeid. Funguje to, hráči to nevidí a nemá to žádnou historii: nezjistíš, kdo koho zabanoval, kdy a proč, a seznam platí jen pro jeden server. Pro server se dvěma adminy, kteří spolu mluví, to stačí. Přestane to stačit ve chvíli, kdy máš tým moderátorů, protože první spor o ban se změní v hádku bez záznamu.
AMXBans přesouvá bany do databáze se záznamem admina, důvodu, délky a mapy a přidává webové rozhraní, kde si hráči mohou svůj ban dohledat a tým ho může zrušit. Cenou je zprovoznění databáze a malého PHP webu pro rozhraní, a tady přichází ke slovu webhosting, pokud ještě nemáš kam web dát. Advanced Bans je zlatá střední cesta: časové bany s důvody uložené v souboru nebo v SQL, bez webového panelu. Vyber jeden systém banů a ostatní odstraň; dva pluginy, z nichž každý vede vlastní seznam, znamenají, že hráč zabanovaný v jednom je v tom druhém vítán.
Správa map
Standardní mapchooser.amxx spouští hlasování ke konci mapy ze souboru configs/maps.ini, nebo z rotace map, pokud je ten soubor prázdný. Nemá nominace, rock-the-vote ani paměť, co se nedávno hrálo, takže každý večer vyhrávají stejné tři mapy. Galileo i Deagsmapmanager přidávají nominace, „rtv“ v chatu, seznam nedávno hraných map k vyloučení a lepší menu hlasování. Oba stojí za instalaci na každém veřejném serveru s víc než hrstkou map a oba vyžadují vypnutý standardní mapchooser.amxx a obvykle i nextmap.amxx - jejich dokumentace říká, které. Udržuj seznam map v souladu s tím, co je skutečně na serveru a na tvém FastDL hostu, jinak hlasování nabídne mapu, kterou si pak půlka hráčů stahuje rychlostí 20 KB/s.
Plnohodnotné módy jako Zombie Plague, GunGame a CSDM mění celý server. Provozuj je na samostatném serveru, ne jako přepínač na veřejném; jejich hráči jsou jiná parta a pluginy módu počítají s tím, že běží samy.
Kompilace pluginů ze zdrojáků#
Polovina užitečných pluginů pro 1.6 se distribuuje jako zdroják .sma a kompilace je jednoduchá, jakmile víš, kde je kompilátor. AMX Mod X dodává amxxpc ve složce scripting/, se standardními include soubory v scripting/include/.
$ cd cstrike/addons/amxmodx/scripting$ ./amxxpc resetscore.sma -o../plugins/resetscore.amxxNa Windows je to amxxpc.exe se stejnými argumenty. Pokud plugin potřebuje include třetí strany - pluginy pro ReAPI potřebují reapi.inc a jeho společníky - dej tyto soubory před kompilací do scripting/include/. Kompilátor hlásí chybějící include soubory a syntaktické chyby s číslem řádku.
Kompiluj stejnou verzí AMX Mod X, jakou server používá, nebo starší. Plugin zkompilovaný kompilátorem 1.10 může používat nativní funkce, které server 1.8.2 nemá, a nenačte se s chybou o chybějícím nativu. Na panelovém hostingu, kde nemáš shell, kompiluj na vlastním počítači s odpovídajícím balíčkem AMX Mod X a soubor .amxx nahraj přes správce souborů nebo SFTP - obojí popisuje SFTP a správce souborů.
Praktický příklad: veřejný server na 24 slotů#
Aby bylo předchozí konkrétnější, tady je sada pluginů, kterou typický klasický veřejný server - mapy de_ a cs_, 24 slotů, hrstka dobrovolných adminů - skutečně potřebuje, a proč tam každý řádek je.
- Standardní základ.
admin.amxx,admincmd.amxx,adminhelp.amxx,plmenu.amxx,menufront.amxx,adminchat.amxx,antiflood.amxx,multilingual.amxx. To jsou admin nástroje, které čeká každý člen týmu, a stojí skoro nic. - Hlasování.
adminvote.amxxpro vote kicky s rozumnými poměry. Možnost, aby hráči vyhodili cheatera, když není online žádný admin, se vyplatí; nastavamx_votekick_ratiodost vysoko, aby tři kamarádi nemohli vyhlasovat cizího hráče. - Mapy. Galileo nebo Deagsmapmanager místo
mapchooser.amxx, plustimeleft.amxx. Hlasování o mapách je funkce, které si hráči všimnou nejvíc. - Statistiky.
statsx.amxxpro/ranka/top15. Hráči to mají rádi a je to lehké. - Bany. Advanced Bans, nebo AMXBans, pokud máš víc než jeden server či víc než pár adminů.
- Pohodlí. Reset Score a AFK manager. Plný server se třemi nečinnými hráči je server, který u dveří ztrácí lidi.
- Zpočátku nic dalšího. Nech to týden běžet a pak přidávej po jednom pluginu, když někdo požádá o něco konkrétního.
To je zhruba patnáct pluginů a 24slotový server s nimi pohodlně běží s hluboko pod gigabajtem paměti na jednom jádru. Svádí to přidávat zvukové balíčky, klobouky, stopy, další HUD zprávy a pět druhů barev chatu. Každá taková věc je stahování pro každého nového hráče, o něco víc práce pro herní vlákno a jedna další věc, která se může po updatu rozbít. Servery, které si hráče udrží roky, bývají většinou nudné.
Kopii fungující složky addons/amxmodx/configs a seznam pluginů si ulož někam mimo server. Na RE:NODE je ruční backup před každou změnou jedno tlačítko a lze ho zamknout, aby ho rotace neodstranila; backupy, které opravdu obnovíš vysvětlují, proč bys obnovu měl vyzkoušet dřív, než ji budeš potřebovat.
Ladění a výkon#
Když se plugin chová špatně, přidej za jeho název v plugins.ini slovo debug a změň mapu:
resetscore.amxx debugChyby za běhu pak obsahují číslo řádku a zásobník volání v logs/error_<date>.log. Až skončíš, debug zase odstraň; plugin zpomaluje.
Engine 1.6 je jednovláknový a pluginy AMX Mod X běží na tomto vlákně. Plugin, který spouští opakovanou úlohu každou desetinu sekundy nebo v každém snímku prochází všechny entity, je přímá daň z času snímku serveru. Vytížený veřejný server na 32 slotů s třiceti pluginy může být znatelně horší než tentýž server s deseti. Postup hledání pomalého pluginu je nenápadný: pozastavuj pluginy po jednom příkazem amxx pause <name>, když je server plný, nebo zakomentuj polovinu seznamu pluginů třetích stran a porovnej. Stížnosti na ping po přidání nového pluginu málokdy způsobuje síť.
Řešení potíží#
`bad load` v `amxx plugins`. Otevři nejnovější soubor v logs/. „Module/Library not found“ znamená chybějící modul - často ReAPI nebo csx. „Function not present“ nebo „native not found“ znamená, že plugin potřebuje novější AMX Mod X nebo modul, který nemáš.
Plugin se načte, ale jeho příkaz nic nedělá. Stejný příkaz zaregistroval dřív jiný plugin, nebo hráč nemá příznak, který příkaz vyžaduje. Duplicitní registrace najdeš přes amxx cmds.
Admini po restartu nemají žádná práva. admin.amxx i admin_sql.amxx jsou zakomentované, nebo jsou zapnuté oba, nebo selhalo SQL připojení a plugin skončil s ničím. Aktivní musí být přesně jedna admin báze.
Hlasování o mapě se objeví dvakrát. Dva pluginy pro mapy. Při použití náhrady zakomentuj mapchooser.amxx.
Po updatu se přestalo načítat vůbec všechno. Binárky Metamodu nebo AMX Mod X byly přepsány, nebo se resetoval liblist.gam. meta list ti řekne, která vrstva chybí. Co dělat, když update módu něco rozbije popisuje návyk vrátit se k předchozí verzi.
Plugin funguje na Windows, na Linuxu ne. Velikost písmen v názvu souboru. Linux bere ResetScore.amxx a resetscore.amxx jako různé soubory; v plugins.ini piš přesně.
FAQ#
Kam dát pluginy AMX Mod X na serveru CS 1.6?
Soubor .amxx patří do cstrike/addons/amxmodx/plugins/ a jeho název na samostatný řádek v cstrike/addons/amxmodx/configs/plugins.ini. Změň mapu nebo restartuj a pak v konzoli zkontroluj amxx plugins.
Můžu používat soubory .sma přímo?
Ne. Server načítá jen zkompilované soubory .amxx. Zkompiluj .sma pomocí amxxpc ze složky scripting/ ve stejné verzi AMX Mod X, jakou server používá, a nahraj výsledek.
Kolik pluginů je příliš mnoho?
Pevné číslo neexistuje, ale každý plugin běží na jediném herním vlákně serveru. Dvacet dobře napsaných pluginů je v pořádku; pět špatně napsaných ne. Nech jen to, co hráči používají, a po každém přidání měř.
Potřebuju ReAPI?
Jen pokud ho nějaký plugin vyžaduje, ale hodně moderních ano. Pokud tvůj server běží na ReHLDS a ReGameDLL - což by současný server 1.6 měl - je ReAPI přirozený společník a jeho načtení stojí téměř nic.
Můžou být admini sdílení mezi více servery?
Ano. Použij admin_sql.amxx a nasměruj všechny servery v sql.cfg na stejnou databázi. AMXBans funguje stejně pro bany.




Komentáře
Zcela anonymně: žádný účet, žádný e-mail, žádné cookie. Ukládáme jen jméno, které napíšeš, text a čas - nic dalšího. Počet odkazů je omezený a značkování se nevykresluje.