Как сделать свой худ

Добавил пользователь Cypher
Обновлено: 10.09.2024

[5] Garrys Mod Lua. Удаляем стандартный HUD и добавляем свой

Урок 4: https://gamesubject.com/question/3109
Удалим HUD хп и брони, и создадим свой.
Писать будем в клиентской части.
Создаём таблицу, в которую засовываем HUD хп и брони:
local hide = CHudHealth = true,
CHudBattery = true
>
CHudHealth - HUD хп.
CHudBattery - HUD брони.
Создаём hook, который вызывается при создании HUD:
hook.Add("HUDShouldDraw","hudhide",function(name)
HUDShouldDraw - hook, который вызывается при создании HUD. Работает только в клиентской части.
function(name) - в переменную name, засовывается HUD.
Сделаем так, что бы HUD из нашей таблицы, имел значение false:
if hide[name] then
return false
if hide[name] - если в таблице есть HUD из переменной name.
return false - возвращает false.
Создаём hook рисования HUD:
hook.Add("HUDPaint","player",function()
Создаём переменную, в которую помещаем игрока:
local ply = LocalPlayer()
Создаём переменную, в которую помещаем хп игрока:
local health = ply:Health()
ply:Health() - возвращает хп игрока. Работает в клиентской и серверной части.
Создаём переменную, в которую помещаем максимальное количество хп:
local healthmax = ply:GetMaxHealth()
ply:GetMaxHealth() - возвращяет максимальное количество хп. Работает в клиентской и серверной части.
Создаём переменную, в которую помещаем броню игрока:
local armor = ply:Armor()
ply:Armor() - возвращает броню игрока. Работает в клиентской и серверной части.
Рисуем HUD:
draw.RoundedBox(3,30,910,260,140,Color(60,60,60,240))
draw.RoundedBox(0,0,945,30,20,Color(60,60,60,240))
draw.RoundedBox(0,0,995,30,20,Color(60,60,60,240))
draw.RoundedBox(3,60,940,healthmax*2,30,Color(40,40,40,240))
draw.RoundedBox(3,60,990,200,30,Color(40,40,40,240))
draw.RoundedBox(3,60,940,health*2,30,Color(255,0,0,255))
draw.RoundedBox(3,60,990,armor*2,30,Color(0,0,255))
Код который у нас получился:
if CLIENT then
local hide = CHudHealth = true,
CHudBattery = true
>
hook.Add("HUDShouldDraw","hudhide",function(name)
if hide[name] then
return false
end
end)
hook.Add("HUDPaint","player",function()
local ply = LocalPlayer()
local health = ply:Health()
local healthmax = ply:GetMaxHealth()
local armor = ply:Armor()
draw.RoundedBox(3,30,910,260,140,Color(60,60,60,240))
draw.RoundedBox(0,0,945,30,20,Color(60,60,60,240))
draw.RoundedBox(0,0,995,30,20,Color(60,60,60,240))
draw.RoundedBox(3,60,940,healthmax*2,30,Color(40,40,40,240))
draw.RoundedBox(3,60,990,200,30,Color(40,40,40,240))
draw.RoundedBox(3,60,940,health*2,30,Color(255,0,0,255))
draw.RoundedBox(3,60,990,armor*2,30,Color(0,0,255))
end)
end



Garry’s Mod



НУ КАК БЫ ТАМ МОЖНО ПИСАТЬ ТОЛЬКО БОЛЬШИМИ БУКВАМИ. ИНАЧЕ СИНТАКСИЧЕСКАЯ ОШИБКА :s
Видимо ты еще не знаешь, что такое enum.

Icosider

iMixin


Лол, а ты знал что свитчи будут более эффективны нежели else if при большом колличестве? Советую про них почитать, может тоже начнешь свитчи по чаще юзать.

Maxik

Голубой Петушок

Не заливай, ну. У меня точно такой же Тимахин код есть. И точно также там case ALL большими буквами. Я в свое время тоже нубокодером был)


НУ КАК БЫ ТАМ МОЖНО ПИСАТЬ ТОЛЬКО БОЛЬШИМИ БУКВАМИ. ИНАЧЕ СИНТАКСИЧЕСКАЯ ОШИБКА :s
Видимо ты еще не знаешь, что такое enum.

Делаю воксельные(и не только) 3D-модели для ваших Minecraft проектов. Портфолио можете увидеть полистав группу моего мода Soviet Lab - все модели сделаны мной.

Eifel


Могучий горгон


А что же такое ElementType для тебя? не enum? может вообще строка?

Maxik

Голубой Петушок

[font=Monaco, Consolas, Courier, monospace]private[/font] [font=Monaco, Consolas, Courier, monospace] ResourceLocation gui = [/font] [font=Monaco, Consolas, Courier, monospace]new[/font] [font=Monaco, Consolas, Courier, monospace] ResourceLocation([/font] [font=Monaco, Consolas, Courier, monospace]"modid:gui/icon.jpg"[/font] [font=Monaco, Consolas, Courier, monospace]);[/font]
[font=Monaco, Consolas, Courier, monospace] @[/font] [font=Monaco, Consolas, Courier, monospace]SubscribeEvent[/font]
[font=Monaco, Consolas, Courier, monospace] public void drawText (RenderGameOverlayEvent.Post event ) [/font] [font=Monaco, Consolas, Courier, monospace] <[/font]
[font=Monaco, Consolas, Courier, monospace] [/font] [font=Monaco, Consolas, Courier, monospace]switch[/font] [font=Monaco, Consolas, Courier, monospace] ([/font] [font=Monaco, Consolas, Courier, monospace]event[/font] [font=Monaco, Consolas, Courier, monospace].getType()) <[/font]
[font=Monaco, Consolas, Courier, monospace] [/font] [font=Monaco, Consolas, Courier, monospace]case[/font] [font=Monaco, Consolas, Courier, monospace] ALL: Minecraft.getMinecraft().getTextureManager().bindTexture([/font] [font=Monaco, Consolas, Courier, monospace]this[/font] [font=Monaco, Consolas, Courier, monospace].gui);Minecraft.getMinecraft().ingameGUI.drawTexturedModalRect(([/font] [font=Monaco, Consolas, Courier, monospace]event[/font] [font=Monaco, Consolas, Courier, monospace].getResolution().getScaledWidth() - [/font] [font=Monaco, Consolas, Courier, monospace]100[/font] [font=Monaco, Consolas, Courier, monospace]) / [/font] [font=Monaco, Consolas, Courier, monospace]2[/font] [font=Monaco, Consolas, Courier, monospace]+[/font] [font=Monaco, Consolas, Courier, monospace]10[/font] [font=Monaco, Consolas, Courier, monospace], ([/font] [font=Monaco, Consolas, Courier, monospace]event[/font] [font=Monaco, Consolas, Courier, monospace].getResolution().getScaledHeight() - [/font] [font=Monaco, Consolas, Courier, monospace]100[/font] [font=Monaco, Consolas, Courier, monospace]) / [/font] [font=Monaco, Consolas, Courier, monospace]2[/font] [font=Monaco, Consolas, Courier, monospace]+[/font] [font=Monaco, Consolas, Courier, monospace]100[/font] [font=Monaco, Consolas, Courier, monospace], [/font] [font=Monaco, Consolas, Courier, monospace]0[/font] [font=Monaco, Consolas, Courier, monospace], [/font] [font=Monaco, Consolas, Courier, monospace]0[/font] [font=Monaco, Consolas, Courier, monospace], [/font] [font=Monaco, Consolas, Courier, monospace]100[/font] [font=Monaco, Consolas, Courier, monospace], [/font] [font=Monaco, Consolas, Courier, monospace]100[/font] [font=Monaco, Consolas, Courier, monospace]);[/font]
[font=Monaco, Consolas, Courier, monospace] [/font] [font=Monaco, Consolas, Courier, monospace]default[/font] [font=Monaco, Consolas, Courier, monospace]:[/font]
[font=Monaco, Consolas, Courier, monospace] [/font] [font=Monaco, Consolas, Courier, monospace]break[/font] [font=Monaco, Consolas, Courier, monospace];[/font]
[font=Monaco, Consolas, Courier, monospace] >[/font]

Покажи пожалуйста, в упор не вижу.

Блин, давай без подтекста. Конкретно в этом коде никаких енумов нету и здесь можно писать как угодно. Я про это говорил.

Делаю воксельные(и не только) 3D-модели для ваших Minecraft проектов. Портфолио можете увидеть полистав группу моего мода Soviet Lab - все модели сделаны мной.

Если вы хотите обновить Ваш сервер новыми доработками - то зайдите в наш раздел. Большой выбор готовых решений от наших пользователей

Моды для сервера

Огромный выбор различных модификаций для Вашего сервера. Пролистайте эти темы! Возможно именно там Вы найдете то, что искали уже давно.

San Andreas Multiplayer Mobile

Хотите разнообразить свою игру в San Andreas для телефона? Смелее в наш раздел. Играйте с удовольствием

Danila_Fantep

Начинающий

О нас

"Pawno Info" - портал о программировании номер один. Начните с нами изучать эти великолепные и бесконечные виртуальные миры. Научитесь создавать функции и скрипты используя наши уроки по программированию на различных языках. Задавайте вопросы которые Вас интересуют и получайте ответы от наших профессионалов. Будьте с нами. Будьте там, где лучшее.

Radmir RP | Полезные вещи и дополнения

Radmir RP | Полезные вещи и дополнения

Radmir RP | Полезные вещи и дополнения запись закреплена

?

- Вот гайд о том как сделать свой худ, очень многие просили.

Читайте также: