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

TasherEgor1337

Новичок
16
0
Подскажите как вывести моментально все объекты в зоне стрима, а то делаю как с игроками(Ну с опкодами объектов), у меня подвисает игра на пол секунды)
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,983
CLEO:
{$CLEO}
0000:

WHILE TRUE
0001: 0
    IF 0C89:  key_just_pressed 0x31
    THEN 00A0: store_actor $PLAYER_ACTOR position_to 0@ 1@ 2@
        WHILE 0AE3: 3@ = random_object_near_point 0@ 1@ 2@ in_radius 500.0 find_next TRUE
            IF 0B52: samp 4@ = object_id_by_handle 3@
            THEN {}
            END
        END
        // Все серверные объекты найдены.
    END
END
 

RedBoxWhite

Известный
337
27
Как проверить на подстроку на наличие пробела?
Использую 0AA5: call 0x8220AD num_params 5 pop 5 params 12@ 11@ 10@ "[O] %s %s %s" 9@
0AF8: "%s %s, - %s" -1 11@ 12@ 10@
И получается, если 1 слово в чате, то в чат вписывает строку, но 2 параметр является лишним пробелом, как сделать проверку, что в этой подстроке есть пробел?
 

4el0ve4ik

Известный
Всефорумный модератор
1,550
1,343
Как проверить на подстроку на наличие пробела?
Использую 0AA5: call 0x8220AD num_params 5 pop 5 params 12@ 11@ 10@ "[O] %s %s %s" 9@
0AF8: "%s %s, - %s" -1 11@ 12@ 10@
И получается, если 1 слово в чате, то в чат вписывает строку, но 2 параметр является лишним пробелом, как сделать проверку, что в этой подстроке есть пробел?
попробуй искать символ 32(это ascii код пробела) в строке, не знаю можно ли так
 
  • Нравится
Реакции: RedBoxWhite

Сэнд

Известный
Проверенный
436
213
CLEO:
{$CLEO .cs}
0000: NOP

repeat
    wait 0
until SAMP.Available()

0AC8: 10@ = allocate_memory_size 256
0B6D: render 11@ = create_font "Arial" height 13 flags 5

while true
wait 0
for 1@ = 0 to 32@ = 999
wait 0
if 056D: actor 1@ defined
then
0B2B: samp 2@ = get_player_id_by_actor_handle 1@
00A0: store_actor 1@ position_to 3@ 4@ 5@
0AD3: 10@ = format "%d" 2@
0B55: convert_3D_coords 3@ 4@ 5@ to_screen 12@ 13@
0B6F: render font 11@ draw_text 10@ pos 12@ 13@ color 0xFFFFFFFF
end
end
Где ошибка? При запуске крашит.
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,983
Циклом по ID игрокам проходись, а не по handle. Wait 0 из for убери.

CLEO:
{$CLEO}
0AC8: 0@ = allocate_memory_size 16
0C11: memset destination 0@ value 0x0 size 16
0B6D: render 1@ = create_font "Arial" height 10 flags 13

WHILE TRUE
0001: 0
    FOR 2@ = 0 TO 1004 [STEP = 1]
        IF 0B23:  samp is_player_connected 2@
        THEN
            IF 0B20: samp 3@ = actor_handle_by_samp_player_id 2@
            THEN {}
            END
        END
    END
END
 

p1cador

cerf
Проверенный
221
359
Циклом по ID игрокам проходись, а не по handle. Wait 0 из for убери.

CLEO:
{$CLEO}
0AC8: 0@ = allocate_memory_size 16
0C11: memset destination 0@ value 0x0 size 16
0B6D: render 1@ = create_font "Arial" height 10 flags 13

WHILE TRUE
0001: 0
    FOR 2@ = 0 TO 1004 [STEP = 1]
        IF 0B23:  samp is_player_connected 2@
        THEN
            IF 0B20: samp 3@ = actor_handle_by_samp_player_id 2@
            THEN {}
            END
        END
    END
END
Таир отстал от прогресса)
Код:
0C8A: samp 1@ = get_max_player_id streamed_only 0@
 

RedBoxWhite

Известный
337
27
0C29: 2@ = stristr string1 0@ string2 " "
" " - пробел
Не работает. Может, я просто не так делаю?
CLEO:
0AA5: call 0x8220AD num_params 5 pop 5 params 12@ 11@ 10@ "[O] %s %s %s" 9@
if 0C29: 31@ = stristr string1 11@ string2 " "
then
0C11: 31@ 0x0 1
end
// Добавлю, что проверка вообще не срабатывала, ставил 0AF8 после проверки этой строки, чтобы проверить - ничего не выводило
if 0C29: 31@ = stristr string1 12@ string2 " "
then
0C11: 31@ 0x0 1
end