Difference between revisions of "0400"

From GTAMods Wiki
Jump to navigation Jump to search
(New page: {{OpCode | ini = 0400=7,%5d% %6d% %7d% %1d% %2d% %3d% %4d% | description = Gets the offset of the object's position | p1 = Existing object handle | p2 = Float (X-...)
 
m
 
(10 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
{{OpCode
 
{{OpCode
| ini         = 0400=7,%5d% %6d% %7d% %1d% %2d% %3d% %4d%
+
| games      = {{Icon|3}}
| description = Gets the offset of the object's position
+
| command    = REGISTER_4X4_MAYHEM_TIME
| p1          = Existing object handle
+
| description = Saves the fastest time to the Multistorey Mayhem [[List of statistics (III)|stat]]
| p2          = Float (X-offset in [[units]])
+
| syntax1    = 0400: save_mayhem_time [''int'']
| p3          = Float (Y-offset in units)
+
| p1t         = [''int'']
| p4          = Float (Z-offset in units)
+
| p1d        = Integer value
| p5          = Variable to store the X-coordinate of the X-offset
+
}}
| p6          = Variable to store the Y-coordinate of the Y-offset
+
 
| p7          = Variable to store the Z-coordinate of the Z-offset
+
This opcode saves the lowest value to the "Multistorey Mayhem in secs" stat ([[GXT]] key <code>FEST_RM</code>). The stat initially starts with a value of 0 and does not appear in the stats menu until its value is greater than 0. Any value can overwrite a value of 0. For every other values, only those lower than the saved value will update the stat with the new value; higher values have no effect on the stat. The value set with this opcode is saved in [[Saves (GTA 3)#Block 17: Stats|block 17 of the save file]].
| game        = Vice City, San Andreas
+
 
 +
 
 +
{{OpCode
 +
| games      = {{Icon|VC}} {{Icon|SA}}
 +
| command    = GET_OFFSET_FROM_OBJECT_IN_WORLD_COORDS
 +
| description = Stores a point offset from the object's position
 +
| syntax1    = 0400: create_coordinate [''var1''] [''var2''] [''var3''] from_object [''object handle''] offset [''flt1''] [''flt2''] [''flt3'']
 +
| p1t        = [''object handle'']
 +
| p1d        = The handle of the object
 +
| p2t        = [''flt1'']
 +
| p2d        = Distance to offset from the object's right side
 +
| p3t        = [''flt2'']
 +
| p3d        = Distance to offset from the object's front side
 +
| p4t        = [''flt3'']
 +
| p4d        = Distance to offset from the object's top side
 +
| p5t        = [''var1'']
 +
| p5d        = Variable to store the offset x-coordinate
 +
| p6t        = [''var2'']
 +
| p6d        = Variable to store the offset y-coordinate
 +
| p7t        = [''var3'']
 +
| p7d        = Variable to store the offset z-coordinate
 
| native      = [[GET_OFFSET_FROM_OBJECT_IN_WORLD_COORDS]]
 
| native      = [[GET_OFFSET_FROM_OBJECT_IN_WORLD_COORDS]]
 
}}
 
}}
If you set the X, Y, and Z offsets to 0.0, it is better to use opcode [[01BB]] instead since you are getting the object's own position. Note that the parameters are mixed around.
 
[[Sanny Builder]] example:<source lang="scm">0400: store_coords_to 4@ 5@ 6@ from_object 0@ with_offset 1@ 2@ 3@</source>
 
  
==Note==
+
This opcode stores a point offset from the object's position. The coordinates it stores are dependent on the [[angle|direction]] the object is facing. If you set the offsets to 0.0, it is better to use opcode [[01BB]] instead since you are getting the object's own position.
The above format is more commonly used. The actual format of this opcode is in order:<br>
+
 
<code>0400=7,%1d% %2d% %3d% %4d% %5d% %6d% %7d%</code><br>
+
== Example ==
The format to use depends on which INI file you use.
+
The following example, using Sanny Builder, will spawn a pistol object at the player character. Pressing [[00E1|button 4]] (ACTION key on foot) will spawn an adrenaline pickup rotating around the pistol object.
 +
 
 +
{{Pre|class=sb-code|1=
 +
<span class="c1">// set constants</span>
 +
<span class="k">const</span>
 +
X_POS = <span class="nv">0@</span>
 +
Y_POS = <span class="nv">1@</span>
 +
Z_POS = <span class="nv">2@</span>
 +
ANGLE = <span class="nv">3@</span>
 +
SPAWNED_OBJECT = <span class="nv">4@</span>
 +
SPAWNED_PICKUP = <span class="nv">5@</span>
 +
<span class="k">end</span>
 +
 
 +
<span class="c1">// spawn object</span>
 +
00A0: store_actor <span class="nv">$PLAYER_ACTOR</span> position_to X_POS Y_POS Z_POS
 +
0107: SPAWNED_OBJECT = create_object <span class="nt">#COLT45</span> at X_POS Y_POS Z_POS
 +
 
 +
<span class="c1">// spawn pickup and rotate object</span>
 +
<span class="k">while</span> <span class="k">true</span>
 +
    <span class="k">wait</span> <span class="m">10</span>
 +
    <span class="k">if</span>
 +
        00E1:  key_pressed <span class="m">0</span> <span class="m">4</span>  <span class="c1">// action key</span>
 +
    <span class="k">then</span>
 +
        0176: ANGLE = object SPAWNED_OBJECT z_angle
 +
        ANGLE += <span class="m">5.0</span>
 +
        <span class="k">if</span>
 +
            ANGLE &gt; <span class="m">360.0</span>
 +
        <span class="k">then</span>
 +
            ANGLE = <span class="m">0.0</span>
 +
        <span class="k">end</span>
 +
        0177: set_object SPAWNED_OBJECT z_angle_to ANGLE
 +
        0400: create_coordinate X_POS Y_POS Z_POS from_object SPAWNED_OBJECT offset <span class="m">3.0</span> <span class="m">0.0</span> <span class="m">0.0</span>
 +
        0215: destroy_pickup SPAWNED_PICKUP
 +
        0213: SPAWNED_PICKUP = create_pickup <span class="nt">#ADRENALINE</span> type <span class="m">3</span> at X_POS Y_POS Z_POS
 +
    <span class="k">end</span>
 +
<span class="k">end</span>
 +
}}
 +
 
 +
== Keywords ==
 +
get, store, object, position, coordinates, location, offset
 +
 
 +
== See also ==
 +
* {{Icon|VC}} {{Icon|SA}} [[0407]], for vehicles
 +
* {{Icon|VC}} {{Icon|SA}} [[04C4]], for characters
  
==Keywords==
+
[[Category:Code Snippets]]
get, store, object, position, location, offset
 

Latest revision as of 01:47, 28 November 2016

GTA III REGISTER_4X4_MAYHEM_TIME


Description
Saves the fastest time to the Multistorey Mayhem stat
Syntax
0400: save_mayhem_time [int]
Parameter
[int]
Integer value

This opcode saves the lowest value to the "Multistorey Mayhem in secs" stat (GXT key FEST_RM). The stat initially starts with a value of 0 and does not appear in the stats menu until its value is greater than 0. Any value can overwrite a value of 0. For every other values, only those lower than the saved value will update the stat with the new value; higher values have no effect on the stat. The value set with this opcode is saved in block 17 of the save file.


Vice City San Andreas GET_OFFSET_FROM_OBJECT_IN_WORLD_COORDS


Description
Stores a point offset from the object's position
Syntax
0400: create_coordinate [var1] [var2] [var3] from_object [object handle] offset [flt1] [flt2] [flt3]
Parameter
[object handle]
The handle of the object
[flt1]
Distance to offset from the object's right side
[flt2]
Distance to offset from the object's front side
[flt3]
Distance to offset from the object's top side
[var1]
Variable to store the offset x-coordinate
[var2]
Variable to store the offset y-coordinate
[var3]
Variable to store the offset z-coordinate
Native analog
GET_OFFSET_FROM_OBJECT_IN_WORLD_COORDS

This opcode stores a point offset from the object's position. The coordinates it stores are dependent on the direction the object is facing. If you set the offsets to 0.0, it is better to use opcode 01BB instead since you are getting the object's own position.

Example

The following example, using Sanny Builder, will spawn a pistol object at the player character. Pressing button 4 (ACTION key on foot) will spawn an adrenaline pickup rotating around the pistol object.

// set constants
const
X_POS = 0@
Y_POS = 1@
Z_POS = 2@
ANGLE = 3@
SPAWNED_OBJECT = 4@
SPAWNED_PICKUP = 5@
end

// spawn object
00A0: store_actor $PLAYER_ACTOR position_to X_POS Y_POS Z_POS
0107: SPAWNED_OBJECT = create_object #COLT45 at X_POS Y_POS Z_POS

// spawn pickup and rotate object
while true
    wait 10
    if 
        00E1:   key_pressed 0 4  // action key
    then
        0176: ANGLE = object SPAWNED_OBJECT z_angle 
        ANGLE += 5.0
        if
            ANGLE > 360.0
        then
            ANGLE = 0.0
        end
        0177: set_object SPAWNED_OBJECT z_angle_to ANGLE
        0400: create_coordinate X_POS Y_POS Z_POS from_object SPAWNED_OBJECT offset 3.0 0.0 0.0
        0215: destroy_pickup SPAWNED_PICKUP
        0213: SPAWNED_PICKUP = create_pickup #ADRENALINE type 3 at X_POS Y_POS Z_POS
    end
end

Keywords

get, store, object, position, coordinates, location, offset

See also

  • Vice City San Andreas 0407, for vehicles
  • Vice City San Andreas 04C4, for characters