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

    QQ登录

    只需一步,快速开始

    查看: 21|回复: 0

    传奇游戏物品掉落,全服提示的字体为多个颜色如何设置

    [复制链接]
    avatar
    • 打卡等级:魔龙套勇士
    • 打卡总天数:130
    • 打卡月天数:23
    • 打卡总奖励:14868
    • 最近打卡:2025-08-23 00:38:01

    7084

    主题

    150

    回帖

    8650

    积分

    管理员

    本站站长

    积分
    8650
    online_admin 发表于 2025-7-27 16:26:23 | 显示全部楼层 |阅读模式
    在传奇游戏中,物品掉落时的全服提示(如 “【全服公告】玩家 XXX 在沃玛神殿获得了屠龙刀!”)实现多色字体显示,需通过引擎脚本配置结合颜色控制代码实现。不同引擎(GOM、GEE、BLUE 等)的配置方式略有差异,但核心逻辑一致,以下是通用实现方法:
    一、核心原理:颜色控制代码
    传奇引擎通过特定格式的颜色代码控制文本颜色,代码通常嵌入在提示文本中,格式为 <颜色值> 或 \颜色值(不同引擎符号可能不同)。常见颜色值与对应效果如下(以 GOM 引擎为例):

    颜色代码        显示效果        颜色代码        显示效果
    <1>        白色(默认)        <10>        浅红色
    <2>        绿色        <20>        深红色
    <3>        浅蓝色        <255>        金色(高亮)
    <4>        深蓝色        <128>        橙色
    <5>        紫色        <64>        青色

    注意:不同引擎支持的颜色值范围不同(如 GEE 引擎支持<0>~<255>,BLUE 引擎需在String.ini中定义),需参考对应引擎的官方文档。
    二、配置步骤(以 GOM 引擎为例)
    1. 定位物品掉落提示脚本
    全服掉落提示通常在怪物死亡事件脚本中触发,核心文件为:
    D:\MirServer\Mir200\Envir\QuestDiary\MonDie\QFunction-0.txt(通用怪物死亡处理脚本)
    2. 找到物品掉落判断逻辑
    在脚本中搜索物品掉落相关的函数(如DropItem、GiveItem或自定义掉落逻辑),通常格式如下:

    lua
    -- 示例:怪物死亡时掉落物品的判断
    function OnMonsterDie(Monster, Killer)
        local itemIdx = 1001  -- 物品Idx(如屠龙刀=1001)
        local dropRate = 10   -- 掉落概率(10%)
        if math.random(1, 100) <= dropRate then
            local item = Monster.DropItem(itemIdx, 1)  -- 掉落物品
            if item then
                -- 发送全服提示(此处需添加多色字体代码)
                SendBroadMsg(0, 0, 0, "【全服公告】玩家"..Killer.Name.."在"..Monster.MapName.."获得了"..item.Name.."!", 0, 0, 0)
            end
        end
    end
    3. 嵌入多色颜色代码
    修改SendBroadMsg函数的文本参数,在需要变色的部分插入颜色代码,例如:

    lua
    -- 多色字体示例:公告标题金色,玩家名红色,物品名绿色
    local msg = "<255>【全服公告】<10>玩家"..Killer.Name.."<1>在"..Monster.MapName.."获得了<2>"..item.Name.."<!>"
    SendBroadMsg(0, 0, 0, msg, 0, 0, 0)

    <255>:将 “【全服公告】” 设置为金色
    <10>:将玩家名设置为浅红色
    <2>:将物品名设置为绿色
    <1>:恢复默认白色(避免后续文本继承颜色)
    4. 特殊物品单独配置(可选)
    若仅需特定物品(如神器)显示多色提示,可通过itemIdx判断:

    lua
    if itemIdx == 1001 then  -- 仅屠龙刀触发多色提示
        local msg = "<255>【神器出世】<20>玩家"..Killer.Name.."<1>获得了<255>屠龙刀<1>!"
        SendBroadMsg(0, 0, 0, msg, 0, 0, 0)
    else
        -- 普通物品默认提示
        local msg = "【全服公告】玩家"..Killer.Name.."获得了"..item.Name.."!"
        SendBroadMsg(0, 0, 0, msg, 0, 0, 0)
    end
    三、其他引擎配置差异
    1. GEE 引擎
    颜色代码格式为 \数字(如\255代表金色),需在SendMsg函数中使用:
    lua
    local msg = "\255【全服公告】\10玩家"..Killer.Name.."\1获得了\2"..item.Name.."\1!"
    SendMsg(0, 0, 0, msg, 0)

    需在Envir\MessageType.txt中开启全服广播权限。
    2. BLUE 引擎
    颜色代码需在Data\String.ini中定义(如Color1=<255,215,0>对应金色),脚本中用{Color1}调用:
    lua
    local msg = "{Color1}【全服公告】{Color10}玩家"..Killer.Name.."{Color1}获得了{Color2}"..item.Name.."!"
    BroadcastMsg(msg)

    四、注意事项
    颜色代码闭合:若未用<1>(默认色)闭合,后续文本会继承前色(如物品名后的感叹号可能变绿)。
    引擎兼容性:部分老引擎(如 HERO 1.76)仅支持基础颜色(1~5),需升级引擎或限制颜色范围。
    显示效果测试:修改后重启服务端,通过@make 物品ID生成物品并触发掉落,检查全服提示是否正常变色。
    性能优化:避免在高频掉落物品(如药水)中使用多色提示,减少服务器资源消耗。

    通过上述方法,可实现物品掉落全服提示的多色字体效果,增强游戏内的视觉冲击和重要物品的辨识度。实际配置时需结合所用引擎的具体语法,参考引擎官方脚本手册调整细节。

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

    本版积分规则

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

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