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

iTz_WEEZY

Известный
298
85
я всё правильно делаю? что-то давно не кодил
CLEO:
{$CLEO .cs}

0000:
                                                       
repeat
     wait 400
until SAMP.Available()

////: COMMAND 
0B34: samp register_client_command "get" to_label @Dialog
/////////////////////////////////////////////////////////

while true
wait 0
if 1@ == true
  then
  0AC8: 0@ = allocate_memory_size 1024
  0BD7: samp get_dialog_text 0@
  0AF5: write_string 0@ to_ini_file "CLEO\Dialog.ini" section "Dialog" key "Dialog"
  0AC9: free_allocated_memory 0@
end
end

/////////////////////////////////////////////////////////////////////////////////////////


:Dialog
1@ = true
SAMP.CmdRet()
 

RedBoxWhite

Известный
337
27
я всё правильно делаю? что-то давно не кодил
CLEO:
{$CLEO .cs}

0000:
                                                      
repeat
     wait 400
until SAMP.Available()

////: COMMAND
0B34: samp register_client_command "get" to_label @Dialog
/////////////////////////////////////////////////////////

while true
wait 0
if 1@ == true
  then
  0AC8: 0@ = allocate_memory_size 1024
  0BD7: samp get_dialog_text 0@
  0AF5: write_string 0@ to_ini_file "CLEO\Dialog.ini" section "Dialog" key "Dialog"
  0AC9: free_allocated_memory 0@
end
end

/////////////////////////////////////////////////////////////////////////////////////////


:Dialog
1@ = true
SAMP.CmdRet()
Советую поставить задержку, а то весь файл зафлудит.
 

kraft1k

Вынь х*й из головы и все получится © hnnssy
Друг
1,479
1,163
я всё правильно делаю? что-то давно не кодил
CLEO:
{$CLEO .cs}

0000:
                                                      
repeat
     wait 400
until SAMP.Available()

////: COMMAND
0B34: samp register_client_command "get" to_label @Dialog
/////////////////////////////////////////////////////////

while true
wait 0
if 1@ == true
  then
  0AC8: 0@ = allocate_memory_size 1024
  0BD7: samp get_dialog_text 0@
  0AF5: write_string 0@ to_ini_file "CLEO\Dialog.ini" section "Dialog" key "Dialog"
  0AC9: free_allocated_memory 0@
end
end

/////////////////////////////////////////////////////////////////////////////////////////


:Dialog
1@ = true
SAMP.CmdRet()
Лучше используй .txt файл.
 

Kolya_Kortez

Участник
49
3
Лучше используй .txt файл.
Крашит с ошибкой: Warning(s007): Exception 0xC0000005 at 0x0

Прошу помоги:
{$CLEO}

const
DIALOG_STYLE_MSGBOX = 0 // С текстом
DIALOG_STYLE_INPUT = 1 // С полем для ввода текста
DIALOG_STYLE_LIST = 2 // Со списком
DIALOG_STYLE_PASSWORD = 3 // С полем для ввода текста, текст заменяется точками
end

0000:
0662: "by Dominic"
0662: "Dominic - binder for MZ"

while not SAMP.Available()
wait 400
end

while true
wait 0
if 0ab0: key_down 66
then
while 0ab0: key_down 66
wait 0
if 0ab0: key_down 51
then
0ac8: alloc 0@ size 256
0ad3: format_stirng 0@ = "Первый пункт%cВторой пункт%cТретий пункт%cЧетвёртый пункт%cПятый пункт" 0xA 0xA 0xA 0xA
0B3B: samp show_dialog id 47 caption "Третий диалог" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
0ac9: free 0@
break
end
end

while 0ab0: key_down 66
wait 0
end
end

// DIALOG_STYLE_LIST
if 0B3C: samp is_dialog_responded id 47 button 1@ list_item 5@ input_text 0 // Логгируем нажатие кнопки диалога и выбранного элемента из списка диалога 47
then
if 1@ == 1 // Была нажата первая кнопка
then
0af8: chat "Была нажата первая кнопка: {ffff00}Уря" -1
0af8: chat "Был выбран элемент номер: {ffff00}%d" -1 5@
if 5@ == 0
then
0af8: chat "Был выбран элемент: {ffff00}Первый пункт" -1
end

if 5@ == 1
then
0af8: chat "Был выбран элемент: {ffff00}Второй пункт" -1
end

if 5@ == 2
then
0af8: chat "Был выбран элемент: {ffff00}Третий пункт" -1
end

if 5@ == 3
then
0af8: chat "Был выбран элемент: {ffff00}Четвёртый пункт" -1
end

if 5@ == 4
then
0af8: chat "Был выбран элемент: {ffff00}Пятый пункт" -1
end
end
0ac9: free 2@
end
 

iTz_WEEZY

Известный
298
85
Всё сработало, но всё записывает в одну строку(да пох) и вылет после записи
Лучше используй .txt файл.
просто вместо .ini написть .txd ?

Крашит с ошибкой: Warning(s007): Exception 0xC0000005 at 0x0

Прошу помоги:

end
CLEO:
{$CLEO}

const
DIALOG_STYLE_LIST = 2 // Ñî ñïèñêîì
end

0000:
0662: "by Dominic"
0662: "Dominic - binder for MZ"

while not SAMP.Available()
wait 400
end

while true
wait 0
if 0ab0: key_down 66
then
while 0ab0: key_down 66
wait 0
if 0ab0: key_down 51
then
0ac8: alloc 0@ size 256
0ad3: format_stirng 0@ = "Ïåðâûé ïóíêò%cÂòîðîé ïóíêò%cÒðåòèé ïóíêò%c×åòâ¸ðòûé ïóíêò%cÏÿòûé ïóíêò" 0xA 0xA 0xA 0xA
0B3B: samp show_dialog id 47 caption "Òðåòèé äèàëîã" text 0@ button_1 "Âûáðàòü" button_2 "Çàêðûòü" style DIALOG_STYLE_LIST
0ac9: free 0@
break
end
end

while 0ab0: key_down 66
wait 0
end
end

// DIALOG_STYLE_LIST
if 0B3C: samp is_dialog_responded id 47 button 1@ list_item 5@ input_text 0 // Ëîããèðóåì íàæàòèå êíîïêè äèàëîãà è âûáðàííîãî ýëåìåíòà èç ñïèñêà äèàëîãà 47
then
if 1@ == 1 // Áûëà íàæàòà ïåðâàÿ êíîïêà
then
0af8: chat "Áûëà íàæàòà ïåðâàÿ êíîïêà: {ffff00}Óðÿ" -1
0af8: chat "Áûë âûáðàí ýëåìåíò íîìåð: {ffff00}%d" -1 5@
if 5@ == 0
then
0af8: chat "Áûë âûáðàí ýëåìåíò: {ffff00}Ïåðâûé ïóíêò" -1
end

if 5@ == 1
then
0af8: chat "Áûë âûáðàí ýëåìåíò: {ffff00}Âòîðîé ïóíêò" -1
end

if 5@ == 2
then
0af8: chat "Áûë âûáðàí ýëåìåíò: {ffff00}Òðåòèé ïóíêò" -1
end

if 5@ == 3
then
0af8: chat "Áûë âûáðàí ýëåìåíò: {ffff00}×åòâ¸ðòûé ïóíêò" -1
end

if 5@ == 4
then
0af8: chat "Áûë âûáðàí ýëåìåíò: {ffff00}Ïÿòûé ïóíêò" -1
end
end
0ac9: free 2@
end
{$CLEO}

const
DIALOG_STYLE_LIST = 2 // Ñî ñïèñêîì
end

0000:
0662: "by Dominic"
0662: "Dominic - binder for MZ"

while not SAMP.Available()
wait 400
end

while true
wait 0
if 0ab0: key_down 66
then
while 0ab0: key_down 66
wait 0
if 0ab0: key_down 51
then
0ac8: alloc 0@ size 256
0ad3: format_stirng 0@ = "Ïåðâûé ïóíêò%cÂòîðîé ïóíêò%cÒðåòèé ïóíêò%c×åòâ¸ðòûé ïóíêò%cÏÿòûé ïóíêò" 0xA 0xA 0xA 0xA
0B3B: samp show_dialog id 47 caption "Òðåòèé äèàëîã" text 0@ button_1 "Âûáðàòü" button_2 "Çàêðûòü" style DIALOG_STYLE_LIST
0ac9: free 0@
break
end
end

while 0ab0: key_down 66
wait 0
end
end

// DIALOG_STYLE_LIST
if 0B3C: samp is_dialog_responded id 47 button 1@ list_item 5@ input_text 0 // Ëîããèðóåì íàæàòèå êíîïêè äèàëîãà è âûáðàííîãî ýëåìåíòà èç ñïèñêà äèàëîãà 47
then
if 1@ == 1 // Áûëà íàæàòà ïåðâàÿ êíîïêà
then
0af8: chat "Áûëà íàæàòà ïåðâàÿ êíîïêà: {ffff00}Óðÿ" -1
0af8: chat "Áûë âûáðàí ýëåìåíò íîìåð: {ffff00}%d" -1 5@
if 5@ == 0
then
0af8: chat "Áûë âûáðàí ýëåìåíò: {ffff00}Ïåðâûé ïóíêò" -1
end

if 5@ == 1
then
0af8: chat "Áûë âûáðàí ýëåìåíò: {ffff00}Âòîðîé ïóíêò" -1
end

if 5@ == 2
then
0af8: chat "Áûë âûáðàí ýëåìåíò: {ffff00}Òðåòèé ïóíêò" -1
end

if 5@ == 3
then
0af8: chat "Áûë âûáðàí ýëåìåíò: {ffff00}×åòâ¸ðòûé ïóíêò" -1
end

if 5@ == 4
then
0af8: chat "Áûë âûáðàí ýëåìåíò: {ffff00}Ïÿòûé ïóíêò" -1
end
end
0ac9: free 2@
end
 
Последнее редактирование модератором:

RedBoxWhite

Известный
337
27
Всё сработало, но всё записывает в одну строку(да пох) и вылет после записи

просто вместо .ini написть .txd ?
0AD8 попробуй.

Как в этом скрипте сделать так, чтобы на нажатие клавиши давалось 5 секунд, если не нажимаешь, то отправляет скрипт в начало. Уже сделал, всё)
CLEO:
{$CLEO}
{$INCLUDE SF}
0000:
wait 2000

0B34: "repeat" to_label @repeat
0BE3: raknet setup_incoming_rpc_hook @rpc

alloc 0@ 256
0AC8: 9@ = allocate_memory_size 256
0AC8: 11@ = allocate_memory_size 128
0AC8: 13@ = allocate_memory_size 128
0AC8: 14@ = allocate_memory_size 128
0AC8: 15@ = allocate_memory_size 128
0AC8: 20@ = allocate_memory_size 128
0AC8: 17@ = allocate_memory_size 128
0AC8: 19@ = allocate_memory_size 128
0C11: memset destination 9@ value 0x00 size 256
0C11: memset destination 11@ value 0x00 size 128
0C11: memset destination 13@ value 0x00 size 128
0C11: memset destination 14@ value 0x00 size 128
0C11: memset destination 15@ value 0x00 size 128
0C11: memset destination 20@ value 0x00 size 128
0C11: memset destination 17@ value 0x00 size 128
0C11: memset destination 19@ value 0x00 size 128

:3
while true
wait 0
if 25@ == true
then
//0B75: get_chat_string 99 text_to 10@ prefix_to 0 color_to 0 prefix_color_to 0
if and
0C18: 0 = strstr string1 9@ string2 "[O]"
0C18: 0 = strstr string1 9@ string2 22@
then
0AA5: call 0x8220AD num_params 9 pop 9 params 19@ 17@ 20@ 15@ 14@ 13@ 11@ "[O] %s %s %s %s %s %s %s" 9@
    for 1@ = 0 to 999
    if 0B23:  samp is_player_connected 1@
    then
    0B36: samp 2@ = get_player_nickname 1@
    0C16: 16@ = strtok string1 11@ string2 "["
        if 0C21: stricmp string1 2@ string2 16@
        then       
        0AF8: "%d: %s %s %s %s %s %s" -1 1@ 13@ 14@ 15@ 20@ 17@ 19@
        end
    end
    end
end
0C11: memset destination 9@ value 0x00 size 256
0C11: memset destination 11@ value 0x00 size 128
0C11: memset destination 13@ value 0x00 size 128
0C11: memset destination 14@ value 0x00 size 128
0C11: memset destination 15@ value 0x00 size 128
0C11: memset destination 20@ value 0x00 size 128
0C11: memset destination 17@ value 0x00 size 128
0C11: memset destination 19@ value 0x00 size 128
end
wait 0
end

:repeat
0B35: 0@ = get_last_command_params
0C1A: 0@ = atoi 0@
    0B36: samp 22@ = get_player_nickname 0@
    0AF8: "%s" 0xFF0000 22@
    0006: 25@ = true
cmdret

:rpc
0BE5: raknet 5@ = get_hook_param PARAM_BITSTREAM
0BE5: raknet 6@ = get_hook_param PARAM_PACKETID
if
6@ == RPC_ScrClientMessage // DWORD color, DWORD strLen, char[] msg
then
    0BE7: raknet 7@ = bit_stream_read 5@ type BS_TYPE_INT  // color
    0BE7: raknet 8@ = bit_stream_read 5@ type BS_TYPE_INT  // strLen
    0C11: memset destination 9@ value 0 size 256
    0BE8: raknet bit_stream 5@ read_array 9@ size 8@ // Text
    0C0F: array 9@ element 8@ = 0x00 
end
0BE0: raknet hook_ret true
 
Последнее редактирование: