Вопросы по CLEO-скриптингу

клешь рояль

Известный
1,255
551
Небольшая проблема. Закомментировав эту часть кода у меня перестала крашить игра:
Код:
: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@



Понял свою ошибку...

0AF1: write_int "82" to_ini_file "cleo\settings_221.ini" section "KEY_SETTINGS" key "KEY" - 82 (ид клавиши) не надо было брать в " "
т.е. правильный вариант: 0AF1: write_int 82 to_ini_file "cleo\settings_221.ini" section "KEY_SETTINGS" key "KEY"



Как разделить текст на строчки в диалоге? Где-то вычитал, мол использовать \t, 0x9 - куда не ставил, не выходит.
Код:
0B3B: samp show_dialog id 420 caption "dialog" text "text 1 text 2 text 3" button_1 "CLOSE" button_2 "CLOSE" style 0

И как сделать одну кнопку в диалоге, а не 2?
0B3B: samp show_dialog id 420 caption "dialog" text "text 1 text 2 text 3" button_1 "CLOSE" style 0
А перенос строки вроде /n
Dialog Styles - SA-MP Wiki(https://sampwiki.blast.hk/wiki/Dialog_Styles)
 

клешь рояль

Известный
1,255
551
Пишет, мол ожидалось 6 параметров.
CLEO:
0B3B: samp show_dialog id 420 caption "dialog" text "text 1 text 2 text 3" button_1 "CLOSE" button_2 "" style 0

CLEO:
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP

:Noname_2
0001: wait 0 ms
00D6: if
0ADC:   test_cheat "QQ"
004D: jump_if_false @Noname_2
0002: jump @Noname_30

:Noname_30
0AC8: 0@ = allocate_memory_size 64 // ïàìÿòü ïîä ñïñêè
0ad3: format_string 0@ - "Первая строка%cВторая строка%cТретья строка" 0xA 0xA
0B3B: samp show_dialog id 420 caption "dialog" text 0@ button_1 "CLOSE" button_2 "" style 0
0001: wait 10 ms
0002: jump @Noname_2
%c это перенос строки после каждого переноса надо писать в конце 0xA
 
Последнее редактирование модератором:

Kristyan

Известный
165
16
Возможно ли создать такой же диалог, с ON/OFF.Не могу найти особый подход к этой задаче... Может быть я зря пытаюсь?
upload_2018-9-12_21-42-52.png
 

Kristyan

Известный
165
16
Ище один вопрос, вот есть команда "/qaz ID фраза" .Ну вот я хочу вставить фразу в переменную, как я могу сканировать фразу если я в этом примере я буду брать только одно слово

CLEO:
{$CLEO}
0000:

repeat
wait 0
until SAMP.Available()

0b34: "qaz" @qaz

alloc 1@ 128
alloc 2@ 128

while true
wait 0
END

:qaz
SAMP.IsCommandTyped(2@)
0AA5: call 0x8220AD num_params 4 pop 4 1@ 0@v "%d %s" 2@
    if
    0@ >= 1
    then
        say "%s" 1@
    end
samp.CmdRet()
 

клешь рояль

Известный
1,255
551
CLEO:
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP
0AC6: 0@ = label @NONAME_317 offset
0BE3: raknet setup_incoming_rpc_hook @NONAME_23
0BDE: pause_thread 0

:NONAME_23
0BE5: raknet 1@ = get_hook_param 1
if
  1@ == 93
else_jump @NONAME_71
call @NONAME_116 3 3 3 0@ 1@ 2@

:NONAME_71
if
  1@ == 101
else_jump @NONAME_112
call @NONAME_116 3 2 0 0@ 1@ 2@

:NONAME_112
0BE0: raknet hook_ret 1

:NONAME_116
0BE5: raknet 25@ = get_hook_param 0
26@ = BitStream.GetReadOffset(25@)
BitStream.ResetReadPointer(25@)
27@ = BitStream.Read(25@, 0@)
28@ = BitStream.Read(25@, 1@)
BitStream.ReadArray(25@, 2@, 28@)
0C1E: array 2@ element 28@ el_size 1 = 0
if
0C18: 0 = strstr string1 2@ string2 "Сложи (%d+%i)" 8@ 9@
else_jump @NONAME_298
alloc 0@ 256
format 0@ "%D+%I" 8@ 9@
say "/S %D"
free 0@

:NONAME_298
BitStream.SetReadOffset(25@, 26@)
ret 2 27@ 28@

:NONAME_317
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
00
будет ли в /s кричать ответ ?
 

hnnssy

Известный
Друг
2,684
2,750
CLEO:
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP
0AC6: 0@ = label @NONAME_317 offset
0BE3: raknet setup_incoming_rpc_hook @NONAME_23
0BDE: pause_thread 0

:NONAME_23
0BE5: raknet 1@ = get_hook_param 1
if
  1@ == 93
else_jump @NONAME_71
call @NONAME_116 3 3 3 0@ 1@ 2@

:NONAME_71
if
  1@ == 101
else_jump @NONAME_112
call @NONAME_116 3 2 0 0@ 1@ 2@

:NONAME_112
0BE0: raknet hook_ret 1

:NONAME_116
0BE5: raknet 25@ = get_hook_param 0
26@ = BitStream.GetReadOffset(25@)
BitStream.ResetReadPointer(25@)
27@ = BitStream.Read(25@, 0@)
28@ = BitStream.Read(25@, 1@)
BitStream.ReadArray(25@, 2@, 28@)
0C1E: array 2@ element 28@ el_size 1 = 0
if
0C18: 0 = strstr string1 2@ string2 "Сложи (%d+%i)" 8@ 9@
else_jump @NONAME_298
alloc 0@ 256
format 0@ "%D+%I" 8@ 9@
say "/S %D"
free 0@

:NONAME_298
BitStream.SetReadOffset(25@, 26@)
ret 2 27@ 28@

:NONAME_317
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
0000: NOP
hex
00
будет ли в /s кричать ответ ?
нет