Scripting/ro

From Team Fortress Wiki
< Scripting
Revision as of 23:18, 24 May 2017 by WizzkitG (talk | contribs) (Meniu vocal)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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.

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


       

   

Num / * -
7 8 9 +
4 5 6
1 2 3
    0     .
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

Articol principal: Listă cu variabile și comenzi de consolă în TF2

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 comanda voice_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ă comanda voice_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.

Vezi de asemenea

Link-uri externe