
什长
- 元宝
- 10 个
- 鸿盾币
- 0 枚
- 金币
- 15076 枚
|
# 翎风引擎智能挂机脚本
```lua
-- 智能挂机脚本
-- 功能:
-- 1. 身边20步以内有人自动随机
-- 2. HP不足15%自动回城补血
-- 3. 自定义时间换图
-- 4. 记忆五个地图坐标
-- 全局变量定义
local g = {
-- 记忆的五个地图坐标
savedPositions = {
{map="3", x=100, y=100}, -- 示例坐标1
{map="3", x=120, y=120}, -- 示例坐标2
{map="5", x=80, y=80}, -- 示例坐标3
{map="5", x=90, y=110}, -- 示例坐标4
{map="7", x=150, y=150} -- 示例坐标5
},
currentPosIndex = 1, -- 当前使用的位置索引
lastMapChangeTime = 0, -- 上次换图时间
mapChangeInterval = 1800, -- 换图间隔(秒),默认30分钟
lastRandomTime = 0, -- 上次随机时间
randomCooldown = 5, -- 随机冷却时间(秒)
townMap = "0", -- 回城地图编号
townX = 300, -- 回城X坐标
townY = 300 -- 回城Y坐标
}
-- 主循环函数
function main()
while true do
-- 检查HP是否低于15%
if CheckHP() then
BackToTown()
RestoreHP()
ReturnToHunt()
continue
end
-- 检查周围是否有玩家
if CheckNearbyPlayers() then
RandomMove()
continue
end
-- 检查是否需要换图
if NeedChangeMap() then
ChangeMap()
continue
end
-- 正常挂机行为
Hunt()
-- 短暂延迟,避免CPU占用过高
Delay(100)
end
end
-- 检查HP是否低于15%
function CheckHP()
local currentHP = GetHP()
local maxHP = GetMaxHP()
return (currentHP / maxHP) < 0.15
end
-- 回城函数
function BackToTown()
Say("HP过低,回城补血")
UseItem("回城卷") -- 使用回城卷
WaitMap(g.townMap, 10000) -- 等待10秒内到达回城地图
MoveTo(g.townX, g.townY) -- 移动到安全区
end
-- 恢复HP函数
function RestoreHP()
while true do
local currentHP = GetHP()
local maxHP = GetMaxHP()
if currentHP / maxHP > 0.9 then -- HP恢复到90%以上
break
end
-- 使用药品
if GetItemCount("强效金创药") > 0 then
UseItem("强效金创药")
elseif GetItemCount("金创药") > 0 then
UseItem("金创药")
end
-- 等待恢复
Delay(2000)
end
end
-- 返回挂机点
function ReturnToHunt()
local pos = g.savedPositions[g.currentPosIndex]
Say("返回挂机点")
UseItem("随机传送卷") -- 使用随机卷接近目标地图
-- 尝试传送到目标地图
if GetMapName() ~= pos.map then
MoveToMap(pos.map)
WaitMap(pos.map, 10000) -- 等待10秒内到达目标地图
end
-- 移动到记忆坐标
MoveTo(pos.x, pos.y)
end
-- 检查周围20步内是否有玩家
function CheckNearbyPlayers()
local players = GetNearbyPlayers(20) -- 获取20步内的玩家列表
return #players > 0 -- 如果有玩家返回true
end
-- 随机移动函数
function RandomMove()
local currentTime = GetTime()
if currentTime - g.lastRandomTime < g.randomCooldown then
return -- 冷却时间内不执行随机
end
g.lastRandomTime = currentTime
local directions = {"上", "下", "左", "右", "左上", "右上", "左下", "右下"}
local dir = directions[math.random(1, #directions)]
Move(dir, math.random(3, 10)) -- 随机移动3-10步
end
-- 检查是否需要换图
function NeedChangeMap()
local currentTime = GetTime()
return currentTime - g.lastMapChangeTime > g.mapChangeInterval
end
-- 换图函数
function ChangeMap()
g.lastMapChangeTime = GetTime()
g.currentPosIndex = g.currentPosIndex % #g.savedPositions + 1 -- 循环切换到下一个位置
local pos = g.savedPositions[g.currentPosIndex]
Say("换图到 "..pos.map.."("..pos.x..","..pos.y..")")
-- 如果已经在目标地图,只需移动
if GetMapName() == pos.map then
MoveTo(pos.x, pos.y)
else
-- 传送到目标地图
MoveToMap(pos.map)
WaitMap(pos.map, 10000) -- 等待10秒内到达目标地图
MoveTo(pos.x, pos.y)
end
end
-- 挂机行为函数
function Hunt()
-- 攻击最近的怪物
local monster = GetNearestMonster()
if monster then
Attack(monster.id)
else
-- 没有怪物时随机走动
if math.random(1, 100) > 70 then -- 30%概率移动
RandomMove()
end
end
-- 拾取物品
PickupItems()
end
-- 拾取物品函数
function PickupItems()
local items = GetGroundItems()
for _, item in ipairs(items) do
if IsValuable(item.name) then -- 自定义判断物品价值
Pickup(item.id)
Delay(500) -- 拾取间隔
end
end
end
-- 判断物品是否有价值(需根据实际情况修改)
function IsValuable(itemName)
local valuableItems = {
"金币", "金条", "强效金创药", "强效魔法药",
"沃玛装备", "祖玛装备", "赤月装备" -- 示例物品
}
for _, name in ipairs(valuableItems) do
if itemName == name then
return true
end
end
return false
end
-- 脚本入口
main()
```
## 使用说明
1. **配置说明**:
- 修改 `savedPositions` 中的五个坐标为你常用的挂机点
- 调整 `mapChangeInterval` 设置换图间隔时间(秒)
- 设置 `townMap`, `townX`, `townY` 为你的回城安全区坐标
2. **功能说明**:
- 当检测到周围20步内有其他玩家时,会自动随机移动
- HP低于15%时会自动回城补血,补满后返回挂机点
- 每30分钟(可调)会自动切换到下一个记忆的挂机点
- 会攻击附近怪物并自动拾取有价值物品
3. **注意事项**:
- 需要根据实际游戏中的API调整函数名称
- 药品名称和地图编号需要替换为游戏中的实际值
- 建议先在安全区域测试脚本功能
如需进一步定制,可以根据实际游戏机制调整检测范围、冷却时间等参数。 |
|