Scripts Mod (API): Ejemplos básicos

Aquí hay algunos ejemplos de scripts sencillos que pueden ayudarle a empezar. No dude en tomarlos y modificarlos para utilizarlos en sus propias campañas. También hay un foro de scripts Mod (API) donde pueden debatir sobre scripts de modificación (API) y compartir sus scripts con la comunidad.


Marcadores de estado ensangrentados y muertos

(Contribución de Ken Bauer)

Este script añade automáticamente el marcador rojo para representar el estado «ensangrentado» de cualquier ficha que pierda más de la mitad de su salud, y el marcador «muerto» para cualquier ficha que quede en 0 o menos. Se supone que la salud se almacena en la 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
      });
    }
});

 


La oscuridad se acerca...

Este script reduce el radio de luz de una ficha en un 10 % cada vez que se mueve. Ideal para simular situaciones de gran estrés, como «lámparas que se quedan sin aceite».

on("change:token", function(obj, prev) {
    //Solo haga esto si realmente se ha movido.
    if(obj.get("left") == prev["left"] && obj.get("top") == prev["top"]) return;
    obj.set({
        light_radius: Math.floor(obj.get("light_radius") * 0.90)
    });
});

Enviar chat como jugador o personaje

(Contribución de Brian Shields)

Estas son unas cuantas líneas que puede utilizar en un script de evento chat:message para asegurarse de que envía un mensaje con sendChat correctamente, ya sea como jugador o como personaje, dependiendo de quién haya activado el evento.

on("chat:message", function(msg) {
    var message = '';
    // Determine el contenido de «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);
});
 
¿Fue útil este artículo?
Usuarios a los que les pareció útil: 70 de 84