Scripting

From Team Fortress Wiki
Jump to: navigation, search

Scripting är användning av konfiguration filer för att skapa nya nyckelbindelser och motsvarande automerar komplexa uppföranden och konsol kommando sekvenser.

  • Nyckelförbindelser sätter ihop en nyckel till ett konsol kommando, som att välja vapen plats eller säga förskriven text i chatten.
  • Motsvaranden bygger nya kommandon genom att verkställa en serie av konsol kommandon när de än är använda. En motsvarande kan definera hoppa och huka some ett enda hoppa-huka kommando, vilket kan sen bli bundet med en nyckel.

De här scripterna har en räckvid inom komplikation från enkla listor av kommandon till själv-hänvisningande öglor och näste motsvaranden som omdefinerar varandra. Med nog time och engagering, kan du använda verktygen till at skapa vilket uppförande som är tillgängliga till klienten med ett tryck av en enda knapp.

Grundläggande Scriptnings Filer

Team Fortress 2 läser automatiskt flera spel filer och verkställer vilken nyckelbindning och motsvaranden inne som helst. Här är listen av dem filerna:

  • config.cfg - Det här är den grundinställda konfigurationen, vilket spelet redigerar när du än använder "in-game" menyerna för att binda nycklar eller ändra video inställningar. Medans att redigera filerna är säkert, är det enklare att lämna det ifred.
  • autoexec.cfg - Det här är den grundinställda konfigurationen för att verkställa kustomerade nyckelbindningar och mostvaranden. Du får sätta dina nyckelbindningar direkt i den här filen, men är oftast enklare att skapa separat .cfg filer för olika script, vilka du kan verkställa inuti dessa filer.
  • <class>.cfg - Varje klass har en konfiguration fil som automatiskt aktiveras när du väljer den klassen. Du får sätta dina nyckelbindningar direkt i den här filen, men är oftast enklare att skapa separat .cfg filer för olika script, vilka du kan verkställa inuti dessa filer.

Syntax

Här är en lista för syntetiska regler:

  • För att någon av nyckelbindningarna eller motsvaranden ska fungera, måste du följa det här formatet:
command <argument1> <argument2>
  • command är den typen scriptning du vill ha. Du har tre val:
  • bind - Används till att anknyta en specific nyckel.
  • alias - Används för att verkställa kommandon när motsvaranden är verkställda.
  • exec - Används för att verkställa kommandon automatiskt när en konfiguration fil är laddad.
  • <argument1> är antingen nyckeln som blir anknuten eller namnet på det mostvarande som blir nämnd.
  • <argument2> är antingen kommandot som blir bundet eller kommandon som verkställs av motsvaranden.
  • För att köra flertal kommandon, måste du sätta en hel argumentation i citat tecken och separera kommandon med semi-kolon, som så här:
alias "spraynpray" "+attack; wait 500; -attack"
bind "mouse3" "spraynpray"
  • När verkställd, börjar motsvarandet avfyra spelarens vapen, fortsätter i 500 fysik bilder (det är uppskattningsvis 5 sekunder om du är på en server som kör i 100 bilder per sekund) och sedan slutar avfyra. Motsvarandet är anknyten till verkställning när du trycker mitten mus knappen.

Grundläggande kommandon

De flesta kommandon tillåter ett argument, vilket är det värdet du vill verkställa.

bind "q" "sv_alltalk 1"

En näve full av viktiga kommandon accepterar flertal argument. Här är några exempel:

  • disguise X Y - Den här förklär Spionen. X är klassen numrerad 1 genom 9 och Y är lagnumrerad 1 eller 2.
  • voicemenu X Y - Den här verkställer kommandot. X är numret av den primära menyn. Y är kommando positionen i den menyn.

Exempel: "voicemenu 1 1" är kommandot för Spionen, så:

bind "t" "voicemenu 1 1"

Det här kommandot kommer göra dig att skrika "Spion!" när du trycker knappen.

Utökning

Det här kommandot blädrar igenom en mängd av specifierade värden när den verkställer och lägger till de värdena till ett annat kommando. Det har formen av:

command "<argument1>" "incrementvar <argument2> X Y Z"
  • X och Y representerar räckviderna av värdena du vill verkställa med <argument2>.
  • Z är den storleken av steg du vill göra medans du blädrar igenom räckviden.

Om du ville ha en värde räckvid 1 genom 10 och du ville utöka ditt värde med 2 kommandot var verkställt, skulle du göra X Y Z till 1 10 2. Sen varje gång den verkställer, <argument2> kommer verkställa med ett utökande värde av 2, 4, 6, 8, 10, 2, 4, 6, 8, 10... och så vidare.

Här är ett riktigt exempel av ötökning i verk:

bind "n" "incrementvar net_graphpos 1 3 1"

Det här binder nyckeln "n" till att blädra i 3 tillgängliga net_graph positioner.

+ och - kommandon

Dessa kommandon har två förmågor. När den anknutna knappen är bunden, verkställs +command och fortsätter att verkställa. När knappen är släppt, så verkställer -command och fortsätter att verkställa.

Exempel:

bind "c" "+duck"

Det här +command är bundet till "c" so när den än är nertryckt, duckar spelaren. När knappen släpps, +duck är utbytt till -duck och spelaren slutar att ducka.

I stort sett, om ett kommando eller motsvarande är bunden till en nyckel, säger a + till spelet att köra kommandot så länge knappen är nerhålld. Likgiltigen, om ett kommando eller motsvarande är bunden till en nyckel, säger a - till spelet att köra kommandot när knappen är släppt.

Om ett motsvarande är definerat med ett + framför det, kommer motsvarande bli körd när den nyckeln är nertryckt, som nyckeln är nertryckt. - kommandot kommer sedan bli körd när nyckeln är släppt.

Vänta Kommando

Om du vill att spelet ska fördröja en viss tidsperiod medans en motsvarande, eller om du vill undvika att klienten krashar orsakad genom att verkställa kommandon för snabbt, använd wait kommandot (vänta på svenska).

Wait säger till spelet att fördröja nästa kommandot i scripten med en fysisk bild, någonting som en full vändning inom TF2 Regler. Den accepterar värden som "wait 50" vilket säger till spelet att vänta femtio bilder innan motsvarandet fortsätter. "wait 100" är ungefär en sekund på en 100 FPS (bilder per sekund) server. Endel servrar gör så att man inte kan använda wait kommandot. Medans man spelar på dom, kommer wait kommandon bli ignorerade, som orsakar en del script ömtåliga. Ett Script innehållande av en obestämbar ögla bortdragen av wait kommandon kommer alltid omedelbart hänga på användningen av såna servrar.

Aliases

En alias (motsvarande) är som en variabel som tillägger en rad av kommandon som kan bli verkställd som en grupp. En enkel alias kommer ta formen:

alias "aliasname" "command1; command2; command3"

Du kan sedan verkställa dem kommandon så här:

bind "key" "aliasname"

När än en nyckel är nertryckt, command1, command2, och command3 är verkställda i ordning.

Komplexa Aliases

Alias kan verkställa vilka kommandon som helst vilket inkluderar Alias. Utöver det, kan en alias verkställa en alias fär att omdefinera den aliasens kommando. Det här tillåter dig att bläddra genom alias. Här är ett väldigt enkelt exempel:

bind "key" namescroll
alias namescroll "firstname"
alias firstname "setinfo name "First_name"; alias namescroll secondname"
alias secondname "setinfo name "Second_name"; alias namescroll thirdname"
alias thirdname "setinfo name "Third-name"; alias namescroll firstname"

Det här är svårt att läsa, så Jag bryter ner det.

  • Den första raden binder "key" till en alias "namescroll" vilket vi ännu har att definera.
  • Den andra raden skapar aliasen "namescroll" vilket verkställer kommandot "firstname"
  • Den tredje raden definerar "firstname" aliasen som två kommandon:
  • Det första kommandot ställer in ditt i-spel namn "First_name"
  • Det andra kommandot omdefinerar aliasen "namescroll" som en alias för att verkställa aliasen "secondname"
  • Den fjärde raden definerar "secondname" i samma stil. Ett anorlunda i-spel namn är inställt, och sedan är "namescroll" omdefinerad till en annan alias "thirdname"
  • Femte raden definerar "thirdname" precis som dem två före den, men med en vridning. Den omdefinerar "namescroll" aliasen som verkställer "firstname" aliasen.

Det här färdigställer en ögla. Varje tryck av en nyckel verkställer ett kommando och omdefinerar aliasen bunden till nyckeln, så när den kommer att verkställa ett annat kommando när den blir tryckt igen. Om det inte fanns en ögla skulle aliasen "namescroll" inte alltid ha en alias för verkställning med varje nyckeltryck.

Alias Öglor

Alias kan bli använt som ett bindeorg med Wait kommandot för att skapa loopande alias.


Varning:Att inte ha wait i plats, eller vara på en server som har wait ofungerande kommer att orsaka det här exemplet för TF2 att krasha.
alias "Loop" "echo Looping every 150 ticks.;wait 150;Loop"
Loop

Låt oss bryta ned det här i komponenter:
Line 1
Ekot visar ett meddelande till konsolen, bara så att du vet att det fungerar.
wait gör att den väntar 150 klick mellan upprepning
Öglan kallar aliasen igen, som omstartar vid ekot.

Line 2
Ögla startar den loopande aliasen.

Du kan också skapa öglor genom alias kommandon, som det här exemplet:

alias "Loop1" "echo Loop 1;wait 150;Loop2"
alias "Loop2" "echo Loop 2;wait 150;Loop1"

Loop1 kallar på Loop2 vilket i sin tur kallar på Loop1, osv...
Den här metoden kan också bli använd för att bryta en ögla utan att rensa den loopande aliasen:

alias "Loop1" "echo Loop1;wait 150;Loop2"
alias "Loop2" "Loop1"

Det här skulle skapa en ögla, sen

alias "Loop2"

bryta den, genom att rensa Loop2 aliasen.

Du kan använda dessa för knapp tryck (Via +/- prefix täckt tidigare) så här:

alias "Loop2" "Loop1"
alias "Loop1" "echo Loop1;wait 150;Loop2"
alias "+Loop" "alias Loop2 Loop1;Loop2"
alias "-Loop" "alias Loop2"
bind "<Key>" "+Loop"

För att göra det den gör:
Gör Loop2 peka till Loop1
Gör Loop1 eka 'Loop1' till konsolen, wait 150, sen kalla på Loop2
gör +Loop peka Loop2 till Loop1 och kör Loop2
make -Loop clear Loop2's link, breaking the loop

Användbara Script Kommandon

Det finns bokstavligen hundratals olika argument för ditt script som kan få dem att göra nästan vad som helst. Här är en lista över att få av dem.

Röst Kommandon

Röst Kommando är akten att göra din klass säga något, det här är oftast använd i spel som ett sätt att signalera information eller bara vara löjlig.

Röst kommandon är använda med följande syntax;

voicemenu <menu_number> <phrase_number>

Där <menu_number> är en av de tre menyerna där röst kommandon är utspridda genom <phrase_number> är en av de 7 röst kommandon som är inom varje <menu_number> meny.

Argument för röstkommandon

  • 0 <phrase_number>
    0: Medic
    1: Thanks
    2: Go
    3: Move Up
    4: Flank Left
    5: Flank Right
    6: Yes
    7: No
  • 1 <phrase_number>
    0: Incoming
    1: Cloaked Spy
    2: Sentry Ahead
    3: Teleporter Here
    4: Dispenser Here
    5: Sentry Here
    6: Activate ÜberCharge
    7: (Medic Only) ÜberCharge Ready
  • 2 <phrase_number>
    0: Help
    1: Battlecry
    2: Cheers
    3: Jeers
    4: Positive
    5: Negative
    6: Nice Shot
    7: Good Job

Snabba Spion förklädnader

Med de här snabba och enkla kommandon kan du binda nycklar till specifierade förklädnader istället för att vara tvungen att bläddra igenom förklädnader menyn.

Förklädnader kommandon är använda med följande syntax;

disguise <class_number> <team_number>

Där <class_number> är numret på klassen du önskar förklä dig som, och <team_number> numret på laget du vill förklä dig som.

Argument för förklädnings kommandon

  • 1 <class_number>
    1: Scout
    2: Sniper
    3: Soldier
    4: Demoman
    5: Medic
    6: Heavy
    7: Pyro
    8: Spy
    9: Engineer
  • 2 <team_number>
    1: BLU team
    2: RED team
    -1: Opposite team
    -2: Same team

Anteckningsvärda script

Det finns flera anteckningsvärda script som har påverkat spelupplevelsen på ett bra sett. Några av dessa är borta orsakade av uppdateringar. Andra återstår funktionerande.

Uppdaterade Script

Pistol Script

Från början, kunde Pistolen bli avfyrad nästan så snabbt som människohanden kunde trycka nyckeln. När man insett det skapade endel personer script som gjorde att pistolen kunde avfyras så snabbt som möjligt så länge du höll ner avfyrnings knappen. Det här tillät inte bara Spanaren och Teknikern att avfyra snabbare än de flesta kan hantera, men det var enklare att sikta för att du inte slog några tangenter.

Så småningom planade Valve spelfältet. Dem uppdaterade Pistolen till att ha en lägre max avfyrnings hastighet, vilket var uppnått när en spelare höll ner avfyrnings nyckeln. Pistol scriptet var inte längre nödvändigt.

Targe Vänd Script

Ursprungligen brukade tangentbord kommandonen som vänder din vypunkt vänster och höger inte behandlade likadant som musens kommandon. Chargin' Targen var det första vapnet att skapa en begränsning på hur snabbt du kunde vända din vypunkt, Valve satte därför en gräns för mus vänd-hastigheten men glömde bort att lägga till samma begränsning för tangentbordets kommando som resulterade i samma inverkan.

Spelare gjore script som omband nycklarna när spelare blev rusade mot vilket tillät dem att vända i full fart. De mest sofistikerade exempel temporärt omband musens x-axis inmatning till tangentbordets vänd kommandon, sen obinda dem när spelaren hade nått slutet av rusningen/chargen. eventually Till slutningsvis uppdaterade Valve tangentbordets vänd kommandon som dom gjorde med mus kommandon, därmed tilldela ingen fördel till individerna som använde scriptet.

Dock, det är ännu möjligt att skriva ett Script som ändrar Känsligheten mellan galet höga värden när rusning och normala värden när spelaren utför en attack.

Luft Huknings Script

Ursprungligen kunde du huka så många gånger du ville i ett hopp. Genom att binda ett script till huka och ohuka så hastigt som möjligt, kunde du exploatera motorn och göra det svårt att ordentligt registrera skott på hoppande mål.

Valve uppdaterade det så du bara kunde huka två gånger i ett hopp.

Nuvarande Script

Vapen Gömning Script

Det finns ett stort nummer av script vilka kan ändra vapnets synlighet beroende på vilken vapen plats som är vald. Spelare gör ofta sina vapen osynliga för att rensa skärmen, men gör varor som slåvapen, PDAer, klockor och så vidare synliga för att dessa modeler visar viktig information. Som exempel, Spionen stöder tungt på hans synliga model som bestämmer när han är osynlig, när hans osynlighet är störd, och när Dödsringaren aktiverar. Andra Klasser använder slagvapen animationer för att avgöra när deras attack kommer att träffa.

Vaktgevär Hopp Script

Ända sen Tekniker updateringen, Engineers have been able to pack up and carry their Vaktgevär. Samtidigt, Grälmakaren tillät Tekniker att Vaktgevär hoppa med deras Vaktgevär raketer. Med extremt snabb inmatning, det var upptäckt att en spelare kunde Vaktgevärshoppa och lyckat packa upp deras Vaktgevär före dem var iväg kastade.

Medans en människa kan repetera det här, är det svårt och ibland inkonsekvent. Några spelare gjorde script vilka skulle pålitligt verkställa kommanon i rätt ordning vid rätt hastighet. Dem kan göra en vaktgevärshoppning medans bärandes deras vaktgevär varje gång.

Revolvmannen Script

Eftersom det kan vara besvärligt att förstöra sedan återbygga en Kamp Mini-Vaktgevär i hettan av striden genom PDA:n, några spelare har Scriptat destruktion och återbyggningen av deras Mini-Vaktgevär med klicket av en eller två mus knappar.

Känslighet- och Kontrol Script

Endel spelare föredrar olika känslighet- och kontrol scheman fär några klasser (som exempel, byta från Spanare, vilket kräver hög känslighet för snabb vändning och manövring, till Krypskytt, vilket främjar låg känslighet för precis siktning så att en hand darr oavsiktligt inte förstör din siktning för mycket). Dessa script ändrar deras kontrol scheman och mus inställningar per klass eller även per vapen baser.

Se Även

Externa Länkar