找回密码
 register

QQ登录

只需一步,快速开始

查看: 41|回复: 0

[魔改引擎] LuaFnIsBagItemShenBing 检查指定位置的装备是否是七情刃

[复制链接]

[魔改引擎] LuaFnIsBagItemShenBing 检查指定位置的装备是否是七情刃

[复制链接]
  • 打卡等级:热心大叔
  • 打卡总天数:94
  • 打卡月天数:17
  • 打卡总奖励:94
  • 最近打卡:2025-01-18 01:28:20
Waylee

主题

0

回帖

1万

积分

仙帝

积分
11929
Waylee 2024-12-15 14:17 | 显示全部楼层 |阅读模式 | Google Chrome | Windows 10

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?register

×

适用版本:大仓库 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 金币 后可完整阅读
支持付费阅读,激励作者创作更好的作品。
您需要登录后才可以回帖 登录 | register

本版积分规则

雪舞知识库 | 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 |天天打卡

GMT+8, 2025-1-18 13:14 , Processed in 0.121119 second(s), 6 queries , Redis On.

Powered by XueWu Licensed

Copyright © Tencent Cloud.

快速回复 返回顶部 返回列表