AIはくまAIで末尾のendの前に↓をいれてる。 ------------------------------------------------- local zx, zy = GetV( V_POSITION, MyEnemy )
if (MyState == ATTACK_ST) then OnATTACK_ST () Move(MyID,zx,zy+1) end if (MyState == ATTACK_ST) then OnATTACK_ST () Move(MyID,zx,zy-1) end ------------------------------------------------- これだと敵の上下に壁があると移動止まっちゃうけど、 どこでも平気な十字移動にすると重い時間帯はラグりやすくなるのがネック。 ASPDは変わらないから縦でも横でも好きなほう入れとけばいい。ただし斜めは×。
-- 初撃スキル用関数 function UseFirstSkill() if FirstAttack and FirstAttackFlag then -- 初撃スキル設定 if AttackSkillDelay < GetTick() then if (AutoSkillSPLimit < (HomunculusSP / HomunculusMaxSP)*100 and HomunculusSP ~= 0 and IsMob(M_SKILL,MyEnemy) == 0) then FA_SkillLevel,A_Skill = SetActiveSkill(FA_SkillLevel) -- スキルをセット if FA_SkillLevel ~= 0 then -- レベルが0を返されてなければ SkillObject (MyID,FA_SkillLevel,A_Skill,MyEnemy) -- スキル攻撃 AttackSkillDelay = GetTick() + SkillDelay -- 使用後ディレイ --TraceAI (" !! First Attack !! ") end end FirstAttackFlag = false end end end
>>661 簡単に言うと @「FirstAttackFlag」が記述されている箇所全てに「スキルを使った回数」を保持する変数を追加する(「FirstAttackCount」とか) A「FirstAttackFlag」と同じように、初期化・変数の塗り替えを行う。 ただし、「FirstAttackFlag」はフラグなのでtrueもしくはfalseだが、「FirstAttackCount」は数値なので初期値は「0」、スキルを使ったら「FirstAttackCount=FirstAttackCount+1」とかになる Bあとは・・気合か?ヒントだけ書いてみる。こっこAIは使わないんでこのままだと多分動かない。 if FirstAttack and FirstAttackFlag then -- 初撃スキル設定 ↓ if FirstAttack and (FirstAttackFlag or FirstAttackCount <= 2) then -- 初撃スキル設定