Jump to content

KD-SCOREBOARD


Recommended Posts

local root = getRootElement()
local scoresRoot = getResourceRootElement(getThisResource())

local scoreColumns = {"Matou", "Morreu", "ratio", "status"}
local isColumnActive = {}

local KDR_DECIMAL_PLACES = 2

--http://Lua-users.org/wiki/SimpleRound
local function round(num, idp)
	local mult = 10^(idp or 0)
	return math.floor(num * mult + 0.5) / mult
end

local function setScoreData (element, column, data)
	if isColumnActive[column] then
		setElementData(element, column, data)
	end
end

local function resetScores (element)
	setScoreData(element, "Matou", 0)
	setScoreData(element, "Morreu", 0)
	setScoreData(element, "ratio", "-")
	local status = ""
	if isPedDead(element) then
		status = "Dead"
	end
	setScoreData(element, "status", status)
end

local function updateRatio (element)
	local Morreu = getElementData(element, "Morreu")
	if Morreu == 0 then
		setScoreData(element, "ratio", "-")
	else
		local kdr = round(getElementData(element, "Matou") / Morreu, KDR_DECIMAL_PLACES)
		setScoreData(element, "ratio", tostring(kdr))
	end
end

function updateActiveColumns ()
	for i, column in ipairs(scoreColumns) do
		if get(column) then
			isColumnActive[column] = true
			exports.scoreboard:addScoreboardColumn(column)
		elseif isColumnActive[column] then
			isColumnActive[column] = false
			exports.scoreboard:removeScoreboardColumn(column)
		end
	end
end

addEventHandler("onResourceStart", scoresRoot,
	function ()
		updateActiveColumns()
		for i, player in ipairs(getElementsByType("player")) do
			resetScores(player)
		end
	end
)

addEventHandler("onResourceStop", scoresRoot,
	function ()
		for i, column in ipairs(scoreColumns) do
			if isColumnActive[column] then
				exports.scoreboard:removeScoreboardColumn(column)
			end
		end
	end
)

addEventHandler("onPlayerJoin", root,
	function ()
		resetScores(source)
	end
)

addEventHandler("onPlayerWasted", root,
	function (ammo, killer, weapon)
		if killer then
			if killer ~= source then
				-- killer killed victim
				setScoreData(killer, "Matou", getElementData(killer, "Matou") + 1)
				setScoreData(source, "Morreu", getElementData(source, "Morreu") + 1)
				if isColumnActive["ratio"] then
					updateRatio(killer)
					updateRatio(source)
				end
			else
				-- victim killed himself
				setScoreData(source, "self", getElementData(source, "self") + 1)
			end
		else
			-- victim died
			setScoreData(source, "Morreu", getElementData(source, "Morreu") + 1)
			if isColumnActive["ratio"] then
				updateRatio(source)
			end
		end
		
		setScoreData(source, "status", "Dead")
	end
)

addEventHandler("onPlayerSpawn", root,
	function ()
		setScoreData(source, "status", "")
	end
)

addCommandHandler("score",
	function (player)
		if player then
			for i, column in ipairs(scoreColumns) do
				if column == "status" then
					break
				end
				if isColumnActive[column] then
					exports.scoreboard:addScoreboardColumn(column)
					outputConsole(column .. ": " .. getElementData(player, column), player)
				end
			end
		end
	end
)

Baixei esse script de kd, porém eu queria que ele salva-se as informação. Soque toda vez que eu entro no servidor as informação é resetada, como eu posso fazer para converter isso?

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...