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
|
||||
{ "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
|
||||
{ "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
|
||||
{ "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
|
||||
|
||||
@@ -2229,6 +2229,37 @@ namespace LuaPlayer
|
||||
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)
|
||||
{
|
||||
player->BindToInstance();
|
||||
|
||||
Reference in New Issue
Block a user