Difference between revisions of "0330"

From GTAMods Wiki
Jump to navigation Jump to search
(disassembly)
Line 1: Line 1:
{{Icon|trilogy}} '''SET_PLAYER_NEVER_GETS_TIRED'''
+
__NOTOC__{{Icon|trilogy}} '''SET_PLAYER_NEVER_GETS_TIRED'''
 
<hr />
 
<hr />
 
'''Description'''
 
'''Description'''
Line 16: Line 16:
  
 
== Disassembled code ==
 
== Disassembled code ==
This is disassembled code for this opcode from v1.0 US.
+
These are disassembled code for this opcode both from v1.0 US.
 +
=== GTA III ===
 +
<syntaxhighlight lang="asm" style="overflow-x: auto;">
 +
; call subroutine to collect values from input parameters
 +
.text:00448C37                mov    eax, [esp+398h+var_388]
 +
.text:00448C3B                mov    ecx, [esp+398h+var_388]
 +
.text:00448C3F                add    eax, 10h
 +
.text:00448C42                push    2  ; two parameters to collect
 +
.text:00448C44                push    eax
 +
.text:00448C45                call    CRunningScript__CollectParameters
 +
; read collected content
 +
.text:00448C4A                mov    eax, ds:_opcodeParameter1
 +
.text:00448C4F                imul    eax, 13Ch
 +
.text:00448C55                add    eax, offset _playerInfo  ; address of the player info
 +
.text:00448C5A                cmp    ds:_opcodeParameter2, 0  ; check whether or not parameter 2 is set to 0
 +
.text:00448C61                jz      short loc_448C70
 +
.text:00448C63                mov    byte ptr [eax+114h], 1  ; offset 0x114 set to enable infinite run
 +
.text:00448C6A                jmp    short loc_448C77
 +
.text:00448C6C                align 10h
 +
.text:00448C70 loc_448C70:    mov    byte ptr [eax+114h], 0  ; offset 0x114 set to disable infinite run
 +
.text:00448C77 loc_448C77:    lea    ecx, [esp+398h+var_258]
 +
.text:00448C7E                call    CMatrix__~CMatrix
 +
; end
 +
.text:00448C83                xor    al, al
 +
.text:00448C85                add    esp, 398h
 +
.text:00448C8B                pop    ebp
 +
.text:00448C8C                pop    edi
 +
.text:00448C8D                pop    esi
 +
.text:00448C8E                pop    ebx
 +
.text:00448C8F                retn    4
 +
</syntaxhighlight>
 +
 
 
=== Vice City ===
 
=== Vice City ===
 
<syntaxhighlight lang="asm" style="overflow-x: auto;">
 
<syntaxhighlight lang="asm" style="overflow-x: auto;">
Line 23: Line 54:
 
.text:0045B954                mov    ecx, [esp+2D0h+var_2B8]
 
.text:0045B954                mov    ecx, [esp+2D0h+var_2B8]
 
.text:0045B958                add    eax, 10h
 
.text:0045B958                add    eax, 10h
.text:0045B95B                push    2
+
.text:0045B95B                push    2 ; two parameters to collect
 
.text:0045B95D                push    eax
 
.text:0045B95D                push    eax
 
.text:0045B95E                call    CRunningScript__CollectParameters
 
.text:0045B95E                call    CRunningScript__CollectParameters

Revision as of 18:48, 16 April 2015

GTA III Vice City San Andreas SET_PLAYER_NEVER_GETS_TIRED


Description

Sets the player to sprint without tiring

Syntax

0330: set_player [player handle] infinite_run_to [int]

Parameter

[player handle]
The handle of the player
[int]
0 = disable (default), 1 = enable

Native analog

SET_PLAYER_NEVER_GETS_TIRED

This opcode sets the player's ability to sprint without tiring out. The value set with this opcode is saved in block 16 of the save file in GTA III, block 18 in Vice City and in block 15 in San Andreas.

Disassembled code

These are disassembled code for this opcode both from v1.0 US.

GTA III

; call subroutine to collect values from input parameters
.text:00448C37                 mov     eax, [esp+398h+var_388]
.text:00448C3B                 mov     ecx, [esp+398h+var_388]
.text:00448C3F                 add     eax, 10h
.text:00448C42                 push    2  ; two parameters to collect
.text:00448C44                 push    eax
.text:00448C45                 call    CRunningScript__CollectParameters
; read collected content
.text:00448C4A                 mov     eax, ds:_opcodeParameter1
.text:00448C4F                 imul    eax, 13Ch
.text:00448C55                 add     eax, offset _playerInfo  ; address of the player info
.text:00448C5A                 cmp     ds:_opcodeParameter2, 0  ; check whether or not parameter 2 is set to 0
.text:00448C61                 jz      short loc_448C70
.text:00448C63                 mov     byte ptr [eax+114h], 1  ; offset 0x114 set to enable infinite run
.text:00448C6A                 jmp     short loc_448C77
.text:00448C6C                 align 10h
.text:00448C70 loc_448C70:     mov     byte ptr [eax+114h], 0  ; offset 0x114 set to disable infinite run
.text:00448C77 loc_448C77:     lea     ecx, [esp+398h+var_258]
.text:00448C7E                 call    CMatrix__~CMatrix
; end
.text:00448C83                 xor     al, al
.text:00448C85                 add     esp, 398h
.text:00448C8B                 pop     ebp
.text:00448C8C                 pop     edi
.text:00448C8D                 pop     esi
.text:00448C8E                 pop     ebx
.text:00448C8F                 retn    4

Vice City

; call subroutine to collect values from input parameters
.text:0045B950                 mov     eax, [esp+2D0h+var_2B8]
.text:0045B954                 mov     ecx, [esp+2D0h+var_2B8]
.text:0045B958                 add     eax, 10h
.text:0045B95B                 push    2  ; two parameters to collect
.text:0045B95D                 push    eax
.text:0045B95E                 call    CRunningScript__CollectParameters
; read collected content
.text:0045B963                 mov     eax, ds:_opcodeParameter1
.text:0045B968                 imul    eax, 170h
.text:0045B96E                 add     eax, offset _playerInfo  ; address of the player info
.text:0045B973                 cmp     ds:_opcodeParameter2, 0  ; check whether or not parameter 2 is set to 0
.text:0045B97A                 jz      short loc_45B985
.text:0045B97C                 mov     byte ptr [eax+140h], 1  ; offset 0x140 set to enable infinite run
.text:0045B983                 jmp     short loc_45B98C
.text:0045B985 loc_45B985:     mov     byte ptr [eax+140h], 0  ; offset 0x140 set to disable infinite run
.text:0045B98C loc_45B98C:     lea     ecx, [esp+2D0h+var_1B0]
.text:0045B993                 call    CMatrix__~CMatrix
; end
.text:0045B998                 xor     al, al
.text:0045B99A                 add     esp, 2D0h
.text:0045B9A0                 pop     ebp
.text:0045B9A1                 pop     edi
.text:0045B9A2                 pop     esi
.text:0045B9A3                 pop     ebx
.text:0045B9A4                 retn    4

Keywords

set, toggle, infinite, run, sprint