找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

霸图(精修)合集5cq最强广告排行站GM交流群点击金币投放广告
996pc
5cq
帝王
服务器
神盾
查看: 77|回复: 2

请帮我用翎风引擎标准脚本语言写一份智能挂机脚本

[复制链接]

3

主题

85

回帖

149

积分

什长

元宝
37
鸿盾币
0
金币
360
发表于 3 天前 | 显示全部楼层 |阅读模式
请帮我用翎风引擎标准脚本语言写一份智能挂机脚本
要求身边20步以内有人自动随机
hp不足百分之15自动回城补血
自定义时间换图
记忆五个地图坐标
回复

使用道具 举报

6

主题

-5

回帖

59

积分

什长

元宝
10
鸿盾币
0
金币
15076
发表于 3 天前 | 显示全部楼层
# 翎风引擎智能挂机脚本

```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调整函数名称
   - 药品名称和地图编号需要替换为游戏中的实际值
   - 建议先在安全区域测试脚本功能

如需进一步定制,可以根据实际游戏机制调整检测范围、冷却时间等参数。
回复

使用道具 举报

1733

主题

5228

回帖

2万

积分

管理员

元宝
4624
鸿盾币
0
金币
34093

最佳新人

发表于 3 天前 | 显示全部楼层
image.webp


你看我是怎么给他强调的,  开始说明,最好还要强调
否则这个ai**得要死    只会用lua
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|传奇服务端 ( 网站备案号:湘ICP备2023036171号-1 )|Sitemap

GMT+8, 2025-4-17 00:59 , Processed in 0.015199 second(s), 9 queries , Gzip On, Redis On.

Powered by 73su X3.5

快速回复 返回顶部 返回列表