Fortress Forever

Fortress Forever (https://forums.fortress-forever.com/index.php)
-   Lua (https://forums.fortress-forever.com/forumdisplay.php?f=44)
-   -   (Request) Class Limiter (https://forums.fortress-forever.com/showthread.php?t=24394)

KubeDawg 03-30-2014 01:58 PM

Class Limiter
 
So I've been trying to get a new map to work properly but it would seem that my server.cfg file keeps getting in the way of the lua file for my map.

In my LUA file, I currently have all classes disabled except for Engineer and I'd like that class to be unlimited so anyone can choose Engineer. However, when I load my map it only allows 3 maximum Engi's per team which is the limit I have in my server.cfg file.

Shouldn't the LUA file take precedence? I mean it allows me to disable classes outright with no problems but as soon as I have a class limit set in my server.cfg file, it takes over.

Here's the code I'm using. I should mention it's in the includes part of my LUA file, originally called base_ctf, I made a copy of it called base_ctf_sg_battle so the original would not get modified. I attempted just bypassing this file altogether by putting this code directly in my map's LUA file to see if that might fix the problem but it does not.

Code:

function startup()

        SetGameDescription( "Capture the Flag" )
       
        -- set up team limits on each team
        SetPlayerLimit(Team.kBlue, 0)
        SetPlayerLimit(Team.kRed, 0)
        SetPlayerLimit(Team.kYellow, -1)
        SetPlayerLimit(Team.kGreen, -1)

        -- CTF maps generally don't have civilians,
        -- so override in map LUA file if you want 'em
        local team = GetTeam(Team.kBlue)
        team:SetClassLimit(Player.kEngineer, 0)
        team:SetClassLimit(Player.kScout, -1)
        team:SetClassLimit(Player.kSoldier, -1)
        team:SetClassLimit(Player.kMedic, -1)
        team:SetClassLimit(Player.kSpy, -1)
        team:SetClassLimit(Player.kPyro, -1)
        team:SetClassLimit(Player.kDemoman, -1)
        team:SetClassLimit(Player.kHwguy, -1)
        team:SetClassLimit(Player.kCivilian, -1)

        team = GetTeam(Team.kRed)
        team:SetClassLimit(Player.kEngineer, 0)
        team:SetClassLimit(Player.kScout, -1)
        team:SetClassLimit(Player.kSoldier, -1)
        team:SetClassLimit(Player.kMedic, -1)
        team:SetClassLimit(Player.kSpy, -1)
        team:SetClassLimit(Player.kPyro, -1)
        team:SetClassLimit(Player.kDemoman, -1)
        team:SetClassLimit(Player.kHwguy, -1)
        team:SetClassLimit(Player.kCivilian, -1)
end


the_cake 03-30-2014 08:00 PM

Do map specific cfgs work in ff?

You make a FortressForever/maps/cfg/mapname.cfg file and put what you want in it.

I think they changed it to ModName/cfg/mapname.cfg in later versions.

squeek. 03-31-2014 08:35 AM

Quote:

Originally Posted by the_cake (Post 503145)
Do map specific cfgs work in ff?

You make a FortressForever/maps/cfg/mapname.cfg file and put what you want in it.

I think they changed it to ModName/cfg/mapname.cfg in later versions.

Yep, use a map cfg.

FortressForever/cfg/mapname.cfg

Making the Lua class limits take precedence to 'solve' this would mean that the server cvars would never do anything.

KubeDawg 03-31-2014 01:16 PM

Ok thanks. Is there anything specific I need to have in this cfg file other than the code I posted?

And squeek, I think that would be how it should work, server.cfg would still always be there (UNLESS) the map lua first specifies the limit. What would be the negative cost if that were the case?

squeek. 04-01-2014 12:57 AM

Quote:

Originally Posted by KubeDawg (Post 503148)
Ok thanks. Is there anything specific I need to have in this cfg file other than the code I posted?

And squeek, I think that would be how it should work, server.cfg would still always be there (UNLESS) the map lua first specifies the limit. What would be the negative cost if that were the case?

But the map Lua always specifies the limit, even if it's just the default limit of 0. There might be a decent way to resolve conflicting class limits, but simply having the Lua setting take precedent is not the solution (especially if you want a Lua limit of 0 to override the server cvar settings, which would mean the server cvars would become useless).

Map cfgs work just like any other config and is loaded after the default server.cfg. A single "cr_engineer 0" line inside cfg/mapname.cfg will only affect that map as long as you have the default cr_engineer setting in server.cfg.

KubeDawg 04-01-2014 04:39 AM

Ok, thanks.:thumbsup:

the_cake 04-01-2014 11:00 PM

Quote:

Originally Posted by squeek. (Post 503150)
But the map Lua always specifies the limit, even if it's just the default limit of 0. There might be a decent way to resolve conflicting class limits, but simply having the Lua setting take precedent is not the solution (especially if you want a Lua limit of 0 to override the server cvar settings, which would mean the server cvars would become useless).

team:ForceClassLimit()?

This would also unbreak hunted on servers with a sniper limit.


All times are GMT. The time now is 01:28 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.