Skapande av spel sker genom en utvecklingsmiljö och ett enkelt skriptspråk.
En variabel är ett namn som innehåller ett värde. Variabler kan:
1) skrivas ut som en del i ett textstycke (se operation print).
2) jämföras med värden och varandra (se Flödeskontroll).
3) ställas in till olika värden.
Se nyckelordet unset för mer hur variabler beter sig.
När värdet av en variabel ska användas i ett sammanhang används §.
set color gul print apelsinen är §color§
En variabels värde kan används i set-kommandot.
set color blue set color2 §color§ print §color2§ #Ovansåtende skriver ut blue #OBS! Nedanstående sätter color2 till color, och inte till blue. #Namnet color tolkas inte som en variabel om inte § används i sammanhanget. set color blue set color2 color print §color2§
Men i if-satser används inte §§.
set color2 blue if color2 == blue print §color2§ end
Ett variabelnamn får bara innehålla bokstäver, siffror, understräck, och bindesträck.
Ett variabelnamn kan även innehålla de flesta andra karaktärer som parantes och punkt, men aldrig blanksteg.
Lokala variabler override globala,.
Functions-variabler override lokala och globala.
En variabel kan sättas till en textsträng. Textsträngen anges då i slutet och inga citatstecken behövs.
Följande fungerar på samma sätt.
Citatstecken ska användas om ett objekt innehåller flera ord med mellanslag i.
Rum och konversationer har id-namn och de används i scriptkoden.
Ovanstående kommando move flyttar spelaren till rummet med id-namn mitt_rum1.
När du redigerar ett rum finns en ruta där rummets id-namn står.
Objekt som spelaren får genom spelet och bär med sig. Kan användas på andra objekt i spelet.
Du ställer in inventarium genom att hantera särskilda variabler. Här läggs objektet vatten till.
set inv.vatten set inv.vatten.short med sand i set inv.vatten.prop (water)
Inv. Vatten. Prop står för vattnets egenskaper, se nyckelordet define.
Och du raderar dem med unset.
Enbart inv. Vatten behöver raderas så försvinner. Short, och. Properties också.
Flytta ett objekt till inventarium med rename-kommandot.
Scriptkod placeras i block och anropas därefter av systemet beroende på omständigheter.
Ett block börjar med ett blocknamn, och slutar med end.
act bok print Det är en tjock bok. end
Ovanstående block skriver ut print-texten när spelaren skriver se boken.
Flödeskontroll kan användas i alla block.
Kör kod för det aktuella rummet.
Körs när spelaren första gången startar spelet (set-kommandot körs), eller när reset-kommandot körs.
Använd det här blocket för att initiera variabler som behöver finnas precis från början i spelet.
I spelet: tala.
act tavla det är en fin tavla. end
act knapp du trycker på knappen end
use bok häst print Boken är skriven på hästspråk och hästen läser den flytande. end
use bok eld print Du vill inte kasta boken i elden. Boken kan vara bra att ha. end
Default error,.
Fundamental action error.
Variabler som har speciella förinställda värden.
Används i variabelnamn, representerar det nuvarande rummet.
Om rummet är rum1 ger [room]ljus ett variabelnamn som heter rum1ljus.
Bra i global kod som behöver definiera rumspecifika variabler.
Funktioner skapas i global-filen.
funktionsnamn funktionskod end
Anropas genom call.
Kan anropas från överallt där kod körs.
Funktioner stödjer argument.
funktionsnamn arg1 arg2 skriv ut §arg1§ och §arg2§ end
Anropas såhär.
Mittarg1 kan vara en variabel eller textrad,.
Textrader omges med "".
Ange # i början, som då betyder att textraden är kommentar och ignoreras av spelet.
Sätt en titel för det aktuella rummet.
Variables local to the current room.
Skriver ut en text för spelaren. Om inget anges på en kod-rad, då tolkas det som ett print-kommando.
look print hej end
Ovanstående skriver ut hej, precis som nedanstående.
look hej end
För att skriva ut variabler i texten:
Använd %objekt=text i spelet%.
Använd %go riktning=text i spelet%.
Du är i en gammal skog och en %pinne=pinne ligger på marken%, en %go v=stig leder åt väst%
Ovanstående skriver ut klickbar text i spelet.
look title Mitt rum print Här är det fint. end
Forcerar ett felmeddelande av antingen kategori 1 eller 2.
Initierar ett värde i en variabel om det inte redan är satt. Annars påverkas inte variabeln.
Uppmärksamma att citatstecken behövs inte runt textsträngen om limit-delen ej används.
Sätter varname till value.
Limit-tillägg kan användas.
Ovanstående begränsar variabeln till att enbart innehålla value1 och value2.
Förenklat syntax för att sätta flera värden.
set forest.väska .pf väskan .state open
Om raden inleds med punkt refererar det till det senaste namnet som blev satt. Resultatet ovan för. pf blir samma som ex:
Tar bort variabeln variable_name helt från systemet.
tar bort alla variabler namngivna med punkt efter ursprungsnamnet:
set forest hej set forest.var1.a x set forest.var1.b x set forest.var1.c.a x set forestx clear forest
Alla variabler tas bort utan forestx.
Syftet är att underlätta hantering av grupperade variabler.
Unset raderar även det som sätts med limit i set.
Gör förkortningar möjliga.
alias forest.box.state fbs if fbs == open # ... end
Förkortningarna är lokala till den aktuella kod-filen.
Aliaskommandot måste vara angivet innan den kod som använder den aktuella förkortningen.
Ange alla aliaskommandon längst upp i filen, förslagsvis.
Fungerar i alla kod-filer.
Fungerar även att göra förkortningar / alias för vanliga textrader.
Efter ovanstående rad ersätts all användning av box i vanlig text med det som står inom citatstecken. Glöm inte citatstecken.
Sätter en rums-lokal variabel.
Local variables override globals.
Ändra namn på en variabler och alla dess undervariabler.
Ovanstående döper om, men om box1 har box1. Text kommer den att flyttas till box2. Text.
Samma som rename men en originalet bevaras.
Nollställer allt, precis som om spelaren började på spelet från början.
Prevent global from room-code, prevent room and global from inventory.
Stoppar även generell egenskapskod ex. (container).
Flytta spelaren till rumemt room_id.
Sätter variabeln var till ett slumptal mellan num1 och num2.
Ökar värdet i var med 1.
Minskar värdet i val med 1.
Stoppar programflödet för det aktuella blocket.
Anropa en konversation med id conv.
Används i konversations-kod, och representerar ett tillgängligt val.
Inledning på det block som choice med samma nummer leder till.
Avsluta konversationen.
Ej implementerad. Systemet mins vilka rum du vart i och skriver ut rummets namn i rutan Riktningar. Operationen ränsar den beskrivningen för rummet room_id.
En hel if-sats:
I ovanstående syntax-definition nämns flera-uttryck, och uttryck. De beskrivs:
flera-uttryck:
Satsen flera-uttryck bygger på uttryck som beskrivs:
uttryck:
Eller uttryck:
Variabeln är satt.
Variabeln är inte satt.
Du äger inte objektet i inventarium.
Du äger objektet i inventarium.
if var1 == 2 print var1 är satt till 2 end
If kan anges med enbart en variabel.
if var1 print var1 är satt end
Är sant om var1 är satt (med set, eller init, och clear tar bort en variabel).
Notset fungerar såhär (liksom notowned, och owned).
if var1 notset print var1 är inte satt end
set val 1 while val < 10 Detta är varv §val§ inc val end
Kod i rum-filen körs först, sedan global, och sist inventarium. Konversationsfiler körs bara när en konversation är igång.
Kod för konversationer. Se kommandot ed conv.
Kod för ett speciellt rum. Se kommandot ed room.
Global kod som kan nås från alla rum. Se kommandot ed glo.
Sådant som rör ditt inventarium, nås från alla rum. Se kommandot ed inv.
Planeringar som eventuellt återstår att verkställa.