mirror of
https://github.com/azerothcore/mod-ale
synced 2025-11-29 15:38:17 +08:00
Merge pull request #357 from UltraNix/ObjectGuidAzerothCore
Implemented ObjectGuid support for AzerothCore.
This commit is contained in:
@@ -251,10 +251,10 @@ template <typename T>
|
|||||||
struct UniqueObjectKey
|
struct UniqueObjectKey
|
||||||
{
|
{
|
||||||
T event_id;
|
T event_id;
|
||||||
uint64 guid;
|
ObjectGuid guid;
|
||||||
uint32 instance_id;
|
uint32 instance_id;
|
||||||
|
|
||||||
UniqueObjectKey(T event_id, uint64 guid, uint32 instance_id) :
|
UniqueObjectKey(T event_id, ObjectGuid guid, uint32 instance_id) :
|
||||||
event_id(event_id),
|
event_id(event_id),
|
||||||
guid(guid),
|
guid(guid),
|
||||||
instance_id(instance_id)
|
instance_id(instance_id)
|
||||||
@@ -367,7 +367,7 @@ namespace std
|
|||||||
|
|
||||||
hash_helper::result_type operator()(argument_type const& k) const
|
hash_helper::result_type operator()(argument_type const& k) const
|
||||||
{
|
{
|
||||||
return hash_helper::hash(k.event_id, k.instance_id, k.guid);
|
return hash_helper::hash(k.event_id, k.instance_id, k.guid.GetRawValue());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ namespace LuaCorpse
|
|||||||
/**
|
/**
|
||||||
* Returns the GUID of the [Player] that left the [Corpse] behind.
|
* Returns the GUID of the [Player] that left the [Corpse] behind.
|
||||||
*
|
*
|
||||||
* @return uint64 ownerGUID
|
* @return ObjectGuid ownerGUID
|
||||||
*/
|
*/
|
||||||
int GetOwnerGUID(lua_State* L, Corpse* corpse)
|
int GetOwnerGUID(lua_State* L, Corpse* corpse)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -924,7 +924,7 @@ auto const& threatlist = creature->getThreatManager().getThreatList();
|
|||||||
*/
|
*/
|
||||||
int GetDBTableGUIDLow(lua_State* L, Creature* creature)
|
int GetDBTableGUIDLow(lua_State* L, Creature* creature)
|
||||||
{
|
{
|
||||||
#if defined(TRINITY)
|
#if defined(TRINITY) || defined(AZEROTHCORE)
|
||||||
Eluna::Push(L, creature->GetSpawnId());
|
Eluna::Push(L, creature->GetSpawnId());
|
||||||
#else
|
#else
|
||||||
// on mangos based this is same as lowguid
|
// on mangos based this is same as lowguid
|
||||||
|
|||||||
@@ -47,10 +47,24 @@ typedef QueryResult ElunaQuery;
|
|||||||
#define HIGHGUID_GROUP HighGuid::Group
|
#define HIGHGUID_GROUP HighGuid::Group
|
||||||
#elif AZEROTHCORE
|
#elif AZEROTHCORE
|
||||||
typedef QueryResult ElunaQuery;
|
typedef QueryResult ElunaQuery;
|
||||||
#define ELUNA_LOG_INFO(...) sLog->outString(__VA_ARGS__);
|
#define ELUNA_LOG_INFO(...) LOG_INFO("eluna", __VA_ARGS__);
|
||||||
#define ELUNA_LOG_ERROR(...) sLog->outError(__VA_ARGS__);
|
#define ELUNA_LOG_ERROR(...) LOG_ERROR("eluna", __VA_ARGS__);
|
||||||
#define ELUNA_LOG_DEBUG(...) sLog->outDebug(LOG_FILTER_NONE,__VA_ARGS__);
|
#define ELUNA_LOG_DEBUG(...) LOG_DEBUG("eluna", __VA_ARGS__);
|
||||||
#define GET_GUID GetGUID
|
#define GET_GUID GetGUID
|
||||||
|
|
||||||
|
#define HIGHGUID_PLAYER HighGuid::Player
|
||||||
|
#define HIGHGUID_UNIT HighGuid::Unit
|
||||||
|
#define HIGHGUID_ITEM HighGuid::Item
|
||||||
|
#define HIGHGUID_GAMEOBJECT HighGuid::GameObject
|
||||||
|
#define HIGHGUID_PET HighGuid::Pet
|
||||||
|
#define HIGHGUID_TRANSPORT HighGuid::Transport
|
||||||
|
#define HIGHGUID_VEHICLE HighGuid::Vehicle
|
||||||
|
#define HIGHGUID_CONTAINER HighGuid::Container
|
||||||
|
#define HIGHGUID_DYNAMICOBJECT HighGuid::DynamicObject
|
||||||
|
#define HIGHGUID_CORPSE HighGuid::Corpse
|
||||||
|
#define HIGHGUID_MO_TRANSPORT HighGuid::Mo_Transport
|
||||||
|
#define HIGHGUID_INSTANCE HighGuid::Instance
|
||||||
|
#define HIGHGUID_GROUP HighGuid::Group
|
||||||
#else
|
#else
|
||||||
typedef QueryNamedResult ElunaQuery;
|
typedef QueryNamedResult ElunaQuery;
|
||||||
#define ASSERT MANGOS_ASSERT
|
#define ASSERT MANGOS_ASSERT
|
||||||
@@ -63,7 +77,7 @@ typedef QueryNamedResult ElunaQuery;
|
|||||||
#define GetTemplate GetProto
|
#define GetTemplate GetProto
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(TRINITY) || defined(MANGOS)
|
#if defined(TRINITY) || defined(AZEROTHCORE) || defined(MANGOS)
|
||||||
#ifndef MAKE_NEW_GUID
|
#ifndef MAKE_NEW_GUID
|
||||||
#define MAKE_NEW_GUID(l, e, h) ObjectGuid(h, e, l)
|
#define MAKE_NEW_GUID(l, e, h) ObjectGuid(h, e, l)
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -160,10 +160,8 @@ namespace LuaGameObject
|
|||||||
*/
|
*/
|
||||||
int GetDBTableGUIDLow(lua_State* L, GameObject* go)
|
int GetDBTableGUIDLow(lua_State* L, GameObject* go)
|
||||||
{
|
{
|
||||||
#ifdef TRINITY
|
#if defined(TRINITY) || defined(AZEROTHCORE)
|
||||||
Eluna::Push(L, go->GetSpawnId());
|
Eluna::Push(L, go->GetSpawnId());
|
||||||
#elif AZEROTHCORE
|
|
||||||
Eluna::Push(L, go->GetDBTableGUIDLow());
|
|
||||||
#else
|
#else
|
||||||
// on mangos based this is same as lowguid
|
// on mangos based this is same as lowguid
|
||||||
Eluna::Push(L, go->GetGUIDLow());
|
Eluna::Push(L, go->GetGUIDLow());
|
||||||
|
|||||||
@@ -124,13 +124,13 @@ namespace LuaGlobalFunctions
|
|||||||
/**
|
/**
|
||||||
* Finds and Returns [Player] by guid if found
|
* Finds and Returns [Player] by guid if found
|
||||||
*
|
*
|
||||||
* @param uint64 guid : guid of the [Player], you can get it with [Object:GetGUID]
|
* @param ObjectGuid guid : guid of the [Player], you can get it with [Object:GetGUID]
|
||||||
* @return [Player] player
|
* @return [Player] player
|
||||||
*/
|
*/
|
||||||
int GetPlayerByGUID(lua_State* L)
|
int GetPlayerByGUID(lua_State* L)
|
||||||
{
|
{
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 1);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 1);
|
||||||
Eluna::Push(L, eObjectAccessor()FindPlayer(ObjectGuid(guid)));
|
Eluna::Push(L, eObjectAccessor()FindPlayer(guid));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -261,14 +261,14 @@ namespace LuaGlobalFunctions
|
|||||||
/**
|
/**
|
||||||
* Returns [Guild] by the leader's GUID
|
* Returns [Guild] by the leader's GUID
|
||||||
*
|
*
|
||||||
* @param uint64 guid : the guid of a [Guild] leader
|
* @param ObjectGuid guid : the guid of a [Guild] leader
|
||||||
* @return [Guild] guild, or `nil` if it doesn't exist
|
* @return [Guild] guild, or `nil` if it doesn't exist
|
||||||
*/
|
*/
|
||||||
int GetGuildByLeaderGUID(lua_State* L)
|
int GetGuildByLeaderGUID(lua_State* L)
|
||||||
{
|
{
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 1);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 1);
|
||||||
|
|
||||||
Eluna::Push(L, eGuildMgr->GetGuildByLeader(ObjectGuid(guid)));
|
Eluna::Push(L, eGuildMgr->GetGuildByLeader(guid));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -291,7 +291,7 @@ namespace LuaGlobalFunctions
|
|||||||
* [Player] and [Creature] for example can have the same low GUID but not GUID.
|
* [Player] and [Creature] for example can have the same low GUID but not GUID.
|
||||||
*
|
*
|
||||||
* @param uint32 lowguid : low GUID of the [Player]
|
* @param uint32 lowguid : low GUID of the [Player]
|
||||||
* @return uint64 guid
|
* @return ObjectGuid guid
|
||||||
*/
|
*/
|
||||||
int GetPlayerGUID(lua_State* L)
|
int GetPlayerGUID(lua_State* L)
|
||||||
{
|
{
|
||||||
@@ -307,7 +307,7 @@ namespace LuaGlobalFunctions
|
|||||||
* [Player] and [Item] for example can have the same low GUID but not GUID.
|
* [Player] and [Item] for example can have the same low GUID but not GUID.
|
||||||
*
|
*
|
||||||
* @param uint32 lowguid : low GUID of the [Item]
|
* @param uint32 lowguid : low GUID of the [Item]
|
||||||
* @return uint64 guid
|
* @return ObjectGuid guid
|
||||||
*/
|
*/
|
||||||
int GetItemGUID(lua_State* L)
|
int GetItemGUID(lua_State* L)
|
||||||
{
|
{
|
||||||
@@ -325,7 +325,7 @@ namespace LuaGlobalFunctions
|
|||||||
*
|
*
|
||||||
* @param uint32 lowguid : low GUID of the [GameObject]
|
* @param uint32 lowguid : low GUID of the [GameObject]
|
||||||
* @param uint32 entry : entry ID of the [GameObject]
|
* @param uint32 entry : entry ID of the [GameObject]
|
||||||
* @return uint64 guid
|
* @return ObjectGuid guid
|
||||||
*/
|
*/
|
||||||
int GetObjectGUID(lua_State* L)
|
int GetObjectGUID(lua_State* L)
|
||||||
{
|
{
|
||||||
@@ -344,7 +344,7 @@ namespace LuaGlobalFunctions
|
|||||||
*
|
*
|
||||||
* @param uint32 lowguid : low GUID of the [Creature]
|
* @param uint32 lowguid : low GUID of the [Creature]
|
||||||
* @param uint32 entry : entry ID of the [Creature]
|
* @param uint32 entry : entry ID of the [Creature]
|
||||||
* @return uint64 guid
|
* @return ObjectGuid guid
|
||||||
*/
|
*/
|
||||||
int GetUnitGUID(lua_State* L)
|
int GetUnitGUID(lua_State* L)
|
||||||
{
|
{
|
||||||
@@ -370,14 +370,14 @@ namespace LuaGlobalFunctions
|
|||||||
* For example creatures in instances use the same low GUID assigned for that spawn in the database.
|
* For example creatures in instances use the same low GUID assigned for that spawn in the database.
|
||||||
* This is why to identify a creature you have to know the instanceId and low GUID. See [Map:GetIntstanceId]
|
* This is why to identify a creature you have to know the instanceId and low GUID. See [Map:GetIntstanceId]
|
||||||
*
|
*
|
||||||
* @param uint64 guid : GUID of an [Object]
|
* @param ObjectGuid guid : GUID of an [Object]
|
||||||
* @return uint32 lowguid : low GUID of the [Object]
|
* @return uint32 lowguid : low GUID of the [Object]
|
||||||
*/
|
*/
|
||||||
int GetGUIDLow(lua_State* L)
|
int GetGUIDLow(lua_State* L)
|
||||||
{
|
{
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 1);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 1);
|
||||||
|
|
||||||
Eluna::Push(L, GUID_LOPART(guid));
|
Eluna::Push(L, guid.GetCounter());
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -435,13 +435,13 @@ namespace LuaGlobalFunctions
|
|||||||
*
|
*
|
||||||
* GUID consist of entry ID, low GUID, and type ID.
|
* GUID consist of entry ID, low GUID, and type ID.
|
||||||
*
|
*
|
||||||
* @param uint64 guid : GUID of an [Object]
|
* @param ObjectGuid guid : GUID of an [Object]
|
||||||
* @return int32 typeId : type ID of the [Object]
|
* @return int32 typeId : type ID of the [Object]
|
||||||
*/
|
*/
|
||||||
int GetGUIDType(lua_State* L)
|
int GetGUIDType(lua_State* L)
|
||||||
{
|
{
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 1);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 1);
|
||||||
Eluna::Push(L, static_cast<int>(GUID_HIPART(guid)));
|
Eluna::Push(L, static_cast<int>(guid.GetHigh()));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -450,13 +450,13 @@ namespace LuaGlobalFunctions
|
|||||||
*
|
*
|
||||||
* GUID consist of entry ID, low GUID, and type ID.
|
* GUID consist of entry ID, low GUID, and type ID.
|
||||||
*
|
*
|
||||||
* @param uint64 guid : GUID of an [Creature] or [GameObject]
|
* @param ObjectGuid guid : GUID of an [Creature] or [GameObject]
|
||||||
* @return uint32 entry : entry ID, or `0` if `guid` is not a [Creature] or [GameObject]
|
* @return uint32 entry : entry ID, or `0` if `guid` is not a [Creature] or [GameObject]
|
||||||
*/
|
*/
|
||||||
int GetGUIDEntry(lua_State* L)
|
int GetGUIDEntry(lua_State* L)
|
||||||
{
|
{
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 1);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 1);
|
||||||
Eluna::Push(L, GUID_ENPART(guid));
|
Eluna::Push(L, guid.GetEntry());
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -537,7 +537,7 @@ namespace LuaGlobalFunctions
|
|||||||
lua_pushvalue(L, 3);
|
lua_pushvalue(L, 3);
|
||||||
int functionRef = luaL_ref(L, LUA_REGISTRYINDEX);
|
int functionRef = luaL_ref(L, LUA_REGISTRYINDEX);
|
||||||
if (functionRef >= 0)
|
if (functionRef >= 0)
|
||||||
return Eluna::GetEluna(L)->Register(L, regtype, id, 0, 0, ev, functionRef, shots);
|
return Eluna::GetEluna(L)->Register(L, regtype, id, ObjectGuid(), 0, ev, functionRef, shots);
|
||||||
else
|
else
|
||||||
luaL_argerror(L, 3, "unable to make a ref to function");
|
luaL_argerror(L, 3, "unable to make a ref to function");
|
||||||
return 0;
|
return 0;
|
||||||
@@ -552,7 +552,7 @@ namespace LuaGlobalFunctions
|
|||||||
lua_pushvalue(L, 2);
|
lua_pushvalue(L, 2);
|
||||||
int functionRef = luaL_ref(L, LUA_REGISTRYINDEX);
|
int functionRef = luaL_ref(L, LUA_REGISTRYINDEX);
|
||||||
if (functionRef >= 0)
|
if (functionRef >= 0)
|
||||||
return Eluna::GetEluna(L)->Register(L, regtype, 0, 0, 0, ev, functionRef, shots);
|
return Eluna::GetEluna(L)->Register(L, regtype, 0, ObjectGuid(), 0, ev, functionRef, shots);
|
||||||
else
|
else
|
||||||
luaL_argerror(L, 2, "unable to make a ref to function");
|
luaL_argerror(L, 2, "unable to make a ref to function");
|
||||||
return 0;
|
return 0;
|
||||||
@@ -560,7 +560,7 @@ namespace LuaGlobalFunctions
|
|||||||
|
|
||||||
static int RegisterUniqueHelper(lua_State* L, int regtype)
|
static int RegisterUniqueHelper(lua_State* L, int regtype)
|
||||||
{
|
{
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 1);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 1);
|
||||||
uint32 instanceId = Eluna::CHECKVAL<uint32>(L, 2);
|
uint32 instanceId = Eluna::CHECKVAL<uint32>(L, 2);
|
||||||
uint32 ev = Eluna::CHECKVAL<uint32>(L, 3);
|
uint32 ev = Eluna::CHECKVAL<uint32>(L, 3);
|
||||||
luaL_checktype(L, 4, LUA_TFUNCTION);
|
luaL_checktype(L, 4, LUA_TFUNCTION);
|
||||||
@@ -1149,7 +1149,7 @@ namespace LuaGlobalFunctions
|
|||||||
* @proto cancel = (guid, instance_id, event, function)
|
* @proto cancel = (guid, instance_id, event, function)
|
||||||
* @proto cancel = (guid, instance_id, event, function, shots)
|
* @proto cancel = (guid, instance_id, event, function, shots)
|
||||||
*
|
*
|
||||||
* @param uint64 guid : the GUID of a single [Creature]
|
* @param ObjectGuid guid : the GUID of a single [Creature]
|
||||||
* @param uint32 instance_id : the instance ID of a single [Creature]
|
* @param uint32 instance_id : the instance ID of a single [Creature]
|
||||||
* @param uint32 event : refer to CreatureEvents above
|
* @param uint32 event : refer to CreatureEvents above
|
||||||
* @param function function : function that will be called when the event occurs
|
* @param function function : function that will be called when the event occurs
|
||||||
@@ -1708,7 +1708,7 @@ namespace LuaGlobalFunctions
|
|||||||
#ifndef AZEROTHCORE
|
#ifndef AZEROTHCORE
|
||||||
if (!creature->Create(map->GenerateLowGuid<HighGuid::Unit>(), map, phase, entry, pos))
|
if (!creature->Create(map->GenerateLowGuid<HighGuid::Unit>(), map, phase, entry, pos))
|
||||||
#else
|
#else
|
||||||
if (!creature->Create(sObjectMgr->GenerateLowGuid(HIGHGUID_UNIT), map, phase, entry, 0, x, y, z, o))
|
if (!creature->Create(map->GenerateLowGuid<HighGuid::Unit>(), map, phase, entry, 0, x, y, z, o))
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
delete creature;
|
delete creature;
|
||||||
@@ -1718,11 +1718,8 @@ namespace LuaGlobalFunctions
|
|||||||
|
|
||||||
creature->SaveToDB(map->GetId(), (1 << map->GetSpawnMode()), phase);
|
creature->SaveToDB(map->GetId(), (1 << map->GetSpawnMode()), phase);
|
||||||
|
|
||||||
#ifndef AZEROTHCORE
|
|
||||||
uint32 db_guid = creature->GetSpawnId();
|
uint32 db_guid = creature->GetSpawnId();
|
||||||
#else
|
|
||||||
uint32 db_guid = creature->GetDBTableGUIDLow();
|
|
||||||
#endif
|
|
||||||
// To call _LoadGoods(); _LoadQuests(); CreateTrainerSpells()
|
// To call _LoadGoods(); _LoadQuests(); CreateTrainerSpells()
|
||||||
// current "creature" variable is deleted and created fresh new, otherwise old values might trigger asserts or cause undefined behavior
|
// current "creature" variable is deleted and created fresh new, otherwise old values might trigger asserts or cause undefined behavior
|
||||||
creature->CleanupsBeforeDelete();
|
creature->CleanupsBeforeDelete();
|
||||||
@@ -1731,7 +1728,7 @@ namespace LuaGlobalFunctions
|
|||||||
#ifndef AZEROTHCORE
|
#ifndef AZEROTHCORE
|
||||||
if (!creature->LoadFromDB(db_guid, map, true, true))
|
if (!creature->LoadFromDB(db_guid, map, true, true))
|
||||||
#else
|
#else
|
||||||
if (!creature->LoadFromDB(db_guid, map))
|
if (!creature->LoadFromDB(db_guid, map, true))
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
delete creature;
|
delete creature;
|
||||||
@@ -1783,7 +1780,7 @@ namespace LuaGlobalFunctions
|
|||||||
QuaternionData rot = QuaternionData::fromEulerAnglesZYX(o, 0.f, 0.f);
|
QuaternionData rot = QuaternionData::fromEulerAnglesZYX(o, 0.f, 0.f);
|
||||||
if (!object->Create(guidLow, objectInfo->entry, map, phase, Position(x, y, z, o), rot, 0, GO_STATE_READY))
|
if (!object->Create(guidLow, objectInfo->entry, map, phase, Position(x, y, z, o), rot, 0, GO_STATE_READY))
|
||||||
#else
|
#else
|
||||||
uint32 guidLow = sObjectMgr->GenerateLowGuid(HIGHGUID_GAMEOBJECT);
|
uint32 guidLow = map->GenerateLowGuid<HighGuid::GameObject>();
|
||||||
if (!object->Create(guidLow, entry, map, phase, x, y, z, o, G3D::Quat(0.0f, 0.0f, 0.0f, 0.0f), 100, GO_STATE_READY))
|
if (!object->Create(guidLow, entry, map, phase, x, y, z, o, G3D::Quat(0.0f, 0.0f, 0.0f, 0.0f), 100, GO_STATE_READY))
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
@@ -1799,11 +1796,7 @@ namespace LuaGlobalFunctions
|
|||||||
{
|
{
|
||||||
// fill the gameobject data and save to the db
|
// fill the gameobject data and save to the db
|
||||||
object->SaveToDB(map->GetId(), (1 << map->GetSpawnMode()), phase);
|
object->SaveToDB(map->GetId(), (1 << map->GetSpawnMode()), phase);
|
||||||
#ifndef AZEROTHCORE
|
|
||||||
guidLow = object->GetSpawnId();
|
guidLow = object->GetSpawnId();
|
||||||
#else
|
|
||||||
guidLow = object->GetDBTableGUIDLow();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// delete the old object and do a clean load from DB with a fresh new GameObject instance.
|
// delete the old object and do a clean load from DB with a fresh new GameObject instance.
|
||||||
// this is required to avoid weird behavior and memory leaks
|
// this is required to avoid weird behavior and memory leaks
|
||||||
@@ -2157,7 +2150,7 @@ namespace LuaGlobalFunctions
|
|||||||
item->SaveToDB();
|
item->SaveToDB();
|
||||||
#endif
|
#endif
|
||||||
draft.AddItem(item);
|
draft.AddItem(item);
|
||||||
#if defined TRINITY
|
#if defined TRINITY || AZEROTHCORE
|
||||||
Eluna::Push(L, item->GetGUID().GetCounter());
|
Eluna::Push(L, item->GetGUID().GetCounter());
|
||||||
#else
|
#else
|
||||||
Eluna::Push(L, item->GetGUIDLow());
|
Eluna::Push(L, item->GetGUIDLow());
|
||||||
@@ -2768,7 +2761,7 @@ namespace LuaGlobalFunctions
|
|||||||
*
|
*
|
||||||
* @proto (entry)
|
* @proto (entry)
|
||||||
* @proto (entry, event_type)
|
* @proto (entry, event_type)
|
||||||
* @param uint64 guid : the GUID of a single [Creature] whose handlers will be cleared
|
* @param ObjectGuid guid : the GUID of a single [Creature] whose handlers will be cleared
|
||||||
* @param uint32 instance_id : the instance ID of a single [Creature] whose handlers will be cleared
|
* @param uint32 instance_id : the instance ID of a single [Creature] whose handlers will be cleared
|
||||||
* @param uint32 event_type : the event whose handlers will be cleared, see [Global:RegisterCreatureEvent]
|
* @param uint32 event_type : the event whose handlers will be cleared, see [Global:RegisterCreatureEvent]
|
||||||
*/
|
*/
|
||||||
@@ -2778,7 +2771,7 @@ namespace LuaGlobalFunctions
|
|||||||
|
|
||||||
if (lua_isnoneornil(L, 3))
|
if (lua_isnoneornil(L, 3))
|
||||||
{
|
{
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 1);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 1);
|
||||||
uint32 instanceId = Eluna::CHECKVAL<uint32>(L, 2);
|
uint32 instanceId = Eluna::CHECKVAL<uint32>(L, 2);
|
||||||
|
|
||||||
Eluna* E = Eluna::GetEluna(L);
|
Eluna* E = Eluna::GetEluna(L);
|
||||||
@@ -2787,7 +2780,7 @@ namespace LuaGlobalFunctions
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 1);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 1);
|
||||||
uint32 instanceId = Eluna::CHECKVAL<uint32>(L, 2);
|
uint32 instanceId = Eluna::CHECKVAL<uint32>(L, 2);
|
||||||
uint32 event_type = Eluna::CHECKVAL<uint32>(L, 3);
|
uint32 event_type = Eluna::CHECKVAL<uint32>(L, 3);
|
||||||
Eluna::GetEluna(L)->CreatureUniqueBindings->Clear(Key((Hooks::CreatureEvents)event_type, guid, instanceId));
|
Eluna::GetEluna(L)->CreatureUniqueBindings->Clear(Key((Hooks::CreatureEvents)event_type, guid, instanceId));
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ using namespace Hooks;
|
|||||||
return;\
|
return;\
|
||||||
LOCK_ELUNA
|
LOCK_ELUNA
|
||||||
|
|
||||||
void Eluna::OnAddMember(Group* group, uint64 guid)
|
void Eluna::OnAddMember(Group* group, ObjectGuid guid)
|
||||||
{
|
{
|
||||||
START_HOOK(GROUP_EVENT_ON_MEMBER_ADD);
|
START_HOOK(GROUP_EVENT_ON_MEMBER_ADD);
|
||||||
Push(group);
|
Push(group);
|
||||||
@@ -28,7 +28,7 @@ void Eluna::OnAddMember(Group* group, uint64 guid)
|
|||||||
CallAllFunctions(GroupEventBindings, key);
|
CallAllFunctions(GroupEventBindings, key);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Eluna::OnInviteMember(Group* group, uint64 guid)
|
void Eluna::OnInviteMember(Group* group, ObjectGuid guid)
|
||||||
{
|
{
|
||||||
START_HOOK(GROUP_EVENT_ON_MEMBER_INVITE);
|
START_HOOK(GROUP_EVENT_ON_MEMBER_INVITE);
|
||||||
Push(group);
|
Push(group);
|
||||||
@@ -36,7 +36,7 @@ void Eluna::OnInviteMember(Group* group, uint64 guid)
|
|||||||
CallAllFunctions(GroupEventBindings, key);
|
CallAllFunctions(GroupEventBindings, key);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Eluna::OnRemoveMember(Group* group, uint64 guid, uint8 method)
|
void Eluna::OnRemoveMember(Group* group, ObjectGuid guid, uint8 method)
|
||||||
{
|
{
|
||||||
START_HOOK(GROUP_EVENT_ON_MEMBER_REMOVE);
|
START_HOOK(GROUP_EVENT_ON_MEMBER_REMOVE);
|
||||||
Push(group);
|
Push(group);
|
||||||
@@ -45,7 +45,7 @@ void Eluna::OnRemoveMember(Group* group, uint64 guid, uint8 method)
|
|||||||
CallAllFunctions(GroupEventBindings, key);
|
CallAllFunctions(GroupEventBindings, key);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Eluna::OnChangeLeader(Group* group, uint64 newLeaderGuid, uint64 oldLeaderGuid)
|
void Eluna::OnChangeLeader(Group* group, ObjectGuid newLeaderGuid, ObjectGuid oldLeaderGuid)
|
||||||
{
|
{
|
||||||
START_HOOK(GROUP_EVENT_ON_LEADER_CHANGE);
|
START_HOOK(GROUP_EVENT_ON_LEADER_CHANGE);
|
||||||
Push(group);
|
Push(group);
|
||||||
@@ -61,7 +61,7 @@ void Eluna::OnDisband(Group* group)
|
|||||||
CallAllFunctions(GroupEventBindings, key);
|
CallAllFunctions(GroupEventBindings, key);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Eluna::OnCreate(Group* group, uint64 leaderGuid, GroupType groupType)
|
void Eluna::OnCreate(Group* group, ObjectGuid leaderGuid, GroupType groupType)
|
||||||
{
|
{
|
||||||
START_HOOK(GROUP_EVENT_ON_CREATE);
|
START_HOOK(GROUP_EVENT_ON_CREATE);
|
||||||
Push(group);
|
Push(group);
|
||||||
|
|||||||
@@ -15,13 +15,13 @@ namespace LuaGroup
|
|||||||
/**
|
/**
|
||||||
* Returns 'true' if the [Player] is the [Group] leader
|
* Returns 'true' if the [Player] is the [Group] leader
|
||||||
*
|
*
|
||||||
* @param uint64 guid : guid of a possible leader
|
* @param ObjectGuid guid : guid of a possible leader
|
||||||
* @return bool isLeader
|
* @return bool isLeader
|
||||||
*/
|
*/
|
||||||
int IsLeader(lua_State* L, Group* group)
|
int IsLeader(lua_State* L, Group* group)
|
||||||
{
|
{
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 2);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 2);
|
||||||
Eluna::Push(L, group->IsLeader(ObjectGuid(guid)));
|
Eluna::Push(L, group->IsLeader(guid));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -61,26 +61,26 @@ namespace LuaGroup
|
|||||||
/**
|
/**
|
||||||
* Returns 'true' if the [Player] is a member of this [Group]
|
* Returns 'true' if the [Player] is a member of this [Group]
|
||||||
*
|
*
|
||||||
* @param uint64 guid : guid of a player
|
* @param ObjectGuid guid : guid of a player
|
||||||
* @return bool isMember
|
* @return bool isMember
|
||||||
*/
|
*/
|
||||||
int IsMember(lua_State* L, Group* group)
|
int IsMember(lua_State* L, Group* group)
|
||||||
{
|
{
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 2);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 2);
|
||||||
Eluna::Push(L, group->IsMember(ObjectGuid(guid)));
|
Eluna::Push(L, group->IsMember(guid));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns 'true' if the [Player] is an assistant of this [Group]
|
* Returns 'true' if the [Player] is an assistant of this [Group]
|
||||||
*
|
*
|
||||||
* @param uint64 guid : guid of a player
|
* @param ObjectGuid guid : guid of a player
|
||||||
* @return bool isAssistant
|
* @return bool isAssistant
|
||||||
*/
|
*/
|
||||||
int IsAssistant(lua_State* L, Group* group)
|
int IsAssistant(lua_State* L, Group* group)
|
||||||
{
|
{
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 2);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 2);
|
||||||
Eluna::Push(L, group->IsAssistant(ObjectGuid(guid)));
|
Eluna::Push(L, group->IsAssistant(guid));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -195,7 +195,7 @@ namespace LuaGroup
|
|||||||
/**
|
/**
|
||||||
* Returns [Group] leader GUID
|
* Returns [Group] leader GUID
|
||||||
*
|
*
|
||||||
* @return uint64 leaderGUID
|
* @return ObjectGuid leaderGUID
|
||||||
*/
|
*/
|
||||||
int GetLeaderGUID(lua_State* L, Group* group)
|
int GetLeaderGUID(lua_State* L, Group* group)
|
||||||
{
|
{
|
||||||
@@ -210,7 +210,7 @@ namespace LuaGroup
|
|||||||
/**
|
/**
|
||||||
* Returns the [Group]'s GUID
|
* Returns the [Group]'s GUID
|
||||||
*
|
*
|
||||||
* @return uint64 groupGUID
|
* @return ObjectGuid groupGUID
|
||||||
*/
|
*/
|
||||||
int GetGUID(lua_State* L, Group* group)
|
int GetGUID(lua_State* L, Group* group)
|
||||||
{
|
{
|
||||||
@@ -226,7 +226,7 @@ namespace LuaGroup
|
|||||||
* Returns a [Group] member's GUID by their name
|
* Returns a [Group] member's GUID by their name
|
||||||
*
|
*
|
||||||
* @param string name : the [Player]'s name
|
* @param string name : the [Player]'s name
|
||||||
* @return uint64 memberGUID
|
* @return ObjectGuid memberGUID
|
||||||
*/
|
*/
|
||||||
int GetMemberGUID(lua_State* L, Group* group)
|
int GetMemberGUID(lua_State* L, Group* group)
|
||||||
{
|
{
|
||||||
@@ -253,25 +253,25 @@ namespace LuaGroup
|
|||||||
/**
|
/**
|
||||||
* Returns the [Player]'s subgroup ID of this [Group]
|
* Returns the [Player]'s subgroup ID of this [Group]
|
||||||
*
|
*
|
||||||
* @param uint64 guid : guid of the player
|
* @param ObjectGuid guid : guid of the player
|
||||||
* @return uint8 subGroupID : a valid subgroup ID or MAX_RAID_SUBGROUPS+1
|
* @return uint8 subGroupID : a valid subgroup ID or MAX_RAID_SUBGROUPS+1
|
||||||
*/
|
*/
|
||||||
int GetMemberGroup(lua_State* L, Group* group)
|
int GetMemberGroup(lua_State* L, Group* group)
|
||||||
{
|
{
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 2);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 2);
|
||||||
Eluna::Push(L, group->GetMemberGroup(ObjectGuid(guid)));
|
Eluna::Push(L, group->GetMemberGroup(guid));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the leader of this [Group]
|
* Sets the leader of this [Group]
|
||||||
*
|
*
|
||||||
* @param uint64 guid : guid of the new leader
|
* @param ObjectGuid guid : guid of the new leader
|
||||||
*/
|
*/
|
||||||
int SetLeader(lua_State* L, Group* group)
|
int SetLeader(lua_State* L, Group* group)
|
||||||
{
|
{
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 2);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 2);
|
||||||
group->ChangeLeader(ObjectGuid(guid));
|
group->ChangeLeader(guid);
|
||||||
group->SendUpdate();
|
group->SendUpdate();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -281,18 +281,18 @@ namespace LuaGroup
|
|||||||
*
|
*
|
||||||
* @param [WorldPacket] packet : the [WorldPacket] to send
|
* @param [WorldPacket] packet : the [WorldPacket] to send
|
||||||
* @param bool ignorePlayersInBg : ignores [Player]s in a battleground
|
* @param bool ignorePlayersInBg : ignores [Player]s in a battleground
|
||||||
* @param uint64 ignore : ignore a [Player] by their GUID
|
* @param ObjectGuid ignore : ignore a [Player] by their GUID
|
||||||
*/
|
*/
|
||||||
int SendPacket(lua_State* L, Group* group)
|
int SendPacket(lua_State* L, Group* group)
|
||||||
{
|
{
|
||||||
WorldPacket* data = Eluna::CHECKOBJ<WorldPacket>(L, 2);
|
WorldPacket* data = Eluna::CHECKOBJ<WorldPacket>(L, 2);
|
||||||
bool ignorePlayersInBg = Eluna::CHECKVAL<bool>(L, 3);
|
bool ignorePlayersInBg = Eluna::CHECKVAL<bool>(L, 3);
|
||||||
uint64 ignore = Eluna::CHECKVAL<uint64>(L, 4);
|
ObjectGuid ignore = Eluna::CHECKVAL<ObjectGuid>(L, 4);
|
||||||
|
|
||||||
#ifdef CMANGOS
|
#ifdef CMANGOS
|
||||||
group->BroadcastPacket(*data, ignorePlayersInBg, -1, ObjectGuid(ignore));
|
group->BroadcastPacket(*data, ignorePlayersInBg, -1, ignore);
|
||||||
#else
|
#else
|
||||||
group->BroadcastPacket(data, ignorePlayersInBg, -1, ObjectGuid(ignore));
|
group->BroadcastPacket(data, ignorePlayersInBg, -1, ignore);
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -310,19 +310,19 @@ namespace LuaGroup
|
|||||||
* };
|
* };
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @param uint64 guid : guid of the player to remove
|
* @param ObjectGuid guid : guid of the player to remove
|
||||||
* @param [RemoveMethod] method : method used to remove the player
|
* @param [RemoveMethod] method : method used to remove the player
|
||||||
* @return bool removed
|
* @return bool removed
|
||||||
*/
|
*/
|
||||||
int RemoveMember(lua_State* L, Group* group)
|
int RemoveMember(lua_State* L, Group* group)
|
||||||
{
|
{
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 2);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 2);
|
||||||
uint32 method = Eluna::CHECKVAL<uint32>(L, 3, 0);
|
uint32 method = Eluna::CHECKVAL<uint32>(L, 3, 0);
|
||||||
|
|
||||||
#if defined TRINITY || AZEROTHCORE
|
#if defined TRINITY || AZEROTHCORE
|
||||||
Eluna::Push(L, group->RemoveMember(ObjectGuid(guid), (RemoveMethod)method));
|
Eluna::Push(L, group->RemoveMember(guid, (RemoveMethod)method));
|
||||||
#else
|
#else
|
||||||
Eluna::Push(L, group->RemoveMember(ObjectGuid(guid), method));
|
Eluna::Push(L, group->RemoveMember(guid, method));
|
||||||
#endif
|
#endif
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -350,12 +350,12 @@ namespace LuaGroup
|
|||||||
/**
|
/**
|
||||||
* Sets the member's subGroup
|
* Sets the member's subGroup
|
||||||
*
|
*
|
||||||
* @param uint64 guid : guid of the player to move
|
* @param ObjectGuid guid : guid of the player to move
|
||||||
* @param uint8 groupID : the subGroup's ID
|
* @param uint8 groupID : the subGroup's ID
|
||||||
*/
|
*/
|
||||||
int SetMembersGroup(lua_State* L, Group* group)
|
int SetMembersGroup(lua_State* L, Group* group)
|
||||||
{
|
{
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 2);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 2);
|
||||||
uint8 subGroup = Eluna::CHECKVAL<uint8>(L, 3);
|
uint8 subGroup = Eluna::CHECKVAL<uint8>(L, 3);
|
||||||
|
|
||||||
if (subGroup >= MAX_RAID_SUBGROUPS)
|
if (subGroup >= MAX_RAID_SUBGROUPS)
|
||||||
@@ -367,7 +367,7 @@ namespace LuaGroup
|
|||||||
if (!group->HasFreeSlotSubGroup(subGroup))
|
if (!group->HasFreeSlotSubGroup(subGroup))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
group->ChangeMembersGroup(ObjectGuid(guid), subGroup);
|
group->ChangeMembersGroup(guid, subGroup);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -375,22 +375,22 @@ namespace LuaGroup
|
|||||||
* Sets the target icon of an object for the [Group]
|
* Sets the target icon of an object for the [Group]
|
||||||
*
|
*
|
||||||
* @param uint8 icon : the icon (Skull, Square, etc)
|
* @param uint8 icon : the icon (Skull, Square, etc)
|
||||||
* @param uint64 target : GUID of the icon target, 0 is to clear the icon
|
* @param ObjectGuid target : GUID of the icon target, 0 is to clear the icon
|
||||||
* @param uint64 setter : GUID of the icon setter
|
* @param ObjectGuid setter : GUID of the icon setter
|
||||||
*/
|
*/
|
||||||
int SetTargetIcon(lua_State* L, Group* group)
|
int SetTargetIcon(lua_State* L, Group* group)
|
||||||
{
|
{
|
||||||
uint8 icon = Eluna::CHECKVAL<uint8>(L, 2);
|
uint8 icon = Eluna::CHECKVAL<uint8>(L, 2);
|
||||||
uint64 target = Eluna::CHECKVAL<uint64>(L, 3);
|
ObjectGuid target = Eluna::CHECKVAL<ObjectGuid>(L, 3);
|
||||||
uint64 setter = Eluna::CHECKVAL<uint64>(L, 4, 0);
|
ObjectGuid setter = Eluna::CHECKVAL<ObjectGuid>(L, 4, ObjectGuid());
|
||||||
|
|
||||||
if (icon >= TARGETICONCOUNT)
|
if (icon >= TARGETICONCOUNT)
|
||||||
return luaL_argerror(L, 2, "valid target icon expected");
|
return luaL_argerror(L, 2, "valid target icon expected");
|
||||||
|
|
||||||
#if (defined(CLASSIC) || defined(TBC))
|
#if (defined(CLASSIC) || defined(TBC))
|
||||||
group->SetTargetIcon(icon, ObjectGuid(target));
|
group->SetTargetIcon(icon, target);
|
||||||
#else
|
#else
|
||||||
group->SetTargetIcon(icon, ObjectGuid(setter), ObjectGuid(target));
|
group->SetTargetIcon(icon, setter, target);
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ namespace LuaGuild
|
|||||||
/**
|
/**
|
||||||
* Returns [Guild] leader GUID
|
* Returns [Guild] leader GUID
|
||||||
*
|
*
|
||||||
* @return uint64 leaderGUID
|
* @return ObjectGuid leaderGUID
|
||||||
*/
|
*/
|
||||||
int GetLeaderGUID(lua_State* L, Guild* guild)
|
int GetLeaderGUID(lua_State* L, Guild* guild)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ bool Eluna::OnUse(Player* pPlayer, Item* pItem, SpellCastTargets const& targets)
|
|||||||
// This is a hack fix to stop spell casting visual bug when a spell is not cast on use
|
// This is a hack fix to stop spell casting visual bug when a spell is not cast on use
|
||||||
WorldPacket data(SMSG_INVENTORY_CHANGE_FAILURE, 18);
|
WorldPacket data(SMSG_INVENTORY_CHANGE_FAILURE, 18);
|
||||||
data << uint8(59); // EQUIP_ERR_NONE / EQUIP_ERR_CANT_BE_DISENCHANTED
|
data << uint8(59); // EQUIP_ERR_NONE / EQUIP_ERR_CANT_BE_DISENCHANTED
|
||||||
data << ObjectGuid(guid);
|
data << guid;
|
||||||
data << ObjectGuid(uint64(0));
|
data << ObjectGuid(uint64(0));
|
||||||
data << uint8(0);
|
data << uint8(0);
|
||||||
#ifdef CMANGOS
|
#ifdef CMANGOS
|
||||||
|
|||||||
@@ -749,6 +749,10 @@ void Eluna::Push(lua_State* luastate, Object const* obj)
|
|||||||
ElunaTemplate<Object>::Push(luastate, obj);
|
ElunaTemplate<Object>::Push(luastate, obj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
void Eluna::Push(lua_State* luastate, ObjectGuid const guid)
|
||||||
|
{
|
||||||
|
ElunaTemplate<unsigned long long>::Push(luastate, new unsigned long long(guid.GetRawValue()));
|
||||||
|
}
|
||||||
|
|
||||||
static int CheckIntegerRange(lua_State* luastate, int narg, int min, int max)
|
static int CheckIntegerRange(lua_State* luastate, int narg, int min, int max)
|
||||||
{
|
{
|
||||||
@@ -851,6 +855,10 @@ template<> unsigned long Eluna::CHECKVAL<unsigned long>(lua_State* luastate, int
|
|||||||
{
|
{
|
||||||
return static_cast<unsigned long>(CHECKVAL<unsigned long long>(luastate, narg));
|
return static_cast<unsigned long>(CHECKVAL<unsigned long long>(luastate, narg));
|
||||||
}
|
}
|
||||||
|
template<> ObjectGuid Eluna::CHECKVAL<ObjectGuid>(lua_State* luastate, int narg)
|
||||||
|
{
|
||||||
|
return ObjectGuid(uint64((CHECKVAL<unsigned long long>(luastate, narg))));
|
||||||
|
}
|
||||||
|
|
||||||
template<> Object* Eluna::CHECKOBJ<Object>(lua_State* luastate, int narg, bool error)
|
template<> Object* Eluna::CHECKOBJ<Object>(lua_State* luastate, int narg, bool error)
|
||||||
{
|
{
|
||||||
@@ -936,7 +944,7 @@ static void createCancelCallback(lua_State* L, uint64 bindingID, BindingMap<K>*
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Saves the function reference ID given to the register type's store for given entry under the given event
|
// Saves the function reference ID given to the register type's store for given entry under the given event
|
||||||
int Eluna::Register(lua_State* L, uint8 regtype, uint32 entry, uint64 guid, uint32 instanceId, uint32 event_id, int functionRef, uint32 shots)
|
int Eluna::Register(lua_State* L, uint8 regtype, uint32 entry, ObjectGuid guid, uint32 instanceId, uint32 event_id, int functionRef, uint32 shots)
|
||||||
{
|
{
|
||||||
uint64 bindingID;
|
uint64 bindingID;
|
||||||
|
|
||||||
@@ -1037,7 +1045,7 @@ int Eluna::Register(lua_State* L, uint8 regtype, uint32 entry, uint64 guid, uint
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (guid == 0)
|
if (guid.IsEmpty())
|
||||||
{
|
{
|
||||||
luaL_unref(L, LUA_REGISTRYINDEX, functionRef);
|
luaL_unref(L, LUA_REGISTRYINDEX, functionRef);
|
||||||
luaL_error(L, "guid was 0!");
|
luaL_error(L, "guid was 0!");
|
||||||
@@ -1167,7 +1175,7 @@ int Eluna::Register(lua_State* L, uint8 regtype, uint32 entry, uint64 guid, uint
|
|||||||
}
|
}
|
||||||
luaL_unref(L, LUA_REGISTRYINDEX, functionRef);
|
luaL_unref(L, LUA_REGISTRYINDEX, functionRef);
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
oss << "regtype " << static_cast<uint32>(regtype) << ", event " << event_id << ", entry " << entry << ", guid " << guid << ", instance " << instanceId;
|
oss << "regtype " << static_cast<uint32>(regtype) << ", event " << event_id << ", entry " << entry << ", guid " << guid.GetRawValue() << ", instance " << instanceId;
|
||||||
luaL_error(L, "Unknown event type (%s)", oss.str().c_str());
|
luaL_error(L, "Unknown event type (%s)", oss.str().c_str());
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
20
LuaEngine.h
20
LuaEngine.h
@@ -188,7 +188,7 @@ private:
|
|||||||
// Some helpers for hooks to call event handlers.
|
// Some helpers for hooks to call event handlers.
|
||||||
// The bodies of the templates are in HookHelpers.h, so if you want to use them you need to #include "HookHelpers.h".
|
// The bodies of the templates are in HookHelpers.h, so if you want to use them you need to #include "HookHelpers.h".
|
||||||
template<typename K1, typename K2> int SetupStack(BindingMap<K1>* bindings1, BindingMap<K2>* bindings2, const K1& key1, const K2& key2, int number_of_arguments);
|
template<typename K1, typename K2> int SetupStack(BindingMap<K1>* bindings1, BindingMap<K2>* bindings2, const K1& key1, const K2& key2, int number_of_arguments);
|
||||||
int CallOneFunction(int number_of_functions, int number_of_arguments, int number_of_results);
|
int CallOneFunction(int number_of_functions, int number_of_arguments, int number_of_results);
|
||||||
void CleanUpStack(int number_of_arguments);
|
void CleanUpStack(int number_of_arguments);
|
||||||
template<typename T> void ReplaceArgument(T value, uint8 index);
|
template<typename T> void ReplaceArgument(T value, uint8 index);
|
||||||
template<typename K1, typename K2> void CallAllFunctions(BindingMap<K1>* bindings1, BindingMap<K2>* bindings2, const K1& key1, const K2& key2);
|
template<typename K1, typename K2> void CallAllFunctions(BindingMap<K1>* bindings1, BindingMap<K2>* bindings2, const K1& key1, const K2& key2);
|
||||||
@@ -223,6 +223,7 @@ private:
|
|||||||
void Push(const double value) { Push(L, value); ++push_counter; }
|
void Push(const double value) { Push(L, value); ++push_counter; }
|
||||||
void Push(const std::string& value) { Push(L, value); ++push_counter; }
|
void Push(const std::string& value) { Push(L, value); ++push_counter; }
|
||||||
void Push(const char* value) { Push(L, value); ++push_counter; }
|
void Push(const char* value) { Push(L, value); ++push_counter; }
|
||||||
|
void Push(ObjectGuid const value) { Push(L, value); ++push_counter; }
|
||||||
template<typename T>
|
template<typename T>
|
||||||
void Push(T const* ptr) { Push(L, ptr); ++push_counter; }
|
void Push(T const* ptr) { Push(L, ptr); ++push_counter; }
|
||||||
|
|
||||||
@@ -288,6 +289,7 @@ public:
|
|||||||
static void Push(lua_State* luastate, Unit const* unit);
|
static void Push(lua_State* luastate, Unit const* unit);
|
||||||
static void Push(lua_State* luastate, Pet const* pet);
|
static void Push(lua_State* luastate, Pet const* pet);
|
||||||
static void Push(lua_State* luastate, TempSummon const* summon);
|
static void Push(lua_State* luastate, TempSummon const* summon);
|
||||||
|
static void Push(lua_State* luastate, ObjectGuid const guid);
|
||||||
template<typename T>
|
template<typename T>
|
||||||
static void Push(lua_State* luastate, T const* ptr)
|
static void Push(lua_State* luastate, T const* ptr)
|
||||||
{
|
{
|
||||||
@@ -323,7 +325,7 @@ public:
|
|||||||
bool IsEnabled() const { return enabled && IsInitialized(); }
|
bool IsEnabled() const { return enabled && IsInitialized(); }
|
||||||
bool HasLuaState() const { return L != NULL; }
|
bool HasLuaState() const { return L != NULL; }
|
||||||
uint64 GetCallstackId() const { return callstackid; }
|
uint64 GetCallstackId() const { return callstackid; }
|
||||||
int Register(lua_State* L, uint8 reg, uint32 entry, uint64 guid, uint32 instanceId, uint32 event_id, int functionRef, uint32 shots);
|
int Register(lua_State* L, uint8 reg, uint32 entry, ObjectGuid guid, uint32 instanceId, uint32 event_id, int functionRef, uint32 shots);
|
||||||
|
|
||||||
// Checks
|
// Checks
|
||||||
template<typename T> static T CHECKVAL(lua_State* luastate, int narg);
|
template<typename T> static T CHECKVAL(lua_State* luastate, int narg);
|
||||||
@@ -345,7 +347,7 @@ public:
|
|||||||
void OnTimedEvent(int funcRef, uint32 delay, uint32 calls, WorldObject* obj);
|
void OnTimedEvent(int funcRef, uint32 delay, uint32 calls, WorldObject* obj);
|
||||||
bool OnCommand(Player* player, const char* text);
|
bool OnCommand(Player* player, const char* text);
|
||||||
void OnWorldUpdate(uint32 diff);
|
void OnWorldUpdate(uint32 diff);
|
||||||
void OnLootItem(Player* pPlayer, Item* pItem, uint32 count, uint64 guid);
|
void OnLootItem(Player* pPlayer, Item* pItem, uint32 count, ObjectGuid guid);
|
||||||
void OnLootMoney(Player* pPlayer, uint32 amount);
|
void OnLootMoney(Player* pPlayer, uint32 amount);
|
||||||
void OnFirstLogin(Player* pPlayer);
|
void OnFirstLogin(Player* pPlayer);
|
||||||
void OnEquip(Player* pPlayer, Item* pItem, uint8 bag, uint8 slot);
|
void OnEquip(Player* pPlayer, Item* pItem, uint8 bag, uint8 slot);
|
||||||
@@ -449,7 +451,7 @@ public:
|
|||||||
bool OnChat(Player* pPlayer, uint32 type, uint32 lang, std::string& msg, Channel* pChannel);
|
bool OnChat(Player* pPlayer, uint32 type, uint32 lang, std::string& msg, Channel* pChannel);
|
||||||
bool OnChat(Player* pPlayer, uint32 type, uint32 lang, std::string& msg, Player* pReceiver);
|
bool OnChat(Player* pPlayer, uint32 type, uint32 lang, std::string& msg, Player* pReceiver);
|
||||||
void OnEmote(Player* pPlayer, uint32 emote);
|
void OnEmote(Player* pPlayer, uint32 emote);
|
||||||
void OnTextEmote(Player* pPlayer, uint32 textEmote, uint32 emoteNum, uint64 guid);
|
void OnTextEmote(Player* pPlayer, uint32 textEmote, uint32 emoteNum, ObjectGuid guid);
|
||||||
void OnSpellCast(Player* pPlayer, Spell* pSpell, bool skipCheck);
|
void OnSpellCast(Player* pPlayer, Spell* pSpell, bool skipCheck);
|
||||||
void OnLogin(Player* pPlayer);
|
void OnLogin(Player* pPlayer);
|
||||||
void OnLogout(Player* pPlayer);
|
void OnLogout(Player* pPlayer);
|
||||||
@@ -498,12 +500,12 @@ public:
|
|||||||
void OnBankEvent(Guild* guild, uint8 eventType, uint8 tabId, uint32 playerGuid, uint32 itemOrMoney, uint16 itemStackCount, uint8 destTabId);
|
void OnBankEvent(Guild* guild, uint8 eventType, uint8 tabId, uint32 playerGuid, uint32 itemOrMoney, uint16 itemStackCount, uint8 destTabId);
|
||||||
|
|
||||||
/* Group */
|
/* Group */
|
||||||
void OnAddMember(Group* group, uint64 guid);
|
void OnAddMember(Group* group, ObjectGuid guid);
|
||||||
void OnInviteMember(Group* group, uint64 guid);
|
void OnInviteMember(Group* group, ObjectGuid guid);
|
||||||
void OnRemoveMember(Group* group, uint64 guid, uint8 method);
|
void OnRemoveMember(Group* group, ObjectGuid guid, uint8 method);
|
||||||
void OnChangeLeader(Group* group, uint64 newLeaderGuid, uint64 oldLeaderGuid);
|
void OnChangeLeader(Group* group, ObjectGuid newLeaderGuid, ObjectGuid oldLeaderGuid);
|
||||||
void OnDisband(Group* group);
|
void OnDisband(Group* group);
|
||||||
void OnCreate(Group* group, uint64 leaderGuid, GroupType groupType);
|
void OnCreate(Group* group, ObjectGuid leaderGuid, GroupType groupType);
|
||||||
|
|
||||||
/* Map */
|
/* Map */
|
||||||
void OnCreate(Map* map);
|
void OnCreate(Map* map);
|
||||||
|
|||||||
24
MapMethods.h
24
MapMethods.h
@@ -205,45 +205,41 @@ namespace LuaMap
|
|||||||
/**
|
/**
|
||||||
* Returns a [WorldObject] by its GUID from the map if it is spawned.
|
* Returns a [WorldObject] by its GUID from the map if it is spawned.
|
||||||
*
|
*
|
||||||
* @param uint64 guid
|
* @param ObjectGuid guid
|
||||||
*/
|
*/
|
||||||
int GetWorldObject(lua_State* L, Map* map)
|
int GetWorldObject(lua_State* L, Map* map)
|
||||||
{
|
{
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 2);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 2);
|
||||||
|
|
||||||
#if defined TRINITY || AZEROTHCORE
|
#if defined TRINITY || AZEROTHCORE
|
||||||
switch (GUID_HIPART(guid))
|
switch (guid.GetHigh())
|
||||||
{
|
{
|
||||||
case HIGHGUID_PLAYER:
|
case HIGHGUID_PLAYER:
|
||||||
#ifndef AZEROTHCORE
|
Eluna::Push(L, eObjectAccessor()GetPlayer(map, guid));
|
||||||
Eluna::Push(L, eObjectAccessor()GetPlayer(map, ObjectGuid(guid)));
|
|
||||||
#else
|
|
||||||
Eluna::Push(L, map->GetPlayer(ObjectGuid(guid)));
|
|
||||||
#endif // !AZEROTHCORE
|
|
||||||
break;
|
break;
|
||||||
case HIGHGUID_TRANSPORT:
|
case HIGHGUID_TRANSPORT:
|
||||||
case HIGHGUID_MO_TRANSPORT:
|
case HIGHGUID_MO_TRANSPORT:
|
||||||
case HIGHGUID_GAMEOBJECT:
|
case HIGHGUID_GAMEOBJECT:
|
||||||
Eluna::Push(L, map->GetGameObject(ObjectGuid(guid)));
|
Eluna::Push(L, map->GetGameObject(guid));
|
||||||
break;
|
break;
|
||||||
case HIGHGUID_VEHICLE:
|
case HIGHGUID_VEHICLE:
|
||||||
case HIGHGUID_UNIT:
|
case HIGHGUID_UNIT:
|
||||||
Eluna::Push(L, map->GetCreature(ObjectGuid(guid)));
|
Eluna::Push(L, map->GetCreature(guid));
|
||||||
break;
|
break;
|
||||||
case HIGHGUID_PET:
|
case HIGHGUID_PET:
|
||||||
Eluna::Push(L, map->GetPet(ObjectGuid(guid)));
|
Eluna::Push(L, map->GetPet(guid));
|
||||||
break;
|
break;
|
||||||
case HIGHGUID_DYNAMICOBJECT:
|
case HIGHGUID_DYNAMICOBJECT:
|
||||||
Eluna::Push(L, map->GetDynamicObject(ObjectGuid(guid)));
|
Eluna::Push(L, map->GetDynamicObject(guid));
|
||||||
break;
|
break;
|
||||||
case HIGHGUID_CORPSE:
|
case HIGHGUID_CORPSE:
|
||||||
Eluna::Push(L, map->GetCorpse(ObjectGuid(guid)));
|
Eluna::Push(L, map->GetCorpse(guid));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
Eluna::Push(L, map->GetWorldObject(ObjectGuid(guid)));
|
Eluna::Push(L, map->GetWorldObject(guid));
|
||||||
#endif
|
#endif
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -163,8 +163,8 @@ namespace LuaObject
|
|||||||
* the same GUID but not on the same map.
|
* the same GUID but not on the same map.
|
||||||
*
|
*
|
||||||
* On TrinityCore this value is unique across all maps
|
* On TrinityCore this value is unique across all maps
|
||||||
*
|
*
|
||||||
* @return uint64 guid
|
* @return ObjectGuid guid
|
||||||
*/
|
*/
|
||||||
int GetGUID(lua_State* L, Object* obj)
|
int GetGUID(lua_State* L, Object* obj)
|
||||||
{
|
{
|
||||||
@@ -186,7 +186,7 @@ namespace LuaObject
|
|||||||
*/
|
*/
|
||||||
int GetGUIDLow(lua_State* L, Object* obj)
|
int GetGUIDLow(lua_State* L, Object* obj)
|
||||||
{
|
{
|
||||||
#ifdef TRINITY
|
#if defined TRINITY || AZEROTHCORE
|
||||||
Eluna::Push(L, obj->GetGUID().GetCounter());
|
Eluna::Push(L, obj->GetGUID().GetCounter());
|
||||||
#else
|
#else
|
||||||
Eluna::Push(L, obj->GetGUIDLow());
|
Eluna::Push(L, obj->GetGUIDLow());
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ bool Eluna::OnCommand(Player* player, const char* text)
|
|||||||
return CallAllFunctionsBool(PlayerEventBindings, key, true);
|
return CallAllFunctionsBool(PlayerEventBindings, key, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Eluna::OnLootItem(Player* pPlayer, Item* pItem, uint32 count, uint64 guid)
|
void Eluna::OnLootItem(Player* pPlayer, Item* pItem, uint32 count, ObjectGuid guid)
|
||||||
{
|
{
|
||||||
START_HOOK(PLAYER_EVENT_ON_LOOT_ITEM);
|
START_HOOK(PLAYER_EVENT_ON_LOOT_ITEM);
|
||||||
Push(pPlayer);
|
Push(pPlayer);
|
||||||
@@ -311,7 +311,7 @@ void Eluna::OnEmote(Player* pPlayer, uint32 emote)
|
|||||||
CallAllFunctions(PlayerEventBindings, key);
|
CallAllFunctions(PlayerEventBindings, key);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Eluna::OnTextEmote(Player* pPlayer, uint32 textEmote, uint32 emoteNum, uint64 guid)
|
void Eluna::OnTextEmote(Player* pPlayer, uint32 textEmote, uint32 emoteNum, ObjectGuid guid)
|
||||||
{
|
{
|
||||||
START_HOOK(PLAYER_EVENT_ON_TEXT_EMOTE);
|
START_HOOK(PLAYER_EVENT_ON_TEXT_EMOTE);
|
||||||
Push(pPlayer);
|
Push(pPlayer);
|
||||||
|
|||||||
@@ -1370,14 +1370,14 @@ namespace LuaPlayer
|
|||||||
*
|
*
|
||||||
* The item can be equipped, in bags or in bank.
|
* The item can be equipped, in bags or in bank.
|
||||||
*
|
*
|
||||||
* @param uint64 guid : an item guid
|
* @param ObjectGuid guid : an item guid
|
||||||
* @return [Item] item
|
* @return [Item] item
|
||||||
*/
|
*/
|
||||||
int GetItemByGUID(lua_State* L, Player* player)
|
int GetItemByGUID(lua_State* L, Player* player)
|
||||||
{
|
{
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 2);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 2);
|
||||||
|
|
||||||
Eluna::Push(L, player->GetItemByGuid(ObjectGuid(guid)));
|
Eluna::Push(L, player->GetItemByGuid(guid));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2135,18 +2135,18 @@ namespace LuaPlayer
|
|||||||
/**
|
/**
|
||||||
* Shows the mailbox window to the player from specified guid.
|
* Shows the mailbox window to the player from specified guid.
|
||||||
*
|
*
|
||||||
* @param uint64 guid = playerguid : guid of the mailbox window sender
|
* @param ObjectGuid guid = playerguid : guid of the mailbox window sender
|
||||||
*/
|
*/
|
||||||
int SendShowMailBox(lua_State* L, Player* player)
|
int SendShowMailBox(lua_State* L, Player* player)
|
||||||
{
|
{
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 2, player->GET_GUID());
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 2, player->GET_GUID());
|
||||||
|
|
||||||
#if (defined(CLASSIC) || defined(TBC))
|
#if (defined(CLASSIC) || defined(TBC))
|
||||||
WorldPacket data(CMSG_GET_MAIL_LIST, 8);
|
WorldPacket data(CMSG_GET_MAIL_LIST, 8);
|
||||||
data << uint64(guid);
|
data << guid;
|
||||||
player->GetSession()->HandleGetMailList(data);
|
player->GetSession()->HandleGetMailList(data);
|
||||||
#else
|
#else
|
||||||
player->GetSession()->SendShowMailBox(ObjectGuid(guid));
|
player->GetSession()->SendShowMailBox(guid);
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -2209,7 +2209,7 @@ namespace LuaPlayer
|
|||||||
player->SetSummonPoint(summoner->GetMapId(), x, y, z);
|
player->SetSummonPoint(summoner->GetMapId(), x, y, z);
|
||||||
|
|
||||||
WorldPacket data(SMSG_SUMMON_REQUEST, 8 + 4 + 4);
|
WorldPacket data(SMSG_SUMMON_REQUEST, 8 + 4 + 4);
|
||||||
data << uint64(summoner->GetGUIDLow());
|
data << summoner->GET_GUID();
|
||||||
data << uint32(summoner->GetZoneId());
|
data << uint32(summoner->GetZoneId());
|
||||||
data << uint32(MAX_PLAYER_SUMMON_DELAY * IN_MILLISECONDS);
|
data << uint32(MAX_PLAYER_SUMMON_DELAY * IN_MILLISECONDS);
|
||||||
#ifdef CMANGOS
|
#ifdef CMANGOS
|
||||||
@@ -2278,11 +2278,10 @@ namespace LuaPlayer
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
WorldPacket data(MSG_AUCTION_HELLO, 12);
|
WorldPacket data(MSG_AUCTION_HELLO, 12);
|
||||||
|
data << unit->GET_GUID();
|
||||||
#ifdef TRINITY
|
#ifdef TRINITY
|
||||||
data << uint64(unit->GetGUID().GetCounter());
|
|
||||||
data << uint32(ahEntry->ID);
|
data << uint32(ahEntry->ID);
|
||||||
#else
|
#else
|
||||||
data << uint64(unit->GetGUIDLow());
|
|
||||||
data << uint32(ahEntry->houseId);
|
data << uint32(ahEntry->houseId);
|
||||||
#endif
|
#endif
|
||||||
data << uint8(1);
|
data << uint8(1);
|
||||||
@@ -2434,7 +2433,7 @@ namespace LuaPlayer
|
|||||||
#ifndef AZEROTHCORE
|
#ifndef AZEROTHCORE
|
||||||
player->UnbindInstance(map, (Difficulty)difficulty);
|
player->UnbindInstance(map, (Difficulty)difficulty);
|
||||||
#else
|
#else
|
||||||
sInstanceSaveMgr->PlayerUnbindInstance(player->GetGUIDLow(), map, Difficulty(difficulty), true, player);
|
sInstanceSaveMgr->PlayerUnbindInstance(player->GetGUID(), map, Difficulty(difficulty), true, player);
|
||||||
#endif//AZEROTHCORE
|
#endif//AZEROTHCORE
|
||||||
#else//CLASSIC
|
#else//CLASSIC
|
||||||
player->UnbindInstance(map);
|
player->UnbindInstance(map);
|
||||||
@@ -2459,12 +2458,12 @@ namespace LuaPlayer
|
|||||||
#elif defined AZEROTHCORE
|
#elif defined AZEROTHCORE
|
||||||
for (uint8 i = 0; i < MAX_DIFFICULTY; ++i)
|
for (uint8 i = 0; i < MAX_DIFFICULTY; ++i)
|
||||||
{
|
{
|
||||||
const BoundInstancesMap& binds = sInstanceSaveMgr->PlayerGetBoundInstances(player->GetGUIDLow(), Difficulty(i));
|
const BoundInstancesMap& binds = sInstanceSaveMgr->PlayerGetBoundInstances(player->GetGUID(), Difficulty(i));
|
||||||
for (BoundInstancesMap::const_iterator itr = binds.begin(); itr != binds.end();)
|
for (BoundInstancesMap::const_iterator itr = binds.begin(); itr != binds.end();)
|
||||||
{
|
{
|
||||||
if (itr->first != player->GetMapId())
|
if (itr->first != player->GetMapId())
|
||||||
{
|
{
|
||||||
sInstanceSaveMgr->PlayerUnbindInstance(player->GetGUIDLow(), itr->first, Difficulty(i), true, player);
|
sInstanceSaveMgr->PlayerUnbindInstance(player->GetGUID(), itr->first, Difficulty(i), true, player);
|
||||||
itr = binds.begin();
|
itr = binds.begin();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -2870,11 +2869,7 @@ namespace LuaPlayer
|
|||||||
{
|
{
|
||||||
if (CreatureTemplate const* creatureInfo = sObjectMgr->GetCreatureTemplate(creature))
|
if (CreatureTemplate const* creatureInfo = sObjectMgr->GetCreatureTemplate(creature))
|
||||||
for (uint16 z = 0; z < creatureCount; ++z)
|
for (uint16 z = 0; z < creatureCount; ++z)
|
||||||
#ifndef AZEROTHCORE
|
|
||||||
player->KilledMonster(creatureInfo, ObjectGuid::Empty);
|
player->KilledMonster(creatureInfo, ObjectGuid::Empty);
|
||||||
#else
|
|
||||||
player->KilledMonster(creatureInfo, 0);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
else if (creature < 0)
|
else if (creature < 0)
|
||||||
for (uint16 z = 0; z < creatureCount; ++z)
|
for (uint16 z = 0; z < creatureCount; ++z)
|
||||||
@@ -3061,7 +3056,7 @@ namespace LuaPlayer
|
|||||||
* @param string text
|
* @param string text
|
||||||
* @param uint32 lang : language the [Player] will speak
|
* @param uint32 lang : language the [Player] will speak
|
||||||
* @param [Player] receiver : is the [Player] that will receive the whisper, if TrinityCore
|
* @param [Player] receiver : is the [Player] that will receive the whisper, if TrinityCore
|
||||||
* @param uint64 guid : is the GUID of a [Player] that will receive the whisper, not TrinityCore
|
* @param ObjectGuid guid : is the GUID of a [Player] that will receive the whisper, not TrinityCore
|
||||||
*/
|
*/
|
||||||
int Whisper(lua_State* L, Player* player)
|
int Whisper(lua_State* L, Player* player)
|
||||||
{
|
{
|
||||||
@@ -3070,12 +3065,12 @@ namespace LuaPlayer
|
|||||||
#ifdef TRINITY
|
#ifdef TRINITY
|
||||||
Player* receiver = Eluna::CHECKOBJ<Player>(L, 4);
|
Player* receiver = Eluna::CHECKOBJ<Player>(L, 4);
|
||||||
#else
|
#else
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 4);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 4);
|
||||||
#endif
|
#endif
|
||||||
#ifdef TRINITY
|
#ifdef TRINITY
|
||||||
player->Whisper(text, (Language)lang, receiver);
|
player->Whisper(text, (Language)lang, receiver);
|
||||||
#else
|
#else
|
||||||
player->Whisper(text, lang, ObjectGuid(guid));
|
player->Whisper(text, lang, guid);
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -3637,10 +3632,10 @@ namespace LuaPlayer
|
|||||||
WorldPacket data(SMSG_MESSAGECHAT, 100);
|
WorldPacket data(SMSG_MESSAGECHAT, 100);
|
||||||
data << uint8(channel);
|
data << uint8(channel);
|
||||||
data << int32(LANG_ADDON);
|
data << int32(LANG_ADDON);
|
||||||
data << uint64(player->GET_GUID());
|
data << player->GET_GUID();
|
||||||
#ifndef CLASSIC
|
#ifndef CLASSIC
|
||||||
data << uint32(0);
|
data << uint32(0);
|
||||||
data << uint64(receiver->GET_GUID());
|
data << receiver->GET_GUID();
|
||||||
#endif
|
#endif
|
||||||
data << uint32(fullmsg.length() + 1);
|
data << uint32(fullmsg.length() + 1);
|
||||||
data << fullmsg;
|
data << fullmsg;
|
||||||
@@ -4114,7 +4109,7 @@ namespace LuaPlayer
|
|||||||
/*int KillGOCredit(lua_State* L, Player* player)
|
/*int KillGOCredit(lua_State* L, Player* player)
|
||||||
{
|
{
|
||||||
uint32 entry = Eluna::CHECKVAL<uint32>(L, 2);
|
uint32 entry = Eluna::CHECKVAL<uint32>(L, 2);
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 3);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 3);
|
||||||
player->KillCreditGO(entry, guid);
|
player->KillCreditGO(entry, guid);
|
||||||
return 0;
|
return 0;
|
||||||
}*/
|
}*/
|
||||||
|
|||||||
@@ -140,19 +140,23 @@ void Eluna::OnChange(Weather* /*weather*/, uint32 zone, WeatherState state, floa
|
|||||||
// Auction House
|
// Auction House
|
||||||
void Eluna::OnAdd(AuctionHouseObject* /*ah*/, AuctionEntry* entry)
|
void Eluna::OnAdd(AuctionHouseObject* /*ah*/, AuctionEntry* entry)
|
||||||
{
|
{
|
||||||
|
#ifdef AZEROTHCORE
|
||||||
|
Player* owner = eObjectAccessor()FindPlayer(entry->owner);
|
||||||
|
#else
|
||||||
Player* owner = eObjectAccessor()FindPlayer(MAKE_NEW_GUID(entry->owner, 0, HIGHGUID_PLAYER));
|
Player* owner = eObjectAccessor()FindPlayer(MAKE_NEW_GUID(entry->owner, 0, HIGHGUID_PLAYER));
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef TRINITY
|
#ifdef TRINITY
|
||||||
Item* item = eAuctionMgr->GetAItem(entry->itemGUIDLow);
|
Item* item = eAuctionMgr->GetAItem(entry->itemGUIDLow);
|
||||||
uint32 expiretime = entry->expire_time;
|
uint32 expiretime = entry->expire_time;
|
||||||
#elif AZEROTHCORE
|
#elif AZEROTHCORE
|
||||||
Item* item = eAuctionMgr->GetAItem(entry->item_guidlow);
|
Item* item = eAuctionMgr->GetAItem(entry->item_guid);
|
||||||
uint32 expiretime = entry->expire_time;
|
uint32 expiretime = entry->expire_time;
|
||||||
#else
|
#else
|
||||||
Item* item = eAuctionMgr->GetAItem(entry->itemGuidLow);
|
Item* item = eAuctionMgr->GetAItem(entry->itemGuidLow);
|
||||||
uint32 expiretime = entry->expireTime;
|
uint32 expiretime = entry->expireTime;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
if (!owner || !item)
|
if (!owner || !item)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -170,12 +174,17 @@ void Eluna::OnAdd(AuctionHouseObject* /*ah*/, AuctionEntry* entry)
|
|||||||
|
|
||||||
void Eluna::OnRemove(AuctionHouseObject* /*ah*/, AuctionEntry* entry)
|
void Eluna::OnRemove(AuctionHouseObject* /*ah*/, AuctionEntry* entry)
|
||||||
{
|
{
|
||||||
|
#ifdef AZEROTHCORE
|
||||||
|
Player* owner = eObjectAccessor()FindPlayer(entry->owner);
|
||||||
|
#else
|
||||||
Player* owner = eObjectAccessor()FindPlayer(MAKE_NEW_GUID(entry->owner, 0, HIGHGUID_PLAYER));
|
Player* owner = eObjectAccessor()FindPlayer(MAKE_NEW_GUID(entry->owner, 0, HIGHGUID_PLAYER));
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef TRINITY
|
#ifdef TRINITY
|
||||||
Item* item = eAuctionMgr->GetAItem(entry->itemGUIDLow);
|
Item* item = eAuctionMgr->GetAItem(entry->itemGUIDLow);
|
||||||
uint32 expiretime = entry->expire_time;
|
uint32 expiretime = entry->expire_time;
|
||||||
#elif AZEROTHCORE
|
#elif AZEROTHCORE
|
||||||
Item* item = eAuctionMgr->GetAItem(entry->item_guidlow);
|
Item* item = eAuctionMgr->GetAItem(entry->item_guid);
|
||||||
uint32 expiretime = entry->expire_time;
|
uint32 expiretime = entry->expire_time;
|
||||||
#else
|
#else
|
||||||
Item* item = eAuctionMgr->GetAItem(entry->itemGuidLow);
|
Item* item = eAuctionMgr->GetAItem(entry->itemGuidLow);
|
||||||
@@ -200,12 +209,17 @@ void Eluna::OnRemove(AuctionHouseObject* /*ah*/, AuctionEntry* entry)
|
|||||||
|
|
||||||
void Eluna::OnSuccessful(AuctionHouseObject* /*ah*/, AuctionEntry* entry)
|
void Eluna::OnSuccessful(AuctionHouseObject* /*ah*/, AuctionEntry* entry)
|
||||||
{
|
{
|
||||||
|
#ifdef AZEROTHCORE
|
||||||
|
Player* owner = eObjectAccessor()FindPlayer(entry->owner);
|
||||||
|
#else
|
||||||
Player* owner = eObjectAccessor()FindPlayer(MAKE_NEW_GUID(entry->owner, 0, HIGHGUID_PLAYER));
|
Player* owner = eObjectAccessor()FindPlayer(MAKE_NEW_GUID(entry->owner, 0, HIGHGUID_PLAYER));
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef TRINITY
|
#ifdef TRINITY
|
||||||
Item* item = eAuctionMgr->GetAItem(entry->itemGUIDLow);
|
Item* item = eAuctionMgr->GetAItem(entry->itemGUIDLow);
|
||||||
uint32 expiretime = entry->expire_time;
|
uint32 expiretime = entry->expire_time;
|
||||||
#elif AZEROTHCORE
|
#elif AZEROTHCORE
|
||||||
Item* item = eAuctionMgr->GetAItem(entry->item_guidlow);
|
Item* item = eAuctionMgr->GetAItem(entry->item_guid);
|
||||||
uint32 expiretime = entry->expire_time;
|
uint32 expiretime = entry->expire_time;
|
||||||
#else
|
#else
|
||||||
Item* item = eAuctionMgr->GetAItem(entry->itemGuidLow);
|
Item* item = eAuctionMgr->GetAItem(entry->itemGuidLow);
|
||||||
@@ -230,12 +244,17 @@ void Eluna::OnSuccessful(AuctionHouseObject* /*ah*/, AuctionEntry* entry)
|
|||||||
|
|
||||||
void Eluna::OnExpire(AuctionHouseObject* /*ah*/, AuctionEntry* entry)
|
void Eluna::OnExpire(AuctionHouseObject* /*ah*/, AuctionEntry* entry)
|
||||||
{
|
{
|
||||||
|
#ifdef AZEROTHCORE
|
||||||
|
Player* owner = eObjectAccessor()FindPlayer(entry->owner);
|
||||||
|
#else
|
||||||
Player* owner = eObjectAccessor()FindPlayer(MAKE_NEW_GUID(entry->owner, 0, HIGHGUID_PLAYER));
|
Player* owner = eObjectAccessor()FindPlayer(MAKE_NEW_GUID(entry->owner, 0, HIGHGUID_PLAYER));
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef TRINITY
|
#ifdef TRINITY
|
||||||
Item* item = eAuctionMgr->GetAItem(entry->itemGUIDLow);
|
Item* item = eAuctionMgr->GetAItem(entry->itemGUIDLow);
|
||||||
uint32 expiretime = entry->expire_time;
|
uint32 expiretime = entry->expire_time;
|
||||||
#elif AZEROTHCORE
|
#elif AZEROTHCORE
|
||||||
Item* item = eAuctionMgr->GetAItem(entry->item_guidlow);
|
Item* item = eAuctionMgr->GetAItem(entry->item_guid);
|
||||||
uint32 expiretime = entry->expire_time;
|
uint32 expiretime = entry->expire_time;
|
||||||
#else
|
#else
|
||||||
Item* item = eAuctionMgr->GetAItem(entry->itemGuidLow);
|
Item* item = eAuctionMgr->GetAItem(entry->itemGuidLow);
|
||||||
|
|||||||
@@ -602,7 +602,7 @@ namespace LuaUnit
|
|||||||
/**
|
/**
|
||||||
* Returns the [Unit]'s owner's GUID.
|
* Returns the [Unit]'s owner's GUID.
|
||||||
*
|
*
|
||||||
* @return uint64 ownerGUID
|
* @return ObjectGuid ownerGUID
|
||||||
*/
|
*/
|
||||||
int GetOwnerGUID(lua_State* L, Unit* unit)
|
int GetOwnerGUID(lua_State* L, Unit* unit)
|
||||||
{
|
{
|
||||||
@@ -628,7 +628,7 @@ namespace LuaUnit
|
|||||||
/**
|
/**
|
||||||
* Returns the [Unit]'s creator's GUID.
|
* Returns the [Unit]'s creator's GUID.
|
||||||
*
|
*
|
||||||
* @return uint64 creatorGUID
|
* @return ObjectGuid creatorGUID
|
||||||
*/
|
*/
|
||||||
int GetCreatorGUID(lua_State* L, Unit* unit)
|
int GetCreatorGUID(lua_State* L, Unit* unit)
|
||||||
{
|
{
|
||||||
@@ -643,7 +643,7 @@ namespace LuaUnit
|
|||||||
/**
|
/**
|
||||||
* Returns the [Unit]'s charmer's GUID.
|
* Returns the [Unit]'s charmer's GUID.
|
||||||
*
|
*
|
||||||
* @return uint64 charmerGUID
|
* @return ObjectGuid charmerGUID
|
||||||
*/
|
*/
|
||||||
int GetCharmerGUID(lua_State* L, Unit* unit)
|
int GetCharmerGUID(lua_State* L, Unit* unit)
|
||||||
{
|
{
|
||||||
@@ -658,7 +658,7 @@ namespace LuaUnit
|
|||||||
/**
|
/**
|
||||||
* Returns the GUID of the [Unit]'s charmed entity.
|
* Returns the GUID of the [Unit]'s charmed entity.
|
||||||
*
|
*
|
||||||
* @return uint64 charmedGUID
|
* @return ObjectGuid charmedGUID
|
||||||
*/
|
*/
|
||||||
int GetCharmGUID(lua_State* L, Unit* unit)
|
int GetCharmGUID(lua_State* L, Unit* unit)
|
||||||
{
|
{
|
||||||
@@ -675,7 +675,7 @@ namespace LuaUnit
|
|||||||
/**
|
/**
|
||||||
* Returns the GUID of the [Unit]'s pet.
|
* Returns the GUID of the [Unit]'s pet.
|
||||||
*
|
*
|
||||||
* @return uint64 petGUID
|
* @return ObjectGuid petGUID
|
||||||
*/
|
*/
|
||||||
int GetPetGUID(lua_State* L, Unit* unit)
|
int GetPetGUID(lua_State* L, Unit* unit)
|
||||||
{
|
{
|
||||||
@@ -690,7 +690,7 @@ namespace LuaUnit
|
|||||||
/**
|
/**
|
||||||
* Returns the GUID of the [Unit]'s charmer or owner.
|
* Returns the GUID of the [Unit]'s charmer or owner.
|
||||||
*
|
*
|
||||||
* @return uint64 controllerGUID
|
* @return ObjectGuid controllerGUID
|
||||||
*/
|
*/
|
||||||
int GetControllerGUID(lua_State* L, Unit* unit)
|
int GetControllerGUID(lua_State* L, Unit* unit)
|
||||||
{
|
{
|
||||||
@@ -705,7 +705,7 @@ namespace LuaUnit
|
|||||||
/**
|
/**
|
||||||
* Returns the GUID of the [Unit]'s charmer or owner or its own GUID.
|
* Returns the GUID of the [Unit]'s charmer or owner or its own GUID.
|
||||||
*
|
*
|
||||||
* @return uint64 controllerGUID
|
* @return ObjectGuid controllerGUID
|
||||||
*/
|
*/
|
||||||
int GetControllerGUIDS(lua_State* L, Unit* unit)
|
int GetControllerGUIDS(lua_State* L, Unit* unit)
|
||||||
{
|
{
|
||||||
@@ -1355,7 +1355,7 @@ namespace LuaUnit
|
|||||||
/**
|
/**
|
||||||
* Returns the Critter Guid
|
* Returns the Critter Guid
|
||||||
*
|
*
|
||||||
* @return uint64 critterGuid
|
* @return ObjectGuid critterGuid
|
||||||
*/
|
*/
|
||||||
int GetCritterGUID(lua_State* L, Unit* unit)
|
int GetCritterGUID(lua_State* L, Unit* unit)
|
||||||
{
|
{
|
||||||
@@ -1444,16 +1444,16 @@ namespace LuaUnit
|
|||||||
/**
|
/**
|
||||||
* Sets the [Unit]'s owner GUID to given GUID.
|
* Sets the [Unit]'s owner GUID to given GUID.
|
||||||
*
|
*
|
||||||
* @param uint64 guid : new owner guid
|
* @param ObjectGuid guid : new owner guid
|
||||||
*/
|
*/
|
||||||
int SetOwnerGUID(lua_State* L, Unit* unit)
|
int SetOwnerGUID(lua_State* L, Unit* unit)
|
||||||
{
|
{
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 2);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 2);
|
||||||
|
|
||||||
#if defined TRINITY || AZEROTHCORE
|
#if defined TRINITY || AZEROTHCORE
|
||||||
unit->SetOwnerGUID(ObjectGuid(guid));
|
unit->SetOwnerGUID(guid);
|
||||||
#else
|
#else
|
||||||
unit->SetOwnerGuid(ObjectGuid(guid));
|
unit->SetOwnerGuid(guid);
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -1785,15 +1785,15 @@ namespace LuaUnit
|
|||||||
/**
|
/**
|
||||||
* Sets creator GUID
|
* Sets creator GUID
|
||||||
*
|
*
|
||||||
* @param uint64 guid
|
* @param ObjectGuid guid
|
||||||
*/
|
*/
|
||||||
int SetCreatorGUID(lua_State* L, Unit* unit)
|
int SetCreatorGUID(lua_State* L, Unit* unit)
|
||||||
{
|
{
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 2);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 2);
|
||||||
#if defined TRINITY || AZEROTHCORE
|
#if defined TRINITY || AZEROTHCORE
|
||||||
unit->SetCreatorGUID(ObjectGuid(guid));
|
unit->SetCreatorGUID(guid);
|
||||||
#else
|
#else
|
||||||
unit->SetCreatorGuid(ObjectGuid(guid));
|
unit->SetCreatorGuid(guid);
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -1801,15 +1801,15 @@ namespace LuaUnit
|
|||||||
/**
|
/**
|
||||||
* Sets pet GUID
|
* Sets pet GUID
|
||||||
*
|
*
|
||||||
* @param uint64 guid
|
* @param ObjectGuid guid
|
||||||
*/
|
*/
|
||||||
int SetPetGUID(lua_State* L, Unit* unit)
|
int SetPetGUID(lua_State* L, Unit* unit)
|
||||||
{
|
{
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 2);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 2);
|
||||||
#if defined TRINITY || AZEROTHCORE
|
#if defined TRINITY || AZEROTHCORE
|
||||||
unit->SetPetGUID(ObjectGuid(guid));
|
unit->SetPetGUID(guid);
|
||||||
#else
|
#else
|
||||||
unit->SetPetGuid(ObjectGuid(guid));
|
unit->SetPetGuid(guid);
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -1907,11 +1907,11 @@ namespace LuaUnit
|
|||||||
|
|
||||||
int SetCritterGUID(lua_State* L, Unit* unit)
|
int SetCritterGUID(lua_State* L, Unit* unit)
|
||||||
{
|
{
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 2);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 2);
|
||||||
#if defined TRINITY || AZEROTHCORE
|
#if defined TRINITY || AZEROTHCORE
|
||||||
unit->SetCritterGUID(ObjectGuid(guid));
|
unit->SetCritterGUID(guid);
|
||||||
#else
|
#else
|
||||||
unit->SetCritterGuid(ObjectGuid(guid));
|
unit->SetCritterGuid(guid);
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -2444,7 +2444,7 @@ namespace LuaUnit
|
|||||||
* @param int32 bp1 = nil : custom basepoints for [Spell] effect 2. If nil, no change is made
|
* @param int32 bp1 = nil : custom basepoints for [Spell] effect 2. If nil, no change is made
|
||||||
* @param int32 bp2 = nil : custom basepoints for [Spell] effect 3. If nil, no change is made
|
* @param int32 bp2 = nil : custom basepoints for [Spell] effect 3. If nil, no change is made
|
||||||
* @param [Item] castItem = nil
|
* @param [Item] castItem = nil
|
||||||
* @param uint64 originalCaster = 0
|
* @param ObjectGuid originalCaster = ObjectGuid()
|
||||||
*/
|
*/
|
||||||
int CastCustomSpell(lua_State* L, Unit* unit)
|
int CastCustomSpell(lua_State* L, Unit* unit)
|
||||||
{
|
{
|
||||||
@@ -2458,7 +2458,7 @@ namespace LuaUnit
|
|||||||
bool has_bp2 = !lua_isnoneornil(L, 7);
|
bool has_bp2 = !lua_isnoneornil(L, 7);
|
||||||
int32 bp2 = Eluna::CHECKVAL<int32>(L, 7, 0);
|
int32 bp2 = Eluna::CHECKVAL<int32>(L, 7, 0);
|
||||||
Item* castItem = Eluna::CHECKOBJ<Item>(L, 8, false);
|
Item* castItem = Eluna::CHECKOBJ<Item>(L, 8, false);
|
||||||
uint64 originalCaster = Eluna::CHECKVAL<uint64>(L, 9, 0);
|
ObjectGuid originalCaster = Eluna::CHECKVAL<ObjectGuid>(L, 9, ObjectGuid());
|
||||||
|
|
||||||
#ifdef TRINITY
|
#ifdef TRINITY
|
||||||
CastSpellExtraArgs args;
|
CastSpellExtraArgs args;
|
||||||
@@ -2473,7 +2473,7 @@ namespace LuaUnit
|
|||||||
if (castItem)
|
if (castItem)
|
||||||
args.SetCastItem(castItem);
|
args.SetCastItem(castItem);
|
||||||
if (originalCaster)
|
if (originalCaster)
|
||||||
args.SetOriginalCaster(ObjectGuid(originalCaster));
|
args.SetOriginalCaster(originalCaster);
|
||||||
unit->CastSpell(target, spell, args);
|
unit->CastSpell(target, spell, args);
|
||||||
#else
|
#else
|
||||||
unit->CastCustomSpell(target, spell, has_bp0 ? &bp0 : NULL, has_bp1 ? &bp1 : NULL, has_bp2 ? &bp2 : NULL, triggered, castItem, NULL, ObjectGuid(originalCaster));
|
unit->CastCustomSpell(target, spell, has_bp0 ? &bp0 : NULL, has_bp1 ? &bp1 : NULL, has_bp2 ? &bp2 : NULL, triggered, castItem, NULL, ObjectGuid(originalCaster));
|
||||||
|
|||||||
@@ -163,11 +163,11 @@ namespace LuaPacket
|
|||||||
/**
|
/**
|
||||||
* Reads and returns an unsigned 64-bit integer value from the [WorldPacket].
|
* Reads and returns an unsigned 64-bit integer value from the [WorldPacket].
|
||||||
*
|
*
|
||||||
* @return uint64 value : value returned as string
|
* @return ObjectGuid value : value returned as string
|
||||||
*/
|
*/
|
||||||
int ReadGUID(lua_State* L, WorldPacket* packet)
|
int ReadGUID(lua_State* L, WorldPacket* packet)
|
||||||
{
|
{
|
||||||
uint64 guid;
|
ObjectGuid guid;
|
||||||
(*packet) >> guid;
|
(*packet) >> guid;
|
||||||
Eluna::Push(L, guid);
|
Eluna::Push(L, guid);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -189,11 +189,11 @@ namespace LuaPacket
|
|||||||
/**
|
/**
|
||||||
* Writes an unsigned 64-bit integer value to the [WorldPacket].
|
* Writes an unsigned 64-bit integer value to the [WorldPacket].
|
||||||
*
|
*
|
||||||
* @param uint64 value : the value to be written to the [WorldPacket]
|
* @param ObjectGuid value : the value to be written to the [WorldPacket]
|
||||||
*/
|
*/
|
||||||
int WriteGUID(lua_State* L, WorldPacket* packet)
|
int WriteGUID(lua_State* L, WorldPacket* packet)
|
||||||
{
|
{
|
||||||
uint64 guid = Eluna::CHECKVAL<uint64>(L, 2);
|
ObjectGuid guid = Eluna::CHECKVAL<ObjectGuid>(L, 2);
|
||||||
(*packet) << guid;
|
(*packet) << guid;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user