Das Cookbook bietet einige Beispiele für einfache Skripte, die dir den Einstieg erleichtern können. Du kannst sie gerne nehmen und für deine eigenen Kampagnen anpassen. Außerdem gibt es ein Mod Scripts Forum, in dem du über Mod-Skripting diskutieren und deine Skripte mit der Community teilen kannst.
Statusmarkierungen für „Blutend“ und „Tot“
(Beitrag von Ken Bauer)
Dieses Skript fügt automatisch die rote Markierung hinzu, um den Status bloodied für alle Spielmarker anzuzeigen, deren Gesundheit unter die Hälfte sinkt, und die Markierung dead für alle, deren Gesundheit auf 0 oder weniger sinkt. Es wird davon ausgegangen, dass die Gesundheit in Leiste 1 gespeichert ist.
on("change:graphic", function(obj) {
if(obj.get("bar1_max") === "") return;
if(obj.get("bar1_value") <= obj.get("bar1_max") / 2) {
obj.set({
status_redmarker: true
});
}
else {
obj.set({
status_redmarker: false
});
}
if(obj.get("bar1_value") <= 0) {
obj.set({
status_dead: true
});
}
else {
obj.set({
status_dead: false
});
}
});
Die Dunkelheit rückt näher…
Dieses Skript verringert den Lichtradius eines Spielmarkers jedes Mal um 10 %, wenn er sich bewegt. Ideal, um „Lampen, denen das Öl ausgeht“ oder ähnliche Stresssituationen zu simulieren.
on("change:token", function(obj, prev) {
// Nur ausführen, wenn wir uns tatsächlich bewegt haben.
if(obj.get("left") == prev["left"] && obj.get("top") == prev["top"]) return;
obj.set({
light_radius: Math.floor(obj.get("light_radius") * 0.90)
});
});
sendChat als Spieler oder Charakter
(Beitrag von Brian Shields)
Dieses Skript enthält ein paar Zeilen, die du in einem chat:message-Ereignisskript verwenden kannst, um sicherzustellen, dass du eine Nachricht mit sendChat korrekt entweder als Spieler oder als Charakter sendest – je nachdem, wer das Ereignis ausgelöst hat.
on("chat:message", function(msg) {
var message = '';
// Den Inhalt von `message` ermitteln
var characters = findObjs({_type: 'character'});
var speaking;
characters.forEach(function(chr) { if(chr.get('name') == msg.who) speaking = chr; });
if(speaking) sendChat('character|'+speaking.id, message);
else sendChat('player|'+msg.playerid, message);
});