Marqueurs d'état « ensanglanté » et « mort »
(Contribution de Ken Bauer)
Ce script ajoute automatiquement le marqueur rouge pour indiquer l'état « ensanglanté » de tous les jetons dont la santé est inférieure à la moitié, et le marqueur « mort » pour tous ceux dont la santé est inférieure ou égale à 0. On suppose que la santé est stockée dans la barre 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'obscurité s'installe...
Ce script réduit le rayon lumineux d'un jeton de 10 % à chaque fois que ce jeton se déplace. Idéal pour simuler des situations de stress intense, telles que des « lampes à court de pétrole ».
on("change:token", function(obj, prev) {
//Effectuer cette action uniquement si nous avons réellement déplacé.
if(obj.get("left") == prev["left"] && obj.get("top") == prev["top"]) return;
obj.set({
light_radius: Math.floor(obj.get("light_radius") * 0.90)
});
});
Envoyer un message en tant que joueur ou personnage
(Contribution de Brian Shields)
Voici quelques lignes que vous pouvez utiliser dans un script d'événement chat:message pour vous assurer d'envoyer un message avec sendChat de manière précise, soit en tant que joueur, soit en tant que personnage, selon qui a déclenché l'événement.
on("chat:message", function(msg) {
var message = '';
// Déterminer le contenu de « message »
var characters = findObjs({_type: 'character'});
var speaking;
characters.forEach(function(chr) { if(chr.get('name') == msg.who) speaking = chr; });
if(speaking) sendChat('personnage|'+speaking.id, message);
else sendChat('player|'+msg.playerid, message);
});