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

serhiyrubin

Известный
396
106
CLEO:
    if and
    key_down 72
    00e1: 0 6
    then
        0AD2: 11@ = player $PLAYER_CHAR targeted_actor //IF and SET
        chatmsg "1: %s" 11@ -1
        0B2B: samp 12@ = get_player_id_by_actor_handle 11@
        chatmsg "2: %s" 12@ -1
        0B36: samp 13@ = get_player_nickname 12@
        chatmsg "Nick: %s" 13@ -1
    end
В чатике ничего не появляется, игра виснет, все плохо. КАРАУЛ O:-)
Где-то ошибка...
Под 0B36: samp 13@ = get_player_nickname 12@ память выделял?
 

BlackKnigga

Известный
BH Team
922
445
CLEO:
    if and
    key_down 72
    00e1: 0 6
    then
        0AD2: 11@ = player $PLAYER_CHAR targeted_actor //IF and SET
        chatmsg "1: %s" 11@ -1
        0B2B: samp 12@ = get_player_id_by_actor_handle 11@
        chatmsg "2: %s" 12@ -1
        0B36: samp 13@ = get_player_nickname 12@
        chatmsg "Nick: %s" 13@ -1
    end
В чатике ничего не появляется, игра виснет, все плохо. КАРАУЛ O:-)
Где-то ошибка...
Указатель на педа и ид это числа, юзай %d для них.
Под 0B36: samp 13@ = get_player_nickname 12@ память выделял?
Опкод сразу возвращает указатель на ник. Память выделять не нужно
 

Kristyan

Известный
165
16
Why isn't taking the red color? On SF 5.2 the label is working, but on SF 5.3 isn't working......
PHP:
const
COLOR = 0xFFE3336D // here is the const
end

:copcmd_main
WAIT 0
    IF 31@ == 1
    THEN
        FOR 0@ = 0 to 999
            IF SAMP.IsPlayerConnected(0@)
            THEN
                IF 1@ = SAMP.GetActorHandleByPlayerID(0@)
                THEN
                    0B37: samp 16@ = get_player_color 0@
                    IF 16@ == COLOR
                    THEN
                    IF
                    056D:   actor 1@ defined
                    THEN 0AF9: samp say_msg "/find %d" 0@
                    0AF9: samp say_msg "/mdc %d" 0@
                    WAIT 1000
                    13@ += 1
                    END
                END
            END
        END
    END
        IF 14@ == 0
        then
        wait 0
        else
        chatmsg "[CopCMD]: {FF8000}Have found %d wanted players." -1 13@
        13@ = 0
        end
        31@ = 0
    END
FOR 22@ = 0 to 999
    IF SAMP.IsPlayerConnected(22@)
    THEN
        IF 1@ = SAMP.GetActorHandleByPlayerID(22@)
        THEN
            0B37: samp 16@ = get_player_color 22@
            IF 16@ == COLOR
            THEN
            23@ += 1
            END
        END
    END
END
if 4@ == 1
then
    if 23@ == 0
    then
    03F0: enable_text_draw 1
    format 24@ "Wanted Players: %d" 23@
    0AA8: call_function_method 6946896 struct 12694336 num_params 1 pop 0 'CRED002' 17@
    0AA5: call 7439872 num_params 2 pop 2 17@ 24@
    033F: set_text_draw_letter_size 0.33 1.2
    081C: draw_text_outline 1 RGBA 0 0 0 255
    0340: set_text_draw_RGBA 255 255 255 255
    0349: set_text_draw_font 1
    03E4: set_text_draw_align_right 1
    033E: set_draw_text_position 375.0 430.0 GXT 'CRED002'
    23@ = 0
    else
    03F0: enable_text_draw 1
    format 24@ "Wanted Players: %d" 23@
    0AA8: call_function_method 6946896 struct 12694336 num_params 1 pop 0 'CRED002' 17@
    0AA5: call 7439872 num_params 2 pop 2 17@ 24@
    033F: set_text_draw_letter_size 0.33 1.2
    081C: draw_text_outline 1 RGBA 0 0 0 255
    0340: set_text_draw_RGBA 227 51 109 255
    0349: set_text_draw_font 1
    03E4: set_text_draw_align_right 1
    033E: set_draw_text_position 375.0 430.0 GXT 'CRED002'
    23@ = 0
    end  
end
 

BlackKnigga

Известный
BH Team
922
445
Why isn't taking the red color? On SF 5.2 the label is working, but on SF 5.3 isn't working......
PHP:
const
COLOR = 0xFFE3336D // here is the const
end

:copcmd_main
WAIT 0
    IF 31@ == 1
    THEN
        FOR 0@ = 0 to 999
            IF SAMP.IsPlayerConnected(0@)
            THEN
                IF 1@ = SAMP.GetActorHandleByPlayerID(0@)
                THEN
                    0B37: samp 16@ = get_player_color 0@
                    IF 16@ == COLOR
                    THEN
                    IF
                    056D:   actor 1@ defined
                    THEN 0AF9: samp say_msg "/find %d" 0@
                    0AF9: samp say_msg "/mdc %d" 0@
                    WAIT 1000
                    13@ += 1
                    END
                END
            END
        END
    END
        IF 14@ == 0
        then
        wait 0
        else
        chatmsg "[CopCMD]: {FF8000}Have found %d wanted players." -1 13@
        13@ = 0
        end
        31@ = 0
    END
FOR 22@ = 0 to 999
    IF SAMP.IsPlayerConnected(22@)
    THEN
        IF 1@ = SAMP.GetActorHandleByPlayerID(22@)
        THEN
            0B37: samp 16@ = get_player_color 22@
            IF 16@ == COLOR
            THEN
            23@ += 1
            END
        END
    END
END
if 4@ == 1
then
    if 23@ == 0
    then
    03F0: enable_text_draw 1
    format 24@ "Wanted Players: %d" 23@
    0AA8: call_function_method 6946896 struct 12694336 num_params 1 pop 0 'CRED002' 17@
    0AA5: call 7439872 num_params 2 pop 2 17@ 24@
    033F: set_text_draw_letter_size 0.33 1.2
    081C: draw_text_outline 1 RGBA 0 0 0 255
    0340: set_text_draw_RGBA 255 255 255 255
    0349: set_text_draw_font 1
    03E4: set_text_draw_align_right 1
    033E: set_draw_text_position 375.0 430.0 GXT 'CRED002'
    23@ = 0
    else
    03F0: enable_text_draw 1
    format 24@ "Wanted Players: %d" 23@
    0AA8: call_function_method 6946896 struct 12694336 num_params 1 pop 0 'CRED002' 17@
    0AA5: call 7439872 num_params 2 pop 2 17@ 24@
    033F: set_text_draw_letter_size 0.33 1.2
    081C: draw_text_outline 1 RGBA 0 0 0 255
    0340: set_text_draw_RGBA 227 51 109 255
    0349: set_text_draw_font 1
    03E4: set_text_draw_align_right 1
    033E: set_draw_text_position 375.0 430.0 GXT 'CRED002'
    23@ = 0
    end 
end
Because "red" can be called not only 0xFFE3336D?
Check that get_player_color returns
 

D3.Pheonix

🎹
Модератор
2,819
1,597
Okay, i have tried something, but I can't get this to work... Well, RIP with this, sorry for disturbing.
Maybe incorrect value in constant ?
1) get code of red colored nickname by 0b37 opcode
2) then set constant value of red color, returned by 0b37
CLEO:
// it's not a code, just example
set your nickname color to red by server command or another way
0B2B: samp 6@ = get_player_id_by_actor_handle $PLAYER_ACTOR // get value of RED

/////////

const
COLOR = (value from 6@)
end
 
Последнее редактирование:

Kristyan

Известный
165
16
Maybe incorrect value in constant ?
1) get code of red colored nickname by 0b37 opcode
2) then set constant value of red color, returned by 0b37
CLEO:
// it's not a code, just example
set your nickname color to red by server command or another way
0B2B: samp 6@ = get_player_id_by_actor_handle $PLAYER_ACTOR // get value of RED

/////////

const
COLOR = (value from 6@)
end
OMG, it was just typed wrong here in const
COLOR = 0xFFE3336D > COLOR = 0xe3336d
 

Caxei

Известный
87
3
Как можно реализовать это:
При нажатии на ПКМ и прицеливании на игрока (треугольник над головой) и нажатии левого alt вводились 5 команд с его id с задержкой пол секунды?
Например, ПКМ + Alt = /as id, /ad id, /ac id, /ea id, /dd id
 

Caxei

Известный
87
3
Активация чит-кодом "AUS", может кто поменять на активацию командой /as ?
 

Вложения

  • AutoShot.cs
    19.8 KB · Просмотры: 6

serhiyrubin

Известный
396
106
Активация чит-кодом "AUS", может кто поменять на активацию командой /as ?
Переписал код как мне привычно, активация командой /as
Код:
{$CLEO}
{$INCLUDE SF}
0000:
if not 0@ = Samp.Base()                                                                                  
then 0A93:
end

repeat
wait 0
until Samp.Available()

0B34: samp register_client_command "as" to_label @cmd

while true
wait 0
    if 1@ == 1
    then
        if key_down 2
        then
        0470: 2@ = actor $PLAYER_ACTOR current_weapon
        call @Noname_395 1 2@ 3@
            if 3@ == 1
            then
            call @Noname_230 1 8
            end
        end
    end
end

:cmd
0B12: 1@ = 1@ XOR 1
if 1@ == 1
then print "AutoShot~n~~g~Enabled" 1000
else print "AutoShot~n~~r~Disabled" 1000
end
cmdret


:Noname_395
call @Noname_265 2 0@ $PLAYER_ACTOR 9@
Actor.StorePos($PLAYER_ACTOR, 0@, 1@, 2@)
0AA6: call_method 5327216 struct 11989032 num_params 6 pop 0 3@v 6@v 2@ 1@ 0@ 1.0
0AA6: call_method 5327216 struct 11989032 num_params 6 pop 0 6@v 10@v 2@ 1@ 0@ 9@
if 86BD:   not no_obstacles_between 3@ 4@ 5@ and 6@ 7@ 8@ solid 0 car 0 actor 1 object 0 particle 0
then 10@ = 1
else 10@ = 0
end
ret 1 10@

:Noname_265
0A96: 2@ = actor 1@ struct
2@ += 1836
0A8D: 2@ = read_memory 2@ size 1 virtual_protect 0
0085: 1@ = 0@ // (int)
if 2@ == 2
then 1@ += 25
end
if 2@ == 3
then 1@ += 36
end
1@ *= 112
1@ += 13150904
1@ += 8
0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0
ret 1 1@

:Noname_230
1@ = 12006488
005A: 1@ += 0@ // (int)
0A8C: write_memory 1@ size 1 value 255 virtual_protect 0
ret 0
 

Вложения

  • AutoShot.cs
    19.2 KB · Просмотры: 11