Difference between revisions of "0228"
Jump to navigation
Jump to search
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
− | {{Icon|3}} | + | {{OpCode |
− | + | | games = {{Icon|3}} | |
− | + | | command = IS_CAR_ARMED_WITH_BOMB | |
− | + | | description = Checks if the vehicle is armed with a specific bomb | |
− | + | | syntax1 = 0228: car [''car handle''] bomb_status == [''int''] | |
− | + | | p1t = [''car handle''] | |
− | + | | p1d = The handle of the vehicle | |
− | + | | p2t = [''int''] | |
− | + | | p2d = [[#Bomb types|Bomb type]] | |
− | + | }} | |
− | |||
− | |||
This conditional opcode returns true if the vehicle is armed with the specified type of bomb. | This conditional opcode returns true if the vehicle is armed with the specified type of bomb. | ||
− | |||
== Bomb types == | == Bomb types == | ||
Line 42: | Line 39: | ||
0@ += 0x1FE // car bomb offset | 0@ += 0x1FE // car bomb offset | ||
05E0: 0@ = read_memory 0@ size 1 virtual_protect 0 | 05E0: 0@ = read_memory 0@ size 1 virtual_protect 0 | ||
− | 0@ | + | 0B10: 0@ = 0@ AND 7 // requires CLEO plugins |
003B: 0@ == 1@ // check bomb type in car against input | 003B: 0@ == 1@ // check bomb type in car against input | ||
05F6: ret 0 | 05F6: ret 0 | ||
Line 51: | Line 48: | ||
// ... | // ... | ||
if | if | ||
− | + | 05F5: call_scm_func @opcode_0228 inputs 2 car_handle [car handle] bomb_type [int] | |
then | then | ||
− | + | // [RETURNED TRUE] | |
else | else | ||
− | + | // [RETURNED FALSE] | |
end | end | ||
// ... | // ... | ||
Line 64: | Line 61: | ||
== See also == | == See also == | ||
− | * [[0220]], checks if the | + | * {{Icon|3}} [[0220]], checks if the vehicle is armed with any bomb |
− | * [[0242]], arms | + | * {{Icon|3}} [[0242]], arms car with bomb |
[[Category:OpCodes]] | [[Category:OpCodes]] | ||
[[Category:Code Snippets]] | [[Category:Code Snippets]] |
Revision as of 09:05, 4 January 2016
- Description
- Checks if the vehicle is armed with a specific bomb
- Syntax
- 0228: car [car handle] bomb_status == [int]
- Parameter
- [car handle]
- The handle of the vehicle
- [int]
- Bomb type
This conditional opcode returns true if the vehicle is armed with the specified type of bomb.
Bomb types
Type | Enum | Description |
---|---|---|
0 | CARBOMB_NONE | No bomb |
1 | CARBOMB_TIMED | Inactive timed bomb, can be obtained from garage type 2 |
2 | CARBOMB_ONIGNITION | Inactive ignition bomb, can be obtained from garage type 3 |
3 | CARBOMB_REMOTE | Remote detonation bomb, can be obtained from garage type 4 |
4 | CARBOMB_TIMEDACTIVE | Active timed bomb, activated from bomb type 1 |
5 | CARBOMB_ONIGNITIONACTIVE | Active ignition bomb, activated from bomb type 2 |
For Vice City
This opcode does not exist in Vice City but the type of the car bomb armed in a vehicle can still be retrieved. The following example, using Sanny Builder with CLEO for Vice City in an external script (not the main one) and tested on US v1.0, should work similarly to this opcode. Place this at the end of the file:
:opcode_0228
// 0@ - input param (car handle)
// 1@ - input param (bomb type)
05E7: 0@ = car 0@ struct
0@ += 0x1FE // car bomb offset
05E0: 0@ = read_memory 0@ size 1 virtual_protect 0
0B10: 0@ = 0@ AND 7 // requires CLEO plugins
003B: 0@ == 1@ // check bomb type in car against input
05F6: ret 0
Use this line as a substitute for opcode 0228. This can be placed anywhere within the external script as a conditional statement:
// ...
if
05F5: call_scm_func @opcode_0228 inputs 2 car_handle [car handle] bomb_type [int]
then
// [RETURNED TRUE]
else
// [RETURNED FALSE]
end
// ...
Keywords
check, car, vehicle, bomb, status