public static Units CreateHeroByUnitInfo(UnitInfo info) { Units result; try { if (info == null) { result = null; } else { EntityVo entityVo = new EntityVo(EntityType.Hero, info.typeId, 0, 0, string.Empty, "Default", 0) { uid = info.unitId, level = info.level, hp = 99999f, mp = 99999f, effectId = string.Empty }; Units unit = MapManager.Instance.GetUnit(info.mainHeroId); if (unit != null) { if (unit.npc_id == "Jiansheng") { entityVo.effectId = "1|Perform_jsbirth_fenshen"; } else if (unit.npc_id == "Houzi") { } } SpawnUtility spawnUtility = GameManager.Instance.Spawner.GetSpawnUtility(); Vector3 vector = MoveController.SVectgor3ToVector3(info.position); string userName = (!(unit == null)) ? unit.summonerName : "1"; string summerId = "1"; Units units = spawnUtility.SpawnPvpHero(entityVo, "Hero", (TeamType)info.group, 0, userName, summerId, new Vector3?(vector), UnitType.FenShenHero); if (units != null && unit != null) { units.level = unit.level; units.data.SetMaxHp(unit.hp_max); units.data.SetMaxMp(unit.mp_max); units.data.SetHp(unit.hp); units.data.SetMp(unit.mp); units.SetParentUnit(unit); units.SetMirrorState(true); if (unit.npc_id == "Jiansheng") { units.SetCanAIControl(true); units.SetCanSkill(false); units.effect_id = "2|Perform_jsdead_fenshen"; } else if (unit.npc_id == "Houzi") { units.effect_id = "2|FenShenDeath,2|DashengS2"; units.SetCanAIControl(false); units.SetCanAction(false); units.trans.rotation = unit.trans.rotation; } Units selectedTarget = PlayerControlMgr.Instance.GetSelectedTarget(); if (selectedTarget != null && unit.unique_id == selectedTarget.unique_id) { PlayerControlMgr.Instance.GetPlayer().SetSelectTarget(null); PlayerControlMgr.Instance.GetPlayer().SetAttackTarget(null); PlayerControlMgr.Instance.SetSelectedTarget(null); } units.SetPosition(vector, true); } result = units; } } catch (Exception e) { ClientLogger.LogException(e); result = null; } return(result); }