REQ: BO2 mod for scorelimit
-
Not sure if this is allowed, but guess I will find out soon enough.
Can anyone that is fmiliar with creating BO2 mods make a mod that allows the scorelimit/timelimit to adjust based on number of players on the server?
I would like something like 2-6 players = 10 min / 75 scorelimit
7-12 players = 15 min / 125 scorelimit
13+ = 20 min / 175 scorelimitSo it will scale up or down according to how many are on the server. Hope that makes sense.
Players complain that when the server is full the rounds end too quickly. I would like the server to be able to auto scale based on server population.
There is something similar to this on my CoD4 server with OpenWarfare mod, where the number of players changes the map rotation so fewer players uses smaller maps and as the server fills the map rotation changs to larger maps and eliminates the smaller maps. Same sort of concept.
Anyone?
-
TacTicToe You could do it the same way you describe for rotation. Based on how many players there are at the end of a match, define in the rotation which "cfg" to use for the next match.
-
I have something that can help you on my Github: https://github.com/Resxt/Plutonium-IW5-Scripts/blob/main/custom_killstreaks_rewards/automatic_weapons_rewards.gsc
Take a look at the
kills_limit
andtime_limit
variables and theSetLimits()
function
If you want to change the limits based on player count when the game starts, inInit()
you'd add a check for player countInit() { kills_limit = 60; if (level.players.size <= 6) { kills_limit = 80; } else if (level.players.size > 6 && level.players.size <= 12) { kills_limit = 120; } SetLimits(kills_limit); }
Or instead of using the
SetLimits()
function you can load a different cfg as Kalitos said, this is probably easier -
#include maps\mp\_utility; #include common_scripts\utility; #include maps\mp\gametypes\_hud_util; Init() { kills_limit = 60; time_limit = 10; if (level.players.size <= 6) { kills_limit = 80; time_limit = 10; } else if (level.players.size > 6 && level.players.size <= 12) { kills_limit = 125; time_limit = 15; } else if (level.players.size > 13) { kills_limit = 175; time_limit = 20; } SetLimits(kills_limit,time_limit); } SetLimits(kills_limit, time_limit) { score_multiplier = 0; SetDvar("scr_" + level.gameType + "_scorelimit", kills_limit * score_multiplier); SetDvar("scorelimit", kills_limit * score_multiplier); if (time_limit != undefined) { SetDvar("scr_" + level.gameType + "_timelimit", time_limit); SetDvar("timelimit", time_limit); } }
Gives me an error:
******* script runtime error *******
pair '10' and 'undefined' has unmatching types 'integer' and 'undefined'at function "setlimits" in file "scripts/kills_limit.gsc" at function "init" in file "scripts/kills_limit.gsc"
******* script runtime error *******
cannot cast undefined to bool in a control statementat function "setlimits" in file "scripts/kills_limit.gsc" at function "init" in file "scripts/kills_limit.gsc"
Sorry. Im not too good at GSC scripting. PHP and Python, much better. I can follow along with alot of this, but this error did not make sense.
-
TacTicToe it's not a problem on your side, some of my scripts have warnings that I didn't fix yet.
I have those too on my server but it works fine. Did you try it?Changing
if (time_limit != undefined)
byif (IsDefined(time_limit))
should remove the warningNote that
level.players
also gets bots on the servers so if you wanna remove them from the players count you'll need a check for bots. -
Resxt said in REQ: BO2 mod for scorelimit:
if (IsDefined(time_limit))
Worked flawlessly on IW5, thank you.
Not so much on BO2.
-
TacTicToe Yeah this was to give you a rough idea, some functions might be different. As for BO2 I wouldn't know how to do that but it should be similar