There were some bugs regarding the round function, which would make /c base not work, and not setting the CPCount to 20 when you finish a round.

Just replace this on the function.nut (line 87) :

`function RoundUpdate()`

{

AttHp = 0;

DefHp = 0;

if (RoundActive == false)

{

UpdateTimer.Stop();

local i = 0, p = GetPlayers();

while (i <= p)

{

local plr = FindPlayer(i);

if (plr)

{

if (plr.IsSpawned) Announce("~r~C~b~AD", plr, 1);

}

i++;

}

return;

}

if (Paused == true) return;

SecRemain--;

if(SecRemain < 0)

{

SecRemain = 59;

MinRemain--;

if(MinRemain < 0)

{

ClientMessageToAll("Base time exceeded", 255,127,36);

EndRound(1);

return;

}

}

if(PlayerInCP != -1)

{

if(IsPlayerInCP(PlayerInCP) == true)

{

CPCount--;

if(CPCount == 0)

{

EndRound(3);

CPCount = 20;

return;

}

}

else

{

PlayerInCP = -1;

CPCount = 20;

}

}

local i = 0, p = GetPlayers(), aalive = 0, dalive = 0;

while (i <= p)

{

local plr = FindPlayer(i);

if (plr)

{

if (pinfo[i].InRound)

{

if (pinfo[i].Side == "Att")

{

aalive++;

AttHp += plr.Health;

AttHp += plr.Armour;

plr.Score = (plr.Health + plr.Armour);

if (PlayerInCP == -1)

{

if (IsPlayerInCP(i))

{

PlayerInCP = i;

}

}

}

else if (pinfo[i].Side == "Def")

{

dalive++;

DefHp += plr.Health;

DefHp += plr.Armour;

plr.Score = (plr.Health + plr.Armour);

}

}

}

i++;

}

local y = 0, h = GetPlayers();

while (y <= h)

{

local plr = FindPlayer(y);

if (plr)

{

if (plr.IsSpawned)

{

if (PlayerInCP == -1)

{

if (SecRemain > 9)

{

Announce("~b~" + MinRemain + ":" + SecRemain, plr, 1);

}

else Announce("~b~" + MinRemain + ":0" + SecRemain, plr, 1);

}

else Announce("~y~ " + CPCount, plr, 1);

}

}

y++;

}

if ((aalive < 1) || dalive < 1) Debug();

}

function.nut: 542

`function round(num, idp)`

{

local mult = 10 ^ idp.tointeger();

return floor( num * mult + 0.5 ) / mult;

}

main.nut: 230

`else if (cmd == "base")`

{

if (RoundActive)

{

local dist = distance(player.Pos.x, player.Pos.y, CurrentCP.x, CurrentCP.y);

local dir = direction(player.Pos.x, player.Pos.y, CurrentCP.x, CurrentCP.y);

if (dist > 1000) dist = round((dist/1000), 2) + "Km";

else dist = round(dist, 2) + "m";

ClientMessage("Base: " + Bases[CurrentBase].Name + ", " + dist + " " + dir, player, 255,127,36);

}

else ClientMessage("Round is not active.", player, 255,127,36);

}

And hopefully it will work.