Scripting

From Team Fortress Wiki
Jump to: navigation, search

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.

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 brugbarto 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.

Liste over navnene på tasterne

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


       

   

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

Hovedartikel: Liste over TF2 konsol kommandoer og variable

(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]

Stemme-menuen

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 kommandoen voice_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ære voice_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å

Eksterne links