:GetBikeWheelOffset
    {
     Example:
       0AB1: call_scm_func @GetBikeWheelPosition 2 bike 0@ componentId 1@ store_to 2@ 3@ 4@
    }
    0006: 2@ = 4
    006A: 2@ *= 1@  // (int)   
    0A97: 1@ = car 0@ struct
    000A: 1@ += 0x5A0   
    005A: 1@ += 2@  // (int)
    0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0
    
    0085: 2@ = 1@ // (int)
    000A: 2@ += 0x40
    0A8D: 5@ = read_memory 2@ size 4 virtual_protect 0
    000A: 2@ += 0x4
    0A8D: 6@ = read_memory 2@ size 4 virtual_protect 0
    000A: 2@ += 0x4
    0A8D: 7@ = read_memory 2@ size 4 virtual_protect 0
            
    000A: 1@ += 0x4
    0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0
    000A: 1@ += 0x10
    
    0AA5: call_method 0x7EDD60 num_params 3 pop 3 1@ 5@v 2@v
0AB2: ret 3 2@ 3@ 4@
:GetCarWheelOffset
    {
     Example:
       0AB1: call_scm_func @GetCarWheelOffset 2 car 0@ componentId 1@ store_to 2@ 3@ 4@
    }
    0006: 2@ = 4
    006A: 2@ *= 1@  // (int)
    0A97: 1@ = car 0@ struct
    000A: 1@ += 0x648   
    005A: 1@ += 2@  // (int)
    0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0
    000A: 1@ += 0x40
    0A8D: 2@ = read_memory 1@ size 4 virtual_protect 0 // x
    000A: 1@ += 0x4
    0A8D: 3@ = read_memory 1@ size 4 virtual_protect 0 // y
    000A: 1@ += 0x4
    0A8D: 4@ = read_memory 1@ size 4 virtual_protect 0 // z
0AB2: ret 3 2@ 3@ 4@
:GetComponentCoordsOfCar
// 0AB1: @GetComponentCoordsOfCar 2 VehicleHandle 0@ ComponentID 7@ _Returned: XYZ 4@ 5@ 6@
IF AND
NOT 1@ < 1
NOT 1@ > 19
THEN
    IF 056E:   car 0@ defined
    THEN
        0A97: 0@ = car 0@ struct
        0A8E: 5@ = 0@ + 0x590 // [byte] The class of transport
        0A8D: 6@ = read_memory 5@ size 4 virtual_protect 0
        IF 6@ == 0 // CAutomobile
        THEN 0AA6: call_method 0x6A2210 struct {CVehicle}0@ num_params 2 pop 0 | {CVector X Y Z}2@v {int::componentId}1@
        END
    END
END
0AB2: ret 3 2@ 3@ 4@
// vehicle 1 - center
// tire 2 - wheel_rf_dummy
// tire 4 - wheel_rb_dummy
// tire 5 - wheel_lf_dummy
// tire 7 - wheel_lb_dummy
// vehicle 8 - near_rf_mirrow
// vehicle 9 - near_door_r_handle
// vehicle 10 - near_lf_mirrow
// vehicle 11 - near_door_l_handle
// vehicle 12 - near_rf_wheel
// vehicle 13 - near_lb_wheel
// vehicle 16 - front_center_between_window_and_hood
// vehicle 17 - back_center_between_window_and_trunk
// vehicle 18 - front_windowYes, I want to get XYZ of collision, I was trying to get the vehicle parts and check the player fov as @Opcode.eXe said finally, but it didn't work out as expected, some vehicles seem to be missing some components.So do you want the XYZ coordinates of the vehicle collison? Or do you want a script that will give you "Car: X Component: X" of what you are aiming at?
0BFF: process_line_of_sight start 0@ 1@ 2@ end 3@ 4@ 5@ check_solid true car true actor false object true particle false see_through_stuff false ignore_some_objects_for_camera true store_col_point_to 6@ entity_to 7@Yeah those codes put out by Opcodexe are for general parts defined in a vehicles dff I believe. That opcode you put should work also providing it works the same way 06BD detects obstacles. Here's a script for testing what you want.Yes, I want to get XYZ of collision, I was trying to get the vehicle parts and check the player fov as @Opcode.eXe said finally, but it didn't work out as expected, some vehicles seem to be missing some components.
But I saw an opcode that might help:
Code:0BFF: process_line_of_sight start 0@ 1@ 2@ end 3@ 4@ 5@ check_solid true car true actor false object true particle false see_through_stuff false ignore_some_objects_for_camera true store_col_point_to 6@ entity_to 7@
So if a player (in this case the first 3 parameters) is aiming at another player (the next 3 parameters) and in the middle there is a vehicle, is it possible with this or another opcode to determine the coordinates or distance to this vehicle?
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}
THREAD 'CARCOL'
// DUMMY OBJECT
WHILE TRUE
    WAIT 0
    IF
        not model.Available(3000)
    THEN
        model.Load(3000)
    ELSE
        object.Create(0@, 3000, 0.0,0.0,0.0)
        08D2: object 0@ scale_model 1.0
        0382: set_object 0@ collision_detection 0
        BREAK   
    END
END
WHILE TRUE
    WAIT 0
    
    IF
        KEY_DOWN 2
    THEN
        CALL @GET_AIMING_POS 0 1@ 2@ 3@ 4@
        object.PutAt(0@, 1@, 2@, 3@)
        0AD1: "%d %f %f %f" 1 4@ 1@ 2@ 3@
    END
    
END
:GET_AIMING_POS // Ty again Opcodexe
31@ = FALSE       
FOR 4@ = 0.0 TO 250.0 STEP 0.1 // 250.0 = Range limit, Step 0.1 = accuracy, lower number may cause fps drop
    Actor.StorePos($PLAYER_ACTOR, 1@, 2@, 3@)
    0A9F: 5@ = current_thread_pointer
    5@ += 80
    0A8E: 6@ = 5@ + 12 // int
    0AA6: call_method 5327216 11989032 num_params 6 pop 0 6@ 5@ 3@ 2@ 1@ 4@
    IF
        86BD:   not no_obstacles_between 1@ 2@ 3@ and 8@ 9@ 10@ solid 0 car 1 actor 0 object 1 particle 0
    THEN
        31@ = TRUE // CAR DETECTED
        BREAK
    END
END
0@ = 0.0
1@ = 0.0
2@ = 0.0
005B: 0@ += 8@ // (float)
005B: 1@ += 9@ // (float)
005B: 2@ += 10@ // (float)
4@ = 0.0 // RESET THE AIM RADIUS 
0AB2: 4 0@ 1@ 2@ 31@:get3DXYZInFrontOf{X,Y,Z,ZA,YA,Distance}
{   
   Return:
       PosX-InFrontOf
       PosY-InFrontOf
       PosZ-InFrontOf
      
   Example: 0AB1: call_scm_func @get3DXYZInFrontOf 6 XYZ 1@ 2@ 3@ Z_Angle 4@ Y_Angle 5@  Distance 7.0 Return_XYZ_To 6@ 7@ 8@
}
3@ *= -1.0
02F6: 6@ = sine 3@
006B: 6@ *= 5@
005B: 0@ += 6@
02F7: 6@ = cosine 3@
006B: 6@ *= 5@
005B: 1@ += 6@
02F7: 6@ = cosine 4@
0073: 5@ /= 6@
02F6: 6@ = sine 4@
006B: 5@ *= 6@
005B: 2@ += 5@
0AB2: ret 3 0@ 1@ 2@I don't think it's possible to accurately determine where another player is aiming
{$CLEO .cs}
0000:
REPEAT
    WAIT 0
UNTIL 0AFA:  SAMP_IS_READY
WHILE TRUE
    WAIT 0
    FOR 31@ = 0 TO 1000
        IF
        0B23:  samp is_player_connected 31@
        THEN
            IF
            0B20: samp 29@ = actor_handle_by_samp_player_id 31@
            THEN
                IF
                02CB:   actor 29@ bounding_sphere_visible
                THEN
                    0AC8: 28@ = allocate_memory_size 32
                    0BBE: samp store_player 31@ aim_data 28@
                    0C0C: 27@ = struct 28@ offset 0x1 size 4 // Aimf1X   
                    0C0C: 26@ = struct 28@ offset 0x5 size 4 // Aimf1Y   
                    0C0C: 25@ = struct 28@ offset 0x9 size 4 // Aimf1Z   
                    0C0C: 24@ = struct 28@ offset 0xD size 4  // AimPosX     
                    0C0C: 23@ = struct 28@ offset 0x11 size 4  // AimPosY     
                    0C0C: 22@ = struct 28@ offset 0x15 size 4  // AimPosZ
//                    printf "DATA_READ! %0.1f %0.1f %0.1f | %0.1f %0.1f %0.1f" 1000 24@ 23@ 22@ 27@ 26@ 25@
                    IF AND
                    not 24@ == 0.0
                    not 23@ == 0.0
                    not 22@ == 0.0
                    THEN
                        IF OR
                        82D8:   actor 29@ current_weapon == 38   
                        82D8:   actor 29@ current_weapon == 34
                        THEN
                            25@ += 0.10
                            25@ -= 0.05
                        END
    
    
    
                      
                        0087: 20@ = 27@
                        0087: 19@ = 26@
                        0087: 18@ = 25@
        
                        31@ = 0.0
                        FOR 21@ = 0.0 TO 50.0 STEP 0.5
                            0087: 27@ = 20@
                            0087: 26@ = 19@
                            0087: 25@ = 18@
                            006B: 27@ *= 21@
                            006B: 26@ *= 21@
                            006B: 25@ *= 21@
                            005B: 27@ += 24@
                            005B: 26@ += 23@ 
                            005B: 25@ += 22@
                            
 
                            31@ += 0.01
                            095C: create_smoke_at 27@ 26@ 25@ velocity 0.0 0.0 0.0 RGBA 31@ 0.0 0.0 1.0 size 0.01 last_factor 0.01
                            IF
                            86BD:   are_obstacles_between 27@ 26@ 25@ and 24@ 23@ 22@ solid 1 car 1 actor 0 object 1 particle 0
                            THEN
                                BREAK
                            END
                        END
        
//                        actor.PutAt($PLAYER_ACTOR, 27@, 26@, 25@)
//                        0B55: convert_3D_coords 27@ 26@ 25@ to_screen 1@ 2@
//                        0B55: convert_3D_coords 24@ 23@ 22@ to_screen 3@ 4@
//                        0B69: render draw_box_pos 1@ 2@ size 2 2 color 0xFFFF0000
//                        0B69: render draw_box_pos 3@ 4@ size 4 4 color 0xFF00FF00
        
                        
//                        0B68: render draw_line_point1 1@ 2@ point2 3@ 4@ width 1 color 0xFF0000FF
  
                        
                        
                        
                    END   
                    0AC9: free_allocated_memory 28@     
                END     
            END
        END
    END
    IF
    0AB0: 88
    THEN
        0A92: RESTART "AimingAT.cs"
        004E: STOP THIS CLEO
    END
ENDhttps://library.sannybuilder.com/#/sa/script/extensions/CLEO+/0E66 ?Yes, I want to get XYZ of collision, I was trying to get the vehicle parts
