魔兽世界Lua插件开发中如何为print输出文本设置颜色
魔兽世界插件自定义打印输出颜色实现
核心实现逻辑
WoW 客户端的控制台输出原生支持颜色转义语法,无需引入额外依赖,直接在字符串中拼接官方约定的颜色标记即可生效,标记规则为:
- 颜色起始位:格式为
|cAARRGGBB,其中AA为透明度参数,一般用FF表示完全不透明;后续6位RRGGBB为十六进制RGB颜色值,例如纯红色对应|cFFFF0000、纯绿色对应|cFF00FF00、明黄色对应|cFFFFFF00 - 颜色结束位:标记为
|r,用于终止之前设置的颜色效果,后续文本会恢复系统默认输出色
适配你现有代码的修改方案
你可以直接把颜色标记拼接到原有print语句的字符串里,为了后续维护方便,建议把常用颜色定义为独立常量复用,修改后的参考代码如下:
-- 预先定义常用颜色常量,避免重复写字符串 local COLOR_LABEL = "|cFF88CCFF" -- 装备位置标签用浅蓝色 local COLOR_LOW_DUR = "|cFFFF0000" -- 低耐久数值用红色提醒 local COLOR_NORMAL_DUR = "|cFF00FF00" -- 正常耐久用绿色 local COLOR_RESET = "|r" -- 颜色重置标记 currentHead, maximumHead = GetInventoryItemDurability(1); currentShoulder, maximumShoulder = GetInventoryItemDurability(3); currentChest, maximumChest = GetInventoryItemDurability(5); -- 按需求拆分文本段拼接对应颜色 print(COLOR_LABEL .. "Head: " .. COLOR_RESET .. currentHead .. "/" .. maximumHead .. " Durability") print(COLOR_LABEL .. "Shoulders: " .. COLOR_RESET .. currentShoulder .. "/" .. maximumShoulder .. " Durability") print(COLOR_LABEL .. "Chest: " .. COLOR_RESET .. currentChest .. "/" .. maximumChest .. " Durability")
注意事项
- 必须在彩色文本末尾补上
|r重置标记,否则后续所有控制台输出的内容都会沿用上一次设置的颜色,影响插件其他功能的显示效果 - 所有十六进制RGB色值都可以根据自己的视觉习惯调整,不需要局限示例里的配色
- 你原有代码里头盔、肩膀的打印输出遗漏了最大耐久值,示例里已经补上,展示效果会更直观
内容的提问来源于stack exchange,提问作者AfterHover
相关产品推荐
相关产品推荐

