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

Sn00pY

Новичок
30
4
Таким способом можно вывести значение переменной 3@, но если там только число.
CLEO:
3@ = 5
03E4: set_text_draw_align_right 1
033F: set_text_draw_letter_size 0.3 0.6
0340: set_text_draw_RGBA 255 255 255 255
081C: draw_text_outline 1 RGBA 0 0 0 255
045A: draw_text_1number 150.0 390.0 GXT 'NUMBER' number 3@
Как можно вывести текст?
 

Sn00pY

Новичок
30
4
Этот опкод не подходит. Нельзя настроить размер и кординаты.
bf1a7ef7c7f04248bf7156ab4e4d7a12.png
 

wavermaa

Новичок
5
0
Почему id объекта -1?
CLEO:
while true
wait 0
    if
    0ADC:   test_cheat "9"
    then
        repeat
        wait 1000
        00A0: store_actor $PLAYER_ACTOR position_to 1@ 2@ 3@
        0AE3: 4@ = random_object_near_point 1@ 2@ 3@ in_radius 150 find_next 1
        0B52: samp 5@ = object_id_by_handle 4@
        0AF8: samp add_message_to_chat "объект / %d" color -1 5@
        until 0ADC:   test_cheat "0"
    end
end
 

hnnssy

Известный
Друг
2,683
2,771
Почему id объекта -1?
CLEO:
while true
wait 0
    if
    0ADC:   test_cheat "9"
    then
        repeat
        wait 1000
        00A0: store_actor $PLAYER_ACTOR position_to 1@ 2@ 3@
        0AE3: 4@ = random_object_near_point 1@ 2@ 3@ in_radius 150 find_next 1
        0B52: samp 5@ = object_id_by_handle 4@
        0AF8: samp add_message_to_chat "объект / %d" color -1 5@
        until 0ADC:   test_cheat "0"
    end
end
радиус во float
 

SR_team

like pancake
BH Team
4,917
6,616
Почему id объекта -1?
CLEO:
while true
wait 0
    if
    0ADC:   test_cheat "9"
    then
        repeat
        wait 1000
        00A0: store_actor $PLAYER_ACTOR position_to 1@ 2@ 3@
        0AE3: 4@ = random_object_near_point 1@ 2@ 3@ in_radius 150 find_next 1
        0B52: samp 5@ = object_id_by_handle 4@
        0AF8: samp add_message_to_chat "объект / %d" color -1 5@
        until 0ADC:   test_cheat "0"
    end
end
Потому что нашелся клиентский id
 

SR_team

like pancake
BH Team
4,917
6,616
Т.е это id объекта который должен быть создан мною? Если да, то когда я его создаю происходит то-же самое. И как найти объект который создаёт сервер?
Ты берешь 1 рандомный объект, а тебе надо перебрать все и найти среди них серверные
 

DarkP1xel

Ухожу в армию... Вернусь через год.
BH Team
3,637
5,060
Потому что посылаешь OnFoot Sync на другие координаты.
 

Garrus

Известный
159
20
При использовании большого количества опкода 0AF0 в бесконечном цикле, возможно проседание фпс? Если да, использовать глобальные переменные СФ в данном случае будет хорошей идеей?
Пример (таких проверок в скрипте большое количество):
Код:
0AF0: 0@ = get_int_from_ini_file "cleo\config.ini" section "key" key "key1"
if 0AB0: key_pressed 0@
Then...
 
Последнее редактирование:

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,472
И зачем же насиловать жесткий диск?
 
  • Нравится
Реакции: Garrus

p1cador

cerf
Проверенный
221
360
Решил написать режим да двоих через ракнет. На видео видно, что все нормально - мне приходит сообщение, что со мной хотят сыграть, я принимаю - у нас обоих открывается окно, где мы оба можем передвигаться. Проблема в том, что если двигаться очень быстро - может произойти небольшой рассинхрон, на 1-2 клетки (очень редко, но случается).
Перепроверил код 2048 раз, все правильно.
Мой квадратик перемещается только в случае, если установленный outcoming packet хук возвращает нажатую клавишу
Код:
//PACKET_PLAYER_SYNC = 212 | +55
// uint16_t sLeftRightKeys;
// uint16_t sUpDownKeys; + 2
То есть никаких 0ab0, 0c89, 0adc нет. Действие происходит ТОЛЬКО если оно отправляется на сервер => если его может увидеть второй игрок.
В чем,сука,дело?

П.С. да-да, знаю, писать такое на клео это полный бдсм, но мне нравится, хоть это и затрах, но интересно.
 
Последнее редактирование:
  • Нравится
Реакции: 4el0ve4ik

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,472
Решил написать режим да двоих через ракнет. На видео видно, что все нормально - мне приходит сообщение, что со мной хотят сыграть, я принимаю - у нас обоих открывается окно, где мы оба можем передвигаться. Проблема в том, что если двигаться очень быстро - может произойти небольшой рассинхрон, на 1-2 клетки (очень редко, но случается).
Перепроверил код 2048 раз, все правильно.
Мой квадратик перемещается только в случае, если установленный outcoming packet хук возвращает нажатую клавишу
Код:
//PACKET_PLAYER_SYNC = 212 | +55
// uint16_t sLeftRightKeys;
// uint16_t sUpDownKeys; + 2
То есть никаких 0ab0, 0c89, 0adc нет. Действие происходит ТОЛЬКО если оно отправляется на сервер => если его может увидеть второй игрок.
Перепроверил код 512 раз, все правильно. В чем,сука,дело?

П.С. да-да, знаю, писать такое на клео это полный бдсм, но мне нравится, хоть это и затрах, но интересно.
Потому что зависит от сервера и от клиента. Если клиент отправит с задержкой - рассинхрон. Если клиент отправит и сервер примет, далее отправит другому клиенту - тоже может быть задержка. От этого ты никак не избавишься, если только не через lan сеть. Вроде логично, нет? Все твои проблемы из-за сервера, который принимает. Если была бы p2p, то всё зависело от самих клиентов, а не от сервера.

Почему в преременную записывается какая-то хуета типа: 150.00000

CLEO:
 0AC8: 9@ = allocate_memory_size 260
    if 0B3C:  samp is_dialog_responded id 1 button 8@ list_item 1 input_text 9@
    then
        if 8@ == 1
        then 0C1B: 7@ = atof 9@
        end
    end
    0AC9: free_allocated_memory 9@
А что должно?