Scripting
Scripting er brugen af konfigurationsfiler (.cfg
) for at skabe nye key-bindinger og alias, der automatisere kompleks opførelse og konsol kommando sekvenser. I modsætning til at hacke, er scripting bygget ind i Team Fortress 2 og er ikke bannet af VAC (Valve Anti-Cheat). Brugen af scripting kan varierer fra at binde en tast til en kommando til selv-refererende loop og sammenkoblet alias, som omdefinerer hinanden. Hvilken som helst funktionalitet, som kan blive skabt via scripting, kan også blive opnået uden, men scripting tillader disse funktionaliteter at blive brugt midt i en hed kamp.
Indholdsfortegnelse
Scripting Kommandoer
Følgende er en liste af kommandoer, som ikke har nogen brug uden for scripting; de påvirker ikke spillet direkte.
Bind
Den simpleste kommando er binde-kommandoen. Den forårsager, at en bestemt knap eksekverer en bestemt handling, om det er en handling, en kommando, eller en skrift.
bind [TAST] [KOMANDO]
Anførelsestegn kan placeres rundt om tasten eller kommandoen (valgfrit).
bind [TAST] "[KOMMANDO 1]; [KOMMANDO 2]; [KOMMANDO 3]"
Anførelsestegn kan blive placeret rundt om tasten, men skal være rundt om kommandoerne.
Bindingener komme i to former:
bind "e" "Voicemenu 0 0"
Denne binding vil få spilleren til at kalde efter en Medic, når de trykker på E.
bind "w" "+forward"
Denne binding vil få spilleren til at bevæge sig fremad, når de holder W nede.
Toggle
Denne kommando tillader en ordning at skifte mellem to eller flere værdier.
toggle sv_cheats 0 1
Bindtoggle
Denne virker identisk til toggle, men binder en tast til det.
bindtoggle o "sv_cheats 0 1"
- Note: Hvis ingen værdi er specificeret, vil toggle og bindtoggle fortsætte med at kun skifte mellem 0 og 1.
Incrementvar
Denne tillader variabler at blive forhøjet eller formindsket gentagende gange i en forudbestemt mængde.
bind MWHEELUP "incrementvar fov_desired 75 90 1" bind MWHEELDOWN "incrementvar fov_desired 75 90 -1"
Dette vil forårsage, at udsynsvinklen bliver forhøjet, når du ruller op og formindskes, når du ruller ned.
- Note: Incrementvar vil få værdien til at gå i ring, hvis den bliver for stor eller for lille. I dette eksempel, vil udsynsvinklen, når den rammer 90, gå ned på 75 og omvendt.
Alias
En alias tillader adskillige kommandoer at blive refereret ved én enkelt kommando. Dette er effektivt korthåndet, og er den mest brugbare, når en sekvens af kommandoer, skal ske mange gange.
- Note: Alias navne kan ikke indeholde mellemrum. De må godt have bundstreger, tal og symboler. Alias navne er sensitive med henhold til kapitale/ikke kapitale bogstaver.
alias Call_For_Medic "Voicemenu 0 0" bind "e" "Call_For_Medic"
Denne skrift funktionerer analogt med en simpel bind, som betyder, når en spiller trykker E, vil de kalde efter en Medic.
alias "+Diagonal" "+moveleft; +back" alias "-Diagonal" "-moveleft; -back" bind "z" "+Diagonal"
Denne skrift tillader spilleren at bevæge sig diagonalt. Her vil trykningen af Z forårsage, at spilleren bevæger sig diagonalt baglæns og til venstre.
- Advarsel: Følgende kode vil ikke virke!
bind "z" "+moveleft; +back"
Selvom trykningen af Z vil få spilleren til at bevæge sig baglæns og til venstre, inverterer spille-engine'en ikke +back kommandoen, og frigørelsen af Z vil ikke få spilleren til at stoppe med at bakke.
Exec
Denne kommando vil eksekvere en anden fil. Dette betyder at komplekse skrifter kan blive opholdt i andre filer, så de ikke overfylder mere generelle filer.
exec autoexec.cfg
Denne skrift vil eksekvere spillerens autoexec skrift.
Echo
Denne kommando vil forårsage at teksten bliver printet til konsollen. Dette er meget brugbart til at debugge.
echo Scripting er; echo meget brugbart
Dette vil printe koden Scripting er
og meget brugbar
på to separate linjer. Dette er fordi en ny linje er tilføjet til enden af alt tekst passeret til echo
. Mellemrum er kun talt med, hvis de er mellem ord, eller hvis den echo'ede tekst er mellem to anførelsestegn, som i næste eksempel:
echo " Scripting er meget brugbart. "
De ekstra mellemrum vil blive printet ud, siden strengen er afgrænset af anførelsestegnene.
- Note: Det er ikke muligt at prente "-tegnet, da dens betydning vil blive misfortolket. Dog kan du printe enkelt-anførelsestegn/apostrofer: Det er '-tegnet.
- Note: Echo vil til tider misprente strenge, som ikke er afgrænset af anførelsestegn. Som en generel tommelfingerregel, er det bedre at omgive, hvad du ønsker at prente inden for anførelsestegn. Det gør det også nemmere at læse for mennesker.
Wait
Denne kommando vil få spillet til at vente et givent antal af frames, før den eksekverer den næste kommando.
- Note: Mængden af aktuel rigtig tid det korresponderer til, er bestemt ud fra serverens tick-rate.
- Warning: Wait-kommandoer er disaktiveret på visse servere. Dette vil få visse skrifter til at fejle, og kan (i semi-sjældne omstændigheder) få spillet til at crashe. Se Wait Teste til hjælp med at beskytte mod dette.
echo Hvorfor krydsede kyllingen vejen?; wait 66; echo For at komme over på den anden side!
Denne skrift vil vente 66 frames (1 sekund på de fleste servere) før den prenter punchlinen.
Hold musen over en tast for at se dens scripting-navn.
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 ⊞ ≣ Menu Ctrl |
PrtScn ScrLk Pause Insert Home PgUp Delete End PgDn
← ↓ → |
|
Museknapper | Navn på Keybind |
---|---|
Scrolle Op | MWHEELUP |
Scrolle Ned | MWHEELDOWN |
Venstre Klik | MOUSE1 |
Højre Klik | MOUSE2 |
Hjul Klik | MOUSE3 |
Venstre Knap Klik (fremad) | MOUSE4 |
Højre Knap Klik (tilbage) | MOUSE5 |
Brugbare kommandoer
(Engelsk)
Forklædning
disguise
kommandoen tager to argumenter, den første er klassen og den anden er holdet.
- Klasse
- 1. Scout
- 2. Sniper
- 3. Soldier
- 4. Demoman
- 5. Medic
- 6. Heavy
- 7. Pyro
- 8. Spy
- 9. Engineer
- Hold
- 1. BLÅ hold
- 2. RØD hold
- -1. Modsatte hold
- -2. Samme hold
Derfor vil disguise 5 1
forklæde en som en BLÅ Medic, og disguise 7 -2
som en venlig Pyro.
- Note:
disguise 8 -2
(Venlige Spy) vil få spilleren til at fjerne sin forklædning.
Bygninger
build
og destroy
kommandoerne tager hver to argumenter, det første er bygningen og den anden er bygningstypen. Det andet argument skal kun bruges, hvis det ikke er 0
, og er midlertidigt kun brugt til at differentiere mellem teleporter indgang og udgang.
build
kommandoen vil putte arbejdsplanen op for at placere en bygning, med undtagelse af Elektro-Sapperen, som er båret.
build 0 0
vil bygge en Dispenser (Kun Engineer)build 1 0
vil bygge en teleporter indgang (Kun Engineer)build 1 1
vil bygge en teleporter udgang (Kun Engineer)build 2 0
vil bygge en Sentry Gun (Kun Engineer)build 3 0
vil bygge en Sapper (Kun Spy)
Analogt, vil destroy
kommandoen destruere bygninger.
destroy 0 0
vil destruere en Dispenser (Kun Engineer)destroy 1 0
vil destruere en teleporter indgang (Kun Engineer)destroy 1 1
vil destruere en teleporter udgang (Kun Engineer)destroy 2 0
vil destruere en Sentry Gun (Kun Engineer)- Note: Sappere kan ikke destrueres.
Det er muligt at bruge de gamle build
kommandoer, som kun bruger ét argument.
build 0
vil bygge en Dispenser (Engineer only)build 1
vil bygge en teleporter indgang (Engineer only)build 2
vil bygge en Sentry Gun (Engineer only)build 3
vil bygge en teleporter udgang (Engineer only)build 3
vil bygge en Sapper (Kun Spy) [udfaset]
voicemenu
kommandoen tager to argumenter, menu-nummeret og kommando-nummeret.
voicemenu 0
- 0: MEDIC!
- 1: Thanks!
- 2: Go! Go! Go!
- 3: Move Up!
- 4: Go Left
- 5: Go Right
- 6: Yes
- 7: No
voicemenu 1
- 0: Incoming
- 1: Spy!
- 2: Sentry Ahead!
- 3: Teleporter Here
- 4: Dispenser Here
- 5: Sentry Here
- 6: Activate Charge!
- 7: MEDIC: ÜberCharge Ready
voicemenu 2
- 0: Help!
- 1: Battle Cry
- 2: Cheers
- 3: Jeers
- 4: Positive
- 5: Negative
- 6: Nice Shot
- 7: Good Job
- Note: Hvis du ønsker at vise stemme-menuen, så i stedet for at indtaste
voicemenu <num> <num>
beskeden, er kommandoenvoice_menu_<num>
: Hvor <num> er et tal mellem 1 og 3, og tager ingen argumenter. For eksempel, for at vise den første stemme-menu, vil aktiverings-kommandoen værevoice_menu_1
.
Assorteret
clear
vil rydde konsollen for alt information.alias
vil liste alle nutidige defineret alias.fov_desired (75-90)
vil sætte udsynsvinklen.viewmodel_fov
vil sætte FOV'en for våbenmodeller. Den går fra fra standard 54 til 70.r_drawviewmodel (0/1)
vil vise (1) eller skjule (0) våbenmodeller.lastdisguise
vil få spilleren til at gen-forklæde sig som sin sidste forklædning. (Kun Spy)load_itempreset (0-3)
vil loade en bestemt udstyrs-opsætning [A, B, C, D].say "message"
vil sende en besked til den åbne chat.say_team "message"
vil sende en besked til hold-chat.+taunt
vil åbne spillerens hån opsætning.+use_action_slot_item
vil få spilleren til at bruge deres handlingsplaceret genstand.volume (0-1)
vil ændre lydstyrken i spillet.taunt_by_name (name)
vil aktivere en specifik hån, givet det eksakte navn på hånen i spillerens nutidige hån-opsætning, uden at åbne hån-menuen.
Avancerede Scripting Teknikker
Toggles
Det er muligt at binde en tast til at ændre en kommando, som ellers ville være en tryk-og-hold kommando.
bind w toggle alias toggle "enable" alias enable "alias toggle disable; +forward" alias disable "alias toggle enable; -forward"
Denne skrift vil få trykningen af W til at fortsætte lige ud indtil W er trykket igen.
Tast kombinationer
Det er muligt at skabe en skrift, hvor trykningen af en tast, imens en anden er holdt nede vil ændre handlingen af den første tast.
bind e call alias call Call_For_Medic alias Call_For_Medic "Voicemenu 0 0" alias Call_For_Ubercharge "Voicemenu 1 6"
Indtil videre, siger skriften at hver gang E er trykt på, vil spilleren kalde efter en Medic. Den har også en ubrugt alias til at kalde efter en Ubercharge.
bind shift +toggleState alias +toggleState "alias call Call_For_Ubercharge" alias -toggleState "alias call Call_For_Medic"
Nu vil trykningen af ⇧ Shift omdirigere call
til at spørge efter en ubercharge. Stopper man med at trykke ⇧ Shift, vil den få call
til at gå tilbage til at kalde efter en Medic.
Når ⇧ Shift+E er trykket, vil spilleren kalde på en Ubercharge, i stedet for en Medic.
Wait-teste
Siden wait
kommandoen er integreret del af nogle skrifter, kan det være nødvendigt at teste for at se om en server har disaktiveret kommandoen.
alias waitTester "alias waitTest waitPositive; wait; waitTest" alias wait "alias waitTest waitNegative" alias waitPositive "echo Wait is enabled on this server.; exec waitPositive.cfg" alias waitNegative "echo Wait is DISABLED on this server!; exec waitNegative.cfg" waitTester
Denne skrift beror på det faktum, at vente-kommandoen er disaktiveret på en server, aliaset navngivet wait
kan blive defineret af brugeren. Derfor kreerer skriften en alias kaldt waitTest
, som automatisk peger mod waitPositive
, men hvis wait
ikke er tilladt (og derfor kan blive defineret af brugeren), vil den blive omdirigeret til waitNegative
.
Loops
- Advarsel: Loops, som kører uden en vente-kommando vil få TF2 klienten til at hænge. Det er foreslået først at køre loppe-skrifter efter et wait-teste skrift.
Det er generelt set som en dårlig form at have en alias der peger mod sig selv, selvom loppet kan blive brudt ud af, kan den ikke blive nulstillet. Derfor har loope-skrifter en tendens til at inkludere to dele af loopet: Delen, som venter, og delen, som looper.
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"
Denne skrift vil begynde at loope så snart G bliver trykket på. Den begynder at affyre, og så skifter den spillerens syn frem og tilbage hver 33 frames (halvt sekund på de fleste servere). At trykke G herefter, vil forårsage den næste gentagelse af loppet stopper, som også stopper affyringen.
Kommentere
Da skrifter bliver længere, stiger behovet for vel-navngivet aliaser. Dog er det ikke altid nok at forklare, hvad en alias gør ud fra dets navn. Tilføjer man et par fremadrettede skråstreger(//) vil de forvandle resten af linjen til en kommentar-it og vil ikke eksekvere nogen handlinger på teksten.
voicemenu 1 6 //Activate Charge!
Siden det er krystalklart, hvilken stemme-kommando er brugt, kan en kommentar forklare det.
Nævneværdige Skrifter
Der er mange nævneværdige skrifter, som har afficeret spillet. Nogle af disse er fjernet, imens andre stadig er funktionelle.
Fjernede/Fiksede Skrifter
Pistol Scripts
Originalt, kunne Pistolen blive affyret næsten ligeså hurtigt, som den menneskelige hånd kunne trykke en tast. Skrifter blev skabt for at simulere denne gentagende trykning ved af holde en enkelt tast nede.
13. august 2009-opdateringen: Pistolen skyder nu med en fikseret rate, og er ikke baseret på, hvor hurtigt du trykker affyrings-knappen.
Angrebsskjoldets drejning Skrifter
Originalt blev keyboard kommandoer om at dreje til venstre og højre, ikke behandlet på samme måde som med musen. Angrebsskjoldet var det første våben, der skabte en restriktion om, hvor hurtigt en spiller kunne dreje, og derfor begrænsede Valve musens dreje-hastighed, men glemte dog at tilknytte den samme restriktion til keyboard kommandoen, som resulterede i den samme handling. Skrifter blev skabt for at genforbinde drejekontrol, når en spiller løb, så man undgik restriktionen.
23. juni 2011-opdateringen: Fiksede en udnyttelse med Angrebsskjoldet, som tillod mere drejekontrol end normalt.
luftkrybe Skrifter
Originalt kunne spillere krybe så mange gange de gad i ét enkelt hop. Ved at binde en skrift til at krybe og stå, så hurtigt som muligt, kunne engine'en blive udnyttet for at gøre det svært at registrere skud på hoppende personer.
6. marts 2009-opdateringen: Spillere kan nu kun krybe to gange i luften.
Gevaldigt Rapfodede Unionshandsker Skrifter
Gevaldigt Rapfodede Unionshandskerne plejde at dræne 6 liv i sekundet imens de var aktive. Dog vedligeholdte hop hastighedsbonussen givet af våbnet og krævede ikke, at det var aktivt. Simple scripting tillod spilleren at hurtigt skifte til handskerne, hoppe, og så skifte væk.
27. juni 2012-opdateringen: Udbyttede Gevaldigt Rapfodede Unionshandskernes skade over tid med en tid-forsinket mini-kritisk straf.
Stillestående Skrifter
De fleste servere søger at forbyde, at spillere idler for drops. Spillere kan prøve at snyde disse systemer, ved at bruge skrifter, som simulerer basal bevægelse.
En Aktiv Løsning til en Stillestående Trussel (Engelsk) rekvirerer spillere at acceptere pop-up notifikationer, før de kan fortsætte med at få flere drops
Nuværende Skrifter
Våben Modelskjulning Skrifter
Der er adskillige skrifter, som ændrer våbnets skærmmodel i forhold til, hvilket våbenrum der er valgt for en klasse. Spillere gør ofte deres skærmmodeller usynlige for at tydeliggøre skærmen, men gør genstande som nærkampsvåben, PDA'er, ure, og så videre, synlige, fordi disse modeller indikerer vigtig information. Som eksempel, beror Spyen meget på sine skærmmodeller for at determinere, hvornår han er skjult, når hans Skjul er forstyrret, og hvornår Gengangeren aktiverer. Andre klasser bruger nærkampsanimationer til at determinere, hvornår deres angreb vil ramme.
Sentry-Hoppe Skrifter
Siden Engineer-opdateringen, har Engineers haft evnen til at pakke og bære deres Sentry Guns. I samme opdateringen, så man Fjernbetjeneren introduktion, som tillod Engineers at Sentry-hoppe med raketterne fra deres Sentry Gun. Med ekstrem hurtigere input, blev det opdaget at man kunne Sentry-hoppe og derefter samle sin Sentry op, før man blev skudt væk.
Mens et menneske kan gentage dette, er det svært. Nogle spillere lavede skrifter, som kunne med sikkerhed eksekvere kommandoerne i den rigtig rækkefølge med den rigtige hastighed, så spillere kunne Sentry-hoppe mens de bar deres Sentry hver gang.
- Note: med Afstandsredder kan man undgå denne nødvendighed, da den kan samle bygninger op fra en afstand for 100 metal.
Kanonslyngeren Skrifter
Siden det kan være besværligt at destruere og derefter genopbygge en Kamp Mini-Sentry midt i en hed kamp, gennem PDA'en, har nogle spillere skriftet destruktionen og genopbygningen af deres Kamp Mini-sentry ved trykningen af to taster. Sådan en skrift er især brugbar, når man bruger Præriens Hævn, da spilleren får øjeblikkelige adgang til hævnkritiske slag ved behov.
Sensitivitet og kontrol Skrifter
Nogen spillere foretrækker forskellige musesensitiviteter og kontrolskemaer for visse klasser. For eksempel, at skifte fra Medic, som ikke kræver fin sigte, til Sniper, som går ind for høj-præcisions hovedskud, kunne godt få en spiller til at ønske en sensitivitetsændring. Disse Skrifter ændrer kontrolskemaer og musvalg per klasse, eller endda våben, basis.
Løbestorm Skrifter
Siden at time et løb og hop kan være svært, vil nogle spillere måske bruge et hurtigt skrift, som binder de to handlinger, så løbestormen vil dække den maksimale distance muligt. Dog, skal spilleren skal stadig svinge deres nærkampsvåben, som altid, for at afslutte løbet.
Quickscope Skrifter
Mange spillere finder det svært at sigte ind og derefter skyde lige, for at få et hurtigt hovedskud. Der er skrifter, som vil zoome ind og skyde, bare ved at klikke på én tast. Dette kræver dog at spillere sigter uden for zoomet.
Rakethop Skrifter
For at Rakethoppe en maksimal højde eller distance, er det rekvireret at spilleren hopper, kryber og skyder deres raket nogenlunde på samme tid. Dette kan nemt blive skriftet til at forekomme ved trykningen af én tast.
Drab-bundet Skrifter
I visse omstændigheder kan det være brugbart for en klasse at kunne dræbe dem selv (for eksempel, bind k kill
). Selvom det er mest relevant i competitive spil, er der til tider brug for det på offentlige servere.
Noteringer
- Hver konfig-fil er begrænset til én mebibyte (1.04858 megabytes) af information, dog kan denne restriktion blive undgået ved at eksekvere en anden konfig-fil ved slutningen af den første.
Se også
- Liste over brugbare konsol kommandoer
- Liste over TF2 konsol kommandoer og variable på Valve Developer Community (Engelsk)