LUACN论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
热搜: YJWOW MagicStone BoL
楼主: 懒动行不行

WBE/Lua学习心得(八):如何用战斗日志事件写一个鸟德月蚀内置CD监控

[复制链接]
发表于 2024-5-30 19:39:23 | 显示全部楼层
版主幸苦了,学习学习!
回复 支持 反对

使用道具 举报

发表于 2024-5-31 10:32:11 | 显示全部楼层
大佬的帖子必须支持~~~~~
回复 支持 反对

使用道具 举报

发表于 2024-5-31 14:33:33 | 显示全部楼层
谢谢分享谢谢分享
回复 支持 反对

使用道具 举报

发表于 2024-5-31 17:18:41 | 显示全部楼层
学习一下大佬的。。前几个月自己摸索了一下。。卡顿的厉害。。哈哈
回复 支持 反对

使用道具 举报

发表于 2024-6-1 12:19:29 | 显示全部楼层
刚好写了 一个 内置cd的,学习一下
回复 支持 反对

使用道具 举报

发表于 2024-6-1 20:17:44 | 显示全部楼层
我去~大佬~学习学习~
回复 支持 反对

使用道具 举报

发表于 2024-6-1 22:09:47 | 显示全部楼层
战斗日志事件写一个鸟德月蚀内置
回复 支持 反对

使用道具 举报

发表于 2024-6-3 21:36:43 | 显示全部楼层
大佬厉害6666666666666666666666666
回复 支持 反对

使用道具 举报

发表于 2024-6-4 15:31:29 | 显示全部楼层
支持一下顺便嫖点伸手费
回复 支持 反对

使用道具 举报

发表于 2024-6-6 22:47:15 | 显示全部楼层
  • 定义了两个局部变量 eclipseMonitoring 和 triggertime,它们分别用于监控月蚀状态和记录触发时间。如果它们之前没有被设置,则初始化为0。
    local eclipseMonitoring = eclipseMonitoring or 0local triggertime = triggertime or 0

  • 创建一个框架 frame 并注册了一个事件 COMBAT_LOG_EVENT_UNFILTERED,这是一个战斗日志事件,用于捕捉游戏中所有的战斗相关事件。
    local frame = CreateFrame("Frame")frame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")

  • 为框架设置了一个事件处理脚本 OnEvent,当触发注册的事件时,脚本会执行。
    frame:SetScript("OnEvent", function(self, event, ...)    -- 事件处理逻辑end)

  • 在 OnEvent 函数中,使用 select 函数获取事件参数,包括子事件类型 subevent、施法者GUID sourceGUID、目标GUID destGUID、玩家GUID playerGUID、法术ID spellID 和法术名称 spellName。
  • 通过比较 subevent 的值和 sourceGUID 与 playerGUID 是否相同,来判断是否是玩家对自己施放的法术。如果是月蚀增效(Eclipse of the Moon)的开始(法术ID 48518),则设置 eclipseMonitoring 为1并记录当前时间 triggertime。如果是月蚀结束(法术ID 48517),则重置 eclipseMonitoring 为0。
  • 检查当前时间 currenttime 与 triggertime 的差值,如果 eclipseMonitoring 为1且时间差大于或等于30秒,则重置 eclipseMonitoring 为0,这可能用于监控月蚀效果是否持续了足够长的时间。
  • 定义了一个函数 eclipseStatus,用于返回当前的月蚀监控状态。
    function eclipseStatus()    return eclipseMonitoringend



回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

小黑屋|手机版|Archiver|LUACN论坛

GMT+8, 2026-5-31 04:14 AM , Processed in 0.030771 second(s), 29 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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