Makro:RollKnowledge
Siirry navigaatioon
Siirry hakuun
Tämän makron avulla voit helpommin käyttää jotain Knowledge-taitoa joutumatta ensin etsimään sitä hahmolomakkeelta.
Luo uusi makro klikkaamalla alalaidan palkista tyhjää kohtaa.
Sinulle aukeaa New Macro-ikkuna.
Nimeä makro esim. RollSKnowledge.
Vaihda tyypiksi script.
Lisää alla oleva koodi makroon.
const tokens = canvas.tokens.controlled;
const caster = tokens[0];
if (tokens.length !== 1) {
ui.notifications.warn("Please select a token");
} else {
const knowledgeTypes = [
"Arcana",
"Dungeoneering",
"Engineering",
"Geography",
"History",
"Local",
"Nature",
"Nobility",
"Planes",
"Religion",
];
const knowledgeData = [];
knowledgeTypes.forEach((type) => {
const knowledgeDatum =
caster.actor.data.data.skills[`k${type.toLowerCase().substring(0, 2)}`];
knowledgeDatum.name = type;
knowledgeData.push(knowledgeDatum);
});
const knownKnowledge = knowledgeData.filter((datum) => datum.rank > 0);
if (knownKnowledge.length < 1) {
ui.notifications.warn("You know nothing.");
} else {
const buttons = {};
knownKnowledge.forEach((type) => {
buttons[type.name] = {
label: type.name,
callback: () => {
rollCheck(type.name, type.mod);
},
};
});
new Dialog({
title: "Roll Knowledge!",
content: `<p>Choose a knowledge skill</p>`,
buttons: buttons,
}).render(true);
}
}
function rollCheck(name, mod) {
const roll = new Roll(`1d20 + ${mod}`);
roll.roll();
roll.toMessage({
flavor: `Knowledge ${name} check`,
speaker: { alias: token.actor.data.name },
});
}
Tämä makro huomioi sen, että jos hahmollasi ei ole koulutusta taidossa, niin se ei myöskään näytä ko. taitoa valinnassa.