I made a fresh server, added prop_hunt, and im getting this error:
[ERROR] gamemodes/prop_hunt/gamemode/sh_init.lua:14: attempt to call global 'IncludePlayerClasses' (a nil value)
1. unknown - gamemodes/prop_hunt/gamemode/sh_init.lua:14
2. include - [C]:-1
3. unknown - gamemodes/prop_hunt/gamemode/cl_init.lua:2
Here’s the file locations:
cl_init.lua:
// Include the needed files
include("sh_init.lua")
//include("cl_hints.lua")
// Decides where the player view should be (forces third person for props)
function GM:CalcView(pl, origin, angles, fov)
local view = {}
if blind then
view.origin = Vector(20000, 0, 0)
view.angles = Angle(0, 0, 0)
view.fov = fov
return view
end
view.origin = origin
view.angles = angles
view.fov = fov
// Give the active weapon a go at changing the viewmodel position
if pl:Team() == TEAM_PROPS && pl:Alive() then
view.origin = origin + Vector(0, 0, hullz - 60) + (angles:Forward() * -80)
else
local wep = pl:GetActiveWeapon()
if wep && wep != NULL then
local func = wep.GetViewModelPosition
if func then
view.vm_origin, view.vm_angles = func(wep, origin*1, angles*1) // Note: *1 to copy the object so the child function can't edit it.
end
local func = wep.CalcView
if func then
view.origin, view.angles, view.fov = func(wep, pl, origin*1, angles*1, fov) // Note: *1 to copy the object so the child function can't edit it.
end
end
end
return view
end
// Draw round timeleft and hunter release timeleft
function HUDPaint()
if GetGlobalBool("InRound", false) then
local blindlock_time_left = (GetConVar("HUNTER_BLINDLOCK_TIME"):GetInt() - (CurTime() - GetGlobalFloat("RoundStartTime", 0))) + 1
if blindlock_time_left < 1 && blindlock_time_left > -6 then
blindlock_time_left_msg = "Hunters have been released!"
elseif blindlock_time_left > 0 then
blindlock_time_left_msg = "Hunters will be unblinded and released in "..string.ToMinutesSeconds(blindlock_time_left)
else
blindlock_time_left_msg = nil
end
if blindlock_time_left_msg then
surface.SetFont("MyFont")
local tw, th = surface.GetTextSize(blindlock_time_left_msg)
draw.RoundedBox(8, 20, 20, tw + 20, 26, Color(0, 0, 0, 75))
draw.DrawText(blindlock_time_left_msg, "MyFont", 31, 26, Color(255, 255, 0, 255), TEXT_ALIGN_LEFT)
end
end
end
hook.Add("HUDPaint", "PH_HUDPaint", HUDPaint)
// Called immediately after starting the gamemode
function Initialize()
hullz = 80
//surface.CreateFont("Arial", 14, 1200, true, false, "ph_arial")
surface.CreateFont( "MyFont",
{
font = "Arial",
size = 14,
weight = 1200,
antialias = true,
underline = false
})
end
hook.Add("Initialize", "PH_Initialize", Initialize)
// Resets the player hull
function ResetHull(um)
if LocalPlayer() && LocalPlayer():IsValid() then
LocalPlayer():ResetHull()
hullz = 80
end
end
usermessage.Hook("ResetHull", ResetHull)
// Sets the local blind variable to be used in CalcView
function SetBlind(um)
blind = um:ReadBool()
end
usermessage.Hook("SetBlind", SetBlind)
// Sets the player hull
function SetHull(um)
hullxy = um:ReadLong()
hullz = um:ReadLong()
new_health = um:ReadLong()
LocalPlayer():SetHull(Vector(hullxy * -1, hullxy * -1, 0), Vector(hullxy, hullxy, hullz))
LocalPlayer():SetHullDuck(Vector(hullxy * -1, hullxy * -1, 0), Vector(hullxy, hullxy, hullz))
LocalPlayer():SetHealth(new_health)
end
usermessage.Hook("SetHull", SetHull)
sh_init.lua:
// Include the required lua files
include("sh_config.lua")
include("sh_player.lua")
// Include the configuration for this map
if file.Exists("../gamemodes/prop_hunt/gamemode/maps/"..game.GetMap()..".lua", "LUA") || file.Exists("../lua_temp/prop_hunt/gamemode/maps/"..game.GetMap()..".lua", "LUA") then
include("maps/"..game.GetMap()..".lua")
end
// Fretta!
DeriveGamemode("fretta")
IncludePlayerClasses()
// Information about the gamemode
GM.Name = "Prop Hunt"
GM.Author = "Kow@lski (Original by AMT)"
GM.Email = "kowalski.7cc@xspacesoft.com"
GM.Website = "http://xspacesoft.github.io/PropHunt/"
// Help info
GM.Help = [[Prop Hunt is a twist on the classic backyard game Hide and Seek.
As a Prop you have ]]..GetConVar("HUNTER_BLINDLOCK_TIME"):GetInt()..[[ seconds to replicate an existing prop on the map and then find a good hiding spot. Press [E] to replicate the prop you are looking at. Your health is scaled based on the size of the prop you replicate.
As a Hunter you will be blindfolded for the first ]]..GetConVar("HUNTER_BLINDLOCK_TIME"):GetInt()..[[ seconds of the round while the Props hide. When your blindfold is taken off, you will need to find props controlled by players and kill them. Damaging non-player props will lower your health significantly. However, killing a Prop will increase your health by ]]..GetConVar("HUNTER_KILL_BONUS"):GetInt()..[[ points.
Both teams can press [F3] to play a taunt sound.]]
// Fretta configuration
GM.AddFragsToTeamScore = true
GM.CanOnlySpectateOwnTeam = true
GM.Data = {}
GM.EnableFreezeCam = true
GM.GameLength = GAME_TIME
GM.NoAutomaticSpawning = true
GM.NoNonPlayerPlayerDamage = true
GM.NoPlayerPlayerDamage = true
GM.RoundBased = true
GM.RoundLimit = ROUNDS_PER_MAP
GM.RoundLength = ROUND_TIME
GM.RoundPreStartTime = 0
GM.SelectModel = false
GM.SuicideString = "couldn't take the pressure and committed suicide."
GM.TeamBased = true
// Called on gamemdoe initialization to create teams
function GM:CreateTeams()
if !GAMEMODE.TeamBased then
return
end
TEAM_HUNTERS = 1
team.SetUp(TEAM_HUNTERS, "Hunters", Color(150, 205, 255, 255))
team.SetSpawnPoint(TEAM_HUNTERS, {"info_player_counterterrorist", "info_player_combine", "info_player_deathmatch", "info_player_axis"})
team.SetClass(TEAM_HUNTERS, {"Hunter"})
TEAM_PROPS = 2
team.SetUp(TEAM_PROPS, "Props", Color(255, 60, 60, 255))
team.SetSpawnPoint(TEAM_PROPS, {"info_player_terrorist", "info_player_rebel", "info_player_deathmatch", "info_player_allies"})
team.SetClass(TEAM_PROPS, {"Prop"})
end
Any help would be awesome!