Quantcast

Jump to content

» «
Photo

Unified opcodes database

110 replies to this topic
PLPynton
  • PLPynton

    Player Hater

  • Members
  • Joined: 09 Jul 2005

#1

Posted 24 June 2006 - 02:05 AM Edited by PLPynton, 17 September 2006 - 11:35 AM.

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.

Demarest
  • Demarest

    what could be

  • BUSTED!
  • Joined: 12 Jul 2003

#2

Posted 24 June 2006 - 03:55 AM

QUOTE (PLPynton @ Jun 23 2006, 21:05)
-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.

Kamazy
  • Kamazy

    I Do It All Baby!

  • Members
  • Joined: 07 May 2006

#3

Posted 24 June 2006 - 10:32 AM

inlove.gif

PLPynton
  • PLPynton

    Player Hater

  • Members
  • Joined: 09 Jul 2005

#4

Posted 24 June 2006 - 11:18 AM Edited by PLPynton, 24 June 2006 - 11:41 AM.

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.

Seemann
  • Seemann

    Ruhe

  • Members
  • Joined: 03 Sep 2004
  • Russia
  • Best Tool 2013 "Sanny Builder"

#5

Posted 24 June 2006 - 11:54 AM

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.

PLPynton
  • PLPynton

    Player Hater

  • Members
  • Joined: 09 Jul 2005

#6

Posted 24 June 2006 - 12:04 PM

QUOTE (Seemann @ Jun 24 2006, 11:54)
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?

Kamazy
  • Kamazy

    I Do It All Baby!

  • Members
  • Joined: 07 May 2006

#7

Posted 24 June 2006 - 12:12 PM

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.

PLPynton
  • PLPynton

    Player Hater

  • Members
  • Joined: 09 Jul 2005

#8

Posted 24 June 2006 - 12:38 PM

QUOTE (Kamazy @ Jun 24 2006, 12:12)
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.

Seemann
  • Seemann

    Ruhe

  • Members
  • Joined: 03 Sep 2004
  • Russia
  • Best Tool 2013 "Sanny Builder"

#9

Posted 24 June 2006 - 12:39 PM

QUOTE (PLPynton @ Jun 24 2006, 12:04)
QUOTE (Seemann @ Jun 24 2006, 11:54)
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:

CODE

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

PLPynton
  • PLPynton

    Player Hater

  • Members
  • Joined: 09 Jul 2005

#10

Posted 24 June 2006 - 12:50 PM

QUOTE (Seemann @ Jun 24 2006, 12:39)
QUOTE (PLPynton @ Jun 24 2006, 12:04)
QUOTE (Seemann @ Jun 24 2006, 11:54)
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:

CODE

#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)


tomworld10
  • tomworld10

    Mark Chump

  • Members
  • Joined: 29 Jun 2005

#11

Posted 24 June 2006 - 01:02 PM

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

Kamazy
  • Kamazy

    I Do It All Baby!

  • Members
  • Joined: 07 May 2006

#12

Posted 24 June 2006 - 01:27 PM

@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

ceedj
  • ceedj

    PEDS Creator

  • Feroci
  • Joined: 21 May 2005
  • None

#13

Posted 24 June 2006 - 04:52 PM

Very useful stuff. Thanks for sharing. smile.gif

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

DexX
  • DexX

    Black Hat

  • Feroci
  • Joined: 16 May 2002

#14

Posted 25 June 2006 - 12:56 AM

whoa;
QUOTE
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.

spaceeinstein
  • spaceeinstein

    巧克力

  • Members
  • Joined: 17 Jul 2003
  • None

#15

Posted 25 June 2006 - 12:51 PM Edited by spaceeinstein, 25 June 2006 - 12:53 PM.

-teh double post-

spaceeinstein
  • spaceeinstein

    巧克力

  • Members
  • Joined: 17 Jul 2003
  • None

#16

Posted 25 June 2006 - 12:52 PM

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

Kamazy
  • Kamazy

    I Do It All Baby!

  • Members
  • Joined: 07 May 2006

#17

Posted 25 June 2006 - 03:10 PM

[QUOTE]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.[code=auto:0]

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

Seemann
  • Seemann

    Ruhe

  • Members
  • Joined: 03 Sep 2004
  • Russia
  • Best Tool 2013 "Sanny Builder"

#18

Posted 25 June 2006 - 03:51 PM Edited by Seemann, 25 June 2006 - 03:59 PM.

QUOTE (Kamazy @ Jun 25 2006, 15:10)
QUOTE
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.

Y_Less
  • Y_Less

    629

  • Members
  • Joined: 14 Mar 2004

#19

Posted 25 June 2006 - 11:56 PM

QUOTE (PLPynton @ Jun 24 2006, 02:05)
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.

PLPynton
  • PLPynton

    Player Hater

  • Members
  • Joined: 09 Jul 2005

#20

Posted 26 June 2006 - 01:43 AM Edited by PLPynton, 26 June 2006 - 01:51 AM.

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

spaceeinstein
  • spaceeinstein

    巧克力

  • Members
  • Joined: 17 Jul 2003
  • None

#21

Posted 26 June 2006 - 05:18 AM

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.

Y_Less
  • Y_Less

    629

  • Members
  • Joined: 14 Mar 2004

#22

Posted 26 June 2006 - 12:02 PM

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.

PLPynton
  • PLPynton

    Player Hater

  • Members
  • Joined: 09 Jul 2005

#23

Posted 26 June 2006 - 12:46 PM

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.

Seemann
  • Seemann

    Ruhe

  • Members
  • Joined: 03 Sep 2004
  • Russia
  • Best Tool 2013 "Sanny Builder"

#24

Posted 26 June 2006 - 02:21 PM

QUOTE (Y_Less @ Jun 26 2006, 12:02)
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
CODE

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

spaceeinstein
  • spaceeinstein

    巧克力

  • Members
  • Joined: 17 Jul 2003
  • None

#25

Posted 26 June 2006 - 02:34 PM Edited by spaceeinstein, 26 June 2006 - 03:11 PM.

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?

Y_Less
  • Y_Less

    629

  • Members
  • Joined: 14 Mar 2004

#26

Posted 26 June 2006 - 03:15 PM

QUOTE (Seemann @ Jun 26 2006, 14:21)
QUOTE (Y_Less @ Jun 26 2006, 12:02)
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
CODE

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.

Kamazy
  • Kamazy

    I Do It All Baby!

  • Members
  • Joined: 07 May 2006

#27

Posted 26 June 2006 - 03:16 PM Edited by Kamazy, 26 June 2006 - 03:19 PM.

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.

PLPynton
  • PLPynton

    Player Hater

  • Members
  • Joined: 09 Jul 2005

#28

Posted 26 June 2006 - 05:39 PM Edited by PLPynton, 26 June 2006 - 05:53 PM.

QUOTE (spaceeinstein @ Jun 26 2006, 14:34)
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.
CODE
; 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
CODE
FX_PROJECT_DATA:

FX_SYSTEM_DATA:
109
.
.
.
FX_SYSTEM_DATA:
109

FILENAME: X:\SA\FxTools\Data\effects\gta_pc\systems/code/water_splash.fxs
NAME: water_splash
LENGTH: 2.000
LOOPINTERVALMIN: 0.000
LENGTH: 0.000
PLAYMODE: 0
CULLDIST: 15.000
BOUNDINGSPHERE: 0.000 0.000 0.000 1.500
NUM_PRIMS: 4
FX_PRIM_EMITTER_DATA:

FX_PRIM_BASE_DATA:
NAME: bubbles
MATRIX: 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: bubbles
TEXTURE2: NULL


and unk is actually unknown for me.

i will exchange file in 5 min regarding to these failures

Edit: done

PLPynton
  • PLPynton

    Player Hater

  • Members
  • Joined: 09 Jul 2005

#29

Posted 28 June 2006 - 12:48 PM Edited by PLPynton, 30 June 2006 - 05:12 PM.

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

PLPynton
  • PLPynton

    Player Hater

  • Members
  • Joined: 09 Jul 2005

#30

Posted 30 June 2006 - 05:21 PM

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.




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users