Вопросы по 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,684
2,750
Почему 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,720
6,372
Почему 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,720
6,372
Т.е это id объекта который должен быть создан мною? Если да, то когда я его создаю происходит то-же самое. И как найти объект который создаёт сервер?
Ты берешь 1 рандомный объект, а тебе надо перебрать все и найти среди них серверные
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,962
Потому что посылаешь 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,460
И зачем же насиловать жесткий диск?
 
  • Нравится
Реакции: Garrus

p1cador

cerf
Проверенный
220
359
Решил написать режим да двоих через ракнет. На видео видно, что все нормально - мне приходит сообщение, что со мной хотят сыграть, я принимаю - у нас обоих открывается окно, где мы оба можем передвигаться. Проблема в том, что если двигаться очень быстро - может произойти небольшой рассинхрон, на 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,460
Решил написать режим да двоих через ракнет. На видео видно, что все нормально - мне приходит сообщение, что со мной хотят сыграть, я принимаю - у нас обоих открывается окно, где мы оба можем передвигаться. Проблема в том, что если двигаться очень быстро - может произойти небольшой рассинхрон, на 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@
А что должно?