普段使っているCampaignで使えるマクロの例 !!!1 自分のToken Macroとして設置してステートをトグルさせるマクロの例 自Tokenを選択し、マクロのスペースを右クリック->新規マクロを追加->下のソースを適切に書き換え、コメント部分(.....(x))以外をコピペする 以下はPoint-Blank Shot(オンの時にはAttackとDamageに+1)の例 ---- [h: arrayName = "MiscStates"] [h: stateName = "PointBlank"] .....(1) [h: stateArray = getProperty(arrayName)] [h: curState = getStrProp(stateArray, stateName)] [h: macroIndex = getMacroButtonIndex()] [h: curAtkBuf = getProperty("BufAttackShort")] .....(2) [h: curDmgBuf = getProperty("BufDamageShort")] .....(2) [h, if(curState == 1), CODE: { [curState = 0] [color = "color=default"] [h: curAtkBuf = curAtkBuf - 1] .....(3) [h: curDmgBuf = curDmgBuf - 1] .....(3) }; { [curState = 1] [color = "color=white"] [h: curAtkBuf = curAtkBuf + 1] .....(4) [h: curDmgBuf = curDmgBuf + 1] .....(4) }] [h: stateArray = setStrProp(stateArray, stateName, curState)] [h: setProperty(arrayName, stateArray)] [h: change = if(curState == 0, "disable", "enable")] [r, s: "Point Blank is "+change+"d"] .....(5) [h: setMacroProps(macroIndex, color)] [h: setProperty("BufAttackShort", curAtkBuf)] .....(6) [h: setProperty("BufDamageShort", curDmgBuf)] .....(6) ---- 以下解説。(1-6)の部分を自分の好きなように書き換える。 (1) Stateの名前。カンマとかスペースとかの記号を含まなければ何でもOK (2) 変更したいパラメータを拾ってくる。Point Blank Shotの場合、AttackとDamageに+1したいのでこの二つのBufの値を変更している。 (3) Stateをオフ(グレー色)にした時に変更する値。Point Blankの場合にはオンだとAtk/Dmg各+1なので、オフにする場合には両者を-1する。 (4) 同様にオンにした時の値。AtkとDmgに+1している。 (5) トグルさせた時に自分のみに表示されるメッセージ。Point Blankのところを好きな字に変更する。 (6) 変更させた値をTokenに書き戻す。 Propertyとして設定するのは "BufACShort" (ArmorなどのTouchには乗らないAC) "BufTouchACShort" (Deflectionなどの全てに乗るAC) "BufAttackShort" "BufDamageShort" "BufSaveShort" "BufSkillShort" とこれらのShortをLongに変えた変数と "CONTemporaryMod"などの能力値修正(Bear's Enduranceなど、CONを他の5つに変えてもOKだけど、Atk/Dmgには反映されません) がいいでしょう。 他のStatusも変えられなくは無いですが、とりあえず上記のみで用は足りると思います。 やろうと思えばSmiteとか用にAbility ModifierやHDを足し込むとかもできます。 例ではcurAtkBufなどに設定されている変数名は、Attack1などToken固有に持っている値と被るとよろしくない事が起こります。別にxxxxxxとか適当な名前でも機能はするので、とにかく被らせないようにしましょう。 ---- ---- !!!2 1と同様だが、StateがHasteやCombatExpertiseなど予め用意されているものの場合 ---- [h: stateName = "CombatExpertise"] .....(1) [h: curState = getState(stateName)] [h: macroIndex = getMacroButtonIndex()] [h, if(curState != 0), CODE: { [curState = 0] [color = "color=default"] }; { [curState = 1)] [color = "color=white"] }] [h: change = if(curState == 0, "disable", "enable")] [r, s: stateName+" is "+change+"d"] [h: setState(stateName, curState)] [h: setMacroProps(macroIndex, color)] ---- 以下解説 (1)ここのステート名だけ書き換えましょう。用意されているStateとは、Tokenダブルクリック->状態タブに存在するものの事です。 ---- ---- !!!3 特定のSkillを振る [h: skillNum = x] [macro("SkillByToken@Lib:General"): json.set("{}", "SkillNum", skillNum, "Token", currentToken())] ---- 以下解説 xは以下の通り 0: Acrobatics 1: Appraise 2: Bluff 3: Climb 4: Craft 5: Diplomacy 6: Disable Device 7: Disguise 8: Escape Artist 9: Fly 10: Handle Animal 11: Heal 12: Intimidate 13: Knowledge (Arcana) 14: Knowledge (Dungeoneering) 15: Knowledge (Engineering) 16: Knowledge (Geography) 17: Knowledge (History) 18: Knowledge (Local) 19: Knowledge (Nature) 20: Knowledge (Nobility) 21: Knowledge (Planes) 22: Knowledge (Religion) 23: Linguistics 24: Perception 25: Perform 26: Profession 27: Ride 28: Sense Motive 29: Sleight Of Hand 30: Spellcraft 31: Stealth 32: Survival 33: Swim 34: Use Magic Device ---- ---- !!!4 Lay on Handsを自分に撃ち、自動回復 [h: diceNum = floor(getProperty("HD")/2)] [h: dice = diceNum+"d6"] Lay on Hands: [r: dice] + [r: diceNum]*2 = [r: Heal = eval(dice) + diceNum*2]
[h: Heal = 0 - Heal] [macro("Damage@Lib:General"): json.set("{}", "Damage", Heal, "Token", currentToken())] ---- 自分では無く選んだToken1つを回復させたい時にはcurrentToken()の代わりにgetSelected()