> LeekScript-vejledning
Vi skal nu tale om funktionerne i LeekScript!
Funktioner er et væsentligt aspekt af programmering. De giver dig mulighed for at huske en række handlinger, som du kan genbruge, når du vil.
På Leek Wars kan vi skelne mellem to typer funktioner:
Vi vil kun tale om native funktioner for nu.
De oprindelige funktioner er de funktioner, som LeekScript stiller til rådighed for dig, det er dem, der vil give dig mulighed for at få en masse information om kampen. Det er også takket være dem, at du vil være i stand til at kontrollere din porres handlinger.
Funktioner er hurtigt genkendelige på deres syntaks:
funktionsnavn(parametre);
Du har allerede set dem i den grundlæggende AI under kapitlet om editoren. Som en påmindelse :
// Fire meget nyttige funktioner var enemy = getNearestEnemy(); setWeapon(WEAPON_PISTOL); moveMoward(fjende); brug Våben(fjende);
getNearestEnemy, setWeapon, moveToward og useWeapon er fire funktioner, som LeekScript gør tilgængelige for dig.
En minimal forståelse kan hjælpe med at forstå nytten af en funktion uden at skulle konsultere dokumentationen. Funktionsnavne er normalt selvforklarende og viser, hvad de bruges til.
Hvad er "afkastet" af en funktion? Det er ikke systematisk, men en funktion kan returnere information.
Dette er tilfældet i dette eksempel:
var enemy = getNearestEnemy();
Hvis du var opmærksom på det forrige kapitel, forstår du, at en "fjende"-variabel oprettes. Og samtidig tildeles den en værdi med lige-symbolet '='.
Men hvad er det præcist, der er tildelt ham? Det er her funktionen getNearestEnemy kommer ind. Denne funktion returnerer id'et for den nærmeste fjende.
Så når din porre vil udføre denne kode, kalder den getNearestEnemy-funktionen. Dette vil returnere identifikatoren for den nærmeste porre, som så vil blive gemt i "fjende"-variablen;
Hvis du er nysgerrig, kan du tilføje en debug:
var enemy = getNearestEnemy(); debug (fjende);
Hvis du kører denne kode i en 1v1-testkamp, bør du se tallet 1 eller 0. Porre-id'er i kamp er ikke andet end tal. For en kamp på 4 porrer vil disse blive nummereret fra 0 til 3.
Som du kan se, er debug en indbygget funktion i LeekScript. Du undrer dig måske over, hvorfor vi sætter variablen "fjende" i parentes? Vi kommer derhen.
Det er det, man kalder, hvad der står inden for parentesen: parametre. Disse små udyr er meget nyttige. Den handling, en funktion vil udføre, afhænger af dens parametre.
For at vende tilbage til fejlretning-funktionen, viser den en besked i kamploggene. Og denne besked, det er dig, der angiver dens indhold, takket være en parameter.
Hvis du giver værdien 5 i parameter til debug, vil meddelelsen være "5". Hvis du giver teksten "Jeg kan lide porresuppe" til debug, vil beskeden være "Jeg kan lide porresuppe".
Dette er, hvad der sker med disse funktioner:
var enemy = getNearestEnemy(); setWeapon(WEAPON_PISTOL); moveMoward(fjende); brug Våben(fjende);
setWeapon får din porre til at udstyre et våben. For at angive for ham, hvilket våben han skal udstyre, skal du videregive våbnets identifikator som en parameter. Her er det "WEAPON_PISTOL", det er en konstant, der betegner Pistol våbnet. Denne konstant svarer til tallet 37, pistolens id. Du kunne skrive 37 i stedet for WEAPON_PISTOL, det ville have samme effekt. Men brugen af konstanten gør koden mere forståelig og undgår at skulle huske identifikatorerne for hvert våben/chip.
moveToward giver dig mulighed for at flytte din porre mod en anden. Funktionen skal bruge id'et for en målporre til dette. Det er her du trækker din "fjende" variabel ud. Husk, at den nu indeholder ID'et på din nærmeste modstander. Hvis du overfører denne variabel til moveToward, vil du lede dig til den grimme porre.
Med useWeapon vil din porre prøve at skyde en porre. På samme måde fortæller du funktionen, at du vil skyde din fjende.
Nogle funktioner returnerer ikke en værdi, og de forventer heller ikke en. Men de er ikke ubrugelige!
For eksempel pause-funktionen. Det giver dig mulighed for at sætte kampen på pause, når du ser den. (Dette har ingen indflydelse på kampen, det er det samme som manuelt at trykke på "Pause"-knappen eller
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.