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

1,417
1,035
Подскажите как сделать флуд кнопкой(не в чат) на команду ?
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

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

DarkP1xel

Сила воли наше всё.
BH Team
3,637
5,024
При ловле домов/бизнесов проседает фпс, из-за этого флуд с помощью клео теряет свою эффективность, можно ли как то убрать людей из зоны стрима? но при этом что бы все пикапы остались на месте.
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,024
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,024
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.
Хорошо, есть способ значение переменной из одного потока получить в другом?
 

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?