Wszystko na temat configu.



Wyrzucanie broni.

// Config do pobrania TUTAJ i postepuj zgodnie z instrukcja.
//******************************************************************************************
// Dodaj komende exec do Twojego autoexec.cfg na koncu configa –> exec dropy.cfg
//******************************************************************************************
// JAK TO USTAWIC?
// By rozpoczac uzywac dropy ustaw bindy ponizej w miejscu gdzie jest 1,2,3,4,5,6,7
// pod klawisze na ktorych uzywasz poszczegolne bronie (na przyklad bind ‘6’ to railgun).
//******************************************************************************************
// JAK WYRZUCAC?
// W grze nacisnij ‘MOUSE3’ (srodkowy przycisk myszy) i przytrzymaj,
// (mozesz zmienic MOUSE3 w [MODIFIERS])
// nastepnie nacisnij ‘6’ (lub ktorykolwiek bind/bron chcesz wyrzucic) by wyrzucic bron,
// jezeli nadal trzymasz ‘MOUSE3’ i wcisniesz ‘6’ poraz drugi, zaczniesz wyrzucac amunicje.
//******************************************************************************************
// JEST TAKZE przycisk ALT W UZYCIU.
// Wiec mozesz szybko wyslac wiadomosc jakiej amunicji potrzebujesz.
// Operacja wyglada podobnie jak przy wyrzucaniu tylko zamiast ‘MOUSE3’ uzywasz ‘ALT’

//******************************************************************************************
// [MODIFIERS]–> tutaj mozesz zmienic ‘MOUSE3’ i ‘ALT’

bind MOUSE3 +modifier_1

alias -modifier_1 “set modifier 0; using”
alias +modifier_1 “set modifier 1; drops”

bind ALT +modifier_2

alias +modifier_2 “set modifier 2; respawn”
alias -modifier_2 “set modifier 0; using”

set modifier 0

//**************************************************************************************
// [DROPS]–> Tutaj zmien bindy \/

set k_hb                                  1  //dla blaster/hyperblaster/bfg
set k_ssg                                2  //dla supershotgun/shotgun
set k_cg                                  3  //dla chaingun/machingun
set k_gl                                   4  //dla grenades/grenadelauncher
set k_rl                                   5  //dla rocketlauncher
set k_rg                                  6  //dla railgun
set k_ps                                  7  //dla powershield

alias drops “bind $k_rg w_rg; bind $k_rl w_rl; bind $k_ssg w_ssg; bind $k_cg w_cg; bind $k_hb w_hb; bind $k_gl w_gl; bind $k_ps w_ps”
alias using “bind $k_rg u_rg; bind $k_rl u_rl; bind $k_ssg u_ssg; bind $k_cg u_cg; bind $k_hb u_hb; bind $k_gl u_gl; bind $k_ps u_ps”
alias respawn “bind $k_rg r_rg; bind $k_rl r_rl; bind $k_ssg r_ssg; bind $k_cg r_cg; bind $k_hb r_hb; bind $k_gl r_gl; bind $k_ps r_ps”

alias w_rg “drop railgun; bind $k_rg drop slugs; say_team [‹‹] [RAIL] $loc_here”
alias w_rl “drop rocket launcher;bind $k_rl drop rockets; say_team [‹‹] [RL] $loc_here”
alias w_ssg “drop shotgun; drop super shotgun; bind $k_ssg drop shells; say_team [‹‹] [SSG] $loc_here”
alias w_cg “drop machinegun; drop chaingun; bind $k_cg drop bullets; say_team [‹‹] [CHAIN] $loc_here”
alias w_hb “drop bfg10k;drop hyperblaster; bind $k_hb drop cells; say_team [‹‹] [HYPER] $loc_here”
alias w_gl “drop grenade launcher; drop grenades; bind $k_gl drop grenades; say_team [‹‹] [GL] $loc_here”
alias w_ps “drop power shield; bind $k_ps drop power screen; say_team [‹‹] [PS] $loc_here”

alias u_rg “use railgun”
alias u_rl “use rocket launcher”
alias u_ssg “use shotgun; use super shotgun”
alias u_cg “use machinegun; use chaingun”
alias u_hb “use blaster; use hyperblaster; use BFG10k”
alias u_gl “use grenades; use grenade launcher”
alias u_ps “use power shield; use power screen”

alias r_rg “say_team %$msgname [][NEED] -RG- |SLUGS| [ŤŤ] $loc_here “
alias r_rl “say_team %$msgname [][NEED] -RL- |ROCKETS| [ŤŤ] $loc_here “
alias r_ssg “say_team %$msgname [][NEED] -SS- |SHELLS| [ŤŤ] $loc_here “
alias r_cg “say_team %$msgname [][NEED] -CHAINGUN- |BULLETS| [ŤŤ] $loc_here “
alias r_hb “say_team %$msgname [][NEED] -HYPER- |CELLS| [ŤŤ] $loc_here “
alias r_gl “say_team %$msgname [][NEED] -GL- |GRENADES| [ŤŤ] $loc_here “
alias r_ps “say_team %$msgname [][NEED] -PS- |CELLS| [ŤŤ] $loc_here “

//**************************************************************************************
// by 4Bidden



Alias.

Alias to odwołanie do jednej lub większej ilości komend występujących po sobie. Dla przykładu zapoznaj się z trywialnym aliasem:

alias "wc" "set name ${name}.brb ; say ide do kibelka, brb"

Zamiast pisac w konsoli, że udajesz się do miejsca, gdzie król chodzi piechotą, a potem zmienić nick (na taki, którym da innym do myślenia) możesz napisać “wc”. Skutkiem tego będzie zmiana “name” na nick z sufiksem “.brb”, oraz wysłanie wiadomości do wszystkich graczy na serwerze, że “zaraz wracasz”. A wszystko to tylko dzięki wpisaniu “wc” w konsoli :)

Definicja

alias "nazwaAliasu" "dzialanie1 ; dzialanie2 ; dzialanie3 ;  ..."

alias odwołuje się do zdefiniowanej liczby “działań”, które następują po sobie. Działaniem, może być każda komenda dostępna w kliencie którego używasz. Jest to jednak jedna z dwóch możliwości aliasu. Drugą możliwościa jest alias “+-”

alias "+robCos" "echo robie coś, bo wcisneles klawisz x"
alias "-robCor" "echo robie coś innego, puszczony klawisz x"
bind "x" "+robCos"

Otóż aliasy typu “+-” reaguję na “wciśnięcie” (prefiks “+”) klawisza oraz jego “zwolnienie” (prefiks “-”). Najlepszym przykładem będzie alias odpowiedzialny za poruszanie do przodu:

bind "x" "+forward"

gdy klawisz “x” jest wciśnięty to idziemy, do przodu, gdy zwolnimy klawisz “x” to zatrzymujemy się w miejscu. Wszystko by było jasne, gdybyśmy mogli zobaczyć czym jest tak naprawdę “+forward” i dlaczego on “trwa” podczas wciśnięcie klawisza “x”. Niestety, użytkownik może jedynie tworzyć jednorazowe aliasy “+-”, tzn. że jeśli zrobimy

alias "+gadaj" "say bla bla bla"
alias "-gadaj" "say koniec"
bind "x" "+gadaj"

to przy wciśnięciu “x” nie będziemy ciągle wysyłać wiadomości “bla bla bla” (tak jak można oczekiwać po +forward, że idziemy ciągle do przodu), lecz wyślemy ją jednorazowo, a po zwolnieniu klawisza “x” wyślemy wiadomość “koniec”. Przykład zastosowania Ok ale do czego może się nam przydać alias “+-”? Np. aby zrobić binda, którego “przytrzymanie” będzie skutkować “cichym chodzeniem” (gdy postać nie biegnie to nie słychać jej kroków).

bind "x" "+cicheChodzenie"
alias "+cicheChodzenie" "set cl_run 0"
alias "-cicheChodzenie" "set cl_run 1"

Zmienna “cl_run” ma wartość “0″ tylko wtedy gdy przytrzymamy klawisz “x”, a jest to o tyle pomocne, że wystarczy zwolnić klawisz aby znów biec. Jest to przeciwne zachowanie do zastosowania komendy “toggle”.

AUTOR DEM

Przydatne aliasy

// [NETGRAPH]--> (q2pro)

bind F4      "ng0"
    alias ng0 "scr_lag_draw 1 ; echo [Netgraph][ON]; bind F4 ng1"
    alias ng1 "scr_lag_draw 0 ; echo [Netgraph][OFF]; bind F4 ng0"

// [READY]-->

bind F2 "r0"
    alias r0 "ready; echo [READY TO GO!]; bind F2 r1"
    alias r1 "unready; echo [NOT READY]; bind F2 r0"

// [LOCKTEAM]-->

bind F3 "l0"
    alias l0 "lockteam;bind F3 l1"
    alias l1 "unlockteam;bind F3 l0"


Modifier.

Modifier – klawisz funkcyjny, którego zadaniem jest zmiana funkcjonaloności innego klawisza. Definicja brzmieć może dość dziwacznie, tak więc poniżej przedstawiam bardziej przyswajalną wersję

Jesli mamy przypisane do klawisze “e”, “wybór broni Rocket Launcher”,
to w kombinacji z klawiszem modifierem “shift” “dropniemy broń
rocket launcher”.

W skrócie przy pomocy zapisu pseudo config’owym

wciśniecię klawisza "e" = "użyj  broni"
wciśniecię klawisza "shift" i "e" = "wyrzuć broń"

Jest to naprawdę dobry sposób, aby konfiguracja klawiszy stała się bardzo funkcjonalna oraz bardzo intuicyjna. Przy pomocy modifierów (np. tj. ww. shift) możemy nadać jednemu klawiszowi drugą funkcjonalność uwarunkowaną wciśnięciem klawisza funkcyjnego tzn. “modifier’a”.

Tworzenie modifier’a

Aby bawić się modifierami, należy rozumieć jak działa się na zmiennych oraz aliasach. Jeśli temat jest już ogarnięty to formalna definicja modifieria nie powinna nastręczać większych trudności.

set "mod" "0"
bind "shift" "+shift"
alias "+shift" "set mod shift"
alias "-shift" "set mod 0"

Jak widać potrzebujemy

– zmiennej o nazwie “mod” z przypisaną wartością “0″
– aliasu typu “+/-”, który w momencie wciśniecią klawisza “shift” ustawi zmiennej “mod” wartośc “shift”, a w momencie zwoleniania klawisza “shift” przywróci zmiennej “mod” wartosć “0″.

Łączenie klawisza z modifierem

Teraz aby jakiś klawisz (np “e”) mógł być wykorzystany w kombinacji z shiftem, musi zostać zdefiniowany w następujący sposób

bind "e" "e_$mod"
alias "e_0" "Funkcjonalność klawisza bez użycia modifiera"
alias "e_shift" "Funkcjonalność klawisza z modifierem shift"

W momencie wciśnięcia klawisza “e” pod “$mod” zostanie podstawiona wartość zmiennej “mod”. Gdy klawisz “shift” będzie wciśnięty w momencie wciśnięcia klawisza “e”, “$mod” będzie równy “shift” więc wywołany zostanie alias “e_shift”. Przy zwolnionym “shifcie”, “$mod” jest równy “0″, więc gdy wciśniemy klawisz “e” wywołany będzie alias “e_0″.

AUTOR DEM



Trigger.

Triggery można wylistować wpisując w konsoli samą komendę “trigger”. Jak tworzyć triggery? Jeśli napis pasuję do informacji wysłanej przez server, to trigger wykona komendę.

trigger "komenda" "napis"

Informacją wysłaną przez serwer jest np:

– informacja o tym, że ktoś kogoś zfragował
– informacja o tym, że ktoś wszedł na server
– informacja o tym czy hud/id został włączony

a najłatwiej jest taką informację rozponać po tym, że jest drukowana białym kolorem i pojawia się po jakieś akcji gracza.
Należy zaznaczyć, że przy tworzniu triggera mamy do dyspozycji

* – gwiazdka

która zastępuje dowolny ciąg znaków. Czyli np jeśli server wysyła komunikaty w postaci:

Ala ma kota
Wojtek ma kota
Krzysztof zgwałcił kota wczoraj
Krzysztof zgwałcił kota

to

trigger "say server napisał coś o kotach" "*kota"

znaczy tyle, że klient, którego używamy wykona komendę “say server napisał coś o kotach” w momencie gdy od servera przyjdzie informacja, która kończy się słowem “kota”. A to dlatego, bo słowo “kota” jest poprzedzone gwiazdką. Trigger nie zareaguje natomiast na

Krzysztof zgwałcił kota wczoraj

Ponieważ napis musi się zgadzać co do znaku z wiadomością wysłaną przez server, a my, trigger ustawiliśmy aby akceptował napis zakończony słowem ”kota” i wyraz ten poprzedzony dowolna ilością znaków (dzięki gwiazdce). Aby na wykluczone zdanie również reagował trigger, należałoby go zdefiniować z * – gwiazdka na końcu

trigger "say server napisał coś o kotach" "*kota*"

Teraz wszystkie 4 zdania uruchomią trigger a w rezultacie klient wykona komendę “say server napisał coś o kotach”. W tych przykładach Gwiazdka przed “kota” zastępuje słowa tj. “Ala ma”, “Wojtek ma”, “Krzysztof zgwałcił”. Gwiazda za słowem “kota” zastepuje wyraz “wczoraj”.

UnTrigger

Jak usunąć konkretny trigger? Oczywiście zdarzyć się może, że mamy potrzebę wyłączenia triggerów, a z pomocą przychodzi nam komenda untrigger, której używamy tak samo jak przy trigger, przy czym dodajemy prefix do trigger “un”

untrigger "komenda" "napis"

Prawda, że proste? Jak usunąć wszystkie triggery ? Wszystkie triggery można usunąc wpisując w konsoli untrigger all.

AUTOR DEM

Przykładowe triggery

//na serwerze
trigger "" "*Timelimit hit. Match Ended.*"
trigger "" "*Timelimit hit. Match Ended.*"
trigger "" "*Teams locked!*"
trigger "" "*${name} entered the server*"
trigger "" "* was kicked from team by ${name}*"
trigger "" "*${name} was kicked from team by*"
trigger "" "*${name} was picked by*"
trigger "" "*${name} has become captain*"
//Gdy sfragujemy kogoś od siebie z teamu
trigger "" "*was blasted by ${name}*- TEAMMATE KILL!*"
trigger "" "*was gunned down by ${name}*- TEAMMATE KILL!*"
trigger "" "*was blown away by ${name}*- TEAMMATE KILL!*"
trigger "" "*was machinegunned by ${name}*- TEAMMATE KILL!*"
trigger "" "*was cut in half by ${name}*- TEAMMATE KILL!*"
trigger "" "*caught *${name}*- TEAMMATE KILL!*"
trigger "" "*was popped by ${name}*- TEAMMATE KILL!*"
trigger "" "*almost dodged ${name}*- TEAMMATE KILL!*"
trigger "" "*ate ${name}*- TEAMMATE KILL!*"
trigger "" "*was railed by ${name}*- TEAMMATE KILL!*"
trigger "" "*was melted by ${name}*- TEAMMATE KILL!*"
//Gdy nas sfraguje ktoś z naszego teamu
trigger "" "*${name} was blasted by*- TEAMMATE KILL!*"
trigger "" "*${name} was gunned down by*- TEAMMATE KILL!*"
trigger "" "*${name} was blown away by*- TEAMMATE KILL!*"
trigger "" "*${name} was machinegunned by*- TEAMMATE KILL!*"
trigger "" "*${name} was cut in half by*- TEAMMATE KILL!*"
trigger "" "*${name} caught*- TEAMMATE KILL!*"
trigger "" "*${name} was popped by*- TEAMMATE KILL!*"
trigger "" "*${name} almost dodged*- TEAMMATE KILL!*"
trigger "" "*${name} ate*- TEAMMATE KILL!*"
trigger "" "*${name} was railed by*- TEAMMATE KILL!*"
trigger "" "*${name} was melted by*- TEAMMATE KILL!*"
//Gdy sfragujemy przeciwnika
trigger "" "* was blasted by ${name}"
trigger "" "* was gunned down by ${name}"
trigger "" "* was blown away by ${name}'s super shotgun"
trigger "" "* was machinegunned by ${name}"
trigger "" "* was cut in half by ${name}'s chaingun"
trigger "" "* caught ${name}'s handgrenade"
trigger "" "* was popped by ${name}'s grenade"
trigger "" "* almost dodged ${name}'s rocket"
trigger "" "* ate ${name}'s rocket"
trigger "" "* was railed by ${name}"
trigger "" "* was melted by ${name}'s hyperblaster"
//Gdy ktoś nas sfraguje
trigger "" "${name} was blasted by *"
trigger "" "${name} was gunned down by *"
trigger "" "${name} was blown away by *'s super shotgun"
trigger "" "${name} was machinegunned by *"
trigger "" "${name} was cut in half by *'s chaingun"
trigger "" "${name} caught *'s handgrenade"
trigger "" "${name} was popped by *'s grenade"
trigger "" "${name} almost dodged *'s rocket"
trigger "" "${name} ate *'s rocket"
trigger "" "${name} was railed by *"
trigger "" "${name} was melted by *"

Przydatne triggery

trigger "eskin male/grunt" "*${name} is ready!*"
// enemy skin male/grunt po daniu ready

trigger "say Hello" "*${name} entered the game*"
// say Hello na wejsciu na serwer

trigger "weaponhud" "*${name} entered the game*"
// weaponhud na wejsciu na serwer

trigger "ready" "*is ready!*"
// autoready gdy tylko ktos da ready


Zmienne.

Zmienne w Quake2 odgrywają dużą rolę, ponieważ 80% pliku konfiguracyjnego stanowią zmienne. Dla przykładu, zmiana “fov”, “hand”, “name” to operacja na zmiennych. Jeśli należysz do tych, którzy zastanwiają się do czego one są, jak ich używać, to zapraszam do lektury.

Deklaracja zmiennej

set "nazwaZmiennej" "wartość zmiennej"

gdzie nazwa zmiennej to ciąg znaków składających się tylko i wyłącznie z liter, cyfr, znaku “-” oraz “_”, a wartością jest dowolny ciąg znaków (liczby całkowite lub zmiennoprzecinkowe lub poprostu napis) Np:

set "wartoscPi" "3.14"
set "tagKlanu" "-nDiv-"

Odwoływanie się do wartości zmiennej

Aby odwołać się do wartości zmiennej, należy poprzednić nazwę zmiennej znakiem “$”.

say wartosc PI to: $wartoscPi

Jednak zdarzyć się może, że chcesz wywołać kilka zmiennych bezpośrednio obok siebie, lub też zaraz po nawie zmiennej znajduja się inne znaki, wtedy trzeba opatrzyć zmienną nawiasami klamrowymi “{“, “}” oraz poprzedzić nawias znakiem “$”. Niech przykładem będzie zmiana Twojej xywy, na xywę z tagiem klanu.

Wywołanie

set "name" "$tagKlanu$name"

ustawi twoją xywę na “-nDiv-name”, dlatego właśnie trzeba zastosować nawiasy klamrowe:

set "name" "${tagKlanu}${name}"

Komendy związane z zmiennymi W q2pro i r1q2 została zaimplementowana komenda toggle “wartosc1;wartosc2;…”, której zadaniem jest “przeskakiwanie” pomiędzy wartosc1;wartosc2, gdy wartości te, są liczbami. Tak więc w łatwy swposób można zrobić np zoom:

bind "x" "toggle fov 30 120"

W samym q2pro, są zaimplementowane dwie komendy służące do inkrementacji wartości zmiennej i deinkrementacji zmiennej:

dec "fov" "wartość"

takie wywołanie zmniejszy aktualną wartość zmiennej “fov” o “wartość”.

inc "fov" "wartość"

takie wywołanie zwiększy aktualną wartość zmiennej “fov” o “wartość”. Przykładowe zastosowanie zmiennych Zmienne znajdują bardzo dobre zastosowanie w tworzeniu “modifierów”. Wielu ludzi nie zdaje sobie sprawy jak wiele pracy z konfigiem może zaoszczędzić wprowadzenie zmiennych. Np gdy robisz bindy do wybierania/dropowanie broni, to za każdym razem w każdym bincie musisz pisać pełną nazwę broni, gdzie można to uprościć dzięki inicjalizacji paru zmiennych. Np:

set "rl" "Rocket Launcher"
set "rg" "Railgun"

I zamiast “dłuższe” pisać bindy w postaci

bind "x" "use Rocket Launcher; use Railgun"

można napisać

bind "x" "use $rl; use $rg"

AUTOR DEM



Dodaj komentarz