public DungeonPlacement(string scene, string locator, Hashtable data) { this.locator = locator; role = EB.Dot.String("role", data, string.Empty); pos = EB.Dot.String("pos", data, string.Empty); attr = EB.Dot.String("tag_attribute", data, string.Empty); is_fighting = EB.Dot.Bool("busy", data, false); if (role == NPC_ROLE.CAMPAIGN_ENEMY || role == NPC_ROLE.CAMPAIGN_BOX) { var tpl = Hotfix_LT.Data.SceneTemplateManager.Instance.GetEncounter(scene, locator); isappearing = tpl.is_appearing; appearingway = tpl.encounter_appearing_way; encounter = tpl.encounter_prefab; script = tpl.script; layout = tpl.combat_layout_name; } else if (role == NPC_ROLE.GHOST) { string tmp = locator.Remove(locator.LastIndexOf("_") + 1); var tpl = Hotfix_LT.Data.SceneTemplateManager.Instance.GetMainLandsGhost(scene, tmp); isappearing = 1; appearingway = 1; encounter = tpl.encounter_prefab; script = tpl.script; layout = tpl.combat_layout_name; } else if (role == NPC_ROLE.ALLIANCE_CAMPAIGN_ENEMY || role == NPC_ROLE.ALLIANCE_CAMPAIGN_BOSS) { var tpl = Hotfix_LT.Data.SceneTemplateManager.Instance.GetAllianceEncounter(scene, locator); isappearing = tpl.is_appearing; appearingway = tpl.encounter_appearing_way; encounter = tpl.encounter_prefab; script = tpl.script; layout = tpl.combat_layout_name; } else if (role == NPC_ROLE.WORLD_BOSS) { var tpl = Hotfix_LT.Data.SceneTemplateManager.Instance.GetMainLandEncounter(scene, locator); isappearing = tpl.is_appearing; appearingway = tpl.encounter_appearing_way; //encounter = tpl.encounter_prefab; string[] split = tpl.encounter_prefab.Split(','); string curLayout = EB.Dot.String("bossLayoutId", data, string.Empty); if (string.IsNullOrEmpty(curLayout)) { if (!DataLookupsCache.Instance.SearchDataByID("mainlands.lastWeekBossLayoutId", out curLayout)) { curLayout = "Layout50103"; } } int bossIndex = Hotfix_LT.Data.EventTemplateManager.Instance.GetWorldBossIndex(curLayout); encounter = bossIndex < 0 ? string.Empty : split[bossIndex]; script = tpl.script; layout = tpl.combat_layout_name; } else if (role == NPC_ROLE.ARENA_MODLE)//角斗场胜利者模型 { var tpl = Hotfix_LT.Data.SceneTemplateManager.Instance.GetMainLandEncounter(scene, locator); isappearing = tpl.is_appearing; appearingway = tpl.encounter_appearing_way; //ArenaModelData AData = ArenaManager.Instance.GetArenaModelData(); string Tid; DataLookupsCache.Instance.SearchDataByID <string>(ArenaManager.ArenaModelDataId + ".templateId", out Tid); Tid = (Tid == null || Tid.CompareTo("") == 0) ? "15011" : Tid; string characterid = Hotfix_LT.Data.CharacterTemplateManager.Instance.TemplateidToCharacterid(Tid); int Skin; DataLookupsCache.Instance.SearchIntByID(ArenaManager.ArenaModelDataId + ".skin", out Skin); var charTpl = Hotfix_LT.Data.CharacterTemplateManager.Instance.GetHeroInfo(characterid, Skin); string ModelId = charTpl.model_name; //需添加皮肤 encounter = ModelId == null ? tpl.encounter_prefab : ModelId; script = tpl.script; layout = tpl.combat_layout_name; } else { var tpl = Hotfix_LT.Data.SceneTemplateManager.Instance.GetMainLandEncounter(scene, locator); if (tpl != null) { isappearing = tpl.is_appearing; appearingway = tpl.encounter_appearing_way; encounter = tpl.encounter_prefab; script = tpl.script; layout = tpl.combat_layout_name; } } }