2020-01-22 14:25:58 +00:00
|
|
|
-- Copyright (c) 2020 David Vogel
|
|
|
|
--
|
|
|
|
-- This software is released under the MIT License.
|
|
|
|
-- https://opensource.org/licenses/MIT
|
|
|
|
|
2016-10-05 12:30:35 +00:00
|
|
|
--[[
|
|
|
|
|
|
|
|
Settings and level definitions are stored in here
|
|
|
|
|
|
|
|
]]
|
|
|
|
|
|
|
|
-- Permissions
|
2016-10-13 21:59:52 +00:00
|
|
|
-- - Everything not in this list will be allowed by default
|
|
|
|
-- - AllowIfLessThan: If the amount of players who have the permission is lower than this number, allow it anyway
|
2020-01-22 14:25:58 +00:00
|
|
|
-- - Team: Only counts "AllowIfLessThan" in the specified team. In ZS: TEAM_SURVIVOR = 4,
|
2018-08-03 09:22:18 +00:00
|
|
|
D3stats.Permissions = {
|
|
|
|
--["Buy_Hammer"] = {AllowIfLessThan = 4, Team = 4},
|
|
|
|
--["Use_Hammer"] = {AllowIfLessThan = 4, Team = 4},
|
2016-10-05 12:30:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
-- Levels, please sort by XP
|
2018-08-03 09:22:18 +00:00
|
|
|
D3stats.Levels = {
|
2016-10-13 21:59:52 +00:00
|
|
|
{ XP_needed = 500, Name = "Kleiner" },
|
2016-10-09 16:11:56 +00:00
|
|
|
{ XP_needed = 1370, Name = "Survivor" },
|
2016-10-13 21:59:52 +00:00
|
|
|
{ XP_needed = 2612, Name = "Helper" },
|
2016-10-09 16:11:56 +00:00
|
|
|
{ XP_needed = 4225, Name = "Engineer", Permissions = { ["Buy_Hammer"] = true, ["Use_Hammer"] = true } },
|
|
|
|
{ XP_needed = 6209, Name = "Scout" },
|
|
|
|
{ XP_needed = 8564, Name = "Officer" },
|
|
|
|
{ XP_needed = 11290, Name = "Guardian" },
|
|
|
|
{ XP_needed = 14387, Name = "Fighter" },
|
|
|
|
{ XP_needed = 17854, Name = "Brawler" },
|
|
|
|
{ XP_needed = 21693, Name = "Scrapper" },
|
|
|
|
{ XP_needed = 25903, Name = "Skirmisher" },
|
|
|
|
{ XP_needed = 30483, Name = "Battler" },
|
|
|
|
{ XP_needed = 35435, Name = "Marauder" },
|
|
|
|
{ XP_needed = 40758, Name = "Slayer" },
|
|
|
|
{ XP_needed = 46451, Name = "Mercenary" },
|
|
|
|
{ XP_needed = 52516, Name = "Swordsman" },
|
|
|
|
{ XP_needed = 58951, Name = "Freelancer" },
|
|
|
|
{ XP_needed = 65758, Name = "Swashbuckler" },
|
|
|
|
{ XP_needed = 72935, Name = "Vanquisher" },
|
|
|
|
{ XP_needed = 80483, Name = "Exemplar" },
|
|
|
|
{ XP_needed = 88403, Name = "Conqueror" },
|
|
|
|
{ XP_needed = 96693, Name = "Specialist" },
|
|
|
|
{ XP_needed = 105354, Name = "Lieutenant" },
|
|
|
|
{ XP_needed = 114387, Name = "Captain" },
|
|
|
|
{ XP_needed = 123790, Name = "Major" },
|
|
|
|
{ XP_needed = 133564, Name = "Colonel" },
|
|
|
|
{ XP_needed = 143709, Name = "General" },
|
|
|
|
{ XP_needed = 154225, Name = "Champion" },
|
|
|
|
{ XP_needed = 165112, Name = "Hero" },
|
|
|
|
{ XP_needed = 176370, Name = "Legend" },
|
|
|
|
{ XP_needed = 188000, Name = "Demigod" },
|
|
|
|
{ XP_needed = 200000, Name = "God" },
|
2016-10-05 12:30:35 +00:00
|
|
|
}
|
|
|
|
|
2016-10-13 21:59:52 +00:00
|
|
|
-- Human reward settings
|
2018-08-03 09:22:18 +00:00
|
|
|
D3stats.PlayerPointsAdded_Limit = 200 -- Ignore all "PlayerPointsAdded" callbacks above this XP value
|
2016-10-05 12:30:35 +00:00
|
|
|
|
2018-08-03 09:22:18 +00:00
|
|
|
-- Zombie reward is calculated as follows: Reward = math.clamp(Static + Fraction * Human_Points, Min, Max)
|
|
|
|
D3stats.ZombieKilledHuman_Fraction = 1.0 -- Amount of XP a zombie gets of the killed humans points
|
|
|
|
D3stats.ZombieKilledHuman_Static = 100 -- Amount of XP a zombie gets for killing a human
|
|
|
|
D3stats.ZombieKilledHuman_Max = 1000 -- Upper XP reward clamp
|
|
|
|
D3stats.ZombieKilledHuman_Min = 0 -- Lower XP reward clamp
|
2016-10-07 07:31:59 +00:00
|
|
|
|
2016-10-09 16:11:56 +00:00
|
|
|
-- Messages TODO: Multilanguage
|
2018-08-03 09:22:18 +00:00
|
|
|
D3stats.Message = {}
|
|
|
|
D3stats.Message.Level_Ascended = "You ascended to level %i \"%s\""
|
|
|
|
D3stats.Message.Level_Changed = "Your level changed to level %i \"%s\""
|
|
|
|
D3stats.Message.Disallow_Hold_Hammer = "You can't use the hammer until you have reached level %i"
|
|
|
|
D3stats.Message.MapStats_Zero = "We are playing %s." -- Message to players who just joined
|
|
|
|
D3stats.Message.MapStats = "We are playing %s. Humans won %i of %i times (%.1f%%)" -- Message to players who just joined (With statistics)
|
|
|
|
D3stats.Message.MapStats_End = "%s has been won %i of %i times (%.1f%%)" -- Message to all players at the end of the round (With statistics)
|
2016-10-09 16:11:56 +00:00
|
|
|
|
2016-10-07 07:31:59 +00:00
|
|
|
if CLIENT then
|
2016-10-09 16:11:56 +00:00
|
|
|
-- Overlay positions
|
2018-08-03 09:22:18 +00:00
|
|
|
D3stats.Overlay_X = 0
|
|
|
|
D3stats.Overlay_Y = 80 * math.Clamp(ScrH() / 1080, 0.6, 1) -- This needs to be redone
|
2016-10-09 16:11:56 +00:00
|
|
|
|
|
|
|
-- Fonts
|
2018-08-03 09:22:18 +00:00
|
|
|
surface.CreateFont("D3stats_OverlayFont_XP", {
|
2016-10-09 16:11:56 +00:00
|
|
|
font = "Ghoulish Fright AOE",
|
|
|
|
extended = false,
|
|
|
|
size = 22,
|
|
|
|
weight = 0,
|
|
|
|
blursize = 0,
|
|
|
|
scanlines = 0,
|
|
|
|
antialias = true,
|
|
|
|
underline = false,
|
|
|
|
italic = false,
|
|
|
|
strikeout = false,
|
|
|
|
symbol = false,
|
|
|
|
rotary = false,
|
|
|
|
shadow = false,
|
|
|
|
additive = false,
|
|
|
|
outline = false,
|
2018-08-03 09:22:18 +00:00
|
|
|
})
|
|
|
|
surface.CreateFont("D3stats_OverlayFont_Level", {
|
2016-10-09 16:11:56 +00:00
|
|
|
font = "Haunt AOE",
|
|
|
|
extended = false,
|
|
|
|
size = 26,
|
2016-10-07 07:31:59 +00:00
|
|
|
weight = 0,
|
|
|
|
blursize = 0,
|
|
|
|
scanlines = 0,
|
|
|
|
antialias = true,
|
|
|
|
underline = false,
|
|
|
|
italic = false,
|
|
|
|
strikeout = false,
|
|
|
|
symbol = false,
|
|
|
|
rotary = false,
|
|
|
|
shadow = false,
|
|
|
|
additive = false,
|
|
|
|
outline = true,
|
2018-08-03 09:22:18 +00:00
|
|
|
})
|
2016-10-09 16:11:56 +00:00
|
|
|
|
2018-08-03 09:22:18 +00:00
|
|
|
D3stats.Font_Overlay_XP = "D3stats_OverlayFont_XP"
|
|
|
|
D3stats.Font_Overlay_Level = "D3stats_OverlayFont_Level"
|
|
|
|
D3stats.Font_TargetID = "ZSHUDFontTiny" -- Use ZS Font
|
2016-10-07 07:31:59 +00:00
|
|
|
end
|