JASS | |
---|---|
Språkklass |
manus , händelsestyrd |
Utförandetyp | tolkad |
Framträdde i | 2001 |
Författare | Blizzard underhållning |
Typ system | statisk |
Dialekter | vJASS , cJASS , ZINK |
JASS (engelska Just Another Scripting Syntax ) är ett händelsestyrt skriptprogrammeringsspråk skapat av Blizzard Entertainment . Används i spel som Warcraft 3 och Starcraft[ vad? ] .
I Warcraft III används JASS-skript för att styra spelvärldsobjekt och datormotståndare. Det ger dig nästan fullständig kontroll över spelet när du skapar anpassade scenarier för Warcraft III.
Spelet kommer med Warcraft III World Editor, som inkluderar ett grafiskt gränssnitt för att skriva skript i JASS.
På tematiska webbresurser kallas skript som gjorts i en standardutlösarredigerare kort - GUI . Tillsammans med "vänliga" GUI- utlösare finns deras textversioner - i form av skript på JASS-språket, som har avancerade möjligheter jämfört med vanliga "editor"-triggers.
World Editor kommer bara med en grundläggande JASS-tolk och -redigerare, som saknar syntaxmarkering , vilket gör det svårt att arbeta med. Detta är en av huvudorsakerna till att nya Warcraft III-moddare ogillar språket.
Utöver standardredigeraren finns det speciella program som gör det lättare att arbeta med Jass- skript . Dessa inkluderar JASS Craft (tidigare JASS Shop Pro). Med det här programmet kan du skapa mallar för triggers, funktioner och optimera kod . Dessutom har den markering och en inbyggd syntaxkontroll som låter dig testa skriptet för fel i farten.
Sedan 2007, bland Warcraft III modders, har ett hobbytillägg för Warcraft III-redigeraren, JASS New Gen Pack, blivit populärt. Den innehåller, bland många andra användbara funktioner, syntaxmarkering och kontroll, samt en alternativ JASS-språkkompilator med stöd för vJASS- och cJASS-dialekter .
JASS-skriptfiler kan ha filtilläggen .j eller .ai.
JASS-språket är ett funktionsspråk. Funktioner kan vara användardefinierade och inbyggda (från engelska native-native). Anpassade funktioner kan deklareras av kartmakaren (mapmaker) själv, och genereras även automatiskt av världsredigeraren i vissa fall (speciellt anpassade funktioner innehåller villkor och åtgärder för utlösare, loopar och operatorer if then else. Sådana funktioner lagras i war3map. j-fil i kartarkivet. Native -funktioner skapas av utvecklarna, kan inte deklareras av användaren och listas i de två JASS-huvudfilerna - common.j och common.ai i Warcraft III-spelarkiven.(Däremot finns det är ett sätt att lägga till dina egna inbyggda funktioner till Warcraft med hjälp av ett extra bibliotek.)
Det finns också en uppsättning anpassade funktioner skapade av utvecklarna - blizzard.j, som är föremål för kritik från många karttillverkare för många läckor och onödiga med individuella funktioner. Ett levande exempel på detta är funktioner med en enkel permutation av parametrar som inte har en semantisk belastning, men som tar tid att exekvera dem.
Warcraft III-kartan är i samma MPQ-format som de andra arkiven i spelet och har tillägget .w3m eller .w3x. Kartarkivet innehåller alltid kartskriptfilen - war3map.j, men kan även innehålla flera filer med .ai-tillägg om icke-standardiserad artificiell intelligens av datormotståndare används.
Informationen i war3map.j-filen skrivs i det ögonblick kartan sparas i editorn, när språkkompilatorn konverterar data från triggerfilen (war3map.wtg) till den slutliga JASS-koden som kommer att användas av spelet.
War3map.wtg-filen i kartarkivet innehåller data om GUI-utlösare och är endast nödvändig för redigeraren. Utan det kommer det att vara omöjligt att redigera kartkoden med standardredigeringsverktyg.
Exempelkod för att visa "Hello, World!" på Jass:
funktion HelloWorld tar spelare p returnerar ingenting ring DisplayTextToPlayer(p, 0, 0, "Hello World!") slutfunktionSamma, men i cJass:
void HelloWorld (spelare p) { DisplayTextToPlayer(p, 0, 0, "Hej världen!") }HelloWorld-funktionen tar en lokal parameter av typen "spelare" som heter "p" och returnerar ingenting ("ingenting"). Den inbyggda standardfunktionen "DisplayTextToPlayer" anropas i kroppen. Den här funktionen specificerar indexet (en heltalsvariabel) för nätverksspelaren som meddelandet kommer att skickas till; skärmkoordinater (x, y; variabler av typen real) — positionen för meddelanderaden.
I motsats till att använda den grafiska triggereditorn i World Editor , ger karttillverkaren ett antal fördelar att skriva kartkod i JASS: