diff --git a/XP Spreadsheet.ods b/XP Spreadsheet.ods index 34e3817..ec69bde 100644 Binary files a/XP Spreadsheet.ods and b/XP Spreadsheet.ods differ diff --git a/lua/d3stats/gamemodes/sv_zombiesurvival.lua b/lua/d3stats/gamemodes/sv_zombiesurvival.lua index 4eb8566..22b1e05 100644 --- a/lua/d3stats/gamemodes/sv_zombiesurvival.lua +++ b/lua/d3stats/gamemodes/sv_zombiesurvival.lua @@ -22,16 +22,20 @@ end ) -- Message on levelchange hook.Add( "D3Stats_LevelChanged", "D3Stats_ZS_LevelChanged", function ( ply, oldLevel, Level ) - ply:CenterNotify( Color( 0, 255, 255 ), "You ascended to level " .. tostring( Level ) .. " \"" .. d3stats.Levels[Level].Name .. "\"") + if Level > oldLevel then + ply:CenterNotify( Color( 0, 255, 255 ), string.format( d3stats.Message.Level_Ascended, Level, d3stats.Levels[Level].Name ) ) + else + ply:CenterNotify( Color( 0, 255, 255 ), string.format( d3stats.Message.Level_Changed, Level, d3stats.Levels[Level].Name ) ) + end end ) -- Handle "Use_Hammer" permission. TODO: Only prevent that the person can nail things hook.Add( "PlayerSwitchWeapon", "D3Stats_ZS_EquipHammer", function( ply, oldWeapon, newWeapon ) local Class = newWeapon:GetClass() - if not ply:D3Stats_HasPermission( "Use_Hammer" ) then - if Class == "weapon_zs_hammer" or Class == "weapon_zs_electrohammer" then - ply:CenterNotify( Color( 255, 0, 0 ), string.format( d3stats.Disallow_Hold_Hammer, d3stats.GetPermissionLevel( "Use_Hammer" ) ) ) + if Class == "weapon_zs_hammer" or Class == "weapon_zs_electrohammer" then + if not ply:D3Stats_HasPermission( "Use_Hammer" ) then + ply:CenterNotify( Color( 255, 0, 0 ), string.format( d3stats.Message.Disallow_Hold_Hammer, d3stats.GetPermissionLevel( "Use_Hammer" ) ) ) return true end end diff --git a/lua/d3stats/sh_concommand.lua b/lua/d3stats/sh_concommand.lua index 321a728..5c7bda9 100644 --- a/lua/d3stats/sh_concommand.lua +++ b/lua/d3stats/sh_concommand.lua @@ -1,7 +1,7 @@ if SERVER then concommand.Add( "d3stats_clearall", function( ply, cmd, args ) - print( "Test asd asdasdasd!" ) + print( "What the hell are you doing?" ) end ) end \ No newline at end of file diff --git a/lua/d3stats/sh_settings.lua b/lua/d3stats/sh_settings.lua index 7899faa..766410c 100644 --- a/lua/d3stats/sh_settings.lua +++ b/lua/d3stats/sh_settings.lua @@ -5,19 +5,19 @@ Settings and level definitions are stored in here ]] -- Permissions --- 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 --- Team: Reduces count to the specified team. In ZS: TEAM_SURVIVOR = 4, +-- - 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 +-- - Team: Reduces count to the specified team. In ZS: TEAM_SURVIVOR = 4, d3stats.Permissions = { - ["Buy_Hammer"] = { AllowIfLessThan = 4, Team = 4 }, - ["Use_Hammer"] = { AllowIfLessThan = 4, Team = 4 }, + --["Buy_Hammer"] = { AllowIfLessThan = 4, Team = 4 }, + --["Use_Hammer"] = { AllowIfLessThan = 4, Team = 4 }, } -- Levels, please sort by XP d3stats.Levels = { - { XP_needed = 500, Name = "Citizen" }, + { XP_needed = 500, Name = "Kleiner" }, { XP_needed = 1370, Name = "Survivor" }, - { XP_needed = 2612, Name = "Rogue" }, + { XP_needed = 2612, Name = "Helper" }, { XP_needed = 4225, Name = "Engineer", Permissions = { ["Buy_Hammer"] = true, ["Use_Hammer"] = true } }, { XP_needed = 6209, Name = "Scout" }, { XP_needed = 8564, Name = "Officer" }, @@ -49,6 +49,7 @@ d3stats.Levels = { { XP_needed = 200000, Name = "God" }, } +-- Human reward settings d3stats.PlayerPointsAdded_Limit = 200 -- Ignore all "PlayerPointsAdded" callbacks above this XP value -- Zombie reward is calculated as follows: Reward = math.clamp( Static + Fraction * Human_Points, Min, Max ) @@ -58,10 +59,13 @@ d3stats.ZombieKilledHuman_Max = 1000 -- Upper XP reward clamp d3stats.ZombieKilledHuman_Min = 0 -- Lower XP reward clamp -- Messages TODO: Multilanguage -d3stats.Disallow_Hold_Hammer = "You can't use the hammer until you have reached level %i" -d3stats.MapStats_Zero = "We are playing %s." -- Message to players who just joined -d3stats.MapStats = "We are playing %s. Humans won %i of %i times (%.1f%%)" -- Message to players who just joined (With statistics) -d3stats.MapStats_End = "%s has been won %i of %i times (%.1f%%)" -- Message to all players at the end of the round (With statistics) +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) if CLIENT then -- Overlay positions diff --git a/lua/d3stats/sv_map.lua b/lua/d3stats/sv_map.lua index 3ad8df9..4f12a51 100644 --- a/lua/d3stats/sv_map.lua +++ b/lua/d3stats/sv_map.lua @@ -5,12 +5,12 @@ function d3stats.Map_Message( roundend, ply ) local Message if count > 0 then if roundend == true then - Message = string.format( d3stats.MapStats_End, map, wins, count, wins / count * 100 ) + Message = string.format( d3stats.Message.MapStats_End, map, wins, count, wins / count * 100 ) else - Message = string.format( d3stats.MapStats, map, wins, count, wins / count * 100 ) + Message = string.format( d3stats.Message.MapStats, map, wins, count, wins / count * 100 ) end else - Message = string.format( d3stats.MapStats_Zero, map ) + Message = string.format( d3stats.Message.MapStats_Zero, map ) end if ply then @@ -22,10 +22,12 @@ end function d3stats.Map_End( won ) local map = game.GetMap() + local players = #player.GetAll() - d3stats.Storage.Map_AddOutcome( map, won, #player.GetAll() ) - - d3stats.Map_Message( true ) + if players > 0 then + d3stats.Storage.Map_AddOutcome( map, won, players ) + d3stats.Map_Message( true ) + end end --d3stats.Map_End( false )