Lua [All Servers] InfoBar+

NoNameCoder

Известный
Автор темы
40
12
  • Показ информации о сервере на котором вы играете.
  • Показ Вашего NickName'a и Вашего ID.
  • Показ Вашего Пинга, Уровня, а так же FPS.
  • Показ локальной даты и времени.
  • Показ города, в котором вы находитесь, а так же отыгранное время за сеанс.
  • Показ HP персонажа, а так же HP автомобиля, показ Armour персонажа.
  • Показ скорости персонажа/скорости автомобиля.
  • Так же данный InfoBar показывает ID оружия у вас в руках и патроны к нему.
  • Разработчик: NoNameCoder.
  • sa-mp-900.png
 

Вложения

  • InfoBar.lua
    5.5 KB · Просмотры: 452
Последнее редактирование:

James Hawk

Известный
919
217
Броня пишется armour, хоть в переводчике проверяйте правописание
 

untеrmensch

Хуёвый феникс
360
281
Это перевод для средневековой брони. У тебя сватовец в кольчуге щеголяет?
Напал на челика из-за хуйни, так ещё и обосрался(Armor - американский вариант, armour - британский)
 

Petr_Sergeevich

Известный
Проверенный
707
296
Нежели кого то критиковать, напиши свой код и потом хвастайся какой ты "топ" кодер
Я не хвастаюсь, сообщение было отправлено с целью того, чтобы автор понимал, что скрипт нужно дорабатывать)
Перед отправкой я начал переписывать некоторые участки кода, однако пришлось менять достаточно много и я забил. Да и сам тс написал о том, что это его первая работа только после моего сообщения. Разумеется, я бы не стал критиковать, если бы знал это изначально.

Автору:
1. Не нужно делать бессмысленные проверки, когда работаешь с булевыми переменными
Lua:
-- Исходник
if main_window_state.v == false then
    -- ...
end

-- Лучше так
if not main_window_state.v then
    -- ...
end
2. Добавлена функция для обработки команды, но самой команды нет
3. Не нужно подключать библиотеки и модули, которые не используешь: moonloader, requests, samp.events, encoding, vkeys, ты создаёшь лишние зависимости
4. Зачем тебе это, если не используешь? Я понимаю, что ты только учишься, но мог бы позаботиться о том, чтобы убрать всё лишнее перед публикацией
Lua:
local active = true
local text_buffer = imgui.ImBuffer(256)
local tables
--
ip = sampGetCurrentServerAddress(PLAYER_PED)
Hours = (os.date("%H", os.time()))
Minuts = (os.date("%M", os.time()))
Seconds = (os.date("%S", os.time()))
5. Зачем это в main'e? Лишнее, ничего не делает, ты позаботился об этом в imgui.OnDrawFrame()
Lua:
imgui.ShowCursor = false
imgui.SetMouseCursor(-1)
6. Соблюдай табуляцию и отступы, чтобы упростить чтение кода
7. ctrl + c, ctrl + v - хуёвая практика. Если у тебя изменяется единственная строка в коде, не нужно из-за одной проверки создавать два идентичных куска кода. Никогда не копируй и не вставляй код, избегай использование похожих частей кода, выделяй для этого отдельные методы
(Речь про весь imgui.OnDrawFrame())
8. Не нужно делать всё глобальными переменными, дописывай local, если использование переменной требуется только в определенной части кода
9. id, nickname можно получить один раз в main'e, лишняя работа
10. Следуй каким-нибудь стандартам оформления кода. Например, при обозначении переменных и функций
11.
Lua:
-- Исходник
(os.date("%H",os.time())..':'..os.date("%M",os.time())..':'..os.date("%S",os.time()))
(os.date("%d",os.time())..'/'..os.date("%m",os.time())..'/'..os.date("%Y",os.time()))

-- Можно так
os.date("%H:%M:%S")
os.date("%d/%m/%Y")
12. Что за window? У тебя этого в коде нет, вижу только main_window_state, но даже это не используется
Lua:
imgui.Begin("INFOBAR | Coded by NNC.", window, imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.NoResize + imgui.WindowFlags.AlwaysAutoResize + imgui.WindowFlags.ShowBorders)
13. Вместо конкатенации строк можно использовать string.format()
14. Зачем ты округляешь координаты, скорость и фпс? Ты искажаешь истинные значения. Воспользуйся п.13
 
Последнее редактирование:
  • Нравится
Реакции: r4nx

MrCreepTon

Неизвестный
Всефорумный модератор
2,117
4,671
Оформил бы покрасивей, а то выглядит как:
каша каша каша каша
каша каша, каша каша каша,
каша, каша каша каша
 

ae1c2a

Известный
195
6
Координаты сбрасываются после перезапуска, сделай автосохранение.