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

1,417
1,041
Подскажите как сделать флуд кнопкой(не в чат) на команду ?
CLEO:
{$CLEO}
0000: NOP
0B34: samp register_client_command "cmd" to_label @on

WHILE TRUE
WAIT 0
    IF 0@ == 1
    THEN
        0C72: set_virtual_key KEY down true
        wait 100
        0C72: set_virtual_key KEY down false
    END
END

:on
IF 0@ == 0
THEN
0@ = 1
ELSE
0@ = 0
END
0B43: samp cmd_ret
вместо KEY пиши ид своей клавиши
 

Quit

Известный
201
53
При ловле домов/бизнесов проседает фпс, из-за этого флуд с помощью клео теряет свою эффективность, можно ли как то убрать людей из зоны стрима? но при этом что бы все пикапы остались на месте.
 

DarkP1xel

Ухожу в армию... Вернусь через год.
BH Team
3,637
5,060
При ловле домов/бизнесов проседает фпс, из-за этого флуд с помощью клео теряет свою эффективность, можно ли как то убрать людей из зоны стрима? но при этом что бы все пикапы остались на месте.
CLEO:
0B20: samp 0@ = actor_handle_by_samp_player_id 420
009B: destroy_actor 0@
 
  • Нравится
Реакции: Quit

Kristyan

Известный
165
16
Here i have a label what if you type a command to find the player and after he finds it i need to know if he is driving a flying vehicle, but it gives me a crash when i'm typing the command at all or putting the id [/findd <ID>].. Maybe i done something very wrong pls help @DarkP1xel
PHP:
:cmd_113
SAMP.IsCommandTyped(20@)
if
0AD4: 20@ = scan_string 20@ format "%d" 21@
then
    0AF9: samp say_msg "/find %d" 21@
else
    print "~r~/findd <id>" 2000
IF and
0B20: samp 1@ = actor_handle_by_samp_player_id 21@
04C8:   actor 1@ driving_flying_vehicle
then
 print "~r~Player are flying!" 2000
else_jump @cmd_113
end
end
SAMP.CmdRet()
And one question "04C8: actor 1@ driving_flying_vehicle" is opcode for planes or for all flying vehicles. Thanks.
 

DarkP1xel

Ухожу в армию... Вернусь через год.
BH Team
3,637
5,060
Here i have a label what if you type a command to find the player and after he finds it i need to know if he is driving a flying vehicle, but it gives me a crash when i'm typing the command at all or putting the id [/findd <ID>].. Maybe i done something very wrong pls help @DarkP1xel
PHP:
:cmd_113
SAMP.IsCommandTyped(20@)
if
0AD4: 20@ = scan_string 20@ format "%d" 21@
then
    0AF9: samp say_msg "/find %d" 21@
else
    print "~r~/findd <id>" 2000
IF and
0B20: samp 1@ = actor_handle_by_samp_player_id 21@
04C8:   actor 1@ driving_flying_vehicle
then
 print "~r~Player are flying!" 2000
else_jump @cmd_113
end
end
SAMP.CmdRet()
And one question "04C8: actor 1@ driving_flying_vehicle" is opcode for planes or for all flying vehicles. Thanks.
CLEO:
{$CLEO}
0B34: samp register_client_command "420" to_label @cmd_420
0BDE: pause_thread 0

:cmd_420
IF 0B35: samp 0@ = get_last_command_params
THEN 0C1A: 0@ = atoi 0@
    IF 0B23:  samp is_player_connected 0@
    THEN
        IF 0B20: samp 1@ = actor_handle_by_samp_player_id 0@
        THEN
            IF 04C8:   actor 1@ driving_flying_vehicle
            THEN 0AD1: "%d -> Flying..." time 500 | {ID}0@ |
            END
        END
    END
END
0B43: samp cmd_ret

// By DarkP1xel
 

Kristyan

Известный
165
16
CLEO:
{$CLEO}
0B34: samp register_client_command "420" to_label @cmd_420
0BDE: pause_thread 0

:cmd_420
IF 0B35: samp 0@ = get_last_command_params
THEN 0C1A: 0@ = atoi 0@
    IF 0B23:  samp is_player_connected 0@
    THEN
        IF 0B20: samp 1@ = actor_handle_by_samp_player_id 0@
        THEN
            IF 04C8:   actor 1@ driving_flying_vehicle
            THEN 0AD1: "%d -> Flying..." time 500 | {ID}0@ |
            END
        END
    END
END
0B43: samp cmd_ret

// By DarkP1xel
The label didn't work...
 

SumJest

Известный
31
12
Подскажите пожалуйста, почему вылетает игра без всяких варнингов, когда пишу команду /anim [ID] INT_HOUSE wash_up? Вот скрипт:
CLEO:
{$CLEO .cs}
0000: NOP

:13
   not SAMP.Available
jf @main
wait 100
goto @13

:main
wait 0
0B34: samp register_client_command "anim" to_label @2
chatmsg "Animations by {ff0000}SumJest{ffffff} loaded!" 0xFFFFFF
goto @issp

:issp
wait 100
SAMP.IsLocalPlayerSpawned()
jf  @issp
goto @1

:1
wait 0
0ADC: test_cheat "1"
jf @1
04ED: load_animation  "INT_HOUSE"

:LoadedCheck1
wait 0
04EE: animation "INT_HOUSE" loaded
jf @LoadedCheck1
0A1A: actor $PLAYER_ACTOR perform_animation "wash_up" IFP "INT_HOUSE" framedelta 4.0 loop 1 lockX 0 lockY 0 lockF 0 time -1
04EF: release_animation "INT_HOUSE"
jump @1

:2
0B35: samp 0@ = get_last_command_param
Var
$player_id : Int
$file_of_animation : String
$animation : String
$actor : Actor
1@ : Int
2@ : String
3@ : String
4@ : Actor
End
0AD4: 20@ = scan_string 0@ format "%d %s %s" 1@ 2@ 3@
0AF8: samp add_message_to_chat "%s" color 0xFFFFFF 2@
$player_id = 1@
$file_of_animation = 2@
$animation = 3@
if 20@ == 3
then        
00D6: if and
0B23:  samp is_player_connected 1@
8B64:  not samp is_player 1@ npc
004D: jump_if_false @CMDError1
0B20: samp 4@ = actor_handle_by_samp_player_id 1@
056D:   actor 4@ defined
004D: jump_if_false @CMDError2
0AF8: samp add_message_to_chat "7" color 0xFFFFFF
04ED: load_animation "%s" 2@
0AF8: samp add_message_to_chat "8" color 0xFFFFFF
$actor = 4@
:LoadedCheck2
wait 0
Var
1@ : Int
2@ : String
3@ : String
4@ : Actor
End
1@ = $player_id
2@ = $file_of_animation
3@ = $animation
4@ = $actor
0AF8: samp add_message_to_chat "9" color 0xFFFFFF
04EE: animation "%s" 2@ loaded
jf @LoadedCheck2
0AF8: samp add_message_to_chat "10" color 0xFFFFFF
0605: actor 4@ perform_animation "%s" 3@ IFP "%s" 2@ framedelta 4.0 loop 1 lockX 0 lockY 0 lockF 0 time -1
0AF8: samp add_message_to_chat "11" color 0xFFFFFF
04EF: release_animation "%s" 2@
0AF8: samp add_message_to_chat "12" color 0xFFFFFF
else
0AF8: samp add_message_to_chat "{ffffff}Ââîäèòå /anim [id] [file] [animation]" color 0xFFFFFF
end
SAMP.CmdRet()
                                           
:CMDError1
0AF8: samp add_message_to_chat "Èãðîê íå ïîäêëþ÷¸í." color 0xFFFFFF
0B43: samp cmd_ret
:CMDError2
0AF8: samp add_message_to_chat "Èãðîê âíå çîíû ñòðèìà." color 0xFFFFFF
0B43: samp cmd_ret
 

DarkP1xel

Ухожу в армию... Вернусь через год.
BH Team
3,637
5,060
Oh common :))... dude it rlly didn't work..
Everything works.
/420 ID

Подскажите пожалуйста, почему вылетает игра без всяких варнингов, когда пишу команду /anim [ID] INT_HOUSE wash_up? Вот скрипт:
Нельзя использовать глобальные переменные в CLEO.
Не все опкоды поддерживают форматирование, а ты во все добавил своё %s.
 

Вложения

  • 420.cs
    17.8 KB · Просмотры: 8

SumJest

Известный
31
12
Everything works.
/420 ID


Нельзя использовать глобальные переменные в CLEO.
Не все опкоды поддерживают форматирование, а ты во все добавил своё %s.
Хорошо, есть способ значение переменной из одного потока получить в другом?
 

DarkP1xel

Ухожу в армию... Вернусь через год.
BH Team
3,637
5,060
Хорошо, есть способ значение переменной из одного потока получить в другом?
CLEO:
0C6D: 2@ = get_thread 0@ local_var 1@
Если установлен SF, то можно так. Если SF не установлен нужно по структурам лазить.
 

SumJest

Известный
31
12
CLEO:
0C6D: 2@ = get_thread 0@ local_var 1@
Если установлен SF, то можно так. Если SF не установлен нужно по структурам лазить.
Вылетает игра
CLEO:
{$CLEO .cs}
0000: NOP

:13
   not SAMP.Available
jf @main
wait 100
goto @13

:main
wait 0
0B34: samp register_client_command "anim" to_label @2
chatmsg "Animations by {ff0000}SumJest{ffffff} loaded!" 0xFFFFFF
goto @issp

:issp
wait 100
SAMP.IsLocalPlayerSpawned()
jf  @issp
goto @1

:1
wait 0
0ADC: test_cheat "1"
jf @1
04ED: load_animation  "INT_HOUSE"

:LoadedCheck1
wait 0
04EE: animation "INT_HOUSE" loaded
jf @LoadedCheck1
0A1A: actor $PLAYER_ACTOR perform_animation "wash_up" IFP "INT_HOUSE" framedelta 4.0 loop 1 lockX 0 lockY 0 lockF 0 time -1
04EF: release_animation "INT_HOUSE"
jump @1

:2
0B35: samp 0@ = get_last_command_param
0AD4: 20@ = scan_string 0@ format "%d %s %s" 1@ 2@ 3@
0AF8: samp add_message_to_chat "%s" color 0xFFFFFF 2@
if 20@ == 3
then       
00D6: if and
0B23:  samp is_player_connected 1@
8B64:  not samp is_player 1@ npc
004D: jump_if_false @CMDError1
0B20: samp 4@ = actor_handle_by_samp_player_id 1@
056D:   actor 4@ defined
004D: jump_if_false @CMDError2
0AF8: samp add_message_to_chat "7" color 0xFFFFFF
04ED: load_animation "%s" 2@
0AF8: samp add_message_to_chat "8" color 0xFFFFFF
:LoadedCheck2
wait 0
0C6D: 6@ = get_thread 2@ local_var 2@
0C6D: 7@ = get_thread 2@ local_var 3@
0C6D: 8@ = get_thread 2@ local_var 4@
0AF8: samp add_message_to_chat "9" color 0xFFFFFF
04EE: animation "%s" 6@ loaded
jf @LoadedCheck2
0AF8: samp add_message_to_chat "10" color 0xFFFFFF
0605: actor 8@ perform_animation "%s" 7@ IFP "%s" 6@ framedelta 4.0 loop 1 lockX 0 lockY 0 lockF 0 time -1
0AF8: samp add_message_to_chat "11" color 0xFFFFFF
04EF: release_animation "%s" 6@
0AF8: samp add_message_to_chat "12" color 0xFFFFFF
else
0AF8: samp add_message_to_chat "{ffffff}Ââîäèòå /anim [id] [file] [animation]" color 0xFFFFFF
end
SAMP.CmdRet()
                                          
:CMDError1
0AF8: samp add_message_to_chat "Èãðîê íå ïîäêëþ÷¸í." color 0xFFFFFF
0B43: samp cmd_ret
:CMDError2
0AF8: samp add_message_to_chat "Èãðîê âíå çîíû ñòðèìà." color 0xFFFFFF
0B43: samp cmd_ret

Я нашёл этот опкод в базе blast.hk. Тут написано:
Исходящие значения
2@ [float/integer] - значение

Значит можно получить только значения типа float и int?