Quantcast
Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
    1. Welcome to GTAForums!

    1. Red Dead Redemption 2

      1. Gameplay
      2. Missions
      3. Help & Support
    2. Red Dead Online

      1. Gameplay
      2. Find Lobbies & Outlaws
      3. Help & Support
    1. Crews & Posses

      1. Recruitment
    2. Events

    1. GTA Online

      1. Arena War
      2. After Hours
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Grand Theft Auto Series

    3. GTA Next

    4. GTA V

      1. PC
      2. Guides & Strategies
      3. Help & Support
    5. GTA IV

      1. Episodes from Liberty City
      2. Multiplayer
      3. Guides & Strategies
      4. Help & Support
      5. GTA Mods
    6. GTA Chinatown Wars

    7. GTA Vice City Stories

    8. GTA Liberty City Stories

    9. GTA San Andreas

      1. Guides & Strategies
      2. Help & Support
      3. GTA Mods
    10. GTA Vice City

      1. Guides & Strategies
      2. Help & Support
      3. GTA Mods
    11. GTA III

      1. Guides & Strategies
      2. Help & Support
      3. GTA Mods
    12. Top Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    13. Wiki

      1. Merchandising
    1. GTA Modding

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Mod Showroom

      1. Scripts & Plugins
      2. Maps
      3. Total Conversions
      4. Vehicles
      5. Textures
      6. Characters
      7. Tools
      8. Other
      9. Workshop
    3. Featured Mods

      1. DYOM
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Red Dead Redemption

    2. Rockstar Games

    1. Off-Topic

      1. General Chat
      2. Gaming
      3. Technology
      4. Programming
      5. Movies & TV
      6. Music
      7. Sports
      8. Vehicles
    2. Expression

      1. Graphics / Visual Arts
      2. GFX Requests & Tutorials
      3. Writers' Discussion
      4. Debates & Discussion
    1. News

    2. Forum Support

    3. Site Suggestions

Opius

GTA:SA Opcodes

Recommended Posts

jarjar

Nice work there tomworld10 and space, it's good to see some progress in this topic, it's been a bit queit around here latly. confused.gif The jiggle camera opcode looks like it might be cool. icon14.gif

Share this post


Link to post
Share on other sites
jarjar

Okay, i mirrored it too, i hope you don't mind. smile.gif

Share this post


Link to post
Share on other sites
PLPynton

06A3=2,get_vehicle %1d% mass %2d%

returns int

 

0745=1,set_plane_thrust_to_horizontal %1d%

used to preset hydra for takeoff, can't really see what it does with different planes

 

0780=5,heli %1d% hover_above_actor %2d% hover_above_car %3h% altitude %4d% (unknown) %5d%

$heliID $actorID $carID $float $float

 

083F=2,get_vehicle %1d% vertical_deviation %2d%

returns float (sinus between env. y axis and x axis of the plane)

 

088B=2,set_vehicle %1d% form_drag_multiplier %2d%

$vehID $float (see handling.cfg for clues, values below the original are used to increase speed and acceleration of the veh and values above well...)

 

091F=2,get_airplane %1d% landing_gear_status %2d%

returns float (0.0= fully extended, 1.0 up/closed)

 

0945=2,get_player %1d% max_armour %2d%

$PLAYER_CHAR, returns int

Edited by PLPynton

Share this post


Link to post
Share on other sites
DeeZire

Can somebody else test this to confirm it please?

 

 

08F0: apply_txd_texture a$ to_dff_model b$

 

 

Is used in the game to reskin objects and actors, e.g from GFDATE;-

 

 

08F0: apply_txd_texture 'GANGRL3' to_dff_model 'GFRIEND'

 

 

 

 

 

Share this post


Link to post
Share on other sites
PLPynton

04A4=2, %1d% == %2d% ;; integer values OR floating-point values

P1: $float or $localFloat or $int or $localInt

P2: $float or $localFloat or $int or $localInt or int or float

- P1 = P2?

works like combined together and can be used instead of: 0038,0039,003A,003B,003C,0042,0043,0044,0045,0046

use float OR integer at once.

 

04B0=2, %1d% > %2d% ;; integer values OR floating-point values

04B1=2, %1d% > %2d% ;; integer values OR floating-point values

same action codes

P1: $float or $localFloat or $int or $localInt

P2: $float or $localFloat or $int or $localInt or int or float

- P1 > P2?

works like combined together and can be used instead of: 0018,0019,001C,001D,001E,001F,0020,0021,0024,0025,0026,0027

use float OR integer at once.

 

04B2=2, %1d% > %2d% ;; integer values OR floating-point values

04B3=2, %1d% > %2d% ;; integer values OR floating-point values

same action codes

P1: $float or $localFloat or $int or $localInt or int or float

P2: $float or $localFloat or $int or $localInt

- P1 > P2?

works like combined together and can be used instead of: 001A,001B,001C,001D,001E,001F,0022,0023,0024,0025,0026,0027

use float OR integer at once.

 

04B4=2, %1d% >= %2d% ;; integer values OR floating-point values

04B5=2, %1d% >= %2d% ;; integer values OR floating-point values

same action codes

P1: $float or $localFloat or $int or $localInt

P2: $float or $localFloat or $int or $localInt or int or float

- P1 >= P2?

works like combined together and can be used instead of: 0028,0029,002C,002D,002E,002F,0030,0031,0034,0035,0036,0037

use float OR integer at once.

 

04B6=2, %1d% >= %2d% ;; integer values OR floating-point values

04B7=2, %1d% >= %2d% ;; integer values OR floating-point values

same action codes

P1: $float or $localFloat or $int or $localInt or int or float

P2: $float or $localFloat or $int or $localInt

- P1 >= P2?

works like combined together and can be used instead of: 002A,002B,002C,002D,002E,002F,0032,0033,0034,0035,0036,0037

use float OR integer at once.

Edited by PLPynton

Share this post


Link to post
Share on other sites
tomworld10

Hi,

 

Before I forgot :

 

0508: close_all_doors_car $carID ;; really close it (not like it "spawns" closed, just unlike landing gear opcode) does even the sound of closing it. But doesn't close the boot (trunk), i don't think it will close the bonnet either.

 

And then :

 

@PLPynton : Pretty nice ones. You found opcodes I've been dreaming about !!!! Cool work. It's funny 0745 hasn't been post anywhere before, as you (re)discovered it yourself you'll still diserve the credits, and you diserve them even more than anyone because you posted it.

 

You are not alone at all (so I'm saying that to others too, should add the @everyone ?) but why not updating both here and there http://sa-db.webtools4you.net/.

All opcodes will be shown so use "find in the page" of your internet browser to find what you looking for. Don't use the database search tool it won't look in those which havn't been confirmed (most of them ain't). If an opcode is not present (number doesn't exist) write an e-mail to SA-db(at)webtools4you.net, and once Tmb2k as update it you can fill the description (if you do it before it won't remember it).

 

I think it's much much easier to update both at the same time (the sa-db is really fast to update), than later looking back on it and try to synchronized them ( I think actually spaceeinstein and Tmb2k are doing some synchronizing but they won't be done if we add more work for them...)

 

I'm not saying all that only for you PLPynton, but mostly to anyone. It was on my mind for a while.

 

Thanks for your all work all people and please

 

Have fun

Edited by tomworld10

Share this post


Link to post
Share on other sites
PLPynton

thanks for clues mate. as you see i have been placing codes not used in original script, but still implemented in engine. i know the database you are talking about, even tried to update but as you said there are not listed codes... let's make long story short: i will wait till tomorrow and update database and next time update both.

 

tax:

 

06D9=0,destroy_all_defined_trains

all defined trains will disappear even onscreen

 

p.s. can i edit database entries or i have to post here to original discoverers of some codes. some codes have can be changed in their description.

 

 

 

Edit: more

 

056A=0, cutscene_interrupted

returns 1 when played cutscene broken with space or mouse, X nad so on

 

07DD=2,set_actor %1d% temper_to %2h%

P1: $ActID

P2: Int

 

08AF=2,set_actor %1d% health_indicator_to %2d%

color health indication above actors head when targeting, originally 100 for green as max health. when changing energy of an actor you should use this code with same value you used for energy.

P1: $ActID

P2: Int

 

0925=0,restore_camera_to_last_used_ingame

restores camera parameters to last status from gameplay before camera has been set in different position or on different target point. it resets as well 092F and 0930 settings to 0

 

092F=1,lock_camera_target_point %1h%

more complicated than my description, however fits. maybe someone can bring something better

P1: 0 for unlocked, 1 for locked

 

0930=1,lock_camera_position %1h%

more complicated than my description, however fits. maybe someone can bring something better

P1: 0 for unlocked, 1 for locked

 

020d=1, car %1d% not_derailed

is the expression NOT_DERAILED good for [not(toutching the ground, but not with any of the wheels)]?.

020d originally was named "flipped" but that is just a mistake

 

 

Edit: more

 

06C4=2,for_existing_object %1d% create_radar_icon %2d%

creates a small circle on the map for object P1. created icon will be identified now as marker P2.

 

068D=3,store_camera_position_to %1d% %2d% %3d%

returns X, Y, Z coordinates for present location of the camera. floats naturally

 

0933=0, is_camera_position_manipulated

;example code 0936 is in progress. does not react to changes from actor nor camera movement from mouse or keyboard, teleport or whatsoever.

 

0934=0, is_camera_target_point_manipulated

;example code 0920 is in progress. as above code.

 

 

Edit: more

 

0952=1,load_soundtrack %1h%

example music when dancing, intro parts 3 speech and so on. P1: int of course

 

0954=0,start_playing_loaded_soundtrack

starts playback, does not require delay for loading, simply queued

 

0955=0,end_playing_loaded_soundtrack

stops and unloads

 

09C8=0, subtitles_switched_on

returns 1 when subtitles are ON in menu

 

060F=2,set_actor %1d% handcombat_accuracy_to %2d%

$actorID, float. set to 0.0 makes actor simply miss with all his attacks.

 

 

Edit: more

 

05F6=7, actor %1d% in_rectangle_ll_corner %2d% %3d% lr_corner %4d% %5d% height %6d% unknown %7h%

P: $actorID, $float, $float, $float, $float, $float, int

P2,P3- X,Y coordinates of lower left corner. P4,P5- X,Y coordinates of lower right corner. vector x1,y1 to x2,y2 will be base. negative height swaps lower left and right corner.

 

05F7=7, actor %1d% onfoot_in_rectangle_ll_corner %2d% %3d% lr_corner %4d% %5d% height %6d% unknown %7h%

P: $actorID, $float, $float, $float, $float, $float, int

as above

 

05F8=7, actor %1d% incar_in_rectangle_ll_corner %2d% %3d% lr_corner %4d% %5d% height %6d% unknown %7h%

P: $actorID, $float, $float, $float, $float, $float, int

as above

 

05F9=7, actor %1d% stopped_in_rectangle_ll_corner %2d% %3d% lr_corner %4d% %5d% height %6d% unknown %7h%

P: $actorID, $float, $float, $float, $float, $float, int

as above

 

05FA=7, actor %1d% onfoot_stopped_in_rectangle_ll_corner %2d% %3d% lr_corner %4d% %5d% height %6d% unknown %7h%

P: $actorID, $float, $float, $float, $float, $float, int

as above

 

05FB=7, actor %1d% incar_stopped_in_rectangle_ll_corner %2d% %3d% lr_corner %4d% %5d% height %6d% unknown %7h%

P: $actorID, $float, $float, $float, $float, $float, int

as above

 

05FC=9, actor %1d% in_cube_fll_corner %2d% %3d% %4d% fur_corner %5d% %6d% %7d% depth %8d% unknown %9h%

P: $actorID, $float, $float, $float, $float, $float, $float, $float, int

P2,P3,P4- X,Y,Z coordinates of front lower left corner. P5,P6,P7- X,Y,Z coordinates of front upper right corner. vector x1,y1 to x2,y2 will be base of rectangle and P8 will act its height. negative value of P8 swaps lower left and right corner of rectangle, which will be finally used as basis for the net of a cube. difference between Z1 and Z2 creates height of considered cube.

 

05FD=9, actor %1d% onfoot_in_cube_fll_corner %2d% %3d% %4d% fur_corner %5d% %6d% %7d% depth %8d% unknown %9h%

P: $actorID, $float, $float, $float, $float, $float, $float, $float, int

as above

 

05FE=9, actor %1d% incar_in_cube_fll_corner %2d% %3d% %4d% fur_corner %5d% %6d% %7d% depth %8d% unknown %9h%

P: $actorID, $float, $float, $float, $float, $float, $float, $float, int

as above

 

05FF=9, actor %1d% stopped_in_cube_fll_corner %2d% %3d% %4d% fur_corner %5d% %6d% %7d% depth %8d% unknown %9h%

P: $actorID, $float, $float, $float, $float, $float, $float, $float, int

as above

 

0600=9, actor %1d% onfoot_stopped_in_cube_fll_corner %2d% %3d% %4d% fur_corner %5d% %6d% %7d% depth %8d% unknown %9h%

P: $actorID, $float, $float, $float, $float, $float, $float, $float, int

as above

 

0601=9, actor %1d% incar_stopped_in_cube_fll_corner %2d% %3d% %4d% fur_corner %5d% %6d% %7d% depth %8d% unknown %9h%

P: $actorID, $float, $float, $float, $float, $float, $float, $float, int

as above

 

03C7=1,set_sensitivity_to_crime %1d%

suggesting here changed description to more accurate one because it really concerns not density. set it to 100.0 and killing one cop gives you few stars up to 6 sometimes. (it was "maybe_cops_density" before)

 

 

Edit: more

 

091D=6,remove_forbidden_for_boats_cube %1d% %2d% %3d% %4d% %5d% %6d%

P: $float, $float, $float, $float, $float, $float

X1, Y1, Z1, X2, Y2, Z2

 

091E=6,create_forbidden_for_boats_cube %1d% %2d% %3d% %4d% %5d% %6d%

P: $float, $float, $float, $float, $float, $float

X1, Y1, Z1, X2, Y2, Z2

 

09B2=3,get_random_available_carmodel %1h% model %2d% dorlock %3d%

P: int, $carmodel $int

returns available to create immidiatelly P2- #carmodel no (as loaded by engine or script) and returns P3 as $int in range 0-2

 

068E=3,store_camera_target_point_to %1d% %2d% %3d%

P: $float, $float, $float

X,Y,Z coordinates

 

 

Edit: more

 

09D0=1, car %1d% on_wheels

simply returns 1 when car is on wheels (all of them)

 

06DB=0,destroy_all_trains

makes dissapear random and defined trains

 

05F1=2,vehicle %1d% follow_vehicle %2d% keep_9o_clock

makes vehicle follow and keep short distance. following wehicle will try to stay on 9o clock. it is a porly equipped code and requires some presettings like behaviour in traffic, max velocity, handling and so on. in its default the code forces vehicle to wach out for traffic, traffic lights, pedestrians, police...

 

05F2=2,vehicle %1d% follow_vehicle %2d% keep_3o_clock

as above, just 3o clock

 

05F3=2,vehicle %1d% follow_vehicle %2d% keep_6o_clock

as above, just 6o clock

 

05F4=2,vehicle %1d% follow_vehicle %2d% keep_12o_clock

as above, just 12o clock

 

 

Edit: more

 

06E1=6,actor %1d% using_car %2d% target_car %3d% with_order %4h% max_speed %5d% traffic %6h%

$actorID, $carID, $targetcarID, int, float, int

P1- can be set to -1 when defining sequence, actor does not need to be boarded, however he has to be in range <30m from car-P2 so he can board the car. if car heavy damaged or out of range actor will try to obtain another vehicle.

P2- carID which actor-P1 will use to follow order

P3- carID that is going to be target, leaving -1 here brings unexpected behaviour like actor drive or run away from PLAYER

P4- order code

P5- max velocity, it is overrided to unlimited or default by some order-P4 and some traffic-P6

P6- behaviour when traffic present, some order-P4 overwrite this flag

mind that order code sometimes requires special carID to be used. do not mix here, it will not crash game or whatsoever, however it leads to unnormal situations like maverick shots with hellfires. someone named already codes wrongly using this schema. why is it wrong? mind that P4 defines not only things - like onboard weapons - it also defines all and handling factors like thrust, drag also collision data so use it wisely to achieve optimal handling.

improve handling for light and fast vehicles it helps them to go back on track.

P4:

no-vehicle type, action type, primary target

1-any ground vehicle, drive randomly

2,3,21- any ground vehicle, ram - kill, PLAYER

4,5,6- any ground vehicle, intercept - block road - wait for move, PLAYER

8,12,13,14,24,33- any ground vehicle, drive to X=0 Y=0 only non urban areas

15,16,54,55- any ground vehicle, ram - destroy, VEHICLE

17,18,19,26- any ground vehicle, intercept - block road, PLAYER

20- any small heli, fly to X=0 Y=0

22- jet planes, fly around, PLAYER

23,56- hunter, hellfires hot - kill, PLAYER

29,65- any ground vehicle, keep 2m distance - keep 9o clock, PLAYER

30,66- any ground vehicle, keep 2m distance - keep 3o clock, PLAYER

31,67- any ground vehicle, keep 2m distance - keep 6o clock, PLAYER

32,68- any ground vehicle, keep 2m distance - keep 12o clock, PLAYER

35,62,63- hydra, hellfires hot - destroy, VEHICLE

36- planes, fly west

37- planes, fly around, VEHICLE

38- any heli, fly west

39,41- small heli, hover above, PLAYER

40- maverick, activate searchlight&snipers - destroy, VEHICLE

42- any heli, fly away in random direction

43,44,52,53 - anycar, stick close - follow, PLAYER

47,48- small heli, fly to X=0 Y=0 - land

51- heli, fly around, VEHICLE

59- plane, fly away in random direction

60,61,64- any ground vehicle, intercept - drive in circle around target, PLAYER

P5:

no- to traffic lights - behaviour, to traffic obstacles - behaviour (cars ahead and oncoming traffic included)

0,4- watch, wait for clear route

1- watch, push away

2,5- ignore, find way around or intercept or avoid

3,7- ignore, ram into

6- watch, find way around or intercept or avoid

 

 

Edit: more

 

06B3=1, searchlight %1d% active

 

06B7=2, searchlight %1d% spotted_actor %2d%

 

0A02=2,set_searchlight %1d% visible_thru_obstacles %2h%

as well solid and as well not solid

 

081E=1, modelID %1d% is_boat

 

081F=1, modelID %1d% is_plane

 

0820=1, modelID %1d% is_heli

 

0A01=1, modelID %1d% is_minimum_4wheels_vehicle

 

 

Edit: more

 

since there is big mess with stats codes, mistakes, wrong names (do not mean 0623,0624) nad not all has been discovered here you have correct meaning for opcodes necessary to mess with stats

 

042E=2,downdate_stat %1d% to %2d% ;; integer values

0582=2,downdate_stat %1d% to %2d% ;; integer values

0623=2,increase_stat %1d% by %2d% ;; integer values

0624=2,increase_stat %1d% by %2d% ;; floating-point values

0625=2,decrease_stat %1d% by %2d% ;; integer values

0626=2,decrease_stat %1d% by %2d% ;; floating-point values

0627=2,update_stat %1d% to %2d% ;; integer values

0628=2,update_stat %1d% to %2d% ;; floating-point values

0629=2,change_stat %1d% to %2d% ;; integer values

062A=2,change_stat %1d% to %2d% ;; floating-point values

all comands have same:

P1: Int or $localInt or $globalInt

;; integer values commands have same

P2: Int or $localInt or $globalInt

;; floating-point values commands have same:

P2: Float or $localFloat or $globalFloat

 

downdate means: change when present value greater than P2

update means: change when present value smaller than P2

042E can be used instead 0582 and vice versa

 

 

Edit: more

 

 

0699=2,vehicle %1d% repair_tire %2h%

requires to specify tire number (0 and above)

 

071E=2,get_object %1d% mass %2d%

returns mass in Kg as Int

 

0665=2,get_actor %1d% modelID %2d%

returns modelID

 

072A=2,teleport_actor %1d% into_driverseat_in_car %2d%

driverseat does not need to be free

 

072B=3,teleport_actor %1d% into_car %2d% passengerseat %3d%

seat can be occupied, -1 teleports to first free passengerseat

 

0731=2,set_vehicle %1d% Y_angle %2d%

0 degree on OX

 

073E=6,get_random_vehicle %6d% with_modelID %5h% within_sphere_with_center_at %1d% %2d% %3d% radius %4d%

P6 can be set to -1 in order to expand searching criteria to all possible models. vehicles controlled by another parts of script can not be assigned by this command

 

073F=8,get_random_pedestrian %8d% within_sphere_with_center_at %1d% %2d% %3d% radius %4d% unknown %5h% %6h% %7h%

works with normal peds and crew of randomly spawned civilian vehicles.

 

0743=6,heli %1d% fly_to_coordinates %2d% %3d% %4d% altitude %5d% %6d%

used for RC heli but can be used with others

Edited by PLPynton

Share this post


Link to post
Share on other sites
tomworld10

Hi,

 

Wow PLPynton you're just doing awesome work !!!!!

 

 

About the opcode database for the ones that ain't listed like 04B0 you got to send an email to SA-db(at)webtools4you.net saying to TbM2k that they ain't listed, TbM2k will update it (when I did he did it fast) and once the database is updated (and only once it's updated otherwise it won't save it) add the description.

 

If you did all that and waiting for the database update just disregard what've just said.

 

Anyway not updating the database is not a crime and doesn't depreciate at all the outstanding job you're doing.

 

here are the ones used in "Bike dealer shop"

 

0964: create_square_color_panel 'CARM1' position 29.0 45.0 width 25.7 columns 8 interactive 1 background 1 alignment 1 panelID = $PANELID

 

P: 'CARM1' (colors) $float1 $float2 $float3 (I don't know what they are probalby similar to 08D4) $rows(int) $int1 $int2 $int3 (?? but probalby similar to 08D4) $panelID;

If use with the default parameters you will have the color panel you get when you mod your car. 9 parameters.

 

0A22: set_car_color_to_panel_color $PANELID $CarID $colorslot(int, 1 or 2)

 

works with 0964 and will paint the car with the color your are selecting just like it does when you change color at the mod shop. It won't change the color back to normal after.

 

 

This one was found a while ago but I never posted it here :

066a=10; attach_particle_to_actor2

 

P: #particle, $actorID, $oX, $oY, $rotZ, $rotX2, $rotY2, $rotZ2, 1, $paticleID

- Attaches a particle to the actor with offset points and rotation angles. Goes with 064C.

WATCH OUT somehow sometimes it seems that you have to put $particleID as first parameter, if it makes the game crash swap it around

eg: 066A: [email protected] = attach_particle "PETROLCAN" to_actor $PLAYER_ACTOR offset 0.0 0.58 -0.08 0.0 0.01 0.0 1 // this create the particules that make the little drops tahnks to spaceeinstein to find 0669 which is really close to it

 

 

Have fun

Edited by tomworld10

Share this post


Link to post
Share on other sites
PLPynton

hi,

well i've sent them an email, waiting now. i will not update as long as i have to face some problems. frankly speaking i have only a bit of time and that is when she isn't looking... i will place codes finally there, just not now. btw thanks and keep up yours as well.

 

076D=3,get_zone %1d% controlled_by_gang %2d% density_to %3d%

 

0835=2,get_day_in_game %1d% unknown_get %2d%

counted in gametime, maybe second value is counted in real time

 

0810=9,in_cube %1d% %2d% %3d% %4d% %5d% %6d% get_from_random_parkplace_to_coordinates %7d% %8d% %9d%

while it creates coordinates for place to park a car, it will create coordinates of XYZ Origin always when: no parkplace available, not in underground parking, area of cube not rendered, lower corner above ground or upper corner below ground.

 

077B=3,set_actor %1d% neutral_to_pedgroup %2h% type %3h%

 

08C7=4,teleport_actor %1d% to_coordinates %2d% %3d% %4d%

 

 

Edit: more

 

07A3=4,AS_actor %1d% run_to_and_follow_actor %2d% wait_radius_between %3d% and %4d%

P3,P4 are float or $localFloat or $globalFloat

waits for target actor to move when closer than radius

 

074D=3,AS_actor %1h% turns_to_and_look_at_actor %2d% time %3h%

 

0751=8,AS_actor %1d% flee_from_actor %2d% run_distance %3d% time %4d% unknown %5h% %6d% %7d% away_radius %8d%

 

06A8=5,AS_actor %1h% run_to_and_look_at_actor %2d% time %3h% approach_distance %4d% approach_angle %5d%

 

07CD=6,AS_actor %1d% walk_to_coordinates %2d% %3d% %4d% stop_with_angle %5d% within_radius %6d%

 

0772=4,AS_actor %1h% run_to_car %2d% time %3d% stop_at_distance %4d%

 

 

Edit: more

 

0612=3,set_actor %1d% animation %2h% paused %3h%

paused as 1

 

0614=3,set_actor %1d% animation %2h% progress_to %3d%

P3- float or $localFloat or $globalFloat in range 0.0 to 1.0

 

0836=3,set_object %1d% animation %2h% at %3d% times_normal_rate

P3- float or $localFloat or $globalFloat

 

0837=2, object %1d% animation == %2h%

 

0839=3,get_object %1d% animation %2h% progress_to %3d%

P3- $localFloat or $globalFloat in range 0.0 to 1.0

 

083A=3,set_object %1d% animation %2h% progress_to %3d%

P3- float or $localFloat or $globalFloat in range 0.0 to 1.0

 

0804=14,actor %1d% walk_to %2d% %3d% %4d% stop_angle %5d% %6d% perform_animation %7h% file %8h% %9d% loop %10h% %11h% %12h% lock %13h% time %14h%

P2,P3,P4,P5- float or $localFloat or $globalFloat

 

0812=9,actor %1h% perform_animation %2h% from_file %3h% %4d% loop %5h% %6h% %7h% lock %8h% time %9h%

 

0829=5,actor %1d% perform_animation %2h% from_file %3h% %4d% time %5h% and_dies

yes he dies after and even $Player_Actor will.

 

 

Edit: more

 

0604=3,get_point %1d% %2d% angle %3d%

P1: float or $localFloat or $globalFloat

P2: float or $localFloat or $globalFloat

P3: $localFloat or $globalFloat

returns P3- angle in degrees. example: returns x_angle for point with coordinates (y;z), where angle is measured from axis OZ in this case.

 

07DB=4,apply_rotary_impulse_to_vehicle %1d% about_an_axis_X %2d% axis_Y %3d% axis_Z %4d% through_center_of_mass

07DA=4,apply_rotary_impulse_to_vehicle %1d% about_an_axis_X %2d% axis_Y %3d% axis_Z %4d% through_center_of_body

P1: vehicleID

P2: float or $localFloat or $globalFloat

P3: float or $localFloat or $globalFloat

P4: float or $localFloat or $globalFloat

one new, one old changed to correct meaning. negative values mean pull force while positive means push

 

07D5=7,apply_momentum_to_vehicle %1d% in_direction_X %2d% direction_Y %3d% direction_Z %4d% %5d% %6d% %7d%

P1: vehicleID

P2: float or $localFloat or $globalFloat

P3: float or $localFloat or $globalFloat

P4: float or $localFloat or $globalFloat

P5: float or $localFloat or $globalFloat

P6: float or $localFloat or $globalFloat

P7: float or $localFloat or $globalFloat

meaning corrected. negative values mean push force while positive means pull

 

06A2=4,get_vehicle %1d% velocity_in_direction_X %2d% direction_Y %3d% direction_Z %4d%

P1: vehicleID

P2: $localFloat or $globalFloat

P3: $localFloat or $globalFloat

P4: $localFloat or $globalFloat

 

083C=4,apply_momentum_to_actor %1d% in_direction_X %2d% direction_Y %3d% direction_Z %4d%

P1: actorID

P2: float or $localFloat or $globalFloat

P3: float or $localFloat or $globalFloat

P4: float or $localFloat or $globalFloat

meaning corrected. negative values mean push force while positive means pull, works in air as original founder said. furthermore all codes which are destinated to apply force to any point have to get condition like reduced friction to work, like when actor performs jump, falls, car slides, object airbone or bounce...

 

083D=4,get_actor %1d% velocity_in_direction_X %2d% direction_Y %3d% direction_Z %4d%

P1: vehicleID

P2: $localFloat or $globalFloat

P3: $localFloat or $globalFloat

P4: $localFloat or $globalFloat

 

p.s. it is all about anticipation isn't it? so... @everybody and everyone: when you see line "meaning corrected" or "name corrected" you have 2 choices. a- take old name and description, b- take my description. personally and actually i do not care so do not bother pls

 

 

Edit: more

 

these were in progress but i will post as i do not have time to... describe

 

07C3=5,get_object %1d% axies_angle_relation_to %2d% %3d% %4d% %5d%

07C5=5,get_vehicle %1d% axies_angle_relation_to %2d% %3d% %4d% %5d%

P1: vehicleID

P2: $localFloat or $globalFloat

P3: $localFloat or $globalFloat

P4: $localFloat or $globalFloat

 

07C4=5,set_object %1d% axies_angle_relation_to %2d% %3d% %4d% %5d%

07C6=5,set_vehicle %1d% axies_angle_relation_to %2d% %3d% %4d% %5d%

P1: actorID

P2: float or $localFloat or $globalFloat

P3: float or $localFloat or $globalFloat

P4: float or $localFloat or $globalFloat

 

it is all about math here. if you do get what happens to sinus when you shift it, or why it can get broken and become simetrical about OX or OY - please do not ask questions. well it is too hard to put it in english for me.

what the code does? to get to the point you have to mind codes like set_Z or X or Y angle. what they do is they change objects angle X Y or Z. there is a bypass of their work, wanted or unwanted depends. in that point you will notice that for ex. changing of an angle Z of a car to another will reset angle X and Y back to 0. what this code(s) does is setting all 3 at once.

frankly speaking if there is a math freaking expert here: show up and show us what you got.

 

 

Edit: more

 

0866=5,get_object %5d% in_sphere_with_center_at %1d% %2d% %3d% radius %4d%

 

08B3=1,set_zone %1g% as_only_one_available_for_gangwars

resets all other zones to not war zones

 

08AC=1,hide_zones_on_map %1h%

it will hide color for zones with 0 and bring back with 1

 

0874=2,set_zone %1g% popcycle_group_for_peds_to %2h%

that is the real code for to change ped group in zone.

 

0767=2,set_zone %1g% popcycle_group_for_peds_and_vehicles_to %2h%

see pedgrp.dat for details. as above all vehicles are changed to specified by ped class.

 

076A=2,set_zone %1g% wealth_to %2h%

P2- int or $localInt or $globalInt

was wrongly named as pedgroup or something. acrually it changes welath (citizens) for defined zone. it has obviously then influence on gang strenght in the zone- as wealthy the zone is as weak the gang becomes.

 

076B=2,get_zone %1d% wealth_to %2d%

P2- $localInt or $globalInt

returns as above

 

 

Edit: more

 

08EB=7,create_sparks_at_coordinates %1d% %2d% %3d% directionX %4d% directionY %5d% directionZ %6d% density %7h%

directions XYYZ are basically velocities to estabilish vector for them so they can be negative

 

08F1=4,get_zone_string %4d% from_coordinates %1d% %2d% %3d%

pretty clear

 

089E=5,get_random_zone_pedgroup_ped %5d% in_sphere_with_center_at %1d% %2d% %3d% radius %4d%

onfoot or onboard of any vehicle. basically 0767&076C members in zone are taken into consideration here. police ect. or 0874 aren't.

 

05D2=4,AS_actor %1d% run_to_and_hijack_vehicle %2d% max_search_radius %3d% traffic_behaviour %4h%

P3: float or $localFloat or $globalFloat - means maximum radius of circle within car P2 has to be or alternative car in search area will be taken as target. taken cars are also objectives for hijacks here.

 

06FF=2, any_actor_near_actor %1d% in_range %2d%

P2: float or $localFloat or $globalFloat

pretty clear

 

0855=5,get_noise_level %5d% at_coordinates %2d% %3d% %4d% unknown %1h%

P5: $localFloat or $globalFloat

p6 could be a vehicle but too deep and no time to ensure

 

07E1=4,AS_actor %1d% swim_to_coordinates %2d% %3d% %4d%

it might have been posted

 

 

Edit:more

 

0806=2,get_char %1d% kills_from_last_checkpoint %2d%

peoples killed using weapons (including handcombat kills).

 

0A16=2,link_wav %1h% to_car %2d%

 

08A7=2, vehicle %1d% component %2h% opened_or_not_present

 

0969=1, vehicle %1d% is_non_civilian_vehicle

 

095E=4,vehicle %1d% component %2h% manipulation %3h% value %4d%

P3: 0-lock axis of rotation 1-close component (by driver ex.) 2-put back on place when not present or smash 3-set free axis of rotation 4- damage completely

 

0966=2,get_actor %1d% swimming_status %2d%

P2: 0-stopped 1-swims 2-swims fast 3-starts to dive 4-underwater

 

Edited by PLPynton

Share this post


Link to post
Share on other sites
Bigun

 

I seem to have a problem with this new SASCM.ini, if I compile anything with it installed it compiles fine but the game always crashes. Hell, I tried decompiling the original main.scm then recompiling with this SASCM and even that crashes. Am I the only one with this issue? confused.gif

 

I guess old code with old SASCM's isn't compatible with a new. Any quick convienent way to convert the code for new ini's?

I guess compiling with old ini then decompiling with new..

Edited by Bigun

Share this post


Link to post
Share on other sites
PLPynton

 

I seem to have a problem with this new SASCM.ini, if I compile anything with it installed it compiles fine but the game always crashes. Hell, I tried decompiling the original main.scm then recompiling with this SASCM and even that crashes. Am I the only one with this issue? confused.gif

 

I guess old code with old SASCM's isn't compatible with a new. Any quick convienent way to convert the code for new ini's?

I guess compiling with old ini then decompiling with new..

you are right,

1. compile code with old

2. close builder

3. swap to new

4. open builder and decompile

it is because parameters in commands have to be sometimes in different order for sake of their description.

 

Edit. if you decompile in other way nothing happens. code description comes from sascm.ini. label names... no influence on them. only what matters are code parameters- order and quantity. the fact how the opcode is described does not have any impact on output as long as description have allowed form for MB

Edited by PLPynton

Share this post


Link to post
Share on other sites
Bigun

Thanks for the clarification. Though, won't decompiling like that screw around the label names and stuff? From what I've read seems it does.

Share this post


Link to post
Share on other sites
PLPynton

here's my tax. i found these opcodes really useful.

 

07DE=1, modelID %1d% is_valid_modelID

simply checks if it exists in database. will be helpful when picking up random model in wide range

 

095F=3,vehicle %1d% component %2h% get_rotation %3d%

if you like to know actual rotation of components in vehicle

 

08A6=3,vehicle %1d% component %2h% set_rotation %3d%

as above just to set

 

02f8=2,vehicle %1d% get_Z_angle_sinus %2d%

returns sinus of Z angle

 

02f9=2,vehicle %1d% get_Z_angle_cosine %2d%

returns cosine of Z angle

 

04A3=2, %1d% == %2d% ;; integer values OR floating-point values

- P1 = P2?

as posted by me some time before 04A4 i have missed it

Share this post


Link to post
Share on other sites
Kamazy

 

 09c7: change_player_model $PLAYER_CHAR (Ped ID)

 

 

Should be used like this.

 

 

:MLOAD0247: request_model 106 <------ load model 106 "fam2"(in memory):Cskin0001: wait 250 ms <------- Wait 250 ms00D6: if  0 <------ start if0248: is_model_available 106 <------checks if the model was loaded004D: jump_if_false ££Cskin <------ If model was not yet loaded wait 250 ms and check again09c7: change_player_model $PLAYER_CHAR 106 <-------After model-load checks out change cj to ped1060249: release_model 106 <------Unloads model in memory. To free up memory.

 

 

Tested over 30 times with no problems.

 

I did find this here but then i tryed it it crashed GTA so this shows how to use it. (for noobs like me tounge2.gif )

Edited by Kamazy

Share this post


Link to post
Share on other sites
Bigun

You should also remove fat & muscle changes in the game, since only CJ's model can change according to those stats, if you use this opcode and your fat/muscle changes you will become a mixed, bugged CJ tounge.gif

Share this post


Link to post
Share on other sites
spaceeinstein
02f8=2,vehicle %1d% get_Z_angle_sinus %2d%

returns sinus of Z angle

Sinus? Isn't it suppose to be sine?

Share this post


Link to post
Share on other sites
GodGell
02f8=2,vehicle %1d% get_Z_angle_sinus %2d%

returns sinus of Z angle

Sinus? Isn't it suppose to be sine?

Only in english. smile.gif

Share this post


Link to post
Share on other sites
Y_Less

Which most of the people in gta modding speak, and all the people on this forum. Thus, as Space said, shouldn't it be sine?

Share this post


Link to post
Share on other sites
PLPynton

at least, i am glad you find something as it was suppose to be challenge for you.

subject closed.

 

tax:

09BF=1,random_vehicle_generator_lock_on_modelID %1t%

concerns all randomnly spanwed vehicles except scripted car generators and 076C assignment. load model before.

 

Edited by PLPynton

Share this post


Link to post
Share on other sites
GodGell
Which most of the people in gta modding speak, and all the people on this forum. Thus, as Space said, shouldn't it be sine?

I guess so. I just pointed out that Sinus is the more logical name since it's used everywhere else. But I really couldn't care less. smile.gif

Share this post


Link to post
Share on other sites
spaceeinstein

---

Edited by spaceeinstein

Share this post


Link to post
Share on other sites
Craig Kostelecky

Thanks space, my copy of the builder has now been updated.

Share this post


Link to post
Share on other sites
PLPynton

@spaceeinstein, Craig Kostelecky

as i see you two could be most interested in that what i have to say.

 

i have a larger database of opcodes than database shared at the moment here. at the moment i am not sure but there is about 200 unknown opcodes already found and described. i could share it but with 2 conditions:

A- we bring back original order of parameters for every opcode and we stick to that to avoid any further compatibility problems. frankly speaking i am tired to post code using forums database.

B- we stick to original rockstars description for opcodes as close as possible. (i.e. when you look at original source code from rockstars there is a lot of differences, unnecessary i am afraid to say. why is char named actor, why is player named char, why is fxsystem named particle...)

there is finally option C where we you say Pynton we do not need your help and i will remain passive.

 

speaking about which, the unified database i am trying to introduce to you is half way done as i have got a little time during weekend. it has about 105Kb but that shouldn't be a problem yet.

 

kind regards for both of you.

 

Edit: @all: your opinion matters the most!

Edited by PLPynton

Share this post


Link to post
Share on other sites
Seemann

I think it will be terrible. There are the tons of code that using of such params order, and real code compatibility problems begins if we start to change this.

And using of the non-engine order increases the code readability:

 

 

0053: $PLAYER_CHAR = create_player #NULL at 811.875 -939.9375 35.75 // MB syntax$player_char = Player.Create(#NULL, 811.875, -939.9375, 35.75) // SB syntax

 

 

is better than

 

 

0053: create_player #NULL, 811.875, -939.9375, 35.75, $PLAYER_CHAR // gtama syntax

 

 

Also, Sanny Builder's class system is based upon such order. If it changes there will be REAL compatibility problems.

 

I think it would be better to create code converter for updated inis that will detect all ini's changes and remake old scripts (change param's order, add new descriptions, etc).

 

 

It's my opinion.

Share this post


Link to post
Share on other sites
PLPynton

i think you could missunderstood the point, while the real compactibility problems begins when unknown opcode is found and named using wrong order of parameters. if you stick to original order there will be compactibility issue once in the lifetime. because you can not forsee what will be order of parameters in unknown opcode you create hazard always when name unknown command using your own order of parameters.

 

here is your example using rockstars way powered up a bit:

 

 

0053=5,create_player_with_modelID %1t% at_3D_coord %2d% %3d% %4d% handle_as %5d%0053: create_player_with_modelID #NULL at_3D_coord  2488.562 -1666.864  12.8757 handle_as $PLAYER

 

 

SB will fly intact. it has code conversion feature.

 

edit: deleted because too deep.

 

sometimes we have to forget what we have learned to grow up. sometimes we have to start over again. but again, that is just me.

Edited by PLPynton

Share this post


Link to post
Share on other sites
Y_Less

TBH putting conditions on your help is the most closed minded thing you could ever do. Many many people before you have done so much more than you and never asked for anything or put any conditions on their help so just for that fact I would say we don't need your help, it's too much effort to obtain.

Share this post


Link to post
Share on other sites
PLPynton

i am really disappointed about your behaviour. you should be the first one to notice how noble it was from my side to request so much. use your words wisely in the future please as i am trying to help. what is this? middle ages? "we" want to stop progress at all costs? "you can not beg the sun for mercy" as they say.

p.s. what i wrote before was not ment to be offensive or whatsoever.

Edited by PLPynton

Share this post


Link to post
Share on other sites
Y_Less

Setting conditions on help which other people offer for free is not noble in any way. You could suggest that, that would be fine, they're not even bad ideas and are what R* appear to do, but demanding it in return for your help is not the way to go about things.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • 1 User Currently Viewing
    0 Members, 0 Anonymous, 1 Guest

×

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.