Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int __thiscall CField_MonsterCarnival::OnEnter(CField_MonsterCarnival *this, CUser *pUser)
- {
- CField_MonsterCarnival *v2; // esi@1
- char *v3; // ebx@1
- CUser *v4; // edi@1
- char *v5; // ecx@2
- signed int v6; // ebx@4
- ZXString<char> *v7; // eax@8
- CField_MonsterCarnival::MEMBERDATA *v8; // eax@8
- int v9; // ecx@8
- int **v10; // ebx@11
- unsigned int v11; // eax@16
- bool v12; // zf@16
- unsigned int v14; // eax@19
- int v15; // eax@21
- ZXString<char> v16; // [sp-8h] [bp-54h]@19
- int v17; // [sp-4h] [bp-50h]@8
- COutPacket v18; // [sp+Ch] [bp-40h]@16
- COutPacket oPacket; // [sp+1Ch] [bp-30h]@10
- ZRef<CField_MonsterCarnival::MEMBERDATA> value; // [sp+2Ch] [bp-20h]@4
- ZFatalSection *v21; // [sp+34h] [bp-18h]@1
- unsigned int key; // [sp+38h] [bp-14h]@8
- ZFatalSection *v23; // [sp+3Ch] [bp-10h]@1
- int v24; // [sp+48h] [bp-4h]@1
- v2 = this;
- v3 = (char *)&this->m_lock;
- v23 = &this->m_lock;
- v21 = &this->m_lock;
- ZFatalSection::Lock(&this->m_lock);
- v4 = pUser;
- v24 = 0;
- if ( pUser && CField::OnEnter((CField *)&v2->vfptr, pUser) )
- {
- if ( !(v4->m_nGradeCode & 1) )
- {
- v6 = v4->m_nTeamForMCarnival;
- value.p = 0;
- LOBYTE(v24) = 1;
- if ( v6 < 0 || v6 >= 2 )
- {
- v17 = 1;
- v16._m_pStr = v5;
- pUser = (CUser *)&v16;
- ZXString<char>::ZXString<char>(&sLog, -1);
- LOBYTE(v24) = 1;
- v14 = CField::GetForcedReturnFieldId((CField *)&v2->vfptr);
- CUser::PostTransferField(v4, v14, v16, v17);
- LOBYTE(v24) = 0;
- if ( value.p )
- {
- ZRef<CField_MonsterCarnival::MEMBERDATA>::_ReleaseRaw(&value, 0);
- value.p = 0;
- }
- v15 = (int)v23;
- v12 = v23->_m_nRef == 1;
- --*(_DWORD *)(v15 + 4);
- if ( v12 )
- *(_DWORD *)v15 = 0;
- return 1;
- }
- pUser = (CUser *)v4->m_dwCharacterID;
- if ( ZMap<unsigned long,ZRef<CField_MonsterCarnival::MEMBERDATA>,unsigned long>::GetAt(
- &v2->m_mMember,
- (const unsigned int *)&pUser,
- &value) )
- {
- value.p->bIsDead = 0;
- }
- else
- {
- ZRef<CField_MonsterCarnival::MEMBERDATA>::_Alloc(&value);
- v7 = CUser::GetCharacterName(v4);
- v17 = 0;
- pUser = (CUser *)&v17;
- ZXString<char>::operator=((ZXString<char> *)&v17, v7);
- LOBYTE(v24) = 1;
- v8 = ZRef<CField_MonsterCarnival::MEMBERDATA>::operator->(&value);
- CField_MonsterCarnival::MEMBERDATA::Init(v8, v6, (ZXString<char>)v17);
- pUser = (CUser *)v4->m_dwCharacterID;
- ZMap<unsigned long,ZRef<CField_MonsterCarnival::MEMBERDATA>,unsigned long>::Insert(
- &v2->m_mMember,
- (const unsigned int *)&pUser,
- &value);
- key = v4->m_dwCharacterID;
- pUser = (CUser *)1;
- ZMap<unsigned long,int,unsigned long>::Insert(&v2->m_mCharacterOut, &key, (const int *)&pUser);
- v17 = v9;
- pUser = (CUser *)&v17;
- CStringDecoder::GetString(&g_sd, (ZXString<char> *)&v17, 3722);
- CField_MonsterCarnival::SendMessageA(v4, (ZXString<char>)v17);
- if ( CPartyMan::IsPartyBoss(TSingleton<CPartyMan>::ms_pInstance, v4->m_dwCharacterID) )
- v2->m_dwPartyBossID[v6] = v4->m_dwCharacterID;
- }
- COutPacket::COutPacket(&oPacket, 205, 0);
- LOBYTE(v24) = 4;
- COutPacket::Encode1(&oPacket, v6);
- COutPacket::Encode2(&oPacket, value.p->nRestCP);
- COutPacket::Encode2(&oPacket, value.p->nTotCP);
- COutPacket::Encode2(&oPacket, v2->m_anRestCP[v6]);
- COutPacket::Encode2(&oPacket, v2->m_anTotCP[v6]);
- COutPacket::Encode2(&oPacket, *((_WORD *)&v2->vfptr + 683 - v6));
- COutPacket::Encode2(&oPacket, *((_WORD *)&v2->vfptr + 685 - v6));
- pUser = 0;
- if ( v2->m_nMobListCount > 0 )
- {
- v10 = &v2->m_aSummonedMobCount[v6].a;
- do
- {
- COutPacket::Encode1(&oPacket, (*v10)[(_DWORD)pUser]);
- pUser = (CUser *)((char *)pUser + 1);
- }
- while ( (signed int)pUser < v2->m_nMobListCount );
- }
- CUser::SendPacket(v4, &oPacket);
- LOBYTE(v24) = 1;
- ZArray<unsigned char>::RemoveAll(&oPacket.m_aSendBuff);
- LOBYTE(v24) = 0;
- if ( value.p )
- ZRef<CField_MonsterCarnival::MEMBERDATA>::_ReleaseRaw(&value, 0);
- v3 = (char *)v23;
- }
- COutPacket::COutPacket(&v18, 97, 0);
- LOBYTE(v24) = 5;
- COutPacket::Encode1(&v18, 2);
- v11 = ((int (__thiscall *)(CField_MonsterCarnival *))v2->vfptr[16].__vecDelDtor)(v2);
- COutPacket::Encode4(&v18, v11);
- CUser::SendPacket(v4, &v18);
- LOBYTE(v24) = 0;
- ZArray<unsigned char>::RemoveAll(&v18.m_aSendBuff);
- v12 = (*((_DWORD *)v3 + 1))-- == 1;
- if ( v12 )
- *(_DWORD *)v3 = 0;
- return 1;
- }
- v12 = (*((_DWORD *)v3 + 1))-- == 1;
- if ( v12 )
- *(_DWORD *)v3 = 0;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement