> LeekScript-veiledning
Du koder AI-en din som en velsignet. Linjene ruller, og navnene på... Nei vent, det har vi allerede sett. Denne gangen, ingen flere røde meldinger i editoren, kompilatoren har ingen flere hemmeligheter for deg. Det er duell! Du observerer purren i deres naturlige miljø, som Steve Irwin i grønnsakshagen. De går rundt, de boltrer seg, de maskinpistoler hverandre, de ser glade ut!
De mistenker ikke at det lurer formidable fiender i skyggene...
Ahhh en klassiker!! Dette er ikke nødvendigvis en AI-feil, men en overskridelse av maksimalt antall operasjoner (OPERATIONS_LIMIT satt til 20 millioner operasjoner). Sjekk ut Operations-veiledningene for en detaljert artikkel.
I dette tilfellet kan vi satse på en loop uten en stoppbetingelse, som kalles en uendelig loop (se The Loops).
Et lite eksempel? Her er en liten kode for å bruke våpenet på motstanderen så lenge vi har PT: 
Dumt ikke sant? Vel nei ! En feil vises under utførelse: Grunnleggende, linje 13 ▶ AI-avbrudd: Utførelsesfeil: For mange operasjoner utført for denne runden
Hva kan være problemet... Vel, ganske enkelt, så lenge getTP()-betingelsen > 0 vil løkken kjøres. Men hva vil skje når vi ikke kan bruke våpenet? Vel, vi kommer ikke til å miste noen PT! Og tilstanden vil alltid være sann! Så vi har en sløyfe som vil kjøre ad infinitiiiiiiiiiiiiiiiiiii.
For å korrigere dette tilfellet, kan vi teste returen av 'useWeapon'-funksjonen og analysere resultatet.
Mulig løsning:
Størrelse spiller ingen rolle!
Uten å lese AI-en din, ville jeg hatt vanskelig for å korrigere deg... Vi kan fortsatt sitere noen få muligheter:
lineOfSight-funksjonen en gang koster deg 15 operasjoner, å bruke den i 3 nestede løkker vil koste deg!Så denne gangen var jeg forsiktig, jeg la inn riktig antall parametere i funksjonen min. Så, ja, men du kan ikke sette hvilken som helst parameter i de opprinnelige funksjonene. Disse funksjonene krever visse inngangstyper. Hvis du prøver å bruke dem med feil parametere, vil du få et lignende resultat:
AI Basic, linje 14 ▶ Ukjent funksjon: useWeapon(function) AI Basic, linje 14 ▶ Ukjent funksjon: useWeapon(null)
Her tar funksjonen "bruk våpen" et tallargument (en konstant "WEAPON_...") og vi prøver å gi den en funksjon, eller en "null". Tydeligvis svir generatoren mot oss.
AI Basic, linje 11 ▶ Ukjent funksjon: sort(nummer, null) sort forventer en matrise som første parameter, og vi prøver å gi den et tall.
Basic AI, linje 8 ▶ Ukjent funksjon: getNearestEnemyTo(array) getNearestEnemyTo tar en enhets-ID som en parameter, ikke en matrise.
Denne feilen kan også oppstå på grunn av manglende parenteser:
Her lagrer vi «getNearestEnemy»-funksjonen i «fiende»-variabelen, i stedet for resultatet (se Functions. Fix: var enemy = getNearestEnemy();
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.