Клео код

mc_alex

Участник
Автор темы
151
24
Что не так с этим кодом?
 

Вложения

  • cmd.txt
    419 байт · Просмотры: 5

DarkP1xel

Ухожу в армию... Вернусь через год.
BH Team
3,637
5,068
Код:
0BDE: pause_thread 0@
Тут не совсем ошибка, но зачем? Чтобы приостановить текущий поток там нужно указать 0, хоть у тебя на момент этого опкода в переменной 0@ тоже 0.

Код:
:cmd
wait 100
00A1: put_actor $PLAYER_ACTOR at 345.5621 306.2212 998.4484
wait 700
00A1: put_actor $PLAYER_ACTOR at 427.5621 306.2212 998.4484
wait 700
jump @cmd
Тело команды является callback-функцией, что в свою очередь не может иметь задержки и не может работать в бесконечном цикле. Более того такая функция должна заканчиваться с опкодом 0B43.


Код:
:cmdoff
wait 0
end_thread @1
0B43: samp cmd_ret
Очередная ненужная задержка, а так же использование опкода 004E который не имеет параметров, ему непонятно зачем передается параметр 1@. Более того этот опкод нельзя использовать в CLEO, а только в SCM миссиях.

Что с этим кодом вообще так?
 

mc_alex

Участник
Автор темы
151
24
Код:
0BDE: pause_thread 0@
Тут не совсем ошибка, но зачем? Чтобы приостановить текущий поток там нужно указать 0, хоть у тебя на момент этого опкода в переменной 0@ тоже 0.

Код:
:cmd
wait 100
00A1: put_actor $PLAYER_ACTOR at 345.5621 306.2212 998.4484
wait 700
00A1: put_actor $PLAYER_ACTOR at 427.5621 306.2212 998.4484
wait 700
jump @cmd
Тело команды является callback-функцией, что в свою очередь не может иметь задержки и не может работать в бесконечном цикле. Более того такая функция должна заканчиваться с опкодом 0B43.


Код:
:cmdoff
wait 0
end_thread @1
0B43: samp cmd_ret
Очередная ненужная задержка, а так же использование опкода 004E который не имеет параметров, ему непонятно зачем передается параметр 1@. Более того этот опкод нельзя использовать в CLEO, а только в SCM миссиях.

Что с этим кодом вообще так?
{$CLEO}
0000:

:1
wait 0
Samp.Available()
jf @1
0B34: samp register_client_command "cmd" to_label @cmd
0B34: samp register_client_command "cmdoff" to_label @cmdoff
0BDE: pause_thread 0

:cmd
00A1: put_actor $PLAYER_ACTOR at 345.5621 306.2212 998.4484
wait 700
00A1: put_actor $PLAYER_ACTOR at 427.5621 306.2212 998.4484
0B43: samp cmd_ret

:cmdoff
end_thread
0B43: samp cmd_ret

а так?
 

DarkP1xel

Ухожу в армию... Вернусь через год.
BH Team
3,637
5,068
:cmd
00A1: put_actor $PLAYER_ACTOR at 345.5621 306.2212 998.4484
wait 700
00A1: put_actor $PLAYER_ACTOR at 427.5621 306.2212 998.4484
0B43: samp cmd_ret

:cmdoff
end_thread
0B43: samp cmd_ret
А что поменялось? Очередные задержки в команде и очередное использование опкода 004E для SCM...

Короче ясно.

CLEO:
{$CLEO}
{$USE bitwise}
HEX
    00 00
END

WHILE 8AFA:  NOT is_samp_available
    0001: 0
END
0B34: samp register_client_command "cmd" to_label @cmd
0B34: samp register_client_command "end" to_label @end

WHILE TRUE
    0001: 0
   
    IF 0039:   0@ == TRUE
    THEN
        00A1: put_actor $PLAYER_ACTOR at 345.5621 306.2212 998.4484
        0001: 700
        00A1: put_actor $PLAYER_ACTOR at 427.5621 306.2212 998.4484
    END
   
END

:cmd
0B12: 0@ = 0@ XOR 1
0B43: samp cmd_ret

:end
0A93:
0B43: samp cmd_ret
 
  • Нравится
Реакции: etereon и mc_alex