Hiekkalaatikko
Siirry navigaatioon
Siirry hakuun
Tämän makron avulla voit käyttää Enlarge Person-loitsua, sitten että se huomioi kaikki koon muutoksesta tulevat vaikutukset.
- Luo ensin makron vaatima Buff ja nimeä se Enlarge Person.
- Lisää luomasi buffin Changes-välilehdelle loitsun aiheuttamat muutokset attribuutteihin.
- Hae Compendium packs valikosta kohdasta Sample macros esimerkki makro Toggle Buff ja raahaa se alas Macros Directoryn vapaaseen paikkaan.
- Tämän jälkeen kopioi alla oleva koodi ja korvaa sillä Toggle Buffin sisältö. Nimeä uusi makro esim. nimellä Enlarge Person.
// CONFIGURATION // If one or more tokens are selected, those will be used instead of the listed actors // Leave the actorNames array empty to guess the players // Example actorNames: `actorNames: ["Bob", "John"],` const c = { 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 }); } } }
- Muistakaa käyttää sizeRoll-funktiota (ks. alla) lähitaisteluaseissan niin muuttuu myös vaurionopat automaattisesti oikeiksi.
sizeRoll(1, 6, @size)
- 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.