Marcadores de estado ensangrentados y muertos
(Contribuido por Ken Bauer)
Este script automáticamente agrega el marcador Rojo para representar el estado 'ensangrentado' a cualquier ficha que tenga menos de la mitad de su salud, y el marcador 'muerto' para cualquier ficha que tenga 0 o menos. Se asume 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 un token en un 10% cada vez que el token se mueve. Ideal para simular "lámparas que se quedan sin aceite" u otras situaciones de alto estrés similares.
on("change:token", function(obj, prev) {
//Solo hacer esto si realmente nos movemos.
Si(obj.get("left") == prev["left"] && obj.get("top") == prev["top"]) return;
obj.set({
radio_de_luz: Math.floor(obj.get("radio_de_luz") * 0.90)
});
});
Enviar chat como jugador o personaje
(Contribuido por Brian Shields)
Estas líneas se pueden utilizar en un script de evento de mensaje de chat para asegurarse de que estás enviando un mensaje con sendChat de manera precisa, ya sea como jugador o como personaje, dependiendo de quién haya activado el evento.
on("chat:message", function(msg) {
var message = '';
// Determina el contenido de `message'
var personajes = findObjs({_type: 'character'});
var habla;
personajes.forEach(function(per) { if(per.get('name') == msg.who) habla = per; });
if(habla) sendChat('character|'+habla.id, message);
else sendChat('player|'+msg.playerid, message);
});