Advertisement
Guest User

Untitled

a guest
Dec 8th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.91 KB | None | 0 0
  1. 1) элементы меню
  2. возьмем например чекбокс
  3. local overlay_enable = ui.new_checkbox("visuals", "otheresp", "Watermark", "vis_overlay_enable")
  4. Видим в вызове функции new_checkbox несколько аргументов
  5. в кратце опишу, что есть что
  6. "visuals" - вкладка, куда будет добавлен наш чекбокс
  7. "otheresp" - название под-вкладки, которое можно увидеть в меню
  8. "Watermark" - название чекбокса, который будет добавлен
  9. "vis_overlay_enable" - запись параметра чекбокса (true/false) в конфиге
  10. соответственно, в результате мы получим такую кнопку:
  11. FluxBB bbcode test
  12. заебок, кнопку родили, но чо толку от кнопки, если она ничего не делает?
  13. покажу на примере луашки с ватермарком
  14. для начала создаем шрифт, который будем юзать для отрисовки текста, и пару переменных, которые нам понадобятся
  15. local font = surface.create_font("Raleway", 16, 500, 0, FONTFLAGS.NONE)
  16. local old_fps = 0
  17. local old_time = 0
  18. тут все понятно, разжевывать нет смысла
  19. далее сама функция
  20. local function paint()
  21. if not config.get(overlay_enable) then
  22. return
  23. end
  24.  
  25. if math.floor(globals.realtime()) ~= old_time then
  26. old_fps = math.floor(1.0 / globals.frametime())
  27. old_time = math.floor(globals.realtime())
  28. end
  29.  
  30. local r, g, b, a = config.get("menu_color")
  31. local w, h = engine.get_screen_size()
  32.  
  33. surface.set_color(r, g, b, a)
  34. surface.draw_filled_rect(w - 300, 5, w - 5, 25)
  35.  
  36. surface.set_text_font(font)
  37. surface.set_text_color(255, 255, 255, 255)
  38.  
  39. surface.set_text_pos(w - 295, 7)
  40. surface.draw_text("samoware | " .. cheat.get_user_name() .. " | " .. tostring(old_fps) .. " FPS")
  41. end
  42. видим проверку внутри функции
  43. if not config.get(overlay_enable) then
  44. return
  45. end
  46. что она дает? тупо чек с возвратом на чекбокс, который мы создавали в начале
  47. чекбокс не активен - функция не выполняется
  48. палим дальше
  49. if math.floor(globals.realtime()) ~= old_time then
  50. old_fps = math.floor(1.0 / globals.frametime())
  51. old_time = math.floor(globals.realtime())
  52. end
  53. тут мы присваиваем значения тем переменным, которые мы задавали вначале (соответственно, значение этих переменных, тобиш фпс мы и будем рендерить в итоге)
  54. что дальше:
  55. local r, g, b, a = config.get("menu_color")
  56. local w, h = engine.get_screen_size()
  57.  
  58. surface.set_color(r, g, b, a)
  59. surface.draw_filled_rect(w - 300, 5, w - 5, 25)
  60.  
  61. surface.set_text_font(font)
  62. surface.set_text_color(255, 255, 255, 255)
  63.  
  64. surface.set_text_pos(w - 295, 7)
  65. surface.draw_text("samoware | " .. cheat.get_user_name() .. " | " .. tostring(old_fps) .. " FPS")
  66. первые 4 переменные - цвет меню (который используется для окраски прямоугольника для ватермарка)
  67. далее w & h - записываем разрешение окна игры
  68. после этого, рисуем на сурфейсе прямоугольник (перед этим присвоив ему цвет с помощью surface.set_color)
  69. с аргументами при отрисовки прямоугольника думаю все просто - левый край, верхний край, правый край и нижний край прямоугольника
  70. далее мы создаем шрифт, который будем юзать для буков в ватермарке, красим его в цвет, какой нам нравица, и задаем ему координаты (точнее координаты, возле которых отрисуется 1 буква текста, x и y, как в математике)
  71. далее идет сама функция draw_text
  72. поскольку мы хотим юзать не только статичный текст, то нам придется юзать кавычки
  73. объясню опять же, на примере данной луашки
  74. сперва открываем кавычку, пишем САМОВАР, шобы все знали что за топ софтец
  75. потом ставим наш блатной разделитель | , чтоб ватермарк статусно выглядел. дорого-богато
  76. потом нам нужно сделать отрисовку нашего имени, чтобы на всех скринах и медиях было понятно, кто топ хавэха
  77. открываем кавычку, ставим 2 точки, пробел, и дальше нашу переменную, которую будет отрисовывать (в данном случае get_user_name, которая берет имя учетной записи винды)
  78. ставим пробел, 2 точки и закрываем кавычку (все тоже самое что и вначале, тока наоборот)
  79. дальше опять ставим | (много | не бывает), и теперь делаем отрисовку фпс (юзаю ту самую переменную old_fps)
  80. все просто, как и c get_user_name. потом тупо пишем FPS, чтобы понятно было, что за цифры отрисовываются, закрываем кавычку и скобку
  81. Готово, подумаете вы? а хуй там
  82. теперь нам нужно сделать калбек в paint-traverse, чтобы эта хуета отрисовывалась
  83. cheat.set_event_callback("on_paint", paint)
  84. тут все изи
  85. 1 аргумент отвечает за хук, в котором будет юзатся функция (on_paint - paint-traverse, on_create_move - createmove, on_frame_stage_notify - fsn и т.д.)
  86. 2 аргумент нужен.. эммм
  87. хуй его знает, нахуй он нужен, помоему там нихуя не меняется, чтобы я не писал
  88. окей с этой луашкой +- разбрались
  89. сама луашка находится в этой теме CLICK
  90. coming soon..
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement