Difference between revisions of "0330"

From GTAMods Wiki
Jump to navigation Jump to search
(updated for GTA III save)
(disassembly)
Line 1: Line 1:
{{Icon|trilogy}}
+
{{Icon|trilogy}} '''SET_PLAYER_NEVER_GETS_TIRED'''
 
<hr />
 
<hr />
 
'''Description'''
 
'''Description'''
Line 9: Line 9:
 
:: [[0053|The handle of the player]]
 
:: [[0053|The handle of the player]]
 
: [''int'']
 
: [''int'']
:: 0 = disable, {{hint|1|or any value other than 0}} = enable
+
:: 0 = disable (default), {{hint|1|or any value other than 0}} = enable
 
'''Native analog'''
 
'''Native analog'''
 
: [[SET_PLAYER_NEVER_GETS_TIRED]]
 
: [[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 [[Saves_(GTA_3)#Block_16:_Player_info|block 16 of the save file]] in GTA III, [[Saves (GTA VC)#Block 18: Player Info|block 18]] in Vice City and in [[Saves_(GTA_SA)#Block_15:_Player_data|block 15]] in San Andreas.
 
This opcode sets the player's ability to sprint without tiring out. The value set with this opcode is saved in [[Saves_(GTA_3)#Block_16:_Player_info|block 16 of the save file]] in GTA III, [[Saves (GTA VC)#Block 18: Player Info|block 18]] in Vice City and in [[Saves_(GTA_SA)#Block_15:_Player_data|block 15]] in San Andreas.
 +
 +
== Disassembled code ==
 +
This is disassembled code for this opcode from v1.0 US.
 +
=== Vice City ===
 +
<syntaxhighlight lang="asm" style="overflow-x: auto;">
 +
; 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
 +
.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
 +
</syntaxhighlight>
  
 
== Keywords ==
 
== Keywords ==

Revision as of 17:43, 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

This is disassembled code for this opcode from v1.0 US.

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
.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