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

loganhackerdff

Известный
868
517
первый раз пробую читать память, как мне считать 0x084C | fRotorSpeed из CAutomobile?
CLEO:
[B]CAutomobile (Автомобили)[/B][/SIZE]
0x0000 | CVehicle        vehicle
0x05A0 | CDamageManager  m_sDamageManager
0x05B8 | CDoor           m_sDoor[6]
0x0648 | RwFrame        *m_pFrame[25]
0x06AC | CPanel          m_sPanel[3]
0x070C | CDoor           m_sSwingingChassis
0x0724 | CColPoint       m_swheelColPoint[4]          // Точки соприкосновения колес автомобиля с поверхностью
0x07D4 | float           wheelsDistancesToGround1[4] // Расстояния между колесами и поверхностью
0x07E4 | float           wheelsDistancesToGround2[4]
0x07F4 | float           _f7F4
0x0804 | DWORD           _f804
0x0808 | DWORD           _f808
0x080C | DWORD           _f80C
0x0810 | BYTE            _f810[24]
0x0828 | DWORD           _f828[4]
0x0838 | BYTE            _f838[16]
0x0848 | DWORD           _f848
0x084C | float           fRotorSpeed              // Скорость вращения ротора (0.22 - ротор при работе)
0x0850 | DWORD           _f850
0x0854 | DWORD           _f854
0x0858 | BYTE            _f858[16]
0x0868 | BYTE            TaxiAvaliable
0x0869 | BYTE            _f869
0x086A | WORD            _f86A
0x086C | WORD            _f86C
0x086E | WORD            _f86E
0x0870 | DWORD           someEndTime
0x0874 | DWORD           someStartTime
0x0878 | DWORD           _f878
0x087C | BYTE            _f87C[28]
0x0898 | float           fHeightAboveRoad
0x089C | float           fRearHeightAboveRoad
0x08A0 | float           _f8A0
0x08A4 | float           fNitroValue
0x08A8 | BYTE            _f8A8[8]
0x08B0 | DWORD           _f8B0
0x08B4 | BYTE            _f8B4[48]
0x08E4 | DWORD           burnTimer
0x08E8 | DWORD           _f8E8
0x08EC | BYTE            _f8EC[96]
0x094C | DWORD           _f94C
0x0950 | DWORD           _f950
0x0954 | float           fForcedHeading
0x0958 | BYTE            _f958[8]
0x0960 | BYTE            numContactWheels
0x0961 | BYTE            allWheelsOnGround
0x0962 | BYTE            _f962
0x0963 | BYTE            _f963
0x0964 | DWORD           _f964
0x0968 | DWORD           _f968[4]
0x0978 | CParticle      *pNitroParticle1
0x097C | CParticle      *pNitroParticle2
0x0980 | BYTE            _f980
0x0981 | BYTE            _f981
0x0982 | WORD            _f982
0x0984 | DWORD           _f984
 
У

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

Гость
первый раз пробую читать память, как мне считать 0x084C | fRotorSpeed из CAutomobile?
CLEO:
[B]CAutomobile (Автомобили)[/B][/SIZE]
0x0000 | CVehicle        vehicle
0x05A0 | CDamageManager  m_sDamageManager
0x05B8 | CDoor           m_sDoor[6]
0x0648 | RwFrame        *m_pFrame[25]
0x06AC | CPanel          m_sPanel[3]
0x070C | CDoor           m_sSwingingChassis
0x0724 | CColPoint       m_swheelColPoint[4]          // Точки соприкосновения колес автомобиля с поверхностью
0x07D4 | float           wheelsDistancesToGround1[4] // Расстояния между колесами и поверхностью
0x07E4 | float           wheelsDistancesToGround2[4]
0x07F4 | float           _f7F4
0x0804 | DWORD           _f804
0x0808 | DWORD           _f808
0x080C | DWORD           _f80C
0x0810 | BYTE            _f810[24]
0x0828 | DWORD           _f828[4]
0x0838 | BYTE            _f838[16]
0x0848 | DWORD           _f848
0x084C | float           fRotorSpeed              // Скорость вращения ротора (0.22 - ротор при работе)
0x0850 | DWORD           _f850
0x0854 | DWORD           _f854
0x0858 | BYTE            _f858[16]
0x0868 | BYTE            TaxiAvaliable
0x0869 | BYTE            _f869
0x086A | WORD            _f86A
0x086C | WORD            _f86C
0x086E | WORD            _f86E
0x0870 | DWORD           someEndTime
0x0874 | DWORD           someStartTime
0x0878 | DWORD           _f878
0x087C | BYTE            _f87C[28]
0x0898 | float           fHeightAboveRoad
0x089C | float           fRearHeightAboveRoad
0x08A0 | float           _f8A0
0x08A4 | float           fNitroValue
0x08A8 | BYTE            _f8A8[8]
0x08B0 | DWORD           _f8B0
0x08B4 | BYTE            _f8B4[48]
0x08E4 | DWORD           burnTimer
0x08E8 | DWORD           _f8E8
0x08EC | BYTE            _f8EC[96]
0x094C | DWORD           _f94C
0x0950 | DWORD           _f950
0x0954 | float           fForcedHeading
0x0958 | BYTE            _f958[8]
0x0960 | BYTE            numContactWheels
0x0961 | BYTE            allWheelsOnGround
0x0962 | BYTE            _f962
0x0963 | BYTE            _f963
0x0964 | DWORD           _f964
0x0968 | DWORD           _f968[4]
0x0978 | CParticle      *pNitroParticle1
0x097C | CParticle      *pNitroParticle2
0x0980 | BYTE            _f980
0x0981 | BYTE            _f981
0x0982 | WORD            _f982
0x0984 | DWORD           _f984
CLEO:
{$CLEO}
0000: NOP

REPEAT
0001: WAIT 0 MS
UNTIL 0AFA:  is_samp_available

WHILE TRUE
0001: WAIT 0 MS
    IF 0ADC:   test_cheat "1"
    THEN
        03C0: 0@ = actor $PLAYER_ACTOR car
        0A97: 0@ = car 0@ struct
        0@ += 0x084C // fRotorSpeed
        0A8D: 0@ = read_memory 0@ size 4 virtual_protect 1
        0AD1: show_formatted_text_highpriority "fRotorSpeed: %f" time 1500 0@
    END
END
wMKRls3.png
 
  • Нравится
Реакции: loganhackerdff

MAHEKEH

Известный
1,990
494
CLEO:
{$CLEO}
0000:

repeat
wait 0
until SAMP.Available()

2@ = Render.CreateFont("Tahoma", 15, 4)
0b34: "blast" @restart

while true
wait 0

if 0B61:  samp is_local_player_spawned
then
    0B60: convert_game_screen_coords 315.0 315.0 to_window_screen_coords 30@ 31@
    for 0@ = 0 to 30
       alloc 1@ 128
       format 1@ "Text%d" 0@
       Render.DrawText(2@, 1@, 30@, 31@, -1)
       31@ -= 20
       free 1@
    end
end

END

:restart
0A92: create_custom_thread "blasthk.cs"
0A93: end_custom_thread
SAMP.CmdRet()

Не благодари.



Не увидел тут пример с массивами, но твой пример мне дал ответ на мой пред. вопрос - https://blast.hk/threads/13410/post-459269

Твой вариант как то можно провернуть с текстом?

alloc 1@ 128
format 1@ "Я люблю"
Render.DrawText(0@, 1@, 3@, 4@, -1)
free 1@
alloc 1@ 128
format 2@ "Есть печенье"
Render.DrawText(0@, 2@, 3@, 4@, -1)
free 2@

т.е если я начну этот перемещать, допустим командой, текст по экрану то, перемещать я конечно буду кашу
либо же делать смд для каждого рендера отдельно, что совсем тупо
проще сказать: как задать отступ между двумя рендерами?
( в идеале не используя под каждый рендер отдельную переменную, если такое ваще реально )
 

Kristyan

Известный
165
16
Не увидел тут пример с массивами, но твой пример мне дал ответ на мой пред. вопрос - https://blast.hk/threads/13410/post-459269

Твой вариант как то можно провернуть с текстом?

alloc 1@ 128
format 1@ "Я люблю"
Render.DrawText(0@, 1@, 3@, 4@, -1)
free 1@
alloc 1@ 128
format 2@ "Есть печенье"
Render.DrawText(0@, 2@, 3@, 4@, -1)
free 2@

т.е если я начну этот перемещать, допустим командой, текст по экрану то, перемещать я конечно буду кашу
либо же делать смд для каждого рендера отдельно, что совсем тупо
проще сказать: как задать отступ между двумя рендерами?
( в идеале не используя под каждый рендер отдельную переменную, если такое ваще реально )

Конечно что можно, но наверное будет как костыли прости.
Код:
{$CLEO}
0000:

repeat
wait 0
until SAMP.Available()

2@ = Render.CreateFont("Tahoma", 15, 4)
0b34: "blast" @restart

while true
wait 0

if 0B61:  samp is_local_player_spawned
then
    0B60: convert_game_screen_coords 315.0 315.0 to_window_screen_coords 30@ 31@
    for 0@ = 0 to 2 //Количество строк
       alloc 1@ 128
       if 0@ == 1
       then
           format 1@ "Я люблю"
       end
      
       if 0@ == 2
       then
           format 1@ "Есть печения"
       end
       Render.DrawText(2@, 1@, 30@, 31@, -1)
       31@ -= 20
       free 1@
    end
end

END

:restart
0A92: create_custom_thread "blasthk.cs"
0A93: end_custom_thread
SAMP.CmdRet()
 

MAHEKEH

Известный
1,990
494
Посмотреть вложение 49931
Как получить из этого норм код?

или можешь это попробовать - http://crypt-online.ru/crypts/text2hex/
 

hnnssy

Известный
Друг
2,684
2,748
Не увидел тут пример с массивами, но твой пример мне дал ответ на мой пред. вопрос - https://blast.hk/threads/13410/post-459269

Твой вариант как то можно провернуть с текстом?

alloc 1@ 128
format 1@ "Я люблю"
Render.DrawText(0@, 1@, 3@, 4@, -1)
free 1@
alloc 1@ 128
format 2@ "Есть печенье"
Render.DrawText(0@, 2@, 3@, 4@, -1)
free 2@

т.е если я начну этот перемещать, допустим командой, текст по экрану то, перемещать я конечно буду кашу
либо же делать смд для каждого рендера отдельно, что совсем тупо
проще сказать: как задать отступ между двумя рендерами?
( в идеале не используя под каждый рендер отдельную переменную, если такое ваще реально )
ну, если я правильно понял, то тебе нужно сделать перемещение многострочного рендера курсором
0@ 1@ = get cursor pos
render text position 0@ 1@
1@ -= 15
render text position 0@ 1@
1@ -= 15
render text position 0@ 1@

переменные для текстов не обязательно разные юзать
alloc 2@ = 128
memset 2@ 0x0 128
format 2@ "text 1"
render
memset 2@ 0x0 128
format 2@ "text 2"
render
memset 2@ 0x0 128
format 2@ "text 3"
render
...
 
  • Нравится
Реакции: MAHEKEH и loganhackerdff

Dotalovo666

Новичок
8
0
есть такой скрипт как урезаная анимация стана от дигла где-то на 0.5 msek.Если есть скиньте плс буду очень благодарен.
 
D

deleted-user-399997

Гость
1582558132425.png

как узнать "ид/хендл" анимации, дайте сайт, буду благодарен
 
У

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

Гость
Посмотреть вложение 50092
как узнать "ид/хендл" анимации, дайте сайт, буду благодарен
Я по бласту походил, поискал, один залил хз куда и не качается, все остальные на GitHub и странички нету(
есть такой скрипт как урезаная анимация стана от дигла где-то на 0.5 msek.Если есть скиньте плс буду очень благодарен.
 

atomlin

Известный
580
385
Как можно искать этот текст (скрин ниже) и нажимать указанную клавишу? (их всего 2)
Screenshot_20.png
анную клавишу? (их всего 2)