CLEO Help Advanced GUI's in CLEO ( Not dialogs )

CLEO related
Status
Not open for further replies.

Zin

Expert
Joined
Aug 1, 2013
Messages
1,690
Reaction score
103
So I want to make a NOP menu in CLEO and I want to make it like s0beit style but I don't know how, or is it even possible?

http://ugbase.eu/Thread-Extension-SAMPFUNCS-SuperDGUN?page=1

Like this mod I know it's a sampfuncs plugin but is there a way in cleo to make a kind of menu like that to select stuff from without having to use dialogs?
 

HowEnCokkien

Well-known member
Joined
Jul 9, 2017
Messages
307
Reaction score
9
Zin said:
So I want to make a NOP menu in CLEO and I want to make it like s0beit style but I don't know how, or is it even possible?

http://ugbase.eu/Thread-Extension-SAMPFUNCS-SuperDGUN?page=1

Like this mod I know it's a sampfuncs plugin but is there a way in cleo to make a kind of menu like that to select stuff from without having to use dialogs?

i dont know if it will work but maybe you can use textdraw
 

Parazitas

God
Joined
Jan 2, 2017
Messages
3,113
Solutions
5
Reaction score
878
Location
Lithuania
Zin said:
So I want to make a NOP menu in CLEO and I want to make it like s0beit style but I don't know how, or is it even possible?

http://ugbase.eu/Thread-Extension-SAMPFUNCS-SuperDGUN?page=1

Like this mod I know it's a sampfuncs plugin but is there a way in cleo to make a kind of menu like that to select stuff from without having to use dialogs?

@monday
@Opcode.eXe
@springfield
 
Joined
Dec 31, 2015
Messages
712
Reaction score
27
Zin said:
So I want to make a NOP menu in CLEO and I want to make it like s0beit style but I don't know how, or is it even possible?

http://ugbase.eu/Thread-Extension-SAMPFUNCS-SuperDGUN?page=1

Like this mod I know it's a sampfuncs plugin but is there a way in cleo to make a kind of menu like that to select stuff from without having to use dialogs?

This is possible, but it is a lot of work, you'll need to implement logical and visual functions, array, structure, and ofc you'll need sf api, because doing it alone with standart cleo library is literally aids
 

Opcode.eXe

Expert
Joined
Feb 18, 2013
Messages
1,486
Reaction score
226
Location
( ͡° ͜ʖ ͡°)
[video=youtube]https://www.youtube.com/watch?v=puSkyil0pE8[/video]

See that menu? You can also make that but way better if you really want to. Here is the source code:


Code:
{$CLEO .cs}
0000:
0662: NOP "#########################"
0662: NOP "___Made by Opcode.eXe___"
0662: NOP "Www.Youtube.Com/OpcodeXe"
0662: NOP "#########################"
0AA8: call_function_method 0x6A0050 0xC1B340 num_params 1 pop 0 'CRED007' 0@ //// Get gxt text address by gxt name
0AA5: call 0x718600 2 pop 2 0@ "> iTroll Hacks by Opcode.eXe <"
wait 100
0AA8: call_function_method 0x6A0050 0xC1B340 num_params 1 pop 0 'CRED008' 0@ //// Get gxt text address by gxt name
0AA5: call 0x718600 2 pop 2 0@ "> Slap"
wait 100
0AA8: call_function_method 0x6A0050 0xC1B340 num_params 1 pop 0 'CRED009' 0@ //// Get gxt text address by gxt name
0AA5: call 0x718600 2 pop 2 0@ "> Twist"
wait 100
0AA8: call_function_method 0x6A0050 0xC1B340 num_params 1 pop 0 'CRED010' 0@ //// Get gxt text address by gxt name
0AA5: call 0x718600 2 pop 2 0@ "> Troll-ESP"
wait 100
0AA8: call_function_method 0x6A0050 0xC1B340 num_params 1 pop 0 'CRED011' 0@ //// Get gxt text address by gxt name
0AA5: call 0x718600 2 pop 2 0@ "> AntiMagnet"
wait 100
0AA8: call_function_method 0x6A0050 0xC1B340 num_params 1 pop 0 'CRED012' 0@ //// Get gxt text address by gxt name
0AA5: call 0x718600 2 pop 2 0@ "> Zero-Health"
wait 100
0AA8: call_function_method 0x6A0050 0xC1B340 num_params 1 pop 0 'CRED013' 0@ //// Get gxt text address by gxt name
0AA5: call 0x718600 2 pop 2 0@ "SyncTime: ~1~ms"
wait 100
0AA8: call_function_method 0x6A0050 0xC1B340 num_params 1 pop 0 'CRED014' 0@ //// Get gxt text address by gxt name
0AA5: call 0x718600 2 pop 2 0@ "CarSpeed: ~1~kmh"
wait 100



0AB3: var 1 = 0
0AB3: var 2 = 0
0AB3: var 3 = 0
0AB3: var 4 = 0
0AB3: var 5 = 0
0AB3: var 6 = 0
0AB3: var 7 = 0
0AB1: call_scm_func @RUN_CLEO 1 AT LINE @iTROLL                                             


11@ = 0
12@ = 0
13@ = 0
14@ = 0
15@ = 0
18@ = 357.0
20@ = 357.0
31@ = 0
WHILE TRUE
WAIT 0
        0AB1: @GetCursorPos 0 0@ 1@
        0AB1: @getFullScreenXY 2 CursorX 0@ CursorY 1@ to 0@ 1@
        0093: 0@ = integer 0@ to_float
        0093: 1@ = integer 1@ to_float
    if
    05A5:   is_area_center 0@ 1@ scale 5.0 5.0 overlaping_area_center 87.0 382.0 scale 86.0 84.0  // radar
    then
        if or
        0AB0: 1
        0AB0: 2
        then 
            if
            31@ == 0 
            then
                018C: play_sound 1083 at 0.0 0.0 0.0
                wait 350
                31@ = 1
            else       
                018C: play_sound 1084 at 0.0 0.0 0.0  
                wait 350
                31@ = 0 
            end
        end
    end
    if
    31@ == 1
    then
        if
        0AB0: 119
        then
        WHILE 0AB0: 119
        WAIT 0
        END
        end
        
        03F0: enable_text_draw 1
        0AB1: @GetCursorPos 0 0@ 1@
        0AB1: @getFullScreenXY 2 CursorX 0@ CursorY 1@ to 0@ 1@
//        0AD1: showtf "%d : %d" time 1 ms | X 0@ Y 1@
//        0AF8: samp add_message_to_chat "%d + %d" color 0xFF61BB 0@ 1@
        0093: 0@ = integer 0@ to_float
        0093: 1@ = integer 1@ to_float
        038E: draw_box_position 319.0 382.0 size 120.0 84.0 RGBA 0 0 0 255 // MAIN BOX
        3@ = 358.0 
        038E: draw_box_position 273.0 3@ size 6.0 6.0 RGBA 255 20 20 255 // CHECKBOX 1 
        3@ += 13.0
        038E: draw_box_position 273.0 3@ size 6.0 6.0 RGBA 255 20 20 255 // CHECKBOX 2 
        3@ += 13.0 
        038E: draw_box_position 273.0 3@ size 6.0 6.0 RGBA 255 20 20 255 // CHECKBOX 3  
        3@ += 13.0                                                                       
        038E: draw_box_position 273.0 3@ size 6.0 6.0 RGBA 255 20 20 255 // CHECKBOX 4  
        3@ += 13.0
        038E: draw_box_position 273.0 3@ size 6.0 6.0 RGBA 255 20 20 255 // CHECKBOX 5 
        03F0: enable_text_draw 1
        0342: set_text_draw_centered 1
        03E0: draw_text_behind_textures 0
        0340: set_text_draw_RGBA 200 98 44 255
        033F: set_text_draw_letter_size width 0.205 height 0.955
        081C: draw_text_outline 1 RGBA 10 10 10 255
        033E: set_draw_text_position 320.0 342.0 GXT 'CRED007'  // "iTroll Hacks by Opcode.eXe"     
        03F0: enable_text_draw 1
        0342: set_text_draw_centered 1
        03E0: draw_text_behind_textures 0
        0340: set_text_draw_RGBA 204 102 51 255
        033F: set_text_draw_letter_size width 0.205 height 0.955
        081C: draw_text_outline 1 RGBA 10 10 10 255
        033E: set_draw_text_position 289.0 353.0 GXT 'CRED008'  // "LagZ"
        03F0: enable_text_draw 1
        0342: set_text_draw_centered 1
        03E0: draw_text_behind_textures 0
        0340: set_text_draw_RGBA 204 102 51 255
        033F: set_text_draw_letter_size width 0.205 height 0.955
        081C: draw_text_outline 1 RGBA 10 10 10 255
        033E: set_draw_text_position 291.0 366.0 GXT 'CRED009'  // "ESP-BOX"
        03F0: enable_text_draw 1
        0342: set_text_draw_centered 1
        03E0: draw_text_behind_textures 0
        0340: set_text_draw_RGBA 204 102 51 255
        033F: set_text_draw_letter_size width 0.205 height 0.955
        081C: draw_text_outline 1 RGBA 10 10 10 255
        033E: set_draw_text_position 297.0 380.0 GXT 'CRED010'  // "AIMBOT"
        03F0: enable_text_draw 1
        0342: set_text_draw_centered 1
        03E0: draw_text_behind_textures 0
        0340: set_text_draw_RGBA 204 102 51 255
        033F: set_text_draw_letter_size width 0.205 height 0.955
        081C: draw_text_outline 1 RGBA 10 10 10 255
        033E: set_draw_text_position 302.0 393.0 GXT 'CRED011'  // "TRIGGER"                
        03F0: enable_text_draw 1
        0342: set_text_draw_centered 1
        03E0: draw_text_behind_textures 0
        0340: set_text_draw_RGBA 204 102 51 255
        033F: set_text_draw_letter_size width 0.205 height 0.955
        081C: draw_text_outline 1 RGBA 10 10 10 255
        033E: set_draw_text_position 303.0 406.0 GXT 'CRED012'  // "> USE SAMPFUNCS" 
           
        



        // TOGGL'S
        if
        32@ > 200
        then
            if or
            0AB0: 1
            0AB0: 2
            then
                32@ = 0
                if
                05A5:   is_area_center 0@ 1@ scale 5.0 5.0 overlaping_area_center 273.0 358.0 scale 5.0 5.0  // 1
                then
                    if 
                    11@ == 0
                    then
                    11@ = 1
                    018C: play_sound 1083 at 0.0 0.0 0.0 // ON
                    0AB3: var 1 = 1
                    else
                    11@ = 0
                    018C: play_sound 1084 at 0.0 0.0 0.0      // OFF
                    0AB3: var 1 = 0
                    end
                end
                if
                05A5:   is_area_center 0@ 1@ scale 5.0 5.0 overlaping_area_center 273.0 371.0 scale 5.0 5.0 // 2
                then
                    if 
                    12@ == 0
                    then
                    12@ = 1
                    018C: play_sound 1083 at 0.0 0.0 0.0 // ON
                    0AB3: var 2 = 1
                    else
                    12@ = 0
                    018C: play_sound 1084 at 0.0 0.0 0.0      // OFF
                    0AB3: var 2 = 0
                    end
                end            
                if
                05A5:   is_area_center 0@ 1@ scale 5.0 5.0 overlaping_area_center 273.0 384.0 scale 5.0 5.0 // 3
                then
                    if 
                    13@ == 0
                    then
                    13@ = 1
                    0AB1: call_scm_func @RUN_CLEO 1 AT LINE @ESP
                    018C: play_sound 1083 at 0.0 0.0 0.0 // ON
                    else
                    13@ = 0
                    018C: play_sound 1084 at 0.0 0.0 0.0      // OFF 
                    0459: end_thread_named 'ESP'
                    end
                end 
                if
                05A5:   is_area_center 0@ 1@ scale 5.0 5.0 overlaping_area_center 273.0 397.0 scale 5.0 5.0 // 4
                then
                    if 
                    14@ == 0
                    then
                    14@ = 1
                    0AB3: var 4 = 1
                    018C: play_sound 1083 at 0.0 0.0 0.0 // ON
                    else
                    14@ = 0
                    018C: play_sound 1084 at 0.0 0.0 0.0      // OFF
                    0AB3: var 4 = 0
                    end
                end
                if
                05A5:   is_area_center 0@ 1@ scale 5.0 5.0 overlaping_area_center 273.0 410.0 scale 5.0 5.0 // 5
                then
                    if 
                    15@ == 0
                    then
                    15@ = 1
                    018C: play_sound 1083 at 0.0 0.0 0.0 // ON
                    0AB3: var 5 = 1
                    else
                    15@ = 0
                    018C: play_sound 1084 at 0.0 0.0 0.0      // OFF
                    0AB3: var 5 = 0
                    end
                end             
              // TOGGL'S            
            end
        end
                 // CHECKBOX 
        if
        11@ == 1
        then
            038E: draw_box_position 273.0 358.0 size 5.0 5.0 RGBA 0 0 0 255 // CHECKBOX 1             
        end
        if
        12@ == 1
        then
            038E: draw_box_position 273.0 371.0 size 5.0 5.0 RGBA 0 0 0 255 // CHECKBOX 2  
        
        end
        if
        13@ == 1
        then
            038E: draw_box_position 273.0 384.0 size 5.0 5.0 RGBA 0 0 0 255 // CHECKBOX 3 
        end          
        if
        14@ == 1
        then
            038E: draw_box_position 273.0 397.0 size 5.0 5.0 RGBA 0 0 0 255 // CHECKBOX 4              
        end          
        if
        15@ == 1
        then
            038E: draw_box_position 273.0 410.0 size 5.0 5.0 RGBA 0 0 0 255 // CHECKBOX 5              
        end          
            // CHECKBOX 

        
        038E: draw_box_position 372.0 387.0 size 5.0 65.0 RGBA 100 0 0 255 // SLIDER
        if 
        05A5:   is_area_center 0@ 1@ scale 4.0 4.0 overlaping_area_center 372.0 387.0 scale 4.0 65.0 
        then
            if
            05A5:   is_area_center 0@ 1@ scale 4.0 4.0 overlaping_area_center 372.0 18@ scale 4.0 4.0
            then
                18@ -= 357.0
                18@ *= 33.35
                03F0: enable_text_draw 1
                0342: set_text_draw_centered 1
                03E0: draw_text_behind_textures 0
                0340: set_text_draw_RGBA 204 102 51 255
                033F: set_text_draw_letter_size width 0.205 height 0.955
                081C: draw_text_outline 1 RGBA 10 10 10 255
                1@ += 15.0
                0092: 19@ = float 18@ to_integer
                045A: draw_text_1number 0@ 1@ GXT 'CRED013' number 19@  //

                1@ -= 15.0
                0AB3: var 6 = 19@
                18@ /= 33.35
                18@ += 357.0
            end
            if or
            0AB0: 1
            0AB0: 2
            then
            0087: 18@ = 1@ // (float)
            end
        end
        if
        18@ > 417.0
        then
        18@ = 417.0
        end
        if
        18@ < 357.0
        then
        18@ = 357.0
        end
        038E: draw_box_position 372.0 18@ size 4.0 4.0 RGBA 0 0 0 255 // SLIDER
        
// slider 2
        038E: draw_box_position 364.0 387.0 size 5.0 65.0 RGBA 100 0 0 255 // SLIDER
        if 
        05A5:   is_area_center 0@ 1@ scale 4.0 4.0 overlaping_area_center 364.0 387.0 scale 4.0 65.0 
        then
            if
            05A5:   is_area_center 0@ 1@ scale 4.0 4.0 overlaping_area_center 364.0 20@ scale 4.0 4.0
            then
                20@ -= 357.0
                20@ *= 5.0
                03F0: enable_text_draw 1
                0342: set_text_draw_centered 1
                03E0: draw_text_behind_textures 0
                0340: set_text_draw_RGBA 204 102 51 255
                033F: set_text_draw_letter_size width 0.205 height 0.955
                081C: draw_text_outline 1 RGBA 10 10 10 255
                1@ += 15.0
                0092: 19@ = float 20@ to_integer
                045A: draw_text_1number 0@ 1@ GXT 'CRED014' number 19@  //

                1@ -= 15.0
                
                0AB3: var 7 = 19@
                20@ /= 5.0
                20@ += 357.0
            end
            if or
            0AB0: 1
            0AB0: 2
            then
            0087: 20@ = 1@ // (float)
            end
        end
        if
        20@ > 417.0
        then
        20@ = 417.0
        end
        if
        20@ < 357.0
        then
        20@ = 357.0
        end
        038E: draw_box_position 364.0 20@ size 4.0 4.0 RGBA 0 0 0 255 // SLIDER
        // slider 2         
                            
    end
END



:ESP
THREAD 'ESP'

WHILE TRUE
wait 0   
    0A8D: 29@ = read_memory 0xB74490 size 4 virtual_protect 0
    000A: 29@ += 0x4
    0A8D: 29@ = read_memory 29@ size 4 virtual_protect 0
    for 30@ = 0 to 35584 step 0x100
        0A8D: 31@ = read_memory 29@ size 1 virtual_protect 0
        000A: 29@ += 0x1
        if and
            0029:  31@ >= 0x00 
            001B:  0x80 > 31@
        then 
            005A: 31@ += 30@
            if and
            803C:   not  $PLAYER_ACTOR == 31@ // (int)
            02CB:   actor 31@ bounding_sphere_visible
            then
                if
                Actor.Driving(31@)
                then
                    04C4: store_coords_to 1@ 2@ 3@ from_actor 31@ with_offset 0.0 0.0 0.0         
                    04C4: store_coords_to 1@ 2@ 3@ from_actor 31@ with_offset 0.0 0.0 0.0 
                    0AB1: call_scm_func @getScreenXYFrom3DCoords 3 coords_XYZ 1@ 2@ 3@ store_to 4@ 5@ 
                    03F0: enable_text_draw 1
                    038E: draw_box_position 4@ 5@ size 3.5 3.5 RGBA 255 0 0 255
                    038E: draw_box_position 4@ 5@ size 2.0 2.0 RGBA 200 0 0 255
                    038E: draw_box_position 4@ 5@ size 1.5 1.5 RGBA 150 0 0 255
                    038E: draw_box_position 4@ 5@ size 1.0 1.0 RGBA 100 0 0 255
                    038E: draw_box_position 4@ 5@ size 0.5 0.5 RGBA 50 0 0 255
                end
            end
        end
    end
END



:iTROLL
THREAD 'iTR'


WHILE TRUE
wait 0
0AB4: 11@ = var 1
0AB4: 12@ = var 2
0AB4: 14@ = var 4
0AB4: 15@ = var 5
    if or
    11@ == 1
    12@ == 1
    14@ == 1
    15@ == 1
    then
        if and
        Actor.Driving($PLAYER_ACTOR)
        0AB0: 1
        then
            03C0: 25@ actor $PLAYER_ACTOR car
            Actor.StorePos($PLAYER_ACTOR, 0@, 1@, 2@)
            Actor.StorePos($PLAYER_ACTOR, 29@, 28@, 27@)
            3@ = 100000.0 
            gosub @AIC_GETACTOR
            if
            056D:  9@
            then
                03C0: 30@ = actor 9@ car
                036A: $PLAYER_ACTOR put in car 30@
                0AB4: 10@ = var 6
                0093: 11@ = integer 10@ to_float

                11@ /= 2.0
                wait 11@
                
                0AB4: 10@ = var 7
                Car.SetSpeedInstantly(30@, 10@) 
                0AB4: 10@ = var 1 //SLAP
                if 
                10@ == 1
                then
                    0208: 17@ = random_float_in_ranges 0.0 1.0
                    0208: 18@ = random_float_in_ranges 0.0 1.0
                    07D5: set_car 30@ velocity_in_direction_XYZ 17@ 18@ 8.0 rotation_velocitiesXY 0.0 0.0 unk 0.0
                end
                0AB4: 10@ = var 2 //TWIST
                if 
                10@ == 1
                then
                    0208: 18@ = random_float_in_ranges 0.0 360.0
                    0731: set_car 30@ y_angle_to 18@
                end
                0AB4: 10@ = var 4 //Anti-Magnet
                if 
                10@ == 1
                then
                    Car.StorePos(25@, 2@, 3@, 4@)
                    Car.StorePos(30@, 5@, 6@, 7@)
                    0063: 2@ -= 5@ // (float) 
                    0063: 3@ -= 6@ // (float) 
                    0604: get_Z_angle_for_point 2@ 3@ store_to 7@
                    7@ -= 180.0 
                    Car.Angle(30@) = 7@
                end                
                0AB4: 10@ = var 5 //health
                if 
                10@ == 1
                then
                    0224: set_car 30@ health_to 100
                    else
                    0224: set_car 30@ health_to 500
                end
                0AB4: 10@ = var 6
                0093: 11@ = integer 10@ to_float

                11@ /= 2.0
                wait 11@               
                if
                056E:   car 25@ defined
                then
                    036A: $PLAYER_ACTOR 25@
                    018C: 1056 0.0 0.0 0.0
                    else
                    0362: $PLAYER_ACTOR 29@ 28@ 27@
                end
            end
        end
    end
END




















:getFullScreenXY
2@ = 640.0 // screen X
0A8D: 4@ = read_memory 0xC17044 size 4 virtual_protect 0 // full screen X
0093: 4@ = integer 4@ to_float
0073: 2@ /= 4@
006B: 0@ *= 2@
3@ = 448.0 // screen Y
0A8D: 5@ = read_memory 0xC17048 size 4 virtual_protect 0 // full screen Y
0093: 5@ = integer 5@ to_float
0073: 3@ /= 5@
006B: 1@ *= 3@
0AB2: ret 2 0@ 1@

:GetCursorPos
// 0AB1: call @GetCursorPos 0 3@ 4@
0AA2: 0@ = load_library "user32.dll"
0AA4: 1@ = get_proc_address "GetCursorPos" library 0@
0AC7: 2@ = var 5@ offset
0AA5: call 1@ num_params 1 pop 0 2@
0A8D: 3@ = read_memory 2@ size 4 virtual_protect 0
2@ += 4
0A8D: 4@ = read_memory 2@ size 4 virtual_protect 0
0AB2: ret 2 3@ 4@



{
    START NEW THREAD WITHOUT INTERRUPTING MAIN THREAD
    0AB1: call_scm_func @RUN_CLEO_MOD 1 AT LINE @CLEO
}

:RUN_CLEO
0A9F: 32@ = current_thread_pointer
000A: 32@ += 0x10
0A8D: 32@ = read_memory 32@ size 4 virtual_protect 0
0062: 32@ -= 0@
0AA7: call_function 0x464C20 num_params 1 pop 1 32@ 33@
005A: 32@ += 0@
000A: 33@ += 0x10
0A8C: write_memory 33@ size 4 value 32@ virtual_protect 0
000A: 33@ += 0x2C
for 32@ = 0 to 30
    0A8C: write_memory 33@ size 4 value 1@(32@,30i) virtual_protect 0
    000A: 33@ += 4
end
0AB2: ret 0


              
//0AB1: call_scm_func @getScreenXYFrom3DCoords 3 3D_coords_X 0@ Y 1@ Z 2@ store_screen_X_to 3@ Y_to 4@
:getScreenXYFrom3DCoords
0AA7: call_function 0x70CE30 num_params 6 pop 6 clipNear 1 clipFar 1 yMult 7@s xMult 6@s outVector 2@s inVector 0@s result 29@
0073: 2@ /= 6@
0073: 2@ /= 4@
0073: 3@ /= 7@
0073: 3@ /= 4@
2@ *= 640.0
3@ *= 448.0
0AB2: ret 2 2@ 3@


:AIC_GETACTOR
0395: clear_area 1 at 0@ 1@ 2@ radius 100000.0
0006: 16@ = 305868
0006: 5@ = @AIC_TESTACTORHANDLE
0006: 6@ = 1988
0002: jump @AIC_STARTSEARCH 
:AIC_GETOBJECT
0006: 16@ = 305871
0006: 17@ = @AIC_TESTOBJECTHANDLE
0006: 20@ = 412
:AIC_GETVEHICLE
0006: 16@ = 305869
0006: 17@ = @AIC_TESTVEHICLEHANDLE
0006: 18@ = -1
0006: 20@ = 2584
0256:   player $PLAYER_CHAR defined
004D: jump_if_false @AIC_STARTSEARCH 
00DF:   actor $PLAYER_ACTOR driving
004D: jump_if_false @AIC_STARTSEARCH
03C0: 18@ = actor $PLAYER_ACTOR car
0002: jump @AIC_STARTSEARCH
:AIC_STARTSEARCH
008B: 16@ = &0(16@,1i) // CPool*
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 16@ + 8 )^ = 7@  // CPool.Size
0A8D: 11@ = read_memory 16@ size 4 virtual_protect 0        // CPool.pUnits
0006: 9@ = -1 
0006: 10@ = 0
:AIC_SEARCHLOOPMAIN
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 11@ + 20 )^ = 4@  // xyz*
8039:   not  4@ == 0 
004D: jump_if_false @AIC_SEARCHLOOPNEXT 
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 4@ + 48 )^ = 12@  // x
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 4@ + 52 )^ = 13@  // y
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 4@ + 56 )^ = 14@  // z
050A: 15@ = distance_between_XYZ 0@ 1@ 2@ and_XYZ 12@ 13@ 14@ 
0025:   3@ > 15@ // (float) 
004D: jump_if_false @AIC_SEARCHLOOPNEXT 
0085: 9@ = 10@ // (int) // counter
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 16@ + 4 )^ = 4@ // CPool.flags
005A: 4@ += 9@ // (int) 
0A8D: 4@ = read_memory 4@ size 1 virtual_protect 0 
0012: 9@ *= 256 
005A: 9@ += 4@ // (int)
0002: jump 5@
:AIC_TESTACTORHANDLE
056D:   is 9@ valid_actor_handle
004D: jump_if_false @AIC_NOHANDLE 
00D6: if or
003C:   $PLAYER_ACTOR == 9@ // (int) 
0118:   actor 9@ dead 
004D: jump_if_false @AIC_NEWSEARCHRADIUS
0002: jump @AIC_NOHANDLE
:AIC_TESTOBJECTHANDLE
//0001: wait 0
83CA:   not object 9@ exists 
004D: jump_if_false @AIC_NEWSEARCHRADIUS
:AIC_TESTVEHICLEHANDLE
056E:   is 9@ valid_vehicle_handle
004D: jump_if_false @AIC_NOHANDLE
00D6: if or
003B:   18@ == 9@ // (int) 
0119:   car 9@ wrecked 
004D: jump_if_false @AIC_NEWSEARCHRADIUS
0002: jump @AIC_NOHANDLE
:AIC_NOHANDLE
0006: 9@ = -1 
0002: jump @AIC_SEARCHLOOPNEXT 
:AIC_NEWSEARCHRADIUS
if
00DF:   actor 9@ driving
jf @AIC_NOHANDLE                                        
0085: 3@ = 15@
:AIC_SEARCHLOOPNEXT 
005A: 11@ += 6@ // (int) 
000A: 10@ += 1 
002D:   10@ >= 7@ // (int)
004D: jump_if_false @AIC_SEARCHLOOPMAIN
0051: return 
:AIC_READMEMOFFSET
0A8E: 0@ = 0@ + 1@ // int
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
0AB2: ret 1 0@
or take a look at https://www.youtube.com/watch?v=t0y4n4zbONU
 
Status
Not open for further replies.
Top