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

4el0ve4ik

Известный
Всефорумный модератор
1,548
1,339
1. Тебе надо что бы показывало ID игрока и ник?
2. Ник с _ или без.
3. Как ты хочешь что бы это выглядело? Над его головой или в какой то части экрана? Или в чат?
в чат я уже все замутил, что бы выбивало, без разницы с _ или без, в правом нижнем углу
 

azdsfbzxv

Новичок
73
6
в чат я уже все замутил, что бы выбивало, без разницы с _ или без, в правом нижнем углу
ну я всё же попробовал запилить. Самому интересно было. Работает. только показывает справа внизу и без _

CLEO:
{$CLEO .cs}

0000: NOP
0AC8: 3@ = allocate_memory_size 64
0AC8: 4@ = allocate_memory_size 64
0AC8: 5@ = allocate_memory_size 64
0AC8: 6@ = allocate_memory_size 64
0AC8: 7@ = allocate_memory_size 64
0AC8: 8@ = allocate_memory_size 256

:Noname_1
0001: wait 2500 ms
00D6: if
0AFA:  is_samp_available
004D: jump_if_false @Noname_1
0B6D: render 9@ = create_font "Arial" height 10 flags 12

:Noname_2
0001: wait 0 ms
00D6: if
0AD2: 1@ = player $PLAYER_CHAR targeted_actor //IF and SET
004D: jump_if_false @Noname_2
0B2B: samp 2@ = get_player_id_by_actor_handle 1@
0B36: samp 3@ = get_player_nickname 2@
0C13: strcpy destination 4@ source 3@
0C16: 5@ = strtok string1 4@ string2 "_"
0C18: 6@ = strstr string1 3@ string2 "_"
0C16: 7@ = strtok string1 6@ string2 "_"
00D6: if
8039:   not  6@ == 0
004D: jump_if_false @Noname_3
0AD3: 8@ = format "ID: %d | Name: %s %s" 2@ 5@ 7@
0B6F: render font 9@ draw_text 8@ pos 1600 900 color -1
0002: jump @Noname_2

:Noname_3
0AD3: 8@ = format "ID: %d | Name: %s" 2@ 5@
0B6F: render font 9@ draw_text 8@ pos 1600 900 color -1
0002: jump @Noname_2
 
  • Нравится
Реакции: 4el0ve4ik

4el0ve4ik

Известный
Всефорумный модератор
1,548
1,339
ну я всё же попробовал запилить. Самому интересно было. Работает. только показывает справа внизу и без _

CLEO:
{$CLEO .cs}

0000: NOP
0AC8: 3@ = allocate_memory_size 64
0AC8: 4@ = allocate_memory_size 64
0AC8: 5@ = allocate_memory_size 64
0AC8: 6@ = allocate_memory_size 64
0AC8: 7@ = allocate_memory_size 64
0AC8: 8@ = allocate_memory_size 256

:Noname_1
0001: wait 2500 ms
00D6: if
0AFA:  is_samp_available
004D: jump_if_false @Noname_1
0B6D: render 9@ = create_font "Arial" height 10 flags 12

:Noname_2
0001: wait 0 ms
00D6: if
0AD2: 1@ = player $PLAYER_CHAR targeted_actor //IF and SET
004D: jump_if_false @Noname_2
0B2B: samp 2@ = get_player_id_by_actor_handle 1@
0B36: samp 3@ = get_player_nickname 2@
0C13: strcpy destination 4@ source 3@
0C16: 5@ = strtok string1 4@ string2 "_"
0C18: 6@ = strstr string1 3@ string2 "_"
0C16: 7@ = strtok string1 6@ string2 "_"
00D6: if
8039:   not  6@ == 0
004D: jump_if_false @Noname_3
0AD3: 8@ = format "ID: %d | Name: %s %s" 2@ 5@ 7@
0B6F: render font 9@ draw_text 8@ pos 1600 900 color -1
0002: jump @Noname_2

:Noname_3
0AD3: 8@ = format "ID: %d | Name: %s" 2@ 5@
0B6F: render font 9@ draw_text 8@ pos 1600 900 color -1
0002: jump @Noname_2
Благодарю, всю работу сделал за меня :D
 

4el0ve4ik

Известный
Всефорумный модератор
1,548
1,339
Только зачем тебе такой скрипт. Над головой и так всё показывает. Разве что как ВХ использовать
У меня небольшая задумка есть, кстати можно как то что бы одновременно несколько техтдравов показывалось? я конечно понимаю что скрипт идет поочередно, но малоли есть способ обойти последовательность, или попробывать записать их как функцию может быть? И потом в одном месте вызывать :D
 

azdsfbzxv

Новичок
73
6
У меня небольшая задумка есть, кстати можно как то что бы одновременно несколько техтдравов показывалось? я конечно понимаю что скрипт идет поочередно, но малоли есть способ обойти последовательность, или попробывать записать их как функцию может быть? И потом в одном месте вызывать :D
Что за скрипт хочешь запилить?
 

DarkB1t

Новичок
11
0
Есть ли опкод, который "считывает" цвет ника (из TAB или еще от куда нибудь)?
 

4el0ve4ik

Известный
Всефорумный модератор
1,548
1,339
Есть ли опкод, который "считывает" цвет ника (из TAB или еще от куда нибудь)?
0B37: samp 1@ = get_player_color 0@
0@ -ID игрока
на сколько помню игрок должен быть в твоем стриме

Что за скрипт хочешь запилить?
Лично для себя стату, в чат запилил, теперь зочу разобраться с textdraw и 3D текстом, ибо нужна практика, а идей других нету кроме как модефицировать это дерьмо-нету и я понял свою ошибку, скорее всего памяти не хватало вот и вылетало
я забыл ее выделить)
 
Последнее редактирование модератором:

azdsfbzxv

Новичок
73
6
Каким опкодом перевести слово в нижний регистр? Вот допустим опкод 0ADB: 26@ = car_model 20@ name выводит название авто капсом. Искал опкод для перевода в нижний регистр, но не нашел
 

4el0ve4ik

Известный
Всефорумный модератор
1,548
1,339
сук, крашит или это так нельзя реализовать? xD
CLEO:
:crossstat // stat by crosshair
while true     
wait 0
if 0AFA: is_samp_available
then
            0AD2: 3@ = player 0@ targeted_actor //IF and SET
            004D: jump_if_false @Reloader
            0B2B: samp 7@ = get_player_id_by_actor_handle 3@
            0B25: samp 1@ = get_player_health 7@
            0B26: samp 2@ = get_player_armor 7@
            0470: 4@ = actor 3@ current_weapon
            0B2A: samp 5@ = get_player_ping 7@
            0B65: samp 6@ = player 7@ score
            0AB1: call @get_weapon_name_by_id 1 id 4@ to 4@
            0B36: samp 9@ = get_player_nickname 7@
            0AB1: call @textdraw 7 3@ 7@ 1@ 2@ 4@ 5@ 6@ to 33@
            0AF8: samp add_message_to_chat "Íèê: %s|LVL: %d|HP: %d|AR: %d|P: %d|Weap: %s" color 0xFFFFFF {íèê}9@ {LVL}6@ {HP}1@ {AR}2@ {P}5@ {W}4@
            while 0AD2: 3@ = player 0@ targeted_actor
                wait 0
            end
        end
    end
jump @crossstat


                     
                     
                     
:textdraw
0AC8: 0@ = allocate_memory_size 64
0AC8: 1@ = allocate_memory_size 64
0AC8: 2@ = allocate_memory_size 64
0AC8: 3@ = allocate_memory_size 64
0AC8: 4@ = allocate_memory_size 64
0AC8: 5@ = allocate_memory_size 64
0AC8: 6@ = allocate_memory_size 64
0AC8: 7@ = allocate_memory_size 64
0AC8: 8@ = allocate_memory_size 64
0AC8: 9@ = allocate_memory_size 64
0AC8: 10@ = allocate_memory_size 64
0AC8: 11@ = allocate_memory_size 64
0AC8: 32@ = allocate_memory_size 256
0AC8: 31@ = allocate_memory_size 256
0AC8: 30@ = allocate_memory_size 256


:Noname_1
0001: wait 0 ms
00D6: if
0AFA:  is_samp_available
004D: jump_if_false @Noname_1
0B6D: render 33@ = create_font "Arial" height 10 flags 12

:Noname_2
0001: wait 0 ms                                            
0B36: samp 7@ = get_player_nickname 1@
0C13: strcpy destination 8@ source 7@                       
0C16: 9@ = strtok string1 8@ string2 "_"
0C18: 10@ = strstr string1 7@ string2 "_"
0C16: 11@ = strtok string1 10@ string2 "_"
00D6: if
8039:   not  10@ == 0
004D: jump_if_false @Noname_3
0AD3: 32@ = format "ID: %d | Name: %s %s | LVL: %d" 1@ 9@ 7@ 6@
0B6F: render font 33@ draw_text 32@ pos 1100 400 color -1
0AD3: 31@ = format "HP: %d | AR: %d" 2@ 3@
0B6F: render font 33@ draw_text 31@ pos 1100 410 color -1
0AD3: 30@ = format "Ping: %d | Weapon: %s"
0B6F: render font 33@ draw_text 31@ pos 1100 420 color -1
0002: jump @Noname_2

:Noname_3
0AD3: 32@ = format "ID: %d | Name: %s %s | LVL: %d" 1@ 9@ 7@ 6@
0B6F: render font 33@ draw_text 32@ pos 1100 400 color -1
0AD3: 31@ = format "HP: %d | AR: %d" 2@ 3@
0B6F: render font 33@ draw_text 31@ pos 1100 410 color -1
0AD3: 30@ = format "Ping: %d | Weapon: %s"
0B6F: render font 33@ draw_text 31@ pos 1100 420 color -1
0002: jump @Noname_2
0AB2: ret 1 33@
или где то с переменными напутал? покуда писал запутался уже xD
 

4el0ve4ik

Известный
Всефорумный модератор
1,548
1,339
Конечно запутался, на метках же ссаных написано.
Скажи что ты хочешь чтобы клео делал?
что бы при прицеливании на игрока выводилось через техтдврав стата игрока, хп, бронь, ник, ид, лвл, пинг и там прочая хуетень, а когда не целишься исчезала
 

p1cador

cerf
Проверенный
220
359
что бы при прицеливании на игрока выводилось через техтдврав стата игрока, хп, бронь, ник, ид, лвл, пинг и там прочая хуетень, а когда не целишься исчезала
CLEO:
{$cleo .cs}
{$I SF}
0000:
while not SAMP.Available()
    wait 100
end
                                                              
alloc 0@ 128                                                       //выделить память для текста текстдрава
0C11: memset destination 0@ value 0x0 size 128                     //в начале заполнить ее нулями
0C48: samp textdraw 1337 create 0@ pos 50.0 180.0                  //создать текстдрав
while true
    wait 0
    if 0AD2: 31@ = player $PLAYER_CHAR targeted_actor               //если есть таргет
        then
        0B2B: samp 30@ = get_player_id_by_actor_handle 31@
        0B36: samp 29@ = get_player_nickname 30@     
        0B37: samp 28@ = get_player_color 30@
        if 8B5C:  samp is_player 30@ paused                         //если цель не афк
            then     
            0B25: samp 27@ = get_player_health 30@
            0B26: samp 26@ = get_player_armor 30@
            0B2A: samp 25@ = get_player_ping 30@
            format 0@ "%s[%d] HP:%d AP:%d, %dms" 29@ 30@ 27@ 26@ 25@       //установить формат текста для цели в игре
            else
            format 0@ "%s[%d]" 29@ 30@                                      //установить формат текста для цели в АФК
        end
        0C50: samp textdraw 1337 set_string 0@                              //применить изменения текстдрава
        else
        format 0@ ""                                                        //убрать надписи, когда нет цели
        0C50: samp textdraw 1337 set_string 0@                              //применить изменения текстдрава
    end
end
Но это полный зашквар, реализовывать это через текстдравы то же самое что срать через рот, лучше юзай рендер.