适用版本:大仓库 or 大河马引擎
文章编辑:雪舞
更新时间:2024-12-15
***付费内容***
IDA伪代码
int __cdecl LuaFnIsBagItemShenBing(lua_State_0 *L)
{
long double v1; // fst7
SceneManager_1 *v2; // eax
char v4; // [esp+6h] [ebp-22h]
unsigned int i; // [esp+8h] [ebp-20h]
Item *Item; // [esp+10h] [ebp-18h]
Obj_Human *pHuman; // [esp+14h] [ebp-14h]
Scene_3 *Scene; // [esp+18h] [ebp-10h]
unsigned int uBagIndex; // [esp+1Ch] [ebp-Ch]
int v10; // [esp+20h] [ebp-8h]
lua_tonumber(L, 1);
v10 = (int)lua_tonumber(L, 2);
v1 = lua_tonumber(L, 3);
LOBYTE(v2) = v4;
BYTE1(v2) = 12;
uBagIndex = (int)v1;
if ( v10 > 14999 && v10 <= 29999 )
{
Scene = SceneManager::GetScene(v2, SceneID);
if ( (int)Scene > 0 )
{
pHuman = (Obj_Human *)Scene->m_pObjManager->m_pObj[v10];
if ( (int)pHuman > 0 && uBagIndex <= 0x76 )
{
Item = HumanItemLogic::GetItem(pHuman, uBagIndex);
if ( Item )
{
for ( i = 0; i < *(_DWORD *)dword_22B63A2C; ++i )
{
if ( *(_DWORD *)(dword_22B63A2C + 52 * i + 4) == Item->m_pItem->m_ItemIndex )
{
lua_pushnumber(L, 1.0);
return 1;
}
}
}
}
}
}
lua_pushnumber(L, -1.0);
return 1;
}
全局变量dword_22B63A2C 的范围在Load_ShenBing() 函数中进行分配和初始化。
剩余 8% 内容需要支付 2.00
金币 后可完整阅读
支持付费阅读,激励作者创作更好的作品。
|