雖然使用API 中game.findVisibleEnemies()可以找到敵人,但找到的敵人是不是最好呢?
有些敵人可能打不到,但你卻瞄準他,有些敵人十分接近你但你卻不瞄準他;
以下提供一些演算法,方便大家針對不同情況來選擇敵人。
找出最低血量的敵人 if #game.findVisibleEnemies() then mix, LowHpTerget = 101,nil for i, terget in ipairs (game.findVisibleEnemies()) do if terget.hp < mix then LowHpTerget, mix = terget,terget.hp end end if LowHpTerget then me.talk("最低血量的敵人:"..LowHpTerget.info.name.." HP:"..LowHpTerget.hp) me.turnTo(LowHpTerget) end end | 最近、可攻擊到的敵人 if #game.findVisibleEnemies() then distance, ClosedTerget = game.map.size.x * game.map.size.y,nil for i, terget in ipairs (game.findVisibleEnemies()) do if terget.loc:distanceTo(me.loc) < distance and game.map.hasClearLine(me.loc.x, me.loc.y , terget.loc.x, terget.loc.y, isRangedWeapon) then ClosedTerget, distance = terget,me.loc:distanceTo(terget.loc) end end if ClosedTerget then me.talk("最近、可攻擊到的敵人:"..ClosedTerget.info.name) me.moveTo(ClosedTerget) end end |