Mod-Skripte (API): Einfache Beispiele

Hier sind ein paar Beispiele für einfache Skripte, die dir den Einstieg erleichtern können. Du kannst sie gerne nehmen und für deine eigenen Kampagnen anpassen. Es gibt auch ein Mod (API) Scripts Forum, in dem du über Mod (API) Scripting diskutieren und deine Scripts 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 „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);
});
 
War dieser Beitrag hilfreich?
70 von 84 fanden dies hilfreich