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

#Happy

Новичок
7
0
Что из этого цвет,а что шрифт и размер шрифта?

:Noname_36
0001: wait 0 ms
03F0: enable_text_draw 1
0226: 0@ = actor $PLAYER_ACTOR health
03E4: set_text_draw_align_right 1
033F: set_text_draw_letter_size 0.4 0.6
0340: set_text_draw_RGBA 255 255 255 255
081C: draw_text_outline 1 RGBA 0 0 0 0
045A: draw_text_1number 585.0 68.0 GXT 'NUMBER' number 0@ // ~1~
00D6: if
8AB0: not key_pressed 106
004D: jump_if_false @Noname_2
0002: jump @Noname_36
 

AWRage

Активный
642
141
Можно ли как-то получить все ID оружия, которые есть у игрока (у меня).
 

AWRage

Активный
642
141
Что из этого цвет,а что шрифт и размер шрифта?

:Noname_36
0001: wait 0 ms
03F0: enable_text_draw 1
0226: 0@ = actor $PLAYER_ACTOR health
03E4: set_text_draw_align_right 1
033F: set_text_draw_letter_size 0.4 0.6
0340: set_text_draw_RGBA 255 255 255 255
081C: draw_text_outline 1 RGBA 0 0 0 0
045A: draw_text_1number 585.0 68.0 GXT 'NUMBER' number 0@ // ~1~
00D6: if
8AB0: not key_pressed 106
004D: jump_if_false @Noname_2
0002: jump @Noname_36
В цикл это всё не обязательно совать. Размер шрифта 033F:, а тип шрифта:
0349: set_text_draw_font 3
 
  • Нравится
Реакции: #Happy

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,468
Можно ли как-то получить все ID оружия, которые есть у игрока (у меня).
Цикл делаешь крч и с помощью 0491: actor $PLAYER_ACTOR has_weapon 0@ чекаешь
Или через память:
CPed +0x5A0 = [364 bytes] 13 структур CWeaponSlot по 28 байт

WeaponSlot:
Код:
0x0000 | eWeaponType m_Type // Тип оружия
0x0004 | DWORD m_dwState // Статус: 0 - ожидание, 1 - стреляет, 2 - перезарядка
0x0008 | DWORD m_dwAmmoInClip // Патронов в обойме
0x000C | DWORD m_dwTotalAmmo // Патронов всего
0x0010 | DWORD m_dwTimeForNextShot // Время для следующего выстрела (время последнего выстрела + время ожидания)
0x0014 | BYTE _f14
0x0015 | BYTE _f15
0x0016 | BYTE _f16
0x0017 | BYTE _f17
0x0018 | CParticle * m_pParticle // Прикреплённый эффект
 
  • Нравится
Реакции: AWRage

#Happy

Новичок
7
0
При исправлении кнопки активации вылетает ошибка: Неизвестная команда SAMP.Available().


с 113 и 114 меняю на 20
Что делать ?

Код:
{$CLEO .cs}
0000: NOP

repeat
wait 0
until SAMP.Available()

0BE4: raknet setup_incoming_packet_hook @hook_bullet
while true
wait 0
    if 0AB0: 113
    then
        while 0AB0: 113
        wait 0
        end
        0@ = true
        repeat
        wait 0
        until 0AB0: 114
        while 0AB0: 114
        wait 0
        end
    0@ = false
    end
end

:hook_bullet
if 0@ == true
then
0BE5: raknet 7@ = get_hook_param 1
    if
    7@ == 206
    then
    0BE5: raknet 8@ = get_hook_param 0

    2@ = BitStream.GetDataPtr(8@)
    0C0C: 6@ = struct 2@ offset 1 size 2    // Origin ID
    0C0C: 9@ = struct 2@ offset 3 size 1    // Type
    0C0C: 10@ = struct 2@ offset 4 size 2   // Target ID
   
    0C0C: 11@ = struct 2@ offset 6 size 4   // Origin X
    0C0C: 12@ = struct 2@ offset 10 size 4  // Origin Y
    0C0C: 13@ = struct 2@ offset 14 size 4  // Origin Z
   
    0C0C: 14@ = struct 2@ offset 18 size 4  // Target X
    0C0C: 15@ = struct 2@ offset 22 size 4  // Target Y
    0C0C: 16@ = struct 2@ offset 26 size 4  // Target Z
   
    0C0C: 17@ = struct 2@ offset 30 size 4  // Center X
    0C0C: 18@ = struct 2@ offset 34 size 4  // Center Y
    0C0C: 19@ = struct 2@ offset 38 size 4  // Center Z

    0C0C: 20@ = struct 2@ offset 42 size 1  // Weapon ID
    21@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR)

        if
        003B:   10@ == 21@ 
        then
        0BE0: raknet hook_ret 0
        end
    end
end
0BE0: raknet hook_ret 1
 

hnnssy

Известный
Друг
2,684
2,760
При исправлении кнопки активации вылетает ошибка: Неизвестная команда SAMP.Available().


с 113 и 114 меняю на 20
Что делать ?

Код:
{$CLEO .cs}
0000: NOP

repeat
wait 0
until SAMP.Available()

0BE4: raknet setup_incoming_packet_hook @hook_bullet
while true
wait 0
    if 0AB0: 113
    then
        while 0AB0: 113
        wait 0
        end
        0@ = true
        repeat
        wait 0
        until 0AB0: 114
        while 0AB0: 114
        wait 0
        end
    0@ = false
    end
end

:hook_bullet
if 0@ == true
then
0BE5: raknet 7@ = get_hook_param 1
    if
    7@ == 206
    then
    0BE5: raknet 8@ = get_hook_param 0

    2@ = BitStream.GetDataPtr(8@)
    0C0C: 6@ = struct 2@ offset 1 size 2    // Origin ID
    0C0C: 9@ = struct 2@ offset 3 size 1    // Type
    0C0C: 10@ = struct 2@ offset 4 size 2   // Target ID
  
    0C0C: 11@ = struct 2@ offset 6 size 4   // Origin X
    0C0C: 12@ = struct 2@ offset 10 size 4  // Origin Y
    0C0C: 13@ = struct 2@ offset 14 size 4  // Origin Z
  
    0C0C: 14@ = struct 2@ offset 18 size 4  // Target X
    0C0C: 15@ = struct 2@ offset 22 size 4  // Target Y
    0C0C: 16@ = struct 2@ offset 26 size 4  // Target Z
  
    0C0C: 17@ = struct 2@ offset 30 size 4  // Center X
    0C0C: 18@ = struct 2@ offset 34 size 4  // Center Y
    0C0C: 19@ = struct 2@ offset 38 size 4  // Center Z

    0C0C: 20@ = struct 2@ offset 42 size 1  // Weapon ID
    21@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR)

        if
        003B:   10@ == 21@
        then
        0BE0: raknet hook_ret 0
        end
    end
end
0BE0: raknet hook_ret 1
0AFA: is_samp_available
 

SantaBarbara228

Известный
29
4
это просто отображение текста на экране
Я знаю что он текст отображает на экране, но каким раком он попал в гм сквозь скин? При активации никакого текста нету.

0000: NOP

:NONAME_2
wait 10
if and
not Actor.Driving($PLAYER_ACTOR)
$ONMISSION == 0
0AB0: key_pressed 114
else_jump @NONAME_2
00BC: show_text_highpriority GXT 'MMILL2L' time 3000 flag 1
Actor.SetImmunities($PLAYER_ACTOR, 1, 1, 1, 1, 1)
wait 1000

:NONAME_89
wait 10
if and
not Actor.Driving($PLAYER_ACTOR)
$ONMISSION == 0
0AB0: key_pressed 114
else_jump @NONAME_89
00BC: show_text_highpriority GXT 'MMILL2L' time 3000 flag 1
Actor.SetImmunities($PLAYER_ACTOR, 0, 0, 0, 0, 0)
wait 1000
jump @NONAME_2

Это фулл код
 

hnnssy

Известный
Друг
2,684
2,760
Я знаю что он текст отображает на экране, но каким раком он попал в гм сквозь скин? При активации никакого текста нету.

0000: NOP

:NONAME_2
wait 10
if and
not Actor.Driving($PLAYER_ACTOR)
$ONMISSION == 0
0AB0: key_pressed 114
else_jump @NONAME_2
00BC: show_text_highpriority GXT 'MMILL2L' time 3000 flag 1
Actor.SetImmunities($PLAYER_ACTOR, 1, 1, 1, 1, 1)
wait 1000

:NONAME_89
wait 10
if and
not Actor.Driving($PLAYER_ACTOR)
$ONMISSION == 0
0AB0: key_pressed 114
else_jump @NONAME_89
00BC: show_text_highpriority GXT 'MMILL2L' time 3000 flag 1
Actor.SetImmunities($PLAYER_ACTOR, 0, 0, 0, 0, 0)
wait 1000
jump @NONAME_2

Это фулл код
Уверен? Должен появляться текст "OK, you got it.".