- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
普段使っている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]<br>
[h: Heal = 0 - Heal]
[macro("Damage@Lib:General"): json.set("{}", "Damage", Heal, "Token", currentToken())]
----
自分では無く選んだToken1つを回復させたい時にはcurrentToken()の代わりにgetSelected()