2017/10/07
■ [変愚蛮怒/開発] player_typeの s32b magic_num1[108]; byte_hack magic_num2[108]; の使用用途について(Ver2.2.0.89)
とりあえず適当に。魔道具術師だけバグ臭い箇所を見かけてちょっと細かく検証中。
- 共通仕様
- プレイヤーの初期化時にはmagic_num1 = magic_num2 = 0と全てリセットされる。
- 錬気術師の場合
- magic_num1[0]に気の値を代入。
- 魔道具術師の場合
- 使用するインデックスのうち0~35までが杖、36~71までが魔法棒、72~107はロッドになる。
- 杖と魔法棒の場合杖、magic_num1が各アイテムごとの現在の残り回数/0x10000(/65336)量、magic_num2が最大使用回数になる。
- ロッドの場合、magic_num1が必要チャージ期間、magic_num2が最大使用回数になる。
- 宿屋の回復により、杖、魔法棒はmagic_num1 = magic_num2 * 0x10000、ロッドはmagic_num1 = 0となる形で完全回復する。
- アーティファクト発動のACT_CURE_MANA_FULL及び魔力回復の薬で以下のように回復する。
- 杖、魔法棒は最大使用回数が10回未満ならmagic_num1 += EATER_CHARGE * 3 で3回分、10回以上なら、magic_num1 += magic_num2 * EATER_CHARGE / 3で最大使用回数の1/3(切り捨て)回分回復する。
- ロッドは最大使用回数が10回未満ならmagic_num1 -= EATER_ROD_CHARGE * 3 で3回分?、10回以上なら、magic_num1 -= magic_num2 * EATER_CHARGE / 3 * pval(ロッド毎の必要ターン分)で最大使用回数の1/3(切り捨て)回分回復する。
- 吟遊詩人の場合
- start_singing()中で、magic_num1[0]にMUSIC_*を、magic_num2[0]に歌の魔法IDを代入する。
- stop_singing()中で、magic_num1[0]にMUSIC_NONEを、magic_num2[0]に0を代入する。
- magic_num1[2]に歌の継続数を代入する。
- 呪術ハイメイジの場合
- magic_num1[0]中に詠唱中の呪術IDフラグ配列が入る。
- magic_num2[0]中に詠唱の停止を行う呪術IDフラグ配列が入る。
- magic_num1[1]中に詠唱中の呪術IDフラグ配列が入る。
- 「我慢」「復讐の宣告」を開始した場合にmagic_num2[1]に0/1(我慢/復讐の宣告)、magic_num2[2]に残りターンをいれる。magic_num1[2]が蓄積したダメージ量になる。
- 鍛冶師の場合
- magic_num1に各エッセンス値が入る。
- 青魔導師の場合
- magic_num2に習得済みの魔法フラグが入る[0=未収得、1=習得済]