Veteran Member
Join Date: Jun 2009
Location: Denmark
|
10-16-2011
, 16:12
Re: [EXTENSION] L4D2 M60 Drop Hax
|
#2
|
Not tested. Should work, both functions are called in CRifle_M60::PrimaryAttack.
PHP Code:
.text:0044AA3C ; CCSPlayer::DropWeapon(CBaseCombatWeapon *, bool, Vector *)
.text:0044AA3C _ZN9CCSPlayer10DropWeaponEP17CBaseCombatWeaponbP6Vector proc near
.text:0044AA3C ; CODE XREF: CCarriedPropWeapon::DropCarriedProp(bool)+9Ap
.text:0044AA3C ; CCarriedPropWeapon::DropCarriedProp(bool)+C9p ...
.text:0044AA3C
.text:0044AA3C var_20 = dword ptr -20h
.text:0044AA3C var_19 = byte ptr -19h
.text:0044AA3C arg_0 = dword ptr 8
.text:0044AA3C arg_4 = dword ptr 0Ch
.text:0044AA3C arg_8 = byte ptr 10h
.text:0044AA3C arg_C = dword ptr 14h
.text:0044AA3C
.text:0044AA3C push ebp
.text:0044AA3D mov ebp, esp
.text:0044AA3F push edi
.text:0044AA40 push esi
.text:0044AA41 push ebx
.text:0044AA42 sub esp, 2Ch
.text:0044AA45 call __i686_get_pc_thunk_bx
.text:0044AA4A add ebx, 9665AAh
.text:0044AA50 mov edi, [ebp+arg_0]
.text:0044AA53 mov esi, [ebp+arg_4]
.text:0044AA56 mov eax, [ebp+arg_C]
.text:0044AA59 mov [ebp+var_20], eax
.text:0044AA5C movzx edx, [ebp+arg_8]
.text:0044AA60 mov [ebp+var_19], dl
.text:0044AA63 mov [esp], esi
.text:0044AA66 call _ZNK17CBaseCombatWeapon8GetOwnerEv ; CBaseCombatWeapon::GetOwner(void)
.text:0044AA6B cmp eax, edi
.text:0044AA6D jz short loc_44AA79
.text:0044AA6F xor eax, eax
.text:0044AA71 add esp, 2Ch
.text:0044AA74 pop ebx
.text:0044AA75 pop esi
.text:0044AA76 pop edi
.text:0044AA77 pop ebp
.text:0044AA78 retn
.text:0044AA79 ; ---------------------------------------------------------------------------
PHP Code:
.text:003FAA0E ; =============== S U B R O U T I N E =======================================
.text:003FAA0E
.text:003FAA0E ; Attributes: bp-based frame
.text:003FAA0E
.text:003FAA0E ; int __cdecl CBaseEntity__SUB_StartFadeOut(int, float, char)
.text:003FAA0E _ZN11CBaseEntity16SUB_StartFadeOutEfb proc near
.text:003FAA0E ; CODE XREF: CRagdollLRURetirement::UpdateList(int,bool,bool)+2DFp
.text:003FAA0E ; CRagdollLRURetirement::UpdateList(int,bool,bool)+540p ...
.text:003FAA0E
.text:003FAA0E var_11 = byte ptr -11h
.text:003FAA0E var_10 = byte ptr -10h
.text:003FAA0E arg_0 = dword ptr 8
.text:003FAA0E arg_4 = dword ptr 0Ch
.text:003FAA0E arg_8 = byte ptr 10h
.text:003FAA0E
.text:003FAA0E push ebp
.text:003FAA0F mov ebp, esp
.text:003FAA11 push esi
.text:003FAA12 push ebx
.text:003FAA13 sub esp, 30h
.text:003FAA16 call __i686_get_pc_thunk_bx
.text:003FAA1B add ebx, 9B65D9h
.text:003FAA21 mov esi, [ebp+arg_0]
.text:003FAA24 movzx eax, [ebp+arg_8]
.text:003FAA28 mov [ebp+var_11], al
.text:003FAA2B lea eax, [ebp+var_10]
.text:003FAA2E mov dword ptr [esp+14h], 0
.text:003FAA36 mov dword ptr [esp+10h], 0
.text:003FAA3E lea edx, (_ZN11CBaseEntity11SUB_FadeOutEv - 0DB0FF4h)[ebx] ; CBaseEntity::SUB_FadeOut(void)
.text:003FAA44 mov [esp+8], edx
.text:003FAA48 mov dword ptr [esp+0Ch], 0
.text:003FAA50 mov [esp+4], esi
.text:003FAA54 mov [esp], eax
.text:003FAA57 call _ZN11CBaseEntity8ThinkSetEMS_FvvEfPKc ; CBaseEntity::ThinkSet(void (CBaseEntity::*)(void),float,char const*)
.text:003FAA5C sub esp, 4
.text:003FAA5F mov dword ptr [esp+8], 0 ; int
.text:003FAA67 mov eax, ds:(gpGlobals_ptr - 0DB0FF4h)[ebx]
.text:003FAA6D mov eax, [eax]
.text:003FAA6F fld [ebp+arg_4]
.text:003FAA72 fadd dword ptr [eax+0Ch]
.text:003FAA75 fstp dword ptr [esp+4] ; float
.text:003FAA79 mov [esp], esi ; int
.text:003FAA7C call _ZN11CBaseEntity12SetNextThinkEfPKc ; CBaseEntity::SetNextThink(float,char const*)
.text:003FAA81 cmp byte ptr [esi+11Bh], 0FFh
.text:003FAA88 jz short loc_3FAAB2
.text:003FAA8A cmp byte ptr [esi+64h], 0
.text:003FAA8E jnz short loc_3FAAF8
.text:003FAA90 mov eax, [esi+28h]
.text:003FAA93 test eax, eax
.text:003FAA95 jz short loc_3FAAAB
.text:003FAA97 or dword ptr [eax], 101h
.text:003FAA9D mov [esp], eax
.text:003FAAA0 call _ZN10CBaseEdict17GetChangeAccessorEv ; CBaseEdict::GetChangeAccessor(void)
.text:003FAAA5 mov word ptr [eax+2], 0
.text:003FAAAB
.text:003FAAAB loc_3FAAAB: ; CODE XREF: CBaseEntity::SUB_StartFadeOut(float,bool)+87j
.text:003FAAAB ; CBaseEntity::SUB_StartFadeOut(float,bool)+EEj
.text:003FAAAB mov byte ptr [esi+11Bh], 0FFh
.text:003FAAB2
.text:003FAAB2 loc_3FAAB2: ; CODE XREF: CBaseEntity::SUB_StartFadeOut(float,bool)+7Aj
.text:003FAAB2 cmp byte ptr [esi+115h], 0
.text:003FAAB9 jz short loc_3FAAE7
.text:003FAABB cmp byte ptr [esi+64h], 0
.text:003FAABF jnz loc_3FAB77
.text:003FAAC5 mov eax, [esi+28h]
.text:003FAAC8 test eax, eax
.text:003FAACA jz short loc_3FAAE0
.text:003FAACC or dword ptr [eax], 101h
.text:003FAAD2 mov [esp], eax
.text:003FAAD5 call _ZN10CBaseEdict17GetChangeAccessorEv ; CBaseEdict::GetChangeAccessor(void)
.text:003FAADA mov word ptr [eax+2], 0
.text:003FAAE0
.text:003FAAE0 loc_3FAAE0: ; CODE XREF: CBaseEntity::SUB_StartFadeOut(float,bool)+BCj
.text:003FAAE0 ; CBaseEntity::SUB_StartFadeOut(float,bool)+16Dj
.text:003FAAE0 mov byte ptr [esi+115h], 0
.text:003FAAE7
.text:003FAAE7 loc_3FAAE7: ; CODE XREF: CBaseEntity::SUB_StartFadeOut(float,bool)+ABj
.text:003FAAE7 cmp [ebp+var_11], 0
.text:003FAAEB jz short loc_3FAAF1
.text:003FAAED jmp short loc_3FAAFE
.text:003FAAEF ; ---------------------------------------------------------------------------
|
|