> LeekScript handledning
Vi ska nu prata om funktionerna i LeekScript!
Funktioner är en viktig aspekt av programmering. De låter dig memorera en rad åtgärder som du kan återanvända när du vill.
På Leek Wars kan vi särskilja två typer av funktioner:
– De personliga funktionerna, det vill säga de som man ska skapa.
Vi kommer bara att prata om inbyggda funktioner för tillfället.
De ursprungliga funktionerna är de funktioner som LeekScript gör tillgängliga för dig, de är de som gör att du kan få mycket information om kampen. Det är också tack vare dem som du kommer att kunna kontrollera hur din purjolök fungerar.
Funktioner känns snabbt igen på sin syntax:
funktionsnamn(parametrar);
Du har redan sett dem i den grundläggande AI under kapitlet om Editor. Som en påminnelse :
// Fyra mycket användbara funktioner var enemy = getNearestEnemy(); setWeapon(WEAPON_PISTOL); moveToward(fiende); använd Vapen(fiende);
getNearestEnemy, setWeapon, moveToward och useWeapon är fyra funktioner som LeekScript gör tillgängliga för dig.
En minimal förståelse kan hjälpa till att förstå användbarheten av en funktion utan att behöva konsultera dokumentationen. Funktionsnamn är vanligtvis självförklarande och visar vad de används till.
Vad är "avkastningen" av en funktion? Det är inte systematiskt, men en funktion kan returnera information.
Detta är fallet i det här exemplet:
var enemy = getNearestEnemy();
Om du uppmärksammade föregående kapitel förstår du att en "fiende"-variabel skapas. Och samtidigt tilldelas den ett värde med lika-symbolen '='.
Men exakt vad är tilldelat honom? Det är här funktionen getNearestEnemy kommer in. Denna funktion returerar id:t för närmaste fiende.
Så när din purjolök kör den här koden anropar den funktionen getNearestEnemy. Detta kommer att returnera identifieraren för den närmaste purjolöken som sedan kommer att lagras i variabeln "fiende";
Om du är nyfiken kan du lägga till en debug:
var enemy = getNearestEnemy(); debug (fiende);
Om du kör den här koden i en 1v1-testkamp bör du se siffran 1 eller 0. Purjolök-ID i strid är inget annat än siffror. För en kamp på 4 purjolök skulle dessa numreras från 0 till 3.
Som du kan se är debug en inbyggd funktion i LeekScript. Du kanske undrar varför vi sätter variabeln "fienden" inom parentes? Vi kommer dit.
Det är vad man kallar det som står inom parentesen: parametrar. Dessa små bestar är mycket användbara. Åtgärden en funktion kommer att utföra beror på dess parametrar.
För att återgå till debug-funktionen visar den ett meddelande i stridsloggarna. Och detta meddelande, det är du som anger dess innehåll, tack vare en parameter.
Om du ger värdet 5 i parametern till debug, blir meddelandet "5". Om du ger texten "Jag gillar purjolökssoppa" till felsöka blir meddelandet "Jag gillar purjolökssoppa".
Detta är vad som händer med dessa funktioner:
var enemy = getNearestEnemy(); setWeapon(WEAPON_PISTOL); moveToward(fiende); använd Vapen(fiende);
setWeapon får din purjolök att utrusta ett vapen. För att indikera för honom vilket vapen han måste utrusta, måste du skicka vapnets identifierare som en parameter. Här är det "WEAPON_PISTOL", det är en konstant som betecknar Pistol-vapnet. Denna konstant motsvarar siffran 37, pistolens identifierare. Du kan skriva 37 istället för WEAPON_PISTOL, det skulle ha samma effekt. Men att använda konstanten gör koden mer förståelig, och man slipper memorera identifierarna för varje vapen/chip.
moveToward låter dig flytta din purjolök mot en annan. Funktionen behöver id för en målpurjolök för detta. Det är här du drar ut din "fiende" variabel. Kom ihåg att den nu innehåller ID för din närmaste motståndare. Om du skickar denna variabel till moveToward kommer du till den där otäcka purjolöken.
Med useWeapon kommer din purjolök att försöka skjuta en purjolök. På samma sätt säger du till funktionen att du vill skjuta din fiende.
Vissa funktioner returnerar inget värde och förväntar sig inte heller något. Men de är inte värdelösa!
Till exempel funktionen paus. Det låter dig pausa kampen när du ser den. (Det har ingen inverkan på kampen, det är samma sak som att manuellt trycka på "Paus"-knappen eller
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.