Вынести за пределы тела команды.И на счёт этого же скрипта, как сделать там задержку?
Вынести за пределы тела команды.И на счёт этого же скрипта, как сделать там задержку?
{$CLEO}
{$INCLUDE SF}
0000:
repeat
wait 2000
until 0AFA: is_samp_available
0B80: dialog 0@ = create "test"
0B84: dialog 0@ set_pos_XY 50 50 size 300 400
0B82: dialog 0@ add_button id 1 text "close" pos_XY 75 350 size 150 30
0B34: samp register_client_command "test" to_label @test
0B86: dialog 0@ set_visible 0
while true
wait 0
if 0B81: dialog 0@ pop_event_to 1@ control_id_to 2@
then
if
1@==257
then
if
2@==1
then
0B8D: samp set_cursor_mode 0
0B86: dialog 0@ set_visible 0
end
end
end
end
:test
0B8D: samp set_cursor_mode 2
0B86: dialog 0@ set_visible 1
0B43: samp cmd_ret
Так это и делаетсяРебят, нужно перенести цикл из тела команды в основной цикл. Как это лучше реализовать? Есть идея использовать какую-то переменную в качестве флага. Допустим, мы вводим команду и в определенную переменную записывается 1, а в основном цикле мы ставим проверку на то, что переменная равна 1 и выполняем код, если это так.
Сама команда работает так: мы ловим параметр команды и отправляем специальную команду серверу. После чего, ставится цикл, в котором ловим определенное сообщение из чата. Если словили - все хорошо, можно ехать дальше.
Как можно узнать время и дату?
{$CLEO}
0AC6: 0@ = label @lpSystemTime offset
0AA5: call {__stdcall::GetLocalTime}0x81E514 num_params 1 pop 0 | {lpSystemTime}0@ |
0A8D: {Year}1@ = read_memory {lpSystemTime}0@ size {WORD}2 virtual_protect TRUE
{ ... }
0A93: end_custom_thread_
:lpSystemTime
HEX
00 00 00
00 00 00
00 00 00
00 00 00
00 00 00
00 00 00
00 00 00
00 00 00
0
END
у тебя в 1@ - хранится хэндл, а в 0@ - id, ты выводи:Ой, забыл цвет поставить) Но, всё равно крашит.
chatmsg "ID: %d" -1 0@
Спасибо, только чё-т туплю.. не могу понять, как достать число и т.д.?CLEO:{$CLEO} 0AC6: 0@ = label @lpSystemTime offset 0AA5: call {__stdcall::GetLocalTime}0x81E514 num_params 1 pop 0 | {lpSystemTime}0@ | 0A8D: {Year}1@ = read_memory {lpSystemTime}0@ size {WORD}2 virtual_protect TRUE { ... } 0A93: end_custom_thread_ :lpSystemTime HEX 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 END
{$CLEO}
{$INCLUDE SF}
0000:
repeat
wait 2000
until 0AFA: is_samp_available
while true
wait 0
if
0ADC: test_cheat "6"
then
0AC8: 0@ = allocate_memory_size 260
0AD3: 0@ = format "test"
0AF8: samp add_message_to_chat 0@ color -1
0AF1: write_int 16 to_ini_file "cleo\test.ini" section 0@ key "Int"
0AC9: free_allocated_memory 0@
end
end
Насколько помню опкоды для работы с INI файлами не работают с указателями. Попробуй написать вручную WinApi функцию для записи данных в INI . Кажется называется WritePrivateProfileString .Спасибо, только чё-т туплю.. не могу понять, как достать число и т.д.?
и поч это не робит?
CLEO:{$CLEO} {$INCLUDE SF} 0000: repeat wait 2000 until 0AFA: is_samp_available while true wait 0 if 0ADC: test_cheat "6" then 0AC8: 0@ = allocate_memory_size 260 0AD3: 0@ = format "test" 0AF8: samp add_message_to_chat 0@ color -1 0AF1: write_int 16 to_ini_file "cleo\test.ini" section 0@ key "Int" 0AC9: free_allocated_memory 0@ end end
С каждым разом прибавляешь к структуре +2 и читаешь с помощью read_memory . 2 потому что тип WORD для каждого параметра. Структуру можешь найти на MSDN в описание GetLocalTime .не могу понять, как достать число и т.д.?
В SCM фукциях есть эта функция.Спасибо, только чё-т туплю.. не могу понять, как достать число и т.д.?]
Ввести в поиске опкодов "file" сложнакак делать запись в txt, видел тут такой вопрос чет найти не могу, да и в Вики не нашел ничего
if or
0b2b: samp 21@ = $PLAYER_ACTOR
0b36: samp 22@ = 21@
0ac8: 21@ = 68
if 8c18: 0 = 22@ "NickName"
then end_thread
end
{$CLEO}
0000:
wait 2000
0B34: "da" to_label @Test
while true
wait 0
end
:Test
for 0@ = 0 to 999
if 0B23: samp is_player_connected 0@
then
if 0B20: samp 1@ = actor_handle_by_samp_player_id 0@
then
0AF8: "%d" -1 0@
end
end
end
0B43: samp cmd_ret