Der Standart hud von GTA:SA wird angezeigt
Code
-- HUD, made by Mezzo / Max Foidl
-- (c) 2015
local cityabk = {
["San Fierro"] = ", SF",
["Los Santos"] = ", LS",
["Las Venturas"] = ", LV"
}
rls = "vio" -- Name der RL Ressource.
-- Die Images sind unter 'newhud'
local screenW, screenH = guiGetScreenSize()
hudshow = 1
function newhud ()
local health = math.ceil(getElementHealth(getLocalPlayer()))
local armour = math.ceil(getPedArmor(getLocalPlayer()))
local oxygen = math.ceil(getPedOxygenLevel(getLocalPlayer())) - 76
local hunger = vioGetElementData(getLocalPlayer(),"hunger")
dxDrawLine((screenW * 0.7852) - 1, (screenH * 0.0444) - 1, (screenW * 0.7852) - 1, screenH * 0.3139, tocolor(8, 5, 139, 216), 1, false)
dxDrawLine(screenW * 0.9797, (screenH * 0.0444) - 1, (screenW * 0.7852) - 1, (screenH * 0.0444) - 1, tocolor(8, 5, 139, 216), 1, false)
dxDrawLine((screenW * 0.7852) - 1, screenH * 0.3139, screenW * 0.9797, screenH * 0.3139, tocolor(8, 5, 139, 216), 1, false)
dxDrawLine(screenW * 0.9797, screenH * 0.3139, screenW * 0.9797, (screenH * 0.0444) - 1, tocolor(8, 5, 139, 216), 1, false)
dxDrawRectangle(screenW * 0.7852, screenH * 0.0444, screenW * 0.1945, screenH * 0.2694, tocolor(26, 23, 23, 181), false)
-- Waffen
ammo = getPedAmmoInClip (getLocalPlayer())
ammototal = getPedTotalAmmo(getLocalPlayer())-getPedAmmoInClip(getLocalPlayer())
dxDrawImage(screenW * 0.6961, screenH * 0.0403, screenW * 0.0695, screenH * 0.1042, ""..rls.."/img/weapons/weapon_"..getPedWeapon(lp)..".png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
if getPedWeapon(getLocalPlayer()) > 1 then
dxDrawText(""..ammo.." | "..ammototal.."", (screenW * 0.7078) - 1, (screenH * 0.1444) - 1, (screenW * 0.7773) - 1, (screenH * 0.1639) - 1, tocolor(0, 0, 0, 255), 1.00, "default", "left", "top", false, false, false, false, false)
dxDrawText(""..ammo.." | "..ammototal.."", (screenW * 0.7078) + 1, (screenH * 0.1444) - 1, (screenW * 0.7773) + 1, (screenH * 0.1639) - 1, tocolor(0, 0, 0, 255), 1.00, "default", "left", "top", false, false, false, false, false)
dxDrawText(""..ammo.." | "..ammototal.."", (screenW * 0.7078) - 1, (screenH * 0.1444) + 1, (screenW * 0.7773) - 1, (screenH * 0.1639) + 1, tocolor(0, 0, 0, 255), 1.00, "default", "left", "top", false, false, false, false, false)
dxDrawText(""..ammo.." | "..ammototal.."", (screenW * 0.7078) + 1, (screenH * 0.1444) + 1, (screenW * 0.7773) + 1, (screenH * 0.1639) + 1, tocolor(0, 0, 0, 255), 1.00, "default", "left", "top", false, false, false, false, false)
dxDrawText(""..ammo.." | "..ammototal.."", screenW * 0.7078, screenH * 0.1444, screenW * 0.7773, screenH * 0.1639, tocolor(255, 255, 255, 255), 1.00, "default", "left", "top", false, false, false, false, false)
end
-- Uhrzeit
dxDrawImage(screenW * 0.7906, screenH * 0.0611, screenW * 0.0148, screenH * 0.0250, ""..rls.."/images/newhud/time.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
local logtime = getRealTime()
local year = tostring ( logtime.year + 1900-2000 )
local month = tostring ( logtime.month + 1 )
local day = tostring ( logtime.monthday )
local hour = tostring ( logtime.hour )
local minute = tostring ( logtime.minute )
if #month == 1 then
month = "0"..month
end
if #day == 1 then
day = "0"..day
end
if #hour == 1 then
hour = "0"..hour
end
if #minute == 1 then
minute = "0"..minute
end
dxDrawText(day.."."..month.."."..year..", "..hour..":"..minute.."Uhr", screenW * 0.8133, screenH * 0.0597, screenW * 0.9586, screenH * 0.0861, tocolor(255, 255, 255, 255), 1.00, "sans", "left", "top", false, false, false, false, false)
-- Ort
local x, y, z = getElementPosition(getLocalPlayer())
local zone = getZoneName ( x, y, z )
local city = getZoneName ( x, y, z, true )
dxDrawImage(screenW * 0.7898, screenH * 0.1000, screenW * 0.0156, screenH * 0.0292, ""..rls.."/images/newhud/location.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
dxDrawText(zone..(cityabk[city] or ""), screenW * 0.8133, screenH * 0.1028, screenW * 0.9586, screenH * 0.1292, tocolor(255, 255, 255, 255), 1.00, "sans", "left", "top", false, false, false, false, false)
-- Weste
dxDrawImage(screenW * 0.7914, screenH * 0.1417, screenW * 0.0141, screenH * 0.0264, ""..rls.."/images/newhud/armour.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
dxDrawLine((screenW * 0.8141) - 1, (screenH * 0.1472) - 1, (screenW * 0.8141) - 1, screenH * 0.1681, tocolor(0, 0, 9, 255), 1, false)
dxDrawLine(screenW * 0.9586, (screenH * 0.1472) - 1, (screenW * 0.8141) - 1, (screenH * 0.1472) - 1, tocolor(0, 0, 9, 255), 1, false)
dxDrawLine((screenW * 0.8141) - 1, screenH * 0.1681, screenW * 0.9586, screenH * 0.1681, tocolor(0, 0, 9, 255), 1, false)
dxDrawLine(screenW * 0.9586, screenH * 0.1681, screenW * 0.9586, (screenH * 0.1472) - 1, tocolor(0, 0, 9, 255), 1, false)
if armour > 0 then
local armourbalken = 0.001445*armour
dxDrawRectangle(screenW * 0.8141, screenH * 0.1472, screenW * armourbalken, screenH * 0.0208, tocolor(40, 85, 131, 255), true)
else
end
dxDrawText(armour.."%", screenW * 0.8648, screenH * 0.1472, screenW * 0.9414, screenH * 0.1681, tocolor(255, 255, 255, 255), 1.00, "sans", "left", "top", false, false, true, false, false)
dxDrawImage(screenW * 0.7914, screenH * 0.1778, screenW * 0.0148, screenH * 0.0264, ""..rls.."/images/newhud/health.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
dxDrawLine((screenW * 0.8141) - 1, (screenH * 0.1833) - 1, (screenW * 0.8141) - 1, screenH * 0.2042, tocolor(0, 0, 0, 255), 1, false)
dxDrawLine(screenW * 0.9586, (screenH * 0.1833) - 1, (screenW * 0.8141) - 1, (screenH * 0.1833) - 1, tocolor(0, 0, 0, 255), 1, false)
dxDrawLine((screenW * 0.8141) - 1, screenH * 0.2042, screenW * 0.9586, screenH * 0.2042, tocolor(0, 0, 0, 255), 1, false)
dxDrawLine(screenW * 0.9586, screenH * 0.2042, screenW * 0.9586, (screenH * 0.1833) - 1, tocolor(0, 0, 0, 255), 1, false)
if health > 0 then
local lebensbalken = 0.001445*health
dxDrawRectangle(screenW * 0.8141, screenH * 0.1833, screenW * lebensbalken, screenH * 0.0208, tocolor(13, 196, 38, 255), true)
else
dxDrawRectangle(screenW * 0.8141, screenH * 0.1833, screenW * 0.1445, screenH * 0.0208, tocolor(0,0,0,255), true)
end
dxDrawText(health.."%", screenW * 0.8648, screenH * 0.1833, screenW * 0.9414, screenH * 0.2042, tocolor(255, 255, 255, 255), 1.00, "sans", "left", "top", false, false, true, false, false)
if isElementInWater(getLocalPlayer()) == false then
dxDrawText(hunger.."%", screenW * 0.8648, screenH * 0.2181, screenW * 0.9414, screenH * 0.2389, tocolor(255, 255, 255, 255), 1.00, "sans", "left", "top", false, false,true, false, false)
dxDrawImage(screenW * 0.7914, screenH * 0.2139, screenW * 0.0148, screenH * 0.0264, ""..rls.."/images/newhud/hunger.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
dxDrawLine((screenW * 0.8141) - 1, (screenH * 0.2194) - 1, (screenW * 0.8141) - 1, screenH * 0.2403, tocolor(0, 0, 0, 255), 1, false)
dxDrawLine(screenW * 0.9586, (screenH * 0.2194) - 1, (screenW * 0.8141) - 1, (screenH * 0.2194) - 1, tocolor(0, 0, 0, 255), 1, false)
dxDrawLine((screenW * 0.8141) - 1, screenH * 0.2403, screenW * 0.9586, screenH * 0.2403, tocolor(0, 0, 0, 255), 1, false)
dxDrawLine(screenW * 0.9586, screenH * 0.2403, screenW * 0.9586, (screenH * 0.2194) - 1, tocolor(0, 0, 0, 255), 1, false)
if hunger > 0 then
local hungerbalken = 0.001445*hunger
dxDrawRectangle(screenW * 0.8141, screenH * 0.2194, screenW * hungerbalken, screenH * 0.0208, tocolor(217, 157, 29, 248), false)
else
end
else
dxDrawText(oxygen.."%", screenW * 0.8648, screenH * 0.2181, screenW * 0.9414, screenH * 0.2389, tocolor(255, 255, 255, 255), 1.00, "sans", "left", "top", false, false,true, false, false)
-- OXY
dxDrawLine((screenW * 0.8141) - 1, (screenH * 0.2194) - 1, (screenW * 0.8141) - 1, screenH * 0.2403, tocolor(0, 0, 0, 255), 1, false)
dxDrawLine(screenW * 0.9586, (screenH * 0.2194) - 1, (screenW * 0.8141) - 1, (screenH * 0.2194) - 1, tocolor(0, 0, 0, 255), 1, false)
dxDrawLine((screenW * 0.8141) - 1, screenH * 0.2403, screenW * 0.9586, screenH * 0.2403, tocolor(0, 0, 0, 255), 1, false)
dxDrawLine(screenW * 0.9586, screenH * 0.2403, screenW * 0.9586, (screenH * 0.2194) - 1, tocolor(0, 0, 0, 255), 1, false)
if oxygen > 0 then
local oxybalken = 0.0001445*oxygen
dxDrawRectangle(screenW * 0.8141, screenH * 0.2194, screenW * oxybalken, screenH * 0.0208, tocolor(59,221,221, 248), false)
else
end
dxDrawImage(screenW * 0.7914, screenH * 0.2139, screenW * 0.0148, screenH * 0.0264, ""..rls.."/images/newhud/air.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
end
-- Hintergrund der Lebensbalken etc.
dxDrawRectangle(screenW * 0.8141, screenH * 0.1847, screenW * 0.1445, screenH * 0.0208, tocolor(14, 116, 17, 146), false)
dxDrawRectangle(screenW * 0.8141, screenH * 0.1472, screenW * 0.1445, screenH * 0.0208, tocolor(15, 79, 74, 146), false)
if isElementInWater(getLocalPlayer()) == false then
dxDrawRectangle(screenW * 0.8141, screenH * 0.2208, screenW * 0.1445, screenH * 0.0208, tocolor(149, 106, 3, 146), false)
else
dxDrawRectangle(screenW * 0.8141, screenH * 0.2208, screenW * 0.1445, screenH * 0.0208, tocolor(45, 164, 164, 146), false)
end
-- GELD!
local money = tostring(vioGetElementData(getLocalPlayer(),"money"))
for i = 1, 10 do
if #money < 10 then
money = "0"..money
else
break
end
end
dxDrawText(money.."$", screenW * 0.8141, screenH * 0.2556, screenW * 0.9719, screenH * 0.2889, tocolor(255, 255, 255, 255), 1.00, "pricedown", "left", "top", false, false, true, false, false)
dxDrawImage(screenW * 0.7914, screenH * 0.2542, screenW * 0.0172, screenH * 0.0347, ""..rls.."/images/newhud/money.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
end
-- 1 = HUD, 2 = GTA:SA HUD, 3 = Kein HUD
function shownewhud ( key, state )
if hudshow == 1 and not isPedDead ( getLocalPlayer() ) then
showPlayerHudComponent ( "ammo", true )
showPlayerHudComponent ( "weapon", true )
showPlayerHudComponent ( "health", true )
showPlayerHudComponent ( "armour", true )
showPlayerHudComponent ( "money", true )
showPlayerHudComponent ( "area_name", true )
showPlayerHudComponent ( "clock", true )
showPlayerHudComponent ( "wanted", true )
showPlayerHudComponent ( "breath", true )
showPlayerHudComponent ( "radar", true )
unrenderHUD ()
addEventHandler ( "onClientRender", root, InfoUnten )
addEventHandler ( "onClientRender", root, infoUntenRechts )
hudshow = 1
outputConsole ( hudshow )
elseif hudshow == 2 then
showPlayerHudComponent ( "ammo", false )
showPlayerHudComponent ( "weapon", false )
showPlayerHudComponent ( "health", false )
showPlayerHudComponent ( "armour", false )
showPlayerHudComponent ( "money", false )
showPlayerHudComponent ( "area_name", false )
showPlayerHudComponent ( "clock", false )
showPlayerHudComponent ( "wanted", false )
showPlayerHudComponent ( "breath", false )
showPlayerHudComponent ( "radar", false )
unrenderHUD ()
removeEventHandler ( "onClientRender", root, InfoUnten )
removeEventHandler ( "onClientRender", root, infoUntenRechts )
hudshow = 3
outputConsole ( hudshow )
elseif hudshow == 3 then
showPlayerHudComponent ( "ammo", false )
showPlayerHudComponent ( "weapon", false )
showPlayerHudComponent ( "health", false )
showPlayerHudComponent ( "armour", false )
showPlayerHudComponent ( "money", false )
showPlayerHudComponent ( "area_name", false )
showPlayerHudComponent ( "clock", false )
showPlayerHudComponent ( "wanted", false )
showPlayerHudComponent ( "breath", false )
showPlayerHudComponent ( "radar", true )
renderHUD()
addEventHandler ( "onClientRender", root, InfoUnten )
addEventHandler ( "onClientRender", root, infoUntenRechts )
hudshow = 1
outputConsole ( hudshow )
end
outputConsole ( "HUD Changed" )
end
function renderHUD ()
addEventHandler("onClientRender", root, newhud)
addEventHandler("onClientRender", root, showWanteds)
end
function unrenderHUD ()
removeEventHandler("onClientRender", root, newhud)
removeEventHandler("onClientRender", root, showWanteds)
end
local w_old = 0
local w_new = 0
function showWanteds ()
wanted = tonumber(vioGetElementData ( getLocalPlayer(), "wanteds" ))
-- 1
if wanted >= 1 then
dxDrawImage(screenW * 0.7836, screenH * 0.3278, screenW * 0.0352, screenH * 0.0444, ""..rls.."/images/newhud/wanted_active.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
else
dxDrawImage(screenW * 0.7836, screenH * 0.3278, screenW * 0.0352, screenH * 0.0444, ""..rls.."/images/newhud/wanted_inactive.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
end
-- 2
if wanted >= 2 then
dxDrawImage(screenW * 0.8187, screenH * 0.3278, screenW * 0.0352, screenH * 0.0444, ""..rls.."/images/newhud/wanted_active.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
else
dxDrawImage(screenW * 0.8187, screenH * 0.3278, screenW * 0.0352, screenH * 0.0444, ""..rls.."/images/newhud/wanted_inactive.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
end
-- 3
if wanted >= 3 then
dxDrawImage(screenW * 0.8539, screenH * 0.3278, screenW * 0.0352, screenH * 0.0444, ""..rls.."/images/newhud/wanted_active.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
else
dxDrawImage(screenW * 0.8539, screenH * 0.3278, screenW * 0.0352, screenH * 0.0444, ""..rls.."/images/newhud/wanted_inactive.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
end
-- 3
if wanted >= 4 then
dxDrawImage(screenW * 0.8891, screenH * 0.3278, screenW * 0.0352, screenH * 0.0444, ""..rls.."/images/newhud/wanted_active.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
else
dxDrawImage(screenW * 0.8891, screenH * 0.3278, screenW * 0.0352, screenH * 0.0444, ""..rls.."/images/newhud/wanted_inactive.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
end
-- 4
if wanted >= 5 then
dxDrawImage(screenW * 0.9242, screenH * 0.3278, screenW * 0.0352, screenH * 0.0444, ""..rls.."/images/newhud/wanted_active.png", 0, 0, 0,tocolor(255, 255, 255, 255), false)
else
dxDrawImage(screenW * 0.9242, screenH * 0.3278, screenW * 0.0352, screenH * 0.0444, ""..rls.."/images/newhud/wanted_inactive.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
end
-- 5
if wanted >= 6 then
dxDrawImage(screenW * 0.9594, screenH * 0.3264, screenW * 0.0320, screenH * 0.0458, ""..rls.."/images/newhud/wanted_active.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
else
dxDrawImage(screenW * 0.9594, screenH * 0.3264, screenW * 0.0320, screenH * 0.0458, ""..rls.."/images/newhud/wanted_inactive.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
end
end
fileDelete(""..rls.."/anzeigen/hud.luac")
Alles anzeigen