Skriptování v Counter-Strike
zdroj: Tisková zpráva

Skriptování v Counter-Strike

31. 3. 2001 0:00 | Téma | autor: Redakce Games.cz |

Tentokrát se na hru podíváme z hlediska vylepšení ze strany uživatele a to na automatizaci různých akcí aneb bindování.


Automatizování akcí v Counter-Strike

Autor: Mickey Mouse
Publikováno: 31.března 2001

Zvětšit zdroj: Tisková zpráva Tímto v pořadí třetím článkem se přiblížíme ke konci našeho povídání o nejhratelnějším 3D herním módu na světě. Tentokrát se na něj podíváme trochu z jiné stránky - a to z hlediska možného vylepšení ze strany uživatele. Povíme si o úpravě, která je více než praktická. Využití je mezi zkušenějšími hráči velmi rozšířené a těm, kteří se ke zdrojům dodatečných úprav hry nedostali, chceme ukázat cestu kudy na to.

 K čemu je dobré bindování
Engine Half-Lifu (resp. Quaka) umožňuje už od pradávna přiřazovat klávesám ve hře různé činnosti. Řadu z nich nastavíte přímo v nabídce hry, kdy si konfigurujete ovládání a další herní parametry včetně ostatních nastavení jako je grafika, zvuky, parametry hry, vaše jméno apod. Pro základní hraní se to zdá být zcela vyčerpávající, nicméně hra umožňuje daleko víc.

Veškerá nastavení Counter-Striku se ukládají do souborů config.cfg a autoexec.cfg, které najdete v adresáři s Counter-Strikem. Config.cfg byste měli najít určitě, autoexec.cfg tam být nemusí a vytváříte si jej spíše sami pro případ, že chcete nastavit, jaké akce se mají při spuštění hry provést. Navíc může mít autoexec.cfg i jiný název, který je pak nutno jinde specifikovat, ale to nebudeme rozebírat do detailů a odkážeme vás na konci tohoto článku na web, kde se o podobných činnostech píše (sice anglicky, ale budiž) mnohem podrobněji. My si vystačíme s tím, že si povíme, co to bindování je, k čemu se používá a ukážeme si i způsob, jak si užitečné činnosti vytvoříme.

Vysvětleme si nejprve základní pojmy, ať je jasné, o čem vůbec mluvíme:

alias je jednoduchá posloupnost činností, které lze v Counter-Striku provádět. Představme si třeba tuto posloupnost pro nákup výzbroje na začátku kola:

- nákup AK-47
- nákup munice do AK-47
- nákup kevlarové vesty a přilby
- nákup oslepujícího granátu o nákup explozívního granátu
- nákup nábojů do pistole o nákup brýlí pro noční vidění

Obrázek zdroj: Tisková zpráva Tohle je typický příklad posloupnosti akcí, kterou provádíte a při níž vám ruce automaticky míhají nad klávesnicí (pokud znáte nazpaměť potřebné položky v nabídkách) anebo procházíte nabídkami a snažíte se najít něco, s čím byste mohli na nepřítele vyrazit. V prvním případě se může občas stát, že se přehmátnete a koupíte něco, co jste nechtěli a vyhodíte tím spoustu peněz. V druhém případě už zuří bitva a hráči pokládají své životy, zatímco vy stojíte na začátku a nakupujete.

bindovat znamená přiřazovat a v našem případě se bude jednat o přiřazení něčeho na stisk vybrané klávesy.

Asi již tušíte, o čem bude řeč. My si ukážeme způsob, jak se dá na zvolenou klávesu nabindovat nějaká činnost, případně celá jejich sekvence třeba tak, jak jsme si uvedli v příkladu o pár řádků výš.

 Jak na to?
K bindování budeme využívat soubory autoexec.cfg a config.cfg, o kterých jsme si povídali v úvodu. Do autoexecu budeme vytvářet vlastní aliasy (sekvence akcí), v configu jim budeme přiřazovat klávesy. Ukážeme si to na příkladech, abychom viděli, že na tom nic není, když člověk ví, jak na to. Následuje ukázka výpisu souboru autoexec.cfg (pokud jej nemáte, tak si jej vytvořte do adresáře s Counter-Strikem, např. C:/HalfLife/Cstrike).

alias "KALACH_M4A1" "buy; menuselect 4; menuselect 1; buy; menuselect 4; menuselect 3; buy; menuselect 6; buyammo2; buy; menuselect 8; menuselect 2; buy; menuselect 8; menuselect 1; buy; menuselect 8; menuselect 4; buy; menuselect 8; menuselect 3; wait; slot10"

alias "SIG552_STEYER" "buy; menuselect 4; menuselect 2; buy; menuselect 4; menuselect 4; buy; menuselect 6; buyammo2; buy; menuselect 8; menuselect 2; buy; menuselect 8; menuselect 1; buy; menuselect 8; menuselect 4; buy; menuselect 8; menuselect 3; wait; slot10"

alias "AWP+DE" "buy; menuselect 4; menuselect 6; buy; menuselect 6; buy; menuselect 8; menuselect 2; buy; menuselect 8; menuselect 1; buy; menuselect 8; menuselect 4; buy; menuselect 1; menuselect 3; buyammo2; buy; menuselect 8; menuselect 3; wait; slot10"

//Hozeni vybusneho granatu
alias bewareblast "say_team I'm throwing a grenade - cover yourself!" alias +hegrenade "bewareblast; weapon_hegrenade; wait; +attack; wait" alias -hegrenade "-attack; lastinv"

//Hozeni oslepovaciho granatu
alias bewareflash "say_team I'm throwing a flashbang - cover your eyes!" alias +flash "bewareflash; weapon_flashbang; +attack; wait" alias -flash "-attack; wait; lastinv"


Každý odstaveček představuje jeden alias, což je zároveň i příkaz, který se pro vytváření aliasů používá a má následující tvar:

alias “nazev_aliasu” ”prikaz1; prikaz2; prikaz3; ... ”

 Podrobný rozbor prvního aliasu
Obrázek zdroj: Tisková zpráva Pole alias je název příkazu, pole nazev_aliasu se dává do uvozovek a představuje název aliasu, pod kterým si sekvenci nabindujete na klávesu a dále následují v uvozovkách jednotlivé příkazy oddělené středníkem. Když si tedy obecný tvar příkazu promítneme třeba na první odstavec naší ukázky, vidíme z ní toto:

- alias se jmenuje KALACH_M4A1 (slouží, jak uvidíme za chvíli, k nákupu AK-47 nebo Colt M4A1 Carbine)
- buy je příkaz sloužící k nakupování, konkrétně k otevření nabídky pro nákup
- menuselect x je příkaz, který vybírá položku číslo x z aktuální nabídky.
- buyammo x slouží k nákupu munice (jednoho zásobníku) pro primární (x = 1) nebo pro sekundární (x = 2) zbraň
- wait a slot10 je dvojice příkazů, která zavírá nabídku (odpovídá stisknutí nuly při nakupování). Příkaz wait (čekej) je spíše kosmetický a pouze na okamžik pozastaví běh procesu, ale v praxi se často hodí a odstraní případné zasekávání aliasů.

Pro přehlednost celý první alias zopakuji, ať je líp na očích:

alias "KALACH_M4A1" "buy; menuselect 4; menuselect 1; buy; menuselect 4; menuselect 3; buy; menuselect 6; buyammo2; buy; menuselect 8; menuselect 2; buy; menuselect 8; menuselect 1; buy; menuselect 8; menuselect 4; buy; menuselect 8; menuselect 3; wait; slot10"

Pokud si projdeme celý první alias, vidíme, že první trojice příkazů začínající příkazem buy slouží k zakoupení zbraně AK-47 (otevření nákupní nabídky, vybrání položky číslo 4 a následně položky číslo 1), druhá trojice k zakoupení M4A1. To je proto, že jsem chtěl ukázat, že pokud existuje v aliasu volba, která není dostupná nebo příkaz, který nelze provést, automaticky se přeskočí a pokračuje se v provádění dál. Toho jsem využil k tomu, že jsem na jedinou klávesu nabindoval nákup jak AK-47, když budu v roli teroristy, tak M4A1, když budu hrát za policajta. Uvedené zbraně jsou totiž pouze ve výbavě jednoto z týmů a proto v případě teroristy se koupí Kalašnikov a nákup M4ky se přeskočí, v případě policajta se to provede přesně naopak.

Obrázek zdroj: Tisková zpráva Dále pokračuje nákup plné zásoby střeliva pro primární zbraň (menuselect 6) a nákup jednoho zásobníku pro zbraň sekundární (buyammo2). Dále nakupujeme výstroj - nejprve kevlarovou vestu společně s helmou, za níž následuje nákup samotné kevlarové vesty. To je proto, že v případě, že nemáte na kevlar s helmou peníze, k jejich zakoupení nedojde a snažíte se následně koupit aspoň samotnou vestu, která je levnější a na kterou peníze mít můžete. Celá nákupní horečka končí koupením výbušného granátu a jednoho granátu oslepujícího. Na konci je dvojice příkazů pro opuštění nabídky pro nákupy. Toto vše budeme nyní schopni nakoupit jediným stiskem klávesy, kterou si pro naši činnost vybereme, navíc během zlomku vteřiny. My si zvolíme např. klávesu F9. Přiřazení aliasu se provede v souboru config.cfg, který již určitě v adresáři s Counter-Strikem najdete a který obsahuje krom jiného řádky s nabindovanými klávesami pro ovládání hry. Vypadá to zhruba takto:

unbindall
bind "TAB" "+showscores"
bind "ESCAPE" "cancelselect"
bind "SPACE" "+jump"
bind "," "buyammo1"
bind "." "buyammo2"
bind "0" "slot10"
bind "1" "slot1"
bind "2" "slot2"
bind "3" "slot3"
bind "4" "slot4"
...


Vy si tedy najdete klávesu, která je volná a přidáte do souboru řádek:

bind "F9" "KALACH_M4A1"

Tím jsme již vytvořený alias nabindovali na stisknutí klávesy F9.

 Jak to funguje v praxi
Obrázek zdroj: Tisková zpráva Nyní můžete hru spustit a funkci si vyzkoušet, nejlépe až budete mít dostatek peněz a budete si moci ověřit, že nakupujete opravdu vše, co jste si nastavili. Tímto způsobem si můžete vytvořit do autoexecu větší pošet aliasů na různé další činnosti (nejen nákupní) a v configu jim pak přiřadíte klávesy pro jejich aktivaci. K nákupům ještě připojím jednu radu - vždy se při tvorbě aliasu zamyslete nad vhodným pořadím nákupu, které může hrát roli v případě, že nemáte dostatek peněz. ak záleží na tom, jestli se z toho všeho, co si nastavíte koupíte raději vestu nebo oslepující granáty apod. Proto zadávejte nákup v pořadí podle toho, jakou mají položky pro vás prioritu.

My se už dále nebudeme v tomto článku zabývat rozborem všech příkazů, které hra umí, neboť zde k tomu nemáme prostor. Odkážu vás ale na stránky, kde se toho můžete - v případě chuti proniknout do tvorby aliasů hlouběji - dozvědět víc: zde máte krásně všechno popsáno včetně odkazů na seznamy příkazů a jejich význam.

Jen pro zajímavost si prohlédněte poslední dvě sekce naší úvodní ukázky, které slouží k hození výbušného granátu, resp. k hození granátu oslepujícího. Tyto sekvence nebudeme podrobně pitvat, ale je z nich vidět, o co se jedná - nejprve týmu oznámíte do konzole, že budete házet a ať si dávají pozor, následně granát hodíte (až v okamžiku, kdy danou klávesu uvolníte, stejně, jako to provádíte běžně) a nakonec se ještě přepnete na předchozí zbraň, kterou jste nesli.

 Pár užitečných linků
Pro bindování slouží i utilita zvaná příznačně AliasBinder a najdete ji tady. Tato utilitka dělá to samé, co jsme si ukazovali i něco navíc, řada věcí je automatizovaná a práce s ní je jednoduchá i pro úplného začátečníka. Aby ale nebylo vše úplně jednoduché dodám, že mi některé aliasy vytvořené s pomocí této utility nefungovaly a i když jsem je studoval a porovnával s těmi napsanými ručně, nepřišel jsem na to, proč tomu tak je. Například házení granátů šlo naprosto v pohodě, zatímco nákupy jsem prostě nerozchodil a musel si je napsat ručně. Neptejte se mě proč, sám nevím a kdo na to přijde, budu jedině rád, když se ozve do fóra k článku. V případě problému se tedy nebojte ruční editace, věřím, že jsem její princip ozřejmil a půjde vám to hladce, jako to nyní jde i mě. Nakonec ještě poznamenám, že pomocí aliasů lze bindovat třeba i hodně používané rádiové hlášky, kde nyní stačí stisknout jedinou klávesu.

Další šikovná stránka obsahující popisy, návody a také konkrétní příklady scriptů, seznam bindovatelných kláves nebo scriptovacích utilit ne nachází na této adrese.

 Pro lepší orientaci na klávesnici
Obrázek zdroj: Tisková zpráva Tímto se s vámi prostřednictvím Counter-Striku na nějaký čas loučíme. Cílem bylo ty, kdo jej neznají upozornit, že možná přicházejí o něco skvělého, co by mohli alespoň vyzkoušet, a ti, kteří již Counter-Strike hrávají, zde mohli najít něco zajímavého, čím by svoji hru vylepšili. Pokud se aspoň něco z toho povedlo, je účel splněn. A na samý závěr ještě perlička - pokud budete chtít, můžete si stáhnout v PDFku obrázek rozložení klávesnice společně s výpisem zbraní v Counter-Striku, jejich umístění v nákupním menu s jejich cenami a přístupností jednotlivým týmům. Může to pomoci při orientaci, co kolik stojí, navíc si můžete do obrázku značit, co na které klávese máte nabindováno, než to dostanete do krve. Pokud tedy chcete, klepněte sem (35 kb, formát PDF, k otevření s volně stažitelným programem Adobe Acrobat Reader).

Abychom vám nalili čistého vína, tento obrázek jsem dohodnul s herním webem Doupě, kde obrázek univerzální klávesnice vyšel už před nějakou dobou zde, a já jsem jej pro vás pouze doplnil o Counter-Strikové informace.

Mickey Mouse
připravil: jd






M_M

Nejnovější články