DeutschEnglishDutchFrench
Home Nieuws Onze wereld Gemeenschap
Downloads Arindal Account Hulp & ondersteuning
Introductie
Macro's
F.A.Q.
Regels
Contact
Credits
Zoek
Disclaimer
Doneer
Arindal Macro Instructies

gebaseerd op "Clan Lord Macro Instructies" door DeltaTao

Inhoudsopgave

Algemene Informatie
Macro Typen
Attributen
Variabelen
Commando's

Algemene Informatie

Verschillen tussen Mac en Windows Macro Files

Omdat de macro-taal oorspronkelijk voor de Macintosh is gemaakt, zullen de meeste macro-files die op internet te vinden zijn in Mac-format (Mac Roman) zijn. Voor de Windows-client moeten echter de files in de UTF-8 codering staan.

Om de overgang naar een nieuwe codering te vergemakkelijken bevat de Windows-client een eenvoudige macro-vertaler die de oude Mac Roman macros, die bijna niet te editen zijn onder Windows, naar UTF-8 omzet (ga naar Opties -> Converteer Mac Macro).

In Windows XP kan je de macro direct openen, selecteer "bewaar als", selecteer het veld gelabeld "codering" en kies daar "UTF-8" waarna alles zou moeten werken.

In het geval dat je niet van plan bent om je de oude Mac macro's te editen, volstaat het om deze files de .mac extensie te geven. — deze worden dan gewoon als Mac Roman gelezen.

Hoe Arindal Macro files laadt

Wanneer je een spel begint of de optie "Herlaadt macro's" kiest, laadt Arindal het macro file. Arindal zal het file inladen dat dezelfde naam als je karakter heeft uit je macro's bestandsmap. Als de file niet bestaat, wordt er een aangemaakt. tevens worden dan de macro bestandsmap en een bestand genaamd "Default" aangemaakt. Je kan Arindal vertellen om andere bestanden uit de macro bestandsmap te laden door een regel als volgt toe te voegen:

include "Default"
include "Item Macros"

Deze opdracht laadt de andere file alsof het precies op de plek staat waar het "include" commando staat.

Macro Declaraties

Een macro bestaat uit een "trigger" die aangeeft wanneer hij moet worden uitgevoerd, en "commando's" die definiëren wat er moet gebeuren. Er zijn twee manieren om een macro te declareren. Als je meer dan één commando wilt gebruiken moet je de lange vorm kiezen, maar bij slechts één commando kan je beide vormen gebruiken.

KORTE VORM

trigger commando

LANGE VORM

trigger
{
commando
commando
commando
(zo veel commando's als je wilt, 1 per regel)
}

Uitvoering controleren

Wanneer een macro uitgevoerd wordt, zal het tekst-invoer vakje een dikke rand laten zien. Het typen van control-escape (op de Mac) of shift-escape (Windows en Java) stopt alle lopende macro's.Er kunnen meerdere macro's tegelijkertijd actief zijn. Er kunnen ook omgevingsvariabelen gebruikt worden om een macro te besturen. Zie hiervoor de sectie Variabelen hieronder.

Escape Characters

Om de speciale lettertekens die bepalen hoe Arindal een macro laadt in een expressie te gebruiken moet er een backslash (\) vóór worden geplaatst. Vaak gebruikte zijn:

\\ backslash
\" dubbele aanhalingstekens
\' apostrof (enkel aanhalingsteken)
\r return

NOOT: Wanneer je een commando in Arindal typt kan je beginnen met een gewone schuine streep of een backslash: / of \ werken beiden. Echter, in een macro MOET je '/' kiezen: gebruik "/action" NIET "\action"

Commentaar

Elke regel die begint met // wordt beschouwd als commentaar en wordt genegeerd.

// Dit is commentaar.

Elke tekst tussen /* en */ is is ook commentaar. Dit soort commentaar kan meerdere regels beslaan.

/*
Dit is een lang commentaar
dat meer dan één regel in beslag neemt.
*/

Macro typen

Expressionele Macro's

"expressie" (de expressie tussen aanhalingstekens - hoofdletter gevoelig)

Deze worden getriggerd als je op de return toets drukt, waarna de macro wordt uitgevoerd. Een expressie met spaties erin werkt niet als trigger omdat alleen het eerste woord van de regel wordt gebruikt om te kijken of het hetzelfde is.

Voorbeelden:

"lol" "/action lacht tot de tranen hem over de wangen lopen.\r"

"spring" "/action springt handig over " @text ".\r"

"grvrouw"
{
"Hallo schone dame "
@text
"!\r"
}

Vervangings Macro's

'vervangtekst' (het woord dat vervangen moet worden tussen enkele aanhalingstekens - hoofdlettergevoelig)

Deze worden getriggerd terwijl je typt en een toets indrukt die geen letter of cijfer is, en de trigger het laatste woord voor de cursor is. Als je de return indrukt wordt het laatste woord van de regel gecontroleerd op de trigger. Je kan een spatie of een Return typen zonder te triggeren door de control toets ingedrukt te houden terwijl je ze typt. Vervangings macro's eindigen direct, dus je kan geen commando's gebruiken die een vertraging veroorzaken en ook geen return-tekens (\r). Een goed gebruik van vervangings macro's is voor afkortingen die zichzelf automatisch voluit schrijven zoals te zien in de eerste twee voorbeelden hier onder:

Voorbeelden:

'OC' "Orga Camp"
'ELF' "E\'las Loth\'mon Ferindril"

'hi'
{
random
"H\'lo"
or
"Gegroet"
or
"Goedendag"
or
"Goedemorgen"
end random
}

Toets Macro's

toets
modifier-toets
modifier1-modifier2-toets
(de gekozen toets kan met zo veel modifiers al gewenst gedefiniëerd worden)

Toets macro's worden getriggerd door een speciale toetsencombinatie. Als een toetsencombinatie normaal iets zou doen maar je hebt er een macro op gedefiniëerd, dan wordt de macro uitgevoerd in plaats van de normale actie. Een command-p macro bijvoorbeeld staat boven het Commando's menu "Trek" dat normaal gesproken aan deze toetsencombinatie is toebedeeld.

Voor de meeste toetsen geldt dat de toetsnaam het letterteken is dat je ziet als je het typt, maar er zijn er een paar met aparte namen:

Keys
f1 - f15, escape, minus, delete, tab, return, space, help, home, undo, del, end, pageup, pagedown, up, down, left, right, clear, enter, click

Modifiers
command, control, numpad, option, shift

Option Toets (alleen op Macintosh)
Het gebruik van de option modifier me letters is wat lastig omdat het typen van option-letter de letter meestal veranderd. Bijvoorbeeld, op de meeste Amerikaanse systemen en toetsenborden krijg je na het typen van option-s het letterteken ß. Dus om option-s als macro toets te gebruiken moet je het option-s letterteken gebruiken in de macrodefinitie. Dus, macro's die zo worden gedefiniëerd laten de tekst "dit werkt" zien als je op option-s drukt:

option-s "dit werkt niet"
option-ß "dit werkt"

Noot : In de Windows client is dit probleem verholpen en werkt 'option-s' enzovoorts zoals verwacht kan worden.

De "klik" Toetsen
De "klik" toets zorgt ervoor dat je een macro kan koppelen aan het klikken op een speler met een modefier combinatie. De macro begint wanneer je op een speler in het speelvenster klikt, of wanneer je op een speler in de spelerslijst klikt. De enige uitzondering is dat macro's met een kale klik (zonder modefier) niet uitgevoerd kunnen worden door op de spelerslijst te klikken (dit zou namelijk verhinderen dat je het spelersvenster zou kunnen gebruiken).

Alleen voor Windows, Java en OS X: Als je een muis met meerdere knoppen hebt, kan je ook de namen "click2", "click3", enzovoorts gebruiken. Deze worden getriggerd als je de corresponderende muisknop indrukt. Het kan zijn dat je wat moet experimenteren om uit te vinden welke namen voor welke knoppen op je muis werken. "Click2" is bijna altijd de tweede of rechter muisknop, maar verder is de volgorde hardwarematig bepaald. "Right-click" staat gelijk aan "click2".

Voorbeelden:

f1 "/action zwaait met zijn staart.\r"

command-m "/give " @selplayer.simple_name " 1\r"

shift-enter "/action " @text "\r"

command-option-µ "/pull " @selplayer.simple_name "\r"
// Moet µ zijn, en niet m, omdat de option toets word gebruikt (Mac)

command-control-numpad-option-shift-minus "BIER!\r"

control-option-click
{
if @click.name != ""
"Ga uit de weg " @click.name "!\r"
end if
}

De "muiswiel" Toetsen
Alleen voor Windows, Java and OS X: Als je een muis met een scrollwiel hebt, kan je macro's schrijven die worden getriggerd door het bewegen van het wiel. Als je een macro toewijst aan de "wheelup" pseudo-toets, wordt deze getriggerd als je omhoog draait; "wheeldown" werkt de andere kant op. Je kan ook macro's toewijzen aan "wheelleft" en "wheelright", maar deze werken alleen als je (a): echt een horizontaal muiswiel hebt, of (b) als je OS X 10.2 of hoger gebruikt, en je de shift-toets ingedrukt houdt terwijl je het gewone (vertikale) wieltje draait.

Functie Macro's

trigger (gewoon een woord dat de functienaam is)

Functie macro's worden getriggerd door een "call" commando vanuit een andere macro. Zie het gedeelte over commando's voor meer informatie.

De "@login" Macro

Als je een functie macro hebt met de naam "@login", zal deze automatisch geactiveerd worden als je in het spel inlogt, of wanneer je het "Herlaadt macro's" menu item kiest.

Voorbeelden:

@login
{
"/action gaapt en rekt zich uit.\r"
pause 4
"/pose sit\r"
}

Attributen

Een attribuut is een regel die je in een macro kunt zetten die zijn gedrag veranderd. Een attribuut wordt niet op een bepaalde plek in de macro uitgevoerd omdat hij bepaalt hoe Arindal en de macro samenwerken en dus kan je een attribuut overal in de macro neerzetten. Alle attributen beginnen met het $ teken.

Ondersteunde Attributen

$ignore_case
Beïnvloedt alleen expressies en vervangings-macro's; zorgt ervoor dat de macro werkt ongeacht het gebruik van kleine- of hoofdletter.

$any_click
Normaliter werken klik-macro's alleen als je op een speler klikt. Dit attribuut maakt dat de macro werkt als je waar dan ook in het spelvenster klikt.

$no_override
Normaal gesproken hebben macro's voorrang op alle verdere afhandelingen van een toetsaanslag, klik of gewoon typen. Met deze attribute wordt de macro gewoon uitgevoerd, en de normale actie voor de toetsaanslag of klik ook.

Voorbeelden:

shift-click
{
$no_override
$any_click
"/pref movement toggle\r"
}

click
{
$no_override
$any_click
"/pref movement hold\r"
}

// Twee macro's waarbij je de shift ingedrukt moet houden terwijk je klikt
// als je de 'click toggles' mode wilt gebruiken en gewoon kan klikken
// voor de 'click and hold' modus.

Variabelen

Een variabele is de programmeurs term voor een naam die een waarde vertegenwoordigd. Bij voorbeeld, we kunnen een variabele hebben die ras heet. Deze variabele kunnen we de waarde "Maqua" geven. Als we nu refereren aan de name ras, wordt de waarde "Maqua" ingevuld. Later zouden we de waarde kunnen veranderen in "Elithren". We kunnen nu precies hetzelfde stuk macro gebruiken, maar bij alle referenties naar ras wordt nu "Elithren" ingevuld.

Globale Variabelen

Deze variabelen zijn hetzelfde gedefinieerd voor elke macro die je activeert. Om ze te definiëren moet je een set statement gebruiken dat niet in een macro zelf ligt.

set num 1
set wie "Keriul"

Merk op dat als de variabele uit tekst bestaat je deze tussen aanhalingstekens zet, en als het nummeriek is niet. Nu kan je deze waarden in elke macro gebruiken:

"vartest2"
{
"Hallo " wie " jij bent " num "\r"
}

Dit zal geven:
>Hallo Keriul jij bent 1 (return)

Lokale Variabelen

Deze variabelen worden alleen voor de maro waar ze in staan gebruikt. Je declareert ze op de zelfde manier als je een zou doen met een globale variabele, alleen staan ze nu in een macro.

"vartest2"
{
set num 1
set wie "Keriul"
"Hallo " wie " je bent " num "\r"
}

Dit geeft als resultaat:
>Hallo Keriul je bent 1 (return)

Ga er nu eens van uit dat we niet deze globale declaraties van zojuist hebben, maar dat we vartest1 en vartest2 in hetzelfde macro bestand hebben.

"vartest1"
{
"Hallo " wie " je bent " num "\r"
}

"vartest2"
{
set num 1
set wie "Keriul"
"Hallo " wie " je bent " num "\r"
}

vartest1 geeft als resultaat:
>Hallo je bent (Return)

In vartest1 worden de variabelen wie en num niet gedefiniëerd, dus tellen ze als niets!

Globale Variabelen Vanuit een Macro Benoemen

Stel je voor dat de een globale variabele had waarvan je wil dat een macro deze kan veranderen. Om dit te kunnen doen moet je het setglobal commando gebruiken vanuit een macro:

set wie "Kerial"

"set1"
{
setglobal wie "Ternia"
}

"vartest1"
{
"Hallo " wie "\r"
}

Als je vartest1 gebruikt krijg je:
>Hallo Kerial (return)

Maar als je nu typt
>set1 (return)

wordt de set1 macro uitgevoerd, die de globale variabele verandert, zodat wanneer je vartest1 opnieuw uitvoert je het volgende krijgt:
>Hallo Ternia (Return)

Globale en Lokale Variabelen met Dezelfde Naam

Dit kan het beste met een voorbeeld worden uitgelegd, maar je kan dezelfde naam hebben voor een globale en een lokale variabele. Als je de lokale veranderd, zal de globale niet veranderen; het zal hetzelfde blijven in alle macro's behalve in diegene waar er nu een lokale variabele met dezelfde naam is.

set wie "Kerial"

"set1"
{
set wie "Ternia"
"Hallo " wie "\r"
}

"vartest1"
{
"Hallo " wie "\r"
}

Als je nu set1 gebruikt krijg je:
>Hallo Ternia (return)

Maar als je vartest1 gebruikt krijg je nog steeds:
>Hallo Kerial (return)

Door Arindal Gedefiniëerde Variabelen

Door het instellen van een paar speciale variabelen kan je instellen hoe Arindal macro's laadt en gebruikt. Door andere in je macro's te gebruiken kan je informatie over je karakter of andere karakters krijgen. Alle speciale variabelen beginnen met een @. Hier volgt een lijst van deze variabelen:

@env Variabelen
Variabelen die beginnen met @env beïnvloeden hoe macro's worden uitgevoerd.

@env.echo (true/false)
Wanneer dit true is, vervang dan na een \r in een macro, de tekst in het input venster door de tekst die gestuurd is.

@env.debug (true/false)
Wanneer dit waar is, geef extra informatie over het laden van de macro's en de uitvoering.

@env.key_interrupts (true/false)
Wanneer dit waar is, stop met de uitvoering van een macro als een toets wordt ingedrukt.

@env.click_interrupts
Wanneer dit waar is, stop met de uitvoering van een macro als er in het spelvenster (waar klikken je karakter laat bewegen) wordt geklikt.

@my Variabelen
Variabelen die met @my beginnen betreffen je karakter.

@my.name
De naam van je karakter.

@my.simple_name
De simpele naam van je karakter (geen spaties of punctuatie).

@my.right_item, @my.left_item
De namen van de voorwerpen in je rechter en linker hand.

@my.right_item, @my.left_item @my.forehead_item, @my.neck_item, @my.shoulders_item, @my.arms_item, @my.gloves_item, @my.finger_item, @my.coat_item, @my.cloak_item, @my.torso_item, @my.waist_item, @my.legs_item, @my.feet_item, @my.head_item
De namen van de voorwerpen die je op andere plaatsen draagt.

@my.selected_item
De naam van het voorwerp dat is geselekteerd in het Inventaris venster.

@selplayer Variables
Variabelen die beginnen met @selplayer refereren aan het geselekteerde karakter.

@selplayer.name
De naam van het geselekteerde karakter.

@selplayer.simple_name
De simpele naam van het geselekteerde karakter (geen spaties of punctuaties).

@click Variables
Variabelen die beginnen met @click refereren aan het karakter waarop is geklikt om een klikmacro te starten.

@click.name
De naam van het karakter waarop is geklikt.

@click.simple_name
De simpele naam van het karakter waarop is geklikt (geen spaties of punctuaties).

@click.button
Een nummer tussen 1 en 8 dat aangeeft welke muisknop is ingedrukt. De hoofd, of linkerknop is #1, de tweede of rechterknop is #2, de andere nummers hangen af van de hardware. Je zal wat tests moeten uitvoeren om er achter te komen wat de nummers voor jouw muis zijn.

@click.chord
Een nummer dat de status aangeeft van alle muisknoppen. Deze waarde is feitelijk een bitmap van alle op dat moment ingedrukt knoppen, waarin het laagste bit correspondeerd met muisknop #1.

Diverse Variabelen.

@text
De complete tekst in het invoerveld toen de macro startte.
(minus de expressie van een expressionele macro)

@textsel
De geselecteerde tekst in het invoerveld toen de macro startte.

@random
Een nummer tussen 0 en 9999, willekeurig gegenereerd elke keer als deze variabele wordt aangeroepen.

Woorden en Letters

Door deze achtervoegsels aan het einde van elke variabele toe te voegen kan je refereren aan woorden of letters van de waarde van de variabele.

.word[n]
Het n-de woord van een variabele. Het eerste woord is nul.

.num_words
Het aantal woorden in een variabele.

.letter[n]
De n-de letter van een variabele. De eerste letter is nul.

.num_letters
Het aantal letters in een variabele.

Voorwerpen Verkort

Omdat Arindal meertalig is hebben voorwerpen meestal niet dezelfde naam in elke taal, wat lastig kan zijn als je macro's van iemand anders gebruikt (of de jouwe algemeen beschikbaar wilt maken). Daarom hebben de meeste algemene voorwerpen een een unieke verkorte naam, die begint met het teken % en 4 letters lang is: b.v. %lfcy voor het levenskristal. Je kan de verkorte naam overal in je macro's gebruiken, in plaats van de lange naam. Hier is een lijst in wording van alle huidige verkotre voorwerp namen.

%prse purse, Geldbörse, Beurs, bourse

%bram brambleberry cluster, Brombeerstrauch, takje braambessen, baie de ronces

%lila lilaberry cluster, Lilabeerstrauch, takje lilabessen, baie des forêts

%orga orgaberry cluster, Orgabeerstrauch, takje orgabessen, baie des marais

%dggr dagger, Dolch, dolk, dague

%shsw short sword, Kurzschwert, kort zwaard, épée courte

%wdsh wooden shield, Holzschild, houten schild, bouclier de bois

%lfcy lifecrystal(moonstone), Heilkristall, levenskristal, Cristal de vie

%club roguewood club, Wurzelholzknüppel, knuppel, gourdin noueux

%hlmt leather helmet, Lederhelm, leren helm, casque de cuir

%mdcy mindcrystal(sunstone), Gedankenkristall, denkkristal, PensePierre

%lcsh lifecrystalshard, Heilkristallsplitter, levenskristalscher, fragment de Cristal de vie

%trdg training dagger, Trainingsdolch, trainingsdolk, dague d'entraînement

%brkg beer keg, Bierfass, biervat, tonneau de bière

%brmg beer mug, Bierkrug, bierkroes, bock de bière

%axee axe, Axt, bijl, hache

%kdzu kudzu seedling, Kudzusetzling, kudzu zaadje, graine de Kudzu

%mgcy strange crystal, Seltsamer Kristall, vreemd kristal, cristal bizarre

%mgst staff, Stab, magiërs staf, bâton

%tnbx tinderbox, Zunderbüchse, vuurdoos, pierre à briquet

%pchm piece of parchment, Stück Pergament, stuk perkament, feuille de parchemin

%ltgl leather gloves, Paar Lederhandschuhe, paar leren handschoenen, paire de gants de cuir

%trch torch, Fackel, fakkel, torche

%inkk bottle of ink, Tintenfass, inktfles, bouteille d'encre

%qull quill, Federkiel, schrijfveer, porte-plume

Commands

Als een regel met een commando begint, doet Arindal iets speciaal (hieronder voor elk commando beschreven). Anders worden de woorden als gewone tekst beschouwd. Je kan slechts één commando per regel gebruiken. Je kan variabelen gebruiken voor elke parameter van de diverse commando's.

Tekst

"<tekst>"
<variabele>

Als het eerste woord van een regel geen commando is, gaat Arindal ervan uit dat het tekst is. Iedere tekts tussen dubbele aanhalingstekens wordt gewoon toegevoegd. Alles wat niet tussen dubbele aanhalingstekens staat wordt beschouwd als variabele, en dan wordt de waarde van die variabele toegevoegd. Als de macro wordt uitgevoerd wordt alle tekst aaneengeschakeld totdat een einde-regel teken "\r" wordt gevonden, waarop de tot nu toe gevormde tekst wordt verzonden en er één beeldje (frame) gepauseerd wordt. Als er tekst is ná de laatste "\r" van de macro, dan wordt deze tekst naar het invoerveld gekopieerd zonder dat deze naar de server wordt verstuurd..

Voorbeelden

"gr"
{
"Hallo "
@selplayer.name
"!\r"
}

Uitvoer:
>Hallo Joe! (Return)
// Als je Joe hebt geselekteerd.

"/sleep"
{
"/pose lie\r" "/action gaat liggen en sluit zijn ogen.\r"
pause 10
"/sleep\r"
}

Uitvoer:
>/pose lie (Return)
>/action gaat liggen en sluit zijn ogen. (Return)
(Wacht tien frames)
>/sleep (Return)

f1 "/thinkto " @selplayer.simple_name " " @text "\r"

Uitvoer:
>/thinkto Thyin Waar ben je aan het jagen? (Return)

// Als je typte "Waar ben je aan het jagen?" en Thyin hebt geselekteerd.

f13 "Tergon d\'Aleria mon\'Savreyte von Wendia"

// Voegt je zeer ingewikkelde naam toe alsof je het getypt hebt.

Meertalige Tekst Uitvoer

/multi %l<taal nummer van 1 tot 3>

Omdat dit een client-commando is, zal na het gebruik van /multi na een uitvoer-commando (/say, /yell, /ponder etc) gezocht worden naar de %l markeringen en alleen de tekst alleen getoond worden aan diegene met de juiste taal instelling.

F1 "/say /multi Hello%l1Hallo%l2Hallo%l3Salut\r"

Uitvoer:

Hallo in German (and Dutch), Salut in French

Pauze

pause <nummer>

Pauzeert de macro voor <nummer> frames.

Voorbeelden

shift-#
{
"/pose sit\r"
pause 1
"/pose leanleft\r"
pause 1
"/pose leanright\r"
pause 1
"/pose stand\r"
pause 1
}

// Laat je karakter een simpel dansje doen (met shift 3)

"pn"
{
"/action gaat zitten en krabt zijn hoofd.\r"
pause 20
"/ponder " @text "\r"
}

// Als je karakter niet zo slim is, voegt een pause toe na elke /ponder.

Set

set <variabele-naam> <waarde>
OF
set <variabele-naam> <operator> <waarde>
<operator> moet zijn + - * / %

Stelt de lokale variabele vast of voert een bewerking op zijn huidige waarde uit (zie het gedeelte over variabelen). De + kan worden gebruikt om twee tekstvariabelen samen te voegen, maar alle andere operators gaan uit van numerieke variabelen en geven een numeriek resultaat.

tekst + tekst = samenvoegsel ("a" + "b" = "ab")
nummer + nummer = optelling (1 + 2 = 3)
tekst + nummer = samenvoegsel ("a" + 2 = "a2")
nummer + tekst = niet toegestaan (1 + "b" : "Syntax error")

SetGlobal

setglobal <variabele-naam> <waarde>
OF
setglobal <variabele-naam> <operator> <waarde>
<operator> moet zijn + - * / %

Stelt een lokale variabele in of doet een bewerking op zijn huidige waarde.

Voorbeelden

set @env.echo true

f7
{
set @env.echo false
"/action draait rond totdat hij omvalt.\r"
}

// Tijdens deze macro zal tekst niet geechoot worden, ondanks de lokale variabele.

f8
{
set num 1
num "\r"
set num + 4
num "\r"
set num2 6
num2 "\r"
set num + num2
num "\r"
}

help
{
if @env.debug == true
setglobal @env.debug false
else
setglobal @env.debug true
end if
}

// toggle debugging aan en uit met deze toets

option-return
{
set on @text.num_words
set on - 1
label mark
@text.word[on]
if on > 0
" "
set on - 1
goto mark
end if
"\r"
}

// praat achterstevoren

Call

call <functie>
<functie> moet een geldige gedeclareerde functie zijn.

Voert de gegeven macro functie uit op deze plek in de macro. Deze functie en de callende functie delen de lokale variabelen.

Voorbeelden

subroutine
{
who " is een " prof ".\r"
}

f6
{
set who "Zephyr"
set prof "Heler"
call subroutine
set who "Abe"
set prof "Magiër"
call subroutine
}

Random

random <optie>
<commandos>
or
<commandos>
or
<commandos>
...
end random

<optie> kan zijn "no-repeat"

Kiest willekeurig één van de keuzes uit de lijst om uit te voeren. Als <optie> "no-repeat" is, dan zal dezelfde keuze nooit twee maal achter elkaar plaatsvinden, tenzij er slecht één keus is (in welk geval "no-repeat" onmogelijk is). Als je niet "no=repaet" gebruikt, heeft elk alternatief evenveel kans.

Voorbeelden

"groet"
{
random
"Gegroet "
or
"H'loi "
or
"Goedendag "
end random
@selplayer.name "\r"
}

f10
{
"/action "
random no-repeat
"lacht."
or
"grijnst."
or
"grinnikt."
end random
"\r"
}

// De zelfde expressie zal nooit twee maal achter elkaar worden gebruikt

If

if <expressie> <vergelijking> <expressie>
<commandos>
else if <expressie> <vergelijking> <expressie>
<commandos>
else
<commandos>
...
end if

<expressie> mag een varabele, test of een nummer zijn
<vergelijking> moet iets zijn als >,<,<=,>=,==,!=
== betekent gelijk aan
!= betekent NIET gelijk aan

Deze verklaring voert de commandos na een "if" uit als de vergelijking geslaagd is. Als dat niet zo is gaat het naar het volgende else verklaring. De expressies mogen numeriek of strings zijn (in dat geval worden < en > geïnterpreteerd als "is een substring van").

Voorbeelden

f11
{
if @text <= "doodt"
"/action schreeuwt van woede!\r"
else if @text <= "vrede"
"/action lacht en biedt een boektje bloemen aan.\r"
else
"/action zit hier niets te doen.\r"
end if
}

// Zoekt naar de substrings in  @text

"/give"
{
"/give " @selplayer.name " " @text "\r"
set num @text
if @text <= 10
"/action gooit " @selplayer.name " een paar munten toe.\r"
else if @text <= 100
"/action geeft " @selplayer.name " een buidel met munten.\r"
else if @text <= 1000
"/action sjouwt een grote zak met munten naar " @selplayer.name ".\r"
else
"/action vertelt " @selplayer.name " waar hij zijn geheime schatten bewaard.\r"
end if
}

// Wat geavanceerd munten geven

Label

label <label naam>

Zet een plek in de macro als eenmogelijk doel voor een goto commande.

Goto

goto <label naam>

Gaat naar het gespecificeerde label en voert uit vanaf daar. Met gota en label commandos kan je lussen maken (als je ooit in een oneindige llus verzeilt raakt vergeet dan niet dat control-escape alle macros stopt).

Voorbeelden

f12
{
set num 0
label mark
set num + 1
if num < 10
pause 5
"Tellen: " num "\r"
goto mark
end if
}

Message

message "<tekst>"
message <variabele>

Werkt zoals het text commando, maar de uitput is zichtbaar in de zijcolom. Het is niet nodig de output af te sluiten met een  "\r" teken. (Natuurlijk wordt het alleen in JOUW zijcolom getoond, en het is niet zichtbaar in films).

Voorbeelden

"msg"
{
message @text
}
 
Add to: Mr. Wong Add to: Webnews Add to: Favoriten.de Add to: Newsider Add to: Yigg Add to: Digg Add to: Del.icoi.us Add to: Simpy Add to: Slashdot Add to: Yahoo Add to: Technorati Add to: Smarking Add to: Spurl Add to: Google Information
Social Bookmarking

© 2012 FairTales Entertainment, NL • All Rights reserved