{$CLEO .cs} {$NOSOURCE} 0000: NOP //-------------MAIN--------------- thread 'SPEED HOOK' var $SHVX: array 8 of Integer // operating variables: (0 - pre-check to define settings of ini saves) // (1 - menu panel handle) // (2 - variable storing active row of menu panel) // (3 - redirection variable of exit from cycle of draw columns) // (4 - view controls panel handle) // (5 - address offset variable to read strings of hex and set GXT entry) // (6 - variable of blocking stuck presskey) // (7 - handle for the vehicle the character is in or entering) s$SHMR: array 6 of String // variables storing GXT strings for rows of menu panel of column 1 $SHCK: array 5 of Integer // variables of KEY CONTROLS values $SHSP: array 4 of Float // variables of SPEED values $SHSV: array 2 of Float // variables of selected SPEED preset $SHVR: array 6 of Integer // variables storing settings of PARAM values for assign GXT strings s$SHMT: array 32 of String // variables of GXT strings end 0AC6: $SHVX[5] = label @GXTMEM offset 0ADF: add_dynamic_GXT_entry "SHGXT00" text $SHVX[5] 0008: $SHVX[5] += 16 0ADF: add_dynamic_GXT_entry "SHGXT01" text $SHVX[5] 0008: $SHVX[5] += 153 0ADF: add_dynamic_GXT_entry "SHGXT02" text $SHVX[5] 0008: $SHVX[5] += 37 0ADF: add_dynamic_GXT_entry "SHGXT03" text $SHVX[5] 0008: $SHVX[5] += 36 0ADF: add_dynamic_GXT_entry "SHGXT04" text $SHVX[5] 0008: $SHVX[5] += 17 0ADF: add_dynamic_GXT_entry "SHGXT05" text $SHVX[5] 0008: $SHVX[5] += 6 0ADF: add_dynamic_GXT_entry "SHGXT06" text $SHVX[5] 0008: $SHVX[5] += 20 0ADF: add_dynamic_GXT_entry "SHGXT07" text $SHVX[5] 0008: $SHVX[5] += 17 0ADF: add_dynamic_GXT_entry "SHGXT08" text $SHVX[5] 0008: $SHVX[5] += 18 0ADF: add_dynamic_GXT_entry "SHGXT09" text $SHVX[5] 0008: $SHVX[5] += 15 0ADF: add_dynamic_GXT_entry "SHGXT10" text $SHVX[5] 0008: $SHVX[5] += 14 0ADF: add_dynamic_GXT_entry "SHGXT11" text $SHVX[5] 0008: $SHVX[5] += 29 0ADF: add_dynamic_GXT_entry "SHGXT12" text $SHVX[5] 0008: $SHVX[5] += 22 0ADF: add_dynamic_GXT_entry "SHGXT13" text $SHVX[5] 0008: $SHVX[5] += 13 0ADF: add_dynamic_GXT_entry "SHGXT14" text $SHVX[5] 0008: $SHVX[5] += 15 0ADF: add_dynamic_GXT_entry "SHGXT15" text $SHVX[5] 0008: $SHVX[5] += 4 0ADF: add_dynamic_GXT_entry "SHGXT16" text $SHVX[5] 0008: $SHVX[5] += 3 0ADF: add_dynamic_GXT_entry "SHGXT17" text $SHVX[5] 0008: $SHVX[5] += 4 0ADF: add_dynamic_GXT_entry "SHGXT18" text $SHVX[5] 0008: $SHVX[5] += 7 0ADF: add_dynamic_GXT_entry "SHGXT19" text $SHVX[5] 0008: $SHVX[5] += 5 0ADF: add_dynamic_GXT_entry "SHGXT20" text $SHVX[5] 0008: $SHVX[5] += 7 0ADF: add_dynamic_GXT_entry "SHGXT21" text $SHVX[5] 0008: $SHVX[5] += 4 0ADF: add_dynamic_GXT_entry "SHGXT22" text $SHVX[5] 0008: $SHVX[5] += 4 0ADF: add_dynamic_GXT_entry "SHGXT23" text $SHVX[5] 0008: $SHVX[5] += 36 0ADF: add_dynamic_GXT_entry "SHGXT24" text $SHVX[5] 0008: $SHVX[5] += 45 0ADF: add_dynamic_GXT_entry "SHGXT25" text $SHVX[5] 0008: $SHVX[5] += 41 0ADF: add_dynamic_GXT_entry "SHGXT26" text $SHVX[5] 0008: $SHVX[5] += 38 0ADF: add_dynamic_GXT_entry "SHGXT27" text $SHVX[5] 0008: $SHVX[5] += 39 0ADF: add_dynamic_GXT_entry "SHGXT28" text $SHVX[5] 0008: $SHVX[5] += 53 0ADF: add_dynamic_GXT_entry "SHGXT29" text $SHVX[5] 0008: $SHVX[5] += 56 0ADF: add_dynamic_GXT_entry "SHGXT30" text $SHVX[5] 0008: $SHVX[5] += 55 0ADF: add_dynamic_GXT_entry "SHGXT31" text $SHVX[5] 0008: $SHVX[5] += 55 0ADF: add_dynamic_GXT_entry "SHGXT51" text $SHVX[5] 0008: $SHVX[5] += 157 0ADF: add_dynamic_GXT_entry "SHGXT52" text $SHVX[5] 0008: $SHVX[5] += 35 0ADF: add_dynamic_GXT_entry "SHGXT53" text $SHVX[5] 0008: $SHVX[5] += 35 0ADF: add_dynamic_GXT_entry "SHGXT54" text $SHVX[5] 0008: $SHVX[5] += 20 0ADF: add_dynamic_GXT_entry "SHGXT55" text $SHVX[5] 0008: $SHVX[5] += 9 0ADF: add_dynamic_GXT_entry "SHGXT56" text $SHVX[5] 0008: $SHVX[5] += 24 0ADF: add_dynamic_GXT_entry "SHGXT57" text $SHVX[5] 0008: $SHVX[5] += 21 0ADF: add_dynamic_GXT_entry "SHGXT58" text $SHVX[5] 0008: $SHVX[5] += 27 0ADF: add_dynamic_GXT_entry "SHGXT59" text $SHVX[5] 0008: $SHVX[5] += 26 0ADF: add_dynamic_GXT_entry "SHGXT60" text $SHVX[5] 0008: $SHVX[5] += 14 0ADF: add_dynamic_GXT_entry "SHGXT61" text $SHVX[5] 0008: $SHVX[5] += 39 0ADF: add_dynamic_GXT_entry "SHGXT62" text $SHVX[5] 0008: $SHVX[5] += 35 0ADF: add_dynamic_GXT_entry "SHGXT63" text $SHVX[5] 0008: $SHVX[5] += 15 0ADF: add_dynamic_GXT_entry "SHGXT64" text $SHVX[5] 0008: $SHVX[5] += 17 0ADF: add_dynamic_GXT_entry "SHGXT65" text $SHVX[5] 0008: $SHVX[5] += 3 0ADF: add_dynamic_GXT_entry "SHGXT66" text $SHVX[5] 0008: $SHVX[5] += 4 0ADF: add_dynamic_GXT_entry "SHGXT67" text $SHVX[5] 0008: $SHVX[5] += 7 0ADF: add_dynamic_GXT_entry "SHGXT68" text $SHVX[5] 0008: $SHVX[5] += 8 0ADF: add_dynamic_GXT_entry "SHGXT69" text $SHVX[5] 0008: $SHVX[5] += 8 0ADF: add_dynamic_GXT_entry "SHGXT70" text $SHVX[5] 0008: $SHVX[5] += 11 0ADF: add_dynamic_GXT_entry "SHGXT71" text $SHVX[5] 0008: $SHVX[5] += 4 0ADF: add_dynamic_GXT_entry "SHGXT72" text $SHVX[5] 0008: $SHVX[5] += 4 0ADF: add_dynamic_GXT_entry "SHGXT73" text $SHVX[5] 0008: $SHVX[5] += 33 0ADF: add_dynamic_GXT_entry "SHGXT74" text $SHVX[5] 0008: $SHVX[5] += 41 0ADF: add_dynamic_GXT_entry "SHGXT75" text $SHVX[5] 0008: $SHVX[5] += 38 0ADF: add_dynamic_GXT_entry "SHGXT76" text $SHVX[5] 0008: $SHVX[5] += 37 0ADF: add_dynamic_GXT_entry "SHGXT77" text $SHVX[5] 0008: $SHVX[5] += 43 0ADF: add_dynamic_GXT_entry "SHGXT78" text $SHVX[5] 0008: $SHVX[5] += 55 0ADF: add_dynamic_GXT_entry "SHGXT79" text $SHVX[5] 0008: $SHVX[5] += 50 0ADF: add_dynamic_GXT_entry "SHGXT80" text $SHVX[5] 0008: $SHVX[5] += 52 0ADF: add_dynamic_GXT_entry "SHGXT81" text $SHVX[5] // 0008: $SHVX[5] += 57 // for next data if 0AAB: file_exists "CLEO\SPEED HOOK.ini" then 0AF0: $SHCK[0] = get_int_from_ini_file "cleo\SPEED HOOK.ini" section "CONTROLS" key "SHCK00" 0AF0: $SHCK[1] = get_int_from_ini_file "cleo\SPEED HOOK.ini" section "CONTROLS" key "SHCK01" 0AF0: $SHCK[2] = get_int_from_ini_file "cleo\SPEED HOOK.ini" section "CONTROLS" key "SHCK02" 0AF0: $SHCK[3] = get_int_from_ini_file "cleo\SPEED HOOK.ini" section "CONTROLS" key "SHCK03" 0AF0: $SHCK[4] = get_int_from_ini_file "cleo\SPEED HOOK.ini" section "CONTROLS" key "SHCK04" 0AF2: $SHSP[0] = get_float_from_ini_file "cleo\SPEED HOOK.ini" section "SPEEDS" key "SHSP00" 0AF2: $SHSP[1] = get_float_from_ini_file "cleo\SPEED HOOK.ini" section "SPEEDS" key "SHSP01" 0AF2: $SHSP[2] = get_float_from_ini_file "cleo\SPEED HOOK.ini" section "SPEEDS" key "SHSP02" 0AF2: $SHSP[3] = get_float_from_ini_file "cleo\SPEED HOOK.ini" section "SPEEDS" key "SHSP03" else end_thread end 0AF0: $SHVX[0] = get_int_from_ini_file "cleo\SPEED HOOK.ini" section "VARS" key "SHVR05" if 0038: $SHVX[0] == 1 then 0AF0: $SHVR[0] = get_int_from_ini_file "cleo\SPEED HOOK.ini" section "VARS" key "SHVR00" 0AF0: $SHVR[1] = get_int_from_ini_file "cleo\SPEED HOOK.ini" section "VARS" key "SHVR01" 0AF0: $SHVR[2] = get_int_from_ini_file "cleo\SPEED HOOK.ini" section "VARS" key "SHVR02" 0AF0: $SHVR[3] = get_int_from_ini_file "cleo\SPEED HOOK.ini" section "VARS" key "SHVR03" 0AF0: $SHVR[4] = get_int_from_ini_file "cleo\SPEED HOOK.ini" section "VARS" key "SHVR04" 0AF0: $SHVR[5] = get_int_from_ini_file "cleo\SPEED HOOK.ini" section "VARS" key "SHVR05" else if 0038: $SHVX[0] == 0 then 0004: $SHVR[0] = 0 0004: $SHVR[1] = 1 0004: $SHVR[2] = 1 0004: $SHVR[3] = 1 0004: $SHVR[4] = 0 0004: $SHVR[5] = 0 0AF1: write_int $SHVR[0] to_ini_file "cleo\SPEED HOOK.ini" section "VARS" key "SHVR00" 0AF1: write_int $SHVR[1] to_ini_file "cleo\SPEED HOOK.ini" section "VARS" key "SHVR01" 0AF1: write_int $SHVR[2] to_ini_file "cleo\SPEED HOOK.ini" section "VARS" key "SHVR02" 0AF1: write_int $SHVR[3] to_ini_file "cleo\SPEED HOOK.ini" section "VARS" key "SHVR03" 0AF1: write_int $SHVR[4] to_ini_file "cleo\SPEED HOOK.ini" section "VARS" key "SHVR04" 0AF1: write_int $SHVR[5] to_ini_file "cleo\SPEED HOOK.ini" section "VARS" key "SHVR05" end end if 0038: $SHVR[4] == 0 then 05A9: s$SHMT[0] = 'SHGXT00' 05A9: s$SHMT[1] = 'SHGXT01' 05A9: s$SHMT[2] = 'SHGXT02' 05A9: s$SHMT[3] = 'SHGXT03' 05A9: s$SHMT[4] = 'SHGXT04' 05A9: s$SHMT[5] = 'SHGXT05' 05A9: s$SHMT[6] = 'SHGXT06' 05A9: s$SHMT[7] = 'SHGXT07' 05A9: s$SHMT[8] = 'SHGXT08' 05A9: s$SHMT[9] = 'SHGXT09' 05A9: s$SHMT[10] = 'SHGXT10' 05A9: s$SHMT[11] = 'SHGXT11' 05A9: s$SHMT[12] = 'SHGXT12' 05A9: s$SHMT[13] = 'SHGXT13' 05A9: s$SHMT[14] = 'SHGXT14' 05A9: s$SHMT[15] = 'SHGXT15' 05A9: s$SHMT[16] = 'SHGXT16' 05A9: s$SHMT[17] = 'SHGXT17' 05A9: s$SHMT[18] = 'SHGXT18' 05A9: s$SHMT[19] = 'SHGXT19' 05A9: s$SHMT[20] = 'SHGXT20' 05A9: s$SHMT[21] = 'SHGXT21' 05A9: s$SHMT[22] = 'SHGXT22' 05A9: s$SHMT[23] = 'SHGXT23' 05A9: s$SHMT[24] = 'SHGXT24' 05A9: s$SHMT[25] = 'SHGXT25' 05A9: s$SHMT[26] = 'SHGXT26' 05A9: s$SHMT[27] = 'SHGXT27' 05A9: s$SHMT[28] = 'SHGXT28' 05A9: s$SHMT[29] = 'SHGXT29' 05A9: s$SHMT[30] = 'SHGXT30' 05A9: s$SHMT[31] = 'SHGXT31' else if 0038: $SHVR[4] == 1 then 05A9: s$SHMT[0] = 'SHGXT00' 05A9: s$SHMT[1] = 'SHGXT51' 05A9: s$SHMT[2] = 'SHGXT52' 05A9: s$SHMT[3] = 'SHGXT53' 05A9: s$SHMT[4] = 'SHGXT54' 05A9: s$SHMT[5] = 'SHGXT55' 05A9: s$SHMT[6] = 'SHGXT56' 05A9: s$SHMT[7] = 'SHGXT57' 05A9: s$SHMT[8] = 'SHGXT58' 05A9: s$SHMT[9] = 'SHGXT59' 05A9: s$SHMT[10] = 'SHGXT60' 05A9: s$SHMT[11] = 'SHGXT61' 05A9: s$SHMT[12] = 'SHGXT62' 05A9: s$SHMT[13] = 'SHGXT63' 05A9: s$SHMT[14] = 'SHGXT64' 05A9: s$SHMT[15] = 'SHGXT65' 05A9: s$SHMT[16] = 'SHGXT66' 05A9: s$SHMT[17] = 'SHGXT67' 05A9: s$SHMT[18] = 'SHGXT68' 05A9: s$SHMT[19] = 'SHGXT69' 05A9: s$SHMT[20] = 'SHGXT70' 05A9: s$SHMT[21] = 'SHGXT71' 05A9: s$SHMT[22] = 'SHGXT72' 05A9: s$SHMT[23] = 'SHGXT73' 05A9: s$SHMT[24] = 'SHGXT74' 05A9: s$SHMT[25] = 'SHGXT75' 05A9: s$SHMT[26] = 'SHGXT76' 05A9: s$SHMT[27] = 'SHGXT77' 05A9: s$SHMT[28] = 'SHGXT78' 05A9: s$SHMT[29] = 'SHGXT79' 05A9: s$SHMT[30] = 'SHGXT80' 05A9: s$SHMT[31] = 'SHGXT81' end end // preparing to dicplay of activate param if 0038: $SHVR[0] == 1 then 05A9: s$SHMR[0] = s$SHMT[13] else if 0038: $SHVR[0] == 0 then 05A9: s$SHMR[0] = s$SHMT[14] end end // preparing to dicplay of deny on mission param if 0038: $SHVR[1] == 1 then 05A9: s$SHMR[1] = s$SHMT[15] else if 0038: $SHVR[1] == 0 then 05A9: s$SHMR[1] = s$SHMT[16] end end //preparing to dicplay of set forward speed param if 0038: $SHVR[2] == 1 then 05A9: s$SHMR[2] = s$SHMT[18] 0086: $SHSV[0] = $SHSP[1] else if 0038: $SHVR[2] == 2 then 05A9: s$SHMR[2] = s$SHMT[19] 0086: $SHSV[0] = $SHSP[2] else if 0038: $SHVR[2] == 3 then 05A9: s$SHMR[2] = s$SHMT[20] 0086: $SHSV[0] = $SHSP[3] else if 0038: $SHVR[2] == 0 then 05A9: s$SHMR[2] = s$SHMT[17] 0086: $SHSV[0] = $SHSP[0] end end end end // preparing to dicplay of set back speed param if 0038: $SHVR[3] == 1 then 05A9: s$SHMR[3] = s$SHMT[18] 0086: $SHSV[1] = $SHSP[1] else if 0038: $SHVR[3] == 2 then 05A9: s$SHMR[3] = s$SHMT[19] 0086: $SHSV[1] = $SHSP[2] else if 0038: $SHVR[3] == 3 then 05A9: s$SHMR[3] = s$SHMT[20] 0086: $SHSV[1] = $SHSP[3] else if 0038: $SHVR[3] == 0 then 05A9: s$SHMR[3] = s$SHMT[17] 0086: $SHSV[1] = $SHSP[0] end end end end // preparing to dicplay of lang param if 0038: $SHVR[4] == 1 then 05A9: s$SHMR[4] = s$SHMT[22] else if 0038: $SHVR[4] == 0 then 05A9: s$SHMR[4] = s$SHMT[21] end end // preparing to dicplay of save settings param if 0038: $SHVR[5] == 1 then 05A9: s$SHMR[5] = s$SHMT[15] else if 0038: $SHVR[5] == 0 then 05A9: s$SHMR[5] = s$SHMT[16] end end while true // main cycle wait 0 if and Player.Defined($PLAYER_CHAR) 0AB0: key_pressed $SHCK[0] 0AB0: key_pressed $SHCK[1] not Player.Wasted($PLAYER_CHAR) not Actor.Dead($PLAYER_ACTOR) then Player.CanMove($PLAYER_CHAR) = False while true // cycle of draw menu panel wait 0 08D4: $SHVX[1] = create_panel_with_title s$SHMT[0] position 170.0 170.0 width 300.0 columns 2 interactive 1 background 1 alignment 0 09DB: set_panel $SHVX[1] column 0 width 200 09DB: set_panel $SHVX[1] column 1 width 100 08D6: set_panel $SHVX[1] column 0 alignment 1 08D6: set_panel $SHVX[1] column 1 alignment 0 08D9: set_panel $SHVX[1] row 0 enable 0 090E: set_panel $SHVX[1] active_row 1 while true // cycle of draw columns wait 0 08DB: set_panel $SHVX[1] column 0 header s$SHMT[3] data s$SHMT[4] s$SHMT[6] s$SHMT[7] s$SHMT[8] s$SHMT[9] s$SHMT[10] s$SHMT[11] s$SHMT[12] 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 0989: set_text_boxes_width 260 0512: show_permanent_text_box s$SHMT[1] 0349: set_text_draw_font 1 033F: set_text_draw_letter_size 0.58 2.21 0342: set_text_draw_centered 1 033E: set_draw_text_position 330.0 340.0 GXT s$SHMT[2] while true // cycle of draw column 1 wait 0 08EE: set_panel $SHVX[1] column 1 row 0 text_1number GXT s$SHMT[5] number 0 08EE: set_panel $SHVX[1] column 1 row 1 text_1number GXT s$SHMR[0] number 0 08EE: set_panel $SHVX[1] column 1 row 2 text_1number GXT s$SHMR[1] number 0 08EE: set_panel $SHVX[1] column 1 row 3 text_1number GXT s$SHMR[2] number 0 08EE: set_panel $SHVX[1] column 1 row 4 text_1number GXT s$SHMR[3] number 0 08EE: set_panel $SHVX[1] column 1 row 5 text_1number GXT s$SHMR[4] number 0 08EE: set_panel $SHVX[1] column 1 row 6 text_1number GXT s$SHMR[5] number 0 while true // cycle of change rows in column 1 wait 0 08D7: $SHVX[2] = panel $SHVX[1] active_row // switch of activate param if and 0038: $SHVX[6] == 1 0038: $SHVX[2] == 1 00E1: key_pressed 0 14 then if 0038: $SHVR[0] == 1 then 05A9: s$SHMR[0] = s$SHMT[14] 0004: $SHVR[0] = 0 else if 0038: $SHVR[0] == 0 then 05A9: s$SHMR[0] = s$SHMT[13] 0004: $SHVR[0] = 1 end end 0AF1: write_int $SHVR[0] to_ini_file "cleo\SPEED HOOK.ini" section "VARS" key "SHVR00" 08EE: set_panel $SHVX[1] column 1 row 1 text_1number GXT s$SHMR[0] number 0 0004: $SHVX[6] = 0 continue end // switch of if and 0038: $SHVX[6] == 1 0038: $SHVX[2] == 2 00E1: key_pressed 0 14 then if 0038: $SHVR[1] == 1 then 05A9: s$SHMR[1] = s$SHMT[16] 0004: $SHVR[1] = 0 else if 0038: $SHVR[1] == 0 then 05A9: s$SHMR[1] = s$SHMT[15] 0004: $SHVR[1] = 1 end end 0AF1: write_int $SHVR[1] to_ini_file "cleo\SPEED HOOK.ini" section "VARS" key "SHVR01" 08EE: set_panel $SHVX[1] column 1 row 2 text_1number GXT s$SHMR[1] number 0 0004: $SHVX[6] = 0 continue end // switch of if and 0038: $SHVX[6] == 1 0038: $SHVX[2] == 3 00E1: key_pressed 0 14 then if 0038: $SHVR[2] == 1 then 05A9: s$SHMR[2] = s$SHMT[19] 0004: $SHVR[2] = 2 0086: $SHSV[0] = $SHSP[2] else if 0038: $SHVR[2] == 2 then 05A9: s$SHMR[2] = s$SHMT[20] 0004: $SHVR[2] = 3 0086: $SHSV[0] = $SHSP[3] else if 0038: $SHVR[2] == 3 then 05A9: s$SHMR[2] = s$SHMT[17] 0004: $SHVR[2] = 0 0086: $SHSV[0] = $SHSP[0] else if 0038: $SHVR[2] == 0 then 05A9: s$SHMR[2] = s$SHMT[18] 0004: $SHVR[2] = 1 0086: $SHSV[0] = $SHSP[1] end end end end 0AF1: write_int $SHVR[2] to_ini_file "cleo\SPEED HOOK.ini" section "VARS" key "SHVR02" 08EE: set_panel $SHVX[1] column 1 row 3 text_1number GXT s$SHMR[2] number 0 0004: $SHVX[6] = 0 continue end // switch of if and 0038: $SHVX[6] == 1 0038: $SHVX[2] == 4 00E1: key_pressed 0 14 then if 0038: $SHVR[3] == 1 then 05A9: s$SHMR[3] = s$SHMT[19] 0004: $SHVR[3] = 2 0086: $SHSV[1] = $SHSP[2] else if 0038: $SHVR[3] == 2 then 05A9: s$SHMR[3] = s$SHMT[20] 0004: $SHVR[3] = 3 0086: $SHSV[1] = $SHSP[3] else if 0038: $SHVR[3] == 3 then 05A9: s$SHMR[3] = s$SHMT[17] 0004: $SHVR[3] = 0 0086: $SHSV[1] = $SHSP[0] else if 0038: $SHVR[3] == 0 then 05A9: s$SHMR[3] = s$SHMT[18] 0004: $SHVR[3] = 1 0086: $SHSV[1] = $SHSP[1] end end end end 0AF1: write_int $SHVR[3] to_ini_file "cleo\SPEED HOOK.ini" section "VARS" key "SHVR03" 08EE: set_panel $SHVX[1] column 1 row 4 text_1number GXT s$SHMR[3] number 0 0004: $SHVX[6] = 0 continue end // switch of if and 0038: $SHVX[6] == 1 0038: $SHVX[2] == 5 00E1: key_pressed 0 14 then if 0038: $SHVR[4] == 1 then 05A9: s$SHMT[0] = 'SHGXT00' 05A9: s$SHMT[1] = 'SHGXT01' 05A9: s$SHMT[2] = 'SHGXT02' 05A9: s$SHMT[3] = 'SHGXT03' 05A9: s$SHMT[4] = 'SHGXT04' 05A9: s$SHMT[5] = 'SHGXT05' 05A9: s$SHMT[6] = 'SHGXT06' 05A9: s$SHMT[7] = 'SHGXT07' 05A9: s$SHMT[8] = 'SHGXT08' 05A9: s$SHMT[9] = 'SHGXT09' 05A9: s$SHMT[10] = 'SHGXT10' 05A9: s$SHMT[11] = 'SHGXT11' 05A9: s$SHMT[12] = 'SHGXT12' 05A9: s$SHMT[13] = 'SHGXT13' 05A9: s$SHMT[14] = 'SHGXT14' 05A9: s$SHMT[15] = 'SHGXT15' 05A9: s$SHMT[16] = 'SHGXT16' 05A9: s$SHMT[17] = 'SHGXT17' 05A9: s$SHMT[18] = 'SHGXT18' 05A9: s$SHMT[19] = 'SHGXT19' 05A9: s$SHMT[20] = 'SHGXT20' 05A9: s$SHMT[21] = 'SHGXT21' 05A9: s$SHMT[22] = 'SHGXT22' 05A9: s$SHMT[23] = 'SHGXT23' 05A9: s$SHMT[24] = 'SHGXT24' 05A9: s$SHMT[25] = 'SHGXT25' 05A9: s$SHMT[26] = 'SHGXT26' 05A9: s$SHMT[27] = 'SHGXT27' 05A9: s$SHMT[28] = 'SHGXT28' 05A9: s$SHMT[29] = 'SHGXT29' 05A9: s$SHMT[30] = 'SHGXT30' 05A9: s$SHMT[31] = 'SHGXT31' 0004: $SHVR[4] = 0 else if 0038: $SHVR[4] == 0 then 05A9: s$SHMT[0] = 'SHGXT00' 05A9: s$SHMT[1] = 'SHGXT51' 05A9: s$SHMT[2] = 'SHGXT52' 05A9: s$SHMT[3] = 'SHGXT53' 05A9: s$SHMT[4] = 'SHGXT54' 05A9: s$SHMT[5] = 'SHGXT55' 05A9: s$SHMT[6] = 'SHGXT56' 05A9: s$SHMT[7] = 'SHGXT57' 05A9: s$SHMT[8] = 'SHGXT58' 05A9: s$SHMT[9] = 'SHGXT59' 05A9: s$SHMT[10] = 'SHGXT60' 05A9: s$SHMT[11] = 'SHGXT61' 05A9: s$SHMT[12] = 'SHGXT62' 05A9: s$SHMT[13] = 'SHGXT63' 05A9: s$SHMT[14] = 'SHGXT64' 05A9: s$SHMT[15] = 'SHGXT65' 05A9: s$SHMT[16] = 'SHGXT66' 05A9: s$SHMT[17] = 'SHGXT67' 05A9: s$SHMT[18] = 'SHGXT68' 05A9: s$SHMT[19] = 'SHGXT69' 05A9: s$SHMT[20] = 'SHGXT70' 05A9: s$SHMT[21] = 'SHGXT71' 05A9: s$SHMT[22] = 'SHGXT72' 05A9: s$SHMT[23] = 'SHGXT73' 05A9: s$SHMT[24] = 'SHGXT74' 05A9: s$SHMT[25] = 'SHGXT75' 05A9: s$SHMT[26] = 'SHGXT76' 05A9: s$SHMT[27] = 'SHGXT77' 05A9: s$SHMT[28] = 'SHGXT78' 05A9: s$SHMT[29] = 'SHGXT79' 05A9: s$SHMT[30] = 'SHGXT80' 05A9: s$SHMT[31] = 'SHGXT81' 0004: $SHVR[4] = 1 end end 0AF1: write_int $SHVR[4] to_ini_file "cleo\SPEED HOOK.ini" section "VARS" key "SHVR04" 0004: $SHVX[3] = 2 // go to cycle of draw columns 0004: $SHVX[6] = 0 03E6: remove_text_box 03F0: enable_text_draw 0 break end // switch of if and 0038: $SHVX[6] == 1 0038: $SHVX[2] == 6 00E1: key_pressed 0 14 then if 0038: $SHVR[5] == 1 then 05A9: s$SHMR[5] = s$SHMT[16] 0004: $SHVR[5] = 0 else if 0038: $SHVR[5] == 0 then 05A9: s$SHMR[5] = s$SHMT[15] 0004: $SHVR[5] = 1 end end 0AF1: write_int $SHVR[5] to_ini_file "cleo\SPEED HOOK.ini" section "VARS" key "SHVR05" 08EE: set_panel $SHVX[1] column 1 row 6 text_1number GXT s$SHMR[5] number 0 0004: $SHVX[6] = 0 continue end // menu entry of display controls panel if and 0038: $SHVX[6] == 1 0038: $SHVX[2] == 7 00E1: key_pressed 0 14 then 08DA: remove_panel $SHVX[1] 08D4: $SHVX[4] = create_panel_with_title s$SHMT[0] position 170.0 170.0 width 300.0 columns 1 interactive 0 background 1 alignment 1 08DB: set_panel $SHVX[4] column 0 header s$SHMT[23] data s$SHMT[24] s$SHMT[25] s$SHMT[26] s$SHMT[27] s$SHMT[28] s$SHMT[29] s$SHMT[30] s$SHMT[31] 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' while true // cycle of display controls panel wait 0 if 00E1: key_pressed 0 4 then 08DA: remove_panel $SHVX[4] 0004: $SHVX[3] = 0 // go to cycle of draw menu panel 0004: $SHVX[6] = 0 break end if 00E1: key_pressed 0 15 then 08DA: remove_panel $SHVX[4] 03E6: remove_text_box 03F0: enable_text_draw 0 0004: $SHVX[3] = 1 // go to main cycle 0004: $SHVX[6] = 0 wait 100 Player.CanMove($PLAYER_CHAR) = True break end end // cycle of display panel of controls break end // escape of menu panel if and 0038: $SHVX[6] == 1 00E1: key_pressed 0 15 then 08DA: remove_panel $SHVX[1] 03E6: remove_text_box 03F0: enable_text_draw 0 0004: $SHVX[3] = 1 // go to main cycle 0004: $SHVX[6] = 0 wait 100 Player.CanMove($PLAYER_CHAR) = True break end // frame of single key press if 80E1: not key_pressed 0 14 then 0004: $SHVX[6] = 1 end end // cycle of change rows in column 1 break end // cycle of draw column 1 if 0038: $SHVX[3] == 2 then continue end break end // cycle of draw columns if 0038: $SHVX[3] == 0 then continue end if 0038: $SHVX[3] == 1 then break end end // cycle of draw menu panel end if and 0256: player $PLAYER_CHAR defined 0449: actor $PLAYER_ACTOR in_a_car 0AB0: key_pressed $SHCK[0] 0AB0: key_pressed $SHCK[2] 0038: $SHVR[0] == 1 then if and 8038: not $ONMISSION == 1 8038: not $SHVR[1] == 1 then 0811: $SHVX[7] = actor $PLAYER_ACTOR used_car //04BA: set_car $SHVX[7] speed_to $SHSV[0] car.SetSpeedInstantly($SHVX[7], $SHSV[0]) end end if and 0256: player $PLAYER_CHAR defined 0449: actor $PLAYER_ACTOR in_a_car 0AB0: key_pressed $SHCK[0] 0AB0: key_pressed $SHCK[3] 0038: $SHVR[0] == 1 then if and 8038: not $ONMISSION == 1 8038: not $SHVR[1] == 1 then 0811: $SHVX[7] = actor $PLAYER_ACTOR used_car //04BA: set_car $SHVX[7] speed_to - $SHSV[1] car.SetSpeedInstantly($SHVX[7], - $SHSV[1]) end end if and 0256: player $PLAYER_CHAR defined 0449: actor $PLAYER_ACTOR in_a_car 0AB0: key_pressed $SHCK[0] 0AB0: key_pressed $SHCK[4] 0038: $SHVR[0] == 1 then if and 8038: not $ONMISSION == 1 8038: not $SHVR[1] == 1 then 0811: $SHVX[7] = actor $PLAYER_ACTOR used_car //04BA: set_car $SHVX[7] speed_to 0.0 car.SetSpeedInstantly($SHVX[7], 0.0) end end end // main cycle :GXTMEM hex "SPEED HOOK v1.0" // SHGXT00 15+1 00 "~k~~GO_FORWARD~ and ~k~~GO_BACK~ - select area ~n~~k~~PED_JUMPING~ - select~n~~k~~PED_ANSWER_PHONE~ - back to menu~n~~k~~VEHICLE_ENTER_EXIT~ - back/quit" // SHGXT01 152+1 00 "~p~this script created by Alen Diago" // SHGXT02 36+1 00 "\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ~y~MENU" // SHGXT03 35(28 backslashes)+1 00 "\ \ \ \ \ \ \ \ \ \ \ PARAM" // SHGXT04 16(11 backslashes)+1 00 "VALUE" // SHGXT05 6+1 00 "Activate speed hook" // SHGXT06 19+1 00 "Deny on missions" // SHGXT07 16+1 00 "Set Forward Speed" // SHGXT08 17+1 00 "Set Back Speed" // SHGXT09 14+1 00 "Language/•??k" // SHGXT10 13+1 00 "Save settings when exit game" // SHGXT11 28+1 00 "View default controls" // SHGXT12 21+1 00 "~g~activated" // SHGXT13 12+1 00 "~r~deactivated" // SHGXT14 14+1 00 "yes" // SHGXT15 3+1 00 "no" // SHGXT16 2+1 00 "low" // SHGXT17 3+1 00 "medium" // SHGXT18 6+1 00 "high" // SHGXT19 4+1 00 "INSANE" // SHGXT20 6+1 00 "eng" // SHGXT21 3+1 00 "pyc" // SHGXT22 3+1 00 "\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ~y~DEFAULT CONTROLS:" // SHGXT23 35(15 backslashes)+1 00 "\ \ \ \ \ \ ~p~alt + \"X\"~w~ - open script settings" // SHGXT24 44(8 backslashes)+1 00 "\ \ \ \ \ \ ~p~alt + \"W\"~w~ - speed up forward" // SHGXT25 40(8 backslashes)+1 00 "\ \ \ \ \ \ ~p~alt + \"S\"~w~ - speed up back" // SHGXT26 37(8 backslashes)+1 00 "\ \ \ \ \ \ ~p~alt + space~w~ - instant stop" // SHGXT27 38(6 backslashes)+1 00 "~w~You can assign your own control keys by replacing" // SHGXT28 52+1 00 "~w~their ID on the ones you need, in the SPEED HOOK.ini" // SHGXT29 55+1 00 "~w~file, and individually set the speed value for each" // SHGXT30 54+1 00 "~w~Speed Hook presets (see SPEED HOOK.ini for details)" // SHGXT31 54+1 00 "~k~~GO_FORWARD~ ? ~k~~GO_BACK~ - ?epe?e?e®?e~n~~k~~PED_JUMPING~ - ??—pa¦©~n~~k~~PED_ANSWER_PHONE~ - ?ep®y¦©c¬ ? ?e®«~n~~k~~VEHICLE_ENTER_EXIT~ - ®a?a?/??xo?" // SHGXT51 156+1 00 "~p~?a®®?? ckp??¦ co??a? Alen Diago" // SHGXT52 34+1 00 "\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ~y~–E­”" // SHGXT53 35(27 backslashes)+1 00 "\ \ \ \ \ \ \ \ \ \ \ ?APA–E?P" // SHGXT54 19(11 backslashes)+1 00 "?­A?E­…E" // SHGXT55 8+1 00 "Ak¦???po?a¦© speed hook" // SHGXT56 23+1 00 "?a?pe¦?¦© ®a ??cc?¬x" // SHGXT57 20+1 00 "Yc¦a®o??¦© ckopoc¦© ??epe?" // SHGXT58 26+1 00 "Yc¦a®o??¦© ckopoc¦© ®a?a?" // SHGXT59 25+1 00 "Language/•??k" // SHGXT60 13+1 00 "Coxpa®¬¦© ®ac¦po?k? ?p? ??xo?e ?? ?™p?" // SHGXT61 38+1 00 "?oc?o¦pe¦© y?pa??e®?e ?o-y?o?¤a®?«" // SHGXT62 34+1 00 "~g~ak¦???po?a®" // SHGXT63 14+1 00 "~r~?eak¦???po?a®" // SHGXT64 16+1 00 "?a" // SHGXT65 2+1 00 "®e¦" // SHGXT66 3+1 00 "®??ka¬" // SHGXT67 6+1 00 "cpe?®¬¬" // SHGXT68 7+1 00 "??coka¬" // SHGXT69 7+1 00 "CY–A?E??A•" // SHGXT70 10+1 00 "eng" // SHGXT71 3+1 00 "pyc" // SHGXT72 3+1 00 "\ \ \ \ \ \ ~y~Y?PA‹‡E­…E ?O-Y–O‡?A­…”" // SHGXT73 32(6 backslashes)+1 00 "\ \ ~p~alt + \"X\"~w~ - o¦kp?¦© ?e®« ckp??¦a" // SHGXT74 40(4 backslashes)+1 00 "\ \ ~p~alt + \"W\"~w~ - yckop?¦©c¬ ??epe?" // SHGXT75 37(4 backslashes)+1 00 "\ \ ~p~alt + \"S\"~w~ - yckop?¦©c¬ ®a?a?" // SHGXT76 36(4 backslashes)+1 00 "\ \ ~p~alt + space~w~ - ?™®o?e®®a¬ oc¦a®o?ka" // SHGXT77 42(2 backslashes)+1 00 "~w~‹? ?o›e¦e ®a?®a¤?¦© c?o? k?a????, ?a?e®?? ID k?a???" // SHGXT78 54+1 00 "~w~®a ®y›®?e ?a?, ? ?a??e SPEED HOOK.ini, a ¦ak›e" // SHGXT79 49+1 00 "~w~o¦?e?©®o ®ac¦po?¦© ?®a¤e®?e ckopoc¦? ??¬ ka›?o™o" // SHGXT80 51+1 00 "~w~?pece¦a Speed Hook-a (?o?po—®ee c?. ? SPEED HOOK.ini)" // SHGXT81 56+1 00 end end_thread