mirror of
https://github.com/azerothcore/mod-ale
synced 2025-11-29 15:38:17 +08:00
Eluna SendAddonMessage method
Added: SendAddonMessage method. TODO: Debug, does not work. @Easelm
This commit is contained in:
@@ -592,6 +592,7 @@ ElunaRegister<Player> PlayerMethods[] =
|
|||||||
{ "SendAreaTriggerMessage", &LuaPlayer::SendAreaTriggerMessage }, // :SendAreaTriggerMessage(message) - Sends a yellow message in the middle of your screen
|
{ "SendAreaTriggerMessage", &LuaPlayer::SendAreaTriggerMessage }, // :SendAreaTriggerMessage(message) - Sends a yellow message in the middle of your screen
|
||||||
{ "SendNotification", &LuaPlayer::SendNotification }, // :SendNotification(message) - Sends a red message in the middle of your screen
|
{ "SendNotification", &LuaPlayer::SendNotification }, // :SendNotification(message) - Sends a red message in the middle of your screen
|
||||||
{ "SendPacket", &LuaPlayer::SendPacket }, // :SendPacket(packet, selfOnly) - Sends a packet to player or everyone around also if selfOnly is false
|
{ "SendPacket", &LuaPlayer::SendPacket }, // :SendPacket(packet, selfOnly) - Sends a packet to player or everyone around also if selfOnly is false
|
||||||
|
{ "SendAddonMessage", &LuaPlayer::SendAddonMessage }, // :SendAddonMessage(prefix, message, channel, receiver) - Sends an addon message to the player.
|
||||||
{ "SendVendorWindow", &LuaPlayer::SendVendorWindow }, // :SendVendorWindow(unit) - Sends the unit's vendor window to the player
|
{ "SendVendorWindow", &LuaPlayer::SendVendorWindow }, // :SendVendorWindow(unit) - Sends the unit's vendor window to the player
|
||||||
{ "ModifyMoney", &LuaPlayer::ModifyMoney }, // :ModifyMoney(amount[, sendError]) - Modifies (does not set) money (copper count) of the player. Amount can be negative to remove copper
|
{ "ModifyMoney", &LuaPlayer::ModifyMoney }, // :ModifyMoney(amount[, sendError]) - Modifies (does not set) money (copper count) of the player. Amount can be negative to remove copper
|
||||||
{ "LearnSpell", &LuaPlayer::LearnSpell }, // :LearnSpell(id) - learns the given spell
|
{ "LearnSpell", &LuaPlayer::LearnSpell }, // :LearnSpell(id) - learns the given spell
|
||||||
|
|||||||
@@ -2229,6 +2229,37 @@ namespace LuaPlayer
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int SendAddonMessage(lua_State* L, Player* player)
|
||||||
|
{
|
||||||
|
std::string prefix = sEluna->CHECKVAL<std::string>(L, 1);
|
||||||
|
std::string message = sEluna->CHECKVAL<std::string>(L, 2);
|
||||||
|
uint8 channel = sEluna->CHECKVAL<uint8>(L, 3);
|
||||||
|
uint64 receiver = sEluna->CHECKVAL<uint64>(L, 4);
|
||||||
|
|
||||||
|
std::string fullmsg = prefix + '\t' + message;
|
||||||
|
|
||||||
|
// Needs a custom built packet since TC doesnt send guid
|
||||||
|
WorldPacket* data = new WorldPacket();
|
||||||
|
uint32 messageLength = (uint32)strlen(fullmsg.c_str()) + 1;
|
||||||
|
data->Initialize(SMSG_MESSAGECHAT, 100);
|
||||||
|
*data << channel;
|
||||||
|
*data << LANG_ADDON;
|
||||||
|
*data << player->GetGUID();
|
||||||
|
*data << uint32(0);
|
||||||
|
|
||||||
|
if (channel == CHAT_MSG_WHISPER)
|
||||||
|
*data << receiver;
|
||||||
|
else
|
||||||
|
*data << uint64(0);
|
||||||
|
|
||||||
|
*data << messageLength;
|
||||||
|
*data << fullmsg;
|
||||||
|
*data << uint8(0);
|
||||||
|
player->GetSession()->SendPacket(data);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*int BindToInstance(lua_State* L, Player* player)
|
/*int BindToInstance(lua_State* L, Player* player)
|
||||||
{
|
{
|
||||||
player->BindToInstance();
|
player->BindToInstance();
|
||||||
|
|||||||
Reference in New Issue
Block a user