local avgTime = 0 local varTime = 0 function calledWhenRaceStarts() if mysql_query(handler, "SELECT COUNT(*) FROM tops WHERE this_is_this_map") == 0 then avgTime = 0 varTime = 0 return end local result = mysql_query(handler, "SELECT AVG(time) FROM tops WHERE this_is_this_map") avgTime = toNumber(result) local result = mysql_query(handler, "SELECT VAR(time) FROM tops WHERE this_is_this_map") varTime = toNumber(result) end local A = 1 function calculatePoints(rank, pc, mode) if not pc then pc = g_playerCount end if not mode then mode = g_mode end local points if mode == 1 or mode == 3 then -- Race or DM if (avgTime == 0 or varTime == 0) points = A else points = A * exp((time - avgTim)^2 / (2 * varTime)) end elseif mode == 2 then -- DD points = A * 1000 * math.floor(pc - rank) end return points end function calculateMoney(rank, pc, mode) if not pc then pc = g_playerCount end if not mode then mode = g_mode end local money = 0 if mode == 1 or mode == 3 then -- Race or DM money = 200 * (1 - rank/pc) * log(pc) elseif mode == 2 then -- DD money = 200 * (1 - rank/pc) * pc ^ (1/2) end return money end