mirror of
https://github.com/azerothcore/mod-ale
synced 2025-11-29 15:38:17 +08:00
Update eluna
This commit is contained in:
@@ -222,6 +222,19 @@ namespace LuaGroup
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int SetTargetIcon(lua_State* L, Group* group)
|
||||||
|
{
|
||||||
|
uint8 icon = sEluna->CHECKVAL<uint8>(L, 2);
|
||||||
|
uint64 target = sEluna->CHECKVAL<uint64>(L, 3);
|
||||||
|
uint64 setter = sEluna->CHECKVAL<uint64>(L, 4, 0);
|
||||||
|
|
||||||
|
if (icon >= TARGETICONCOUNT)
|
||||||
|
return luaL_argerror(L, 2, "valid target icon expected");
|
||||||
|
|
||||||
|
group->SetTargetIcon(icon, setter, target);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*int ConvertToLFG(lua_State* L, Group* group) // TODO: Implementation
|
/*int ConvertToLFG(lua_State* L, Group* group) // TODO: Implementation
|
||||||
{
|
{
|
||||||
group->ConvertToLFG();
|
group->ConvertToLFG();
|
||||||
|
|||||||
@@ -423,7 +423,7 @@ template<> float Eluna::CHECKVAL<float>(lua_State* L, int narg)
|
|||||||
}
|
}
|
||||||
template<> float Eluna::CHECKVAL<float>(lua_State* L, int narg, float def)
|
template<> float Eluna::CHECKVAL<float>(lua_State* L, int narg, float def)
|
||||||
{
|
{
|
||||||
if (lua_isnoneornil(L, narg) || lua_isnumber(L, narg))
|
if (lua_isnoneornil(L, narg) || !lua_isnumber(L, narg))
|
||||||
return def;
|
return def;
|
||||||
return luaL_optnumber(L, narg, def);
|
return luaL_optnumber(L, narg, def);
|
||||||
}
|
}
|
||||||
@@ -433,7 +433,7 @@ template<> double Eluna::CHECKVAL<double>(lua_State* L, int narg)
|
|||||||
}
|
}
|
||||||
template<> double Eluna::CHECKVAL<double>(lua_State* L, int narg, double def)
|
template<> double Eluna::CHECKVAL<double>(lua_State* L, int narg, double def)
|
||||||
{
|
{
|
||||||
if (lua_isnoneornil(L, narg) || lua_isnumber(L, narg))
|
if (lua_isnoneornil(L, narg) || !lua_isnumber(L, narg))
|
||||||
return def;
|
return def;
|
||||||
return luaL_optnumber(L, narg, def);
|
return luaL_optnumber(L, narg, def);
|
||||||
}
|
}
|
||||||
@@ -443,7 +443,7 @@ template<> int8 Eluna::CHECKVAL<int8>(lua_State* L, int narg)
|
|||||||
}
|
}
|
||||||
template<> int8 Eluna::CHECKVAL<int8>(lua_State* L, int narg, int8 def)
|
template<> int8 Eluna::CHECKVAL<int8>(lua_State* L, int narg, int8 def)
|
||||||
{
|
{
|
||||||
if (lua_isnoneornil(L, narg) || lua_isnumber(L, narg))
|
if (lua_isnoneornil(L, narg) || !lua_isnumber(L, narg))
|
||||||
return def;
|
return def;
|
||||||
return luaL_optint(L, narg, def);
|
return luaL_optint(L, narg, def);
|
||||||
}
|
}
|
||||||
@@ -453,7 +453,7 @@ template<> uint8 Eluna::CHECKVAL<uint8>(lua_State* L, int narg)
|
|||||||
}
|
}
|
||||||
template<> uint8 Eluna::CHECKVAL<uint8>(lua_State* L, int narg, uint8 def)
|
template<> uint8 Eluna::CHECKVAL<uint8>(lua_State* L, int narg, uint8 def)
|
||||||
{
|
{
|
||||||
if (lua_isnoneornil(L, narg) || lua_isnumber(L, narg))
|
if (lua_isnoneornil(L, narg) || !lua_isnumber(L, narg))
|
||||||
return def;
|
return def;
|
||||||
return luaL_optunsigned(L, narg, def);
|
return luaL_optunsigned(L, narg, def);
|
||||||
}
|
}
|
||||||
@@ -463,7 +463,7 @@ template<> int16 Eluna::CHECKVAL<int16>(lua_State* L, int narg)
|
|||||||
}
|
}
|
||||||
template<> int16 Eluna::CHECKVAL<int16>(lua_State* L, int narg, int16 def)
|
template<> int16 Eluna::CHECKVAL<int16>(lua_State* L, int narg, int16 def)
|
||||||
{
|
{
|
||||||
if (lua_isnoneornil(L, narg) || lua_isnumber(L, narg))
|
if (lua_isnoneornil(L, narg) || !lua_isnumber(L, narg))
|
||||||
return def;
|
return def;
|
||||||
return luaL_optint(L, narg, def);
|
return luaL_optint(L, narg, def);
|
||||||
}
|
}
|
||||||
@@ -473,7 +473,7 @@ template<> uint16 Eluna::CHECKVAL<uint16>(lua_State* L, int narg)
|
|||||||
}
|
}
|
||||||
template<> uint16 Eluna::CHECKVAL<uint16>(lua_State* L, int narg, uint16 def)
|
template<> uint16 Eluna::CHECKVAL<uint16>(lua_State* L, int narg, uint16 def)
|
||||||
{
|
{
|
||||||
if (lua_isnoneornil(L, narg) || lua_isnumber(L, narg))
|
if (lua_isnoneornil(L, narg) || !lua_isnumber(L, narg))
|
||||||
return def;
|
return def;
|
||||||
return luaL_optunsigned(L, narg, def);
|
return luaL_optunsigned(L, narg, def);
|
||||||
}
|
}
|
||||||
@@ -483,7 +483,7 @@ template<> uint32 Eluna::CHECKVAL<uint32>(lua_State* L, int narg)
|
|||||||
}
|
}
|
||||||
template<> uint32 Eluna::CHECKVAL<uint32>(lua_State* L, int narg, uint32 def)
|
template<> uint32 Eluna::CHECKVAL<uint32>(lua_State* L, int narg, uint32 def)
|
||||||
{
|
{
|
||||||
if (lua_isnoneornil(L, narg) || lua_isnumber(L, narg))
|
if (lua_isnoneornil(L, narg) || !lua_isnumber(L, narg))
|
||||||
return def;
|
return def;
|
||||||
return luaL_optunsigned(L, narg, def);
|
return luaL_optunsigned(L, narg, def);
|
||||||
}
|
}
|
||||||
@@ -493,7 +493,7 @@ template<> int32 Eluna::CHECKVAL<int32>(lua_State* L, int narg)
|
|||||||
}
|
}
|
||||||
template<> int32 Eluna::CHECKVAL<int32>(lua_State* L, int narg, int32 def)
|
template<> int32 Eluna::CHECKVAL<int32>(lua_State* L, int narg, int32 def)
|
||||||
{
|
{
|
||||||
if (lua_isnoneornil(L, narg) || lua_isnumber(L, narg))
|
if (lua_isnoneornil(L, narg) || !lua_isnumber(L, narg))
|
||||||
return def;
|
return def;
|
||||||
return luaL_optlong(L, narg, def);
|
return luaL_optlong(L, narg, def);
|
||||||
}
|
}
|
||||||
@@ -503,7 +503,7 @@ template<> const char* Eluna::CHECKVAL<const char*>(lua_State* L, int narg)
|
|||||||
}
|
}
|
||||||
template<> const char* Eluna::CHECKVAL<const char*>(lua_State* L, int narg, const char* def)
|
template<> const char* Eluna::CHECKVAL<const char*>(lua_State* L, int narg, const char* def)
|
||||||
{
|
{
|
||||||
if (lua_isnoneornil(L, narg) || !lua_isstring(L, narg) || lua_isnumber(L, narg))
|
if (lua_isnoneornil(L, narg) || !lua_isstring(L, narg))
|
||||||
return def;
|
return def;
|
||||||
return luaL_optstring(L, narg, def);
|
return luaL_optstring(L, narg, def);
|
||||||
}
|
}
|
||||||
@@ -513,7 +513,7 @@ template<> std::string Eluna::CHECKVAL<std::string>(lua_State* L, int narg)
|
|||||||
}
|
}
|
||||||
template<> std::string Eluna::CHECKVAL<std::string>(lua_State* L, int narg, std::string def)
|
template<> std::string Eluna::CHECKVAL<std::string>(lua_State* L, int narg, std::string def)
|
||||||
{
|
{
|
||||||
if (lua_isnoneornil(L, narg) || !lua_isstring(L, narg) || lua_isnumber(L, narg))
|
if (lua_isnoneornil(L, narg) || !lua_isstring(L, narg))
|
||||||
return def;
|
return def;
|
||||||
return luaL_optstring(L, narg, def.c_str());
|
return luaL_optstring(L, narg, def.c_str());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -144,7 +144,6 @@ ElunaRegister<Object> ObjectMethods[] =
|
|||||||
{ "RemoveFlag", &LuaObject::RemoveFlag }, // :RemoveFlag(index, flag)
|
{ "RemoveFlag", &LuaObject::RemoveFlag }, // :RemoveFlag(index, flag)
|
||||||
{ "RemoveUInt64Value", &LuaObject::RemoveUInt64Value }, // :RemoveUInt64Value(index, value)
|
{ "RemoveUInt64Value", &LuaObject::RemoveUInt64Value }, // :RemoveUInt64Value(index, value)
|
||||||
{ "AddUInt64Value", &LuaObject::AddUInt64Value }, // :AddUInt64Value(index, value)
|
{ "AddUInt64Value", &LuaObject::AddUInt64Value }, // :AddUInt64Value(index, value)
|
||||||
{ "ApplyModUInt64Value", &LuaObject::ApplyModUInt64Value }, // :ApplyModUInt64Value(index, value, apply)
|
|
||||||
|
|
||||||
{ NULL, NULL },
|
{ NULL, NULL },
|
||||||
};
|
};
|
||||||
@@ -980,6 +979,7 @@ ElunaRegister<Group> GroupMethods[] =
|
|||||||
// Setters
|
// Setters
|
||||||
{ "SetLeader", &LuaGroup::ChangeLeader }, // :SetLeader(Player) - Sets the player as the new leader
|
{ "SetLeader", &LuaGroup::ChangeLeader }, // :SetLeader(Player) - Sets the player as the new leader
|
||||||
{ "SetMembersGroup", &LuaGroup::ChangeMembersGroup }, // :ChangeMembersGroup(player, subGroup) - Changes the member's subgroup
|
{ "SetMembersGroup", &LuaGroup::ChangeMembersGroup }, // :ChangeMembersGroup(player, subGroup) - Changes the member's subgroup
|
||||||
|
{ "SetTargetIcon", &LuaGroup::SetTargetIcon }, // :SetTargetIcon(icon, targetguid[, setterguid]) - Sets target's icon for group. target 0 to clear.
|
||||||
|
|
||||||
// Boolean
|
// Boolean
|
||||||
{ "IsLeader", &LuaGroup::IsLeader }, // :IsLeader(GUID)
|
{ "IsLeader", &LuaGroup::IsLeader }, // :IsLeader(GUID)
|
||||||
|
|||||||
@@ -241,14 +241,5 @@ namespace LuaObject
|
|||||||
obj->AddUInt64Value(index, value);
|
obj->AddUInt64Value(index, value);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ApplyModUInt64Value(lua_State* L, Object* obj)
|
|
||||||
{
|
|
||||||
uint16 index = sEluna->CHECKVAL<uint16>(L, 2);
|
|
||||||
int32 value = sEluna->CHECKVAL<int32>(L, 3);
|
|
||||||
bool apply = sEluna->CHECKVAL<bool>(L, 4);
|
|
||||||
obj->ApplyModUInt64Value(index, value, apply);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -2028,17 +2028,17 @@ namespace LuaPlayer
|
|||||||
|
|
||||||
int SendAreaTriggerMessage(lua_State* L, Player* player)
|
int SendAreaTriggerMessage(lua_State* L, Player* player)
|
||||||
{
|
{
|
||||||
const char* msg = sEluna->CHECKVAL<const char*>(L, 2);
|
std::string msg = sEluna->CHECKVAL<std::string>(L, 2);
|
||||||
if (std::string(msg).length() > 0)
|
if (msg.length() > 0)
|
||||||
player->GetSession()->SendAreaTriggerMessage(msg);
|
player->GetSession()->SendAreaTriggerMessage(msg.c_str());
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int SendNotification(lua_State* L, Player* player)
|
int SendNotification(lua_State* L, Player* player)
|
||||||
{
|
{
|
||||||
const char* msg = sEluna->CHECKVAL<const char*>(L, 2);
|
std::string msg = sEluna->CHECKVAL<std::string>(L, 2);
|
||||||
if (std::string(msg).length() > 0)
|
if (msg.length() > 0)
|
||||||
player->GetSession()->SendNotification(msg);
|
player->GetSession()->SendNotification(msg.c_str());
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2069,20 +2069,16 @@ namespace LuaPlayer
|
|||||||
|
|
||||||
std::string fullmsg = prefix + "\t" + message;
|
std::string fullmsg = prefix + "\t" + message;
|
||||||
|
|
||||||
// Needs a custom built packet since TC doesnt send guid
|
WorldPacket data(SMSG_MESSAGECHAT, 100);
|
||||||
WorldPacket* data = new WorldPacket();
|
data << uint8(channel);
|
||||||
uint32 messageLength = (uint32)strlen(fullmsg.c_str()) + 1;
|
data << int32(LANG_ADDON);
|
||||||
data->Initialize(SMSG_MESSAGECHAT, 100);
|
data << uint64(player->GetGUID());
|
||||||
*data << (uint8)channel;
|
data << uint32(0);
|
||||||
*data << LANG_ADDON;
|
data << uint64(receiver->GetGUID());
|
||||||
*data << player->GetGUID();
|
data << uint32(fullmsg.length() + 1);
|
||||||
*data << uint32(0);
|
data << fullmsg;
|
||||||
*data << player->GetGUID();
|
data << uint8(0);
|
||||||
*data << messageLength;
|
receiver->GetSession()->SendPacket(&data);
|
||||||
*data << fullmsg;
|
|
||||||
*data << uint8(0);
|
|
||||||
player->GetSession()->SendPacket(data);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1242,26 +1242,17 @@ namespace LuaUnit
|
|||||||
{
|
{
|
||||||
uint8 type = sEluna->CHECKVAL<uint8>(L, 2);
|
uint8 type = sEluna->CHECKVAL<uint8>(L, 2);
|
||||||
uint32 lang = sEluna->CHECKVAL<uint32>(L, 3);
|
uint32 lang = sEluna->CHECKVAL<uint32>(L, 3);
|
||||||
const char* msg = sEluna->CHECKVAL<const char*>(L, 4);
|
std::string msg = sEluna->CHECKVAL<std::string>(L, 4);
|
||||||
Player* target = sEluna->CHECKOBJ<Player>(L, 5);
|
Player* target = sEluna->CHECKOBJ<Player>(L, 5);
|
||||||
if (type == CHAT_MSG_CHANNEL)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
WorldPacket* data = new WorldPacket();
|
if (type >= MAX_CHAT_MSG_TYPE)
|
||||||
uint32 messageLength = (uint32)strlen(msg) + 1;
|
return luaL_argerror(L, 2, "valid ChatMsg expected");
|
||||||
data->Initialize(SMSG_MESSAGECHAT, 100);
|
if (lang >= LANGUAGES_COUNT)
|
||||||
*data << (uint8)type;
|
return luaL_argerror(L, 3, "valid Language expected");
|
||||||
*data << lang;
|
|
||||||
*data << unit->GetGUIDLow();
|
WorldPacket data;
|
||||||
*data << uint32(0);
|
ChatHandler::BuildChatPacket(data, ChatMsg(type), Language(lang), unit, target, msg);
|
||||||
*data << unit->GetGUIDLow();
|
target->GetSession()->SendPacket(&data);
|
||||||
*data << messageLength;
|
|
||||||
*data << msg;
|
|
||||||
if (unit->ToPlayer() && type != CHAT_MSG_WHISPER_INFORM && type != CHAT_MSG_DND && type != CHAT_MSG_AFK)
|
|
||||||
*data << uint8(unit->ToPlayer()->GetChatTag());
|
|
||||||
else
|
|
||||||
*data << uint8(0);
|
|
||||||
target->GetSession()->SendPacket(data);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user