Sziasztok! Már a szerverünk nagy része megvan. Bugok vannak, rajta vagyunk a javításán. Most egy olyan dolog van hogy a hud rendszerben nincs beleírva hogy fogyjon a stamina. Szóval örök ideig lehet futni. De mivel egy RP szervert szeretnénk csinálni így fontos lenne ennek megoldása. Ha valaki tud segíteni azt nagyon szépen megköszönöm.
A script tartalma: -----<Scriptet Editelte>-----
local screenWidth, screenHeight = guiGetScreenSize()
local boxSize = 50
local hudW, hudH = 260, 150
local startX, startY = screenWidth - 5 - hudW, - 15
local hudHTML = createBrowser(hudW, hudH, true, true)
local create = true
addEventHandler("onClientBrowserCreated", hudHTML, function()
loadBrowserURL(source, "
http://mta/local/src/index.html")
end)
local font = dxCreateFont("src/gtaFont.ttf", 14)
local health = -1
local armor = -1
local food = -1
local stamina = -1
setPedAnimation(localPlayer)
toggleAllControls(true, true, true)
local money = 0
local framesPerSecond = 0
local framesDeltaTime = 0
local lastRenderTick = false
local moneyTick = 0
setElementData(localPlayer, "toggle-->Hud", true)
setElementData(localPlayer, "toggle-->All", true)
setElementData(localPlayer, "fps", 100)
function loadStats()
setTimer(function()
health = getElementHealth(localPlayer)
executeBrowserJavascript(hudHTML, "changeHealth("..health..");")
armor = getPedArmor(localPlayer)
executeBrowserJavascript(hudHTML, "changeArmor("..armor..");")
food = getElementData(localPlayer, "char:hunger")
executeBrowserJavascript(hudHTML, "changeFood("..food..");")
stamina = getElementData(localPlayer, "stamina")
executeBrowserJavascript(hudHTML, "changeStamina("..stamina..");")
end, 800, 1)
end
addEvent("loadStats", true)
addEventHandler("loadStats", root, loadStats)
addEventHandler("onClientResourceStart", resourceRoot, loadStats)
setPlayerHudComponentVisible("all", false)
setPlayerHudComponentVisible("crosshair", true)
addCommandHandler("togglehud", function()
create = not create
end)
addEventHandler("onClientRender", root, function()
if not getElementData(localPlayer, "loggedin") then return end
if not getElementData(localPlayer, "toggle-->Hud") or not getElementData(localPlayer, "toggle-->All") then return end
if not create then return end
dxDrawImage(startX, startY, hudW, hudH, hudHTML)
if getElementHealth(localPlayer) < 10 then
dxDrawImage(0, 0, screenWidth, screenHeight, "src/damage.png")
end
dxDrawText("$ "..getMoney():gsub("#%x%x%x%x%x%x", ""), startX + 20 + 1, startY + 60 + 1, 0, 0, tocolor(0, 0, 0), 1, font, "left", "top", false, false, false, true)
dxDrawText("$ "..getMoney():gsub("#%x%x%x%x%x%x", ""), startX + 20 + 1, startY + 60 - 1, 0, 0, tocolor(0, 0, 0), 1, font, "left", "top", false, false, false, true)
dxDrawText("$ "..getMoney():gsub("#%x%x%x%x%x%x", ""), startX + 20 - 1, startY + 60 + 1, 0, 0, tocolor(0, 0, 0), 1, font, "left", "top", false, false, false, true)
dxDrawText("$ "..getMoney():gsub("#%x%x%x%x%x%x", ""), startX + 20 - 1, startY + 60 - 1, 0, 0, tocolor(0, 0, 0), 1, font, "left", "top", false, false, false, true)
dxDrawText("$ "..getMoney(), startX + 20, startY + 60, 0, 0, tocolor(255, 255, 255), 1, font, "left", "top", false, false, false, true)
if moneyTick >= getTickCount() then
dxDrawText("\n"..moneyChange:gsub("#%x%x%x%x%x%x", ""), startX + 20 + 1, startY + 60 + 1, 0, 0, tocolor(0, 0, 0), 1, font, "left", "top", false, false, false, true)
dxDrawText("\n"..moneyChange:gsub("#%x%x%x%x%x%x", ""), startX + 20 + 1, startY + 60 - 1, 0, 0, tocolor(0, 0, 0), 1, font, "left", "top", false, false, false, true)
dxDrawText("\n"..moneyChange:gsub("#%x%x%x%x%x%x", ""), startX + 20 - 1, startY + 60 + 1, 0, 0, tocolor(0, 0, 0), 1, font, "left", "top", false, false, false, true)
dxDrawText("\n"..moneyChange:gsub("#%x%x%x%x%x%x", ""), startX + 20 - 1, startY + 60 - 1, 0, 0, tocolor(0, 0, 0), 1, font, "left", "top", false, false, false, true)
dxDrawText("\n"..moneyChange, startX + 20, startY + 60, 0, 0, tocolor(255, 255, 255), 1, font, "left", "top", false, false, false, true)
end
renderFPS()
if getElementData(localPlayer, "fps") <= 20 then
hexCode = "#d24d57"
elseif getElementData(localPlayer, "fps") >= 21 and getElementData(localPlayer, "fps") <= 39 then
hexCode = "#f89406"
elseif getElementData(localPlayer, "fps") >= 40 then
hexCode = "#00aeef"
end
dxDrawText("FPS: "..getElementData(localPlayer, "fps"), startX + 1, startY + 60 + 1, startX + hudW - 10 + 1, startY + 1, tocolor(0, 0, 0), 1, font, "right", "top", false, false, false, true)
dxDrawText("FPS: "..getElementData(localPlayer, "fps"), startX + 1, startY + 60 - 1, startX + hudW - 10 + 1, startY - 1, tocolor(0, 0, 0), 1, font, "right", "top", false, false, false, true)
dxDrawText("FPS: "..getElementData(localPlayer, "fps"), startX - 1, startY + 60 + 1, startX + hudW - 10 - 1, startY + 1, tocolor(0, 0, 0), 1, font, "right", "top", false, false, false, true)
dxDrawText("FPS: "..getElementData(localPlayer, "fps"), startX - 1, startY + 60 - 1, startX + hudW - 10 - 1, startY - 1, tocolor(0, 0, 0), 1, font, "right", "top", false, false, false, true)
dxDrawText("FPS: "..hexCode..getElementData(localPlayer, "fps"), startX, startY + 60, startX + hudW - 10, startY, tocolor(255, 255, 255), 1, font, "right", "top", false, false, false, true)
local hours = getRealTime().hour
local minutes = getRealTime().minute
if hours < 10 then
hours = "0" .. hours
end
if minutes < 10 then
minutes = "0" .. minutes
end
dxDrawText("\n" .. hours .. ":" .. minutes, startX + 1, startY + 60 + 1, startX + hudW - 10 + 1, startY + 1, tocolor(0, 0, 0), 1, font, "right", "top", false, false, false, false)
dxDrawText("\n" .. hours .. ":" .. minutes, startX + 1, startY + 60 - 1, startX + hudW - 10 + 1, startY - 1, tocolor(0, 0, 0), 1, font, "right", "top", false, false, false, false)
dxDrawText("\n" .. hours .. ":" .. minutes, startX - 1, startY + 60 + 1, startX + hudW - 10 - 1, startY + 1, tocolor(0, 0, 0), 1, font, "right", "top", false, false, false, false)
dxDrawText("\n" .. hours .. ":" .. minutes, startX - 1, startY + 60 - 1, startX + hudW - 10 - 1, startY - 1, tocolor(0, 0, 0), 1, font, "right", "top", false, false, false, false)
dxDrawText("\n" .. hours .. "#00aeef:#ffffff" .. minutes, startX, startY + 60, startX + hudW - 10, startY, tocolor(255, 255, 255), 1, font, "right", "top", false, false, false, true)
if health ~= getElementHealth(localPlayer) then
health = getElementHealth(localPlayer)
executeBrowserJavascript(hudHTML, "changeHealth("..health..");")
end
if armor ~= getPedArmor(localPlayer) then
armor = getPedArmor(localPlayer)
executeBrowserJavascript(hudHTML, "changeArmor("..armor..");")
end
if food ~= getElementData(localPlayer, "char:hunger") then
food = getElementData(localPlayer, "char:hunger")
executeBrowserJavascript(hudHTML, "changeFood("..food..");")
end
if stamina ~= getElementData(localPlayer, "stamina") then
stamina = getElementData(localPlayer, "stamina")
executeBrowserJavascript(hudHTML, "changeStamina("..stamina..");")
end
end)
addEventHandler("onClientElementDataChange", root, function(dataName, oldValue)
if source == localPlayer and dataName == "char:money" and getElementData(localPlayer, "loggedin") then
local newValue = getElementData(source, "char:money") or 0
if newValue then
moneyTick = getTickCount() + 5000
moneyChange = math.abs(newValue - oldValue)
if newValue < oldValue then
moneyChange = "#d24d57$#ffffff-"..moneyChange
else
moneyChange = "#00aeef$#ffffff+"..moneyChange
end
playSound("src/money.mp3", false)
end
elseif source == localPlayer and dataName == "loggedin" then
loadStats()
end
end)
function getMoney()
local maxDrawNull = 8
local actualCharMoney = maxDrawNull - string.len(tostring(getElementData(localPlayer,"char:money")))
finalConvert = ""
for i = 0, actualCharMoney, 1 do
finalConvert = finalConvert .. "0"
end
if getElementData(localPlayer, "char:money") >= 0 then
finalConvert = finalConvert .. "#00aeef" .. thousandsStepper(getElementData(localPlayer, "char:money"))
else
finalConvert = "-" .. finalConvert .. "#d24d57" .. thousandsStepper(math.abs(getElementData(localPlayer, "char:money")))
end
return finalConvert
end
function thousandsStepper(amount)
local formatted = amount
while true do
formatted, k = string.gsub(formatted, "^(-?%d+)(%d%d%d)", '%1 %2')
if k == 0 then
break
end
end
return formatted
end
function renderFPS()
local currentTick = getTickCount()
lastRenderTick = lastRenderTick or currentTick
framesDeltaTime = framesDeltaTime + (currentTick - lastRenderTick)
lastRenderTick = currentTick
framesPerSecond = framesPerSecond + 1
if framesDeltaTime >= 1000 then
setElementData(localPlayer, "fps", framesPerSecond)
framesDeltaTime = framesDeltaTime - 1000
framesPerSecond = 0
end
end
warning = 0
setTimer(function()
if getElementData(localPlayer, "loggedin") and getElementData(localPlayer, "char:adminduty") == 0 then
local hunger = getElementData(localPlayer, "char:hunger")
if getElementData(localPlayer, "adminjail") == 1 then
return
end
if hunger > 7 then
random = math.random(4, 7)
setElementData(localPlayer, "char:hunger", hunger - random)
elseif hunger ~= 0 and hunger <= 7 then
setElementData(localPlayer, "char:hunger", 0)
else
if warning ~= 3 then
outputChatBox("#00aeef[EvolutionGaming] #ffffffKezdesz éhes lenni! Egyél valamit!",255, 255, 255, true)
warning = warning + 1
else
setElementHealth(localPlayer, getElementHealth(localPlayer) - 3)
end
end
end
end, 1000 * 60 * 6, 0)