Marcadores de Estado Ferido e Morto
(Contribuído por Ken Bauer)
Este script adiciona automaticamente o marcador vermelho para representar o estado "ferido" para quaisquer tokens que tenham menos da metade de sua saúde e o marcador "morto" para quaisquer que tenham 0 ou menos. Pressupõe-se que a saúde esteja armazenada na 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
});
}
});
A Escuridão Está se Aproximando...
Este script reduz o raio de luz de um token em 10% toda vez que o token se move. Ótimo para simular "lâmpadas ficando sem óleo" ou situações de alto estresse semelhantes.
on("change:token", function(obj, prev) {
//Apenas faça isso se realmente nos movemos.
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 as a Player or Character
(Contributed by Brian Shields)
This is a few lines you can use in a chat:message event script to ensure you're sending a message with sendChat accurately as either a Player or a Character, depending on who triggered the event.
on("chat:message", function(msg) {
var message = '';
// Determine the contents of `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);
});