Вопрос Помогите с DXUT диалогом

Тема в разделе "CLEO", создана пользователем PaRaZiTOR, 26 ноя 2016.

Статус темы:
Закрыта.
  1. PaRaZiTOR

    PaRaZiTOR Известный пользователь

    Регистрация:
    18.12.14
    Сообщения:
    120
    Лайки:
    32
    Репутация:
    4
    Всем добра !
    Прошу помочь с проблемой такого рода, создал DXUT диалог
    при нажатии кнопки для отправки команды игра вылетает я думаю ошибка в форматировании текста, подскажите как исправить данную ошибку.
    куски кода:
    выделил память
    Код (CLEO):
    0AC8: 10@ = allocate_memory_size 128
    0AC8: 11@ = allocate_memory_size 128
    0AC8: 21@ = allocate_memory_size 128
    Тут в диалоговое поле ввожу цифры и выбираю чекбокс

    Код (CLEO):
    /////////////////////////////////// ПОЛЕ ВВОДА   //////////////////////////////
        if 2@ == 4
        then  
            if 1@ == EVENT_EDITBOX_CHANGE
            then
            0C11: memset destination 10@ value 0x0 size 128
            0B89: dialog 0@ get_control 2@ text_to 10@
            format 21@ "%d" 10@
            0AF8: samp add_message_to_chat "Содержимое поля едитбокса: %d" color -1 params 21@
            end
        end
     
        /////////////////////////////////// ЧЕКБОКС 1 //////////////////////////////
        if 1@ == EVENT_CHECKBOX_CHANGED
        then
            if 2@ == 1
            then  
                if 0B92:  dialog 0@ checkbox 2@ is_checked
                then
                0AF8: samp add_message_to_chat " нажат ЧЕКБОКС 1" color -1
                format 11@ "ЧЕКБОКС 1"
                else
                0AF8: samp add_message_to_chat "чекбокс 1 не виден" color -1
                end
            end
        end
       
    Тут после нажатия на кнопку идет отправка сообщения в чат (или команды)
    Код (CLEO):
     /////////////////////////////////// КНОПКА ОК  //////////////////////////////
        if 1@ == EVENT_BUTTON_CLICKED
        then
            if 2@ == 5
            then
                0AF8: samp add_message_to_chat "Была нажата кнопка. ОК " color -1 params
                0AF9: samp say_msg "введенный текст: %d выбран %s" color -1 params 21@ 11@
                0BA4: dialog 0@ free
                goto @metka_1
            end
        end
       
     
    #1
  2. legend2360

    legend2360 Ух как люблю скобочки
    Всефорумный модератор

    Регистрация:
    23.03.13
    Сообщения:
    2.027
    Лайки:
    680
    Репутация:
    419
    Код (CLEO):
    format 21@"%d"10@
    0AF8: samp add_message_to_chat "Содержимое поля едитбокса: %d" color -1 params 21@
    ???
    Что за махинации и зачем выводить как число при условии того, что у тебя там хранится текст. И в 10@ тоже хранится текст. Запомни, строк как токовых в CLEO нет. В переменных хранятся указатели на память(а он является числом). Для того, чтобы перевести "строку" в число, используй atoi, или даже используя 0AD4 для сканирования, но не этот метод, который ты хотел применить выше, - он бесполезен.
    В чём суть: это точно не проблема скрипта. Вылетать бы он не смог, проблема в другой части кода. Здесь просто пояснил какая у тебя ошибка форматирования и вывода.
     
    #2
  3. PaRaZiTOR

    PaRaZiTOR Известный пользователь

    Регистрация:
    18.12.14
    Сообщения:
    120
    Лайки:
    32
    Репутация:
    4
    Просто я уже не знаю, перепробовал всяко и все варианты не работают, поэтому и прикрепил какой был, можешь глянуть вот кусок кода..
    суть ввожу текст в поле ввода и выбираю чек бокс
    Код (CLEO):
    /////////////////////////////////// ПОЛЕ ВВОДА   //////////////////////////////
        if 2@ == 4
        then
            if 1@ == EVENT_EDITBOX_CHANGE
            0AC8: 10@ = allocate_memory_size 64
            0C11: memset destination 10@ value 0x0 size 128
            0B89: dialog 0@ get_control 2@ text_to 10@
            0AF8: samp add_message_to_chat "Содержимое поля эдитбокса: %s" 10@ // в переменной  10@
        end

        /////////////////////////////////// ЧЕКБОКС 1 //////////////////////////////
        if 1@ == EVENT_CHECKBOX_CHANGED
        then
            if 2@ == 1
            then
                if 0B92:  dialog 0@ checkbox 2@ is_checked
                then
                0AC8: 11@ = allocate_memory_size 30
                0AF8: samp add_message_to_chat " нажат ЧЕКБОКС 1" color -1
                format 11@ "ЧЕКБОКС 1"
                else
                0AF8: samp add_message_to_chat "чекбокс 1 не виден" color -1
                end
            end
        end
    нажимаю на ОК выводит текст(или команду) в чат
    Код (CLEO):
    /////////////////////////////////// КНОПКА ОК  //////////////////////////////
        if 1@ == EVENT_BUTTON_CLICKED
        then
            if 2@ == 5
            then
                0AC8: 14@ = allocate_memory_size 64
                0AF8: samp add_message_to_chat "Была нажата кнопка. ОК " color -1 params
                format 14@ "введенный текст: %s выбран %s" 10@ 11@       // что тут не так ??????
                0AF9: samp say_msg 14@
                0BA4: dialog 0@ free
                free 14@
                free 11@
                free 10@
                goto @metka_1
            end
        end
     
    #3
    Последнее редактирование: 27 ноя 2016
Статус темы:
Закрыта.