local Base = require("Battle/Logic/Level/LevelFunction/LevelFunction") local GuildBossTownLevelFunction = class("GuildBossTownLevelFunction",Base) function GuildBossTownLevelFunction:CreatePlayers() local playerID = LuaConst.STANDALONE_PLAYER_PlayID local army = LevelPlayerManager.GetPlayerArmyByPlayerIDInRoom(playerID) if not army then return end local playerInfo = LevelPlayerManager.GetPlayerInfoByPlayerIDInRoom(playerID) local bornItem = LevelItemManager.GetBornItem(LuaConst.PlayerDefaultBornIndex) -- new↓ 支持 固定/范围随机 位置出生 local pos = nil if playerInfo.Pos then pos = playerInfo.Pos else pos = LogicRandom.GetRandomPointInLevelItem(nil, bornItem.ItemData, 8238239) end -- new↑ -- old↓-- 固定位置出生 -- local pos = playerInfo.Pos or bornItem.ItemData.ItemPos -- old↑ local dir = playerInfo.Dir or bornItem.ItemData.ItemDir local heroEntityTable = {} for i,v in ipairs(army) do EntityFactory.SetParams("BornItemID", bornItem.LevelItemID) EntityFactory.SetType_ID(LuaConst.CharacterType.Hero, v.HeroID) EntityFactory.SetAttrTable_ID(v.Attr) EntityFactory.SetPos_Dir(pos, dir) EntityFactory.SetSelf_Sync(true, true) EntityFactory.SetEffectBreak_Weapon(v.mainHeroBreakNums, v.isMagicWeaponActive, v.mainHeroWeaponLevels) EntityFactory.SetHorse_ID(v.horseID, v.horseAppearanceId) EntityFactory.SetPet_Info(v.petInfo.petId, v.petInfo.stage, v.petInfo.petName, v.petInfo.petSkill) EntityFactory.SetHeroAppearance_ID(v.heroAppearanceId) EntityFactory.SetWeaponAppearance_ID(v.weaponAppearanceId) EntityFactory.SetDyeAppearanceList(v.mainDyeCurPartList) EntityFactory.SetLightEffect_ID(v.lightEffectIds) EntityFactory.SetWeaponSoulInfo(v.weaponSoulInfo) EntityFactory.SetParams("PlayerID", playerID) local entity = EntityFactory.DoCreatePlayerEntity() --entity._logicInitData.PlayerIDInRoom = playerID table.insert(heroEntityTable,entity) end LevelPlayerManager.SetPlayerEntityTable(heroEntityTable, playerID) LevelPlayerManager.SetCurEntity(heroEntityTable[1]) end return GuildBossTownLevelFunction