Il Manuale offre alcuni esempi di script semplici che possono aiutarvi a muovere i primi passi. Non esitate a utilizzarli e a modificarli per inserirli nelle vostre campagne. È inoltre disponibile un forum dedicato agli script di mod, dove potrete discutere di scripting per le mod e condividere i vostri script con la comunità.
Indicatori di stato “Insanguinato” e “Morto”
(A cura di Ken Bauer)
Questo script aggiunge automaticamente l'indicatore rosso, che indica lo stato di ferimento, a tutti i segnalini la cui salute scende al di sotto della metà, e l'indicatore di morte a tutti quelli la cui salute scende a 0 o meno. Si presume che i punti salute siano memorizzati 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 di luce di un segnalino del 10% ogni volta che tale segnalino si sposta. Ideale per simulare situazioni quali “lampade a cui sta finendo l’olio” o altre situazioni simili di forte stress.
on("change:token", function(obj, prev) {
//Eseguire questa operazione solo se ci si è effettivamente 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)
});
});
sendChat nei panni di un giocatore o di un personaggio
(A cura di Brian Shields)
Questo script fornisce alcune righe che potete utilizzare in uno script per l'evento `chat:message `, al fine di garantire che il messaggio venga inviato correttamente tramite `sendChat`, sia come Giocatore che come Personaggio, a seconda di chi abbia attivato l'evento.
on("chat:message", function(msg) {
var message = '';
// Determinare il contenuto di `message`
var characters = findObjs({_type: 'character'});
var speaking;
personaggi.forEach(function(chr) { if(chr.get('name') == msg.who) speaking = chr; });
if(speaking) sendChat('personaggio|'+speaking.id, messaggio);
else sendChat('player|'+msg.playerid, messaggio);
});