Als erstes erstellen wir uns ein neues Verzeichnis:
Nun müssen wir ein leeres Script erstellen, dass wir "Script1.js" nennen.C:\UOX3\JS\Tutorials
Am einfachsten geht das, indem wir eine "Neue Textdatei.txt" erstellen, und dann entsprechend umbennen:
Damit der Server weis, dass wir dort ein Script haben, müssen wir es erst in der "js_fileassociations.scp" auf eine ID binden.C:\UOX3\JS\Tutorials\Tutorial\Script1.js
Dazu öffnen wir die Datei:
Und fügen folgende Zeile am Ende des Scripts ein.C:\UOX3\JS\js_fileassociations.scp
Nun geht es ans Scripten, dazu öffnen wir die datei "Script1.js".7000 /Tutorials/Script1.js
}
EOF
Ich empfehle dazu UltraEdit oder ein anderes Programm, dass Syntax-Highlighting unterstützt für JS.
Alternativ geht aber auch der "Text-Editor" von Windows.
Bevor wir loslegen mit Scripten, sollten wir uns überlegen was wir scripten wollen. Der Titel dieses Tutorials heisst "Hallo Welt", also wollen wir ein simples Hallo-Welt Programm realisieren.
Dazu geben wir folgenden Code ein:
Code: Alles auswählen
function onUse(pUser, iUsed)
{
pUser.SysMessage("Hallo Welt!");
}
Danach loggen wir dort ein, und geben folgende Befehle ein:
Und zeigen mit dem Pointer auf das eben erstellte Item.'add 345
'setscptrig 7000
"'setscptrig ?ID?" binded eine ScriptID auf ein Item oder Character.
Wenn ihr nun einen Doppelklick auf die Mauer macht, die ihr eben erstellt habt, sollte ein "Hallo Welt" in der Programmzeile stehen.
Schauen wir uns dazu den Code nocheinmal einmal genauer an:
Code: Alles auswählen
function onUse(pUser, iUsed)
{
pUser.SysMessage("Hallo Welt!");
}
In unserem Fall ist es das Doppelklick-Ereignis "onUse".
Nun fragt ihr euch sicher warum da "function" vor steht.
Nunja, das Event wird in JS wie eine normale Funktion gehandhabt, der auch wenn notwendig Paramter übergeben werden können.
Paramer sind Variablen, die die Funktion benötigt.
Sie werden in Klammern, und jeweils durch Kommas getrennt hinter der Funktion mit angegeben.
Code: Alles auswählen
function onUse(pUser, iUsed)
iUsed = Das Item / der Character auf den geklickt wurde.
Wie man in der UOX3 JS Documentation entnehmen kann, gibt es 2 wesentliche Objekt-Typen. Chatacter und Item.
Diese Objekte stellen verschiedene Funktionen bereit, die man mit einem "." direkt hinter dem Objektnamen mit ansprechen kann:
Code: Alles auswählen
function onUse(pUser, iUsed)
{
pUser.SysMessage("Hallo Welt!");
}
Zeichenkette "Hallo Welt!" übergeben. Die Funktion ansich bewirkt nur eine einfache Systemnachricht beim Spieler, die ihr sicher schon aus Ultima Online kennt.
Aber wofür stehen jetzt diese geschweiften Klammern ?
Ganz einfach, sie definieren den Programmblock von der Funktion onUse().
Wer dies nicht verstehen sollte, sollte sich umbedingt nochmal im Internet nach dem allgemeinen Java Script Syntax schlau machen, dort wird auch erklärt wofür das ";" am ende der Zeile der SysMessage() Funktion ist.
*ACHTUNG!*:
Wenn ihr ein Script verändert und dann speichert, müsst ihr erst den JS-Teil im UOX3 Server neuladen, oder den Server neustarten.
Da die erste Methode bequemer ist, zeige ich euch wie:
1. Zum Server-Window von UOX3 wechseln.
2. Die "*"-Taste drücken (Shift + "+"-Key); um die Konsole freizugeben.
3. Die "8"-Taste für JS-Reload betätigen.
Wer die anderen befehle sehen möchte kann auch danach nocheinmal die "?"-Taste drücken.
Zum Schluss sollte man die Konsole wieder "locken" mit der "*"-Taste.
Übungsaufgaben:
Viel Spass wünscht der Nimrasdale Staff!1. Erweitere den oben gezeigten onUse-Event so,
dass der Spieler "Hallo Welt" sagt.
2. Erweitere den oben gezeigten onUse-Event so, dass das Item "Guten Tag" sagt.
3. Spiele zu den obengenannten einen Soundeffekt deiner Wahl ab.