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

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Вопрос такой, нажимаю на alt+2 , он пишет автомат. /capture,после открывается диалоговое окно, где выбирает он 3 пункт. Все работает, но можно ли как то ускорить вот это "Открывается диалоговое окно и он быстро чтоб выбирал 3 пункт"?


CLEO:
{$CLEO}
{$NOSOURCE}
0000: NOP

repeat
wait 0
until samp.Available()

WHILE TRUE
wait 0
    IF AND
    0AB0:   key_pressed 18 {alt 18}
    0AB0:   key_pressed 50 {2 52}
    THEN
    0AF9: samp say_msg "/capture"
    wait 0
        if 0B4C:  samp is_dialog_active -1
        then
        0B49: samp set_current_dialog_list_item 2
        0B47: samp close_current_dialog_with_button 1
        end
    END
END
CLEO:
{$CLEO}{$NOSOURCE}
0000:

while not Samp.Available()
    wait 0
end

while true
    wait 0
    if and
    0AB0:   key_pressed 18 {alt 18}
    0AB0:   key_pressed 50 {2 52}
        then
        say "/capture"

        repeat
        wait 0
        until 0B4C:  samp is_dialog_active -1
           
        0B49: samp set_current_dialog_list_item 2
        0B47: samp close_current_dialog_with_button 1
    end
end
 

Kristyan

Известный
165
16
Как можно чтобы текст из chatmsg выполнился только один раз?
CLEO:
repeat
    wait 0
until SAMP.Available()




WHILE TRUE
WAIT 0
            if
            call @is_cp_active_LS 0
            then
                call @get_cp_pos_LS 0 0@ 1@ 2@
            if and
            0@ ==  1554.532104
            1@ ==  -1675.580688
            2@ ==  16.195313
            then
                018C: play_sound 1052 at 0.0 0.0 0.0
                chatmsg "text1" -1
        else
            if and
            0@ ==  2287.257813
            1@ ==  2431.447998
            2@ ==  10.820302
            then
                018C: play_sound 1052 at 0.0 0.0 0.0
                chatmsg "text2" -1
        else
            if and
            0@ ==  -1605.046143
            1@ ==  711.501038
            2@ ==  13.867177
            then
                018C: play_sound 1052 at 0.0 0.0 0.0
                chatmsg "text3" -1
                end
            end
        end
    end
end
end



:is_cp_active_LS
0AA2: 0@ = loadlib "samp.dll"
0A8E: 1@ = 0@ + 0x21A10C
0A8D: 1@ = readMem 1@ sz 4 vp 0
1@ += 0x24
0A8D: 1@ = readMem 1@ sz 4 vp 0
IF 1@ == TRUE
THEN 0485:  return_true
ELSE 059A:  return_false
END
0AA3: freelib 0@
0AB2: ret 0

:get_cp_pos_LS
0AA2: 0@ = loadlib "samp.dll"
0A8E: 1@ = 0@ + 0x21A10C
0A8D: 1@ = readMem 1@ sz 4 vp 0
1@ += 0xC
0A8D: 2@ = readMem 1@ sz 4 vp 0
1@ += 0x4
0A8D: 3@ = readMem 1@ sz 4 vp 0
1@ += 0x4
0A8D: 4@ = readMem 1@ sz 4 vp 0
0AA3: freelib 0@
0AB2: ret 3 2@ 3@ 4@
 

SpnKO

Известный
56
14
Код:
{$CLEO}
0000:
:Init
wait 1000
if
0AFA:  is_samp_available
jf @Init
0B34: samp register_client_command "reloadcleo" to_label @reload
0AC8: 1@ = allocate_memory_size 260
jump @StringCheck

:StringCheck
wait 0
for 31@ = 90 to 99
0B75: samp get_chat_string 31@ text_to 1@ prefix_to 3@ color_to 4@ prefix_color_to 5@
if
0C18: 6@ = strstr string1 1@ string2 "Hey buddy, you still with us? Type /hello"
then
        wait 200
        jump @ScanString
    end
    jump @StringCheck
 
 
:ScanString
if
0AD4: 8@ = scan_string 1@ format "Hey buddy, you still with us? Type /hello %d to let us know!" 9@
0AF8: samp add_message_to_chat 9@ color 0xFFFFFF
jump @StringCheck


:reload
0A92: create_custom_thread "yeshello.cs"
0A93: end_custom_thread
0B43: samp cmd_ret

Что не правильно делаю?
 
У

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

Гость
Подскажите опкод для смены цвета машины

Я кстати часто замечаю, что есть файлы .sf. В какой программе можно это сделать?
 
Последнее редактирование модератором:

grandpafromghetto

НАСТАЯЩИЙ ДАГИСТАНИЦ
Проверенный
335
119
CLEO:
{$CLEO}
0000:

repeat
wait 0
until samp.Available()

:cheat_code
wait 0
0ADC:   test_cheat "FAKEPIC"
jf @cheat_code

:fake_pickup
wait 0
04C4: store_coords_to 0@ 1@ 2@ from_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0
0247: load_model 19133
pickup.Create(19133, 19133, 3, 0@, 1@, 2@)
end_thread

помогите, создается пикап, но он сразу же пропадает
 

Vovich

HOT
Проверенный
717
197
Как можно чтобы текст из chatmsg выполнился только один раз?
CLEO:
repeat
    wait 0
until SAMP.Available()




WHILE TRUE
WAIT 0
            if
            call @is_cp_active_LS 0
            then
                call @get_cp_pos_LS 0 0@ 1@ 2@
            if and
            0@ ==  1554.532104
            1@ ==  -1675.580688
            2@ ==  16.195313
            then
                018C: play_sound 1052 at 0.0 0.0 0.0
                chatmsg "text1" -1
        else
            if and
            0@ ==  2287.257813
            1@ ==  2431.447998
            2@ ==  10.820302
            then
                018C: play_sound 1052 at 0.0 0.0 0.0
                chatmsg "text2" -1
        else
            if and
            0@ ==  -1605.046143
            1@ ==  711.501038
            2@ ==  13.867177
            then
                018C: play_sound 1052 at 0.0 0.0 0.0
                chatmsg "text3" -1
                end
            end
        end
    end
end
end



:is_cp_active_LS
0AA2: 0@ = loadlib "samp.dll"
0A8E: 1@ = 0@ + 0x21A10C
0A8D: 1@ = readMem 1@ sz 4 vp 0
1@ += 0x24
0A8D: 1@ = readMem 1@ sz 4 vp 0
IF 1@ == TRUE
THEN 0485:  return_true
ELSE 059A:  return_false
END
0AA3: freelib 0@
0AB2: ret 0

:get_cp_pos_LS
0AA2: 0@ = loadlib "samp.dll"
0A8E: 1@ = 0@ + 0x21A10C
0A8D: 1@ = readMem 1@ sz 4 vp 0
1@ += 0xC
0A8D: 2@ = readMem 1@ sz 4 vp 0
1@ += 0x4
0A8D: 3@ = readMem 1@ sz 4 vp 0
1@ += 0x4
0A8D: 4@ = readMem 1@ sz 4 vp 0
0AA3: freelib 0@
0AB2: ret 3 2@ 3@ 4@
Добавь себе дополнительную переменную, которой будешь присваивать значение при активации, и обнулять его когда действие будет выполнятся, а в условии укажи эту переменную, после того как отправляешь сообщение, обнуляй ее, и действие не повторится, пока ты опять не присвоишь нужное значение переменной.

Или допустим, напиши себе функцию которая будет выводить сообщение, встал на координаты - вызвал функцию, вернула тру значит присвоил значение переменной, допустим 1, дальше пока переменная не 0 и не больше 1 оно ничего не делает с данным участком кода, а ищет условия дальше, допустим нашло другие координаты и присвоило 2, все теперь этот участок в ожидании, а оно проверяет все остальные координаты.
Ну как то так, если словами, думаю ты суть уловил. Если нужен пример, пиши.
 
У

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

Гость
Скажите простенький опкод для смены цвета машины
 

MArkoas_Gonzaleees

Новичок
22
0
Ребят, что это за опкод? Помогите, объясните что и как, где его ипользуют. В общем, что это и с чем его едят
03CB: set_rendering_origin_at 1@ 2@ 3@
 

romanblinov2013

RB_PRO
Проверенный
212
196
Ребят, что это за опкод? Помогите, объясните что и как, где его ипользуют. В общем, что это и с чем его едят
03CB: set_rendering_origin_at 1@ 2@ 3@
GTAG :: OpcodeDB - Opcode 03CB(https://gtagmodding.com/opcode-database/opcode/03CB/)
Там всё предельно ясно написано.
Достаточно параметры погонять и у тебя всё получится! :)
 
1,417
1,030
В чем проблема? Зажму alt+2 скрипт пропишет /capture ну итд, а когда 2 раз зажму, то ничего не происходит.


CLEO:
{$CLEO}{$NOSOURCE}
0000:

while not Samp.Available()
    wait 0
end
while true
    wait 0
    if and
    0AB0:   key_pressed 18 {alt 18}
    0AB0:   key_pressed 50 {2 52}
        then
        say "/capture"

        repeat
        wait 0
        until 0B4C:  samp is_dialog_active -1
        
        0B49: samp set_current_dialog_list_item 2
        0B47: samp close_current_dialog_with_button 1
    end
end
потому что скрипт ждет появления диалога
 
У

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

Гость
Почему у меня цвета не меняются, а сменяется на 1 цвет и следующие изменения не происходят?

CLEO:
{$CLEO   .cs}
0000:

:av
wait 0
0AFA:  is_samp_available
jf @av
0B34: samp register_client_command "cheatallRGB" to_label @1
0B34: samp register_client_command "cheatallRGBOFF" to_label @2
0BDE: pause_thread 0


:1
wait 0
if
00DF:   actor $PLAYER_ACTOR driving
jf @1
0811: 0@ = actor $PLAYER_ACTOR used_car
0229: set_car 0@ primary_color_to 1 secondary_color_to 211
wait 2000
0229: set_car 0@ primary_color_to 2 secondary_color_to 1
wait 1000
0229: set_car 0@ primary_color_to 3 secondary_color_to 2
wait 2000
0229: set_car 0@ primary_color_to 4 secondary_color_to 3
wait 1000
0229: set_car 0@ primary_color_to 5 secondary_color_to 4
wait 3000
0229: set_car 0@ primary_color_to 6 secondary_color_to 5
0B43: samp cmd_ret


:2
wait 0
0229: set_car 0@ primary_color_to 1 secondary_color_to 211
0B43: samp cmd_ret
 

MArkoas_Gonzaleees

Новичок
22
0
Ребята, объясните мне пожалуйста. что в этом коде написано? Подробно
Код:
while true
wait 0
    if
    0@ == 1
    then
        03CB: set_rendering_origin_at 1@ 2@ 3@
        04E4: refresh_game_renderer_at 1@ 2@
        02CE: 8@ = ground_z_at 1@ 2@ 999.0
        8@ += 30.0
        0AE2: 4@ = random_vehicle_near_point 5@ 6@ 7@ in_radius 15.0 find_next 0 pass_wrecked 1 // add to mission cleanup
        00AB: put_car 4@ at 1@ 2@ -80.0
        wait 100
        0362: remove_actor $PLAYER_ACTOR from_car_and_place_at 1@ 2@ 8@
        Actor.PutAt($PLAYER_ACTOR,1@,2@,-999.0)
        wait 0
        02CE: 8@ = ground_z_at 1@ 2@ 999.0
        Actor.PutAt($PLAYER_ACTOR,1@,2@,8@)
    end