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

DarkL1ght

Новичок
252
112
Помогите. Тпхает все время в воздухе. Можно что-то сделать?
Код:
{$CLEO .cs}
thread "GG"

if not 0@ = SAMP.Base()
then 0A93: end_custom_thread
end
while not SAMP.Available()
wait 100
end

0B34: samp register_client_command "tp" to_label @tp
      
while true
    wait 0
end

:tp
0AB6: store_target_marker_coords_to 0@ 1@ 2@
Actor.PutAt($PLAYER_ACTOR, 0@, 1@, 2@)
SAMP.CmdRet
CLEO:
{$CLEO .cs}
0000: NOP

repeat
wait 0
until Samp.Available()
0b34: "tp" @tp

REPEAT
wait 0
    IF 0@ == 1
        THEN
        IF 0AB6: store_target_marker_coords_to 1@ 2@ 3@
        THEN
        02CE: 3@ = ground_z_at 1@ 2@ 999.0
        Actor.PutAt($PLAYER_ACTOR,1@,2@,3@)
        ELSE
        chatmsg "Не поставлена метка на карте" -1
        END
    0@ = 0
END
until false

:tp
0@ = 1
Samp.CmdRet()
 

NookieONE

Участник
128
1
CLEO:
{$CLEO .cs}
0000: NOP

repeat
wait 0
until Samp.Available()
0b34: "tp" @tp

REPEAT
wait 0
    IF 0@ == 1
        THEN
        IF 0AB6: store_target_marker_coords_to 1@ 2@ 3@
        THEN
        02CE: 3@ = ground_z_at 1@ 2@ 999.0
        Actor.PutAt($PLAYER_ACTOR,1@,2@,3@)
        ELSE
        chatmsg "Не поставлена метка на карте" -1
        END
    0@ = 0
END
until false

:tp
0@ = 1
Samp.CmdRet()
Все равно часть тп в воздухе
 

DarkL1ght

Новичок
252
112
Все равно часть тп в воздухе
CLEO:
{$CLEO .cs}
0000: NOP

repeat
wait 0
until Samp.Available()
0b34: "tp" @tp

REPEAT
wait 0
    IF 0@ == 1
        THEN
        IF 0AB6: store_target_marker_coords_to 1@ 2@ 3@
        THEN    
        04E4: refresh_game_renderer_at 1@ 2@ 3@
        03CB: set_rendering_origin_at 1@ 2@ 3@
        Camera.SetAtPos(1@, 2@, 3@)
        02CE: 3@ = ground_z_at 1@ 2@ 999.0
        Actor.PutAt($PLAYER_ACTOR,1@,2@,3@)
        ELSE
        chatmsg "Не поставлена метка на карте" -1
        END
    0@ = 0
END
until false

:tp
0@ = 1
Samp.CmdRet()
 

NookieONE

Участник
128
1
Почему я не могу совместить в одном скрипте команду и выполнение по нажатию кнопки?
Первое работает, второе - нет.
Отдельно все работает.
 

hnnssy

Известный
Друг
2,684
2,748
Почему я не могу совместить в одном скрипте команду и выполнение по нажатию кнопки?
Первое работает, второе - нет.
Отдельно все работает.
здешние старожилы поговаривают, что если к своему вопросу приложить свой код, с которым возникает проблема, можно получить ответ куда быстрее, ибо редко сии края посещают экстрасенсы
 
У

Удалённый пользователь 126082

Гость
Что вообще нужно тебе?
Почему крашит?
CLEO:
{$CLEO  .cs}
0000:

while not Samp.Available()
    wait 0
end


While True
    IF
       00DF:   actor $PLAYER_ACTOR driving
        Then
        0811: 1@ = actor $PLAYER_ACTOR used_car
        0407: store_coords_to 3@ 4@ 5@ from_car 0@ with_offset 0.0 3.0 3.0
    0AB1: call_scm_func @Save 4 car_handle 0@ XYZ   3@ 4@ 5@

End

:Save
0A97: 25@ = car 0@ struct
    0C0C: 26@ = struct 25@ offset 0x14 size 4
            0C0D: struct 26@ offset 0x30 size 4 = 1@ // X
            0C0D: struct 26@ offset 0x34 size 4 = 2@ // Y
        0C0D: struct 26@ offset 0x38 size 4 = 3@ // Z
    0AB2: ret 0
End
 

Kotovasya

Участник
85
13
В общем, все работает неплохо, но потом что-то идет не так. Суть- из диалога берутся id, чекаются на нахождение в зоне стрима. Если их там нет- записываются в новый диалог. Как заходишь в игру- все работает нормально, но через некоторое время игры начинает не всех "прогульщиков" выводить. Либо выводит вообще через раз. В чём может быть проблема?
CLEO:
{$CLEO}
{$INCLUDE SF}
{0@ - проверка на ввод команды
1@ - название диалога
2@ - указатель на кол-во участников онлайн
3@ - число участников онлайн
4@ - номер шага в цикле                                             
5@ - указатель на ник в диалоге
6@ - указатель на id игрока                                           
7@ - id игрока
8@ - хендл игрока                                                   
9@ - твой id
10@ - текст диалога
11@ - текст одной строки
12@ - кнопка
13@ - номер листа в диалоге
14@ - проверка на нажатие
15@ - проверка на первую строчку в диалоге
}

var
9@: int
7@: int
end

0000:
repeat
    wait 400
until 0AFA:
0B34: samp register_client_command "prog" to_label @check

while true
wait 0
if 0@ == 1
then
    say "/mm"
    repeat
        wait 0
    until 0B4C:  samp is_dialog_active 31
    0BC9: samp send_dialog_response dialog 31 button 1 listitem 2 input ""
    repeat
        wait 0
    until 0B4C:  samp is_dialog_active 38
    0BC9: samp send_dialog_response dialog 38 button 1 listitem 4 input ""
    repeat
        wait 0
    until 0B4C:  samp is_dialog_active 39 
    0B2B: samp 9@ = get_player_id_by_actor_handle $PLAYER_ACTOR
    alloc 1@ 64
    0BD8: samp get_dialog_caption 1@
    if 0C18: 0 = strstr string1 1@ string2 "Участники Онлайн"
    then
        0C2C: 2@ = strrchr 1@ char 0x28
        0C11: memset destination 2@ value 0x0 size 1
        2@++
        0C1A: 3@ = atoi 2@
        3@ -= 1
        alloc 10@ 6048
        for 4@ = 0 to 3@ [step = 1]
            alloc 5@ 64
            0B5B: samp get_listbox_item 4@ text_to 5@
            if 0C18: 0 = strstr string1 5@ string2 "{F6DB6A}"
            then
                0C2C: 6@ = strrchr 5@ char 91
                0C11: memset destination 6@ value 0x0 size 1
                6@++
                0C1A: 7@ = atoi 6@
                0B20: samp 8@ = actor_handle_by_samp_player_id 7@
                if 9@ == 7@
                then
                else
                    if 056D: actor 8@ defined
                    then
                    else
                        if 15@ == 0
                        then
                            alloc 11@ 65
                            0AD3: 11@ = format "%s[%d]%c" 5@ 7@ 0x0A
                            0C15: strcat destination 10@ source 11@
                            15@ = 1
                        else
                            alloc 11@ 65
                            0AD3: 11@ = format "%s[%d]%c" 5@ 7@ 0x0A
                            0C15: strcat destination 10@ source 11@
                        end   
                    end
                    free 5@
                    free 11@
                end
            end
        end
        free 1@
        15@ = 0   
    end
    0@ = 0
    0C11: memset destination 10@ value 0x0 size 1
    :g
    0B3B: samp show_dialog id 125 caption "{FF0000}Прогульщики" text 10@ button_1 "Выговор" button_2 "Закрыть" style DIALOG_STYLE_LIST
    while 14@ == 0
    wait 0
        if 0B3C:  samp is_dialog_responded id 125 button 12@ list_item 13@ input_text 0
        then
            if 12@ == 1
            then
            alloc 5@ 64
                0B5B: samp get_listbox_item 13@ text_to 5@
                0C2C: 6@ = strrchr 5@ char 91
                0C11: memset destination 6@ value 0x0 size 1
                6@++
                0C1A: 7@ = atoi 6@
                free 5@
                say "/warnmu %d Прогул" 7@
                jump @g
            else
                if 12@ == 0
                then
                    14@ = 1
                end
            end   
        end
    end
    free 10@
    14@ = 0   
end
end
                                     
:check
0@ = 1
0B47: samp close_current_dialog_with_button 0
Samp.CmdRet()
 

AMAHACLA

Новичок
44
3
Как написать клео, чтобы он показывал треугольник над головой у педов во время прицеливания, если они в машине, как в случае с мотоциклом и байком?
 
Последнее редактирование:

Terratomorf

Известный
315
58
Почему не работает?
CLEO:
{$CLEO}
{$INCLUDE SF}
0000:

wait 2000

alloc 4@ 256
0c11: memset 4@ 0 256



while true
wait 0
end

0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM
0BE5: raknet 1@ = get_hook_param PARAM_PACKETID
if
1@ == RPC_ScrClientMessage // DWORD color, DWORD strLen, char[] msg
then
    0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_INT  // color
    0BE7: raknet 3@ = bit_stream_read 0@ type BS_TYPE_INT  // strLen
    0C11: memset destination 4@ value 0 size 256
    0BE8: raknet bit_stream 0@ read_array 4@ size 3@ // Text
    0C0F: array 4@ element 3@ = 0x00
///////////////////////////////////////////////////////////
if
0C18: 7@ = strstr string1 4@ string2 "{ffffff}Поздравляем"
then
wait 500
say "/fish"
end
//////////////////////////
end
0BE0: raknet hook_ret true
 
Последнее редактирование модератором:

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.