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

Kaktyc007

Известный
166
11
а как мне найти в чате число, которое я написал после команды?
объясню по подробнее, делаю МПшку, загадываю число и пишу команду /find [число], мне летят смс и кто угадает мое загаданное число побеждает в МП. Выключение телефона и вывод ника победителя после условия сделал, но не могу сделать рабочее условие
никто не подскажет?
 

hnnssy

Известный
Друг
2,684
2,748
а как мне найти в чате число, которое я написал после команды?
объясню по подробнее, делаю МПшку, загадываю число и пишу команду /find [число], мне летят смс и кто угадает мое загаданное число побеждает в МП. Выключение телефона и вывод ника победителя после условия сделал, но не могу сделать рабочее условие
0C29: 1@ = string1 0@ string2 20@
 

hnnssy

Известный
Друг
2,684
2,748
тогда будут ложные срабатывание на ид рядом ником в квадратных скобках.
я введу /find 867 и может получиться так ....Отправитель: No_Name[867]
почему-то в твоём варианте кода ты об этом не думал
ну отформатируй строку
alloc 21@ 64
memset 21@ 0x0 64
format 21@ "]: %s" 20@
1@ = string1 0@ string2 21@
 

DANIIL XPC

Известный
81
5
Update for this? Dont work corect for sampfuncs 5.4 / cleo 4.3
CLEO:
[CODE]



 {$CLEO}

{$INCLUDE SF}   

0000:

    

while not SAMP.Available()

wait 100

end



////////////////////////////////////////////////////////////

20@ = 0





wait 5000









///////////////////////////////////////////////////////////////



9@ = 0

3@ = -1

26@ = 0           

17@ = 0







0b6d: render 31@ = create_font "Arial" height 10 flags 12

0b6d: render 30@ = create_font "Arial" height 18 flags 13

alloc 29@ 48

alloc 28@ 48

alloc 18@ 48

alloc 25@ 48



 

11@ = 174.0  // POS TEXT





    

0BE1: raknet setup_outcoming_rpc_hook @outRPC   



while true

    wait 0

    

    if 26@ == 1

    then

        if 3@ == 0         

        then

            9@ += 1

            10@ = 430.0

            

            0B60: convert_game_screen_coords 10@ 11@ to_window_screen_coords 12@ 13@

            0b6f: render font 30@ draw_text 28@ pos 12@ 13@ color 0xf00048BA

            0B6C: render 24@ = font 30@ draw_height

            005a: 24@ -= 13@ //error opcode         

            0b6f: render font 31@ draw_text 29@ pos 12@ 24@ color 21@ //ff00ff00

                        

        else

            9@ += 1

            10@ = 248.0

            

            0B60: convert_game_screen_coords 10@ 11@ to_window_screen_coords 12@ 13@     

            0B6B: render 23@ = font 31@ draw_text 29@ length

            0063: 12@ -= 23@

            0b6f: render font 30@ draw_text 18@ pos 12@ 13@ color 0xf0D3212D

            0B6C: render 24@ = font 30@ draw_height

            005a: 24@ -= 13@//error opcode

            0b6f: render font 31@ draw_text 25@ pos 12@ 24@ color 22@

            

        end

        

        if 9@ == 170 //Time

        then

            26@ = 0

        else

        end

    else

    end

 

end

                                



//0BDE: pause_thread 0



:outRPC     

0BE5: raknet 2@ = get_hook_param PARAM_PACKETID

IF 0039: 2@ == RPC_GIVETAKEDAMAGE

THEN

    0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM

    0BE7: raknet 3@ = bit_stream_read 1@ type BS_TYPE_BOOL      //give/take

    0BE7: raknet 4@ = bit_stream_read 1@ type BS_TYPE_SHORT     //Player

    0BE7: raknet 5@ = bit_stream_read 1@ type BS_TYPE_INT       //ammount(FLOAT)

    //0BE7: raknet 6@ = bit_stream_read 1@ type BS_TYPE_INT       //GUN

    //0BE7: raknet 6@ = bit_stream_read 1@ type BS_TYPE_INT       //BodyPart

    //0AF8: samp add_message_to_chat "TAKE %d %.2f" color 0xff0000 4@ 5@ //%.1f

    

    9@ = 0

    17@ = 0

    if and

    not 4@ == 65535

    20@ == 1

    then

        0B20: samp 7@ = actor_handle_by_samp_player_id 4@

        Actor.StorePos($PLAYER_ACTOR, 19@, 27@, 32@)

        Actor.StorePos(7@, 14@, 15@, 16@)

        050A: 0@ = distance_between_XYZ 19@ 27@ 32@ and_XYZ 14@ 15@ 16@

        0092: 0@ = float 0@ to_integer

        if 0@ <= 46

        then

            17@ = 1

        end

    end

    

    // ------------------- DEBUG ---------------------

    //0AF8: samp add_message_to_chat "DISTANCE: %d / ID: %d / DAMAGE: %.2f" color 0xff0000 17@ 4@ 5@

    

    if or

    4@ == 65535

    17@ == 0

    then

        if 3@ == 0

        then

            if SAMP.IsPlayerPaused(4@)

            then

                format 28@ "{B2BEB5}AFK"

            else

                0B20: samp 7@ = actor_handle_by_samp_player_id 4@

                if Actor.Dead(7@)

                then

                    format 28@ "{990000} DEAD"

                else

                    format 28@ "+ %.2f" 5@

                end

            end

            format 29@ ""

        else

            format 18@ "- %.2f" 5@

            format 25@ ""

        end

    else

        if

        3@ == 0

        then

            if SAMP.IsPlayerPaused(4@)

            then

                format 28@ "{B2BEB5}AFK"

            else

                0B20: samp 7@ = actor_handle_by_samp_player_id 4@

                if Actor.Dead(7@)

                then

                    format 28@ "{990000} DEAD"

                else

                    format 28@ "+ %.2f" 5@

                end

            end

            

            if 17@ == 1

            then

                21@ = SAMP.GetPlayerColor(4@)

                0B36: samp 8@ = get_player_nickname 4@

                format 29@ "%s (ID:%d)" 8@ 4@

            else

                format 29@ ""

            end

        else

            format 18@ "- %.2f" 5@

            

            if 17@ == 1

            then

                22@ = SAMP.GetPlayerColor(4@)

                0B36: samp 8@ = get_player_nickname 4@

                format 25@ "%s (ID:%d)" 8@ 4@

            else

                format 25@ ""

            end

        end

    end

    26@ = 1

      

    0BE0: raknet hook_ret true

    ELSE 0BE0: raknet hook_ret TRUE

END
[/CODE]
 

ollydbg

Известный
163
113
how to replace the text of obtained from RPC_SCRCLIENTMESSAGE
modify the text through the bitstream operation codes,it's possible some example ?

without using 0AF8:
 

Lobber

Известный
178
57
Что нужно изменить тут для работоспособности на R3?

:get_my_score
0@ = SAMP.Base()
0@ += 2173496 // 0x26E8DC - оффсет R3 SAMP_INFO_OFFSET

0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
0@ += 983
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
0@ += 32
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
ret 1 0@
 

kin4stat

mq-team
Всефорумный модератор
2,730
4,710
CLEO:
:get_my_score
0@ = SAMP.Base()
0@ += 0x26E8DC

0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
0@ += 0x3DE
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
0@ += 0x08
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
0@ += 0x3ECC
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
ret 1 0@
попробуй
 

Lobber

Известный
178
57
Как можно для библиотеки msvcrt.dll сделать вызов GetClipboardData, используя такую конструкцию?


:mciSendString
0AA2: 25@ = load_library "Winmm.DLL"
0AA4: 26@ = get_proc_address "mciSendStringA" library 25@
0AA7: call_function 26@ num_params 4 pop 0 0 0 0 "Set cdaudio door open wait" 27@
0AA3: free_library 25@
0AB2: ret 0
 

MAHEKEH

Известный
1,989
494
как при вводе одной команды с указанным идом\числом добавлять его в список не перезаписывая?
Можно без .ini пример