Scripts de modificação: exemplos básicos

O Manual de Referência apresenta alguns exemplos de scripts simples que o podem ajudar a dar os primeiros passos. Sinta-se à vontade para os utilizar e adaptá-los para as suas próprias campanhas. Existe também um Fórum de Scripts de Mods, onde pode debater a criação de scripts de mods e partilhar os seus scripts com a comunidade.

Marcadores de estado «Ensanguentado» e «Morto»

(Contribuição de Ken Bauer)

Este script adiciona automaticamente o marcador «Vermelho» para indicar o estado ensanguentado a quaisquer fichas cuja saúde desça abaixo de metade, e o marcador «Morto» a quaisquer fichas cuja saúde desça para 0 ou menos. Presume-se que a saúde esteja registada 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 aproxima-se…

Este script reduz o raio de luz de uma ficha em 10% sempre que essa ficha se move. Ideal para simular «lâmpadas a ficar sem óleo» ou situações semelhantes de grande tensão.

on("change:token", function(obj, prev) {
  //Só faça isto se tivermos realmente mudado de lugar.
  if(obj.get("left") == prev["left"] && obj.get("top") == prev["top"]) return;

  obj.set({
    light_radius: Math.floor(obj.get("light_radius") * 0.90)
  });
});

enviarChat na qualidade de jogador ou personagem

(Contribuição de Brian Shields)

Este script fornece algumas linhas que pode utilizar num script de evento «chat:message» para garantir que está a enviar uma mensagem com o método «sendChat» de forma correta, quer como Jogador, quer como Personagem, dependendo de quem desencadeou o evento.

on("chat:message", function(msg) {
  var message = '';
  // Determinar o conteúdo de `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);
});
Este artigo foi útil?
72 de 89 acharam isto útil