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

BlackKnigga

Известный
BH Team
922
445
Всем привет. Есть такой cleo что при открытии чата показывает ид, пинг и т.д.
Я хочу сделать так что бы при открытии чата показывало только ид, но когда я изменяю строки и компилирую, то при запуске вместо ид (т.е самого числа) пишет "D"
Помогите пожалуйста, что я делаю неправильно ?
В настройках Sanny Builder во вкладке Форматирование справа внизу поставь "Как есть".
 
  • Нравится
Реакции: nSTYLE

hnnssy

Известный
Друг
2,684
2,749
\t, но оно только немного подвигает текст. А мне бы точно в центре.
в сф же есть опкоды получения разрешения экрана, делишь пополам и получаешь центр
если ты про диалог, то никак
 
Последнее редактирование:
  • Нравится
Реакции: MISTER_GONWIK

nSTYLE

Известный
13
0
Скажите пожалуйста, как убрать слово HEX?
7TLTK6o.png

Код:
{$CLEO .cs}
0000: NOP

repeat
wait 0
until SAMP.Available()
0B34: samp register_client_command "command" to_label @command
repeat
wait 0
until false
:command
0ac6: 0@ = label @text offset
0B3B: samp show_dialog id 0 caption "Dialog" text 0@ button_1 "Close" button_2 "" style 0
SAMP.CmdRet()
:text
hex
    "{f20909}123 - {f6ee26}456\n"
    "{f20909}123 - {f6ee26}456\n"
end
 

hnnssy

Известный
Друг
2,684
2,749
Скажите пожалуйста, как убрать слово HEX?
7TLTK6o.png

Код:
{$CLEO .cs}
0000: NOP

repeat
wait 0
until SAMP.Available()
0B34: samp register_client_command "command" to_label @command
repeat
wait 0
until false
:command
0ac6: 0@ = label @text offset
0B3B: samp show_dialog id 0 caption "Dialog" text 0@ button_1 "Close" button_2 "" style 0
SAMP.CmdRet()
:text
hex
    "{f20909}123 - {f6ee26}456\n"
    "{f20909}123 - {f6ee26}456\n"
end
:text
hex
"{f20909}123 - {f6ee26}456\n"
"{f20909}123 - {f6ee26}456\n" 00
end
 
  • Нравится
Реакции: nSTYLE

01EG

Известный
Проверенный
631
345
Даров, ребята. Все работает хорошо.
CLEO:
{$CLEO}
0000:

repeat
wait 0
until 0afa:

0b34: "text" @text
0BDE: pause_thread 0

:text
chatmsg "Zalupa" -1
chatmsg "Penis" -1
chatmsg "228" -1
cmdret
Криптую в ручную через hex-редактор - Крашит при вводе команды.
CLEO:
{$CLEO}
0000:

repeat
wait 0
until 0afa:

0b34: "text" @text
0BDE: pause_thread 0

:text
hex
63 68 61 74 6D 73 67 20 22 47 6F 76 6E 6F 65 64 22 20 2D 31 20 00 
end
chatmsg "Penis" -1
chatmsg "228" -1
cmdret
 

BlackKnigga

Известный
BH Team
922
445
Даров, ребята. Все работает хорошо.
CLEO:
{$CLEO}
0000:

repeat
wait 0
until 0afa:

0b34: "text" @text
0BDE: pause_thread 0

:text
chatmsg "Zalupa" -1
chatmsg "Penis" -1
chatmsg "228" -1
cmdret
Криптую в ручную через hex-редактор - Крашит при вводе команды.
CLEO:
{$CLEO}
0000:

repeat
wait 0
until 0afa:

0b34: "text" @text
0BDE: pause_thread 0

:text
hex
63 68 61 74 6D 73 67 20 22 47 6F 76 6E 6F 65 64 22 20 2D 31 20 00
end
chatmsg "Penis" -1
chatmsg "228" -1
cmdret
Так ты кейворд хексуешь. Игра использует опкоды.
 
  • Нравится
Реакции: 01EG

hnnssy

Известный
Друг
2,684
2,749
Даров, ребята. Все работает хорошо.
CLEO:
{$CLEO}
0000:

repeat
wait 0
until 0afa:

0b34: "text" @text
0BDE: pause_thread 0

:text
chatmsg "Zalupa" -1
chatmsg "Penis" -1
chatmsg "228" -1
cmdret
Криптую в ручную через hex-редактор - Крашит при вводе команды.
CLEO:
{$CLEO}
0000:

repeat
wait 0
until 0afa:

0b34: "text" @text
0BDE: pause_thread 0

:text
hex
63 68 61 74 6D 73 67 20 22 47 6F 76 6E 6F 65 64 22 20 2D 31 20 00
end
chatmsg "Penis" -1
chatmsg "228" -1
cmdret
ты же, надеюсь, понимаешь, что такой крипт до одного места? это даже не крипт
иходник:
8695b-clip-5kb.png


декомпил:
4817e-clip-3kb.png
 
  • Нравится
Реакции: 01EG

01EG

Известный
Проверенный
631
345
Так ты кейворд хексуешь. Игра использует опкоды.
Захексовал опкод, все равно крашит.
ты же, надеюсь, понимаешь, что такой крипт до одного места? это даже не крипт
Почему до одного места, если я модифицирую по-своему, а не так как у крипторов.
Как тогда криптор все это делает ? Так же само хексует байты только по своему модифицирует их.

Как мне захексовать скрипт, чтоб не крашило.
 

hnnssy

Известный
Друг
2,684
2,749
Захексовал опкод, все равно крашит.

Почему до одного места, если я модифицирую по-своему, а не так как у крипторов.
Как тогда криптор все это делает ? Так же само хексует байты только по своему модифицирует их.

Как мне захексовать скрипт, чтоб не крашило.
крипторы шифруют код и добавляют функцию его расшифровки перед выполнением/загрузкой в память
 

Thomas_Johnson

Известный
Проверенный
183
21
Как правильно отправить полный PACKET_VEHICLE_SYNC? Где взять его структурку?
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,962
PACKET_VEHICLE_SYNC = 219 | +201

// struct stInCarData ( size =63)
// uint16_t sVehicleID;
// uint16_t sLeftRightKeys;+2
// uint16_t sUpDownKeys;+4
// uint16_t sKeys;+6
// float fQuaternion[4];+8
// float fPosition[3];+24
// float fMoveSpeed[3];+36
// float fVehicleHealth;+48
// uint8_t bytePlayerHealth;+52
// uint8_t byteArmor;+53
// uint8_t byteCurrentWeapon;+54
// uint8_t byteSiren;+55
// uint8_t byteLandingGearState;+56
// uint16_t sTrailerID;+57
// float fTrainSpeed;+59
C++:
PACKET_VEHICLE_SYNC = 200 | +170
// struct stInCarData ( size = 67 )
// uint16_t sVehicleID;
// uint16_t sLeftRightKeys; + 2
// uint16_t sUpDownKeys; + 4
// uint16_t sKeys; + 6
// float fQuaternion[4]; + 8
// float fPosition[3]; + 24
// float fMoveSpeed[3]; + 36
// float fVehicleHealth; + 48
// uint8_t bytePlayerHealth; + 52
// uint8_t byteArmor; + 53
// uint8_t byteCurrentWeapon; + 54
// uint8_t byteSiren; + 55
// uint8_t byteLandingGearState; + 56
// uint16_t sTrailerID; + 57
// uint16_t HydraThrustAngle[2]; +59
// float fTrainSpeed; + 63
 
  • Нравится
Реакции: XyJluraH_J

nSTYLE

Известный
13
0
Как сделать диалог на активацию командой и при выборе пункта из списка выполнялась другая команда без вывода сообщений в чат? Подскажите пожалуйста
CLEO:
{$CLEO}

const
    DIALOG_STYLE_LIST = 2
end

0000:

repeat
    wait 400
until 0AFA:  is_samp_available // Ожидаем инициализации структур SAMP'а

0AC8: 0@ = allocate_memory_size 64 // Выделяем память под список элементов(кол-во текста должно быть не больше 64 символов(пробелы и переходы на новую строку тоже равны 1 символу))
0ad3: format_stirng 0@ = "Первый пункт%cВторой пункт%cТретий пункт" 0xA 0xA // Создаем список, 0xA - означает переход на новую строку, а %c указывается в самой строке
0B3B: samp show_dialog id 17 caption "Третий диалог" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
0AC9: free_allocated_memory 0@ // Освобождаем память, больше не нужна.

while true
    wait 0
    if 
        0B3C: samp is_dialog_responded id 17 button 1@ list_item 3@ input_text 0
    then

        0AF8: samp add_message_to_chat "Была нажата кнопка %d" color -1 params 1@ 

        if 
            1@ == 1
        then 
            0AF8: samp add_message_to_chat "А именно: Уря" color -1
            0AF8: samp add_message_to_chat "Элемент №%d" color -1 params 3@

            if 3@ == 0
            then 0AF8: samp add_message_to_chat "Это первый пункт" color -1
            end

            if 3@ == 1 // Был выбран второй пункт
            then 0AF8: samp add_message_to_chat "Это второй пункт" color -1
            end

            if 3@ == 2 // Был выбран третий пункт
            then 0AF8: samp add_message_to_chat "Это третий пункт" color -1
            end
        else 
            0AF8: samp add_message_to_chat "А именно: Закрыть" color -1
        end 
    end
end
 

01EG

Известный
Проверенный
631
345
Как сделать диалог на активацию командой и при выборе пункта из списка выполнялась другая команда без вывода сообщений в чат? Подскажите пожалуйста
CLEO:
{$CLEO}

const
    DIALOG_STYLE_LIST = 2
end

0000:

repeat
    wait 400
until 0AFA:  is_samp_available // Ожидаем инициализации структур SAMP'а

0AC8: 0@ = allocate_memory_size 64 // Выделяем память под список элементов(кол-во текста должно быть не больше 64 символов(пробелы и переходы на новую строку тоже равны 1 символу))
0ad3: format_stirng 0@ = "Первый пункт%cВторой пункт%cТретий пункт" 0xA 0xA // Создаем список, 0xA - означает переход на новую строку, а %c указывается в самой строке
0B3B: samp show_dialog id 17 caption "Третий диалог" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
0AC9: free_allocated_memory 0@ // Освобождаем память, больше не нужна.

while true
    wait 0
    if
        0B3C: samp is_dialog_responded id 17 button 1@ list_item 3@ input_text 0
    then

        0AF8: samp add_message_to_chat "Была нажата кнопка %d" color -1 params 1@

        if
            1@ == 1
        then
            0AF8: samp add_message_to_chat "А именно: Уря" color -1
            0AF8: samp add_message_to_chat "Элемент №%d" color -1 params 3@

            if 3@ == 0
            then 0AF8: samp add_message_to_chat "Это первый пункт" color -1
            end

            if 3@ == 1 // Был выбран второй пункт
            then 0AF8: samp add_message_to_chat "Это второй пункт" color -1
            end

            if 3@ == 2 // Был выбран третий пункт
            then 0AF8: samp add_message_to_chat "Это третий пункт" color -1
            end
        else
            0AF8: samp add_message_to_chat "А именно: Закрыть" color -1
        end
    end
end
Внимательно прочитать тутор и включить мозги.
1) Нужно вызвать диалог по команде, а именно: чтоб опкод 0b3b: задействовался после ввода команды.
2) логично, что убрать опкод 0af8: , после выбора кнопки.
А вообще, не еби себе мозги и нам, если бы ты хотя бы немного практиковался со скриптами по проще, то у тебя бы не возникало таких дебильных вопросов.
Ты хочешь, чтоб велосипед ехал, но не имеешь колес и цепки.