Scripts de mod : exemples de base

Le guide pratique propose quelques exemples de scripts simples qui peuvent vous aider à vous lancer. N'hésitez pas à les utiliser et à les adapter pour vos propres campagnes. Il existe également un forum consacré aux scripts de mods, où vous pouvez échanger sur la création de scripts de mods et partager vos scripts avec la communauté.

Marqueurs d'état « ensanglanté » et « mort »

(Contribution de Ken Bauer)

Ce script ajoute automatiquement le marqueur « Rouge » pour indiquer l'état « ensanglanté » à tous les jetons dont la santé passe en dessous de la moitié, et le marqueur « Mort » à tous ceux dont la santé tombe à 0 ou moins. On part du principe que la santé est enregistré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é gagne du terrain »…

Ce script réduit le rayon de lumière d'un jeton de 10 % à chaque fois que ce jeton se déplace. Idéal pour simuler des « lampes à court d'huile » ou d'autres situations de forte contrainte similaires.

on("change:token", function(obj, prev) {
  //N'effectuez cette opération que si un déplacement a effectivement eu lieu.
  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 en tant que joueur ou personnage

(Contribution de Brian Shields)

Ce script contient quelques lignes que vous pouvez utiliser dans un script d'événement « Chat:message » afin de vous assurer que vous envoyez correctement un message via la fonction « sendChat », 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: 'personnage'});
  var speaking;
  personnages.forEach(function(chr) { if(chr.get('name') == msg.who) speaking = chr; });

  if(speaking) sendChat('personnage|'+speaking.id, message);
  else sendChat('joueur|'+msg.joueur.id, message);
});
Cet article vous a-t-il été utile ?
Utilisateurs qui ont trouvé cela utile : 72 sur 89