> LeekScript handledning
I ett program är det viktigaste att strukturera dess kod väl. För det har du lärt dig användningen av kommentarer och det är ungefär allt... Men vi kommer snabbt att ändra på det med funktioner, en av de viktigaste begreppen inom programmering och du kommer snabbt att förstå. Du har redan stött på och till och med använt dem i kapitlet om Native Functions.
En funktion är en sekvens av instruktioner, inget mer. Så ingen mer kodduplicering, anrop bara funktionen som kommer att utföra dessa instruktioner. För att göra funktionerna mer mångsidiga kan du ge dem parametrar som purjolöken du vill träffa, antalet återstående MP för denna tur, etc. Dessutom kan funktionen returnera ett värde som en array med alla rutor tillgängliga för vår purjolök. Här är prototypen, det vill säga signaturen, för en funktion:
NomDeLaFunction ( parameter1, parameter2, ..., parameterN ): Return
Prototypen är beskrivningen av funktionen: dess namn, dess retur om det finns en och dess parametrar som också är valfria. Definitionen av en funktion är den uppsättning instruktioner som finns i den. Alla prototyper av de inbyggda funktionerna är tillgängliga i dokumentationen. Till vänster, i listan över funktioner sorterade efter tema, om vi väljer "UseWeapon" i kategorin Vapen, hittar vi detta: !UseWeapon-Mod
När du anropar en funktion pausar "huvudprogrammet" för att köra programmet som är lagrat i funktionen. Sedan i slutet av den här funktionen återupptas 'huvudprogrammet' där det slutade.
Vi pratar även om deklaration för funktioner. Faktum är att LS erbjuder inbyggda funktioner redo att använda som "getNearest Enemy / useWeapon / ...". Men det går att skapa en själv. Här är syntaxen att använda:
function FunctionName ( parameter1, parameter2, ..., parameterN ) { /* Instruktionerna */ }
Det är inte möjligt att göra allt i en funktion: deklarationen av en ny funktion såväl som deklarationen av en global variabel är förbjudna!
För att vara mer talande, kommer vi att skapa en mycket enkel funktion, dess syfte kommer att vara att komma närmare mitten av kartan, att lansera ett sköldchip och ett healchip. Här är dess prototyp: (Observera att prototypen inte ska placeras i koden, förutom i en kommentar för att förklara din funktion)
ArmorAndCare()
Inget kan verkligen vara enklare, vår funktion tar inga parametrar och returnerar ingenting!
Det saknas fortfarande en definition här:
function ArmorAndCare(){ moveTowardCell(306); useChip(CHIP_ARMOR, getEntity()); useChip(CHIP_CURE, getEntity()); }
För att anropa funktionen är den som de andra:
ArmorAndCare(); // Kom närmare mitten av kartan och starta sedan ARMOR och CURE
Viktig anmärkning, en funktion kan inte komma åt externa variabler förutom globala. Man måste tänka sig att när man anropar funktionen så "lever" den i sin egen värld och att det enda den har tillgång till är globala variabler och andra funktioner.
För att illustrera systemet med parametrar och funktionsreturer tar vi det här exemplet:
// Prototyp: getCellDistanceTo(leek): (Number) Avstånd mellan min purjolök och den i parametern function getCellDistanceTo(purjolök){ return getCellDistance(getCell(), getCell(purjolök)); }
Enligt prototypen tar funktionen en purjolök som parameter (dess ID), och returnerar avståndet mellan den och sin egen purjolök. Listan över parametrar är (nästan) oändlig, separera bara varje parameter med ett kommatecken. Returen av funktionen görs med nyckelordet 'return'. I det här exemplet returnerar funktionen 'getCellDistance' ett tal som vi returnerar direkt. När funktionen stöter på en "retur", stannar den och återupptas vid punkten för funktionsanropet. För dem som är intresserade kallas principen för att minska antalet parametrar för en funktion 'curr'
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.