Difference between revisions of "01C3"

From GTAMods Wiki
Jump to navigation Jump to search
m
(highlight)
 
Line 1: Line 1:
{{Icon|t}} '''MARK_<wbr>CAR_<wbr>AS_<wbr>NO_<wbr>LONGER_<wbr>NEEDED'''
+
{{OpCode
<hr />
+
| games      = {{Icon|t}}
'''Description'''
+
| command    = MARK_<wbr>CAR_<wbr>AS_<wbr>NO_<wbr>LONGER_<wbr>NEEDED
: Marks the vehicle as no longer needed
+
| description = Marks the vehicle as no longer needed
'''Syntax'''
+
| syntax1    = 01C3: mark_car_as_no_longer_needed [''car handle'']
: 01C3: mark_car_as_no_longer_needed [''car handle'']
+
| syntax2    = Car.RemoveReferences( [''car handle''] )
: Car.RemoveReferences( [''car handle''] )
+
| p1t        = [''car handle'']
'''Parameter'''
+
| p1d        = The handle of a vehicle; vehicle does not have to exist
: [''car handle'']
+
| native      = [[MARK_CAR_AS_NO_LONGER_NEEDED]]
:: The handle of a vehicle; vehicle does not have to exist
+
}}
'''Native analog'''
 
: [[MARK_CAR_AS_NO_LONGER_NEEDED]]
 
  
 
This opcode marks the vehicle as no longer needed by the script and turns it into a traffic vehicle. When a vehicle is spawned ([[00A5]], etc.) or grabbed from the world ([[0327]], etc.), the vehicle will remain in the game without despawning until this opcode is called. If spawned during a [[Create a mission|mission]], calling the [[00D8|mission cleanup routine]] automatically marks any vehicles spawned during the mission as no longer needed. When the vehicle is marked no longer needed, it will be treated like a traffic vehicle and will disappear off-screen. However, as long as the vehicle remains on-screen, the script can continue to recognize the vehicle until it disappears. Opcodes that grabs the handle of the vehicle ([[03C0]], etc.) do not treat vehicles as mission vehicles, so using this opcode with disregard will cause problems with other scripts (like during missions) trying to look for the vehicle. Alternative documentation names this opcode as "remove references to car".
 
This opcode marks the vehicle as no longer needed by the script and turns it into a traffic vehicle. When a vehicle is spawned ([[00A5]], etc.) or grabbed from the world ([[0327]], etc.), the vehicle will remain in the game without despawning until this opcode is called. If spawned during a [[Create a mission|mission]], calling the [[00D8|mission cleanup routine]] automatically marks any vehicles spawned during the mission as no longer needed. When the vehicle is marked no longer needed, it will be treated like a traffic vehicle and will disappear off-screen. However, as long as the vehicle remains on-screen, the script can continue to recognize the vehicle until it disappears. Opcodes that grabs the handle of the vehicle ([[03C0]], etc.) do not treat vehicles as mission vehicles, so using this opcode with disregard will cause problems with other scripts (like during missions) trying to look for the vehicle. Alternative documentation names this opcode as "remove references to car".
  
 
== Example ==
 
== Example ==
The following example, using Sanny Builder, will spawn a Pony close to the player character. A number is displayed on the screen to show the existence of the Pony; 0 means it does not exist and 1 means it does. If the Pony is left alone, it will not disappear. Pressing the CAMERA key will mark the Pony as no longer needed. After that, if left alone, the Pony will disappear like normal traffic vehicles.
+
The following example, using Sanny Builder, will spawn a Pony close to the player character. A number is displayed on the screen to show the existence of the Pony; 0 means it does not exist and 1 means it does. If the Pony is left alone, it will not disappear. Pressing [[00E1|button 13]] (CAMERA key) will mark the Pony as no longer needed. After that, if left alone, the Pony will disappear like normal traffic vehicles.
<syntaxhighlight lang="scm">
+
{{Pre|class=sb-code|1=
// set constants
+
<span class="c1">// set constants</span>
const
+
<span class="k">const</span>
SPAWNED_CAR = 0@
+
SPAWNED_CAR = <span class="nv">0@</span>
X_POS = 1@
+
X_POS = <span class="nv">1@</span>
Y_POS = 2@
+
Y_POS = <span class="nv">2@</span>
Z_POS = 3@
+
Z_POS = <span class="nv">3@</span>
PONY_EXISTS = 4@
+
PONY_EXISTS = <span class="nv">4@</span>
CAR_MODEL = #PONY
+
CAR_MODEL = <span class="nt">#PONY</span>
end
+
<span class="k">end</span>
  
// spawn pony
+
<span class="c1">// spawn pony</span>
0247: request_model CAR_MODEL
+
[[0247]]: request_model CAR_MODEL
repeat
+
[[038B]]: load_requested_models
    wait 0
+
[[00A0]]: store_actor <span class="nv">$PLAYER_ACTOR</span> position_to X_POS Y_POS Z_POS
    if
+
X_POS += <span class="m">4.0</span>
        0248:   model CAR_MODEL available
+
[[00A5]]: SPAWNED_CAR = create_car CAR_MODEL at X_POS Y_POS Z_POS
    then
+
[[0249]]: release_model CAR_MODEL
        break
+
PONY_EXISTS = <span class="k">true</span> <span class="c1">// pony exists</span>
    end
 
until false
 
00A0: store_actor $PLAYER_ACTOR position_to X_POS Y_POS Z_POS
 
X_POS += 4.0
 
00A5: SPAWNED_CAR = create_car CAR_MODEL at X_POS Y_POS Z_POS
 
0249: release_model CAR_MODEL
 
PONY_EXISTS = true  // pony exists
 
  
// check the existence of and mark pony as no longer needed
+
<span class="c1">// check the existence of and mark pony as no longer needed</span>
while true
+
<span class="k">while</span> <span class="k">true</span>
     wait 10
+
     <span class="k">wait</span> <span class="m">10</span>
     if  
+
     <span class="k">if</span>
         00E1:  key_pressed 0 13  // camera key
+
         [[00E1]]:  key_pressed <span class="m">0</span> <span class="m">13</span> <span class="c1">// camera key</span>
     then
+
     <span class="k">then</span>
         01C3: remove_references_to_car SPAWNED_CAR
+
         01C3: mark_car_as_no_longer_needed SPAWNED_CAR
     end
+
     <span class="k">end</span>
     if
+
     <span class="k">if</span>
         0119:  car SPAWNED_CAR wrecked
+
         [[0119]]:  car SPAWNED_CAR wrecked
     then
+
     <span class="k">then</span>
         PONY_EXISTS = false  // pony does not exist
+
         PONY_EXISTS = <span class="k">false</span> <span class="c1">// pony does not exist</span>
     end
+
     <span class="k">end</span>
     // display existence of pony as a number onscreen
+
     <span class="c1">// display existence of pony as a number onscreen</span>
     01E5: text_1number_highpriority 'NUMBER' PONY_EXISTS 10 ms 1
+
     01E5: text_1number_highpriority <span class="s1">'NUMBER'</span> PONY_EXISTS <span class="m">10</span> ms <span class="m">1</span>
end
+
<span class="k">end</span>
</syntaxhighlight>
+
}}
  
 
== Keywords ==
 
== Keywords ==
Line 67: Line 58:
 
* {{Icon|t}} [[01C2]], for characters
 
* {{Icon|t}} [[01C2]], for characters
 
* {{Icon|t}} [[01C4]], for objects
 
* {{Icon|t}} [[01C4]], for objects
 
[[Category:OpCodes]]
 

Latest revision as of 02:03, 12 December 2016

GTA III Vice City San Andreas MARK_CAR_AS_NO_LONGER_NEEDED


Description
Marks the vehicle as no longer needed
Syntax
01C3: mark_car_as_no_longer_needed [car handle]
Car.RemoveReferences( [car handle] )
Parameter
[car handle]
The handle of a vehicle; vehicle does not have to exist
Native analog
MARK_CAR_AS_NO_LONGER_NEEDED

This opcode marks the vehicle as no longer needed by the script and turns it into a traffic vehicle. When a vehicle is spawned (00A5, etc.) or grabbed from the world (0327, etc.), the vehicle will remain in the game without despawning until this opcode is called. If spawned during a mission, calling the mission cleanup routine automatically marks any vehicles spawned during the mission as no longer needed. When the vehicle is marked no longer needed, it will be treated like a traffic vehicle and will disappear off-screen. However, as long as the vehicle remains on-screen, the script can continue to recognize the vehicle until it disappears. Opcodes that grabs the handle of the vehicle (03C0, etc.) do not treat vehicles as mission vehicles, so using this opcode with disregard will cause problems with other scripts (like during missions) trying to look for the vehicle. Alternative documentation names this opcode as "remove references to car".

Example

The following example, using Sanny Builder, will spawn a Pony close to the player character. A number is displayed on the screen to show the existence of the Pony; 0 means it does not exist and 1 means it does. If the Pony is left alone, it will not disappear. Pressing button 13 (CAMERA key) will mark the Pony as no longer needed. After that, if left alone, the Pony will disappear like normal traffic vehicles.

// set constants
const
SPAWNED_CAR = 0@
X_POS = 1@
Y_POS = 2@
Z_POS = 3@
PONY_EXISTS = 4@
CAR_MODEL = #PONY
end

// spawn pony
0247: request_model CAR_MODEL
038B: load_requested_models
00A0: store_actor $PLAYER_ACTOR position_to X_POS Y_POS Z_POS
X_POS += 4.0
00A5: SPAWNED_CAR = create_car CAR_MODEL at X_POS Y_POS Z_POS
0249: release_model CAR_MODEL
PONY_EXISTS = true  // pony exists

// check the existence of and mark pony as no longer needed
while true
    wait 10
    if 
        00E1:   key_pressed 0 13  // camera key
    then
        01C3: mark_car_as_no_longer_needed SPAWNED_CAR
    end
    if
        0119:   car SPAWNED_CAR wrecked
    then
        PONY_EXISTS = false  // pony does not exist
    end
    // display existence of pony as a number onscreen
    01E5: text_1number_highpriority 'NUMBER' PONY_EXISTS 10 ms 1
end

Keywords

mark, remove, cleanup, reference, references, car, vehicle, no, longer, needed

See also

  • GTA III Vice City San Andreas 01C2, for characters
  • GTA III Vice City San Andreas 01C4, for objects