Statusmarkierungen für „Blutend“ und „Tot“
(Beitrag von Ken Bauer)
Dieses Skript fügt automatisch die rote Markierung hinzu, um den Status „Blutend“ für alle Spielmarker anzuzeigen, deren Gesundheit auf die Hälfte oder weniger sinkt, und die Markierung „Tot“ 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. Perfekt, um Situationen wie „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)
Hier sind ein paar Zeilen, die du in einem Chat:message-Ereignisskript verwenden kannst, um sicherzustellen, dass du eine Nachricht mit sendChat genau als Spieler oder Charakter sendest, je nachdem, wer das Ereignis ausgelöst hat.
on("chat:message", function(msg) {
var message = '';
// Bestimme den Inhalt von „message”
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);
});