--[[ ====================================================================== 1.AI.luaが保存されているフォルダと同じフォルダに保存 2.AI.luaファイルを開き、以下の箇所を修正する 2-1.「require "./AI/Util.lua"」の直後に、 require "./AI/Addon.lua" -- ←この行を追加 2-2.以下の部分を修正 function OnSKILL_OBJECT_CMD(level,skill,id) TraceAI ("OnSKILL_OBJECT_CMD") MySkillLevel = level MySkill = skill MyEnemy = id MyState = CHASE_ST -- ←この部分をコメントアウトし、 MyState = LONGRANGE_SKILLATTACK_ST -- ←この行を追加 end 2-3.一番下にある以下の部分を修正 elseif (MyState == FOLLOW_CMD_ST) then OnFOLLOW_CMD_ST () elseif MyState == LONGRANGE_SKILLATTACK_ST then -- ←追加 OnLONGRANGE_SKILLATTACK_ST() -- ←追加 end 2-4.間違いがないかよーーーーーーーく確認して保存 3.テスト。動作すればOK。後は↓にある定数(変更可能)とある部分を 自分の好みに書き換えて下さい。 ---------------------------------------------------------------------- ※この機能が実行中に中止したい場合は[ALT]+[T]コマンドで中止で きます。 ====================================================================== --]] -- 定数(変更可能↓の2個だけ!) LONGRANGEINTERVAL = 2000 -- スキル使用インターバル(ミリ秒) USESKILLSPPER = 50 -- スキル使用に必要な残SP量(%) -- 定数(変更不可) LONGRANGE_SKILLATTACK_ST = 2001 -- 拡張ステータス -- 変数(さわるな) LongRangeDelay = 0 -- ディレイ管理用 -- 遠距離スキル攻撃状態 function OnLONGRANGE_SKILLATTACK_ST() -- 目標消失 if IsLostTarget(MyEnemy) == true then MyState = IDLE_ST MyEnemy = 0 MySkill = 0 return end -- もし追加するなら、ここにターゲットとの距離を判断する処理を書き、 -- 指定距離まで近づく処理を書く -- スキルディレイ待機中 if (LongRangeDelay ~= 0) and (LongRangeDelay > GetTick()) then return end -- SP回復率が指定%未満である if math.floor((GetV(V_SP, MyID) / GetV(V_MAXSP, MyID)) * 100) < USESKILLSPPER then return end -- スキル使用 SkillObject(MyID, MySkillLevel, MySkill, MyEnemy) LongRangeDelay = GetTick() + LONGRANGEINTERVAL end -------------------------- -- ターゲットの消失判定 -------------------------- function IsLostTarget(target) -- ターゲット無し if target == 0 then return true end -- ターゲットは視界外 if IsOutOfSight(MyID, target) == true then return true end -- ターゲットは死亡 if GetV(V_MOTION, target) == MOTION_DEAD then return true end return false end