Ero sivun ”Hiekkalaatikko” versioiden välillä

Kosmikon wikistä
Siirry navigaatioon Siirry hakuun
Jarnon (keskustelu | muokkaukset)
pEi muokkausyhteenvetoa
Jarnon (keskustelu | muokkaukset)
pEi muokkausyhteenvetoa
Rivi 1: Rivi 1:
Tämän makron avulla voit käyttää ''Enlarge Person''-loitsua, sitten että se huomioi kaikki koon muutoksesta tulevat vaikutukset.
{{Navbox
| name  = Dynastiat
| state  = {{{state|}}}
| title  = [[Dynastia]]t
| listclass = hlist
|group1 = [[bastonai]]
|list1 = {{Navbox|child
|group1 = vanhat
|list1 = [[Trafines]]
|group2 = uudet
|list2 = [[Filinos]]
}}


:Luo ensin makron vaatima ''Buff'' ja nimeä se ''Enlarge Person''.
|group2 = [[oreinis]]
 
|list2 = {{Navbox|child
[[Tiedosto:Enlarge person1.PNG|500px]]
|group1 = vanhat
 
|list1 = [[Sratsimir]]
:Lisää luomasi buffin ''Changes''-välilehdelle loitsun aiheuttamat muutokset attribuutteihin.
|group2 = uudet
 
|list2 = [[Presimir]]
[[Tiedosto:Enlarge person2.PNG|500px]]
}}
 
|group3 = [[taigis]]
:Hae ''Compendium packs'' valikosta kohdasta ''Sample macros'' esimerkki makro ''Toggle Buff'' ja raahaa se alas ''Macros Directory''n vapaaseen paikkaan.
|list3 = {{Navbox|child
 
|group1 = vanhat
[[Tiedosto:Enlarge person3.PNG|500px]]
|list1 = [[Teletsys]]
 
|group2 = uudet
:Tämän jälkeen kopioi alla oleva koodi ja korvaa sillä ''Toggle Buff''in sisältö. Nimeä uusi makro esim. nimellä Enlarge Person.
|list2 = [[Glykys]]
 
}}
<pre>
|group4 = [[zousimis]]
// CONFIGURATION
|list4 = {{Navbox|child
// If one or more tokens are selected, those will be used instead of the listed actors
|group1 = vanhat
// Leave the actorNames array empty to guess the players
|list1 = [[Mouzalon]]
// Example actorNames: `actorNames: ["Bob", "John"],`
|group2 = uudet
const c = {
|list2 = [[Khytes]]
  actorNames: [],
}}
  buffName: "Enlarge Person"
}}
};
// END CONFIGURATION
 
const transform = (caster, size) => {
  caster.update({'data.traits.size': size});
};
 
const sizes = ["fine", "dim", "tiny", "sm", "med", "lg", "huge", "grg", "col"];
 
var sizeToBe = 0
 
const tokens = canvas.tokens.controlled;
let actors = tokens.map(o => o.actor);
if (!actors.length && c.actorNames.length) actors = game.actors.entities.filter(o => c.actorNames.includes(o.name));
if (!actors.length) actors = game.actors.entities.filter(o => o.isPC);
actors = actors.filter(o => o.hasPerm(game.user, "OWNER"));
 
if (!actors.length) ui.notifications.warn("No applicable actor(s) found");
else {
  for (let actor of actors) {
    const buff = actor.items.find(o => o.name === c.buffName && o.type === "buff");
    if (buff != null) {
      let active = getProperty(buff.data, "data.active");
      if (active == null) active = false;
      for (let tester in sizes) {
        if (actor.data.data.traits.size == sizes[tester]) {
          var currentSize = parseInt(tester);
          break;
        }
      }
      if (active == false) sizeToBe = currentSize + 1;
      else sizeToBe = currentSize - 1;
      transform(actor, sizes[sizeToBe]);
      buff.update({ "data.active": !active });
    }
  }
}
</pre>
 
:Muistakaa käyttää sizeRoll-funktiota (ks. alla) lähitaisteluaseissan niin muuttuu myös vaurionopat automaattisesti oikeiksi.
 
<code>sizeRoll(1, 6, @size)</code>
:ensimmäinen parametri määrittelee noppien määrän ja toinen nopan eli esimerkin tapauksessa 1d6. Jos koko muuttuu suuremmaksi niin noppa muuttuu automaattisesti 1d8:ksi jne.

Versio 3. toukokuuta 2026 kello 17.46