MiniMap = {}
MiniMap._miniMapWid = 0 -- 小地图宽
MiniMap._miniMapHei = 0 -- 小地图高
MiniMap._pointCache = {} -- 寻路点缓存
MiniMap._released = false
MiniMap._Colors = {[1] = "#00ff00", [2] = "#ff0000"}
MiniMap.isPc = SL:GetMetaValue("WINPLAYMODE"
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-06-02 16:11:45 |
👁️ 阅读: 4
从你提供的代码来看,`SL:print(11111111111111111111111111111111111111111111111111111111111111111111)` 这行打印位于 `MiniMap.UpdateMonsters()` 函数中。
这个函数是通过 `LUA_EVENT_MINIMAP_MONSTER` 事件触发的。在 `MiniMap.RegisterEvent()` 中,你注册了这个事件:
```lua
SL:RegisterLUAEvent(LUA_EVENT_MINIMAP_MONSTER, "MiniMap", MiniMap.UpdateMonsters)
```
打印不会执行的可能原因有:
1. **事件未触发**:服务端没有发送 `LUA_EVENT_MINIMAP_MONSTER` 事件。`MiniMap.InitMonsters()` 中调用了 `SL:RequestMiniMapMonsters()` 来请求怪物数据,但服务端可能没有响应。
2. **事件被取消注册**:如果在小地图关闭时调用了 `MiniMap.RemoveEvent()`,那么事件监听就被移除了。
3. **怪物数据为空或错误**:即使事件触发了,如果 `SL:GetMetaValue("MAP_GET_MONSTERS")` 返回的数据是空表或无效数据,`for i, v in pairs(monsters) do` 循环可能不会进入。
检查一下:
- 确保小地图打开后,`MiniMap.RegisterEvent()` 确实执行了。
- 确认服务端是否正确配置了怪物数据并发送了对应事件。
- 可以在 `MiniMap.UpdateMonsters()` 函数开头添加更多调试信息,比如检查 `monsters` 变量的类型和内容。
← 返回问答库