All pastes #273123 Raw Edit

Unnamed

public lua v1 · immutable
·published 2006-12-09 16:44 UTC
rendered paste body
-- Player stat settings-- 0 - Kills-- 1 - Deaths-- 2 - items picked up-- 3 - current consecutive kills-- 4 - vehicles destroyed-- 5 - -- 6 - -- 7 --- 8 - -- 9 -- highest consecutive killsg_arena = nil -- holds the arena objcetg_bGameRunning = false -- says whether the game is running or notg_statsEvent = 0 -- holds the event for displaying stats when the game endsg_gameTime = nil -- holds the game timefunction WipePlayerStats(player)	player:setstat(0,0)	player:setstat(1,0)	player:setstat(2,0) 	player:setstat(3,0)	player:setstat(4,0)	player:setstat(5,0)	player:setstat(6,0)	player:setstat(7,0)	player:setstat(8,0)	player:setstat(9,0)endfunction Player_OnJoin(player)    player:message("Welcome to the Battlefield " .. player.m_name .. "")	WipePlayerStats(player)endfunction DisplayStats(ev)	g_bGameRunning = false		local bestKiller = ""	local bestVictim = ""	local bestItem = ""	local bestCon = ""	local mostKills = 0	local mostDeaths = 0	local mostItems = 0	local mostCon = 0		for x = 1, g_arena:num() do   --This gets the person with most kills		local player = g_arena:get(x)		if (player:getstat(0) > mostKills) then			mostKills = player:getstat(0)			bestKiller = player.m_name		elseif (player:getstat(0) == mostKills) then			bestKiller = ("" .. bestKiller .. ", " .. player.m_name .. "")		end				if (player:getstat(1) > mostDeaths) then			mostDeaths = player:getstat(1)			bestVictim = player.m_name		elseif (player:getstat(1) == mostDeaths) then			bestVictim = ("" .. bestVictim .. ", " .. player.m_name .. "")		end				if (player:getstat(2) > mostItems) then			mostItems = player:getstat(2)			bestItem = player.m_name		elseif (player:getstat(2) == mostItems) then			bestItem = ("" .. bestItem .. ", " .. player.m_name .. "")		end				if (player:getstat(9) > mostCon) then			mostCon = player:getstat(9)			bestCon = player.m_name		elseif (player:getstat(9) == mostCon) then			bestCon = ("" .. bestCon .. ", " .. player.m_name .. "")		end			end		-------------------------------------------------------------------------	-- GAME TIME STATISTICS --	if (g_gameTime ~= nil) then		local diff = (os.time() - g_gameTime)		local minutes = math.floor(diff / 60)		if (minutes == 1) then			local seconds = (diff-60*math.floor(diff/60))			g_arena:message("Total Game Time: " .. minutes .. " minute, " .. seconds .. " seconds")		elseif (minutes > 1) then			local seconds = (diff-60*math.floor(diff/60))			g_arena:message("Total Game Time: " .. minutes .. " minutes, " .. seconds .. " seconds")		else			g_arena:message("Total Game Time: " .. diff .. " seconds")		end	else		g_arena:message("No game is running, weird..")	end	------------------------------------------------------------------------			------------------------------------------------------------------------	-- PLAYER STATISTICS --	if (mostKills == 0) then		g_arena:message("!_    No one got any kills!")	else		g_arena:message("!_    Most Kills: " .. bestKiller .. "(" .. mostKills .. ")")	end		if (mostCon == 0) then		g_arena:message("!_    No one got any consecutive kills!")	else		g_arena:message("!_    Most Consecutive Kills: " .. bestCon .. "(" .. mostCon .. ")")	end		if (mostItems == 0) then		g_arena:message("!_    No one picked any items up!")	else		g_arena:message("!_    Most Items Picked Up: " .. bestItem .. "(" .. mostItems .. ")")	end		if (mostDeaths == 0) then		g_arena:message("!_    No one got any deaths!")	else		g_arena:message("!_    Most Deaths: " .. bestVictim .. "(" .. mostDeaths .. ")")	end	------------------------------------------------------------------------endfunction Arena_OnGameEnd()	local blah = 0	g_statsEvent = event_create(DisplayStats, 1000, g_arena)endfunction Arena_OnGameStart()	g_bGameRunning = true	g_gameTime = os.time()		--g_arena:message("has the game started??.testterr..")		for x = 1, g_arena:num() do		local player = g_arena:get(x)		WipePlayerStats(player)	endendfunction Player_OnDeath(killer, victim)	if (g_bGameRunning == false) then -- if the game isn't running, don't record stats		return	elseif (killer:valid() == false) then -- if the killer was a turret/terrain we just increase the death count		IncreaseDeath(victim) 		return	elseif (killer.m_name == victim.m_name) then -- if the player killed themself we just increase the death count		IncreaseDeath(victim)		return	end		-- else one player killed another player, so we increase the kill count and death count respectively	IncreaseKill(killer)	IncreaseDeath(victim)endfunction IncreaseKill(killer)	killer:setstat(0,(killer:getstat(0) + 1)) -- increase kills	killer:setstat(3,(killer:getstat(3) + 1)) -- increase consec kills	if (killer:getstat(3) > killer:getstat(9)) then -- if current consec kills is greater than highest consec kills, replace it		killer:setstat(9,killer:getstat(3))	endendfunction IncreaseDeath(victim)	victim:setstat(1,(victim:getstat(1) + 1)) -- increase deaths	victim:setstat(3,0) -- reset consecutive killsendfunction IncreasePickUp(looter)	looter:setstat(2,(looter:getstat(2) + 1))end