Если узнать ID диалога, то можно в принципе, но функция останется скорее всего та-же, ибо это так прописано в моде.
В cmd label ставишь триггер, а в цикле выполняшь нужный код.Как можно сделать так, что бы команда работала в цикле?
Перебираешь все id через for, проверяешь на цвет , если совпадает - записываешь id например в файл, смотря, что тебе надоКак получить все id игроков с определённым цветом клиста?
{$CLEO}
0000:
repeat
wait 0
until samp.Available()
0B34: samp register_client_command "noname_2" to_label @noname_2
:noname_3
while true
wait 0
if
33@ = true
then
jump @noname_1
else_jump @noname_3
samp.CmdRet()
:noname_1
wait 0
if and
actor.Driving($PLAYER_ACTOR)
key_down 82
else_jump @noname_3
03C0: 2@ = actor $PLAYER_ACTOR car
00AA: store_car 2@ position_to 3@ 4@ 5@
wait 50
00AB: put_car 2@ at 3@ 4@ 5@ 0.0
wait 1500
jump @noname_1
:noname_2
wait 0
if
33@ = false
then
33@ = true
printf "activated" 1000
else
33@ = false
"deactivated" 1000
jump @noname_4
end
end
Проблема с написанием клео, в котором способ активации - команда. Пишу скрипт с активацией команды, и когда ставлю wait 0 в цикле while true игру крашит варнингами при загрузке, вылетает около 10-12 варнингов за мс., а если поставлю не wait 0, а выше, то варнинги идут с указанной задержкой и все равно крашит, когда загрузятся 10-12 варнингов.
Так со всеми скриптами этого типа. Укажите на ошибку.
CLEO:{$CLEO} 0000: repeat wait 0 until samp.Available() 0B34: samp register_client_command "noname_2" to_label @noname_2 :noname_3 while true wait 0 if 33@ = true then jump @noname_1 else_jump @noname_3 samp.CmdRet() :noname_1 wait 0 if and actor.Driving($PLAYER_ACTOR) key_down 82 else_jump @noname_3 03C0: 2@ = actor $PLAYER_ACTOR car 00AA: store_car 2@ position_to 3@ 4@ 5@ wait 50 00AB: put_car 2@ at 3@ 4@ 5@ 0.0 wait 1500 jump @noname_1 :noname_2 wait 0 if 33@ = false then 33@ = true printf "activated" 1000 else 33@ = false "deactivated" 1000 jump @noname_4 end end
{$CLEO .cs}
0000:
repeat
wait 0
until 0AFA: is_samp_available
0B34: samp register_client_command "activate" to_label @activate
while true
wait 0
if 31@ == 1
then
if and
0AB0: key_pressed 82 //key "R"
00DF: actor $PLAYER_ACTOR driving
then
//Действие
03C0: 0@ = actor $PLAYER_ACTOR car
00AA: store_car 0@ position_to 1@ 2@ 3@
00AB: put_car 0@ at 1@ 2@ 0.0
wait 1000
end
end
end
:activate
0B12: 31@ = 31@ XOR 1
if 31@ == 1
then printf "activated" 1000
end
if 31@ == 0
then printf "deactivated" 1000
end
0B43: samp cmd_ret
true или false (0/1)0B12: 31@ = 31@ XOR 1 - опкод меняет значение 31@ с 1 на 0?
Это не диалоговое меню, это вроде ImGui если не ошибаюсьКак сделать такое диалоговое меню?
Без Луа никак?
C++ ещеБез Луа никак?
:check
wait 0
if 0AAB: file_exists "CLEO\settings_221.ini"
then
0AF0: 4@ = get_int_from_ini_file "cleo\settings_221.ini" section "KEY_SETTINGS" key "KEY"
else
0AF1: write_int "82" to_ini_file "cleo\settings_221.ini" section "KEY_SETTINGS" key "KEY"
end
Небольшая проблема. Закомментировав эту часть кода у меня перестала крашить игра:
Код::check wait 0 if 0AAB: file_exists "CLEO\settings_221.ini" then 0AF0: 4@ = get_int_from_ini_file "cleo\settings_221.ini" section "KEY_SETTINGS" key "KEY" else 0AF1: write_int "82" to_ini_file "cleo\settings_221.ini" section "KEY_SETTINGS" key "KEY" end
P.S. Помогите, хотел сделать так: идёт проверка на присутствие ini файла, если же он есть, то из строки в 4@ берется цифра (номер клавиши), если же нету, то создается ini файл с цифрой (номер клавиши) 82, тем самым я хотел сделать смену клавиши для скрипта через ini, использовав потом key_down 4@
0B3B: samp show_dialog id 420 caption "dialog" text "text 1 text 2 text 3" button_1 "CLOSE" button_2 "CLOSE" style 0