Тем кому не хватает сообщений, но вам нужен исходник - пишите в лс, но дам далеко не каждому.
Прошу не распространять код. Также попрошу не делать "вырезки" клео скриптов.
Код предоставлен для того, что появилось больше именно проектов на клео. Спасибо.
[hide=450]Даты файлов неверные, хуй на них забейте.
gp.cs
aafk.cs
asat.cs
botter.play.cs
botter.cs
botter.wrt.cs
[/hide]
Прошу не распространять код. Также попрошу не делать "вырезки" клео скриптов.
Код предоставлен для того, что появилось больше именно проектов на клео. Спасибо.
[hide=450]Даты файлов неверные, хуй на них забейте.
gp.cs
PHP:
hex
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
end
{$CLEO .cs}
0662: NOP " CLEO gproject 15.03.14 "
0662: NOP "gp .:':. Main .:':. www.gc0de.ru"
const
RESX = 0
RESY = 1
SWWH = 2
SWESP = 3
SWASAT = 4
FONT = 5
SWGM = 6
LMB = 7
SWNOP = 8
FONT2 = 9
MOUSE = 10
CHBX = 11
GMOVER = 12
GMBP = 13
GMFP = 14
GMEP = 15
GMCP = 16
SWCOL = 17
SWSH = 18
SHGM = 19
SHSPEED = 20
SWAFK = 21
SWAFKA = 22
SWADM = 23
SWADMST = 24
ADMCNT = 25
SWFLY = 26
GUI = 27
SWFREE = 28
SWKEYST = 29
KEYREST = 30
end
wait 0
repeat
wait 400
until 0AFA: is_samp_structures_available
0AF7: get_samp_base_to 30@
30@ += 0x2AE035
0A8C: write_memory 30@ size 2 value 0x0000 virtual_protect 1
0AF7: get_samp_base_to 30@
30@ += 0x5AB2C
0A8C: write_memory 30@ size 4 value 0x90909090 virtual_protect 1
30@ += 4
0A8C: write_memory 30@ size 1 value 0x90 virtual_protect 1
30@ += 9
0A8C: write_memory 30@ size 4 value 0x90909090 virtual_protect 1
30@ += 4
0A8C: write_memory 30@ size 1 value 0x90 virtual_protect 1
0AC8: 31@ = allocate_memory_size 3200
0AF1: write_int 31@ to_ini_file "cleo\gp\gp.sys" section "offset" key "admarr"
0AC8: 31@ = allocate_memory_size 256
0C11: memset destination 31@ value 0 size 256
0AF1: write_int 31@ to_ini_file "cleo\gp\gp.sys" section "offset" key "array"
if
8AAB: not file_exists "cleo\gp\gp.ini"
then
0AF1: write_int 0 to_ini_file "cleo\gp\gp.ini" section "Autorun" key "wallhack"
0AF1: write_int 0 to_ini_file "cleo\gp\gp.ini" section "Autorun" key "esp"
0AF1: write_int 1 to_ini_file "cleo\gp\gp.ini" section "Autorun" key "asat"
0AF1: write_int 0 to_ini_file "cleo\gp\gp.ini" section "Autorun" key "godmode"
0AF1: write_int 113 to_ini_file "cleo\gp\gp.ini" section "Keys" key "mousekey"
0AF1: write_int 114 to_ini_file "cleo\gp\gp.ini" section "Keys" key "whkey"
0AF1: write_int 0 to_ini_file "cleo\gp\gp.ini" section "Keys" key "espkey"
0AF1: write_int 0 to_ini_file "cleo\gp\gp.ini" section "Keys" key "asatkey"
0AF1: write_int 106 to_ini_file "cleo\gp\gp.ini" section "Keys" key "gmkey"
0AF1: write_int 0 to_ini_file "cleo\gp\gp.ini" section "Keys" key "colkey"
0AF1: write_int 66 to_ini_file "cleo\gp\gp.ini" section "Keys" key "onfootshkey"
0AF1: write_int 18 to_ini_file "cleo\gp\gp.ini" section "Keys" key "incarshkey"
0AF3: write_float 58.0 to_ini_file "cleo\gp\gp.ini" section "SpeedHack" key "carmaxspeed"
0AF3: write_float 1.3 to_ini_file "cleo\gp\gp.ini" section "SpeedHack" key "carspeedmult"
0AF1: write_int 4 to_ini_file "cleo\gp\gp.ini" section "Keys" key "clickwarpstart"
0AF1: write_int 1 to_ini_file "cleo\gp\gp.ini" section "Keys" key "clickwarpgoto"
0AF1: write_int 0 to_ini_file "cleo\gp\gp.ini" section "Keys" key "flykey"
0AF3: write_float 6.0 to_ini_file "cleo\gp\gp.ini" section "Fly" key "maxspeed"
end
0B6D: render 30@ = create_font "Tahoma" height 10 flags 0x5
0C0F: array 31@ element FONT = 30@
0B6D: render 30@ = create_font "Tahoma" height 8 flags 0x5
0C0F: array 31@ element FONT2 = 30@
0B5A: get_screen_resolution 30@ 29@
0C0F: array 31@ element RESX = 30@
0C0F: array 31@ element RESY = 29@
0AF0: 30@ = get_int_from_ini_file "cleo\gp\gp.ini" section "autorun" key "wallhack"
0AF0: 29@ = get_int_from_ini_file "cleo\gp\gp.ini" section "autorun" key "esp"
0AF0: 28@ = get_int_from_ini_file "cleo\gp\gp.ini" section "autorun" key "asat"
0AF0: 27@ = get_int_from_ini_file "cleo\gp\gp.ini" section "autorun" key "godmode"
0AF0: 26@ = get_int_from_ini_file "cleo\gp\gp.ini" section "Keys" key "mousekey"
0C0F: array 31@ element SWWH = 30@
0C0F: array 31@ element SWESP = 29@
0C0F: array 31@ element SWASAT = 28@
0C0F: array 31@ element SWGM = 27@
0C0F: array 31@ element SHSPEED = 105.0
0A92: create_custom_thread "gp\s\gui.s"
0A92: create_custom_thread "gp\s\wh.s"
0A92: create_custom_thread "gp\s\esp.s"
0A92: create_custom_thread "gp\s\asat.s"
0A92: create_custom_thread "gp\s\gm.s"
0A92: create_custom_thread "gp\s\nop.s"
0A92: create_custom_thread "gp\s\colp.s"
0A92: create_custom_thread "gp\s\colv.s"
0A92: create_custom_thread "gp\s\cmd.s"
0A92: create_custom_thread "gp\s\botter.s"
0A92: create_custom_thread "gp\s\dlock.s"
0A92: create_custom_thread "gp\s\keys.s"
0A92: create_custom_thread "gp\s\sh.s"
0A92: create_custom_thread "gp\s\rec.s"
0A92: create_custom_thread "gp\s\mga_arr.s"
0A92: create_custom_thread "gp\s\aafk.s"
0A92: create_custom_thread "gp\s\fly.s"
0A92: create_custom_thread "gp\s\frz.s"
0A92: create_custom_thread "gp\s\kill.s"
0A92: create_custom_thread "gp\s\pick.s"
0B71: render 30@ = load_texture_from_file "cleo\gp\s\gp.bin"
0B5A: get_screen_resolution 29@ 28@
29@ /= 2
28@ /= 2
29@ -= 175
28@ -= 60
27@ = 5
32@ = 0
repeat
wait 0
0B73: render draw_texture 30@ pos 29@ 28@ size 350 120 rotation 0 color 0xFFFFFFFF
if
0B4C: samp is_dialog_active -1
then
Break
end
until 32@ > 4500
while true
wait 0
0B5A: get_screen_resolution 30@ 29@
0C0F: array 31@ element RESX = 30@
0C0F: array 31@ element RESY = 29@
if
25@ == 1
then
0B5D: samp toggle_cursor true
end
if
0AB0: 26@
then
if
25@ == 0
then
25@ = 1
0C0F: array 31@ element MOUSE = 1
else
25@ = 0
0B5D: samp toggle_cursor false
0C0F: array 31@ element MOUSE = 0
end
repeat
wait 0
until 8AB0: not 26@
end
0AF0: 30@ = get_int_from_ini_file "cleo\gp\gp.ini" section "Other" key "gui"
0AF0: 26@ = get_int_from_ini_file "cleo\gp\gp.ini" section "Keys" key "mousekey"
0C0F: array 31@ element GUI = 30@
end
PHP:
hex
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
end
{$CLEO .cs}
0662: NOP " CLEO gproject 12.03.14 "
0662: NOP "gp .:':. Anti-AFK by MogAika .:':. www.gc0de.ru"
// RPCs
const
RPC_CLICKPLAYER = 23
RPC_CLIENTJOIN = 25
RPC_ENTERVEHICLE = 26
RPC_ENTEREDITOBJECT = 27
RPC_SCRIPTCASH = 31
RPC_SERVERCOMMAND = 50
RPC_SPAWN = 52
RPC_DEATH = 53
RPC_NPCJOIN = 54
RPC_DIALOGRESPONSE = 62
RPC_CLICKTEXTDRAW = 83
RPC_SCMEVENT = 96
RPC_WEAPONPICKUPDESTROY = 97
RPC_CHAT = 101
RPC_SRVNETSTATS = 102
RPC_CLIENTCHECK = 103
RPC_DAMAGEVEHICLE = 106
RPC_GIVETAKEDAMAGE = 115
RPC_EDITATTACHEDOBJECT = 116
RPC_EDITOBJECT = 117
RPC_SETINTERIORID = 118
RPC_MAPMARKER = 119
RPC_REQUESTCLASS = 128
RPC_REQUESTSPAWN = 129
RPC_PICKEDUPPICKUP = 131
RPC_MENUSELECT = 132
RPC_VEHICLEDESTROYED = 136
RPC_MENUQUIT = 140
RPC_EXITVEHICLE = 154
RPC_UPDATESCORESPINGSIPS = 155
end
// Packets
const
PACKET_PLAYER_SYNC = 212
PACKET_MARKERS_SYNC = 213
PACKET_UNOCCUPIED_SYNC = 214
PACKET_TRAILER_SYNC = 215
PACKET_PASSENGER_SYNC = 216
PACKET_SPECTATOR_SYNC = 217
PACKET_AIM_SYNC = 218
PACKET_VEHICLE_SYNC = 219
PACKET_RCON_COMMAND = 220
PACKET_RCON_RESPONCE = 221
PACKET_WEAPONS_UPDATE = 222
PACKET_STATS_UPDATE = 223
PACKET_BULLET_SYNC = 224
end
// Gamestates
const
GAMESTATE_NONE = 0
GAMESTATE_WAIT_CONNECT = 1
GAMESTATE_AWAIT_JOIN = 2
GAMESTATE_CONNECTED = 3
GAMESTATE_RESTARTING = 4
GAMESTATE_DISCONNECTED = 5
end
// BitStream types
const
BS_TYPE_BYTE = 0
BS_TYPE_BOOL = 1
BS_TYPE_SHORT = 2
BS_TYPE_INT = 3
BS_TYPE_FLOAT = 4
BS_TYPE_ARRAY = 5
BS_TYPE_BITSTREAM = 6
end
// Priorities
const
SYSTEM_PRIORITY = 0
PRIORITY_HIGH = 1
MEDIUM_PRIORITY = 2
LOW_PRIORITY = 3
end
// Reliability types
const
UNRELIABLE = 6
UNRELIABLE_SEQUENCED = 7
RELIABLE = 8
RELIABLE_ORDERED = 9
RELIABLE_SEQUENCED = 10
end
// Sendrates
const
ONFOOTSENDRATE = 1
INCARSENDRATE = 2
AIMSENDRATE = 3
end
// SAMP Limits
const
MAX_PLAYERS = 1004
MAX_VEHICLES = 2000
MAX_PICKUPS = 4096
MAX_OBJECTS = 1000
MAX_GANGZONES = 1024
MAX_3DTEXTS = 2048
MAX_TEXTDRAWS = 2048
MAX_CLIENTCMDS = 144
MAX_MENUS = 128
end
const
RESX = 0
RESY = 1
SWWH = 2
SWESP = 3
SWASAT = 4
FONT = 5
SWGM = 6
LMB = 7
SWNOP = 8
FONT2 = 9
MOUSE = 10
CHBX = 11
GMOVER = 12
GMBP = 13
GMFP = 14
GMEP = 15
GMCP = 16
SWCOL = 17
SWSH = 18
SHGM = 19
SHSPEED = 20
SWAFK = 21
end
const
NOP1 = 0
NOP2 = 1
NOP3 = 2
NOP4 = 3
NOP5 = 4
NOP6 = 5
NOP7 = 6
NOP8 = 7
NOP9 = 8
NOP10 = 9
NOP11 = 10
NOP12 = 11
NOP13 = 12
NOP14 = 13
NOP15 = 14
NOP16 = 15
NOP17 = 16
NOP18 = 17
end
wait 0
repeat
wait 400
until 0AFA: is_samp_structures_available
0AF0: 31@ = get_int_from_ini_file "cleo\gp\gp.sys" section "offset" key "array"
while true
wait 0
0C0E: 30@ = array 31@ element SWAFK
if
30@ == true
then
32@ = 0
0AC8: 29@ = allocate_memory_size 100
0AD3: 29@ = format "{FF6600}Внимание!%c{EAEAEA}При включенном Anti-AFK панель читов не реагирует на нажатия." 10
0B3B: samp show_dialog id 18 caption "{FF6600}gProject" text 29@ button_1 "Закрыть" button_2 "" style 0
0AC9: 29@
0A8C: write_memory 0x747FB6 size 1 value 1 virtual_protect 1
0A8C: write_memory 0x74805A size 1 value 1 virtual_protect 1
0C11: memset destination 0x53EA88 value 0x000000000090 size 6
0C11: memset destination 0x74542B value 0x0000000000000090 size 8
while 30@ == true
wait 0
if and
0256: player $PLAYER_CHAR defined
02A0: actor $PLAYER_ACTOR stopped
80DF: not actor $PLAYER_ACTOR driving
then
00A0: store_actor $PLAYER_ACTOR position_to 29@ 28@ 27@
0098: 27@ = random_float_in_ranges 1.0 to 3.0
0098: 26@ = random_float_in_ranges -3.0 to -1.0
0063: 29@ -= 27@
0063: 28@ -= 26@
0AF0: 21@ = get_int_from_ini_file "cleo\gp\gp.sys" section "offset" key "noparr"
0AF0: 13@ = get_int_from_ini_file "cleo\gp\gp.sys" section "offset" key "noparr2"
0C0F: array 21@ element NOP1 = 1
0B2E: 27@ = read_samp_memory offset 0x41E0 size 1
0C0F: array 13@ element NOP1 = 27@
0B2D: write_samp_memory offset 0x41E0 value 0xC3 size 1
repeat
wait 100
0AB1: call_scm_func @SendOnfoot 3 29@ 28@ 8
wait 100
0AB1: call_scm_func @SendOnfoot 3 29@ 28@ 1024
0C0E: 30@ = array 31@ element SWAFK
if or
30@ == 0
82A0: not actor $PLAYER_ACTOR stopped
00DF: actor $PLAYER_ACTOR driving
then
Break
end
until 32@ > 300000
0C0F: array 21@ element NOP1 = 0
0C0E: 27@ = array 13@ element NOP1
0B2D: write_samp_memory offset 0x41E0 value 27@ size 1
32@ = 0
end
if and
0256: player $PLAYER_CHAR defined
00DF: actor $PLAYER_ACTOR driving
then
repeat
wait 0
0AB5: store_closest_entities $PLAYER_ACTOR vehicle_to 25@ ped_to 24@
if
056E: car 25@ defined
then
046C: 24@ = car 25@ driver
else
24@ = 0
end
until 07D6: 24@ == $PLAYER_ACTOR
06A2: get_car 25@ velocity_in_direction_XYZ 24@ 23@ 22@
if and
24@ == 0.0
23@ == 0.0
22@ == 0.0
then
00A0: store_actor $PLAYER_ACTOR position_to 29@ 28@ 27@
0098: 27@ = random_float_in_ranges 1.0 to 3.0
0098: 26@ = random_float_in_ranges -3.0 to -1.0
0063: 29@ -= 27@
0063: 28@ -= 26@
0AF0: 21@ = get_int_from_ini_file "cleo\gp\gp.sys" section "offset" key "noparr"
0AF0: 13@ = get_int_from_ini_file "cleo\gp\gp.sys" section "offset" key "noparr2"
0C0F: array 21@ element NOP2 = 1
0B2E: 27@ = read_samp_memory offset 0x6140 size 1
0C0F: array 13@ element NOP2 = 27@
0B2D: write_samp_memory offset 0x6140 value 0xC3 size 1
repeat
wait 100
0C0E: 30@ = array 31@ element SWAFK
06A2: get_car 25@ velocity_in_direction_XYZ 24@ 23@ 22@
if or
30@ == 0
80DF: not actor $PLAYER_ACTOR driving
not 24@ == 0.0
not 23@ == 0.0
not 22@ == 0.0
then
Break
end
0AB1: call_scm_func @SendInCar 2 29@ 28@
until 32@ > 300000
0C0F: array 21@ element NOP2 = 0
0C0E: 27@ = array 13@ element NOP2
0B2D: write_samp_memory offset 0x6140 value 27@ size 1
32@ = 0
end
end
0C0E: 30@ = array 31@ element SWAFK
if
30@ == 0
then
32@ = 0
0AC8: 24@ = allocate_memory_size 100
0AC8: 23@ = allocate_memory_size 100
0AC8: 22@ = allocate_memory_size 200
0AD3: 24@ = format "{FF6600}Внимание!%c{EAEAEA}Если вы действительно хотите выключить Anti-AFK, нажмите" 10
0AD3: 23@ = format " {FF6600}Y{EAEAEA}.%cОкно закроется автоматически, через 5 секунд." 10
0AD3: 22@ = format "%s%s" 24@ 23@
0B3B: samp show_dialog id 18 caption "{FF6600}gProject" text 22@ button_1 "Не хочу" button_2 "" style 0
repeat
wait 0
29@ = 0
if
0AB0: 89
then
29@ = 1
Break
end
if
8B4C: not samp is_dialog_active 18
then
29@ = 2
Break
end
until 32@ > 1000
if
29@ == 0
then
0AD3: 24@ = format "{FF6600}Внимание!%c{EAEAEA}Если вы действительно хотите выключить Anti-AFK, нажмите" 10
0AD3: 23@ = format " {FF6600}Y{EAEAEA}.%cОкно закроется автоматически, через 4 секунды." 10
0AD3: 22@ = format "%s%s" 24@ 23@
0B3B: samp show_dialog id 18 caption "{FF6600}gProject" text 22@ button_1 "Не хочу" button_2 "" style 0
repeat
wait 0
29@ = 0
if
0AB0: 89
then
29@ = 1
Break
end
if
8B4C: not samp is_dialog_active 18
then
29@ = 2
Break
end
until 32@ > 2000
end
if
29@ == 0
then
0AD3: 24@ = format "{FF6600}Внимание!%c{EAEAEA}Если вы действительно хотите выключить Anti-AFK, нажмите" 10
0AD3: 23@ = format " {FF6600}Y{EAEAEA}.%cОкно закроется автоматически, через 3 секунды." 10
0AD3: 22@ = format "%s%s" 24@ 23@
0B3B: samp show_dialog id 18 caption "{FF6600}gProject" text 22@ button_1 "Не хочу" button_2 "" style 0
repeat
wait 0
29@ = 0
if
0AB0: 89
then
29@ = 1
Break
end
if
8B4C: not samp is_dialog_active 18
then
29@ = 2
Break
end
until 32@ > 3000
end
if
29@ == 0
then
0AD3: 24@ = format "{FF6600}Внимание!%c{EAEAEA}Если вы действительно хотите выключить Anti-AFK, нажмите" 10
0AD3: 23@ = format " {FF6600}Y{EAEAEA}.%cОкно закроется автоматически, через 2 секунды." 10
0AD3: 22@ = format "%s%s" 24@ 23@
0B3B: samp show_dialog id 18 caption "{FF6600}gProject" text 22@ button_1 "Не хочу" button_2 "" style 0
repeat
wait 0
29@ = 0
if
0AB0: 89
then
29@ = 1
Break
end
if
8B4C: not samp is_dialog_active 18
then
29@ = 2
Break
end
until 32@ > 4000
end
if
29@ == 0
then
0AD3: 24@ = format "{FF6600}Внимание!%c{EAEAEA}Если вы действительно хотите выключить Anti-AFK, нажмите" 10
0AD3: 23@ = format " {FF6600}Y{EAEAEA}.%cОкно закроется автоматически, через 1 секунду." 10
0AD3: 22@ = format "%s%s" 24@ 23@
0B3B: samp show_dialog id 18 caption "{FF6600}gProject" text 22@ button_1 "Не хочу" button_2 "" style 0
repeat
wait 0
29@ = 0
if
0AB0: 89
then
29@ = 1
Break
end
if
8B4C: not samp is_dialog_active 18
then
29@ = 2
Break
end
until 32@ > 5000
end
32@ = 0
if
0B4C: samp is_dialog_active 18
then
0B47: samp close_current_dialog_with_button 1
end
if or
29@ == 0
29@ == 2
then
0C0F: array 31@ element SWAFK = 1
30@ = 1
end
end
0AC9: 22@
0AC9: 24@
0AC9: 23@
end
else
0A8C: write_memory 0x747FB6 size 1 value 0 virtual_protect 1
0A8C: write_memory 0x74805A size 1 value 0 virtual_protect 1
0AC6: 29@ = label @hex1 offset
0C10: memcpy destination 0x53EA88 source 29@ size 6
0AC6: 29@ = label @hex2 offset
0C10: memcpy destination 0x74542B source 29@ size 8
end
end
:SendOnfoot
0B2B: samp 3@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B24: samp 3@ = get_remote_player_ptr 3@
3@ += 55 // Прибавляем смещение на структуру, в которой храниться текущая onfoot data.
0AC8: 4@ = allocate_memory_size 68 // Выделяем память, равную размеру пакета.
0C10: memcpy destination 4@ source 3@ size 68 // Копируем информацию onfoot, чтобы потом изменить только позиции.
//0C0D: struct 4@ offset 2 size 2 = 0xFF80
0C0D: struct 4@ offset 4 size 2 = 2@
0C0D: struct 4@ offset 6 size 4 = 0@
0C0D: struct 4@ offset 10 size 4 = 1@
0B3D: raknet 5@ = new_bit_stream // Создаем битстрим.
0B40: raknet bit_stream 5@ write PACKET_PLAYER_SYNC type BS_TYPE_BYTE size 1 // Вписываем в битстрим название пакета.
0B40: raknet bit_stream 5@ write 4@ type BS_TYPE_ARRAY size 68 // Вписываем туда переменную, в которой onfoot data, с измененными позициями.
0B42: raknet send bit_stream 5@ priority PRIORITY_HIGH reliability UNRELIABLE_SEQUENCED ordering_channel 0 // Отправляем битстрим в котором содержится пакет.
0B3E: raknet delete_bit_stream 5@ // Удаляем битстрим.
0AC9: free_allocated_memory 4@ // Освобождаем память.
0ab2: 0 // Заканчиваем Call функцию.
:SendInCar
0B2B: samp 3@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B24: samp 3@ = get_remote_player_ptr 3@
3@ += 201 // Прибавляем смещение на структуру, в которой храниться текущая onfoot data.
0AC8: 4@ = allocate_memory_size 63 // Выделяем память, равную размеру пакета.
0C10: memcpy destination 4@ source 3@ size 63 // Копируем информацию onfoot, чтобы потом изменить только позиции.
//0C0D: struct 4@ offset 2 size 2 = 0xFF80
//0C0D: struct 4@ offset 6 size 2 = 2@
0C0D: struct 4@ offset 24 size 4 = 0@
0C0D: struct 4@ offset 28 size 4 = 1@
0B3D: raknet 5@ = new_bit_stream // Создаем битстрим.
0B40: raknet bit_stream 5@ write PACKET_VEHICLE_SYNC type BS_TYPE_BYTE size 1
0B40: raknet bit_stream 5@ write 4@ type BS_TYPE_ARRAY size 63
0B42: raknet send bit_stream 5@ priority PRIORITY_HIGH reliability UNRELIABLE_SEQUENCED ordering_channel 0
0B3E: raknet delete_bit_stream 5@ // Удаляем битстрим.
0AC9: free_allocated_memory 4@ // Освобождаем память.
0ab2: 0 // Заканчиваем Call функцию.
:hex1
hex
0F 84 7B 01 00 00
end
:hex2
hex
50 51 FF 15 00 83 85 00
end
PHP:
hex
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
end
{$CLEO .cs}
0662: NOP " CLEO gproject 09.03.14 "
0662: NOP "gp .:':. ASAT .:':. www.gc0de.ru"
const
RESX = 0
RESY = 1
SWWH = 2
SWESP = 3
SWASAT = 4
FONT = 5
SWGM = 6
LMB = 7
SWTP = 8
FONT2 = 9
end
wait 0
repeat
wait 400
until 0AFA: is_samp_structures_available
0AF0: 31@ = get_int_from_ini_file "cleo\gp\gp.sys" section "offset" key "array"
0ab1: call @GetSampBase 0 retr_base_to 20@
20@ += 0x21683A
0DB6: 30@ = create_hook from_addr 20@ to_label @antisat pop_count 0 var_to_set_hook 30
0DB7: plant_hook 30@
while true
wait 0
0C0E: 21@ = array 31@ element SWASAT
end
:antisat
0DB9: get_hook 30@ last_param_pntr_to 29@
0AB1: call @GetCallParam 2 params_pntr 29@ param_num -2 to 28@
0AB1: call @GetCallParam 2 params_pntr 29@ param_num 1 to 27@
0AB1: call @GetCallParam 2 params_pntr 29@ param_num 2 to 26@
0AB1: call @GetCallParam 2 params_pntr 29@ param_num 3 to 24@
0AB1: call @GetPlayerHealth 0 to 25@
0063: 26@ -= 25@
if or
26@ > -0.9
26@ < -2.1
21@ == false
then
005B: 26@ += 25@
0DB8: unplant_hook 30@
0AA6: call_method 20@ struct 28@ num_params 3 pop 3 params 24@ 26@ 27@
0DB7: plant_hook 30@
end
0D98: callback_retn
:GetSampBase
0AA2: 0@ = load_library "kernel32.dll"
0AA4: 1@ = get_proc_address "GetModuleHandleA" library 0@
0AA7: call_function 1@ num_params 1 pop 0 "samp.dll" 2@
0AA3: free_library 0@
0ab2: ret 1 2@
:GetCallParam
0012: 1@ *= 4
005A: 0@ += 1@
0A8D: 2@ = read_memory 0@ size 4 virtual_protect 1
0AB2: ret 1 2@
:GetPlayerHealth
0A96: 0@ = actor $PLAYER_ACTOR struct
0@ += 0x540
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
0AB2: ret 1 0@
PHP:
hex
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
end
{$CLEO .cs}
0662: "botterp"
thread "botterp"
if
8AF7: get_samp_base_to 33@
then
0A93: end_custom_thread
end
repeat
wait 400
until 0AFA: is_samp_structures_available
const
RESX = 0
RESY = 1
SWWH = 2
SWESP = 3
SWASAT = 4
FONT = 5
SWGM = 6
LMB = 7
SWNOP = 8
FONT2 = 9
MOUSE = 10
CHBX = 11
GMOVER = 12
GMBP = 13
GMFP = 14
GMEP = 15
GMCP = 16
SWCOL = 17
SWSH = 18
SHGM = 19
SHSPEED = 20
SWAFK = 21
SWAFKA = 22
SWADM = 23
SWADMST = 24
ADMCNT = 25
SWFLY = 26
GUI = 27
SWFREE = 28
SWKEYST = 29
end
while true
wait 0
0AF0: 30@ = get_int_from_ini_file "cleo\gp\s\botter.tmp" section "botter" key "play"
if
30@ == true
then
0A9A: 30@ = openfile "cleo\gp\botter.bot" mode "rt"
0AF0: 30@ = get_int_from_ini_file "cleo\gp\s\botter.tmp" section "botter" key "file"
0A9C: 11@ = file 30@ size
11@ /= 6
0AC8: 28@ = allocate_memory_size 11@
0AC8: 27@ = allocate_memory_size 11@
0AC8: 26@ = allocate_memory_size 11@
0AC8: 23@ = allocate_memory_size 11@
0AC8: 22@ = allocate_memory_size 11@
0AC8: 12@ = allocate_memory_size 11@
0AC8: 8@ = allocate_memory_size 132
29@ = 0
while 0AD7: read_string_from_file 30@ to 8@ size 128
wait 0
if
0AD4: 11@ = scan_string 8@ format "%f %f %f %d %d %d" 20@ 19@ 18@ 15@ 14@ 13@
then
0AD1: show_formatted_text_highpriority "~G~READ. ~W~%f %f %f %d %d %d" time 500 20@ 19@ 18@ 15@ 14@ 13@
0C0F: array 28@ element 29@ = 20@
0C0F: array 27@ element 29@ = 19@
0C0F: array 26@ element 29@ = 18@
0C0F: array 23@ element 29@ = 15@
0C0F: array 22@ element 29@ = 14@
0C0F: array 12@ element 29@ = 13@
29@ += 1
end
end
29@ -= 1
0AC9: free_allocated_memory 8@
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}Началось воспроизведение бота." 0x8156CC
0AF1: write_int 2 to_ini_file "cleo\gp\s\botter.tmp" section "botter" key "play"
30@ = 2
10@ = 1
while 30@ == 2
wait 0
for 21@ = 0 to 29@
wait 0
0C0E: 20@ = array 28@ element 21@
0C0E: 19@ = array 27@ element 21@
0C0E: 18@ = array 26@ element 21@
0C0E: 15@ = array 23@ element 21@
0C0E: 14@ = array 22@ element 21@
0C0E: 13@ = array 12@ element 21@
0AB1: call @bot 6 20@ 19@ 18@ info 15@ stop 14@ info 13@
0AF0: 30@ = get_int_from_ini_file "cleo\gp\s\botter.tmp" section "botter" key "play"
if
not 30@ == 2
then
0AC9: free_allocated_memory 28@
0AC9: free_allocated_memory 27@
0AC9: free_allocated_memory 26@
0AC9: free_allocated_memory 23@
0AC9: free_allocated_memory 22@
0AC9: free_allocated_memory 12@
Break
end
end
10@ += 1
0AF0: 30@ = get_int_from_ini_file "cleo\gp\botter.ini" section "botter" key "cycle"
if and
30@ > 0
001D: 10@ > 30@
then
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}Воспроизведение завершено." 0x8156CC
0AF1: write_int 0 to_ini_file "cleo\gp\s\botter.tmp" section "botter" key "play"
0AB3: var 740 = 0
0687: clear_actor $PLAYER_ACTOR task
end
0AF0: 30@ = get_int_from_ini_file "cleo\gp\s\botter.tmp" section "botter" key "play"
end
end
end
:bot
wait 0
0AF0: 30@ = get_int_from_ini_file "cleo\gp\s\botter.tmp" section "botter" key "play"
0AF0: 31@ = get_int_from_ini_file "cleo\gp\gp.sys" section "offset" key "array"
0AF2: 8@ = get_float_from_ini_file "cleo\gp\botter.ini" section "botter" key "carspeed"
if
30@ == 2
then
0330: set_player $PLAYER_CHAR infinite_run true
00A0: store_actor $PLAYER_ACTOR position_to 7@ 6@ 2@
0063: 0@ -= 7@
0063: 1@ -= 6@
0604: get_Z_angle_for_point 0@ 1@ store_to 2@
005B: 0@ += 7@
005B: 1@ += 6@
if
80DF: not actor $PLAYER_ACTOR driving
then
2@ *= 0.01745
0A96: 7@ = actor $PLAYER_ACTOR struct
7@ += 0x558
0A8C: write_memory 7@ size 4 value 2@ virtual_protect 0
else
0AB5: store_actor $PLAYER_ACTOR closest_vehicle_to 9@ closest_ped_to 30@
046C: 7@ = car 9@ driver
if
003C: $PLAYER_ACTOR == 7@
then
//05D1: task_car_drive_to_coord $PLAYER_ACTOR car 9@ to 0@ 1@ 2@ speed 50.0 0 unk 0 0
//00A7: car 9@ drive_to 0@ 1@ 2@
02C2: car 9@ drive_to 0@ 1@ 2@
00AF: set_car 9@ driver_behaviour_to 9
00AD: set_car 9@ max_speed_to 8@
end
end
0373: set_camera_directly_behind_player
0AF0: 8@ = get_int_from_ini_file "cleo\gp\botter.ini" section "botter" key "run"
if
8@ == 1
then
if
3@ == 0
then
0C0F: array 31@ element SWKEYST = 2
else
0C0F: array 31@ element SWKEYST = 1
end
else
0C0F: array 31@ element SWKEYST = 2
end
if
80DF: not actor $PLAYER_ACTOR driving
then
if
00ED: actor $PLAYER_ACTOR 0 near_point 0@ 1@ radius 0.4 0.4 on_foot
else_jump @bot
else
if
00EE: actor $PLAYER_ACTOR 0 near_point 0@ 1@ radius 3.0 3.0 in_car
else_jump @bot
end
if
4@ == 0
then
wait 500
0C0F: array 31@ element SWKEYST = 0
repeat
wait 0
until 0B4C: samp is_dialog_active 3@
0B47: samp close_current_dialog_with_button 5@
0AB2: ret 0
end
if
4@ == 2
then
wait 500
0C0F: array 31@ element SWKEYST = 0
33@ = 0
repeat
wait 250
until 001D: 33@ > 3@
0AB2: ret 0
end
else
0C0F: array 31@ element SWKEYST = 0
if
00DF: actor $PLAYER_ACTOR driving
then
00AA: store_car 9@ position_to 7@ 6@ 2@
02C2: car 9@ drive_to 7@ 6@ 2@
end
end
0AB2: ret 0
PHP:
hex
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
end
{$CLEO .cs}
0662: "botter"
thread "botter"
repeat
wait 400
until 0AFA: is_samp_structures_available
const
RESX = 0
RESY = 1
SWWH = 2
SWESP = 3
SWASAT = 4
FONT = 5
SWGM = 6
LMB = 7
SWNOP = 8
FONT2 = 9
MOUSE = 10
CHBX = 11
GMOVER = 12
GMBP = 13
GMFP = 14
GMEP = 15
GMCP = 16
SWCOL = 17
SWSH = 18
SHGM = 19
SHSPEED = 20
SWAFK = 21
SWAFKA = 22
SWADM = 23
SWADMST = 24
ADMCNT = 25
SWFLY = 26
GUI = 27
SWFREE = 28
SWKEYST = 29
KEYREST = 30
BOTDI = 31
end
if
0AAB: file_exists "cleo\botter.cs"
then
0B00: delete_file "cleo\botter.cs"
if
0AAB: file_exists "cleo\botter.bot"
then
0B04: copy_file "cleo\botter.bot" to "cleo\gp\botter.bot"
end
end
0AF0: 31@ = get_int_from_ini_file "cleo\gp\gp.sys" section "offset" key "array"
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}Введите {8156CC}/bot{EAEAEA}, чтобы начать." 0x8156CC
28@ = false
0AF1: write_int 28@ to_ini_file "cleo\gp\s\botter.tmp" section "botter" key "write"
0AF1: write_int 28@ to_ini_file "cleo\gp\s\botter.tmp" section "botter" key "play"
0AF1: write_int 28@ to_ini_file "cleo\gp\s\botter.tmp" section "botter" key "file"
0A92: create_custom_thread "gp\s\botter.wrt"
0A92: create_custom_thread "gp\s\botter.play"
0B34: samp register_client_command "bot" to_label @bot
while true
wait 0
0AF0: 28@ = get_int_from_ini_file "cleo\gp\s\botter.tmp" section "botter" key "write"
0AF0: 27@ = get_int_from_ini_file "cleo\gp\s\botter.tmp" section "botter" key "play"
0AF0: 26@ = get_int_from_ini_file "cleo\gp\s\botter.tmp" section "botter" key "file"
if
27@ == true
then
0C0F: array 31@ element SWAFK = 0
end
0C0E: 22@ = array 31@ element SWKEYST
if
22@ == 1
then
if
80DF: not actor $PLAYER_ACTOR driving
then
21@ = 0xB73458
21@ += 0x20
0A8C: write_memory 21@ size 1 value 0 virtual_protect 0
21@ = 0xB73458
21@ += 0x3
0A8C: write_memory 21@ size 1 value 255 virtual_protect 0
else
21@ = 0xB73458
21@ += 0x20
0A8C: write_memory 21@ size 1 value 255 virtual_protect 0
end
end
if
22@ == 2
then
if
80DF: not actor $PLAYER_ACTOR driving
then
21@ = 0xB73458
21@ += 0x20
0A8C: write_memory 21@ size 1 value 255 virtual_protect 0
21@ = 0xB73458
21@ += 0x3
0A8C: write_memory 21@ size 1 value 255 virtual_protect 0
else
21@ = 0xB73458
21@ += 0x20
0A8C: write_memory 21@ size 1 value 255 virtual_protect 0
end
end
0C0E: 22@ = array 31@ element BOTDI
if
22@ == 1
then
:jumper282
wait 0
0AC8: 24@ = allocate_memory_size 128
repeat
wait 0
0B3B: samp show_dialog id 16 caption "{8156CC}Botter" text "{EAEAEA}Введите название бота:" button_1 "Начать" button_2 "" style 1
repeat
wait 0
0B4A: samp 24@ = get_current_dialog_editbox_text
until 8B4C: not samp is_dialog_active 16
0A8D: 20@ = read_memory 24@ size 1 virtual_protect 1
until 20@ > 0
0AC8: 17@ = allocate_memory_size 128
0AD3: 17@ = format "cleo\gp\%s.bot" 24@
if
0AAB: file_exists 17@
then
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}Файл {8156CC}%s.bot {EAEAEA}уже существует." 0x8156CC 24@
0AC9: free_allocated_memory 17@
0AC9: free_allocated_memory 24@
jump @jumper282
else
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}Запись в файл {8156CC}/gp/%s.bot {EAEAEA}начата." 0x8156CC 24@
end
0AC9: free_allocated_memory 24@
0A9A: 26@ = openfile 17@ mode "wt+"
0AC9: free_allocated_memory 17@
0AF1: write_int 26@ to_ini_file "cleo\gp\s\botter.tmp" section "botter" key "file"
28@ = true
0AF1: write_int 28@ to_ini_file "cleo\gp\s\botter.tmp" section "botter" key "write"
0C0F: array 31@ element BOTDI = 0
end
if
22@ == 2
then
:jumper228
wait 0
0AC8: 24@ = allocate_memory_size 128
repeat
wait 0
0B3B: samp show_dialog id 16 caption "{8156CC}Botter" text "{EAEAEA}Введите название бота:" button_1 "Начать" button_2 "" style 1
repeat
wait 0
0B4A: samp 24@ = get_current_dialog_editbox_text
until 8B4C: not samp is_dialog_active 16
0A8D: 20@ = read_memory 24@ size 1 virtual_protect 1
until 20@ > 0
0AC8: 17@ = allocate_memory_size 128
0AD3: 17@ = format "cleo\gp\%s.bot" 24@
if
8AAB: not file_exists 17@
then
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}Файл {8156CC}%s.bot {EAEAEA}не найден." 0x8156CC 24@
0AC9: free_allocated_memory 17@
0AC9: free_allocated_memory 24@
jump @jumper228
else
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}Считывание из файла {8156CC}%s.bot {EAEAEA}началось." 0x8156CC 24@
end
0AC9: free_allocated_memory 24@
0A9A: 26@ = openfile 17@ mode "rt"
0AC9: free_allocated_memory 17@
0AF1: write_int 26@ to_ini_file "cleo\gp\s\botter.tmp" section "botter" key "file"
27@ = true
0AF1: write_int 27@ to_ini_file "cleo\gp\s\botter.tmp" section "botter" key "play"
0A8C: write_memory 0x747FB6 size 1 value 1 virtual_protect 1
0A8C: write_memory 0x74805A size 1 value 1 virtual_protect 1
0C11: memset destination 0x53EA88 value 0x000000000090 size 6
0C11: memset destination 0x74542B value 0x0000000000000090 size 8
0C0F: array 31@ element BOTDI = 0
end
end
:bot
0B35: samp 30@ = get_last_command_params
if
0C18: 29@ = strstr string1 30@ string2 "new"
then
if and
28@ == false
27@ == false
then
0C0F: array 31@ element BOTDI = 1
else
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}Сначала завершите воспроизведение/запись." 0x8156CC
end
else
if
0C18: 29@ = strstr string1 30@ string2 "stop"
then
if or
28@ == true
27@ == 2
then
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}Запись/воспроизведение завершены." 0x8156CC
0A9B: closefile 26@
28@ = false
0AF1: write_int 28@ to_ini_file "cleo\gp\s\botter.tmp" section "botter" key "write"
if
27@ == true
then
0A8C: write_memory 0x747FB6 size 1 value 0 virtual_protect 1
0A8C: write_memory 0x74805A size 1 value 0 virtual_protect 1
0AC6: 29@ = label @hex1 offset
0C10: memcpy destination 0x53EA88 source 29@ size 6
0AC6: 29@ = label @hex2 offset
0C10: memcpy destination 0x74542B source 29@ size 8
end
27@ = false
0AF1: write_int 27@ to_ini_file "cleo\gp\s\botter.tmp" section "botter" key "play"
else
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}Сначала начните запись/воспроизведение." 0x8156CC
end
else
if
0C18: 29@ = strstr string1 30@ string2 "play"
then
if and
28@ == false
27@ == false
then
0C0F: array 31@ element BOTDI = 2
else
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}Сначала завершите воспроизведение/запись." 0x8156CC
end
else
if
0C18: 29@ = strstr string1 30@ string2 "set"
then
if
0C18: 29@ = strstr string1 30@ string2 "cycle"
then
if
0AD4: 29@ = scan_string 30@ format "set cycle %d" 23@
then
0AF1: write_int 23@ to_ini_file "cleo\gp\botter.ini" section "botter" key "cycle"
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}Настройки сохранены." 0x8156CC
else
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}Неправильное значение." 0x8156CC
end
else
if
0C18: 29@ = strstr string1 30@ string2 "run"
then
if
0AD4: 29@ = scan_string 30@ format "set run %d" 23@
then
if or
23@ == 1
23@ == 0
then
0AF1: write_int 23@ to_ini_file "cleo\gp\botter.ini" section "botter" key "run"
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}Настройки сохранены." 0x8156CC
else
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}Неправильное значение." 0x8156CC
end
else
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}Неправильное значение." 0x8156CC
end
else
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}/bot set {8156CC}run {EAEAEA}1/0" 0x8156CC
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}/bot set {8156CC}cycle {EAEAEA}[целое напр. 0]" 0x8156CC
end
end
else
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}/bot {8156CC}new {EAEAEA}- начать запись бота." 0x8156CC
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}/bot {8156CC}play {EAEAEA}- начать воспроизведение бота." 0x8156CC
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}/bot {8156CC}stop {EAEAEA}- остановить запись/воспроизведение." 0x8156CC
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}/bot {8156CC}set {EAEAEA}- открыть настройки." 0x8156CC
end
end
end
end
0B43: samp cmd_ret
:hex1
hex
0F 84 7B 01 00 00
end
:hex2
hex
50 51 FF 15 00 83 85 00
end
PHP:
hex
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
end
{$CLEO .cs}
0662: "botterw"
thread "botterw"
if
8AF7: get_samp_base_to 33@
then
0A93: end_custom_thread
end
repeat
wait 400
until 0AFA: is_samp_structures_available
while true
wait 0
0AF0: 25@ = get_int_from_ini_file "cleo\gp\s\botter.tmp" section "botter" key "write"
while 25@ == true
wait 0
0AF0: 24@ = get_int_from_ini_file "cleo\gp\s\botter.tmp" section "botter" key "file"
if
0256: player $PLAYER_CHAR defined
then
0AD1: show_formatted_text_highpriority "~R~REC." time 500
00A0: store_actor $PLAYER_ACTOR position_to 30@ 29@ 28@
if
00DF: actor $PLAYER_ACTOR driving
then
0AB5: store_actor $PLAYER_ACTOR closest_vehicle_to 11@ closest_ped_to 10@
046C: 10@ = car 11@ driver
if
003C: $PLAYER_ACTOR == 10@
then
06A2: get_car 11@ velocity_in_direction_XYZ 15@ 14@ 13@
0174: 27@ = car 11@ Z_angle
end
else
083D: get_actor $PLAYER_ACTOR velocity_in_direction_XYZ 15@ 14@ 13@
0172: 27@ = actor $PLAYER_ACTOR Z_angle
end
0509: 19@ = distance_between_XY 30@ 29@ and_XY 21@ 20@
if or
15@ > 2.5
15@ < -2.5
14@ > 2.5
14@ < -2.5
13@ > 2.5
13@ < -2.5
then
if
80DF: not actor $PLAYER_ACTOR driving
then
if and
8045: not 27@ == 26@
19@ > 1.25
then
0063: 27@ -= 26@
if or
27@ > 10.0
27@ < -10.0
then
005B: 27@ += 26@
0087: 21@ = 30@
0087: 20@ = 29@
0087: 26@ = 27@
if
00E1: player 0 pressed_key 16
then
0AD9: write_formatted_text "%f %f %f 0 1 0 %c%c" in_file 24@ 30@ 29@ 28@ 0x0D 0x0A
else
0AD9: write_formatted_text "%f %f %f 1 1 0 %c%c" in_file 24@ 30@ 29@ 28@ 0x0D 0x0A
end
end
end
else
if
19@ > 5.0
then
005B: 27@ += 26@
0087: 21@ = 30@
0087: 20@ = 29@
0087: 26@ = 27@
if
00E1: player 0 pressed_key 16
then
0AD9: write_formatted_text "%f %f %f 0 1 0 %c%c" in_file 24@ 30@ 29@ 28@ 0x0D 0x0A
else
0AD9: write_formatted_text "%f %f %f 1 1 0 %c%c" in_file 24@ 30@ 29@ 28@ 0x0D 0x0A
end
end
end
else
33@ = 0
repeat
wait 0
0B4E: samp 23@ = get_current_dialog_id
if
0B4C: samp is_dialog_active 23@
then
12@ = false
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}Обнаружен диалог. {00CC14}Y {EAEAEA}- записать; {E81717}N {EAEAEA}- не записывать." 0x8156CC
repeat
wait 0
if
0ab0: 89
then
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}Диалог будет записан. Закройте его на нужную кнопку." 0x8156CC
12@ = true
repeat
wait 0
0B3C: samp dialog_respond 23@ button 17@ list_item 0 input_text 0
until 8B4C: not samp is_dialog_active 23@
0AD1: show_formatted_text_highpriority "~R~REC." time 500
33@ = 0
0AD9: write_formatted_text "%f %f %f %d 0 %d %c%c" in_file 24@ 30@ 29@ 28@ 23@ 17@ 0x0D 0x0A
end
if
0ab0: 78
then
12@ = true
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}Диалог не будет записан." 0x8156CC
repeat
wait 0
until 8B4C: not samp is_dialog_active 23@
end
if
8B4C: not samp is_dialog_active 23@
then
if
12@ == false
then
0AF8: samp add_message_to_chat "[Botter]: {EAEAEA}Диалог не будет записан." 0x8156CC
end
Break
end
until false
end
if
00DF: actor $PLAYER_ACTOR driving
then
0AB5: store_actor $PLAYER_ACTOR closest_vehicle_to 11@ closest_ped_to 10@
046C: 10@ = car 11@ driver
if
003C: $PLAYER_ACTOR == 10@
then
06A2: get_car 11@ velocity_in_direction_XYZ 15@ 14@ 13@
end
else
083D: get_actor $PLAYER_ACTOR velocity_in_direction_XYZ 15@ 14@ 13@
end
0AF0: 25@ = get_int_from_ini_file "cleo\gp\s\botter.tmp" section "botter" key "write"
if or
15@ > 2.5
15@ < -2.5
14@ > 2.5
14@ < -2.5
13@ > 2.5
13@ < -2.5
25@ == false
then
Break
end
until false
0AD9: write_formatted_text "%f %f %f %d 2 0 %c%c" in_file 24@ 30@ 29@ 28@ 33@ 0x0D 0x0A
end
end
0AF0: 25@ = get_int_from_ini_file "cleo\gp\s\botter.tmp" section "botter" key "write"
end
end