Mod (API): Grundbeispiele

Hier sind einige Beispiele für einfache Skripte, die dir den Einstieg erleichtern können. Du kannst sie gerne übernehmen und für deine eigenen Kampagnen abändern. Es gibt auch ein API Scripts Forum, in dem du über API Scripting diskutieren und deine Scripts mit der Community teilen kannst.


Blutige und tote Statusmarkierungen

(Beigetragen von Ken Bauer)

Dieses Skript fügt automatisch den roten Marker hinzu, um den "blutigen" Zustand für alle Spielmarker darzustellen, die unter die Hälfte ihrer Lebenspunkte fallen, und den "toten" Marker für alle, die auf 0 oder weniger fallen. Es wird davon ausgegangen, dass die Gesundheit in der 1. Leiste 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 naht ...

Dieses Skript verringert den Lichtradius eines Spielmarker jedes Mal um 10 %, wenn sich dieser Spielmarker bewegt. Ideal zur Simulation von „Lampen, denen das Öl ausgeht“ oder ähnlichen Stresssituationen.

on("change:token", function(obj, prev) {
    //Dies nur tun, wenn wir tatsächlich umgezogen sind.
    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

(Beigetragen von Brian Shields)

Dies sind ein paar Zeilen, die Sie in einem chat:message-Ereignisskript verwenden können, um sicherzustellen, dass Sie eine Nachricht mit sendChat genau als Spieler oder Charakter senden, je nachdem, wer das Ereignis ausgelöst hat.

on("chat:message", function(msg) {
    var message = '';
    // Bestimme den Inhalt von „message“
 
    var Zeichen = findObjs({_type: 'character'});
    var speak;
    characters.forEach(function (chr) { if(chr.get('name') == msg.who) speak = chr; });
 
    if(looking) sendChat('character|'+looking.id, message);
    else sendChat ('player|'+msg.playerid, message);
});
 
War dieser Beitrag hilfreich?
66 von 80 fanden dies hilfreich