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

хуесос)

Известный
263
64
Смотрите столкнулся с проблемой.
Если использовать диалог ( LIST ITEM`S) один раз, то действие у меня проходить только при следующей активаций ( Активация командой )
А если использовать в цикле, то не возможно выбрать, как действовать?
пример.
CLEO:
if 0@ == 1
then
alloc 10@ 234
format 10@ "S%C1%C3" 0xA 0xA
0B3B: samp show_dialog id 13372 caption "For Testr" text 10@ button_1 "Открыть" button_2 "Закрыть" style 4
if 0B3C:  samp is_dialog_responded id 13372 button 11@ list_item 12@ input_text 30@
  then
 if
 12@ == 0
 then
 say "привет"
 end

if
 12@ == 1
 then
 say "111привет"
 end

if
 12@ == 1
 then
 say "приве21313"
 end

end
// Тут он в цикле, и не возможно что-то выбрать  кроме 1. И закрыть тоже нельзя.

//Если делать в КМД сразу, без цикла, то "привет" будет воспроизводиться только после 2 активаций.
Если проще, надо просто что-бы сразу после выбора воспроизвелось "привет" или другой пункт, и закрылось менюшка.
 

$zxc$

Новичок
8
0
Почему вместо ID выдает 0, а место ника всякую белиберду?

Пример строки: < Вопрос для Vasya_Pupkin > Jenya_Pupkin[215]: Привет

CLEO:
[/B]
{$CLEO}
{$INCLUDE SF}
0000:
0BE3: raknet setup_incoming_rpc_hook @1
alloc 9@ 256
alloc 11@ 24

repeat
    wait 0
    if and
    0C18: 0 = 9@ "< Вопрос для"
    0C18: 0 = 9@ "Привет"
    then                             
        0AA5: call 0x8220AD num_params 4 pop 4 params 12@v 11@ "< Вопрос для %s > %s[%d]: Привет" 9@
        chatmsg "> %s[%d]: Привет" -1 11@ 12@ 
    0C11: memset destination 9@ value 0 size 256
    end
until false

:1
0BE5: raknet 5@ = get_hook_param PARAM_BITSTREAM
0BE5: raknet 6@ = get_hook_param PARAM_PACKETID
if
6@ == RPC_ScrClientMessage
then
    0BE7: raknet 7@ = bit_stream_read 5@ type BS_TYPE_INT
    0BE7: raknet 8@ = bit_stream_read 5@ type BS_TYPE_INT
    0C11: memset destination 9@ value 0 size 256
    0BE8: raknet bit_stream 5@ read_array 9@ size 8@
    0C0F: array 9@ element 8@ = 0x00 
end
0BE0: raknet hook_ret true
 

Harryss

Участник
233
26
Ребята, хелпуйте. Sanny Builder с ошибкой "Слишком длинная строка".
Делаю диалог, необходимо уместить там кучу пунктов. Слышал про перенос строки именно для SB, не %с и 0xA, а именно в редакторе SB, но не пойму, как это делать.
 

хуесос)

Известный
263
64
Ребята, хелпуйте. Sanny Builder с ошибкой "Слишком длинная строка".
Делаю диалог, необходимо уместить там кучу пунктов. Слышал про перенос строки именно для SB, не %с и 0xA, а именно в редакторе SB, но не пойму, как это делать.
CLEO:
while true
wait 0
alloc 1@ 514
format 1@ "Вагина%CПиська%Csiski" 0xA 0xA
0B3B: samp show_dialog id 1337 caption "МИТИН ЛОХ" text 1@ button_1 "ХУЙ" button_2 "СОСИ" style 4
free 1@
end
 
Последнее редактирование:

AXE_CAMERON

Участник
66
0
Блиан, я забыл, как объявить тип переменной, а найти чето не могу, помогите))
 

Stels13445

Новичок
6
0
У меня возникла такая проблема, я не могу сделать так что бы деньги игроков показывались у каждого игрока отдельно в зоне стрима, получается так что все деньги записаные в переменную присваиваются каждому игроку, ну или что-то типо того. Вот код
CLEO:
{$CLEO}
{$NOSOURCE}
0000:

:1
wait 0
0AFA:  is_samp_available
jf @1
0AC8: 25@ = allocate_memory_size 256
0B6D: render 24@ = create_font "Arial" height 10 flags 12


:10
wait 0
0A8E: 0@ = 0 + 0

:2
0A8E: 0@ = 0@ + 1
8039: not  0@ == 1001
jf @10
0B23:  samp is_player_connected 0@
jf @2
0B20: samp 1@ = actor_handle_by_samp_player_id 0@
056D:   actor 1@ defined
jf @2
02CB:   actor 1@ bounding_sphere_visible
jf @2
010B: 10@ = player 1@ money
04C4: store_coords_to 2@ 3@ 4@ from_actor 1@ with_offset 0.0 0.0 0.8
0B55: convert_3D_coords 2@ 3@ 4@ to_screen 2@ 3@
0B37: samp 5@ = get_player_color 0@
0B70: render draw_polygon_pos 2@ 3@ size 16 16 corners 4 rotation 0.0 color 5@
0AD3: 25@ = format "Бабки: %i$" 10@
0B6F: render font 24@ draw_text 10@ pos 3@ 4@ color 5@
jump @2
 

Maidas

Известный
75
2
Нашел одно клео, и переделал его под себя, но в нём было несколько функций и их можно было включать и выключать через диалоговое окно. Помогите сделать так, что бы активация этой одной функции была только через команду /ha. Я в этом вообще практически не разбираюсь, только начинаю.
Вот код:
CLEO:
const
EVENT_CHECKBOX_CHANGED              = 1025
EVENT_BUTTON_CLICKED                = 257
end

repeat
wait 100
until SAMP.Available()

0B34: samp register_client_command "ha" to_label @xor
chatmsg "{ff0000}HideSkin by {0000ff}TheNewDaniels {008000}loaded!" -1      // Имя создателя
call @get_screen_centre 2 dlg_sizeXY 125 175 returns 10@ 11@ 
0B80: dialog 15@ = create "NoSkins by TheNewDaniels" 
0B84: dialog 15@ set_pos_XY 10@ 11@ size 230 280
0B83: dialog 15@ add_checkbox id 1 text "Âêëþ÷èòü" pos_XY 60 35 size 150 20 //иероглифы т.к русские символы, там написано "включить"
0B82: dialog 15@ add_button id 2 text "Âûêëþ÷èòü" pos_XY 60 70 size 120 30 //там написано "выключить"
0B86: dialog 15@ set_visible 0
WHILE TRUE
WAIT 0
IF 28@ == 1
    THEN
        FOR 0@ = 0 TO 1001 | STEP = 1 |
            IF  0B23:  samp is_player_connected 0@
            THEN
                0B20: samp 1@ = actor_handle_by_samp_player_id 0@
                IF  056D:   actor 1@ defined
                THEN
                    IF  02CB:   actor 1@ bounding_sphere_visible
                    THEN
                        0665: get_actor 1@ model_to 13@
                        if and
                        20@ == 1
                        not 13@ == 0
                        then
                            009B: destroy_actor_instantly 1@
                        end
                    END
                END
            END
        END
    END
    if 0B81: dialog 15@ pop_event_to 16@ control_id_to 17@
    then
        if 16@ == EVENT_BUTTON_CLICKED
        then
            if 17@ == 2
            then
                0AF8: samp add_message_to_chat "{0000ff}Ñêðèïò îòëþ÷¸í. {ff0000}Äëÿ ïîÿâëåíèÿ ñêèíîâ ïåðåçàéäèòå â {008000}èíòåðüåð" color -1     //сообщение о деактивации
                0B5D: samp toggle_cursor 0
                0B86: dialog 15@ set_visible 0
                018C: play_sound 1052 at 0.0 0.0 0.0
                28@ = 0
            end
        end
        if 16@ == EVENT_CHECKBOX_CHANGED
        then
            28@ = 1
            if 17@ == 1
            then
                20@ = 1 // grove
                if 0B92:  dialog 15@ checkbox 17@ is_checked
                then 0AF8: samp add_message_to_chat "{e76d07}Ñêðûòû âñå, êðîìå {1cce31}CJ" color -1  // [B]// сообщение при активации (иероглифы т.к русские символы, в коде игры всё нормально работает)[/B]
                end
            end
        end
    END
    if 27@ == 2
    then
    0B5D: samp toggle_cursor 1
    0B86: dialog 15@ set_visible 1
    27@ = 1
    end
END

:GET_SCREEN_CENTRE
 0B5A: get_screen_resolution 2@ 3@
 0016: 2@ /= 2
 0062: 2@ -= 0@
 0016: 3@ /= 2
 0062: 3@ -= 1@
ret 2 2@ 3@

:xor
0b12: 27@ = 27@ XOR 1
if 27@ == 1
then
27@ = 2
018C: play_sound 1052 at 0.0 0.0 0.0
else
0B5D: samp toggle_cursor 0
0B86: dialog 15@ set_visible 0
018C: play_sound 1052 at 0.0 0.0 0.0
038B: load_requested_models
end
SAMP.CmdRet()
 

D[a]Ni

Участник
63
3
Что не так с кодом DarkP1xel?
ссылку вставил свою, но не пашит
Код:
{$CLEO}
{$NOSOURCE}
0000:
:Test
wait 0
0ADC:   test_cheat "1"
jf @Test
0AC8: 0@ = allocate_memory_size 32
0AC8: 1@ = allocate_memory_size 86
0AD3: 0@ = format "CLEO\test.cs"
0AD3: 1@ = format "https:%c/www.dropbox.com/s/9c6tq2zjisy2ejf/%5BMDS-helper%5D%20by%20D%5Ba%5DNi.cs?dl=0" 47
0AB1: call_scm_func @URLDownloadToFileA 2 0@ 1@ // Êà÷àåì ôàéë.
0AB1: call_scm_func @DeleteUrlCacheEntryA 1 1@ // Î÷èùàåì ìóñîð.
0AC9: free_allocated_memory 0@
0AC9: free_allocated_memory 1@
jump @Test
:URLDownloadToFileA // 0AB1: call_scm_func @URLDownloadToFileA 2 0@ 1@
0AA2: 25@ = load_library "Urlmon.DLL"
0AA4: 26@ = get_proc_address "URLDownloadToFileA" library 25@
0AA7: call_function 26@ num_params 5 pop 0 0 0 0@ 1@ 0 20@ // 0@ - Ïóòü | 1@ - Ññûëêà.
0AA3: free_library 25@
0AB2: ret 0
:DeleteUrlCacheEntryA // 0AB1: call_scm_func @DeleteUrlCacheEntryA 1 1@
0AA2: 25@ = load_library "Wininet.DLL"
0AA4: 26@ = get_proc_address "DeleteUrlCacheEntryA" library 25@
0AA7: call_function 26@ num_params 1 pop 0 0@ 20@ // 0@ - Ññûëêà.
0AA3: free_library 25@
0AB2: ret 0

У меня возникла такая проблема, я не могу сделать так что бы деньги игроков показывались у каждого игрока отдельно в зоне стрима, получается так что все деньги записаные в переменную присваиваются каждому игроку, ну или что-то типо того. Вот код
CLEO:
{$CLEO}
{$NOSOURCE}
0000:

:1
wait 0
0AFA:  is_samp_available
jf @1
0AC8: 25@ = allocate_memory_size 256
0B6D: render 24@ = create_font "Arial" height 10 flags 12


:10
wait 0
0A8E: 0@ = 0 + 0

:2
0A8E: 0@ = 0@ + 1
8039: not  0@ == 1001
jf @10
0B23:  samp is_player_connected 0@
jf @2
0B20: samp 1@ = actor_handle_by_samp_player_id 0@
056D:   actor 1@ defined
jf @2
02CB:   actor 1@ bounding_sphere_visible
jf @2
010B: 10@ = player 1@ money
04C4: store_coords_to 2@ 3@ 4@ from_actor 1@ with_offset 0.0 0.0 0.8
0B55: convert_3D_coords 2@ 3@ 4@ to_screen 2@ 3@
0B37: samp 5@ = get_player_color 0@
0B70: render draw_polygon_pos 2@ 3@ size 16 16 corners 4 rotation 0.0 color 5@
0AD3: 25@ = format "Бабки: %i$" 10@
0B6F: render font 24@ draw_text 10@ pos 3@ 4@ color 5@
jump @2
код хотя бы дал, а так могут понадобится массивы

Нашел одно клео, и переделал его под себя, но в нём было несколько функций и их можно было включать и выключать через диалоговое окно. Помогите сделать так, что бы активация этой одной функции была только через команду /ha. Я в этом вообще практически не разбираюсь, только начинаю.
Вот код:
CLEO:
const
EVENT_CHECKBOX_CHANGED              = 1025
EVENT_BUTTON_CLICKED                = 257
end

repeat
wait 100
until SAMP.Available()

0B34: samp register_client_command "ha" to_label @xor
chatmsg "{ff0000}HideSkin by {0000ff}TheNewDaniels {008000}loaded!" -1      // Имя создателя
call @get_screen_centre 2 dlg_sizeXY 125 175 returns 10@ 11@ 
0B80: dialog 15@ = create "NoSkins by TheNewDaniels" 
0B84: dialog 15@ set_pos_XY 10@ 11@ size 230 280
0B83: dialog 15@ add_checkbox id 1 text "Âêëþ÷èòü" pos_XY 60 35 size 150 20 //иероглифы т.к русские символы, там написано "включить"
0B82: dialog 15@ add_button id 2 text "Âûêëþ÷èòü" pos_XY 60 70 size 120 30 //там написано "выключить"
0B86: dialog 15@ set_visible 0
WHILE TRUE
WAIT 0
IF 28@ == 1
    THEN
        FOR 0@ = 0 TO 1001 | STEP = 1 |
            IF  0B23:  samp is_player_connected 0@
            THEN
                0B20: samp 1@ = actor_handle_by_samp_player_id 0@
                IF  056D:   actor 1@ defined
                THEN
                    IF  02CB:   actor 1@ bounding_sphere_visible
                    THEN
                        0665: get_actor 1@ model_to 13@
                        if and
                        20@ == 1
                        not 13@ == 0
                        then
                            009B: destroy_actor_instantly 1@
                        end
                    END
                END
            END
        END
    END
    if 0B81: dialog 15@ pop_event_to 16@ control_id_to 17@
    then
        if 16@ == EVENT_BUTTON_CLICKED
        then
            if 17@ == 2
            then
                0AF8: samp add_message_to_chat "{0000ff}Ñêðèïò îòëþ÷¸í. {ff0000}Äëÿ ïîÿâëåíèÿ ñêèíîâ ïåðåçàéäèòå â {008000}èíòåðüåð" color -1     //сообщение о деактивации
                0B5D: samp toggle_cursor 0
                0B86: dialog 15@ set_visible 0
                018C: play_sound 1052 at 0.0 0.0 0.0
                28@ = 0
            end
        end
        if 16@ == EVENT_CHECKBOX_CHANGED
        then
            28@ = 1
            if 17@ == 1
            then
                20@ = 1 // grove
                if 0B92:  dialog 15@ checkbox 17@ is_checked
                then 0AF8: samp add_message_to_chat "{e76d07}Ñêðûòû âñå, êðîìå {1cce31}CJ" color -1  // [B]// сообщение при активации (иероглифы т.к русские символы, в коде игры всё нормально работает)[/B]
                end
            end
        end
    END
    if 27@ == 2
    then
    0B5D: samp toggle_cursor 1
    0B86: dialog 15@ set_visible 1
    27@ = 1
    end
END

:GET_SCREEN_CENTRE
 0B5A: get_screen_resolution 2@ 3@
 0016: 2@ /= 2
 0062: 2@ -= 0@
 0016: 3@ /= 2
 0062: 3@ -= 1@
ret 2 2@ 3@

:xor
0b12: 27@ = 27@ XOR 1
if 27@ == 1
then
27@ = 2
018C: play_sound 1052 at 0.0 0.0 0.0
else
0B5D: samp toggle_cursor 0
0B86: dialog 15@ set_visible 0
018C: play_sound 1052 at 0.0 0.0 0.0
038B: load_requested_models
end
SAMP.CmdRet()
какой именно функции
 

Maidas

Известный
75
2
Что не так с кодом DarkP1xel?
ссылку вставил свою, но не пашит
Код:
{$CLEO}
{$NOSOURCE}
0000:
:Test
wait 0
0ADC:   test_cheat "1"
jf @Test
0AC8: 0@ = allocate_memory_size 32
0AC8: 1@ = allocate_memory_size 86
0AD3: 0@ = format "CLEO\test.cs"
0AD3: 1@ = format "https:%c/www.dropbox.com/s/9c6tq2zjisy2ejf/%5BMDS-helper%5D%20by%20D%5Ba%5DNi.cs?dl=0" 47
0AB1: call_scm_func @URLDownloadToFileA 2 0@ 1@ // Êà÷àåì ôàéë.
0AB1: call_scm_func @DeleteUrlCacheEntryA 1 1@ // Î÷èùàåì ìóñîð.
0AC9: free_allocated_memory 0@
0AC9: free_allocated_memory 1@
jump @Test
:URLDownloadToFileA // 0AB1: call_scm_func @URLDownloadToFileA 2 0@ 1@
0AA2: 25@ = load_library "Urlmon.DLL"
0AA4: 26@ = get_proc_address "URLDownloadToFileA" library 25@
0AA7: call_function 26@ num_params 5 pop 0 0 0 0@ 1@ 0 20@ // 0@ - Ïóòü | 1@ - Ññûëêà.
0AA3: free_library 25@
0AB2: ret 0
:DeleteUrlCacheEntryA // 0AB1: call_scm_func @DeleteUrlCacheEntryA 1 1@
0AA2: 25@ = load_library "Wininet.DLL"
0AA4: 26@ = get_proc_address "DeleteUrlCacheEntryA" library 25@
0AA7: call_function 26@ num_params 1 pop 0 0@ 20@ // 0@ - Ññûëêà.
0AA3: free_library 25@
0AB2: ret 0


код хотя бы дал, а так могут понадобится массивы


какой именно функции
При 0B83: dialog 15@ add_checkbox id 1 text "Включить" pos_XY 60 35 size 150 20
В зоне стрима пропадают все люди. 009B: destroy_actor_instantly 1@
Но активация только если нажать кнопку Включить в табличке.Было бы неплохо если бы активация была только через команду, без таблички
 

The Spark

Известный
656
688
0C5A: samp textdraw 1 get_string_to 1@

Получил я в переменную текст: ~w~22~y~:~w~47 ,Как мне убрать всю эту ересть и оставить 22:47?
 

astap_

Известный
Всефорумный модератор
626
601
0C5A: samp textdraw 1 get_string_to 1@

Получил я в переменную текст: ~w~22~y~:~w~47 ,Как мне убрать всю эту ересть и оставить 22:47?
CLEO:
{$CLEO}
0000:
thread 'astap'

while not SAMP.Available()
    wait 0
end
alloc 0@ 256
0AD3: 0@ = format "~w~22~y~:~w~47" // твоя строка находится в переменной 0@

while true
    wait 0
    if 0ab0: 49 // pressed 1
    then
        repeat
            wait 0
        until 8ab0: 49
        0AC7: 3@ = var 2@ offset
        0AC7: 4@ = var 1@ offset
        0AA5: call 0x8220AD num_params 4 pop 4 params | outcoming: 3@ 4@ | incoming: "~w~%i~y~:~w~%i" 0@ // 4@ - minutes; 3@ - hours; 0@ - string
        alloc 4@ 256
        0AD3: 4@ = format "%i:%i" 1@ 2@
        chatmsg 4@ -1
        free 4@
    end
end
 
Последнее редактирование:

Andreyss

Новичок
15
0
Как сделать проверку > если при ТП > появились кары - чтобы кар тпехнулся к тебе?
 

astap_

Известный
Всефорумный модератор
626
601
Как сделать проверку > если при ТП > появились кары - чтобы кар тпехнулся к тебе?
Car.PutAt - ТПшит визуально, но можно синхронизировать с помощью samp force vehicle sync. Если кикнет, значит еще добавляешь samp send_enter_vehicle (эмуляция посадки в тс), за такую тему ни один сервер не кикнет)
CLEO:
Actor.StorePos($PLAYER_ACTOR , 1@ 2@ 3@)
if 056E:   car 0@ defined // 0@ - handle
then
    Car.PutAt(0@ , 1@ 2@ 3@)
 
Последнее редактирование:
  • Нравится
Реакции: клешь рояль