public void AddSceneObj(S2C_SYNC_SCENE_OBJ sceneObj) { KSceneObjectType sot = (KSceneObjectType)sceneObj.type; KHeroObjectType hot = KHeroObjectType.hotInvalid; KDoodadType dt = KDoodadType.dddInvalid; SceneEntity entity = CreateSceneObject(sceneObj.id, sot, hot, dt, MapUtils.GetMetreFromInt(sceneObj.x, sceneObj.y), ConfigManager.INVALID_ID); entity.Init(); }
public List <SceneEntity> GetAllSceneObject(KHeroObjectType heroType) { List <SceneEntity> lists = new List <SceneEntity>(); foreach (KeyValuePair <uint, SceneEntity> kvp in allObjectsMap) { if (kvp.Value.HeroType == heroType) { lists.Add(kvp.Value); } } return(lists); }
public void OnAddDoodad(uint objID, int objType, int posX, int posY, RemoteTable table) { KSceneObjectType sot = KSceneObjectType.sotDoodad; KHeroObjectType hot = KHeroObjectType.hotInvalid; KDoodadType dt = (KDoodadType)objType; SceneEntity entity = CreateSceneObject(objID, sot, hot, dt, MapUtils.GetMetreFromInt(posX, posY), ConfigManager.INVALID_ID); if (dt == KDoodadType.dddCollect) { int collectID = (int)table["CollectMissionID"]; KCollectMissionInfo info = KConfigFileManager.GetInstance().GetCollectInfo(collectID); if (info == null) { Debug.Log("AddSceneObj Error Collect ID" + collectID.ToString()); } entity.collectInfo = info; entity.Init(); entity.DispatchEvent(ControllerCommand.LOAD_NAME_LABEL); entity.DispatchEvent(ControllerCommand.CHANGE_NAME, info.strName); } else if (dt == KDoodadType.dddDrop) { KDropType dType = (KDropType)(int)table["eDropType"]; int nValue = table["nDropValue"]; int nIndex = table["nDropIndex"]; entity.property.dropType = dType; entity.property.dropValue = nValue; entity.property.dropIndex = nIndex; entity.Init(); entity.DispatchEvent(ControllerCommand.LOAD_NAME_LABEL); if (dType == KDropType.dtMoney) { string strMoney = "money *" + nValue; entity.DispatchEvent(ControllerCommand.CHANGE_NAME, strMoney); } else if (dType == KDropType.dtEquip) { KTabLineEquip equipData = KConfigFileManager.GetInstance().equipTabInfos.getData(nIndex.ToString()); entity.DispatchEvent(ControllerCommand.CHANGE_NAME, equipData.Name); } else if (dType == KDropType.dtItem) { KTabLineItem itemData = KConfigFileManager.GetInstance().itemTabInfos.getData(nIndex.ToString()); entity.DispatchEvent(ControllerCommand.CHANGE_NAME, itemData.Name); } } }
public SceneEntity CreateSceneObject(uint id, KSceneObjectType type, KHeroObjectType heroType, KDoodadType doodadType, Vector3 pos, ulong OwnerID) { log.Assert(type > (int)KSceneObjectType.sotInvalid); log.Assert(id != ConfigManager.INVALID_ID); SceneEntity obj = null; string soName = type.ToString() + "_" + id.ToString() + "(" + heroType.ToString() + ")"; obj = SceneEntity.Create(soName); obj.Position = pos; obj.property.Id = id; obj.OwnerID = OwnerID; obj.property.sceneObjType = type; obj.property.heroObjType = heroType; obj.property.doodadObjType = doodadType; allObjectsMap[obj.property.Id] = obj; obj.enabled = true; obj.gameObject.layer = CameraLayerManager.GetInstance().GetSceneObjectTag(); return(obj); }
//public static DebugCounter debugCounter = new DebugCounter(); public void AddHero(S2C_SYNC_NEW_HERO hero) { //debugCounter.Restart(); //debugCounter.AddMark("heroSet"); KSceneObjectType sot = KSceneObjectType.sotHero; KHeroObjectType hot = KHeroObjectType.hotInvalid; KDoodadType dt = KDoodadType.dddInvalid; KHeroSetting heroSetting = KConfigFileManager.GetInstance().heroSetting.getData(hero.wNpcIDOrJob.ToString()); log.Assert(heroSetting != null); hot = heroSetting.HeroType; string Name = ""; string Title = ""; switch (heroSetting.HeroType) { case KHeroObjectType.hotNpc: { if (!npcidToSceneidDic.ContainsKey((int)heroSetting.ID)) { npcidToSceneidDic.Add((int)heroSetting.ID, hero.id); } else { npcidToSceneidDic[(int)heroSetting.ID] = hero.id; } Name = heroSetting.Name; Title = heroSetting.Title; } break; case KHeroObjectType.hotMonster: { Name = heroSetting.Name; } break; case KHeroObjectType.hotPlayer: { Assets.Scripts.Model.Player.Player newPlayerInfo = PlayerManager.GetInstance().GetPlayer(hero.uOwnerID); if (newPlayerInfo != null) { Name = newPlayerInfo.PlayerName; } else { Name = "not init"; } } break; default: { throw new ArgumentException("error heroSetting.HeroType = " + heroSetting.HeroType + " at hero which id = " + hero.id + " uOwnerID = " + hero.uOwnerID); } } if (hero.uOwnerID == PlayerManager.GetInstance().MajorPlayer.PlayerID) { PlayerManager.GetInstance().MajorPlayer.hero = hero.id; EventDispatcher.GameWorld.Dispath(ControllerCommand.CHANGE_NICKNAME, PlayerManager.GetInstance().MajorPlayer.PlayerName); } SceneEntity entity = CreateSceneObject(hero.id, sot, hot, dt, MapUtils.GetMetreFromInt(hero.posX, hero.posY), hero.uOwnerID); entity.heroSetting = heroSetting; if (heroSetting.HeroType == KHeroObjectType.hotMonster && hero.bNewHero != 0) { entity.property.bNewHero = true; } entity.Init(); entity.DispatchEvent(ControllerCommand.SET_SPEED, hero.moveSpeed); entity.property.isDeaded = entity.property.isDeadTemp = (hero.moveState == (byte)KMoveState.mosDeath); entity.property.Face = hero.faceDir; entity.property.maxHp = (int)hero.MaxHP; entity.property.maxMp = (int)hero.MaxMP; entity.property.fightHp = entity.property.hp = (int)hero.HP; entity.property.mp = (int)hero.MP; entity.AttackSpeed = (int)hero.attackSpeed; entity.transform.localScale = new Vector3(heroSetting.Scale, heroSetting.Scale, heroSetting.Scale); entity.property.characterController.size = new Vector3(0.7f, 2f, 0.7f); entity.property.characterController.center = new Vector3(0, 1, 0); if (hot == KHeroObjectType.hotPlayer && hero.uOwnerID == PlayerManager.GetInstance().MajorPlayer.PlayerID) { SceneLogic.GetInstance().MainHero = entity; } Vector3 destination = MapUtils.GetMetreFromInt(hero.desX, hero.desZ, hero.desY); if (hero.desX == 0 && hero.desZ == 0 && hero.desY == 0) { destination = MapUtils.GetMetreFromInt(hero.posX, hero.posY); } entity.TabID = hero.wNpcIDOrJob; entity.Job = KJob.jobNone; if (entity.HeroType == KHeroObjectType.hotPlayer) { entity.Job = (KJob)hero.wNpcIDOrJob; } entity.DispatchEvent(ControllerCommand.SET_DESTINATION, destination, (int)KForceMoveType.fmtInvalid); entity.DispatchEvent(ControllerCommand.CHANGE_NAME, Name); entity.DispatchEvent(ControllerCommand.LOAD_RES); entity.DispatchEvent(ControllerCommand.LOAD_NAME_LABEL, Name); if (Title.Length > 0) { entity.DispatchEvent(ControllerCommand.CHANGE_TITLE, Title); } entity.EquipIDs = hero.equipIDs; if (entity.property.isDeadTemp) { entity.property.isDeadTemp = true; entity.Action.IsBeDead(); } else if (heroSetting.HeroType == KHeroObjectType.hotMonster && hero.bNewHero != 0) { entity.ActiveAction = new ActionMousterOut(entity); } }