Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void __thiscall CWvsContext::OnSkillLearnItemResult(CWvsContext *this, CInPacket *iPacket)
- {
- CInPacket *v2; // esi
- unsigned int v3; // eax
- CUserLocal *v4; // eax
- int v5; // eax
- CUser *v6; // edi
- unsigned __int8 v7; // al
- int v8; // ebx
- char *v9; // eax
- ZXString<unsigned short> *v10; // ecx
- IWzVector2D *v11; // ecx
- IWzGr2DLayer *v12; // esi
- ULONG (__stdcall *v13)(IUnknown *); // edx
- HRESULT v14; // eax
- wchar_t *v15; // esi
- StringPool *v16; // eax
- ZXString<unsigned short> *v17; // eax
- signed int v18; // ebx
- StringPool *v19; // eax
- const wchar_t *v20; // eax
- int v21; // esi
- StringPool *v22; // eax
- ZXString<char> *v23; // eax
- int v24; // ebx
- StringPool *v25; // eax
- char *v26; // edi
- StringPool *v27; // eax
- char *v28; // eax
- StringPool *v29; // eax
- char *v30; // eax
- StringPool *v31; // eax
- StringPool *v32; // eax
- CInPacket *v33; // esi
- _com_ptr_t<_com_IIID<IWzVector2D,&_GUID_f28bd1ed_3deb_4f92_9eec_10ef5a1c3fb4> > v34; // [esp-Ch] [ebp-58h]
- ZXString<unsigned short> *v35; // [esp-8h] [ebp-54h]
- char *v36; // [esp-4h] [ebp-50h]
- int v37; // [esp+14h] [ebp-38h]
- ZXString<char> sTarget; // [esp+18h] [ebp-34h]
- int bSucceed; // [esp+1Ch] [ebp-30h]
- int bOnExclRequest; // [esp+20h] [ebp-2Ch]
- ZXString<unsigned short> result; // [esp+24h] [ebp-28h]
- int bIsMaterbook; // [esp+28h] [ebp-24h]
- int bUsed; // [esp+2Ch] [ebp-20h]
- ZXString<unsigned short> **v44; // [esp+30h] [ebp-1Ch]
- ZXString<unsigned short> **v45; // [esp+34h] [ebp-18h]
- char pUser; // [esp+38h] [ebp-14h]
- int v47; // [esp+3Ch] [ebp-10h]
- int v48; // [esp+48h] [ebp-4h]
- result._m_pStr = (wchar_t *)this;
- v37 = 0;
- v2 = iPacket;
- bOnExclRequest = (unsigned __int8)CInPacket::Decode1(iPacket);
- v3 = CInPacket::Decode4(v2);
- v4 = CUserPool::GetUser((CUserPool *)TSingleton<CUserPool>::ms_pInstance.m_pInterface, v3);
- if ( v4 && (v5 = (int)&v4->vfptr) != 0 )
- {
- v6 = (CUser *)(v5 - 8);
- v47 = v5 - 8;
- if ( v5 != 8 )
- InterlockedIncrement(&v6->_m_nRef);
- }
- else
- {
- v6 = 0;
- v47 = 0;
- }
- v48 = 0;
- if ( v6 )
- {
- bIsMaterbook = (unsigned __int8)CInPacket::Decode1(v2);
- CInPacket::Decode4(v2);
- CInPacket::Decode4(v2);
- v7 = CInPacket::Decode1(v2);
- v8 = v7;
- bUsed = v7;
- v9 = (char *)(unsigned __int8)CInPacket::Decode1(v2);
- bSucceed = (unsigned __int8)v9;
- if ( v8 )
- {
- v36 = v9;
- v35 = v10;
- v44 = &v35;
- CAvatar::GetLayerUnderFace(
- (CAvatar *)&v6->vfptr,
- (_com_ptr_t<_com_IIID<IWzGr2DLayer,&_GUID_6dc8c7ce_8e81_4420_b4f6_4b60b7d5fcdf> > *)&v35);
- v34.m_pInterface = v11;
- v45 = (ZXString<unsigned short> **)&v34;
- LOBYTE(v48) = 1;
- CUser::GetVecCtrl(v6, &v34);
- LOBYTE(v48) = 2;
- v12 = CAvatar::GetLayerUnderFace(
- (CAvatar *)&v6->vfptr,
- (_com_ptr_t<_com_IIID<IWzGr2DLayer,&_GUID_6dc8c7ce_8e81_4420_b4f6_4b60b7d5fcdf> > *)&sTarget)->m_pInterface;
- LOBYTE(v48) = 3;
- if ( !v12 )
- _com_issue_error(-2147467261);
- v13 = v12->lpVtbl[17].Release;
- iPacket = 0;
- v14 = ((int (__stdcall *)(IWzGr2DLayer *, CInPacket **))v13)(v12, &iPacket);
- if ( v14 < 0 )
- _com_issue_errorex(v14, (IUnknown *)&v12->lpVtbl, &_GUID_6dc8c7ce_8e81_4420_b4f6_4b60b7d5fcdf);
- LOBYTE(v48) = 4;
- CAnimationDisplayer::Effect_SkillBookUsed(
- TSingleton<CAnimationDisplayer>::ms_pInstance,
- (int)iPacket,
- v34,
- (_com_ptr_t<_com_IIID<IWzGr2DLayer,&_GUID_6dc8c7ce_8e81_4420_b4f6_4b60b7d5fcdf> >)v35,
- (int)v36);
- LOBYTE(v48) = 0;
- if ( sTarget._m_pStr )
- (*(void (__stdcall **)(char *))(*(_DWORD *)sTarget._m_pStr + 8))(sTarget._m_pStr);
- }
- if ( ((int (__thiscall *)(CUser *))v6->vfptr[3].Update)(v6) )
- {
- if ( bOnExclRequest )
- {
- v15 = result._m_pStr;
- *((_DWORD *)result._m_pStr + 2094) = 0;
- *((_DWORD *)v15 + 2095) = get_update_time();
- }
- if ( bSucceed )
- {
- v36 = (char *)1287;
- v35 = &result;
- v16 = StringPool::GetInstance();
- v17 = StringPool::GetStringW(v16, v35, (unsigned int)v36);
- LOBYTE(v48) = 5;
- v18 = 1;
- }
- else
- {
- v36 = (char *)1288;
- v35 = (ZXString<unsigned short> *)&iPacket;
- v19 = StringPool::GetInstance();
- v17 = StringPool::GetStringW(v19, v35, (unsigned int)v36);
- v48 = 6;
- v18 = 2;
- }
- v20 = v17->_m_pStr;
- v37 = v18;
- play_game_sound(v20, 0x64u);
- v48 = 5;
- if ( v18 & 2 )
- {
- v18 &= 0xFFFFFFFD;
- v37 = v18;
- if ( iPacket )
- ZXString<unsigned short>::_Release((ZXString<unsigned short>::_ZXStringData *)&iPacket[-1].m_uLength);
- }
- v48 = 0;
- if ( v18 & 1 )
- {
- v18 &= 0xFFFFFFFE;
- v37 = v18;
- if ( result._m_pStr )
- ZXString<unsigned short>::_Release((ZXString<unsigned short>::_ZXStringData *)result._m_pStr - 1);
- }
- sTarget._m_pStr = 0;
- iPacket = 0;
- v21 = bIsMaterbook;
- LOBYTE(v48) = 8;
- if ( bIsMaterbook )
- {
- v36 = (char *)3887;
- v35 = &result;
- v22 = StringPool::GetInstance();
- v23 = StringPool::GetString(v22, (ZXString<char> *)v35, (unsigned int)v36);
- LOBYTE(v48) = 9;
- v24 = v18 | 4;
- }
- else
- {
- v36 = (char *)3888;
- v35 = (ZXString<unsigned short> *)&bIsMaterbook;
- v25 = StringPool::GetInstance();
- v23 = StringPool::GetString(v25, (ZXString<char> *)v35, (unsigned int)v36);
- v48 = 10;
- v24 = v18 | 8;
- }
- v36 = v23->_m_pStr;
- v37 = v24;
- ZXString<char>::Format(&sTarget, "%s", v36);
- v48 = 9;
- if ( v24 & 8 )
- {
- v24 &= 0xFFFFFFF7;
- v37 = v24;
- if ( bIsMaterbook )
- ZXString<char>::_Release((ZXString<char>::_ZXStringData *)(bIsMaterbook - 12));
- }
- v48 = 8;
- if ( v24 & 4 && result._m_pStr )
- ZXString<char>::_Release((ZXString<char>::_ZXStringData *)result._m_pStr - 1);
- v26 = sTarget._m_pStr;
- if ( bUsed )
- {
- if ( bSucceed )
- {
- if ( v21 )
- {
- v36 = (char *)3891;
- v35 = (ZXString<unsigned short> *)&bUsed;
- v31 = StringPool::GetInstance();
- v36 = StringPool::GetString(v31, (ZXString<char> *)v35, (unsigned int)v36)->_m_pStr;
- LOBYTE(v48) = 13;
- }
- else
- {
- v36 = (char *)3892;
- v35 = (ZXString<unsigned short> *)&bUsed;
- v32 = StringPool::GetInstance();
- v36 = StringPool::GetString(v32, (ZXString<char> *)v35, (unsigned int)v36)->_m_pStr;
- LOBYTE(v48) = 14;
- }
- ZXString<char>::Format((ZXString<char> *)&iPacket, v36);
- }
- else
- {
- v36 = (char *)3890;
- v35 = (ZXString<unsigned short> *)&bUsed;
- v29 = StringPool::GetInstance();
- v30 = StringPool::GetString(v29, (ZXString<char> *)v35, (unsigned int)v36)->_m_pStr;
- v36 = v26;
- LOBYTE(v48) = 12;
- ZXString<char>::Format((ZXString<char> *)&iPacket, v30, v26);
- }
- }
- else
- {
- v36 = (char *)3889;
- v35 = (ZXString<unsigned short> *)&bUsed;
- v27 = StringPool::GetInstance();
- v28 = StringPool::GetString(v27, (ZXString<char> *)v35, (unsigned int)v36)->_m_pStr;
- v36 = v26;
- LOBYTE(v48) = 11;
- ZXString<char>::Format((ZXString<char> *)&iPacket, v28, v26);
- }
- LOBYTE(v48) = 8;
- if ( bUsed )
- ZXString<char>::_Release((ZXString<char>::_ZXStringData *)(bUsed - 12));
- v33 = iPacket;
- if ( TSingleton<CUIStatusBar>::ms_pInstance._m_pStr )
- {
- v45 = &v35;
- CUIStatusBar::ChatLogAdd(
- (CUIStatusBar *)TSingleton<CUIStatusBar>::ms_pInstance._m_pStr,
- (const char *)iPacket,
- 12,
- -1,
- 0,
- (ZRef<GW_ItemSlotBase>)(unsigned int)v35);
- }
- LOBYTE(v48) = 7;
- if ( v33 )
- ZXString<char>::_Release((ZXString<char>::_ZXStringData *)&v33[-1].m_uLength);
- LOBYTE(v48) = 0;
- if ( v26 )
- ZXString<char>::_Release((ZXString<char>::_ZXStringData *)v26 - 1);
- }
- v48 = -1;
- ZRef<CUser>::_ReleaseRaw((ZRef<CUser> *)&pUser, 0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement