Advertisement
Guest User

Untitled

a guest
Apr 18th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1.  
  2.  
  3. 0AB1: call_scm_func @SetTextdrawWidhtAndHeight 2 10.0 10.0 3@ 4@ // задаем "эталонные" ширину и высоту(для разрешения 640x480), получаем готовые коэффициенты для экрана игрока
  4. 0AB1: call_scm_func @SetTextdrawWidhtAndHeight 2 320.0 240.0 1@ 2@ // задаем "эталонные" координаты X и Y центра экрана(для разрешения 640x480), получаем готовые координаты для экрана игрока
  5.  
  6. далее в цикле
  7.  
  8. :ololo
  9. wait 0
  10. 0AB1: call_scm_func @GetPlayerHealthProportion 0 5@ // требуемая доля ширины полосы в записана в 5@ (т.е. от 0.0 до 1.0)
  11. 006B: 3@ *= 5@
  12. 03F0: enable_text_draw 1
  13. 038E: draw_box_position 1@ 2@ size 3@ 4@ RGBA 255 128 128 255
  14. jump @ololo
  15.  
  16. после того, как отпадет нужда рисовать текстуры, иначе говоря - по окончании цикла ОБЯЗАТЕЛЬНО нужно вырубать text draw:
  17. 03F0: enable_text_draw 0
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24. :SetTextdrawWidhtAndHeight
  25. 0A8D: 2@ = read_memory 0xA0FD04 size 4 virtual_protect 1 // resolution Width
  26. 0A8D: 3@ = read_memory 0xA0FD08 size 4 virtual_protect 1 // resolution Height
  27. 0093: 2@ = integer 2@ to_float
  28. 0093: 3@ = integer 3@ to_float
  29. 0017: 2@ /= 640.0
  30. 0017: 3@ /= 480.0
  31. 006B: 0@ *= 2@
  32. 006B: 1@ *= 3@
  33. 0AB2: ret 2 0@ 1@
  34.  
  35. :GetPlayerHealthProportion
  36. 0A96: 0@ = actor $PLAYER_ACTOR struct
  37. 000A: 0@ += 0x354 // health(float)
  38. 0A8D: 0@ = read_memory 0@ size 4 virtual_protect 1 // health(float)
  39. 0A8D: 1@ = read_memory 0x94AE6B size 1 virtual_protect 1 // max health(byte)
  40. 0093: 1@ = integer 1@ to_float
  41. 0073: 0@ /= 1@
  42. 0AB2: ret 1 0@
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement