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

hnnssy

Известный
Друг
2,684
2,748
CLEO:
{$CLEO}
0000:

wait 2000

0b34: "text" @text

while true
wait 0
if 31@ == 1
then
    repeat
    wait 250
    0af8: "%d" -1 2@
    2@--
    until 2@ == 0
    31@ = 0
end
end

:text
0B35: samp 0@ = get_last_command_params
if 0AD4: 1@ = scan_string 0@ format "%d" 2@
then
    0af8: "Получено число %d" -1 2@
    31@ = 1
end
0b43:
 
  • Нравится
Реакции: RusFatal

k1sher

Известный
201
4
Подскажите как сделать проверку введенного числа?
Нужно при вводе команды чтобы он проверял что введено 1-7 если другое, то он бы сказал что нужно ввести число от 1 до 7.
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,962
Ставишь условие на опкоде получения строки в команде, если true, то
sscanf и с помощью %d вытаскиваешь значение, далее просто проверку if and на значение переменной.
 

k1sher

Известный
201
4
А по каким координатам нужно тп чтобы просто провалиться под текстуры в том месте где ты уже стоишь?
 

RusFatal

Новичок
114
10
Есть какой-нибудь опкод для эмуляции бега (чтобы бот не скользил), или уже готовая функция, которая просто эмулирует клавишу W для сервера?
 

RusFatal

Новичок
114
10
blast.hk/threads/897/page-3#post-53752
Хм...крашит почему-то
Может я что-то не так сделал?
CLEO:
{$CLEO}
0000:

while not Samp.Available()
wait 100
end

0b34: "testto" @testto

while true
wait 0
if 30@ == 1
then
0AB1: call @char_goto 4 XYZ 1234.0 4321.0 1243.0 sprint true
end
end

:char_goto
repeat
    wait 0
    00A0: store_actor $PLAYER_ACTOR position_to 4@ 5@ 2@
    0063: 0@ -= 4@
    0063: 1@ -= 5@
    0604: get_Z_angle_for_point 0@ 1@ store_to 2@
    005B: 0@ += 4@
    005B: 1@ += 5@
    2@ *= 0.01745
    0A96: 4@ = actor $PLAYER_ACTOR struct
    4@ += 0x558
    0A8C: write_memory 4@ size 4 value 2@ virtual_protect 0
    0373: set_camera_directly_behind_player
    if
        3@ == false
    then
        4@ = 0xB73458
        4@ += 0x20
        0A8C: write_memory 4@ size 1 value 0 virtual_protect 0
        4@ = 0xB73458
        4@ += 0x3
        0A8C: write_memory 4@ size 1 value 255 virtual_protect 0
    else
        4@ = 0xB73458
        4@ += 0x20
        0A8C: write_memory 4@ size 1 value 255 virtual_protect 0
        4@ = 0xB73458
        4@ += 0x3
        0A8C: write_memory 4@ size 1 value 255 virtual_protect 0
    end
until 00ED: actor $PLAYER_ACTOR 0 near_point 0@ 1@ radius 0.4 0.4 on_foot
0AB2: ret 0

:testto
30@ = 1
0AB2: ret 0
 

Niko

Известный
Проверенный
230
268
Ты код сначала сам проверяй, потом уже сюда кидай

В команде ошибка. Это:
CLEO:
0AB2: ret 0
Замени на это:
CLEO:
0B43: samp cmd_ret
 
  • Нравится
Реакции: RusFatal

RusFatal

Новичок
114
10
Ты код сначала сам проверяй, потом уже сюда кидай

В команде ошибка. Это:
CLEO:
0AB2: ret 0
Замени на это:
CLEO:
0B43: samp cmd_ret
Хм...спасибо, не обратил внимание на этот опкод, думал верный.
Теперь персонаж начал бегать, но как только попадает на заданные координаты игра виснет:

UPD: Решил проблему, надо было занести всё в цикл.

Случилась еще одна ошибка в коде, если машина находится на заданных координатах, персонаж должен подбежать к определенной точке, но ничего не происходит:
CLEO:
if
0AE2: $car = random_vehicle_near_point 2522.36 -2227.81 16.85 in_radius 2.5 find_next 0 pass_wrecked 1  // если машина на координатах
then
0AB1: call @char_goto 4 XYZ 2518.85 -2227.32 13.55 sprint false //подбежать к определенной точке
end
 
Последнее редактирование модератором:

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,962
> Глобальные переменные в CLEO.

CLEO:
{$CLEO}
0000:

WHILE TRUE
0001: 0
00A0: store_actor $PLAYER_ACTOR position_to 0@ 1@ 2@
    WHILE 0AE2: 3@ = random_vehicle_near_point 0@ 1@ 2@ in_radius 2.5 find_next TRUE pass_wrecked TRUE
    // ...
    END
END

// By DarkP1xel
 

kuleer

Участник
86
13
Всем доброго времени суток. Например у меня открыто 5 окон сампа, как можно закрыть только одно определённое? Если кто нибудь знает, поделитесь информацией пж.
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,695
1,448
Попросить админа добавить тебя в вайтлист анти-флуда
 

fffff5

Новичок
1
0
Здравствуйте! Как сделать, чтобы при вводе команды: /show_admins показывало тех игроков, которые написаны в скрипте?