Advertisement
Andergr0ynd

Notification.lua

Jul 6th, 2025
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 8.57 KB | Gaming | 0 0
  1. # Библиотека уведомлений для MoonLoader
  2.  
  3. Библиотека для создания красивых уведомлений с FontAwesome иконками в MoonLoader скриптах.
  4.  
  5. ## Установка
  6.  
  7. 1. Скопируйте файл `lib/notifications.lua` в папку `lib/` вашего MoonLoader
  8. 2. Убедитесь, что у вас установлены зависимости:
  9.    - `mimgui`
  10.    - `fAwesome6`
  11.    - `inicfg`
  12.  
  13. ## Быстрый старт
  14.  
  15. ```lua
  16. -- Подключаем библиотеку
  17. local notifications = require 'lib.notifications'
  18.  
  19. -- Показываем уведомление
  20. notifications.info("Привет мир!", 4000)
  21. ```
  22.  
  23. ## Основные функции
  24.  
  25. ### Показать уведомление
  26. ```lua
  27. notifications.show(text, type, duration, custom_colors)
  28. ```
  29.  
  30. **Параметры:**
  31. - `text` - текст уведомления
  32. - `type` - тип уведомления ("success", "error", "warning", "info", "debug")
  33. - `duration` - длительность в миллисекундах (по умолчанию 4000)
  34. - `custom_colors` - кастомные цвета (опционально)
  35.  
  36. ### Типы уведомлений
  37.  
  38. #### Информация
  39. ```lua
  40. notifications.info("Информационное сообщение", 4000)
  41. ```
  42.  
  43. #### Успех
  44. ```lua
  45. notifications.success("Операция выполнена успешно!", 4000)
  46. ```
  47.  
  48. #### Ошибка
  49. ```lua
  50. notifications.error("Произошла ошибка!", 4000)
  51. ```
  52.  
  53. #### Предупреждение
  54. ```lua
  55. notifications.warning("Внимание! Что-то пошло не так.", 4000)
  56. ```
  57.  
  58. #### Отладка
  59. ```lua
  60. notifications.debug("Отладочная информация", 4000)
  61. ```
  62.  
  63. ## Настройки
  64.  
  65. ### Конфигурация библиотеки
  66. ```lua
  67. notifications.configure({
  68.     max_notifications = 5,        -- Максимальное количество уведомлений
  69.     default_duration = 4000,      -- Длительность по умолчанию (мс)
  70.     fade_in_time = 300,          -- Время появления (мс)
  71.     fade_out_time = 300,         -- Время исчезновения (мс)
  72.     position = "bottom_left",     -- Позиция по умолчанию
  73.     movable = false              -- Возможность перетаскивания
  74. })
  75. ```
  76.  
  77. ### Позиции уведомлений
  78. - `"top_right"` - Верхний правый угол
  79. - `"top_left"` - Верхний левый угол
  80. - `"bottom_right"` - Нижний правый угол
  81. - `"bottom_left"` - Нижний левый угол (по умолчанию)
  82. - `"center"` - Центр экрана
  83.  
  84. ### Включение перетаскивания
  85. ```lua
  86. notifications.set_interactive(true)  -- Включить перетаскивание
  87. notifications.set_interactive(false) -- Отключить перетаскивание
  88. ```
  89.  
  90. ## Управление уведомлениями
  91.  
  92. ### Очистить все уведомления
  93. ```lua
  94. notifications.clear()
  95. ```
  96.  
  97. ### Получить количество активных уведомлений
  98. ```lua
  99. local count = notifications.count()
  100. print("Активных уведомлений: " .. count)
  101. ```
  102.  
  103. ### Сохранить позиции
  104. ```lua
  105. notifications.save_positions()
  106. ```
  107.  
  108. ### Сбросить сохраненные позиции
  109. ```lua
  110. notifications.reset_positions()
  111. ```
  112.  
  113. ## Кастомные цвета
  114.  
  115. ```lua
  116. local custom_colors = {
  117.     r = 0.2,  -- Красный (0.0 - 1.0)
  118.     g = 0.8,  -- Зеленый (0.0 - 1.0)
  119.     b = 0.2,  -- Синий (0.0 - 1.0)
  120.     a = 0.9   -- Прозрачность (0.0 - 1.0)
  121. }
  122.  
  123. notifications.info("Уведомление с кастомными цветами", 4000, custom_colors)
  124. ```
  125.  
  126. ## Примеры использования
  127.  
  128. ### Простой пример
  129. ```lua
  130. local imgui = require 'mimgui'
  131. local encoding = require 'encoding'
  132. encoding.default = 'CP1251'
  133. local u8 = encoding.UTF8
  134. local ffi = require 'ffi'
  135. local mem = require 'memory'
  136. local socket_url = require 'socket.url'
  137. local vkeys = require 'vkeys'
  138. local mimgui_hotkeys = require 'mimgui_hotkeys'
  139. local fAwesome6 = require 'fAwesome6'
  140. local inicfg = require 'inicfg'
  141.  
  142. -- Подключаем библиотеку уведомлений
  143. local notifications = require 'lib.notifications'
  144.  
  145. function main()
  146.     -- Проверяем загрузку SAMP
  147.     if not isSampfuncsLoaded() then
  148.         sampAddChatMessage(u8'{FF0000}[Script] {FFFFFF}SAMP Functions не загружены!', -1)
  149.         return
  150.     end
  151.    
  152.     -- Ждем доступности SAMP
  153.     while not isSampAvailable() do
  154.         wait(100)
  155.     end
  156.    
  157.     -- Показываем разные типы уведомлений
  158.     notifications.info("Скрипт загружен!", 4000)
  159.     wait(1000)
  160.    
  161.     notifications.success("Все системы работают!", 4000)
  162.     wait(1000)
  163.    
  164.     notifications.warning("Внимание! Проверьте настройки.", 4000)
  165.    
  166.     wait(-1)
  167. end
  168. ```
  169.  
  170. ### Пример с кастомными настройками
  171. ```lua
  172. local notifications = require 'lib.notifications'
  173.  
  174. function main()
  175.     -- Настраиваем библиотеку
  176.     notifications.configure({
  177.         max_notifications = 3,
  178.         default_duration = 6000,
  179.         position = "top_right",
  180.         movable = true
  181.     })
  182.    
  183.     -- Показываем уведомления
  184.     notifications.info("Настройки применены!", 4000)
  185.    
  186.     wait(-1)
  187. end
  188. ```
  189.  
  190. ### Пример с кастомными цветами
  191. ```lua
  192. local notifications = require 'lib.notifications'
  193.  
  194. function main()
  195.     -- Кастомные цвета для уведомления
  196.     local purple_colors = {
  197.         r = 0.5,
  198.         g = 0.2,
  199.         b = 0.8,
  200.         a = 0.9
  201.     }
  202.    
  203.     notifications.info("Специальное уведомление!", 4000, purple_colors)
  204.    
  205.     wait(-1)
  206. end
  207. ```
  208.  
  209. ## Особенности
  210.  
  211. ### Автоматическое скрытие курсора
  212. - Курсор автоматически скрывается во время показа уведомлений
  213. - Восстанавливается после исчезновения всех уведомлений
  214.  
  215. ### FontAwesome иконки
  216. - Все уведомления отображаются с соответствующими иконками
  217. - Поддерживаются иконки FontAwesome 6
  218.  
  219. ### Сохранение позиций
  220. - При включенном перетаскивании позиции сохраняются автоматически
  221. - Позиции восстанавливаются при перезапуске скрипта
  222.  
  223. ### Анимации
  224. - Плавное появление и исчезновение уведомлений
  225. - Прогресс-бар показывает оставшееся время
  226.  
  227. ## Файлы конфигурации
  228.  
  229. Библиотека создает файл `notification_positions.ini` для сохранения позиций уведомлений.
  230.  
  231. ## Зависимости
  232.  
  233. - `mimgui` - для интерфейса
  234. - `fAwesome6` - для иконок
  235. - `inicfg` - для сохранения настроек
  236. - `encoding` - для кодировки
  237.  
  238. ## Поддерживаемые иконки
  239.  
  240. - **success**: `"check"` - галочка
  241. - **error**: `"xmark"` - крестик
  242. - **warning**: `"exclamation"` - восклицание
  243. - **info**: `"info"` - информация
  244. - **debug**: `"gear"` - шестеренка
  245.  
  246. ## Устранение неполадок
  247.  
  248. ### Иконки не отображаются
  249. 1. Убедитесь, что `fAwesome6` правильно установлен
  250. 2. Проверьте, что шрифт FontAwesome загружен
  251.  
  252. ### Курсор не скрывается
  253. 1. Убедитесь, что используется последняя версия библиотеки
  254. 2. Проверьте, что нет конфликтов с другими скриптами
  255.  
  256. ### Уведомления не появляются
  257. 1. Проверьте, что все зависимости установлены
  258. 2. Убедитесь, что SAMP загружен и доступен
  259.  
  260. ## Лицензия
  261.  
  262. Библиотека распространяется свободно для использования в MoonLoader скриптах.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement