トップ 一覧 検索 ヘルプ RSS ログイン

MacroSampleの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
普段使っている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()