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. PC
      2. Gameplay
      3. Missions
      4. Help & Support
    2. Red Dead Online

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

      1. Recruitment
    2. Events

    1. GTA Online

      1. Diamond Casino & Resort
      2. DLC
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Grand Theft Auto Series

    3. GTA 6

    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 IV 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 SA Mods
    10. GTA Vice City

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

      1. Guides & Strategies
      2. Help & Support
      3. GTA III 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

PLPynton

Unified opcodes database

Recommended Posts

PLPynton

as promised i'am introducing to you the unified database for SA codes. it will be updated later as i do not have enough time to have all the job done in one step.

 

-it is written in original order concerning the parameters for each code. it gives the most available compatibility for you for the future updates, as my database will be always compactable with every release it has to go thru.

-it contains today more than 400 unique opcodes found and reverse engineered by me. i have more but it takes time to put it in english (as my sucks as devil himself).

-some of the codes are re-described as i believe old description simply sucks in some cases. i hope it will help starters to search thru it, look what they need as i tried to keep names more specified.

-it gives you a bit of support from my side when you encounter some problems. and believe me it means a lot today.

 

among all the changes i have done mind that it is a major change in codes for SA. unwanted as some says but what the hell. learning the fact that you have to realize mistakes (either yours or others) makes you stronger so do not hesitate to use it for coding as it could answer some of your questions.

 

do not counter strike my work if you do not like it or whatsoever. calm down and imagine how many time it had to spent to get this work done.

if you do see something wrong with it feel free to let me know.

 

DOWNLOAD SASCM.INI

 

 

have a fun with it.

Edited by PLPynton

Share this post


Link to post
Share on other sites
Demarest
-some of the codes are re-described as i believe old description simply sucks in some cases. i hope it will help starters to search thru it, look what they need as i tried to keep names more specified.

It won't help starters, it will hamper them by further fractioning something that has already gone from a unified syntax to the open ended endeavor it's become today. I'm certain most coders who have contributed have tried to keep it unified in appearance out of respect for those that laid the foundation for it and I think that is a good thing to do.

 

Don't take that as a slam as I recognize the work you're putting into this and how useful it can be. Just pointing out a potential downside.

Share this post


Link to post
Share on other sites
Kamazy

Share this post


Link to post
Share on other sites
PLPynton

i believe it willö help as the opcodes are redescribed profesionally, but well it can happen that effect is opposite.

 

here is the description for part of new and "repaired" opcodes- at least a part of them. if you like to get the rest there is about 150 in SA opcodes topis.

 

 

07EF=4,get_town_number_from_3D_coord %1d% %2d% %3d% to %4d%

0 is outside town area, 2 for SF and so on

 

07E4=7,get_model %1d% dimensionsA %2d% %3d% %4d% dimensionsB %5d% %6d% %7d%

P2-P7: $localFloat or $globalFloat

two sets of dimensions, where first one is negative in values XYZ and second set is positive XYZ, all counted from vehicle origin. or cube corners if you like so.

 

089F=2,get_actor %1d% ped_type %2d%

0=player1 ... 22=prostitute ...

 

09B9=1,print_entered_vehicle_name %1h%

disables or enables print vehicle name when entering it

 

09BA=1,print_entered_zone_name %1h%

disables or enables print zone name when entering it

 

088C=4,teleport_vehicle %1d% to_3D_coord %2d% %3d% %4d%

 

0972=4,teleport_actor %1d% to_3D_coord %2d% %3d% %4d%

 

0298=3,get_char %1d% destroyed_in_rcmode_models_ID %2d% quantity %3d%

 

05DA=6,AS_actor %1d% run_away_in_panic_from_3D_coords %2d% %3d% %4d% away_radius %5d% time %6d%

 

088A=11,actor %1d% perform_animation %2h% file %3h% unk %4d% loopA %5h% lockX %6h% lockY %7h% lockF %8h% limT %9h% unk %10h% unk %11h%

 

097A=4,play_sound_at_3D_coords %1d% %2d% %3d% reference %4d%

 

09F1=2,play_sound_at_actor %1d% reference %2d%

 

09E5=7,create_flash_light_at_3D_coords %1d% %2d% %3d% RGB_mask %4d% %5d% %6d% radius %7d%

 

09F7=2,play_sound_at_vehicle %1d% reference %2d%

 

0643=2,action_sequence %1d% loop %2h%

 

05B9=2,AS_actor %1h% stay_iddle_time %2h%

 

05F5=6,AS_actor %1d% goto_3D_coords %2d% %3d% %4d% mode %5h% time %6d% ;same as 0603

 

0603=6,AS_actor %1d% goto_3D_coords %2d% %3d% %4d% mode %5h% time %6d% ;same as 05F5

 

0637=8,AS_actor %1h% go_to_3D_coords %2d% %3d% %4d% mode %5h% unknown %6d% unknown %7d% look_at_actor %8d%

 

0634=5,AS_actor %1d% attack_using_weapon_actor %2d% unknown %3h% unknown %4d% unknown %5h%

 

05C1=2,AS_actor %1h% speaks_reference %2d%

ex. 222 will make him speak quote "request taxi"

 

0637=8,AS_actor %1h% goto_3D_coords %2d% %3d% %4d% mode %5h% turn_radius %6d% stop_radius %7d% look_at_actor %8d%

 

06BA=4,AS_actor %1d% turn_to_and_look_at_3D_coords %2d% %3d% %4d%

 

06BC=7,create_M4_shoot_from_3D_coord %1d% %2d% %3d% target_3D_coord %4d% %5d% %6d% energy %7h%

energy taken by shot as last parameter

 

06C7=4,AS_actor %1d% driver_of_vehicle %2d% perform_action %3h% time %4d%

 

06C3=5,get_number_of_fires_within_sphere_with_center_at_3D_coords %1d% %2d% %3d% radius %4d% store_to %5d%

 

0786=7,get_number_of_fires_within_cube_cornerA_at_3D_coord %1d% %2d% %3d% cornerB_at_3D_coord %4d% %5d% %6d% store_to %7d%

 

0A1A=9,actor %1d% actor %1d% perform_animation %2h% file %3h% unk %4d% loopA %5h% lockX %6h% lockY %7h% lockF %8h% limT %9h%

 

0A2E=7,AS_actor %1d% goto_3D_coords %2d% %3d% %4d% mode %5h% time %6h% stop_radius %7d%

 

09AF=4,set_tripskip_classB_to_3D_coord %1d% %2d% %3d% vehicle_stop_angle %4d%

class B means that tripskip icon will not dissapear in range of 20m like it happens in all other classes

 

09E0=5,set_tripskip_classA_to_3D_coord %1d% %2d% %3d% vehicle_stop_angle %4d% for_vehicle %5d%

like 0950, same class just vehicle added

 

0A35=5,set_tripskip_classC_to_3D_coord %1d% %2d% %3d% vehicle_stop_angle %4d% integer %5d%

unlike other, class C gives vehicle velocity in direction of angle and does not engage breakes, has to be FADE_OUT after used but game flows regardless in the time when screen is faded so use that time to adjust enviroment if you like. last parameter isn't a vehicle but integer setting in my opinion.

 

0746=3,set_default_action %1h% for_actors_type %2h% to_actors_type %3h%

destinates to special behaviour like 3- attack when attacked or aimed. to mahe hostile use 4- attack while 0 will be allied...

 

0747=3,clear_default_action %1h% for_actors_type %2h% to_actors_type %3h%

 

077A=3,set_actor %1d% default_action %2h% to_actors_type %3h%

 

077B=3,clear_actor %1d% default_action %2h% to_actors_type %3h%

 

077C=2,clear_actor %1d% default_action %2h% to_all_actor_types

 

07E8=3, default_action %1h% for_actors_type %2h% to_actors_type %3h% set

 

0697=3,vehicle %1d% componentB %2h% manipulation %3h%

P3: 0-delete, 1- detach

 

0698=2,vehicle %1d% componentB %2h% repair

 

06A5=2,AS_actor %1d% jump_forward_stay_on_ground_time %2d% and_stands_back

 

03d3=7,find_nearest_route_for_3D_coord %1d% %2d% %3d% get_3D_coord_to %4d% %5d% %6d% get_Z_angle_to %7d%

 

06F8=8,find_nearest_route_for_3D_coord %1d% %2d% %3d% in_direction %4h% get_3D_coord_to %5d% %6d% %7d% get_Z_angle_to %8d%

 

09BF=1,random_vehicle_generator_lock_on_modelID %1t%

load model before.

 

0732=1,random_vehicle_generator_disable_modelID %1t%

ex. 420 will disable taxi spawning

 

0733=1,random_vehicle_generator_enable_modelID %1t%

ex. 420 will enable taxi spawning if was disabled before

 

0734=0,random_vehicle_generator_restore_default

simply restores to default settings

 

09B0=2,set_vehicle %1d% accessible_to_player_using_controller %2h%

from outside, disables or enables cotroller "enter_vehicle" button for this vehicle. other enter_vehicle methods remains still unlocked.

 

051B=2, actor %1d% damaged_by_vehicle %2d%

collision damage considered

 

070C=1,explode_vehicle %1d% ;apply_no_damage_nor_shock_wave

no damage to any ingame objects and no explosion wave

 

0792=1,disembark_instantly_actor %1d%

consider teleport actor after that since engine will not look for stuck for this actor

 

0A0B=4,set_rendering_origin_at_3D_coords %1d% %2d% %3d% angle %4d%

it is temporary setting if rendering center is manipulated

 

093D=1,lock_camera_on_cinematic_view %1h%

lock camera change from controller, camera will stop at actual position when player disembarked

 

0587=2,set_vehicle %1d% validate_position %2h%

enable or disable valid position check for vehicle. ex. when spawned in ground ect

 

08F8=1,show_progress_bar_for_stat_change %1h%

these are in upper left corner when stat is changing

 

0A48=1,enable_menu_access_in_widescreen_mode %1h%

when widescreen active enables or disables access to game menu

 

0A25=2,set_camera_on_player_Y_angle %1d% Z_angle %2d%

not in degrees. range 0.0 to 6.0

 

0656=2,get_from_agle %1d% absolute_degrees_to %2d%

floats, transforms ex. 400.75 into 40.75 or -55.21 into 304.79

 

0922=4,set_camera_zoom_IN_factor %1d% OUT_factor %2d% within_time %3d% mode %4h%

performs fluid lens zoom out, do not go above 150.0 as it can be hard to render for game

 

0931=1,lock_camera_zoom %1h%

lock after manipulation done or set to zoom in back.

 

061A=3,get_actor %1d% animation %2h% total_time_to %3d% ;float miliseconds

in miliseconds and as float

 

09C9=2,disembark_actor %1d% from_vehicle %2d% and_frezze_actor_position

actor will remain locked until new orders come ex. teleport or attach

 

0762=1,AS_actor %1d% dies ;versionB

dies onfoot, when onboard will be disembarked

 

0704=4,vehicle %1d% drive_to_3D_coord %2d% %3d% %4d%

can be used without driver, presets helps here

 

0953=1,get_soundtrack_status %1d%

returns int about status info of soundtrack

 

064C=1,start_progress_and_render_particle %1d%

was wrongly named as it actually starts animation and rendering of FX

 

064E=1,particle_stop_progress %1d%

stops progress so particle will naturally dissapears. FX can be re-played again using 064C

 

064F=1,remove_references_to_particle %1d%

wach out as it does not make dissapear looped FX.

 

0976=1,destroy_particle_instantly %1d%

quite similar to 0650 but instantly stops particle rendering

 

080E=2,get_actor %1d% pedevent_to %2d%

status like ex. 31 under fire

 

06AB=2,set_actor %1d% all_weapons_hidden %2h%

hide (not accessible) or unhide weapons

 

03F5=2,set_vehicle %1d% apply_damage_rules %2h%

wrongly named, i do not even know what was the meaning of old name. info: it is used as 1 to explode vehicle because of security reasons.

all damage (energy) rules appllied or not. ex setting 0 here when car is on fire deletes the fire and leaves FX of engine overheat and deny all further damages and explosion of tank or vehicle itself.

 

03F4=1,set_all_vehicles_apply_damage_rules %1d%

renamed as it is twin brother of above code

 

0A09=2,set_actor %1d% muted %2h%

mutes and unmutes actor voices and so on

 

096A=1,set_flying_helicopters_enabled %1h%

police and others as well. related to flying vehicles not onground spawned.

 

0A1D=2,AS_actor %1d% rotate_to_and_look_at_actor %2d%

no comment

 

058A=6,create_M4_muzzle_flash_from_3D_coord %1d% %2d% %3d% target_3D_coord %4d% %5d% %6d%

as originally used with M4

 

0833=1, has_object_been_photographed %1d%

no comment

 

08D3=1,get_present_zone_popcycle_group_for_peds_and_vehicles_to %1d%

returns int from previously set 0767 for that perticular zone

 

090C=1,hilight_inactive_gang_zone_as_available_for_gangwars %1g%

when gangwars were activated earlier or restricted to only few zones this feature brings specific zone as hilighted for gangwars using specified with 076C color. zone has to be dedicated for gangwars using 076C before

 

090D=0,hilight_all_inactive_gang_zones_as_available_for_gangwars

when gangwars were activated earlier or restricted to only few zones this feature brings all inactive zones as hilighted for gangwars using specified with 076C color. zones have to be dedicated for gangwars using 076C before

 

085A=4,spawn_emergency_vehicle_modelID %1d% on_street_nearest_3D_coord %2d% %3d% %4d%

spawns at default radius of spawning, with crew and ready to action vehicle.

 

087A=0, is_gang_war_in_progress

wrongly named, it does not check if it is being provoked it checks if is in progress

 

02DD=5,get_random_onfoot_ped_in_zone %1s% flagA %2h% flagB %3h% flagC %4h% as %5d%

intercepts only onfoot pedestrians

 

032A=1,set_behind_camera_mode_to %1h% ;0-2 only behind camera

sets variations of behind camera where 0 is the closest one

 

07A6=6,get_nearest_tag_location_near_3D_coord %1d% %2d% %3d% store_to_3D_coord %4d% %5d% %6d%

returns coordiantes for nearest tag origin

 

0778=1,init_objects_in_object_group %1h% ;versionB

as 0776 just maybe cleaner removes them

 

09BC=4,teleport_char %1d% to_3D_coord %2d% %3d% %4d% ;versionC

no comment

 

092E=4,get_water_Z_for_2D_coord %1d% %2d% flag %3h% to %4d%

 

05CF=5,AS_actor %1d% exit_car %2d% at_3D_coord %3d% %4d% %5d% ;not sure about last 3

can be place to stop car

 

0564=1,helicopter %1d% simulate_crash_landing

spins and loses altitude just like main blades or engine and tail rotor malufunction

 

04DF=2,set_helicopter %1d% lean_and_thrust_limiter %2h%

simulates not only lean limiter but as well radically decreases thrust. simply heavy heli handling

 

0A1C=2,set_helicopter %1d% play_engine_sounds %2h%

puts vehicle in silent mode or brings sounds back hovewer there is small issue with radio as using 0 deactivates radio completely and sounds controls are pause and play so it continues paused sound not mutes

 

07BB=2,set_helicopter %1d% horizontal_thrusters_power %2h%

sets thrusters to initiate push power when needed ex. after turns when heli engages or follows target

 

07CB=2,set_char %1d% supporting_fire %2h%

destines char to support player with fire or simply return fire. actor has to be in player group.

 

09EF=4,set_behind_camera_autoposition_mode_for_vehicle_modelID %1t% distance %2d% height_multiplier %3d% angle_X %4d%

sets autoposition for behind camera when driving specific vehicle model

 

09F0=0,set_behind_camera_autoposition_mode_for_all_vehicle_modelIDs_to_default

resets not immidiatelly but after entering different model of vehicle

 

0881=2,set_player %1d% able_to_shoot_weapons %2h%

disables or enables capability to open fire using any weapon

 

0850=2,AS_char %1d% follow_char %2d%

constantly and stops near when followed char stays in one position

 

0996=2,set_racing_checkpoint %1d% angle_Z_to %2d%

no comment

 

0887=3,set_char %1d% turret_mode_orientation %2h% both_side_angle_limit %3d%

P2-0 for heading side 1 for left flank side 2 for back side 3 for right flank. P3- from 0.0 to 360.0 simetrical for both sides counted from orientation origin (180 however gives full rotation already)

 

0858=3,set_player %1d% scan_horizont_to_angle %2d% rotation_speed %3d%

used in turret mode only. angle counted from west and counterwise

 

0861=1, is_player %1d% not_scaning_horizont

not nice cause it should be negated but that is just the name. returns flase when player is in scan horizont mode or scan horizont mode is pre-ordered

 

0834=2,set_player_head_temporary_turn_rotation_Z %1d% rotation_Y %2d%

used in turret mode only. head will go back to neutral position when rotation has been reached. negative for down and left. floats -4.0 to 4.0

 

048F=1,set_char %1d% delete_all_items_possessed

every item in possession of char simply dissapears including ammo

 

0851=3,set_char %1d% decrease_health_by %2h% flag %3h%

used to decrease health, when health goes below 1 char dies as s/he normally does

 

039E=2,set_char %1d% locked %2d% in_vehicle

makes char stick to his seat, does not work for police dragging out except bikes. used on driver makes vehicle unaccessible for player, used on passenger disables only his doors. char will step out when ex. vehicle on fire. used on bike driver makes him resistible for hijack.

 

059F=4,get_object %1d% velocity_in_direction_X %2d% direction_Y %3d% direction_Z %4d% ;float

just like other velocity get

 

05A1=4,set_object %1d% rotary_impulse_about_an_axis_X %2d% axis_Y %3d% axis_Z %4d% through_center_of_body ;float

like other rotory impulse set

 

05A2=4,set_object %1d% rotary_impulse_about_an_axis_X %2d% axis_Y %3d% axis_Z %4d% through_center_of_mass ;float

like other rotory impulse set

 

05A3=1, is_object %1d% holding_still

excluding ex. attached to vehicle situations

 

05A6=4,get_object %1d% rotary_impulse_about_an_axis_X %2d% axis_Y %3d% axis_Z %4d% through_center_of_body ;float

like other rotory impulse get

 

05A7=4,set_object %1d% velocity_in_direction_X %2d% direction_Y %3d% direction_Z %4d% ;float

there is a small problem like in other velocity set commands as you have to ensure object isn't holding still

 

05A8=2,get_object %1d% speed_to %2d% ;float

pretty same as other get speed

 

071E=2,get_object %1d% energy_to %2d% ;integer

renamed cuse noone would notice it anyway

 

071F=2,set_object %1d% energy_to %2d% ;integer

wrongly named as usually

 

0906=2,set_object %1d% mass_to %2d% ;float

no comment

 

0907=2,get_object %1d% mass_to %2d% ;float

no comment

 

0908=2,set_object %1d% turn_mass_to %2d% ;float

no comment

 

0909=2,get_object %1d% turn_mass_to %2d% ;float***

no comment

 

0905=2,set_object %1d% turn_off_collision_swing %2h%

old name was a complete mistake. works on objects that have swing in object.dat and there is no effect on other objects

 

0723=2,set_object %1d% apply_instant_damage_type %2h% %2b:break/smash%

that should be the real name for it. note that objects without smash or break data will simply dissapear. note that this command does not destroy object bus simply manipulates with visible damage

 

0366=1, is_object %1d% damaged

old name is wrong. check concerns object visible damage as smashed, broken, exploded and so on but object still exists.

 

03CA=1, is %1d% valid_object_handle

more accurate name now as it can be used with all handles without hazard

 

0815=4,teleport_object %1d% to_3D_coord %2d% %3d% %4d%

note: better ensure that object is hold still before teleport as it can lead to random velocity changes

 

0796=2,get_crane_magnet %1d% magnet_lane_lenght_to %2d% ;float

range from 0.0 for fully extended to 1.0 for upper level, concerns the ball as well

 

0797=2,set_crane_magnet %1d% magnet_lane_lenght_to %2d% ;float

range from 0.0 for fully extended to 1.0 for upper level, concerns the ball as well

 

0798=4,get_crane_magnet %1d% attached_vehicle_to %2d% attached_char_to %3d% attached_object_to %4d%

one of ways to get handle of char or veh or object attached to crane magnet

 

0799=1,set_crane_magnet %1d% to_release_what_attached

releases vehicle, character or object attached to magnet

 

079D=0,set_controller_to_steer_MagnoCrane_03 ;originally SF docks magnocrane

used to steer crane lane lenght using game controller

 

079E=0,set_controller_to_steer_TWRCRANE_M_02 ;originally SF site ballcrane

used to steer crane lane lenght using game controller

 

079F=0,set_controller_to_steer_no_cranes

used to deny steering of crane lane lenght using game controller

 

07F9=0,set_controller_to_steer_QUARRY_CRANEARM ;originally DS quarry magnocrane

used to steer crane lane lenght using game controller

 

07FA=0,set_controller_to_steer_TWRCRANE_M_02 ;originally LV site magnocrane

used to steer crane lane lenght using game controller

 

00EC=6, is_char %1d% within_rectangle_with_center_at_2D_coord %2d% %3d% width %4d% height %5d% flag %6d%

 

00ED=6, is_char %1d% within_rectangle_with_center_at_2D_coord %2d% %3d% width %4d% height %5d% flag %6d% onfoot

 

00EE=6, is_char %1d% within_rectangle_with_center_at_2D_coord %2d% %3d% width %4d% height %5d% flag %6d% in_vehicle

 

00EF=6, is_char %1d% within_rectangle_with_center_at_2D_coord %2d% %3d% width %4d% height %5d% flag %6d% stopped

 

00F0=6, is_char %1d% within_rectangle_with_center_at_2D_coord %2d% %3d% width %4d% height %5d% flag %6d% stopped_onfoot

 

00F1=6, is_char %1d% within_rectangle_with_center_at_2D_coord %2d% %3d% width %4d% height %5d% flag %6d% stopped_in_vehicle

 

00F2=5, is_char %1d% within_rectangle_with_center_at_char %2d% width %3d% height %4d% flag %5h% stopped

 

00F3=5, is_char %1d% within_rectangle_with_center_at_char %2d% width %3d% height %4d% flag %5h% stopped_onfoot

 

00F4=5, is_char %1d% within_rectangle_with_center_at_char %2d% width %3d% height %4d% flag %5h% stopped_in_vehicle

just small update as there was a mistake in code description

 

00FE=8, is_char %1d% near_3D_coord %2d% %3d% %4d% within_3D_radius %5d% %6d% %7d% flag %8d%

 

00FF=8, is_char %1d% near_3D_coord %2d% %3d% %4d% within_3D_radius %5d% %6d% %7d% flag %8d% onfoot

 

0100=8, is_char %1d% near_3D_coord %2d% %3d% %4d% within_3D_radius %5d% %6d% %7d% flag %8d% in_vehicle

 

0101=8, is_char %1d% near_3D_coord %2d% %3d% %4d% within_3D_radius %5d% %6d% %7d% flag %8d% stopped

 

0102=8, is_char %1d% near_3D_coord %2d% %3d% %4d% within_3D_radius %5d% %6d% %7d% flag %8d% stopped_onfoot

 

0103=8, is_char %1d% near_3D_coord %2d% %3d% %4d% within_3D_radius %5d% %6d% %7d% flag %8d% stopped_in_vehicle

 

0104=6, is_char %1d% near_char %2d% within_3D_radius %3d% %4d% %5h% flag %6d%

 

0105=6, is_char %1d% near_char %2d% within_3D_radius %3d% %4d% %5h% flag %6d% onfoot

0106=6, is_char %1d% near_char %2d% within_3D_radius %3d% %4d% %5h% flag %6d% in_vehicle

just small update as there was a mistake in code, that is actually intersection of 3 cylinders and not a sphere

 

095C=12,create_smoke_at_3D_coord %1d% %2d% %3d% velocity_vector %4d% %5d% %6d% RGB_mask_proportions %7d% %8d% %9d% intensity %10d% size %11d% last_factor %12d%

velocity vector is a speed and direction, P12 decides how long it takes for Fx to dissapear completely

 

02CF=6,create_fire_at_3D_coord %1d% %2d% %3d% propagation %4h% size %5h% handle_as %6d%

small update

 

0327=6,get_random_vehicle_in_rectangle_cornerA_XY %1d% %2d% cornerB_XY %3d% %4d% with_modelID %5d% handle_as %6d%

updated to real meaning as it was incorrect

 

0339=11, is_within_cube_cornerA_at_3D_coord %1d% %2d% %3d% cornerA_at_3D_coord %4d% %5d% %6d% solid %7d% vehicle %8d% char %9d% object %10d% FxSystem %11d%

updated to real meaning as it was incorrect

 

04A5=4,get_char %1d% approximate_position_3D_coord_to %2d% %3d% %4d%

approx as it returns X and Y of small radius near player

 

0889=4,get_char %1d% center_of_body_position_3D_coord_to %2d% %3d% %4d% ;when onscreen otherwise as 00A0 or 04C4

returns real center of body when char onscreen or otherwise it returns always stand position center of body

 

0897=2, has_vehicle %1d% collided_with_object %2d%

no comment

 

07F0=5, is_within_shere_with_center_at_3D_coord %1d% %2d% %3d% radius %4d% damaged_object_with_modelID %5o% ;smashed or broken

damage as smash or break

 

04E5=6, is_object %1d% within_rectangle_with_center_at_2D_coord %2d% %3d% width %4d% height %5d% flag %6d%

 

04E6=8, is_object %1d% within_cube_with_center_at_3D_coord %2d% %3d% %4d% width %5d% height %6d% depth %7d% flag %8d%

 

04E9=6, is_object %1d% within_rectangle_cronerA_at_2D_coord %2d% %3d% cornerB_at_2D_coord %4d% %5d% flag %6d% ;***

 

04EA=8, is_object %1d% within_cube_cornerA_at_3D_coord %2d% %3d% %4d% cornerB_at_3D_coord %5d% %6d% %7d% flag %8d%

 

0471=5, is_char %1d% within_rectangle_with_center_at_object %2d% width %3d% height %4d% flag %5h%

 

0472=5, is_char %1d% within_rectangle_with_center_at_object %2d% width %3d% height %4d% flag %5h% onfoot

 

0473=5, is_char %1d% within_rectangle_with_center_at_object %2d% width %3d% height %4d% flag %5h% in_vehicle ;***

 

0474=6, is_char %1d% within_cube_with_center_at_object %2d% height %3d% width %4d% depth %5d% flag %6h%

 

0475=6, is_char %1d% within_cube_with_center_at_object %2d% height %3d% width %4d% depth %5d% flag %6h% onfoot

 

0476=6, is_char %1d% within_cube_with_center_at_object %2d% height %3d% width %4d% depth %5d% flag %6h% in_vehicle ;***

 

0655=3,AS_char %1d% look_at_object %2d% time %3d%

 

091C=7,get_scripted_char_within_sphere_with_center_at_3D_coord %1d% %2d% %3d% radius %4d% SCobjectID %5o% handled_by_script_named %6h% handle_as %7d%

 

0985=7,set_objects_within_sphere_with_center_at_3D_coord %1d% %2d% %3d% radius %4d% with_SCmodelID %5d% colision_detection_to %6h% for_char %7d%

makes objects solid or unsolid for specified character

 

01a1=6, is_char %1d% within_rectangle_cronerA_at_2D_coord %2d% %3d% cronerB_at_2D_coord %4d% %5d% flag %6d% and_onfoot ;***

 

01a2=6, is_char %1d% within_rectangle_cronerA_at_2D_coord %2d% %3d% cronerB_at_2D_coord %4d% %5d% flag %6d% and_in_vehicle ;***

 

01a3=6, is_char %1d% within_rectangle_cronerA_at_2D_coord %2d% %3d% cronerB_at_2D_coord %4d% %5d% flag %6d% and_stopped ;***

 

01a4=6, is_char %1d% within_rectangle_cronerA_at_2D_coord %2d% %3d% cronerB_at_2D_coord %4d% %5d% flag %6d% and_stopped_onfoot ;***

 

01a5=6, is_char %1d% within_rectangle_cronerA_at_2D_coord %2d% %3d% cronerB_at_2D_coord %4d% %5d% flag %6d% and_stopped_in_vehicle ;***

 

01a6=8, is_char %1d% within_cube_cornerA_at_3D_coord %2d% %3d% %4d% cornerB_at_3D_coord %5d% %6d% %7d% flag %8d% and_onfoot

 

01a7=8, is_char %1d% within_cube_cornerA_at_3D_coord %2d% %3d% %4d% cornerB_at_3D_coord %5d% %6d% %7d% flag %8d% and_in_vehicle

 

01a8=8, is_char %1d% within_cube_cornerA_at_3D_coord %2d% %3d% %4d% cornerB_at_3D_coord %5d% %6d% %7d% flag %8d% and_stopped ;***

 

01a9=8, is_char %1d% within_cube_cornerA_at_3D_coord %2d% %3d% %4d% cornerB_at_3D_coord %5d% %6d% %7d% flag %8d% and_stopped_onfoot ;***

 

01AA=8, is_char %1d% within_cube_cornerA_at_3D_coord %2d% %3d% %4d% cornerB_at_3D_coord %5d% %6d% %7d% flag %8d% and_stopped_in_vehicle ;***

 

01AB=6, is_vehicle %1d% within_rectangle_cronerA_at_2D_coord %2d% %3d% cornerB_at_2D_coord %4d% %5d% flag %6d% and_stopped

 

01AC=8, is_vehicle %1d% within_cube_cornerA_at_3D_coord %2d% %3d% %4d% cornerB_at_3D_coord %5d% %6d% %7d% flag %8d% and_stopped

 

01AD=6, is_vehicle %1d% within_rectangle_cronerA_at_2D_coord %2d% %3d% half_width %4d% half_height %5d% flag %6d%

 

01AE=6, is_vehicle %1d% within_rectangle_cronerA_at_2D_coord %2d% %3d% half_width %4d% half_height %5d% flag %6d% and_stopped

 

01AF=8, is_vehicle %1d% within_cube_center_at_3D_coord %2d% %3d% %4d% half_width %5d% half_height %6d% half_depth %7d% flag %8d%

 

01B0=8, is_vehicle %1d% within_cube_center_at_3D_coord %2d% %3d% %4d% half_width %5d% half_height %6d% half_depth %7d% flag %8d% and_stopped

meaning corrected as it does not switch between shape types for area to search

 

0A3E=7,get_scripted_object_near_3D_coord %1d% %2d% %3d% within_3D_radius %4d% %5d% %6d% handle_as %7d%

tought one

 

051D=2, is_vehicle %1d% damaged_by_vehicle %2d%

was wrongly named

 

08E3=7, is_object %1d% in_rectangle_ll_corner_at_2D_coord %2d% %3d% lr_corner_at_2D_coord %4d% %5d% height %6d% flag %7h%

 

08E4=9, is_object %1d% within_cube_fll_corner_at_3D_coord %2d% %3d% %4d% fur_corner_at_3D_coord %5d% %6d% %7d% depth %8d% flag %9h% ;***

 

09D1=1, is_pickup %1d% created

 

065B=4,get_pickup %1d% position_3D_coord_to %2d% %3d% %4d%

 

075A=6,set_object %1d% animation %2h% group %3h% %4d% lockF %5h% loop %6h% ;IF AND SET

confusing one. it works as check and as setting

 

070A=10,set_char %1d% attach_objectA %2d% with_offset %3d% %4d% %5d% on_bone %6h% %7h% perform_animation %8h% group %9h% time %10h% ;object no 1

 

070B=2,set_char %1d% onbone_attached_objectA_operation %b:drop/detach% ;detaches object B automatically

 

09A0=10,set_char %1d% attach_objectB %2d% with_offset %3d% %4d% %5d% on_bone %6h% %7h% perform_animation %8h% group %9h% time %10h% ;object no 2

to use attach first objectA (no 1) using 070A. do not repeat this command as it detaches attached object.

 

09A1=2,set_char %1d% onbone_attached_objectB_operation %b:drop/detach%

 

080A=5,get_object %1d% spoot %2h% store_3D_coord_to %3d% %4d% %5d% ;8 spots

 

088D=6,set_objects_within_sphere_with_center_at_3D_coord %1d% %2d% %3d% radius %4d% with_SCmodelID %5d% colision_detection_to %6h%

makes objects solid or unsolid

 

048C=3, is_pickup_at_3D_coord %1d% %2d% %3d% available_to_pick_up

basically explanes it

 

04AE=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: 0004, 0005, 0006, 0007, 0084, 0085, 0086, 0087, 0088, 0089, 008A, 008B

 

04AF=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: 0004, 0005, 0006, 0007, 0084, 0085, 0086, 0087, 0088, 0089, 008A, 008B

 

016F=10,create_shadow_with_shape_type %1d% at_3D_coord %2d% %3d% %4d% rotation_factor %5d% size %6d% intensity %7d% flags %8d% %9d% %10d%

creates shadow on ground with specified parameters. it is temp FxSystem

 

03CB=3,set_rendering_origin_at_3D_coords %1d% %2d% %3d%

moves the rendering origin not camera.

 

06BD=11, is_no_obstacles_between_3D_coord %1d% %2d% %3d% and_3D_coord %4d% %5d% %6d% solid %7h% vehicle %8h% char %9h% object %10h% FxSystem %11h%

simply checks if line free of kinds of objects

 

06C2=11,AS_char %1h% goto_3D_coord %2d% %3d% %4d% mode %5h% turn_radius %6d% stop_radius %7d% char %8d% offset %9d% %10d% %11d%

 

04F4=8,put_char %1d% into_turret_on_object %2d% offset_from_object_origin %3d% %4d% %5d% orientation %6h% both_side_angle_limit %7d% lock_weapon %8h%

i do not even get the meaning of old description. remove with 0465

 

that should give you all just a bit idea how usefull this is.

 

Edit: i just have discussion with old member of that forum, a person who knows a lot more than we all maybe. And i have to agree, creating new opcodes definitions does not affect compactibility or whatsoever because most of the peoples which are "old here" does not put any code into the forum, they just create playground for their twisted and sophisticated ego needs. even if they do present something they will do it in compiled version as it is the most wise choice.

Edited by PLPynton

Share this post


Link to post
Share on other sites
Seemann

Opcode 024F has 9 parameters in original SCM, but in your SASCM.INI it's marked as unsupported. Please fix it, because neither Sanny nor SAMB could not decompile with it.

Share this post


Link to post
Share on other sites
PLPynton
Opcode 024F has 9 parameters in original SCM, but in your SASCM.INI it's marked as unsupported. Please fix it, because neither Sanny nor SAMB could not decompile with it.

changed

thanks, it is really nice to hear from you.

have you tried already if it works with Sanny?

Share this post


Link to post
Share on other sites
Kamazy

Is this .ini compatable with the original 0.33 ini?

Because it crashes my game when i compile with this .ini turn.gif

Using this as a reference is great but just wondering if the crash was my fault.

Share this post


Link to post
Share on other sites
PLPynton
Is this .ini compatable with the original 0.33 ini?

Because it crashes my game when i compile with this .ini turn.gif

Using this as a reference is great but just wondering if the crash was my fault.

Kamazy, you have to decompile it first. you can not compile using this base (correct order of parameters) any scripts decompiled with old database (incorrect order of parameters). this situation occurs each time someone posts sascm.ini upodate. my idea was to finish that once for all- you change base once now and later you can profit from my updates without any danger.

 

small walkthrough for interested:

 

1. install my version of SASCM.INI in builders directory.

2. restart builder (necessity)

3. decompile all your scripts, original scripts and see how clear it becomes now.

 

you have to do these steps only once, not like before in each time sascm.ini changes. for every further change of my version you do not have to repeat that process.

 

do not simply install update and compile scripts old.

Share this post


Link to post
Share on other sites
Seemann

 

Opcode 024F has 9 parameters in original SCM, but in your SASCM.INI it's marked as unsupported. Please fix it, because neither Sanny nor SAMB could not decompile with it.

changed

thanks, it is really nice to hear from you.

have you tried already if it works with Sanny?

yeah, Sanny works with it, but there is only problem. Its class system is based on old params order.

In new ini params have incorrect order for Sanny. So, my example with 0053. With new ini and disabled option Write opcodes it looks like:

 

 

#NULL = Player.Create(2488.5623, -1666.8645, 12.8757, $PLAYER_CHAR)

 

 

So, although opcode will be compiled just fine, without any errors, but visually it looks wrong. I can change this, make the decompiler take the parameters in non-ini's order, make the last parameter the first one always. Then I should change the compiler because such non-ini's order will caused an error while compiling. But I do not want this. Maybe I'll try later to find good solution to support the both inis.

 

And what about old codes that will not work with new INI because of new param's order?

I have already offered to make the code converter from old ini to updated one (yours or the current one).

 

Share this post


Link to post
Share on other sites
PLPynton
Opcode 024F has 9 parameters in original SCM, but in your SASCM.INI it's marked as unsupported. Please fix it, because neither Sanny nor SAMB could not decompile with it.

changed

thanks, it is really nice to hear from you.

have you tried already if it works with Sanny?

yeah, Sanny works with it, but there is only problem. Its class system is based on old params order.

In new ini params have incorrect order for Sanny. So, my example with 0053. With new ini and disabled option Write opcodes it looks like:

 

 

#NULL = Player.Create(2488.5623, -1666.8645, 12.8757, $PLAYER_CHAR)

 

 

So, although opcode will be compiled just fine, without any errors, but visually it looks wrong. I can change this, make the decompiler take the parameters in non-ini's order, make the last parameter the first one always. Then I should change the compiler because such non-ini's order will caused an error while compiling. But I do not want this. Maybe I'll try later to find good solution to support the both inis.

 

And what about old codes that will not work with new INI because of new param's order?

I have already offered to make the code converter from old ini to updated one (yours or the current one).

i understand.

 

in my opinion you should support original order as well. you are the most flexible person here. i would like to ask you to do that if that ain't to much.

 

if you can do converter for codes that will be a breakthrough for sure. do not ask. if you are in possesion of knowledge to find solution to convert them back and forward do it as it is really a big deal. (it was always kind of difficult for me to understand how you want to do it without proper references for all versions of opcodes definition files)

 

 

Share this post


Link to post
Share on other sites
tomworld10

Hi,

 

First thank sending the file and for all the work you share it (particulary the english translation !!!!) !!!!!

 

 

I hate you Pynton !!!!!! biggrin.gif Because now looking at the opcodes you've discovered, I think I could just redo in a better way all the mods I've written, but that's a hell of a job !!!!!!! There is just so many opcodes that I've dreamed about and thinking they just don't exist !!!! Thanks mate this is just awesome work, even if we have to re-learn coding !!!!

 

And thanks showing us that we just can do EVERYTHING with San Andreas almost aesily, that the engine has many many powerfull (or usefull) features to use in coding.

 

 

Have fun

Share this post


Link to post
Share on other sites
Kamazy

@PLPynton: yeah i know how to do that buz it screws up the the ladel names and i lose any kind notes that i may have put to help me know where is what.Anyway using this as a reference is working out great. biggrin.gif

Share this post


Link to post
Share on other sites
ceedj

Very useful stuff. Thanks for sharing. smile.gif

 

I should probably update the opcodes.h from op9080's DX hook with this stuff...

Share this post


Link to post
Share on other sites
DexX

whoa;

 

038F=2,request_texture %2h% handle_as %1d%  ;; Load dictionary with 0390 first

0390=1,load_txd_dictionary %1h%

0391=0,release_txd_dictionary

~

08F0=2,apply_txd_texture %1g% to_dff_model %2g%

Were these known before? i've never seen them, and they could be exetremely useful.

Share this post


Link to post
Share on other sites
spaceeinstein

-teh double post-

Edited by spaceeinstein

Share this post


Link to post
Share on other sites
spaceeinstein

Yes, they were known before. I think Opie found them.

Share this post


Link to post
Share on other sites
Kamazy

 

if you can do converter for codes that will be a breakthrough for sure. do not ask. if you are in possesion of knowledge to find solution to convert them back and forward do it as it is really a big deal.

 

If you mean something to read new .ini and re-organize the parameters of a script made with an older version of the .ini, that would be really usefull. notify.gif

Share this post


Link to post
Share on other sites
Seemann

 

if you can do converter for codes that will be a breakthrough for sure. do not ask. if you are in possesion of knowledge to find solution to convert them back and forward do it as it is really a big deal.

 

If you mean something to read new .ini and re-organize the parameters of a script made with an older version of the .ini, that would be really usefull. notify.gif

yes, this is what I'm gonna do.

 

edit:

 

The code converter will be sanny in-built and base on its compiler engine.

Edited by Seemann

Share this post


Link to post
Share on other sites
Y_Less
among all the changes i have done mind that it is a major change in codes for SA. unwanted as some says but what the hell. learning the fact that you have to realize mistakes (either yours or others) makes you stronger so do not hesitate to use it for coding as it could answer some of your questions.

I don't think anyone said it was unwanted, just said trying to force it on people in 'exchange' for your work was wrong. Also, I'm afraid I'm with Dem here, there are already at least 3 different OpCode formats, how is introducing a new one going to 'unify' people? You are just further fragmenting the community and tbh making everyone else in the world change so you don't have to is more than a little selfish (the clearer names, fair enough, but it should also be noted that the Mission Builder does come with a code converter feature so you don't need to re and decompile, just run your code through it and have it in the new form, with all labels and comments intact).

 

Seemann if you could write a converter so that the 99% of the community who use the codes they've happily used for years can continue to do as they are ti would be awesome.

 

PLPython, one question, you're complaining about having to go through the codes and change them, why did you put them to s silly format in the first place? Storing the return value of a function like that (i.e. $bla = whatever) is a standard and widely used programming practice however 90% of the time when you look at the generated code (take C for example) the variable is the last thing to appear as it has to be used after the calculations are done, so in many many high-level languages the variable is first when in their low level equivalents they're last.

Share this post


Link to post
Share on other sites
PLPynton

that question isn't pointed to me isn't it? it is pointed to people, that started the trend to change order of parameters. that is the time before the time and it does not concern me i am afraid 'cause i was not the one who changed it in the first place.

that is a problem if there is a few versions. it should be one created using best possible way. it must not be the one from my side.

speaking about custom enviroments i assume we can not behave in the same way under and above water.

 

"Without strict discipline nothing can be accomplished, but this discipline

must not be achieved by force. It requires a strong man who captures the

hearts of the people and awakens their enthusiasm. In order that he may

develop his abilities he needs the complete confidence of his ruler, who must

entrust him with full responsibility as long as the war lasts. But war is always

a dangerous thing and brings with it destruction and devastation. Therefore

it should not be resorted to rashly but, like a poisonous drug, should be used

as a last recourse."

Edited by PLPynton

Share this post


Link to post
Share on other sites
spaceeinstein

Uhh... If anyone like the old format, I updated the file here. It's not finished yet but it should have like 90% of all the updates. I am not including opcode descriptions for completely unknown opcodes. I don't mind people releasing different formats of the sascm.ini.

Share this post


Link to post
Share on other sites
Y_Less

No that question was pointed at you. I already explained why the old order is more sensible despite seeming wierder and also explained that that is how it is in many other languages. If you are going to complain about that you could ask why the OpCodes were all reversed, why don't you go around coding like this:

 

D600: if 0

5602: player $player_char defined

4D00: jump_if_false @wherever

 

That's how they are in the SCM but I don't see you complaining about that. The question was directed at you as you mush have spent ages converting all the other codes to your obscure personal format in the first place to have them like that to complain that no-one else does and that you don't want to change them back. And thanks Space, I'm sure that will be a great help to the 99% of the community who have been doing this for years the same way with no problems at all.

Share this post


Link to post
Share on other sites
PLPynton

well you are a bit mad (at me) ain't you Y_Less. I am really sorry if i offended you in some way. as act of good will i will not comment what you wrote and say: accept my apologizes, end of subject for me.

Share this post


Link to post
Share on other sites
Seemann

 

If you are going to complain about that you could ask why the OpCodes were all reversed, why don't you go around coding like this:

 

D600: if 0

5602: player $player_char defined

4D00: jump_if_false @wherever

 

That's how they are in the SCM but I don't see you complaining about that.

Sorry, i can't explain this in detail because of my bad english, but there is no problem.

It is the standart of reading/writing of the values. In hex editor you may see D600 instead of 00D6 but each program that using WinApI's routines for manupulating with such values read this as 00D6, not as D600.

For example, it is the Delphi's procedure

 

BlockWrite(File, Value, 2);

 

 

File is a file where value will be written.

Value = $00D6 = 214

2 is a length of the value (in bytes)

 

So, this procedure write this value in the file as D600 (and you'll see that in hex editor), not as 00D6.

 

Hope you understand me wink.gif

Share this post


Link to post
Share on other sites
spaceeinstein

There are some opcodes that I didn't understand.

 

0858=3,set_player %1d% scan_horizont_to_angle %2d% rotation_speed %3d%

0861=1, is_player %1d% not_scaning_horizont

0669=7,create_FxSystem %1h% attached_to_char %2d% offset %3d% %4d% %5d% unk %6h% handle_as %7d%

066A=10,create_FxSystem %1h% attached_to_char %2d% offset %3d% %4d% %5d% rotation %6d% %7d% %8d% unk %9h% handle_as %10d%

066B=7,create_FxSystem %1h% attached_to_vehicle %2d% offset %3d% %4d% %5d% unk %6h% handle_as %7d%

066C=10,create_FxSystem %1h% attached_to_vehicle %2d% offset %3d% %4d% %5d% rotation %6d% %7d% %8d% unk %9h% handle_as %10d%

066D=7,create_FxSystem %1h% attached_to_object %2d% offset %3d% %4d% %5d% unk %6h% handle_as %7d%

066E=10,create_FxSystem %1h% attached_to_object %2d% offset %3d% %4d% %5d% rotation %6d% %7d% %8d% unk %9h% handle_as %10d%

 

What's horizont? What's unk?

 

096A=1,set_flying_helicopters_enabled %1h%

And how does this opcode work?

Edited by spaceeinstein

Share this post


Link to post
Share on other sites
Y_Less
If you are going to complain about that you could ask why the OpCodes were all reversed, why don't you go around coding like this:

 

D600: if 0

5602: player $player_char defined

4D00: jump_if_false @wherever

 

That's how they are in the SCM but I don't see you complaining about that.

Sorry, i can't explain this in detail because of my bad english, but there is no problem.

It is the standart of reading/writing of the values. In hex editor you may see D600 instead of 00D6 but each program that using WinApI's routines for manupulating with such values read this as 00D6, not as D600.

For example, it is the Delphi's procedure

 

BlockWrite(File, Value, 2);

 

 

File is a file where value will be written.

Value = $00D6 = 214

2 is a length of the value (in bytes)

 

So, this procedure write this value in the file as D600 (and you'll see that in hex editor), not as 00D6.

 

Hope you understand me wink.gif

I know why, it's because the numbers are stored in little Endian format, I was just asking him. PLPython, I'm not angry at you, I jus think introducing another format is an immensly stupid idea, however some people do seem to be embracing it and if Sanny builder is going to have support for both it may even be get awayable with so we'll have to see however even given that there will still be more fractions in the community.

Share this post


Link to post
Share on other sites
Kamazy

my guess is that:

horizont = Horizontal

unk = Unknown

 

got no idea how to use this tho:

set_flying_helicopters_enabled

 

[edit]

 

maybe scan_horizont_to_angle will make the actor look left and right as if he was guarding.

 

and this would check if he is looking around:

is_player %1d% not_scaning_horizont

 

didn't test it but sound about right.

Edited by Kamazy

Share this post


Link to post
Share on other sites
PLPynton

 

There are some opcodes that I didn't understand.

 

0858=3,set_player %1d% scan_horizont_to_angle %2d% rotation_speed %3d%

0861=1,  is_player %1d% not_scaning_horizont

0669=7,create_FxSystem %1h% attached_to_char %2d% offset %3d% %4d% %5d% unk %6h% handle_as %7d%

066A=10,create_FxSystem %1h% attached_to_char %2d% offset %3d% %4d% %5d% rotation %6d% %7d% %8d% unk %9h% handle_as %10d%

066B=7,create_FxSystem %1h% attached_to_vehicle %2d% offset %3d% %4d% %5d% unk %6h% handle_as %7d%

066C=10,create_FxSystem %1h% attached_to_vehicle %2d% offset %3d% %4d% %5d% rotation %6d% %7d% %8d% unk %9h% handle_as %10d%

066D=7,create_FxSystem %1h% attached_to_object %2d% offset %3d% %4d% %5d% unk %6h% handle_as %7d%

066E=10,create_FxSystem %1h% attached_to_object %2d% offset %3d% %4d% %5d% rotation %6d% %7d% %8d% unk %9h% handle_as %10d%

 

What's horizont? What's unk?

 

096A=1,set_flying_helicopters_enabled %1h%

And how does this opcode work?

horizon, sorry my bad. it orders horizontal scan (z rotation for head) it works only in "turret mode". check is exactly as Kamazy pointed out.

flying helicopters are disabled or enabled ie police mavericks, news helis ect.

 

i have named known here "particle" as FxSystem as more game data was refering to "it" as FxSystem and not as a particles.

 

; FX INFO:; ========;; (FX_TYPE)	Type of FxSystem  - 0 - no FxSystem, 1 - play when hit, 2 - play when destroyed, 3 - play when hit or destroyed; (FX_OFFSET)	Offset of FxSystem  - offset from the pivot of the object (set x value to -999.0 to play at the point of collision); (FX_NAME)	Name of FxSystem  - needs to be "noname" if FX_TYPE is 0, otherwise must be the name of a valid FxSystem;

 

or

 

FX_PROJECT_DATA:FX_SYSTEM_DATA:109...FX_SYSTEM_DATA:109FILENAME: X:\SA\FxTools\Data\effects\gta_pc\systems/code/water_splash.fxsNAME: water_splashLENGTH: 2.000LOOPINTERVALMIN: 0.000LENGTH: 0.000PLAYMODE: 0CULLDIST: 15.000BOUNDINGSPHERE: 0.000 0.000 0.000 1.500NUM_PRIMS: 4FX_PRIM_EMITTER_DATA:FX_PRIM_BASE_DATA:NAME: bubblesMATRIX: 1.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 1.000 -0.031 -0.025 -0.664 TEXTURE: bubblesTEXTURE2: NULL

 

 

and unk is actually unknown for me.

 

i will exchange file in 5 min regarding to these failures

 

Edit: done

Edited by PLPynton

Share this post


Link to post
Share on other sites
PLPynton

update available (see link in first post)

 

 

i found last missing code for vehicle components so below how it is sorted by me now to get it more clear

 

0689=3,set_vehicle %1d% remove_component %2h% visible_effect %3b:detach/delete% ;class A components

0697=3,set_vehicle %1d% remove_component %2h% visible_effect %3b:detach/delete% ;class B components

068A=2,set_vehicle %1d% repair_component %2h% ;class A components

0698=2,set_vehicle %1d% repair_component %2h% ;class B components

073C=2,set_vehicle %1d% smash_component %2h% ;class A components

0730=2,set_vehicle %1d% smash_component %2h% ;class B components

08A6=3,set_vehicle %1d% component %2h% rotation_to %3d% ;class A components

095F=3,get_vehicle %1d% component %2h% rotation_to %3d% ;class A components

0657=2,set_vehicle %1d% open_component %2h% ;class A components

08A7=2, is_vehicle %1d% component %2h% opened_or_not_present ;class A components

095E=4,set_vehicle %1d% component %2h% manipulation %3h% value_to %4d% ;class A components

 

and few various (new) below

 

07D6=2, %1d% == %2d% ;; integer values&handles *OR floating-point values

P1: $int or $localInt or $float or $localfloat

P1: $int or $localInt or $float or $localfloat

- P1 = P2?

originally destinated for handles&ints and only locals and globals are valid. ie check if car A and car B are the same game objects. you can use that for floats but only if you understand the limit here

 

07D7=2, %1d% == %2d% ;; integer values&handles *OR floating-point values

P1: $int or $localInt or $float or $localfloat

P1: $int or $localInt or $float or $localfloat

- P1 = P2?

originally destinated for handles&ints and only local or global INTS are valid, ie. check if car A and car B are the same game objects. you can use that for floats but only if you understand the limit here

 

0A3A=2, is_player %1d% last_object_shoted_SCmodelID %2d% ;using guns only

detects number of object SCmodelID, that specified player shoted at recently

 

0A3B=1,set_player %1d% clear_last_object_shoted

clears the info about last object for 0A3A

 

06FD=2,set_vehicle %1d% motion_path_speed_to %2d% ;float

adjustment for motion speed along the path vehicle is assigned to. (not in meters per second)

 

07C9=2,AS_char %1h% walk_to_object %2d% then_lift_and_hold_in_hands

go to and pick up just like in burglary

Edited by PLPynton

Share this post


Link to post
Share on other sites
PLPynton

another update available at first page. among few description updates there are a few hints for unknown codes added and as usually few new twin codes:

 

0904=5,get_color %1h% RGB_mask_to %2d% %3d% %4d% alpha_to %5d%

seemann found that and i just added after test

 

05EB=2,set_vehicle %1d% assign_to_movement_path %2d% ;mode rail

strictly moves the vehicle (like on a rails) along path coordinates and using rotation for vehicle as well. the vehicle can be moved in air as well as it ignores gravity as well

 

05EC=1,set_vehicle %1d% release_from_movement_path

just name update

 

05ED=1,set_vehicle %1d% hold_movement_along_path

makes vehicle stay iddle until movement is ordered to be continued

 

05EE=1,set_vehicle %1d% unhold_movement_along_path

orders to advance when ie. movement held

 

0705=2,set_vehicle %1d% assign_to_movement_path %2d% ;mode drive

normal drive mode along path, all kind of presettings can be done to change behaviour of vehicle and driver ie. traffic, speed ect

 

0706=2,set_vehicle %1d% advance_in_movement_path %2d% ;float

teleports vehicle to further point of the path

 

03CC=3,set_vehicle %1d% enable_stuck_check_distance_to %2d% time_to %3d%

distance for freedom of movement, the time is tested when vehicle stays within distance

 

03CD=1,set_vehicle %1d% disable_stuck_check

just name update and full test done

 

06FC=1, is_vehicle %1d% stuck_check_enabled

check for presence of stuck check applied on a vehicle

 

@tomworld: if you are reading this. your question about how to rail vehicle from some altitude can be answered also by creating path for 05EB as it can lift veh in air as well as slowly lower it down.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


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

×
×
  • Create New...

Important Information

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