Scripting/ro
Scriptarea este modul de folosire a fișierelor de configurații (.cfg
) pentru a crea legături cu tastele și aliasuri cu acțiuni complexe, cât și înșirări în consolă. Spre deosebire de hacking, scriptingul este interpolat în jocul Team Fortress 2 și nu este vizat de către VAC (Valve Anti-Cheat). Folosirea scripting-ului poate varia de la forme simple de legături(bind-uri) la taste spre loop-uri complexe și aliasuri vaste ce le pot redefini pe altele. Oricare dintre abilitățile acordate prin scripting pot fi realizate și fără intervenția acestuia, însă acest scripting poate fi folosit spre ajutorul jucătorului în lupte solicitante.
Cuprins
- 1 Comenzi de scriptare
- 2 Nume de taste
- 3 Comenzi utile
- 4 Tehnici avansate de scripting
- 5 Comentariile
- 6 Scripturi importante
- 6.1 Scripturi dizolvate
- 6.2 Scripturi actuale
- 6.2.1 Scripturi pentru ascunderea armei
- 6.2.2 Scripturi pentru săritura cu Santinela
- 6.2.3 Scripturi pentru Gunslinger
- 6.2.4 Scripturi pentru Sensibilitate și Controluri
- 6.2.5 Scripturi pentru linia Șarjei
- 6.2.6 Scripturi pentru Quickscope(ochire rapidă)
- 6.2.7 Scripturi pentru săritura cu racheta
- 6.2.8 Scripturi pentru ucidere
- 7 Notiță
- 8 Vezi de asemenea
- 9 Link-uri externe
Comenzi de scriptare
Următorul conținut va avea comenzi ce îți au rolul doar în scriptare; aceastea nu influențează desfășurarea jocului în mod direct.
Bind(legătură)
Cea mai simplă formă de comandă este bind-ul. Va lega apăsarea unui anumite taste la o anumită comandă, acțiune, setare sau script.
bind [KEY] [COMMAND]
Folosirea ghilimelelor în jurul tastei și/sau a comenzii este opțională.
bind [KEY] "[COMMAND 1];[COMMAND 2];[COMMAND 3]"
Folosirea ghilimelelor în jurul tastei, dar obligatorie în jurul comenzilor lineare.
Bind-urile se prezintă sub două forme:
bind "e" "Voicemenu 0 0"
Acest bind va face jucătorul să strige dupa Medic, apăsând E.
bind "w" "+forward"
Acest bind va face ca jucătorul să se miște în față atât timp cât ține tasta W apăsată.
Toggle(comutare)
Această comandă oferă jucătorului abilitatea de a comuta variabila sau mai multe, pentru o setare.
toggle sv_cheats 0 1
Bindtoggle(comutare legată)
Aceasta funcționează în mod identic cu comuntare dar este legată de apăsarea unei taste.
bindtoggle o "sv_cheats 0 1"
- Atenție: Dacă nu este nici o variabilă specificată, comutarea standardă și cea cu tastă (bind) va folosi valorile implicite de 0 și 1.
Incrementvar
Aceasta permite jucătorului să crească/descrească o variabilă în mod repetat după o anumită cantitate precizată.
bind MWHEELUP "incrementvar fov_desired 75 90 1" bind MWHEELDOWN "incrementvar fov_desired 75 90 -1"
Acesta vă mări câmpul de vedere când rotița mouse-ului va fi mișcată în față, și scădea când rotița va fi mișcată în spate
- Atenție: Incrementvar-ul va limita variabila dacă aceasta e prea mare sau prea mică. În acest exemplu, odată ce câmpul de vedere ajunge la valoarea 90, aceasta va reveni la 75 și vice-versa.
Alias
Un alias permite jucătorului să atribuie mai multe comenzi prin referință la o comandă unica. Această opțiune vă va ajuta în redactarea rapidă, din moment ce o serie lunga de comenzi trebuie folosită de multe ori.
- Atenție: Aliasurile nu pot avea spații. Pot avea underscor-uri, numere și simboluri. Numele de aliasuri sunt case-senstive( nu vede diferența între literele mici și mari).
alias Call_For_Medic "Voicemenu 0 0" bind "e" "Call_For_Medic"
Acest cod are o funcție asemănătoare cu a unui bind simplu, asta însemnând că jucătorul ce va apasă tasta E, va striga dupa Medic.
alias "+Diagonal" "+moveleft; +back" alias "-Diagonal" "-moveleft; -back" bind "z" "+Diagonal"
Acest cod permite jucătorului să se deplaseze în direcție diagonală. În acest caz, apasând pe Z se va mișca fie în față sau în spate, dar pe diagonală.
- Atenție: Acest cod nu va funcționa!
bind "z" "+moveleft; +back"
Deși apasând pe Z va deplasa jucătorului în spate și stângă, engine-ul jocului nu va anula comanda +back și prin urmare jucătorul nu va înceta să se miște în spate.
Exec
Această comandă va executa/acționa un anumit fișier. Desigur, asta înseamnă că scripturile complexe pot fi înmagazinate în fișiere diferite, pentru a nu aglomera alte fișiere generale.
exec autoexec.cfg
Acest cod va acționa fișierul autoexec realizat de către jucător.
Echo
Această comandă va afișa textul în consola jocului. Vă va ajuta la debugging.
echo Scripting is; echo very useful
Acesta va afișa Scripting is
și very useful
pe alineate diferite. Acest fapt este datorat noului alineat/linie introdus prin echo
. Spațiile vor fi luate în considerare numai dacă sunt între cuvinte sau dacă textul afișat va fi introdus în cadrul unor ghilimele precum în acest exemplu:
echo " Scripting is very useful. "
Acest spațiu lung va fi afișat din moment ce string-ul este delimitat de către ghilimele.
- Atenție: Nu se poat afișa ghilimele din moment ce engine-ul nu ve la putea interpreta. Însă ghilimelele simple pot fi afișate, adica '
- Atenție: Funcția Echo va rata câteodată string-urile ce nu sunt delimitate de ghilimele. Ca regulă generală, este recomandat să incluzi textul respectiv în ghilimele închise corect. Este de asemenea mai ușor de citit pentru oameni.
Wait
Această comandă va face ca jocul să aștepte un anumit număr de frame-uri până la executarea comenzii urmatoare.
- Anteție: Cantitatea timpului real este corelată la tickrate-ului serverului respectiv.
- Atenție: Comanda Wait este dezactivată pe unele servere. Acest fapt va conduce la eșecul scriptului iar în unele cazuri spre crash-ul jocului. Vezi See Wait Testing pentru a preveni această problemă.
echo De ce găina a trecut strada?; wait 66; echo Ca să ajungă pe partea cealaltă!
Acest script va aștepta trecerea a 66 de frame-uri (raportat la o secunda pe majoritatea serverelor) înainte de a afișa textul.
Nume de taste
Du cursorul asupra tastei căreia vrei să-i vezi numele de comandă.
ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 ` 1 2 3 4 5 6 7 8 9 0 - = Delete Tab ⇆ Q W E R T Y U I O P [ ] \ ⇪ Caps A S D F G H J K L ; ' ↵ ⇧ Shift Z X C V B N M , . / ⇧ Shift Ctrl ⊞ Alt Spacebar ⊞ Alt ≣ Menu Ctrl |
PrtScn ScrLk Pause Insert Home PgUp Delete End PgDn
← ↓ → |
|
Butonul de pe mouse | Numele legăturii pentru buton |
---|---|
Scroll Up | MWHEELUP |
Scroll Down | MWHEELDOWN |
Click stânga | MOUSE1 |
Click dreapta | MOUSE2 |
Click de pe rotiță | MOUSE3 |
Click pe butonul din stânga(din față) | MOUSE4 |
Click pe butonul din dreapta(în spate) | MOUSE5 |
Comenzi utile
Deghizare
Comanda disguise
are nevoie de 2 argumente- primul fiind clasa iar al doilea e echipa.
- Clasa
- 1. Scout
- 2. Sniper
- 3. Soldier
- 4. Demoman
- 5. Medic
- 6. Heavy
- 7. Pyro
- 8. Spy
- 9. Engineer
- Echipa
- 1. Echipa BLU
- 2. Echipa RED
- -1. Echipa inamică
- -2. Aceași echipă
Prin urmare, comanda disguise 5 1
te va deghiza ca Medicul de la BLU iar disguise 7 -2
, ca Pyro-ul din echipa ta.
- Atenție: comanda
disguise 8 -2
(Spy-ul din aceeași echipă) va duce la anularea deghizării.
Construcții
Comenzile build
și destroy
necesită în mod individual două argumente, primul fiind construcția iar a doua tipul de construcție. Al doilea argument e invocat doar dacă nu are valoarea 0
și dacă este folosit numai în scopul diferențierii dintre intrarea și ieșirea teleporterului.
Codul build
va scoate fișa pentru plasarea unei constucții, cu excepția Sabotorului care este purtat.
build 0 0
va construi un Distribuitor (Disponibil numai pentru Enginner)build 1 0
va construi un teleporter de intrare (Disponibil numai pentru Enginner)build 1 1
va construi un teleporter de ieșire (Disponibil numai pentru Enginner)build 2 0
va construi o Santinelă (Disponibil numai pentru Enginner)build 3 0
va ridica Sabotorul (Disponibil numai pentru Spy)
Similar, comanda destroy
va distruce constucțiile.
destroy 0 0
va distruge Distribuitorul (Disponibil numai pentru Enginner)destroy 1 0
va distruge teleportorul de intrare (Disponibil numai pentru Enginner)destroy 1 1
va distruge teleportorul de ieșire (Disponibil numai pentru Enginner)destroy 2 0
va distruge Santinela (Disponibil numai pentru Enginner)- Atenție: Sabotoarele nu pot fi distruse/înlăturate.
Se poate folosi vechea comandă build
care necesită un singur argument.
build 0
va construi un Distribuitorul (Disponibil numai pentru Enginner)build 1
va construi un teleportorul de intrare (Disponibil numai pentru Enginner)build 2
va construi un o Santinelă (Disponibil numai pentru Enginner)build 3
va construi un teleportorul de ieșire (Disponibil numai pentru Enginner)build 3
va construi un Sabotorul (Disponibil numai pentru Spy) [dezapreciat]
Meniu vocal
Comanda voicemenu
necesită două argumente, numărul meniului și numărul comenzii vocale.
voicemenu 0
- 0: MEDIC!
- 1: Merci!
- 2: Du-te! Du-te! Du-te!
- 3: Mișcă-te!
- 4: Du-te la stânga
- 5: Du-te la dreapta
- 6: Da
- 7: Nu
- 8: Pasează-mi!
voicemenu 1
- 0: Vine
- 1: Spion!
- 2: Santinelă în față!
- 3: Teleportor aici
- 4: Distribuitor aici
- 5: Santinelă aici
- 6: Activează încărcătura!
- 7: MEDIC: ÜberÎncărcătura pregătită
- 8: Pasează-mi!
voicemenu 2
- 0: Ajutor!
- 1: Strigăt de bătălie
- 2: Noroc
- 3: Batjocură
- 4: Pozitiv
- 5: Negativ
- 6: Bună lovitură
- 7: Bună treabă
- Atenție: Dăcă vă doriți să vi se afișeze meniul vocal, în loc de a activa o comandă vocală prin
voicemenu <num> <num>
, puteți folosi comandavoice_menu_<num>
: unde <num> e un număr între 1 și 3 ce nu necesită un argument. De exemplu, pentru a afișa primul meniu vocal, ar trebui folosită comandavoice_menu_1
.
Teleportare cu Eureka
Comanda eureka_teleport
poate teleporta Engineer-ului folosind Eureka Effect înapoi la spawn sau teleporterul de ieșire.
- comanda
eureka_teleport 0
va teleporta jucătorul spre spawn - comanda
eureka_teleport 1
va teleporta jucătorul spre teleportorul de ieșire
Jucătorul va vedea în consolă "Unknown command" chiar dacă comenzile funcționează.
Assorted
clear
va curăța consola de orice informație afișata.alias
va lista toate aliasurile definite.fov_desired (75-90)
va seta câmpul de vedere.viewmodel_fov
va schimba câmpul de vedere asupra armelor. Implicit, acesta variază între 54 și 70..r_drawviewmodel (0/1)
va arăta (1) sau ascunde (0) arma.lastdisguise
va face ca jucătorul să preia deghizarea anterioară. (Disponibilă doar pentru Spy)load_itempreset (0-3)
va aplica un loadout prefigurat [A, B, C, D].say "message"
va trimite un mesaj în chat.say_team "message"
va trimite un mesaj în chat-ul echipei.+taunt
va deschide colecția de batjocuri a jucătorului.+use_action_slot_item
va declanșa obiectul de acțiune purtat de jucător.volume (0-1)
va modifica nivelul sunetului din joc.taunt_by_name (name)
va derula o anumita batjocură, a cărui nume este conținut în colecția de batjocuri a jucătorului fără a afișa colecția.
Tehnici avansate de scripting
Toggles(comutări)
Este posibilă crearea unei legături spre o tastă ce ar activa o comandă și care în mod contrar ar fi o comanda de a apasă și ține.
bind w toggle alias toggle "enable" alias enable "alias toggle disable; +forward" alias disable "alias toggle enable; -forward"
Acest script va face ca apăsarea tastei W să țină jucătorul în mișcare până ce tasta W va fi apăsată din nou.
Combinații de taste
Este posibilă crearea unui script care implică apăsarea unei taste în timp ce folosirea alteia va anula acțiunea primei taste.
bind e call alias call Call_For_Medic alias Call_For_Medic "Voicemenu 0 0" alias Call_For_Ubercharge "Voicemenu 1 6"
În acest caz, apasarea tastei E va duce la chemarea Medicului. Conține și un alias neatribuit ce va chema folosirea unei Uberîncărcături.
bind shift +toggleState alias +toggleState "alias call Call_For_Ubercharge" alias -toggleState "alias call Call_For_Medic"
Acum, apăsărea tastei ⇧ Shift va direcționa comanda call
spre cererea de uberîncărcătură. Eliberarea tastei ⇧ Shift va restitui comanda call
la apelul spre Medic.
Când tasta ⇧ Shift+E este folosită, jucătorul va apela o Uberîncărcătură, decât un Medic.
Testarea comenzii Wait
Din moment ce comanda wait
este integrată în unele scripturi, poate fi necesară verificare serverului pentru a vedea dacă comanda este accesibilă.
alias waitTester "alias waitTest waitPositive; wait; waitTest" alias wait "alias waitTest waitNegative" alias waitPositive "echo Wait este ACTIVAT pe acest server.; exec waitPositive.cfg" alias waitNegative "echo Wait este DEZACTIVAT pe acest server!; exec waitNegative.cfg" waitTester
Acest script se bazează pe condiția comenzii wait
de a fi activată sau dezactivată pe un server- aliasul wait
poate definit de către jucător. Prin urmare, scriptul crează un alias numit waitTest
ce face referire la aliasul waitPositive
, iar dacă wait
este nepermis (și poate fi desigur definit de către jucător), se va face referire la waitNegative
.
Loop-uri
- Atenție: Loop-urile pot funcționa în absența comenzii wait care va provoca jocul să aștepte. Este foarte recomandat să scrieți un loop dupa testarea unui script de wait.
Este în general vorbind un mod greșit de a avea un alias ce se referă la el însuși, în timp ce referirea loop-ul poate fi întreruptă dar nu poate fi resetată. Prin urmare, scripturile loop includ două părți: Prima care înclude wait-ul și cea de-a doua cu loop.
bind g "loopKey" alias loopKey startLoop alias startLoop "alias loopKey stopLoop; +attack; alias redirect loop; loop" alias stopLoop "-attack; alias redirect; alias loopKey startLoop" alias loop "+left; wait 33; -left; +right; wait 33; -right; redirect"
Acest script va menține tasta G în folosire în timp ce este apasată. Va începe prin a trage, apoi va schimba orientare jucătorului în față și spate la fiecare 33 de frame-uri (jumătate de secundă pe majoritatea serverelor). Apăsarea tastei G va face a următoare iterație să anuleze loop-ul cât și focul de armă.
Comentariile
Pe măsură ce scriptul devine mai lung, nevoia de a avea aliasuri numite potrivite crește și ea. Oricum, nu este întotdeauna să explici ce face un alias pur și simplu după numele său. Adăugând o pereche de slash-uri (//) va transforma textul într-un comentariu și iar acesta nu va fi luat în considerare de către engine.
voicemenu 1 6 //Activate Charge!
Din moment ce comanda vocală nu are un rol evident, un comentariu îl poate explica.
Scripturi importante
Sunt câteva scripturi demne de menționat și memorat care au afectat scena jocului. Unele dintre aceastea au fost dizolvate în timp ce altele sunt încă funcționale.
Scripturi dizolvate
Scripturi pentru Pistol
Inițial, Pistolul putea fi acționat după cât rapidă era mână omului asupra tastei. Au fost realizate scripturi ce puteau simula aceasta tastare rapidă prin apăsarea unei singure taste.
Patch-ul din 13 august 2009: Pistolul trage la o rată fixată, indiferent de viteză de acționare a tastei de tragere.
Scripturi pentru Chargin' Targe turn
Inițial, comenzile de rotire spre stânga și dreapta nu erau luate în considerare precum ale mouse-ului. Chargin' Targe a fost prima arma pentru care a fost creată o restricție asupra vitezei de rotație, așadar a fost indusă o limita asupra vitezei de întoarcere a mouse-ului dar nu și asupra comenzilor emise de tastatură. Au fost create scripturi pentru evita această restricție, atribuind comenzile de mișcare tastaturii.
Patch-ul din 23 iunie 2011: A fost înlăturat exploit-ul care permitea folosirea forței de dirijare cu Chargin' Targe diferit de nivelul de control intenționat.
Scripturi pentru înghemuire în aer
Inițial, jucătorii se poate înghemui de câte ori doreau într-o săritură. Folosind un bind, puteau să se înghemuiască și să stea normal cât de rapid își doreau fară ca engine-ul să fie capabil să înregistreze loviturile pe ținte.
Patch-ul din 6 martie 2009: Jucătorii se pot înghemui doar de două ori în aer.
Scripturi pentru Gloves of Running Urgently
Gloves of Running Urgently obișnuiau să ia 6 puncte de viață pe secundă de la jucător în timp ce erau folosite. Oricum, săritura putea păstra bonusul de viteză dat de aceste mănuși și nu necesita folosirea acestora. Un scrip simplu permitea jucătorului să foloseasca mănușile, să sară și să le folosească din nou.
Patch-ul din 27 iunie 2012: A fost înlocuit damage-ul în timp cu vulnerabilitatea la lovituri mini-criticale.
Scripturi pentru Idling(inactivitate)
Multe servere încearcă să prevină prezența jucătorilor ce practică idling-ul în scopul drop-urilor. Jucătorii puteau păcăli aceste sisteme prin folosirea unor scripturi ce simulau mișcările normale ale jucătorului.
O soluție activă pentru problema cu Idle cere jucătorilor să accepte o notificare pentru a continua să găsească obiecte.
Scripturi actuale
Scripturi pentru ascunderea armei
Este un număr mare de comutări a modului de a vedea arma în funcție de slotul folosit pe o anumită clasă. Jucătorii se descotorosesc de armele din câmpul de vedere pentru a-și alibera vederea dar pentru arme precum cele albe, PDA-ul, ceasurile și altele vizibile ce conțin informații cruciale. De exemplu, pentru Spy, este absolut necesar să-și vadă arma pentru a-și da seamă că este invizibil, când manta sa de invizibilitate este afectată și când Dead Ringer-ul este declanșat. Alți jucători se orientează dupa animația armei albe pentru a-și da seama când lovitura va fi realizată.
Scripturi pentru săritura cu Santinela
Încă de la Actualizarea Enginner, Engineerii puteau fi capabili să-și care Santinelele. Întrodus în același update, Wrangler-ul permite Enginner-ului să facă o săritură cu Santinela cu ajutorul rachetelor lansate de către santinelă. Cu niște comenzi extrem de agile, jucătorul putea sări și lua Santinela înainte ca rachetele să fie deplasate.
Este greu pentru oameni să se folosească de această abilitate. Unii jucători au creat scripturi ce se puteau executa în ordinea și viteza potrivită pentru a le permite să facă săritura cu santinela în timp ce o cărau.
- Atenție: Rescue Ranger-ul poate evita acest incovenient, din moment ce este capabil să ridice construcțiile de la distanță pentru 100 metal.
Scripturi pentru Gunslinger
Din moment ce este dificil să distrugi și imediat să contruiești o Mini-Santinelă în mijlocul bătăliei accesând PDA-ul, unii jucători au înglobat distrugerea și construirea într-o singură sau mai multe taste. Acest script este folositor pentru cei ce folosesc Frontier Justice, pe măsură ce aceștia primesc acces instant la loviturile criticale la nevoie.
Scripturi pentru Sensibilitate și Controluri
Unii jucători preferă sensibilități diferite cât și tipuri de controluri pentru animite clase. De exemplu, schimbarea de la Medic ce nu necesită o acuratețe bună spre Sniper, ce nesită o dexteritate mai bună, va implica probabil o schimbare de sensibilitate pentru mouse-ul lor. Aceste scripturi alterează sensibilitatea și schemele de control pe fiecare clasă sau chiar pe armă.
Scripturi pentru linia Șarjei
Din moment ce sincronizarea săriturii și șarjei e dificilă, unii jucători au folosit un script rapid ce lega cele doua acțiuni la o singura tastă pentru ca linia șarjei să atingă distanța maximă. Jucătorul trebuie să-și acționeze arma albă în mod normal la capătul șarjei însă.
Scripturi pentru Quickscope(ochire rapidă)
Mulți jucători nu se descurcă cu focalizarea și tragerea rapidă pentru a obține un headshot. Sunt scripturi ce permit folosirea zoom-ului și focului de armă simultan prin apăsarea unei singure taste. Desigur, acesta va cere jucătorilor să ochească fără folosirea lunetei.
Scripturi pentru săritura cu racheta
Pentru a atinge o săritura cu rachetă de mare înalțime și distanță, jucătorului i se cere să sară, înghemuiască și să tragă simultan. Toate aceste acțiuni pot fi reduse la apăsarea unui singur buton.
Scripturi pentru ucidere
În anumite cazuri este benefic ca jucătorii să se sinucidă (prin comanda bind k kill
, de exemplu). Această metodă este mai mult relevantă scenei competitive decât celei ocazionale din serverele publice.
Notiță
- Fiecare fișier de configurare este limitata la o capacitate de un mebibyte (1.04858 megabiți) de informații, deși această restricție poate fi evitată prin executarea unui altui fișier, înglobat în primul.