设为首页收藏本站
  • 官方微信
    lmkj_wx 微信公众号 添加方式:
    1:扫描左侧二维码
  • 手机访问
    lmkj_sj
  •  找回密码
     立即注册

    QQ登录

    只需一步,快速开始

    查看: 5|回复: 0

    传奇游戏如何增加查看玩家装备时聊天框有信息提示

    [复制链接]
    avatar
    • 打卡等级:魔龙套勇士
    • 打卡总天数:93
    • 打卡月天数:17
    • 打卡总奖励:10952
    • 最近打卡:2025-07-17 00:00:00

    5695

    主题

    88

    回帖

    7199

    积分

    管理员

    本站站长

    积分
    7199
    online_admin 发表于 昨天 18:03 | 显示全部楼层 |阅读模式
    要在传奇游戏中实现查看玩家装备时聊天框显示信息提示,可根据不同引擎类型选择以下方法:
    一、服务器端配置(适用于部分引擎)
    M2 引擎设置
    若使用 GOM、BLUE 等引擎,可通过 M2Server 配置物品备注或套装系统触发提示:
    物品备注:进入 M2Server 的 “查看 - 列表信息二 - 物品备注”,编辑装备属性,在备注中添加提示内容(如 “<S = 攻击 + 10;C=255>”),查看装备时聊天框会自动显示。
    套装系统:在 “套装系统 - 套装备注” 中设置组合装备的提示信息,格式为 “颜色 / 套装名称 | 数量 | 装备 1 | 装备 2: 颜色 / 属性描述”,例如 “223 / 战士套装 | 2 | 裁决 | 圣战头盔:253 / 攻魔道提升”。
    特定引擎配置
    BLUE/LEGEND 引擎:在服务器端Envir目录下创建或编辑HintItemList.txt,每行添加需要提示的装备名称(如 “屠龙刀”),查看该装备时全服聊天框会显示提示。
    其他引擎:参考掉落提示设置方法,在 M2 中勾选 “掉落提示” 并添加装备名称,可能需结合客户端事件触发。
    二、客户端插件开发(通用方案)
    使用引擎 API 发送消息
    若引擎支持插件开发(如 GOM、91M2),可通过以下步骤实现:
    获取装备信息:使用GetUserItemName命令获取目标玩家装备名称(如GetUserItemName 1 S10获取武器名称并存入变量 S10)。
    发送聊天消息:调用引擎提供的 API 发送消息,例如 GOM 引擎使用SendMessage函数:
    lua
    -- 发送红色系统消息
    Player.SendMessage("<S=该玩家装备:<$STR(S10)>;C=255>", 0)
    -- 全服广播蓝色提示
    Gamelib.BroadcastSay("玩家"..Player.Name.."展示了"..ItemName, 116, 0)

    参数C控制文字颜色(0-255),0表示红色系统消息,1为绿色,2为蓝色。
    事件触发逻辑
    触发点:在客户端查看装备的事件(如点击装备按钮)中添加脚本,例如:
    lua
    -- 当玩家点击其他玩家装备时触发
    function OnShowItem(player, targetPlayer, itemPos)
        local itemName = GetUserItemName(targetPlayer, itemPos)
        if itemName ~= "" then
            player.SendMessage("查看装备:"..itemName, 2) -- 蓝色消息
        end
    end

    兼容性:不同引擎事件名称可能不同,需参考引擎文档(如 GOM 的OnPlayerShowItem事件)。
    三、脚本命令实现(适用于支持脚本的引擎)
    检查装备并触发提示
    在服务器端脚本(如QFunction-0.txt)中使用CHECKITEMW命令判断装备:
    lua
    -- 当玩家查看穿戴屠龙刀的玩家时提示
    [@CheckItem]
    CHECKITEMW 屠龙刀
    SENDMSG 5 该玩家持有屠龙刀!

    此方法需结合查看装备时的触发事件(如@OnShowItem)调用。
    格式化显示属性
    若需显示装备详细属性(如攻击 + 10),需通过数据库查询或引擎接口获取属性值,例如:
    lua
    -- 获取装备攻击属性
    local attack = GetItemAttrib(itemName, "Attack")
    player.SendMessage(itemName..":攻击+"..attack, 3) -- 绿色消息

    四、注意事项
    引擎差异:GOM 引擎可直接通过 API 发送消息,BLUE/LEGEND 需配置文本文件,其他引擎需结合事件与脚本。
    冷却时间:为避免刷屏,可在脚本中添加冷却机制,例如:
    lua
    -- 每30秒仅提示一次
    if GetTime() - player.LastShowItemTime > 30 then
        player.SendMessage("装备信息", 2)
        player.LastShowItemTime = GetTime()
    end

    权限与路径:修改 M2 配置文件需服务器权限,路径通常为D:\MirServer\Mir200\M2Server.exe。
    五、示例流程(以 GOM 引擎为例)
    服务器端配置
    在 M2 的 “物品备注” 中为屠龙刀添加备注:255/屠龙刀:攻击+50。
    保存并重启 M2。
    客户端插件开发
    使用 GOM 插件 API,在查看装备事件中调用:
    lua
    function OnPlayerShowItem(player, targetPlayer, itemPos)
        local itemName = GetUserItemName(targetPlayer, itemPos)
        if itemName == "屠龙刀" then
            player.SendMessage("查看装备:<S=屠龙刀;C=255>,攻击+50", 0)
        end
    end

    编译插件并放置于引擎目录。
    测试验证
    玩家点击其他玩家的屠龙刀时,聊天框显示红色提示 “查看装备:屠龙刀,攻击 + 50”。

    通过以上方法,可在不修改客户端核心代码的情况下,快速实现查看装备时的聊天框提示功能。具体操作需根据游戏引擎类型和权限进行调整。

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

    本版积分规则

    QQArchiver 手机版 小黑屋 39传奇素材网 ( 蜀ICP备2022016510号-3 )

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