Quantcast

Jump to content

» «
Photo

GTA:SA Opcodes

874 replies to this topic
jarjar
  • jarjar

    Boss

  • BUSTED!
  • Joined: 07 Aug 2005

#421

Posted 16 April 2006 - 12:59 AM

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

spaceeinstein
  • spaceeinstein

    Chocolate

  • GTA Mods Staff
  • Joined: 17 Jul 2003
  • Hong-Kong
  • Major Contribution Award [Mods]
    Helpfulness Awards [Mods]

#422

Posted 16 April 2006 - 01:37 PM

SASCM.INI Update

Demarest
  • Demarest

    what could be

  • BUSTED!
  • Joined: 12 Jul 2003

#423

Posted 16 April 2006 - 01:53 PM

Mirrored.

jarjar
  • jarjar

    Boss

  • BUSTED!
  • Joined: 07 Aug 2005

#424

Posted 17 April 2006 - 12:54 AM

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

PLPynton
  • PLPynton

    Player Hater

  • Members
  • Joined: 09 Jul 2005

#425

Posted 17 April 2006 - 09:43 AM Edited by PLPynton, 27 April 2006 - 08:14 PM.

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

DeeZire
  • DeeZire

    Modder

  • Members
  • Joined: 22 Jun 2005
  • None

#426

Posted 17 April 2006 - 07:00 PM

Can somebody else test this to confirm it please?

CODE

08F0: apply_txd_texture a$ to_dff_model b$


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

CODE

08F0: apply_txd_texture 'GANGRL3' to_dff_model 'GFRIEND'





PLPynton
  • PLPynton

    Player Hater

  • Members
  • Joined: 09 Jul 2005

#427

Posted 19 April 2006 - 06:04 PM Edited by PLPynton, 20 April 2006 - 07:55 AM.

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.

tomworld10
  • tomworld10

    Mark Chump

  • Members
  • Joined: 29 Jun 2005

#428

Posted 20 April 2006 - 05:28 PM Edited by tomworld10, 06 May 2006 - 06:17 PM.

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

PLPynton
  • PLPynton

    Player Hater

  • Members
  • Joined: 09 Jul 2005

#429

Posted 20 April 2006 - 08:45 PM Edited by PLPynton, 01 May 2006 - 12:54 AM.

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

tomworld10
  • tomworld10

    Mark Chump

  • Members
  • Joined: 29 Jun 2005

#430

Posted 01 May 2006 - 03:15 PM Edited by tomworld10, 01 May 2006 - 04:29 PM.

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: 17@ = 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

PLPynton
  • PLPynton

    Player Hater

  • Members
  • Joined: 09 Jul 2005

#431

Posted 01 May 2006 - 08:37 PM Edited by PLPynton, 06 May 2006 - 07:17 AM.

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

Bigun
  • Bigun

    wandering about

  • Members
  • Joined: 10 Jul 2004

#432

Posted 06 May 2006 - 10:31 AM Edited by Bigun, 06 May 2006 - 11:32 AM.

QUOTE (spaceeinstein @ Apr 16 2006, 13:37)
SASCM.INI Update

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..

PLPynton
  • PLPynton

    Player Hater

  • Members
  • Joined: 09 Jul 2005

#433

Posted 06 May 2006 - 03:58 PM Edited by PLPynton, 07 May 2006 - 08:15 PM.

QUOTE (Bigun @ May 6 2006, 10:31)
QUOTE (spaceeinstein @ Apr 16 2006, 13:37)
SASCM.INI Update

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

Bigun
  • Bigun

    wandering about

  • Members
  • Joined: 10 Jul 2004

#434

Posted 07 May 2006 - 07:38 PM

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.

PLPynton
  • PLPynton

    Player Hater

  • Members
  • Joined: 09 Jul 2005

#435

Posted 16 May 2006 - 07:00 PM

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

Kamazy
  • Kamazy

    I Do It All Baby!

  • Members
  • Joined: 07 May 2006

#436

Posted 19 May 2006 - 01:00 AM Edited by Kamazy, 19 May 2006 - 01:05 AM.

CODE
09c7: change_player_model $PLAYER_CHAR (Ped ID)


Should be used like this.

CODE


:MLOAD
0247: request_model 106 <------ load model 106 "fam2"(in memory)

:Cskin
0001: wait 250 ms <------- Wait 250 ms
00D6: if  0 <------ start if
0248: is_model_available 106 <------checks if the model was loaded
004D: jump_if_false ££Cskin <------ If model was not yet loaded wait 250 ms and check again
09c7: change_player_model $PLAYER_CHAR 106 <-------After model-load checks out change cj to ped106
0249: 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 )

Bigun
  • Bigun

    wandering about

  • Members
  • Joined: 10 Jul 2004

#437

Posted 19 May 2006 - 01:02 PM

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

spaceeinstein
  • spaceeinstein

    Chocolate

  • GTA Mods Staff
  • Joined: 17 Jul 2003
  • Hong-Kong
  • Major Contribution Award [Mods]
    Helpfulness Awards [Mods]

#438

Posted 19 May 2006 - 07:02 PM

QUOTE (PLPynton @ May 16 2006, 15:00)
02f8=2,vehicle %1d% get_Z_angle_sinus %2d%
returns sinus of Z angle

Sinus? Isn't it suppose to be sine?

GodGell
  • GodGell

    shlurp my burger, sir

  • Members
  • Joined: 31 Oct 2003

#439

Posted 20 May 2006 - 02:49 AM

QUOTE (spaceeinstein @ May 19 2006, 21:02)
QUOTE (PLPynton @ May 16 2006, 15:00)
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

Y_Less
  • Y_Less

    629

  • Members
  • Joined: 14 Mar 2004

#440

Posted 20 May 2006 - 04:08 AM

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?

PLPynton
  • PLPynton

    Player Hater

  • Members
  • Joined: 09 Jul 2005

#441

Posted 20 May 2006 - 10:45 AM Edited by PLPynton, 27 May 2006 - 12:57 PM.

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.

GodGell
  • GodGell

    shlurp my burger, sir

  • Members
  • Joined: 31 Oct 2003

#442

Posted 20 May 2006 - 02:03 PM

QUOTE (Y_Less @ May 20 2006, 06:08)
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

spaceeinstein
  • spaceeinstein

    Chocolate

  • GTA Mods Staff
  • Joined: 17 Jul 2003
  • Hong-Kong
  • Major Contribution Award [Mods]
    Helpfulness Awards [Mods]

#443

Posted 18 June 2006 - 10:57 PM Edited by spaceeinstein, 25 September 2006 - 11:08 PM.

---

Craig Kostelecky
  • Craig Kostelecky

    GTA:LC Team Leader

  • The Connection
  • Joined: 28 Jan 2004
  • United-States
  • Major Contribution Award [Mods]

#444

Posted 19 June 2006 - 01:31 AM

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

PLPynton
  • PLPynton

    Player Hater

  • Members
  • Joined: 09 Jul 2005

#445

Posted 19 June 2006 - 04:23 PM Edited by PLPynton, 19 June 2006 - 04:39 PM.

@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!

Seemann
  • Seemann

    Ruhe

  • GTA Mods Staff
  • Joined: 03 Sep 2004
  • Russia
  • Best Tool 2016 [OpenIV]
    Best Tool 2013 [Sanny Builder]
    Contribution Award [Mods]
    Helpfulness Awards [Mods]

#446

Posted 20 June 2006 - 06:57 AM

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:

CODE

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

CODE

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.

PLPynton
  • PLPynton

    Player Hater

  • Members
  • Joined: 09 Jul 2005

#447

Posted 20 June 2006 - 07:23 AM Edited by PLPynton, 20 June 2006 - 06:17 PM.

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:

CODE
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.

Y_Less
  • Y_Less

    629

  • Members
  • Joined: 14 Mar 2004

#448

Posted 20 June 2006 - 12:36 PM

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.

PLPynton
  • PLPynton

    Player Hater

  • Members
  • Joined: 09 Jul 2005

#449

Posted 20 June 2006 - 06:08 PM Edited by PLPynton, 20 June 2006 - 06:11 PM.

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.

Y_Less
  • Y_Less

    629

  • Members
  • Joined: 14 Mar 2004

#450

Posted 20 June 2006 - 07:34 PM

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.




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users