{$CLEO} {$INCLUDE SF} 0000: repeat wait 0 until SAMP.Available() 0b34: "find" @find 0b34: "under" @undercover 0b34: "chit" @chit 0b34: "o1" @order1 0b34: "ghit" @gethit 0b34: "trr" @restart 0b34: "turn" @phone 0b34: "cancelhit" @cancelhit 0b34: "debug" @debug 0b34: "myctc" @mycontract 0b34: "kp" @killcp 0BFC: set_global_var "TARGETMODE" = 0 if 0aab: file_exists "CLEO\targetfind3r.ini" then 0AF0: 29@ = get_int_from_ini_file "cleo\targetfind3r.ini" section "target" key "delete" 0AF0: 25@ = get_int_from_ini_file "cleo\targetfind3r.ini" section "target" key "mode" if 29@ < 0 then 0B00: delete_file "CLEO\targetfind3r.ini" 0AF1: write_int 25@ to_ini_file "cleo\targetfind3r.ini" section "target" key "mode" 0AF1: write_int 1 to_ini_file "cleo\targetfind3r.ini" section "target" key "delete" 29@ = 1 end end if or 29@ == 1 8AAB: file_exists "CLEO\targetfind3r.ini" then 0AF5: write_string "1.4.1" to_ini_file "cleo\targetfind3r.ini" section "target" key "ver" if not 29@ == 1 then 0AF1: write_int 1 to_ini_file "cleo\targetfind3r.ini" section "target" key "mode" end 0AF1: write_int 100 to_ini_file "cleo\targetfind3r.ini" section "distance" key "rank1" 0AF1: write_int 100 to_ini_file "cleo\targetfind3r.ini" section "distance" key "rank2" 0AF1: write_int 150 to_ini_file "cleo\targetfind3r.ini" section "distance" key "rank3" 0AF1: write_int 160 to_ini_file "cleo\targetfind3r.ini" section "distance" key "rank4" 0AF1: write_int 180 to_ini_file "cleo\targetfind3r.ini" section "distance" key "rank5" alloc 29@ 256 0AF4: 29@ = read_string_from_ini_file "CLEO\targetfind3r.ini" section "target" key "ver" else alloc 29@ 256 0AF4: 29@ = read_string_from_ini_file "CLEO\targetfind3r.ini" section "target" key "ver" end 0C11: memset destination 29@ value 0 size 256 const __RED = 0xCE1924 __DRD = 0x660200 __GRN = 0x48EB12 __YLW = 0xFFC726 __BLU = 0x33B9FB __WHT = 0xFAFAFA end chatmsg "{%x}[{%x}K{%x}] {%x}TargetFind{%x}3{%x}r {%x}v%s {%x}loaded, use {%x}[/target] {%x}for help." -1 __DRD __RED __DRD {K} __RED {TARGET} __GRN __RED {Find3r} __YLW 29@ {ver} __RED __YLW __RED 0c6a: -1 = create_custom_thread_at_label @menu_find3r 5@ = 4 13@ = 1 15@ = -1 0BE3: raknet setup_incoming_rpc_hook @target_chat 6@ = 0 while true wait 0 if 0C5F: is_global_var "TARGETMODE" defined then 0BFD: 24@ = get_global_var "TARGETMODE" end 03F0: enable_text_draw 1 if 6@ == 1 //Contract then if 0ab1: call @cp_exist 0 then 0ab1: call @setPos 1 15@ end 0ab1: call @setDistanceTD 3 15@ 14@ 24@ if and 2@ = SAMP.GetActorHandleByPlayerID(15@) 02D8: actor $PLAYER_ACTOR current_weapon == 34 then if or 16@ == 1 key_press 2 then 0665: get_char_model 2@ store_to 11@ 0C48: samp textdraw 500 create "Sniper" pos 535.0 180.0 0C49: samp textdraw 500 set_box true color 0x00000000 size 100.0 100.0 0C4C: samp textdraw 500 set_style 5 0C4F: samp textdraw 500 set_model 11@ rotation 0.0 0.0 0.0 zoom 1.1 veh_color 0 0 0C48: samp textdraw 600 create "TargetFind3r" pos 585.0 275.0 0C4E: samp textdraw 600 set_outline 1 color 0xFF000000 0C4A: samp textdraw 600 set_align 2 0C4B: samp textdraw 600 set_proportional true 0C4D: samp textdraw 600 set_shadow 1 color 0xFF000000 if not SAMP.ChatInputOpened() then 1@ = 0 end 16@ = 0 end if key_down 2 //FindTarget then if 0ab1: call @target 1 2@ then 0C49: samp textdraw 600 set_box true color 0xff00ff00 size 100.0 100.0 else 0C49: samp textdraw 600 set_box true color 0xffff0000 size 100.0 100.0 end 0ab1: call @target_status 1 2@ 0ab1: call @setSize 0 else if not 1@ == 1 //If chat func not running then 0C5E: samp textdraw 500 delete 0C5E: samp textdraw 600 delete 0C5E: samp textdraw 700 delete else //Chat reminder 0C50: samp textdraw 600 set_string "Press LClick" 0ab1: call @target_status 1 2@ 0C49: samp textdraw 600 set_box true color 0xffffff00 size 100.0 100.0 end end else if and 0C5D: samp textdraw 500 is_exists 0C5D: samp textdraw 600 is_exists 0C5D: samp textdraw 700 is_exists then 0C5E: samp textdraw 500 delete 0C5E: samp textdraw 600 delete 0C5E: samp textdraw 700 delete else 16@ = 1 end end if and //ChatOpen not SAMP.ChatInputOpened() key_down 82 key_down 2 not 1@ == 1 then 1@ = 1 16@ = 1 0B79: samp set_chat_input_enabled 1 end if and 24@ == 1 3@ == 1 then if 8C5D: samp textdraw 155 is_exists then 0C48: samp textdraw 155 create "~y~PHONE OFF" pos 354.5 405.0 0C4E: samp textdraw 155 set_outline 1 color 0xFF000000 0C4A: samp textdraw 155 set_align 3 0C4C: samp textdraw 155 set_style 1 0C52: samp textdraw 155 set_letter_size 0.33 1.2 color 0xFFffffff 0C4B: samp textdraw 155 set_proportional true end end end if 1@ == 1 then if and not SAMP.ChatInputOpened() key_down 2 then 0C50: samp textdraw 600 set_string "TargetFind3r" 1@ = 0 else 0ab1: call @sniper_csh 0 end end if 4@ == 1 then gosub @deletePhone if and not 6@ == 1 5@ > -1 then 0ab1: call @timer 1 32@ | 7@ alloc 8@ 50 format 8@ "%02d : %02d" 5@ 7@ if 8c5d: samp textdraw 158 is_exists then 0C48: samp textdraw 158 create 8@ pos 342.3 405.0 0C4E: samp textdraw 158 set_outline 1 color 0xFF000000 0C4A: samp textdraw 158 set_align 3 0C4C: samp textdraw 158 set_style 1 0C52: samp textdraw 158 set_letter_size 0.33 1.2 color 0xFFffffff 0C4B: samp textdraw 158 set_proportional true end 0C50: samp textdraw 158 set_string 8@ free 8@ if 32@ >= 60000 then 5@ -= 1 32@ = 0 end else 5@ = 4 4@ = 0 if 0C5D: samp textdraw 158 is_exists then 0C5E: samp textdraw 158 delete end end end END :debug SAMP.IsCommandTyped(15@) 0C1A: 15@ = atoi 15@ 0af0: 24@ = get_int_from_ini_file "cleo\targetfind3r.ini" section "target" key "mode" 0BFC: set_global_var "TARGETMODE" = 24@ 6@ = 1 SAMP.CmdRet() :killcp say "/killcp" SAMP.CmdRet() :mycontract say "/mycontract" SAMP.CmdRet() :phone SAMP.IsCommandTyped(9@) 0C28: strlwr in 9@ out 9@ if 0c14: 9@ "off" then 3@ = 1 else if or 0c14: 9@ "on" 0c14: 9@ "off calls" then 3@ = 0 gosub @deletePhone end end say "/turn %s" 9@ SAMP.CmdRet() :undercover say "/undercover" SAMP.CmdRet() :chit if 6@ == 1 then gosub @setVars end say "/cancelhit" SAMP.CmdRet() :cancelhit if 6@ == 1 then gosub @setVars end say "/cancelhit" SAMP.CmdRet() :checkcontract SAMP.IsCommandTyped(0@) say "/checkcontract %s" 0@ SAMP.CmdRet() :gethit say "/gethit" SAMP.CmdRet() :order1 say "/order 1" SAMP.CmdRet() :find SAMP.IsCommandTyped(0@) 0ab1: call @find_target 1 0@ | 15@ say "/find %s" 0@ if SAMP.IsPlayerConnected(15@) then say "/id %d" 15@ end SAMP.CmdRet() :deletePhone if 0C5D: samp textdraw 155 is_exists then 0C5E: samp textdraw 155 delete end return :setVars 4@ = 1 6@ = 0 32@ = 0 0C5E: samp textdraw 500 delete 0C5E: samp textdraw 600 delete 0C5E: samp textdraw 700 delete return :target_chat 0BE5: raknet 31@ = get_hook_param PARAM_PACKETID if 31@ == RPC_ScrClientMessage then 0C11: memset destination 29@ value 0 size 256 0BE5: raknet 31@ = get_hook_param PARAM_BITSTREAM 0BE7: raknet 30@ = bit_stream_read 31@ type BS_TYPE_INT //color 0BE7: raknet 30@ = bit_stream_read 31@ type BS_TYPE_INT //lenght 0BE8: raknet bit_stream 31@ read_array 29@ size 30@ //string 0C0D: struct 29@ offset 30@ size 1 = 0 if 0C29: -1 = stristr string1 29@ string2 "You have a new contract" then 6@ = 1 14@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR) say "/id %d" 14@ 17@ = 1 0af0: 10@ = get_int_from_ini_file "cleo\targetfind3r.ini" section "target" key "mode" 0BFC: set_global_var "TARGETMODE" = 10@ if 10@ == 1 then 041A: 10@ = actor $PLAYER_ACTOR weapon 34 ammo chatmsg "You have a new contract (/myctc). >Sniper ammo {eb541e}(%d)" -256 10@ 0BE0: raknet hook_ret false end end if 0C29: -1 = stristr string1 29@ string2 "| Faction:" then if 17@ == 1 then 0AA5: call 0x8220AD num_params 3 pop 3 14@v "%*[^|]|%*[^|]|%*[^:]: %*[^(] (rank %d)|%*[^|]| %*s: %*d" 29@ 17@ = 0 0BE0: raknet hook_ret false end end if or 0C29: -1 = stristr string1 29@ string2 "has succesfully completed the contract" 0C29: -1 = stristr string1 29@ string2 "failed to complete the contract" then if 6@ == 1 then alloc 28@ 50 alloc 26@ 50 0C11: memset destination 26@ value 0 size 50 0AA5: call 0x8220AD num_params 3 pop 3 28@ "%s" 29@ 27@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR) 27@ = SAMP.GetPlayerNickname(27@) 25@ = SAMP.GetPlayerNickname(15@) if or 0C29: -1 = stristr string1 29@ string2 25@ 0C29: -1 = stristr string1 28@ string2 27@ then gosub @setVars end free 28@ free 26@ end end if and 0C29: -1 = stristr string1 29@ string2 "minute dupa ce ai anulat/terminat" 0C29: -1 = stristr string1 29@ string2 "folosi /gethit" then if 4@ == 1 then if 5@ == 0 then chatmsg "Trebuie sa astepti 00:%02d secunde dupa ce ai anulat/terminat un contract pentru a folosi /gethit." -3215188 7@ else chatmsg "Trebuie sa astepti %02d:%02d minute dupa ce ai anulat/terminat un contract pentru a folosi /gethit." -3215188 5@ 7@ end 0BE0: raknet hook_ret false end else if and 0C29: -1 = stristr string1 29@ string2 "after canceling/completing" 0C29: -1 = stristr string1 29@ string2 "before you can use /gethit." then if 4@ == 1 then if 5@ == 0 then chatmsg "You need to wait 00:%02d seconds after canceling/completing a contract before you can use /gethit." -3215188 7@ else chatmsg "You need to wait %02d:%02d minutes after canceling/completing a contract before you can use /gethit." -3215188 5@ 7@ end 0BE0: raknet hook_ret false end end end if and 0C29: -1 = stristr string1 29@ string2 "30-90 minute in" 0C29: -1 = stristr string1 29@ string2 "pentru DM!" then if and 6@ == 1 02D8: actor $PLAYER_ACTOR current_weapon == 34 then 01B9: set_actor $PLAYER_ACTOR armed_weapon_to 34 end else if and 0C29: -1 = stristr string1 29@ string2 "can spend 30-90 minutes" 0C29: -1 = stristr string1 29@ string2 "in jail for DM!" then if and 6@ == 1 02D8: actor $PLAYER_ACTOR current_weapon == 34 then 01B9: set_actor $PLAYER_ACTOR armed_weapon_to 34 end end end end 0BE0: raknet hook_ret true :find_target 0C2F: 27@ = strtol 0@ radix 10 store_end_to 28@ 0C17: 26@ = strlen 28@ if 26@ >= 1 then for 31@ = 0 to 1000 30@ = SAMP.GetPlayerNickname(31@) if and SAMP.IsPlayerConnected(31@) 0C29: -1 = stristr string1 30@ string2 28@ then 29@ = 1 ret 1 31@ break else 29@ = 2 end end end if and 29@ == 0 SAMP.IsPlayerConnected(27@) then ret 1 27@ end if 29@ == 2 then ret 1 -1 end ret 1 -1 :target_status alloc 27@ 128 0C11: memset destination 27@ value 0 size 128 if 044B: actor 0@ on_foot then format 27@ "Status: ~y~ON FOOT" if 8C5D: samp textdraw 700 is_exists then 0ab1: call @txd_700 1 27@ else 0C50: samp textdraw 700 set_string 27@ end else if 0965: actor 0@ swimming then format 27@ "Status: ~y~SWIMMING" if 8C5D: samp textdraw 700 is_exists then 0ab1: call @txd_700 1 27@ else 0C50: samp textdraw 700 set_string 27@ end else if Actor.Driving(0@) then alloc 25@ 50 31@ = Actor.CurrentCar(0@) 046C: 30@ = car 31@ driver 01EA: 29@ = car 31@ max_passengers 0441: 26@ = car 31@ model 0ADB: 25@ = car_model 26@ name 0ADE: 25@ = text_by_GXT_entry 25@ if 003B: 30@ == 0@ then //chatmsg "Driver" -1 format 27@ "Status: ~y~DRIVER~n~~w~Car: ~y~%s" 25@ if 8C5D: samp textdraw 700 is_exists then 0ab1: call @txd_700 1 27@ else 0C50: samp textdraw 700 set_string 27@ end else for 28@ = 0 to 29@ 0432: 24@ = get_actor_handle_from_car 31@ passenger_seat 28@ if 003b: 24@ == 0@ then 28@ += 1 format 27@ "Status: ~y~PASSENGER~n~~w~Seat: ~y~%d~n~~w~Car: ~y~%s" 28@ 25@ break end 24@ = 0 end if 8C5D: samp textdraw 700 is_exists then 0ab1: call @txd_700 1 27@ else 0C50: samp textdraw 700 set_string 27@ end //chatmsg "Passenger" -1 end free 25@ else 23@ = Actor.Health(0@) if 23@ <= 0 then format 27@ "Status: ~r~DEAD" if 8C5D: samp textdraw 700 is_exists then 0ab1: call @txd_700 1 27@ else 0C50: samp textdraw 700 set_string 27@ end end end end end free 27@ ret 0 :txd_700 0C48: samp textdraw 700 create 0@ pos 635.0 300.0 0C4E: samp textdraw 700 set_outline 1 color 0xFF000000 0C4A: samp textdraw 700 set_align 3 0C4B: samp textdraw 700 set_proportional true ret 0 :target Actor.StorePos(0@, 31@, 30@, 29@) Actor.StorePos($PLAYER_ACTOR, 28@, 27@, 26@) if and 02CB: actor 0@ bounding_sphere_visible 06BD: no_obstacles_between 31@ 30@ 29@ and 28@ 27@ 26@ solid 1 car 0 actor 0 object 0 particle 0 then 0A96: 15@ = actor 0@ struct 0AC7: 16@ = var 16@ offset 0AA6: call_method 0x5E4280 struct 15@ num_params 3 pop 0 1 26 16@ // 16@ 17@ 18@ x y z 0B55: convert_3D_coords 16@ 17@ 18@ to_screen 16@ 17@ 0B5F: convert_window_screen_coords 16@ 17@ to_game_screen_coords 19@ 20@ // 22 0AC7: 16@ = var 16@ offset 0AA6: call_method 0x5E4280 struct 15@ num_params 3 pop 0 1 34 16@ // 16@ 17@ 18@ x y z 0B55: convert_3D_coords 16@ 17@ 18@ to_screen 16@ 17@ 0B5F: convert_window_screen_coords 16@ 17@ to_game_screen_coords 16@ 17@ // 32 0509: 21@ = distance_between_XY 16@ 17@ 19@ 20@ //21@ - WIGHT 0AC7: 16@ = var 16@ offset 0AA6: call_method 0x5E4280 struct 15@ num_params 3 pop 0 1 54 16@ // 16@ 17@ 18@ x y z 0B55: convert_3D_coords 16@ 17@ 18@ to_screen 16@ 17@ 0B5F: convert_window_screen_coords 16@ 17@ to_game_screen_coords 19@ 20@ // 22 0AC7: 16@ = var 16@ offset 0AA6: call_method 0x5E4280 struct 15@ num_params 3 pop 0 1 6 16@ // 16@ 17@ 18@ x y z 0B55: convert_3D_coords 16@ 17@ 18@ to_screen 16@ 17@ 0B5F: convert_window_screen_coords 16@ 17@ to_game_screen_coords 16@ 17@ // 32 0509: 22@ = distance_between_XY 16@ 17@ 19@ 20@ //22@ - HEIGHT 0AC7: 16@ = var 16@ offset 0AA6: call_method 0x5E4280 struct 15@ num_params 3 pop 0 1 3 16@ // 16@ 17@ 18@ x y z 0B55: convert_3D_coords 16@ 17@ 18@ to_screen 16@ 17@ 0B5F: convert_window_screen_coords 16@ 17@ to_game_screen_coords 16@ 17@ // 32 {16@ 17@ 21@ 22@} 0B5E: get_cursor_pos 5@ 4@ 16@ -= 320.0 17@ -= 224.0 0097: make 16@ absolute_float 0097: make 17@ absolute_float 21@ /= 2.0 22@ /= 2.0 if and 8035: 16@ <= 21@ 8035: 17@ <= 22@ then ret_t else ret_f end else ret_f end ret 0 :timer var 31@ : integer 0@ : integer end 31@ = 60000 31@ -= 0@ 31@ /= 1000 ret 1 31@ :setDistanceTD {0@ - pHandle | 1@ - mRank | 2@ - mode} var 20@ : integer end alloc 31@ 128 for 17@ = 2050 to 2090 //search /find textdraw if 0C5D: samp textdraw 17@ is_exists then 0C11: memset destination 31@ value 0 size 128 0C5A: samp textdraw 17@ get_string_to 31@ if 0C29: -1 = stristr string1 31@ string2 "~w~Target: ~r~" then 15@ = 1 //true break end end end if 15@ == 1 then alloc 30@ 50 //nickname alloc 27@ 50 //location alloc 19@ 128 //string for changed textdraw 0AA5: call 0x8220AD num_params 5 pop 5 params 27@ 29@v 30@ "~w~Target: ~r~%[^~]~w~(%d)~n~Distance: ~%*[^~]~%*dm ~w~(%[^)])" 31@ if 18@ = SAMP.GetActorHandleByPlayerID(0@) then Actor.StorePos(18@, 26@, 25@, 24@) else if 0ab1: call @cp_exist 0 then 0ab1: call @getPos 0 26@ 25@ 24@ else 0ab1: call @getIniPos 0 26@ 25@ 24@ end end Actor.StorePos($PLAYER_ACTOR, 23@, 22@, 21@) 050A: 28@ = distance_between_XYZ 26@ 25@ 24@ and_XYZ 23@ 22@ 21@ 0092: 28@ = float 28@ to_integer if and 02D8: actor $PLAYER_ACTOR current_weapon == 34 2@ == 1 //mode then format 10@s "rank%d" 1@ 0AF0: 20@ = get_int_from_ini_file "cleo\targetfind3r.ini" section "distance" key 10@s if and 28@ < 20@ 1@ == 1 then format 19@ "~w~Target: ~r~%s~w~(%d)~n~Distance: ~p~%dm ~w~(%s)" 30@ 29@ 28@ 27@ 16@ = 1 end if and 28@ < 20@ 1@ == 2 then format 19@ "~w~Target: ~r~%s~w~(%d)~n~Distance: ~p~%dm ~w~(%s)" 30@ 29@ 28@ 27@ 16@ = 1 end if and 28@ < 20@ 1@ == 3 then format 19@ "~w~Target: ~r~%s~w~(%d)~n~Distance: ~p~%dm ~w~(%s)" 30@ 29@ 28@ 27@ 16@ = 1 end if and 28@ < 20@ 1@ == 4 then format 19@ "~w~Target: ~r~%s~w~(%d)~n~Distance: ~p~%dm ~w~(%s)" 30@ 29@ 28@ 27@ 16@ = 1 end if and 28@ < 20@ 1@ == 5 then format 19@ "~w~Target: ~r~%s~w~(%d)~n~Distance: ~p~%dm ~w~(%s)" 30@ 29@ 28@ 27@ 16@ = 1 end end if 16@ == 0 then format 19@ "~w~Target: ~r~%s~w~(%d)~n~Distance: ~r~%dm ~w~(%s)" 30@ 29@ 28@ 27@ end 0C50: samp textdraw 17@ set_string 19@ free 30@ free 27@ free 19@ end free 31@ ret 0 :sniper_csh 0@ = 12 0@ += 12006488 0A8C: write_memory 0@ size 2 value 128 virtual_protect 0 ret 0 :setPos if 1@ = SAMP.GetActorHandleByPlayerID(0@) then Actor.StorePos(1@, 4@, 5@, 6@) 0BB2: samp 3@ = get_misc_info_ptr 3@ += 12 0A8C: write_memory 3@ size 4 value 4@ virtual_protect 0 3@ += 4 0A8C: write_memory 3@ size 4 value 5@ virtual_protect 0 3@ += 4 0A8C: write_memory 3@ size 4 value 6@ virtual_protect 0 end ret 0 :getIniPos 0AF2: 31@ = get_float_from_ini_file "cleo\targetfind3r.ini" section "cp" key "x" 0AF2: 30@ = get_float_from_ini_file "cleo\targetfind3r.ini" section "cp" key "y" 0AF2: 29@ = get_float_from_ini_file "cleo\targetfind3r.ini" section "cp" key "z" ret 3 31@ 30@ 29@ :getPos 0BB2: samp 3@ = get_misc_info_ptr 3@ += 12 0A8D: 31@ = read_memory 3@ size 4 virtual_protect 0 3@ += 4 0A8D: 30@ = read_memory 3@ size 4 virtual_protect 0 3@ += 4 0A8D: 29@ = read_memory 3@ size 4 virtual_protect 0 0AF3: write_float 31@ to_ini_file "cleo\targetfind3r.ini" section "cp" key "x" 0AF3: write_float 30@ to_ini_file "cleo\targetfind3r.ini" section "cp" key "y" 0AF3: write_float 29@ to_ini_file "cleo\targetfind3r.ini" section "cp" key "z" ret 3 31@ 30@ 29@ :setSize 0BB2: samp 3@ = get_misc_info_ptr 3@ += 24 0A8C: write_memory 3@ size 4 value 1.0 virtual_protect 0 3@ += 4 0A8C: write_memory 3@ size 4 value 1.0 virtual_protect 0 3@ += 4 0A8C: write_memory 3@ size 4 value 1.0 virtual_protect 0 ret 0 :cp_exist 0BB2: samp 3@ = get_misc_info_ptr 3@ += 36 0A8D: 4@ = read_memory 3@ size 4 virtual_protect 0 if 4@ == true then ret_t else ret_f end ret 0 :menu_find3r 0000: 15@ = 1 while true wait 0 if 15@ == 1 then 0b34: "target" @show_menu 3@ = 1 alloc 0@ 128 alloc 4@ 50 alloc 5@ 128 alloc 6@ 128 alloc 13@ 50 15@ = 0 end if SAMP.DialogRespond(1255, 1@, 2@, 0) then if 12@ == 1 then 0ab1: call @menu_list 1 10@ end if 1@ == 1 then 2@ += 1 if 2@ == 1 then 0AC6: 11@ = label @target_help offset SAMP.ShowDialog(1300, "Help", 11@, "Back", "", 0) end if 2@ == 2 then 0B12: 10@ = 10@ XOR 1 0ab1: call @menu_list 1 10@ 0AF1: write_int 10@ to_ini_file "cleo\targetfind3r.ini" section "target" key "mode" 0BFC: set_global_var "TARGETMODE" = 10@ 0B49: samp set_current_dialog_list_item 1 end if 2@ == 3 then 0ab1: call @menu_list 1 10@ 0B49: samp set_current_dialog_list_item 2 end if 2@ == 4 then if not 3@ == 2 then 14@ = 1 else SAMP.CloseDialog(0) end end else SAMP.CloseDialog(0) end end if SAMP.DialogRespond(1300, 12@, 0, 0) then if 12@ == 1 then 0ab1: call @menu_list 1 10@ end end if or 14@ == 1 3@ == 1 then if 0B61: samp is_local_player_spawned then if SAMP.IsDialogActive(1255) then SAMP.CloseDialog(0) end 0C11: memset destination 4@ value 0 size 50 0C11: memset destination 5@ value 0 size 128 0C11: memset destination 6@ value 0 size 128 0AF4: 4@ = read_string_from_ini_file "cleo\targetfind3r.ini" section "target" key "ver" format 5@ "CLEO/find3r.ini" format 6@ "https:%c/github.com/JaggerJam69/TargetFind3r/raw/master/find3r.ini" 47 0C65: 7@ = download_url 6@ to_file 5@ 0ab1: call @check_download 1 7@ | 8@ 0C7D: release_download 7@ if 8@ <> 0 then chatmsg "{%x}[{%x}TargetFind{%x}3{%x}r{%x}] {%x}Version check failed: {%x}%p" -1 __YLW __RED __GRN __RED __YLW __WHT __BLU 8@ else 0C11: memset destination 13@ value 0 size 50 0AF4: 13@ = read_string_from_ini_file "CLEO\find3r.ini" section "Target" key "ver" if 8c14: 4@ 13@ then 0C11: memset destination 6@ value 0 size 128 format 6@ "{%x}O versiune noua este disponibila >TargetFind3r ver. {%x}%s%c{%x}Doresti sa o instalezi?" __WHT __RED 13@ 0xA __BLU SAMP.ShowDialog(1228, "{f1b71b}!!! {aaec3f}Update ready {f1b71b}!!!", 6@, "Da", "Nu", 0) else if 14@ == 1 then chatmsg "{%x}[{%x}TargetFind{%x}3{%x}r{%x}] {%x}Detii cea mai recenta versiune: {%x}v%s" -1 __YLW __RED __GRN __RED __YLW __WHT __BLU 4@ end end end 14@ = 0 3@ = 0 0B00: delete_file "CLEO\find3r.ini" end end if SAMP.DialogRespond(1228, 1@, 0, 0) then if 1@ == 1 then 0C11: memset destination 5@ value 0 size 128 0C11: memset destination 6@ value 0 size 128 format 5@ "CLEO/TargetFind3r.cs" format 6@ "https:%c/github.com/JaggerJam69/TargetFind3r/raw/master/TargetFind3r.cs" 47 0C65: 7@ = download_url 6@ to_file 5@ 0ab1: call @check_download 1 7@ | 8@ 0C7D: release_download 7@ format 5@ "CLEO/target_log.txt" format 6@ "https:%c/github.com/JaggerJam69/TargetFind3r/raw/master/target_log.txt" 47 0C65: 7@ = download_url 6@ to_file 5@ 0ab1: call @check_download 1 7@ | 9@ 0C7D: release_download 7@ if 8@ <> 0 then chatmsg "{%x}[{%x}TargetFind{%x}3{%x}r{%x}] {%x}Download failed: {%x}%p" -1 __YLW __RED __GRN __RED __YLW __WHT __BLU 8@ else if 9@ <> 0 then chatmsg "{%x}[{%x}TargetFind{%x}3{%x}r{%x}] {%x}Changelog download failed: {%x}%p" -1 __YLW __RED __GRN __RED __YLW __WHT __BLU 9@ else 0ab1: call @changelog 0 end chatmsg "{%x}[{%x}TargetFind{%x}3{%x}r{%x}] {%x}Noua versiune a fost instalata cu succes! Este necesar un restart." -1 __YLW __RED __GRN __RED __YLW __WHT 0AF5: write_string 13@ to_ini_file "cleo\targetfind3r.ini" section "target" key "ver" 3@ = 2 end end end END :check_download 1@ = -1 while 1@ == -1 wait 0 0C66: 1@ = get_download 0@ state end ret 1 1@ :changelog if 0A9A: 0@ = openfile "CLEO\target_log.txt" mode "rt" then alloc 1@ 129 0C11: memset destination 1@ value 0 size 129 0A9C: 2@ = file 0@ size 2@ += 1 alloc 4@ 2@ 0C11: memset destination 4@ value 0 size 2@ repeat 0AD7: read_string_from_file 0@ to 1@ size 128 0C17: 3@ = strlen 1@ if 3@ > 0 then 0C15: strcat destination 4@ source 1@ end 0C11: memset destination 1@ value 0 size 129 until 0AD6: end_of_file 0@ reached SAMP.ShowDialog(1229, "{660200}›› {CE1924}Changelog TargetFind3r", 4@, "OK", "", 0) free 4@ free 1@ 0A9B: closefile 0@ 0B00: delete_file "CLEO\target_log.txt" end 0AB2: ret 0 :show_menu 0AF0: 10@ = get_int_from_ini_file "cleo\targetfind3r.ini" section "target" key "mode" 0ab1: call @menu_list 1 10@ SAMP.CmdRet() :menu_list alloc 31@ 128 alloc 30@ 50 0C11: memset destination 31@ value 0 size 128 0C11: memset destination 30@ value 0 size 50 if 0@ == 0 then format 31@ "›Help%c›Set mode: %s%c{660200}----------------------%c{FFC726}›Check for updates!" 0xA "{660200}Only skin" 0xA 0xA else format 31@ "›Help%c›Set mode: %s%c{660200}----------------------%c{FFC726}›Check for updates!" 0xA "{48EB12}All info" 0xA 0xA end 0AF4: 30@ = read_string_from_ini_file "cleo\targetfind3r.ini" section "target" key "ver" alloc 29@ 128 format 29@ "{%x}TargetFind{%x}3{%x}r {%x}by Kristyann {%x}| {%x}ver. %s" __RED __GRN __RED __WHT __YLW __DRD 30@ SAMP.ShowDialog(1255, 29@, 31@, "Select", "Close", 2) free 29@ free 31@ free 30@ ret 0 :target_help hex "{660200}›› {CE1924}Activare" 0A 20 20 20"{FAFAFA}Majoritatea functiilor se activeaza odata ce detii un contract si daca ai {FFC726}[/find] {FAFAFA}pe victima." 0A 20 "{33B9FB}*Alte comenzii speciale nu sunt!" 0A 0A "{660200}›› {CE1924}Taste rapide/Comenzi:" 0A 20 20 20 "{FFC726}Scope ON + R {48EB12}- {FAFAFA}deschide chat-ul atat timp cat ai scope ON;" 0A 20 20 20 "{33B9FB}[/myctc] {48EB12}- {33B9FB}[/mycontract];" 0A 20 20 20 "{33B9FB}[/chit] {48EB12}- {33B9FB}[/cancelhit];" 0A 20 20 20 "{33B9FB}[/ghit] {48EB12}- {33B9FB}[/gethit];" 0A 0A 20 20 20 "{33B9FB}[/under] {48EB12}- {33B9FB}[/undercover];" 0A 20 20 20 "{33B9FB}[/o1] {48EB12}- {33B9FB}[/order 1];" 0A 20 20 20 "{33B9FB}[/kp] {48EB12}- {33B9FB}[/killcp];" 0A "{FFC726}• {CE1924}Checkpoint-ul si distanta pana la victima" 0A 20 20 20 "{33B9FB}- {FAFAFA}Odata ce se pune scope-ul checkpoint-ul se micsoreaza" 0A 20 20 20 "{33B9FB}- {FAFAFA}Se afiseaza distanta exacta direct in textdraw-ul de la [/find]" 0A 20 20 20 "{33B9FB}- {FAFAFA}Checkpoint-ul se misca impreuna cu jucatorul fara lag, atat timp cat va aflati langa el" 0A 0A "{FFC726}• {CE1924}Contract-Timer" 0A 20 20 20 "{FAFAFA}Afiseaza delay-ul pentru {FFC726}[/gethit]{FAFAFA}, dupa ce ai completat / luat fail / dat [/cancelhit] la contract" 00 end goto @menu_find3r /* const __RED = 0xCE1924 __DRD = 0x660200 __GRN = 0x48EB12 __YLW = 0xFFC726 __BLU = 0x33B9FB __WHT = 0xFAFAFA end */ :restart 0A92: create_custom_thread "TargetFind3r.cs" 0A93: end_custom_thread SAMP.CmdRet()