我正在制作这个插件,必须将我的中断冷却时间发送到突袭。
问题是,每当我向突袭发送消息时,我是唯一收到它的人。
这是发送消息的代码:
C_ChatInfo.SendAddonMessage("KickRotation",string.format( "%0.2f",remainingCd ), "RAID")
这是事件处理程序:
frame:RegisterEvent("PLAYER_ENTERING_WORLD")
frame:RegisterEvent("CHAT_MSG_ADDON")
frame:SetScript("OnEvent", function(self, event, ...)
local prefix, msg, msgType, sender = ...;
if event == "CHAT_MSG_ADDON" then
if prefix == "KickRotation" then
print("[KickRotation]" ..tostring(sender) .." potrà interrompere tra: " ..msg);
end
end
if event == "PLAYER_ENTERING_WORLD" then
print("[KickRotation] v0.1 by Galfrad")
end
end)
基本上,当消息发送时,它只打印给我。
网络消息由服务器处理并传输到收件人通道(在本例中为 Raid 组(。您在本地看到消息,而其他人看不到它的原因是消息将在本地系统(发送方(上处理,以减少数据传输的重复。
但是,服务器仅接受并发送注册到它的邮件。 因此,您必须首先将附加消息注册到服务器,以便请求频道中的其他玩家能够接收它。
首先,使用您已经指定的名称注册您的附加消息(但请确保每个客户端只调用一次注册方法(:
local success = C_ChatInfo.RegisterAddonMessagePrefix("KickRotation") -- Addon name.
接下来,检查您的邮件是否已被接受并注册到服务器。如果success
设置为 false(失败(,您可能需要处理发送给用户的正确警告消息和通知。失败的情况意味着服务器已禁用加载项消息,或者您已达到加载项消息注册的限制。
最后,再次发送消息,检查它是否没有失败。
if not C_ChatInfo.SendAddonMessage("KickRotation",string.format( "%0.2f",remainingCd ), "RAID") then
print("[KickRotation] Failed to send add-on message, message rejected by the server.")
end