Difference between revisions of "Streamed Script"

From GTAMods Wiki
Jump to navigation Jump to search
(How 2.0)
Line 1: Line 1:
 
An '''external script''' is a script file used only in San Andreas that is outside the main script file, the <code>[[main.scm]]</code>. An external script is a compiled binary file having an extension <code>.scm</code>. It contains the opcodes which are parsed by the game in the same way as the ones located at the <code>main.scm</code>. The difference from an ordinary SCM file is that an external script has no header. All the info about it is compiled at the <code>main.scm</code> header.<br>
 
An '''external script''' is a script file used only in San Andreas that is outside the main script file, the <code>[[main.scm]]</code>. An external script is a compiled binary file having an extension <code>.scm</code>. It contains the opcodes which are parsed by the game in the same way as the ones located at the <code>main.scm</code>. The difference from an ordinary SCM file is that an external script has no header. All the info about it is compiled at the <code>main.scm</code> header.<br>
External scripts are located in the <code>[[Img#Version_2_-_GTA_SA|script.img]]</code> file in the <code>data/script</code> folder. The file is usually decompiled along with the <code>main.scm</code>. The maximum number of external scripts that can be defined is 82. The maximum number of external scripts that can be used simultaneously is 70. The game currently has 78 defined external scripts.
+
External scripts are located in the <code>[[script.img]]</code> file in the <code>data/script</code> folder. The file is usually decompiled along with the <code>main.scm</code>. The maximum number of external scripts that can be defined is 82. The maximum number of external scripts that can be used simultaneously is 70. The game currently has 78 defined external scripts.
  
==How 2.0==
+
==Tutorial==
 
In order to add more external script files, you have to define the number of files you are going to use:<br>
 
In order to add more external script files, you have to define the number of files you are going to use:<br>
 
<code>DEFINE EXTERNAL_SCRIPTS 78</code><br>
 
<code>DEFINE EXTERNAL_SCRIPTS 78</code><br>
Line 8: Line 8:
 
<code>DEFINE SCRIPT '''NAME''' AT '''[[Label|LABEL]]'''</code><br>
 
<code>DEFINE SCRIPT '''NAME''' AT '''[[Label|LABEL]]'''</code><br>
 
At the end of the file add your code in.
 
At the end of the file add your code in.
 +
 +
{{incomplete}}
  
 
==Opcodes==
 
==Opcodes==
Line 24: Line 26:
 
[[0928]] - Activates the external script when near the ped's model<br>
 
[[0928]] - Activates the external script when near the ped's model<br>
 
[[0929]] - Activates the external script when near the object's model<br>
 
[[0929]] - Activates the external script when near the object's model<br>
 
==List of Scripts==
 
The following is a list of external scripts that is used in the game.
 
{|
 
! Number
 
! Name
 
! Description
 
|-
 
| 0
 
| PLAYER_PARACHUTE
 
| Controls the player's parachute
 
|-
 
| 1
 
| PARACHUTE
 
| Controls the AI's parachute
 
|-
 
| 2
 
| BCESAR2
 
| Smoke's money from Los Santos to San Fierro
 
|-
 
| 3
 
| BCESAR3
 
| Smoke's yay from San Fierro to Los Santos
 
|-
 
| 4
 
| SLOT_MACHINE
 
| Slot machine
 
|-
 
| 5
 
| ROULETTE
 
| Roulette
 
|-
 
| 6
 
| OTB_SCRIPT
 
| Off track betting machine
 
|-
 
| 7
 
| ARCADE
 
| Arcade game mission checker (not the game itself)
 
|-
 
| 8
 
| VENDING_MACHINE
 
| Vending machines (both food and drinks)
 
|-
 
| 9
 
| FOOD_VENDOR
 
| Food vendors
 
|-
 
| 10
 
| GATES_SCRIPT
 
| Airport gates
 
|-
 
| 11
 
| GYMBIKE
 
| Bike
 
|-
 
| 12
 
| GYMBENCH
 
| Bench
 
|-
 
| 13
 
| GYMTREAD
 
| Treadmill
 
|-
 
| 14
 
| GYMDUMB
 
| Dumbell
 
|-
 
| 15
 
| BASKETB
 
| Basketball
 
|-
 
| 16
 
| VIDPOK
 
| Video poker machine
 
|-
 
| 17
 
| BLACKJ
 
| Blackjack
 
|-
 
| 18
 
| WHEELO
 
| Wheel of Fortune
 
|-
 
| 19
 
| DEALER
 
| Drug dealer
 
|-
 
| 20
 
| HOME_BRAINS
 
| Hobo's AI
 
|-
 
| 21
 
| POOL_SCRIPT
 
| Pool
 
|-
 
| 22
 
| LOWR_CONT
 
| Lowrider contest
 
|-
 
| 23
 
| BURG_BRAINS
 
| Burglary's ped AI
 
|-
 
| 24
 
| GF_MEETING
 
| Girlfriend meeting
 
|-
 
| 25
 
| GF_DATE
 
| Girlfriend date
 
|-
 
| 26
 
| GF_SEX
 
| Girlfriend sex
 
|-
 
| 27
 
| CASINO_AMBIENCE
 
| Casino ambience
 
|-
 
| 28
 
| BAR_AMBIENCE
 
| Bar ambience
 
|-
 
| 29
 
| FOODBRAINS
 
| Restaurant's ped AI
 
|-
 
| 30
 
| OTB_AMBIENCE
 
| Off track betting ambience
 
|-
 
| 31
 
| STRIP_AMBIENCE
 
| Strip club ambience
 
|-
 
| 32
 
| PLANES
 
| Airline traveling
 
|-
 
| 33
 
| TRAINS
 
| Being a passenger in the train
 
|-
 
| 34
 
| ZERO_AMBIENCE
 
| Zero's RC Shop ambience
 
|-
 
| 35
 
| DANCE
 
| DDR
 
|-
 
| 36
 
| SHOPKEEPER
 
| Restaurant shopkeeper AI
 
|-
 
| 37
 
| CUSTOMER_PANIC
 
| Ped's panic AI
 
|-
 
| 38
 
| BAR_STAFF
 
| Bartender AI
 
|-
 
| 39
 
| BOUNCER
 
| Bouncer AI
 
|-
 
| 40
 
| OTB_STAFF
 
| OTB staff AI
 
|-
 
| 41
 
| PCHAIR
 
| Restaurant ped in chair AI
 
|-
 
| 42
 
| PCUSTOM
 
| Restaurant ped not in chair AI
 
|-
 
| 43
 
| OTBWTCH
 
| OTB ped AI
 
|-
 
| 44
 
| OTBSLP
 
| Ped betting OTB AI
 
|-
 
| 45
 
| OTBTILL
 
| Ped walking around OTB AI
 
|-
 
| 46
 
| FBOOTHR
 
| Ped eating food AI
 
|-
 
| 47
 
| FBOOTHL
 
| Ped eating food AI
 
|-
 
| 48
 
| BARGUY
 
| Barman AI
 
|-
 
| 49
 
| PEDROUL
 
| Roulette gamer AI
 
|-
 
| 50
 
| PEDCARD
 
| Card gamer AI
 
|-
 
| 51
 
| PEDSLOT
 
| Slot-machine gamer AI
 
|-
 
| 52
 
| DANCER
 
| Club dancer AI
 
|-
 
| 53
 
| STRIPW
 
| Strip dancing female
 
|-
 
| 54
 
| STRIPM
 
| Strip dancing male
 
|-
 
| 55
 
| BROWSE
 
| Inside police HQ cop browsing folder or locker
 
|-
 
| 56
 
| COPSIT
 
| Office workers sitting in offices (Planning Department)
 
|-
 
| 57
 
| COPLOOK
 
| Inside police HQ cop looking at posters
 
|-
 
| 58
 
| TICKET
 
| Train ticket machine AI
 
|-
 
| 59
 
| SHOPPER
 
| Ped shopping AI
 
|-
 
| 60
 
| AMMU
 
| Ammunation
 
|-
 
| 61
 
| TATTOO
 
| Tattoo
 
|-
 
| 62
 
| BARBER
 
| Barber
 
|-
 
| 63
 
| WARDROBE
 
| Player's wardrobe
 
|-
 
| 64
 
| CLOTHES
 
| Clothes
 
|-
 
| 65
 
| JUNKFUD
 
| Food selection
 
|-
 
| 66
 
| CARMOD1
 
| Mod garage
 
|-
 
| 67
 
| CRANE1
 
| San Fierro and Las Venturas construction site cranes
 
|-
 
| 68
 
| CRANE2
 
| IE ship crane
 
|-
 
| 69
 
| CRANE3
 
| Quarry crane
 
|-
 
| 70
 
| CARPARK1
 
| Random car for carpark generators
 
|-
 
| 71
 
| IMPOUND
 
| Impound lots
 
|-
 
| 72
 
| VALET
 
| Valet
 
|-
 
| 73
 
| PHOTO
 
| Suicide photographer
 
|-
 
| 74
 
| PRISONR
 
| Prisoner AI
 
|-
 
| 75
 
| CAMERA
 
| Homie's camera holding AI
 
|-
 
| 76
 
| DEBT
 
| Casino debt
 
|-
 
| 77
 
| HOTDOG
 
| Hotdog van
 
|}
 
  
 
==Problems==
 
==Problems==
 
There is one main problem with external scripts: the script doesn't work if you save while the script is running. If you reload the game, the external script will be disabled. You have to force the script to end before saving to prevent this from happening.
 
There is one main problem with external scripts: the script doesn't work if you save while the script is running. If you reload the game, the external script will be disabled. You have to force the script to end before saving to prevent this from happening.
  
[[Category:Mission Script]]
+
==See also==
 +
*[[Script.img#San Andreas|List of external scripts]]
 +
 
 +
[[Category:GTA SA]][[Category:Mission Script]]

Revision as of 21:44, 11 January 2010

An external script is a script file used only in San Andreas that is outside the main script file, the main.scm. An external script is a compiled binary file having an extension .scm. It contains the opcodes which are parsed by the game in the same way as the ones located at the main.scm. The difference from an ordinary SCM file is that an external script has no header. All the info about it is compiled at the main.scm header.
External scripts are located in the script.img file in the data/script folder. The file is usually decompiled along with the main.scm. The maximum number of external scripts that can be defined is 82. The maximum number of external scripts that can be used simultaneously is 70. The game currently has 78 defined external scripts.

Tutorial

In order to add more external script files, you have to define the number of files you are going to use:
DEFINE EXTERNAL_SCRIPTS 78
Add the external script to the list with this:
DEFINE SCRIPT NAME AT LABEL
At the end of the file add your code in.

This section is incomplete. You can help by fixing and expanding it.

Opcodes

You can use the following opcodes to do stuff to your script file.
07D3 - I don't know how this work
0884 - Or this
08A9 - Loads the external script
08AB - Checks if the external script has been loaded
08E8 - Assigns an external script to a ped's model
090F - Ends the external script (doesn't seem to work)
0910 - Releases an external script from the memory (not tested!)
0913 - Runs the external script after it has been loaded
0914 - No operation in PC and XBox versions
091C - Gets an actor within a sphere of the object using an external script
0926 - Gets the status of the external script, 0 if not loaded
0928 - Activates the external script when near the ped's model
0929 - Activates the external script when near the object's model

Problems

There is one main problem with external scripts: the script doesn't work if you save while the script is running. If you reload the game, the external script will be disabled. You have to force the script to end before saving to prevent this from happening.

See also