CYBRO
CYBRO
function GMHelper:destroyAllBed(player)
for _, team in pairs(GameMatch.Teams) do
if team.isHaveBed then
for _, bedPos in pairs(team.bedPos) do
EngineWorld:setBlock(bedPos, 0)
end
team:destroyBed(player)
player:onDestroyBed(team)
end
end
end
function GMHelper:killSelf(player)
player:subHealth(10000)
end
function GMHelper:killPlayer(player)
local players = PlayerManager:getPlayers2()
for _, _player in pairs(players) do
if _player.realLife and _player.teamId ~= player.teamId then
_player:subHealth(10000)
break
end
end
end
function GMHelper:killAllPlayer(player)
local players = PlayerManager:getPlayers2()
for _, _player in pairs(players) do
if _player.realLife and _player.teamId ~= player.teamId then
_player:subHealth(10000)
end
end
end
function GMHelper:startGame(player)
GameConfig.startPlayers = 0
GameConfig.waitingPlayerTime = 1
GameConfig.waitingPlayerTime2 = 0
end
function GMHelper:addMonster(player)
MonsterManager:createMonster(player:getPosition(),
Define.MonsterType.ServerMonster)
end
function GMHelper:clearMonster(player)
MonsterManager:clearMonster()
end
function GMHelper:addRobot()
if isGameStart then
return
end
if #PlayerManager:getPlayers2() >= PlayerManager:getRoomMaxPlayer() then
return
end
local infos = GameInfoManager:getAllPlayerInfo()
local teamCount = { 0, 0, 0, 0 }
for teamId, _ in pairs(GameMatch.Teams) do
teamCount[teamId] = 0
end
for _, info in pairs(infos) do
local teamId = info:getValue("teamId", true)
teamCount[teamId] = teamCount[teamId] or 0
teamCount[teamId] = teamCount[teamId] + 1
end
local minCount, teamId = 999, 1
for tid, count in pairs(teamCount) do
if minCount >= count then
minCount = count
teamId = tonumber(tid)
end
end
local userIds = { 48672, 128, 1207280, 199520, 273792, 1403600, 3536, 16, 176,
10000, 1569872, 592, 87568, 139184, 254672 }
for _, userId in pairs(userIds) do
if not PlayerManager:getPlayerByUserId2(userId) then
GameInfoManager:newInfo("PlayerInfo", userId)
local info = GameInfoManager:getPlayerInfo(userId)
info:setValue("teamId", teamId)
AITeamManager:newAi(1, teamId, userId, "Robot:" .. userId)
break
end
end
end
local curOccupation
---@param player GamePlayer
function GMHelper:setFakeOccupation(player)
curOccupation = (curOccupation or 0) + 1
player.info:setValue("fakeOccupation", curOccupation)
end
function GMHelper:showGameStateInfo()
---@type GameStateWriter
local GameStateWriter = T(Global, "GameStateWriter")
LogUtil.logInfo(StringUtil.v2s(GameStateWriter.fullRecord, 20))
end