rawr im a tiger (10-17-2012)
Hello MPGH,
i tried to find a way to check the "WeaponID +1" dynamically.
I was quite successful by finding an address:
BUT:Code:iw5mp.exe+5C7838 0x9C7838 2 Byte Int OR iw5mp.exe+5C7BE8 0x9C7BE8 2 Byte Int 1 = WeaponID +1 0 = WeaponID +0
The addresses changes just after map is fully loaded.
Reading while map is loading returns an inaccurate value.
Hope I could help you.
~ hoschi111
If you like my posts, i'm thankful for every Rep or Thanks.
rawr im a tiger (10-17-2012)
Why read the addresses dynamically?
Static ones are much easier. There's a weaponID byte in the Entity_T structure.
Check it out.
Oh no, i think you didn't understand me, i am sorry.
On certain maps, your WeaponID is +1.
To avoid that you've to check it on each map, i just posted the addresse which returns "1" if "+1" or "0" if "+0" for all maps.
This address is static.
Last edited by hoschi111; 10-17-2012 at 08:25 PM.
If you like my posts, i'm thankful for every Rep or Thanks.
I had a way of doing this by checking the mapname, but this is much more elegant. Nice work.
Pointer scan?
Try to find the main pointer(if this isn't already static, which it should'nt be if they change)
Or as the best way->Make a pattern signature so you can scan for them and refind them if they change.
what do you mean with "weaponID + 1"? and what are you trying to get? the weaponname?
Example:
Map Seatown: USP = 6, (standard) (ID)
Map Dome: USP = 7, (+1) (ID)
If the address says "1", your Weapon ID is "Standard + 1".
Otherwise, if the value is "0", it is only standard (Standard + 0).
@Kenshin13
The address is STATIC, but returns your desired value regarding to the current map. That is what i've called "dynamically".
@rawr im a tiger
Thank you
If you like my posts, i'm thankful for every Rep or Thanks.
rawr im a tiger (10-19-2012)
Yea I realized but as I said before make a signature for it.
The signature never changes so you'll always find it.
Using Cardow's method, you jus add the offset...
And this one returns the WeaponIDCode:char * GetWeaponName(DWORD dwNum) { DWORD dwReturn = NULL; __asm{ mov eax, dwNum; and eax, 0FFh; add eax, eax; add eax, eax; mov eax,[eax+GetWeaponNameHERE]; mov dwReturn, eax; } return (char*)dwReturn; } Offset Ver: 1.4.382 - 0x00A042D4
BTW I assumed dwNum is the client's/entity's number or weapon id...Code:DWORD GetWeapon(DWORD dwNum) { DWORD dwReturn = NULL; __asm { mov eax, dwNum; and eax, 0FFh; mov eax, [eax*4+GetWeaponOffsetHERE]; mov dwReturn, eax; } return dwReturn; } Offset Ver: 1.4.382 - 0x008DDB50
Last edited by Kenshin13; 10-18-2012 at 05:26 PM.
There is a better address for "Weapon +1"-Check:
My two addresses in the first post behaves very improper in Online-Games or after a few time.Code:0x01B70234 Integer 1 = +1 0 = +0
This new address stays the same the whole map long.
If you like my posts, i'm thankful for every Rep or Thanks.
Now tell me, why even do this when you can use @cardoow's naked function and get full blown weapon names for each player:
BTW I didn't do anything other than send the entity's weapon ID.
Last edited by Kenshin13; 10-19-2012 at 04:30 PM. Reason: Imma fish....Mooo
Kenshin13 (10-20-2012)