------------------------------------------------- -- きのこAI 1.00 最終更新日:2007/9/4 ------------------------------------------------- Packclock = 200 --プログラム全体の稼動クロック Cartclock = 2000 --カーレボ使用クロック Plantclock = 2000 --植物栽培使用クロック Stealclock = 2000 --スティール用クロック Stealnum = 3 --スティール試行回数 times = 0 --プログラムの経過時間 Packtime = 0 --プログラムの稼動予定時間 Skilltime = 0 --スキル使用予定時間 Stealtimes = 0 --スティール試行回数加算用 MyID = 0 MyOwner = 0 Starget = 0 --ケミターゲットIDを格納 XX,YY = 0,0 --ケミの位置 Firstexe = 0 --初期設定フラグ SkillNo = 0 ------------- ●以下、メイン関数● -------------- function AI(myid) if GetTick() < Packtime then return end --稼動時間までループ if Firstexe == 0 then --初期設定するなら MyID,MyOwner = myid,GetV(0,myid) --ホムとケミIDを取得 XX,YY = GetV(1,MyOwner) --ホムの移動地点を取得 Stealtimes = 0 Firstexe = 1 end times = GetTick() --現在の時間を取得 Packtime = times + Packclock --次の動作時間を記録 if times >= Skilltime then --ケミスキル使用時間なら if SkillNo == 0 then SkillGround(MyID,1,491,XX-1,YY) --植物栽培 SkillNo = 1 --スキルを1つシフト Skilltime = times + Plantclock --次の動作時間を記録 elseif SkillNo == 1 then local actors = GetActors(MyID) --オブジェクト情報を取得 for i,v in ipairs(actors) do --全オブジェクトに対して local EX,EY = GetV(1,v) --Mobの現在地を取得 if EX == XX-1 and EY == YY then --攻撃範囲内なら Starget = v end end SkillNo = 2 --スキルを1つシフト elseif SkillNo == 2 then if Stealtimes < Stealnum then SkillObject(MyID,1,50,Starget) --スティール使用 Stealtimes = Stealtimes + 1 Skilltime = times + Stealclock --次の動作時間を記録 else Stealtimes = 0 SkillNo = 3 --スキルを1つシフト end elseif SkillNo == 3 then SkillObject(MyID,1,153,Starget) --カーレボ使用 Skilltime = times + Cartclock --次の動作時間を記録 SkillNo = 0 --スキルを戻す end end end -------------------------------------------------