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

romacaddy

Известный
Проверенный
234
206
Как узнать ID 3D текста?
может так получится, прогонять все 3д тексты через for, проверять их на то, что они найдены, после получить из них информацию и сравнить сроку 3д текста, со строкой, которая должна быть в нужном 3д тексте, надеюсь ты понял.
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,962
Помогите пожалуйста, спасибо автору мода
DarkP1xel
за данный cleo скрипт, поиск тыкв на Diamond RP.
Дело в том что ищет скрипт модель по пикапу, а я хочу что бы искала по объекту, помогите пожалуйста, я не представляю как это сделать.

b14bd3bba90c4153a0590c99715da86c.png


Код:
{$CLEO}
0000:

REPEAT
0001: 0
UNTIL 0AFA:
0BB9: samp 0@ = get_pickup_pool_ptr

WHILE TRUE
0001: 0

    FOR 1@ = 0 TO {MAX_PICKUPS}4096 [STEP = 1] 
        IF 0B51: samp 2@ = pickup_handle_by_id 1@
        THEN
        0A90: 2@ = 1@ * 20
        000A: 2@ += 61444
        000A: 2@ += 0@ // stPickup
        0A8D: 3@ = read_memory 2@ size 4 virtual_protect TRUE // iModelID
            IF 0039:   3@ == 19320
            THEN
            0C0C: 3@ = struct 2@ offset 8 size 4 // X
            0C0C: 4@ = struct 2@ offset 12 size 4 // Y
            0C0C: 5@ = struct 2@ offset 16 size 4 // Z
                IF 00C2:   sphere_onscreen 3@ 4@ 5@ radius 5.0
                THEN
                0B55: convert_3D_coords 3@ 4@ 5@ to_screen 3@ 4@
                00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
                0B55: convert_3D_coords 5@ 6@ 7@ to_screen 5@ 6@
                0B68: render draw_line_point1 5@ 6@ point2 3@ 4@ width 1 color 0xFFFFA500
                END
            END
        END
    END
 
END

Вот так например.

CLEO:
{$CLEO}
0000:

WHILE 8AFA: NOT SAMP_LOADED
0001: 0
END

WHILE TRUE
0001: 0
    IF 0256:   player $PLAYER_CHAR defined
    THEN 00A0: store_actor $PLAYER_ACTOR position_to 0@ 1@ 2@
        WHILE 0AE3: 3@ = random_object_near_point 0@ 1@ 2@ in_radius 1000.0 find_next TRUE
            IF 09CC:   object 3@ model_is {ModelID}420
            THEN
                IF 02CC:   object 3@ bounding_sphere_visible
                THEN
                03F0: enable_text_draw TRUE
                01BB: store_object 3@ position_to 3@ 4@ 5@
                0B55: convert_3D_coords 0@ 1@ 2@ to_screen 6@ 7@
                0B55: convert_3D_coords 3@ 4@ 5@ to_screen 3@ 4@
                0B68: render draw_line_point1 6@ 7@ point2 3@ 4@ width 1 color 0xFFFFA500
                END          
            END
        END
    END
END

// By DarkP1xel


Как узнать ID 3D текста?
CLEO:
{$CLEO}
0000:

WHILE 8AFA: NOT SAMP_LOADED
0001: 0
END

WHILE TRUE
0001: 0
    IF 0C89:  key_just_pressed {ID Клавиши}420
    THEN
  
        FOR 0@ = 0 TO {MAX_3DTEXTS}2048 [STEP = 1]
            IF 0B46:     samp 3d_text 0@ defined
            THEN
            0C46: samp get_3d_text_info_by_id 0@ string_ptr 1@ color 2@ position 3@ 4@ 5@ view_distance 6@ show_behind_walls 7@ attached_to_player 8@ attached_to_vehicle 9@
            0B78: _log "ID: %d | Text: %s" | {ID}0@ {Text}1@ |
            END
        END
  
    END
END

// By DarkP1xel
 
  • Нравится
Реакции: SpawnPro

SpawnPro

Новичок
16
0
О
Вот так например.

CLEO:
{$CLEO}
0000:

WHILE 8AFA: NOT SAMP_LOADED
0001: 0
END

WHILE TRUE
0001: 0
    IF 0256:   player $PLAYER_CHAR defined
    THEN 00A0: store_actor $PLAYER_ACTOR position_to 0@ 1@ 2@
        WHILE 0AE3: 3@ = random_object_near_point 0@ 1@ 2@ in_radius 1000.0 find_next TRUE
            IF 09CC:   object 3@ model_is {ModelID}420
            THEN
                IF 02CC:   object 3@ bounding_sphere_visible
                THEN
                03F0: enable_text_draw TRUE
                01BB: store_object 3@ position_to 3@ 4@ 5@
                0B55: convert_3D_coords 0@ 1@ 2@ to_screen 6@ 7@
                0B55: convert_3D_coords 3@ 4@ 5@ to_screen 3@ 4@
                0B68: render draw_line_point1 6@ 7@ point2 3@ 4@ width 1 color 0xFFFFA500
                END         
            END
        END
    END
END

// By DarkP1xel



CLEO:
{$CLEO}
0000:

WHILE 8AFA: NOT SAMP_LOADED
0001: 0
END

WHILE TRUE
0001: 0
    IF 0C89:  key_just_pressed {ID Клавиши}420
    THEN
 
        FOR 0@ = 0 TO {MAX_3DTEXTS}2048 [STEP = 1]
            IF 0B46:     samp 3d_text 0@ defined
            THEN
            0C46: samp get_3d_text_info_by_id 0@ string_ptr 1@ color 2@ position 3@ 4@ 5@ view_distance 6@ show_behind_walls 7@ attached_to_player 8@ attached_to_vehicle 9@
            0B78: _log "ID: %d | Text: %s" | {ID}0@ {Text}1@ |
            END
        END
 
    END
END

// By DarkP1xel

громное тебе спасибо ! Репутацию уже не могу давать, лимит.
 

romanblinov2013

RB_PRO
Проверенный
212
196
может так получится, прогонять все 3д тексты через for, проверять их на то, что они найдены, после получить из них информацию и сравнить сроку 3д текста, со строкой, которая должна быть в нужном 3д тексте, надеюсь ты понял.
Понял. Спасибо) Сейчас напишу
 

xSpiridon

Участник
74
21
Что тут не так? Пытался сделать вывод ника игрока без нижнего подчеркивания..
Код:
{$CLEO}
0000:

wait 2000

alloc 2@ 32
alloc 3@ 32
alloc 4@ 32

while true
wait 0
if and
0AD2: 0@ = player $PLAYER_CHAR targeted_actor
0AB0: 51
then
    0B2B: samp 1@ = get_player_id_by_actor_handle 0@
    0B36: samp 2@ = get_player_nickname 1@
    0AD4: 22@ = scan_string 2@ format "%s_%s" 3@ 4@
    0AD3: 2@ = format "%s %s" 3@ 4@
    0AF8: "Ник: %s" color 14072910 2@        
    end
end
end
 

Moonlight_Ru

Известный
66
21
Подскажите, как из определённой строки чата выделить определённое число?
Вот например строка в чате: ">> ПМ от Nickname(123): Привет"
Как из этой строки взять ID игрока (123) и занести его в переменную?

Пробовал так.
Код:
repeat
wait 0
        0B75: samp get_chat_string 99 text_to 1@ prefix_to 2@ color_to 3@ prefix_color_to 4@
        wait 0
        if
            0C18: 0@ = strstr string1 1@ string2 "говорит: тест"
            then
                0C2F: 0@ = strtol 1@ radix 10 store_end_to 5@
                0AF8: samp add_message_to_chat "d: %d | s: %s" color -1 0@ 5@
            end
until key_down 123
Пишу в чат "тест", сервер отправляет в чат сообщение: "Nickname[123] говорит: тест"
Скрипт отправляет в чат сообщение: "d: 0 | s: Nickname[123] говорит: тест"

Пробовал так.
Код:
repeat
wait 0
        0B75: samp get_chat_string 99 text_to 1@ prefix_to 2@ color_to 3@ prefix_color_to 4@
        wait 0
        if
            0C18: 0@ = strstr string1 1@ string2 "говорит: тест"
            then
                0AD4: 5@ = scan_string 1@ format "%d" 0@
                0AF8: samp add_message_to_chat "d: %d" color -1 0@
            end
until key_down 123
Пишу в чат "тест", сервер отправляет в чат сообщение: "Nickname[123] говорит: тест"
Скрипт отправляет в чат сообщение: "d: 0"

Исходя из моих скудных познаний в CLEO, хотя бы первый способ должен работать. Что я не так делаю? Помогите пожалуйста.
 

k0lenval

Известный
133
110
Здравствуйте! Подскажите, ребята, есть ли опкод, который определяет условие проигрывание определенного звука?
 

333izo

Новичок
3
0
Здрасьте .Скажите,пожалуйсто, Как сделать,чтоб скрипт брал инфу с INI файла про информацию пароля ? Мне для авторекконекта нужно.