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

StefanWW

Новичок
93
11
Как тут в тексте сделать так, чтобы последующие предложения шли в низ, а не в право?
Код:
0B3B: samp show_dialog id 15 caption "Команды телепорта" text "{FF8C00}/tps{FFFFFF} - Телепорт на шахту" text button_1 "Закрыть" button_2 "Закрыть" style DIALOG_STYLE_MSGBOX
\n
Лучше так используй.

PHP:
alloc 1@ 512
0AC6: 1@ = label @text offset
 
0B3B: samp show_dialog id 15 caption "??????? ?????????" text 0@ text button_1 "???????" button_2 "???????" style DIALOG_STYLE_MSGBOX
:text
hex
"ÂÀÒÀÔÀÊ ÌÀÇÀÔÀÊ" A
"ÂÀÒÖÀÏ" 00
end
 

Mossberg

Новичок
48
0
Как сделать в тексте в диалоге вторую строку? В одну строку входит только 125 символов :(
 

oolol

Новичок
16
1
Можно ли сделать инклуд текстового файла в диалог?
Если да, то как?
 

CleanLegend

Известный
Всефорумный модератор
476
930
Мне нужно что бы при вводе команды tdmp вводилось 3 команды с промежутком в 3 секунды.
В чем тут ошибка?
Код:
:tdmp
0B35: samp 0@ = get_last_command_params
0C1A: 1@ = atoi 0@
if and
1@ >= 0
1@ <= 1000
then
0af9: "/tm %d" 1@
wait 3000
0af9: "/td %d" 1@
wait 3000
0af9: "/tp %d" 1@
end
0B43: samp cmd_ret
 
SAMP.CmdRet
 

CallBack

Новичок
11
1
Мне нужно что бы при вводе команды tdmp вводилось 3 команды с промежутком в 3 секунды.
В чем тут ошибка?
Код:
:tdmp
0B35: samp 0@ = get_last_command_params
0C1A: 1@ = atoi 0@
if and
1@ >= 0
1@ <= 1000
then
0af9: "/tm %d" 1@
wait 3000
0af9: "/td %d" 1@
wait 3000
0af9: "/tp %d" 1@
end
0B43: samp cmd_ret
 
SAMP.CmdRet

  • С версии 3.0 в телах командах запрещено использовать длительные задержки(wait) и коды, которые могут вызвать её(длительное выполнение). Если Вы хотите вставить задержку в команду, то перенесите всю "нагрузку" в основной цикл.
 
  • Нравится
Реакции: CleanLegend

hnnssy

Известный
Друг
2,684
2,750
Можно ли сделать инклуд текстового файла в диалог?
Если да, то как?
То есть чтобы содержимое текстового файла вывелось в диалог? Если да, то вот:
PHP:
if
0A9A: 3@ = openfile "CLEO\file.txt" mode "rt"
then
    alloc 4@ 128
    alloc 5@ 2048
    0C11: memset destination 4@ value 0 size 128
    0C11: memset destination 5@ value 0 size 2048
    while not File.EOF(3@)
        if 0AD7: read_string_from_file 3@ to 4@ size 128
        then 0C15: strcat destination 5@ source 4@
        end
        0C11: memset destination 4@ value 0 size 128
    end
    0B3B: samp show_dialog id 225 caption "Caption" text 5@ button_1 "Close" button_2 "" style 0
    free 4@
    free 5@
    File.Close(3@)
end
 

StefanWW

Новичок
93
11
Почему пикап не берет? на Diamond RP
PHP:
{$CLEO} 
{$INCLUDE includes\raknetdefines.txt}
0000: 
wait 1750
 
0B34: samp register_client_command "sendpic" to_label @sendpic  
 
 
while true 
wait 0 
end 
 
:sendpic 
wait 0
0B35: samp 2@ = get_last_command_params 
if 
0AD4: 2@ = scan_string 2@ "%d" 3@ 
then 
        0B3D: raknet 1@ = new_bit_stream
        0B40: raknet bit_stream 1@ write 3@ type 3 size 4
        0B41: raknet send_rpc 131 bit_stream 1@ priority 1 reliability 10 ordering_channel 0 shift_timestamp false
        0B3E: raknet delete_bit_stream 1@ 
        0af8: "Пикап поднят" -1
end 
samp.CmdRet()


Хукнул пакет проверил ид пикапа. Все совпадает
PHP:
{$CLEO} 
{$INCLUDE SF}
{$INCLUDE includes/RakNetDefines.txt}
0000: 
wait 1750
 
 
0BE1: raknet setup_outcoming_rpc_hook @rpc
 
while true
wait 500
end
 
 
:rpc
0BE5: raknet 1@ = get_hook_param PARAM_PACKETID
 
if
1@ == RPC_PICKEDUPPICKUP
then
0BE5: raknet 2@ = get_hook_param PARAM_BITSTREAM
wait 100
0BE7: raknet 15@ = bit_stream_read 2@ type 3
 
0af8: "%d pickup rpc xx " -1 15@
end
0BE0: raknet hook_ret true
 

StefanWW

Новичок
93
11
Как поднять актера на 0.5 по оси Z . (Высота)
Не ТП, а чтобы он ходил на такой высоте. Или airbrake использовать на малой скорости? Просто преграды стоят.
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,462
Почему пикап не берет? на Diamond RP
Хукнул пакет проверил ид пикапа. Все совпадает
Если ты поднимал пикап только тогда, когда подходил к нему, то возможно, что стоит защита на поднятие пикапа с расстояния.
К тому же, есть легче способ, опкодом: 0BD1: samp send_picked_up_pickup 3@

Как поднять актера на 0.5 по оси Z . (Высота)Не ТП, а чтобы он ходил на такой высоте. Или airbrake использовать на малой скорости? Просто преграды стоят.
Создай объект на необх. позиции, телепортируй туда актера и меняй позицию объекта вместе с углом поворота исходя из данных игрока.
Есть другой способ, но мне кажется он будет куда хуже.
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,462
Как сделать в тексте в диалоге вторую строку? В одну строку входит только 125 символов :(

Либо через 0AD3, выделяя буфер, который содержит строку и символ перехода на новую строку(10), и строку, которая содержит текст диалога, и скреплять буфер со строкой через 0C15: strcat destination 0@ source 1@.

Либо используй hex-вставки:
Код:
0AC6: 0@ = label @dlg_text offset
0B3B: samp show_dialog id 5 caption "Test" text 0@ button_1 "Yes" button_2 "" style 0
 
// Вниз кода куда нибудь, чтобы не обрабатывался(в цикл не пихай)
:dlg_text
hex
    "First string\n"
    "Second string\n"
    "Third string\n"
    "Last string\0"
end

P.S. Очень много слова "строка". Думаю разберешься чо к чему))
 

StefanWW

Новичок
93
11
Если ты поднимал пикап только тогда, когда подходил к нему, то возможно, что стоит защита на поднятие пикапа с расстояния.
К тому же, есть легче способ, опкодом: 0BD1: samp send_picked_up_pickup 3@


Создай объект на необх. позиции, телепортируй туда актера и меняй позицию объекта вместе с углом поворота исходя из данных игрока.
Есть другой способ, но мне кажется он будет куда хуже.

да, опкод потом нашел. Пробывал фейк.коорды записать "Синхр.onfoot data"

Так и сделаю с объектом, задумывался
 

Mossberg

Новичок
48
0
Либо через 0AD3, выделяя буфер, который содержит строку и символ перехода на новую строку(10), и строку, которая содержит текст диалога, и скреплять буфер со строкой через 0C15: strcat destination 0@ source 1@.

Либо используй hex-вставки:
Код:
0AC6: 0@ = label @dlg_text offset
0B3B: samp show_dialog id 5 caption "Test" text 0@ button_1 "Yes" button_2 "" style 0
 
// Вниз кода куда нибудь, чтобы не обрабатывался(в цикл не пихай)
:dlg_text
hex
    "First string\n"
    "Second string\n"
    "Third string\n"
    "Last string\0"
end

P.S. Очень много слова "строка". Думаю разберешься чо к чему))

Пишет типа недостаточно параметров. Ожидалось 6. Вроде все правильно, проверь)
Код:
0B34: samp register_client_command "tphelp" to_label @tphelp
 
while true
wait 0
if 22@ == 1
then
    0AC6: 0@ = label @dlg_text offset
    0B3B: samp show_dialog id 15 caption "Команды телепорта" text 0@ button_1 "Закрыть" button_2 "" style DIALOG_STYLE_MSGBOX
    22@ = 0
end
 
:dlg_text
hex
    "First string\n"
    "Second string\n"
    "Third string\n"
    "Last string\0"
end
 
:tphelp
wait 0
0B12: 22@ = 22@ XOR 1
if 22@ == 1
then
    0AF8: "Диалог команд открыт" color 0xadff2f
end
samp.CmdRet()