You are not logged in.
Pages: 1
Hi, there. This is my first post which I've ever made here. I was thinking if there's a way to remove the annoying auto-reload thing when CJ changes his weapon.
This is my script which reloads the current weapon by pressing "R", of course. 
Deleted...
Hope someone can give me a solution by nopping something. 
Last edited by Wesser (15-08-2009 11:40)
Offline
Sorry for the double post, but I think I found a workable way. 
The code I've already posted is a bit incorrect for some reasons. Here is the code which works as I want but only when the player isn't in a car, because the game automatically removes the reload. 
{$CLEO}
0000: NOP
while true
wait 0
if
0256: player $PLAYER_CHAR defined
then
if
8118: not actor $PLAYER_ACTOR dead
then
if
8449: not actor $PLAYER_ACTOR in_a_car
then
gosub @NoReloadAnimFix
if
0AB0: key_pressed 0x52 // R
then
gosub @GetCurrentSlot
gosub @GetClipAmmo
gosub @GetCurrentWeapon
gosub @GetCurrentAmmo
0062: 3@ -= 5@ // (int)
if
3@ > 0
then
if
803B: not 2@ == 5@ // (int)
then
000E: 0@ -= 0x04
0A8C: write_memory 0@ size 4 value 2 virtual_protect 0
gosub @GetWeapGroup
7@(6@,13i) = 0
repeat
wait 0
0A8D: 10@ = read_memory 0@ size 4 virtual_protect 0
until 10@ <> 2
end
end
end
end
end
end
gosub @GetCurrentWeapon
gosub @GetWeapGroup
gosub @GetMaxClipAmmo
gosub @GetCurrentSlot
gosub @GetClipAmmo
if
803B: not 2@ == 5@ // (int)
then
0085: 7@(6@,13i) = 5@ // (int)
end
if and
7@(6@,13i) <> 0
803B: not 7@(6@,13i) == 5@ // (int)
then
0062: 2@ -= 5@ // (int)
gosub @GetCurrentAmmo
005A: 3@ += 2@ // (int)
017B: set_actor $PLAYER_ACTOR weapon 1@ ammo_to 3@
0A8C: write_memory 0@ size 4 value 7@(6@,13i) virtual_protect 0
end
end
:NoReloadAnimFix
if
80E1: not player 0 pressed_key 6
then
if
00E1: player 0 pressed_key 17
then
repeat
wait 0
if or
00E1: player 0 pressed_key 5
00E1: player 0 pressed_key 7
then
break
end
until 03EE: player $PLAYER_CHAR controllable
end
end
return
:GetCurrentWeapon
0470: 1@ = actor $PLAYER_ACTOR current_weapon
return
:GetMaxClipAmmo
0085: 0@ = 1@ // (int)
0012: 0@ *= 0x70
000A: 0@ += 0xC8AAB8
000A: 0@ += 0x20
0A8D: 2@ = read_memory 0@ size 2 virtual_protect 0
return
:GetCurrentAmmo
041A: 3@ = actor $PLAYER_ACTOR weapon 1@ ammo
return
:GetCurrentSlot
0A96: 0@ = actor $PLAYER_ACTOR struct
000A: 0@ += 0x718
0A8D: 4@ = read_memory 0@ size 1 virtual_protect 0
return
:GetClipAmmo
0A96: 0@ = actor $PLAYER_ACTOR struct
000A: 0@ += 0x5A0
4@ *= 0x1C
005A: 0@ += 4@ // (int)
000A: 0@ += 0x08
0A8D: 5@ = read_memory 0@ size 4 virtual_protect 0
return
:GetWeapGroup
0782: get_weapon_with_ID 1@ weapon_group_to 6@
returnThanks however. 
Offline
Pages: 1