Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 0AB1: call_scm_func @SetTextdrawWidhtAndHeight 2 10.0 10.0 3@ 4@ // задаем "эталонные" ширину и высоту(для разрешения 640x480), получаем готовые коэффициенты для экрана игрока
- 0AB1: call_scm_func @SetTextdrawWidhtAndHeight 2 320.0 240.0 1@ 2@ // задаем "эталонные" координаты X и Y центра экрана(для разрешения 640x480), получаем готовые координаты для экрана игрока
- далее в цикле
- :ololo
- wait 0
- 0AB1: call_scm_func @GetPlayerHealthProportion 0 5@ // требуемая доля ширины полосы в записана в 5@ (т.е. от 0.0 до 1.0)
- 006B: 3@ *= 5@
- 03F0: enable_text_draw 1
- 038E: draw_box_position 1@ 2@ size 3@ 4@ RGBA 255 128 128 255
- jump @ololo
- после того, как отпадет нужда рисовать текстуры, иначе говоря - по окончании цикла ОБЯЗАТЕЛЬНО нужно вырубать text draw:
- 03F0: enable_text_draw 0
- :SetTextdrawWidhtAndHeight
- 0A8D: 2@ = read_memory 0xA0FD04 size 4 virtual_protect 1 // resolution Width
- 0A8D: 3@ = read_memory 0xA0FD08 size 4 virtual_protect 1 // resolution Height
- 0093: 2@ = integer 2@ to_float
- 0093: 3@ = integer 3@ to_float
- 0017: 2@ /= 640.0
- 0017: 3@ /= 480.0
- 006B: 0@ *= 2@
- 006B: 1@ *= 3@
- 0AB2: ret 2 0@ 1@
- :GetPlayerHealthProportion
- 0A96: 0@ = actor $PLAYER_ACTOR struct
- 000A: 0@ += 0x354 // health(float)
- 0A8D: 0@ = read_memory 0@ size 4 virtual_protect 1 // health(float)
- 0A8D: 1@ = read_memory 0x94AE6B size 1 virtual_protect 1 // max health(byte)
- 0093: 1@ = integer 1@ to_float
- 0073: 0@ /= 1@
- 0AB2: ret 1 0@
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement