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

RedBoxWhite

Известный
337
27
Какой опкод проверяет анимацию по хэндлу, но он не само название анимации проверяет, а именно название файла (в моё случае - ped)?
 

sev4a

Новичок
2
0
Как сделать чтоб не флудило?
Код:
{$CLEO}
Thread"Lesson"
WhileTrue
wait0
1@ = Actor.Health($Player_Actor).
if1@ <= 90
then
0af9: "/usedrugs 15"
wait2000
end
end
 

RedBoxWhite

Известный
337
27
Почему крашит? :sad_frog:
CLEO:
{$CLEO}
0000:

0B34: "cmd" to_label @Test

while true
    wait 0
end  

:Test
for 0@ = 0 to 999
if 0B23: samp is_player_connected 0@
jf continue
0B37: samp 1@ = get_player_color 0@
0AF8: "ID: %d || Clr: %08X" -1 0@ 1@
end
 

Damon

Новичок
1
0
Ребчт как в это клео изменить клавишу использования из ctrl на F3?
 

Вложения

  • 7. FastMenu.zip
    2.9 KB · Просмотры: 9

4el0ve4ik

Известный
Всефорумный модератор
1,550
1,343
Как сделать чтоб не флудило?
Код:
{$CLEO}
Thread"Lesson"
[code=cleo]{$CLEO}
0000:
While True
wait 0
1@ = Actor.Health($Player_Actor).
    if 1@ <= 90
    then
    0af9: "/usedrugs 3"
    wait 2000
        while 1@ <= 90
        wait 0
        end
    end
end
WhileTrue
wait0
1@ = Actor.Health($Player_Actor).
if1@ <= 90
then
0af9: "/usedrugs 15"
wait2000
end
end[/code]

Попробуй вот так:
CLEO:
{$CLEO}
0000:
While True
wait 0
1@ = Actor.Health($Player_Actor).
    if 1@ <= 90
    then
    0af9: "/usedrugs 3"
    wait 2000
        while 1@ <= 90
        wait 0
        end
    end
end
 

4el0ve4ik

Известный
Всефорумный модератор
1,550
1,343
Выполняет только один раз, как сделать что бы после того как хп снова было <=90 он запустился?
CLEO:
{$CLEO}
0000:
While True
wait 0
1@ = Actor.Health($Player_Actor).
    if 1@ <= 90
    then
    0af9: "/usedrugs 3"
    wait 2000
        while 1@ <= 90
        wait 0
        end
    end
end
 

Сэнд

Известный
Проверенный
436
213
У тебя переменных не хватает чтобы хранить handle на mp3?
Да, я одну оригинальную херню придумал, бестолковую, правда. Типа пианино на клавиатуре, звуки все есть, всё работает. Но переменных для них не хватает.
 
  • Нравится
Реакции: 4el0ve4ik

DarkP1xel

Сила воли наше всё.
BH Team
3,636
4,997
Да, я одну оригинальную херню придумал, бестолковую, правда. Типа пианино на клавиатуре, звуки все есть, всё работает. Но переменных для них не хватает.
CLEO:
0AC8: 0@ = allocate_memory_size 512
0C11: memset destination 0@ value 0x0 size 512

0AB1: call_scm_func @CallBuffer Params 4 {ID Ячейки}0 {Указатель на Buffer}0@ {Тип функции}1 {Число}420 || {Result}1@

:CallBuffer
// 0@ - ID Ячейки.
// 1@ - Указатель на Buffer .
// 2@ - Тип функции {1 - Write, Other - Read}.
// 3@ - Число для записи.
0012: 0@ *= 4 // Получаем смещение на указанную ячейку.
005A: 0@ += 1@ // Получаем указатель на ячейку.
IF 0039:   2@ == 1 // Проверяем тип вызова.
THEN 0A8C: write_memory 0@ size 4 value 3@ virtual_protect TRUE // Запись данных в ячейку.
ELSE 0A8D: 25@ = read_memory 0@ size 4 virtual_protect TRUE // Считывание данных.
END
0AB2: RET_ 1 {Result}25@

Попробуй. Функция позволит хранить неограниченное (sizeof(Buffer)) количество переменных в ячейках памяти.
 

Dark_Knight

Me, me and me.
Друг
4,085
2,114
CLEO:
0AC8: 0@ = allocate_memory_size 512
0C11: memset destination 0@ value 0x0 size 512

0AB1: call_scm_func @CallBuffer Params 4 {ID Ячейки}0 {Указатель на Buffer}0@ {Тип функции}1 {Число}420 || {Result}1@

:CallBuffer
// 0@ - ID Ячейки.
// 1@ - Указатель на Buffer .
// 2@ - Тип функции {1 - Write, Other - Read}.
// 3@ - Число для записи.
0012: 0@ *= 4 // Получаем смещение на указанную ячейку.
005A: 0@ += 1@ // Получаем указатель на ячейку.
IF 0039:   2@ == 1 // Проверяем тип вызова.
THEN 0A8C: write_memory 0@ size 4 value 3@ virtual_protect TRUE // Запись данных в ячейку.
ELSE 0A8D: 25@ = read_memory 0@ size 4 virtual_protect TRUE // Считывание данных.
END
0AB2: RET_ 1 {Result}25@

Попробуй. Функция позволит хранить неограниченное (sizeof(Buffer)) количество переменных в ячейках памяти.
А массив и структуру не проще ли заюзать?
 

DarkP1xel

Сила воли наше всё.
BH Team
3,636
4,997
Всё равно крашит...
CLEO:
{$CLEO}
0B34: "CMD" to_label @CMD
0BDE: pause_thread 0

:CMD
FOR 0@ = 0 TO 1000 [STEP = 1]
    IF 0B23: samp is_player_connected 0@
    THEN
    0B37: samp 1@ = get_player_color 0@
    0AF8: samp add_message_to_chat "ID: %d | Color:{%X} |||" color 0xFFFFFF {ID}0@ {Color}1@
    END
END
0B43: samp cmd_ret

А массив и структуру не проще ли заюзать?
Не ищу легких путей :prankster:
 

4el0ve4ik

Известный
Всефорумный модератор
1,550
1,343
Выполняет только один раз, как сделать что бы после того как хп снова было <=90 он запустился?
CLEO:
{$CLEO}
0000:
While True
wait 0
1@ = Actor.Health($Player_Actor).
    if 1@ <= 90
    then
    0af9: "/usedrugs 3"
    wait 2000
        while 1@ <= 90
        wait 0
        end
    end
end
бл, помогите у меня либо флудит, либо выполняется но 1 раз