Script Mod (API): esempi di base

Di seguito sono riportati alcuni esempi di script semplici che possono essere utili per iniziare. Sentitevi liberi di utilizzarli e modificarli per le vostre campagne. È disponibile anche un forum dedicato agli script Mod (API) dove è possibile discutere di scripting Mod (API) e condividere i propri script con la comunità.


Indicatori di stato sanguinante e decesso

(Contributo di Ken Bauer)

Questo script aggiunge automaticamente il segnalino rosso per indicare lo stato "insanguinato" a tutti i segnalini che scendono al di sotto della metà della loro salute, e il segnalino "morto" a tutti quelli che scendono a 0 o meno. Si presume che la salute sia memorizzata nella barra 1.

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
      });
    }
});

 


L'oscurità si sta avvicinando...

Questo script riduce il raggio luminoso di un segnalino del 10% ogni volta che il segnalino si sposta. Ideale per simulare situazioni di emergenza come "lampade che stanno esaurendo l'olio" o simili.

on("change:token", function(obj, prev) {
    //Eseguire questa operazione solo se effettivamente ci siamo spostati.
    if(obj.get("left") == prev["left"] && obj.get("top") == prev["top"]) return;
    obj.set({
        light_radius: Math.floor(obj.get("light_radius") * 0.90)
    });
});

Inviare una chat come giocatore o personaggio

(Contributo di Brian Shields)

Di seguito sono riportate alcune righe che è possibile utilizzare in uno script di evento chat:message per garantire l'invio accurato di un messaggio con sendChat sia come Giocatore che come Personaggio, a seconda di chi ha attivato l'evento.

on("chat:message", function(msg) {
    var message = '';
    // Determina il contenuto di `message'
 
    var characters = findObjs({_type: 'character'});
    var speaking;
    characters.forEach(function(chr) { if(chr.get('name') == msg.who) speaking = chr; });
 
    if(speaking) sendChat('personaggio|'+speaking.id, messaggio);
    else sendChat('giocatore|'+msg.playerid, messaggio);
});
 
Questo articolo ti è stato utile?
Utenti che ritengono sia utile: 70 su 84