使用方法:
local spouseGUID_H2,spouseGUID_L2 = LuaFnGetPetSpouseGUIDByGUID(sceneId,selfId,petGUID_H,petGUID_L)
传入需要查询配偶的珍兽的的GUID高位和低位值
引擎代码片段(伪代码):
int LuaFnTbl::LuaFnGetPetSpouseGUIDByGUID(lua_State *L)
{
int i; // ebx
unsigned int v2; // esi
Scene_3 *Scene; // ebx
Obj_Human *v4; // ebx
Item *PetItem; // eax
_PET_DB_LOAD *m_pPet; // eax
SceneManager_1 *const v8; // [esp-10h] [ebp-468h]
__int64 v9; // [esp+8h] [ebp-450h]
__int64 v10; // [esp+10h] [ebp-448h]
unsigned int spouseGUID_4; // [esp+34h] [ebp-424h]
CHAR msg[1048]; // [esp+40h] [ebp-418h] BYREF
lua_tonumber((lua_State_0 *)L, 1);
v2 = (int)lua_tonumber((lua_State_0 *)L, 2);
v10 = (__int64)lua_tonumber((lua_State_0 *)L, 3);
v9 = (__int64)lua_tonumber((lua_State_0 *)L, 4);
Scene = SceneManager::GetScene(v8, SceneID);
if ( (*((int (__cdecl **)(Obj_Human *))v4->_vptr_Obj + 2))(v4) != 1 )
return 0;
PetItem = Obj_Human::GetPetItem(v4, (PET_GUID_t)__PAIR64__(v9, v10));
if ( !PetItem )
return 0;
m_pPet = PetItem->m_pPet;
spouseGUID_4 = m_pPet->m_SpouseGUID.m_uLowSection;
lua_pushnumber((lua_State_0 *)L, (double)m_pPet->m_SpouseGUID.m_uHighSection);
lua_pushnumber((lua_State_0 *)L, (double)spouseGUID_4);
return 2;
}
|