Сливаю код чекера риелторки от darkwest, который спиздил Winchester и продает
Код
hex
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
end
{$CLEO}
0000: NOP
repeat
wait 0
until samp.Available()
:ttr
wait 0
if
0AAB: file_exists "SmartHooks.ini"
then
chatmsg "{007B75}[ChekerDRP]: {ffffff} Удалите SmartHooks" 0xFFFFFF
0B28: samp disconnect_with_reason 0
end_thread
end
if
0AAB: file_exists "CLEO\rielt.cs"
then
wait 0
else
chatmsg "{007B75}[ChekerDRP]: {ffffff} Файл rielt.cs переименован. Скрипт отключен" 0xFFFFFF
0B28: samp disconnect_with_reason 0
end_thread
end
if
0AAB: file_exists "CLEO\dact.txt"
then
0B00: delete_file "CLEO\dact.txt"
end
0AA7: call_function 0x81E532 num_params 8 pop 0 | FALSE FALSE FALSE FALSE 31@v FALSE FALSE FALSE | 10@ |
wait 599
0AC6: 1@ = label @url_fileupdateinfo offset // Сделаем грешок и переопределим переменную
0C65: 1@ = download_url 1@ to_file "Cleo\dact.txt"
0AB1: call_scm_func @download_check_status 1 download_n 1@ status_to 2@
0C7D: release_download 1@ // Освобождаем, т.к. скачивание завершено
:ttr2
wait 0
if
0A9A: 0@ = openfile "Cleo\dact.txt" mode "rt"
jf @ttr2
wait 100
0AC8: 2@ = allocate_memory_size 4096
0C11: memset destination 2@ value 0 size 4096
0AC8: 3@ = allocate_memory_size 96
repeat
if 0AD7: read_string_from_file 0@ to 3@ size 95 // ???????? ?????? ?? ????? ? ????? + ?????????, ?????? ?? ?????? ??????
then
0C15: strcat destination 2@ source 3@ // ???????????? ?????? ?? ??????? ??????
0C11: memset destination 3@ value 0 size 96 // ??????? ?????, ????? ??? ????????? ?????? ?? ?????? ?????-?? ?????? ??????????
end
until 0AD6: end_of_file 0@ reached
wait 100
0A9B: closefile 0@
wait 100
0B00: delete_file "Cleo\dact.txt" // IF and SET
0AC8: 0@ = allocate_memory_size 96
0AD3: 0@ = FORMAT "%d" 31@
wait 100
if
0C18: 19@ = strstr string1 2@ string2 0@
then
jump @RIELT_0
end
free 3@
free 2@
0B3B: samp show_dialog id 1 caption "Ошибка активации" text "Сообщите код из чатлога продавцу" button_1 "ок" button_2 "" style 0
wait 50
chatmsg "{007B75}[ChekerDRP]: {FFFFFF}Код активации: %d" color -1 params 31@
0B28: samp disconnect_with_reason 0
0A93: end_custom_thread
return
:RIELT_0
log "{ffffff}Rielt by Winchester {00ff00}loaded"
0BE3: raknet setup_incoming_rpc_hook @RIELT_2000
0B34: samp register_client_command "rbiz" to_label @RIELT_500
0B34: samp register_client_command "rsms" to_label @RIELT_600
0B34: samp register_client_command "check" to_label @RIELT_900
0B34: samp register_client_command "rmetka" to_label @RIELT_400
22@ = Audiostream.Load("CLEO\RIELT\RIELT.wav")
31@ = 0
:RIELT_100
wait 0
if 31@ == 1
jf @RIELT_100
:RIELT_101
if 0B4C: samp is_dialog_active -1
jf @RIELT_800
0AC8: 2@ = allocate_memory_size 256
0BD8: samp get_dialog_caption 2@
:RIELT_102
if
0C18: 19@ = strstr string1 2@ string2 "Выберите"
jf @RIELT_103
while 0B21: samp is_chat_opened
wait 100
end
samp.CloseDialog(0)
while 0B4C: samp is_dialog_active -1
wait 0
end
repeat
wait 100
until 0B4C: samp is_dialog_active -1
free 2@
wait 200
jump @RIELT_100
:RIELT_103
if
0C18: 19@ = strstr string1 2@ string2 "недвижимости"
jf @RIELT_100
0BD7: samp get_dialog_text 2@
wait 100
if 0C18: 19@ = strstr string1 0@ string2 2@
then
wait 0
else
0C15: strcat destination 0@ source 2@
end
wait 200
free 2@
0B49: samp set_current_dialog_list_item 28@
while 0B21: samp is_chat_opened
wait 100
end
samp.CloseDialog(1)
while 0B4C: samp is_dialog_active -1
wait 0
end
wait 200
:RIELT_104
wait 0
if 24@ == 0
jf @RIELT_100
:RIELT_105
wait 0
if 0B4C: samp is_dialog_active -1
jf @RIELT_104
:RIELT_106
if 27@ == 0
jf @RIELT_200
24@ = 0
0AC8: 2@ = allocate_memory_size 1024
0BD7: samp get_dialog_text 2@
wait 100
0C15: strcat destination 0@ source 2@
0B54: samp 3@ = listbox_items_count
wait 300
free 2@
:RIELT_107
if 3@ == 21
jf @RIELT_108
0B49: samp set_current_dialog_list_item 20
if 28@ == 1
then
25@ += 20
else
26@ += 20
end
while 0B21: samp is_chat_opened
wait 100
end
SAMP.CloseDialog(1)
while 0B4C: samp is_dialog_active -1
wait 0
end
wait 300
jump @RIELT_104
:RIELT_108
if 28@ == 1
then
005A: 25@ += 3@ // (int)
else
005A: 26@ += 3@ // (int)
end
:RIELT_109
if 28@ == 1
then
chatmsg "{007B75}[ChekerDRP]: {ffffff} Дома: %d" 0xFFFFFF 25@
if 29@ == 1
then
28@ = 2
else
28@ = 1
27@ = 1
end
else
chatmsg "{007B75}[ChekerDRP]: {ffffff} Бизнесы: %d" 0xFFFFFF 26@
28@ = 1
27@ = 1
end
wait 100
jump @RIELT_100
:RIELT_200
0B54: samp 3@ = listbox_items_count
0AC8: 2@ = allocate_memory_size 96
0085: 5@ = 3@ // (int)
5@ -= 1
:RIELT_201
if 0B4C: samp is_dialog_active -1
jf @RIELT_100
FOR 4@ = 0 TO {MAX_3DTEXTS}5@ [STEP = 1]
0B5B: samp get_listbox_item 4@ text_to 2@
if 0C18: 19@ = strstr string1 0@ string2 2@
then
0C11: memset destination 2@ value 0 size 96
wait 50
else
jump @RIELT_300
end
end
:RIELT_202
if 3@ == 21
jf @RIELT_203
0B49: samp set_current_dialog_list_item 20
while 0B21: samp is_chat_opened
wait 100
end
SAMP.CloseDialog(1)
while 0B4C: samp is_dialog_active -1
wait 0
end
free 2@
wait 300
jump @RIELT_200
:RIELT_203
if 29@ == 1
then
if 28@ == 1
then
28@ = 2
else
28@ = 1
end
else
28@ = 1
end
while 0B21: samp is_chat_opened
wait 100
end
wait 300
SAMP.CloseDialog(0)
while 0B4C: samp is_dialog_active -1
wait 0
end
free 2@
wait 300
jump @RIELT_100
:RIELT_300
//Слёт
if 0C18: 19@ = strstr string1 2@ string2 "Далее"
then
0C15: strcat destination 0@ source 2@
jump @RIELT_100
end
chatmsg " " 0xFFFFFF
chatmsg " " 0xFFFFFF
chatmsg " " 0xFFFFFF
chatmsg " " 0xFFFFFF
chatmsg "{007B75}[ChekerDRP]: {ffffff}%s" 0xFFFFFF 2@
chatmsg "{007B75}[ChekerDRP]: {ffffff}%s" 0xFFFFFF 2@
chatmsg "{007B75}[ChekerDRP]: {ffffff}%s" 0xFFFFFF 2@
chatmsg " " 0xFFFFFF
Audiostream.Loop(22@, true)
Audiostream.PerformAction(22@, PLAY)
if or
0C18: 19@ = strstr string1 2@ string2 "квартира"
0C18: 19@ = strstr string1 2@ string2 "Дом"
0C18: 19@ = strstr string1 2@ string2 "Особняк"
jf @RIELT_310
:RIELT_301
if
0C18: 19@ = strstr string1 2@ string2 "квартира"
jf @RIELT_302
0AD4: 19@ = scan_string 2@ format "%s квартира [№%d]" 23@ 9@
if and
9@<=844
9@>=841
then
chatmsg "{007B75}[ChekerDRP]: {ffffff}Этаж: 1" 0xFFFFFF
end
if and
9@<=848
9@>=845
then
chatmsg "{007B75}[ChekerDRP]: {ffffff}Этаж: 2" 0xFFFFFF
end
if and
9@<=852
9@>=849
then
chatmsg "{007B75}[ChekerDRP]: {ffffff}Этаж: 3" 0xFFFFFF
end
if and
9@<=856
9@>=853
then
chatmsg "{007B75}[ChekerDRP]: {ffffff}Этаж: 4" 0xFFFFFF
end
if and
9@<=860
9@>=857
then
chatmsg "{007B75}[ChekerDRP]: {ffffff}Этаж: 5" 0xFFFFFF
end
if and
9@<=864
9@>=861
then
chatmsg "{007B75}[ChekerDRP]: {ffffff}Этаж: 6" 0xFFFFFF
end
if and
9@<=868
9@>=865
then
chatmsg "{007B75}[ChekerDRP]: {ffffff}Этаж: 7" 0xFFFFFF
end
if and
9@<=872
9@>=869
then
chatmsg "{007B75}[ChekerDRP]: {ffffff}Этаж: 8" 0xFFFFFF
end
if and
9@<=876
9@>=873
then
chatmsg "{007B75}[ChekerDRP]: {ffffff}Этаж: 9" 0xFFFFFF
end
if and
9@<=880
9@>=877
then
chatmsg "{007B75}[ChekerDRP]: {ffffff}Этаж: 10" 0xFFFFFF
end
if and
9@<=884
9@>=881
then
chatmsg "{007B75}[ChekerDRP]: {ffffff}Этаж: 11" 0xFFFFFF
end
if and
9@<=888
9@>=885
then
chatmsg "{007B75}[ChekerDRP]: {ffffff}Этаж: 12" 0xFFFFFF
end
chatmsg " " 0xFFFFFF
alloc 7@ 96
0AD3: 7@ = FORMAT "/t %d [RIELT]: %s" 21@ 2@
jump @RIELT_320
:RIELT_302
0AC8: 6@ = allocate_memory_size 96
0AC8: 8@ = allocate_memory_size 96
0AD3: 6@ = FORMAT "%s" 2@
0C2D: strrev in 6@ out 6@
0AD4: 19@ = scan_string 6@ format "%s" 8@v
0AD3: 6@ = FORMAT "%s" 8@v
0C2D: strrev in 6@ out 6@
0AD4: 19@ = scan_string 6@ format "[№%d]" 9@
free 6@
free 8@
call @RIELT_2200 1 9@ 18@ 15@ 16@ 17@
0AF0: 33@ = get_int_from_ini_file "CLEO\RIELT\RIELT.ini" section "Settings" key "metka"
if 33@ == 1
then
marker.CreateIconAndSphere(30@,19,15@, 16@, 17@)
end
chatmsg "{007B75}[ChekerDRP]: {ffffff}гос цена: %d" 0xFFFFFF 18@
0AC8: 7@ = allocate_memory_size 96
0AD3: 7@ = FORMAT "/t %d [RIELT]: %s | гос: %d" 21@ 2@ 18@
jump @RIELT_320
:RIELT_310
0AC8: 6@ = allocate_memory_size 96
0AC8: 8@ = allocate_memory_size 96
0AD3: 6@ = FORMAT "%s" 2@
0C2D: strrev in 6@ out 6@
0AD4: 19@ = scan_string 6@ format "%s" 8@v
0AD3: 6@ = FORMAT "%s" 8@v
0C2D: strrev in 6@ out 6@
0AD4: 19@ = scan_string 6@ format "[№%d]" 9@
free 6@
free 8@
0AC8: 7@ = allocate_memory_size 96
0AD3: 7@ = FORMAT "/t %d [RIELT]: %d | %s" 21@ 9@ 2@
call @RIELT_2250 1 9@ 15@ 16@ 17@
0AF0: 33@ = get_int_from_ini_file "CLEO\RIELT\RIELT.ini" section "Settings" key "metka"
if 33@ == 1
then
marker.CreateIconAndSphere(30@,19,15@, 16@, 17@)
end
:RIELT_320
if 20@ == 1
jf @RIELT_325
samp.CloseDialog(0)
while 0B4C: samp is_dialog_active -1
wait 0
end
wait 100
repeat
wait 50
until 0B4C: samp is_dialog_active -1
samp.CloseDialog(0)
while 0B4C: samp is_dialog_active -1
wait 0
end
wait 200
say 7@
jump @RIELT_330
:RIELT_325
if 3@ <> 99
jf @RIELT_330
0B49: samp set_current_dialog_list_item 4@
:RIELT_330
free 7@
3@ = 0
chatmsg " " 0xFFFFFF
chatmsg "нажмите ALT чтобы остановить звук" 0xFFFFFF
:RIELT_350
wait 0
if or
31@==0
key_down 18
jf @RIELT_350
Audiostream.PerformAction(22@, STOP)
31@=0
28@ = 1
27@ = 0
25@ = 0
26@ = 0
wait 100
jump @RIELT_100
:RIELT_400
marker.Disable(30@)
Audiostream.PerformAction(22@, STOP)
0A92: create_custom_thread "rielt.cs"
0A93: end_custom_thread
samp.CmdRet()
:RIELT_500
0B35: samp 8@ = get_last_command_params
0AD4: 19@ = scan_string 8@ format "%d" 6@
if 6@ == 0
then
29@ = 0
chatmsg "{007B75}[ChekerDRP]: {ffffff} Чек бизов отключен" 0xFFFFFF
0AF1: write_int 0 to_ini_file "CLEO\RIELT\RIELT.ini" section "Settings" key "biz"
else
29@ = 1
chatmsg "{007B75}[ChekerDRP]: {ffffff} Чек бизов включен" 0xFFFFFF
0AF1: write_int 1 to_ini_file "CLEO\RIELT\RIELT.ini" section "Settings" key "biz"
end
samp.CmdRet()
:RIELT_600
0B35: samp 8@ = get_last_command_params
0AD4: 8@ = scan_string 8@ format "%d" 6@
if 6@ <= 0
then
20@ = 0
chatmsg "{007B75}[ChekerDRP]: {ffffff} СМС отключено" 0xFFFFFF
0AF1: write_int 0 to_ini_file "CLEO\RIELT\RIELT.ini" section "SMS" key "sms"
else
20@ = 1
chatmsg "{007B75}[ChekerDRP]: {ffffff} СМС включено" 0xFFFFFF
0AF1: write_int 6@ to_ini_file "CLEO\RIELT\RIELT.ini" section "SMS" key "number"
0085: 21@ = 6@ // (int)
0AF1: write_int 1 to_ini_file "CLEO\RIELT\RIELT.ini" section "SMS" key "sms"
end
samp.CmdRet()
:RIELT_800
wait 600
while 0B21: samp is_chat_opened
wait 100
end
if 0B4C: samp is_dialog_active -1
then
24@ = 0
jump @RIELT_100
end
:RIELT_801
if 24@ == 1
jf @RIELT_100
if 31@ == 0
then
jump @RIELT_100
end
say "/agency"
wait 500
jump @RIELT_800
:RIELT_900
if 31@ == 0
jf @RIELT_950
chatmsg "{007B75}[ChekerDRP]: {ffffff} Скрипт запущен" 0xFFFFFF
marker.Disable(30@)
if
0AAB: file_exists "CLEO\RIELT\RIELT.ini"
then
0AF0: 29@ = get_int_from_ini_file "CLEO\RIELT\RIELT.ini" section "Settings" key "biz"
0AF0: 20@ = get_int_from_ini_file "CLEO\RIELT\RIELT.ini" section "SMS" key "sms"
0AF0: 21@ = get_int_from_ini_file "CLEO\RIELT\RIELT.ini" section "SMS" key "number"
else
0AF1: write_int 1 to_ini_file "CLEO\RIELT\RIELT.ini" section "Settings" key "biz"
0AF1: write_int 1 to_ini_file "CLEO\RIELT\RIELT.ini" section "Settings" key "metka"
0AF1: write_int 0 to_ini_file "CLEO\RIELT\RIELT.ini" section "SMS" key "sms"
0AF1: write_int 123456 to_ini_file "CLEO\RIELT\RIELT.ini" section "SMS" key "number"
29@ = 1
end
if 29@ <> 0
then
29@ = 1
end
if 20@==1
then
chatmsg "{007B75}[ChekerDRP]: {ffffff} Смс на номер: %d" 0xFFFFFF 21@
end
28@ = 1
27@ = 0
25@ = 0
26@ = 0
0AC8: 0@ = allocate_memory_size 4096
0C11: memset destination 0@ value 0 size 4096
say "/agency"
wait 300
31@ = 1
samp.CmdRet()
:RIELT_950
31@ = 0
chatmsg "{007B75}[ChekerDRP]: {ffffff} Скрипт остановлен" 0xFFFFFF
free 0@
Audiostream.PerformAction(22@, STOP)
wait 300
0A92: create_custom_thread "rielt.CS"
0A93: end_custom_thread
samp.CmdRet()
:RIELT_1000
actor.StorePos($PLAYER_ACTOR, 1@, 2@, 3@)
1@ += 1.0
2@ += 1.0
0B2B: samp 4@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0AC8: 0@ = allocate_memory_size 68
0BBA: samp store_player 4@ onfoot_data 0@
0C0D: struct 0@ offset 6 size 4 = 1@ // X
0C0D: struct 0@ offset 10 size 4 = 2@ // Y
0C0D: struct 0@ offset 14 size 4 = 3@ // Z
0BC0: samp send_onfoot_data 0@
0AC9: free_allocated_memory 0@
ret 0
:RIELT_2000
0BE5: raknet 10@ = get_hook_param 0
0BE5: raknet 11@ = get_hook_param 1
if and
31@ == 1
11@ == 93
jf @RIELT_2050
12@ = BitStream.Read(10@, 3)
13@ = BitStream.Read(10@, 3)
call @RIELT_2150 2 257 1 14@
BitStream.ReadArray(10@, 14@, 13@)
if
0C18: 19@ = strstr string1 14@ string2 "Нет доступных домов."
jf @RIELT_2010
if 27@ == 0
then
chatmsg "{007B75}[ChekerDRP]: {ffffff} Дома: %d" 0xFFFFFF 25@
end
if 29@ == 1
then
28@ = 2
else
27@ = 1
28@ = 1
end
24@ = 1
jump @RIELT_2050
:RIELT_2010
if
0C18: 19@ = strstr string1 14@ string2 "Нет доступных бизнесов."
jf @RIELT_2020
if 27@ == 0
then
chatmsg "{007B75}[ChekerDRP]: {ffffff} Бизнесы: %d" 0xFFFFFF 26@
end
28@ = 1
27@ = 1
24@ = 1
jump @RIELT_2050
:RIELT_2020
if
0C18: 19@ = strstr string1 14@ string2 "телепортировал Вас к себе"
jf @RIELT_2050
31@ = 0
24@ = 0
:RIELT_2050
0BE0: raknet hook_ret true
:RIELT_2150
005A: 0@ += 1@ // (int)
alloc 2@ 0@
0C11: memset destination 2@ value 0 size 0@
ret 1 2@
:RIELT_2200
wait 0
if
0A9A: 1@ = openfile "Cleo\RIELT\Houses.txt" mode "rt"
jf @RIELT_2200
alloc 2@ 96
repeat
if 0AD7: read_string_from_file 1@ to 2@ size 96 // ???????? ?????? ?? ????? ? ????? + ?????????, ?????? ?? ?????? ??????
then
0AD4: 19@ = scan_string 2@ format "%d | %d | %d | %f | %f | %f | %d" 3@ 4@ 5@ 6@ 7@ 8@ 9@
if
003B: 3@ == 0@ // (int)
then
jump @RIELT_2210
end
0C11: memset destination 2@ value 0 size 96
end
until 0AD6: end_of_file 1@ reached
:RIELT_2210
0A9B: closefile 1@
free 2@
ret 4 4@ 6@ 7@ 8@
:RIELT_2250
wait 0
if
0A9A: 1@ = openfile "Cleo\RIELT\Business.txt" mode "rt"
jf @RIELT_2250
alloc 2@ 96
repeat
if 0AD7: read_string_from_file 1@ to 2@ size 96 // ???????? ?????? ?? ????? ? ????? + ?????????, ?????? ?? ?????? ???
then
0AD4: 19@ = scan_string 2@ format "%d|%f|%f|%f" 3@ 4@ 5@ 6@
if
003B: 3@ == 0@
then
jump @RIELT_2300
end
0C11: memset destination 2@ value 0 size 96
end
until 0AD6: end_of_file 1@ reached
:RIELT_2300
0A9B: closefile 1@
free 2@
ret 3 4@ 5@ 6@
:download_check_status // Для проверки статуса загрузки(т.к. эта часть будет использоваться более, чем 1 раз)
// call @download_check_status 1 download_n 0@
1@ = -1
while 1@ == -1 // Скачивание всё ещё в процессе
wait 0
0C66: 1@ = get_download 0@ state // Получаем статус загрузки
end
0AB2: ret 1 1@ // Возвращаем статус зарузки
:url_fileupdateinfo // Т.к. в Sanny Builder иначе никак не подружиться со слешами в строках, придется как нить так
// Здесь хранится URL на данные с обновлением
hex
"http:" "/" "/" "chekerdrp.kl.com.ua/rielt.txt" 00
end