using ProtoBuf; using Thousandto.Plugins.Common; using MSG_Map; using UnityEngine; using Thousandto.Cfg.Data; using Thousandto.Core.Asset; using Thousandto.Code.Center; using Thousandto.Code.Global; using Thousandto.Plugins.Common.UniScene; namespace Thousandto.Code.Logic.Network { /// /// 实现消息的回调方法 --- 地图协议,同步所有玩家,怪物,NPC的信息 /// public partial class HandleMsgResult : IHandleMsgResult { //进入某个地图 //ChangeMapResult_Success = 0; //传送成功 //ChangeMapResult_Failed_None = -1; //未知原因 //ChangeMapResult_Failed_PlayerOverflow = -2; //地图人数已满 //ChangeMapResult_Failed_PlayerDie = -3; //死亡中不能传送 //ChangeMapResult_Failed_DistanceLong = -4; //距离太远 //ChangeMapResult_Failed_ToCopyMap = -5; //不能传送到副本地图 //ChangeMapResult_Failed_UnFind = -6; //没有找到目标地图 //ChangeMapResult_Failed_Battle = -7; //战斗状态不能切换 //ChangeMapResult_Failed_Team = -8; //组队状态不能进入 //ChangeMapResult_Failed_LocationCopyMap = -9; //副本中不能传送 public void GS2U_ResEnterMap(ResEnterMap result) { if (result.result < 0) { switch (result.result) { case -1: //GameCenter.MsgPromptSystem.ShowPrompt(DeclareMessageString.Get(DeclareMessageString.C_CHANGEMAP_FAILED_NONE)); break; case -2: GameCenter.MsgPromptSystem.ShowPrompt(DeclareMessageString.Get(DeclareMessageString.C_CHANGEMAP_FAILED_FULL)); break; case -3: GameCenter.MsgPromptSystem.ShowPrompt(DeclareMessageString.Get(DeclareMessageString.C_CHANGEMAP_FAILED_DEAD)); break; case -4: GameCenter.MsgPromptSystem.ShowPrompt(DeclareMessageString.Get(DeclareMessageString.C_CHANGEMAP_FAILED_LONG)); break; case -5: GameCenter.MsgPromptSystem.ShowPrompt(DeclareMessageString.Get(DeclareMessageString.C_CHANGEMAP_FAILED_COPY)); break; case -6: GameCenter.MsgPromptSystem.ShowPrompt(DeclareMessageString.Get(DeclareMessageString.C_CHANGEMAP_FAILED_UNFIND)); break; case -7: GameCenter.MsgPromptSystem.ShowPrompt(DeclareMessageString.Get(DeclareMessageString.C_CHANGEMAP_FAILED_FIGHT)); break; case -8: GameCenter.MsgPromptSystem.ShowPrompt(DeclareMessageString.Get(DeclareMessageString.C_CHANGEMAP_FAILED_TEAM)); break; case -9: GameCenter.MsgPromptSystem.ShowPrompt(DeclareMessageString.Get(DeclareMessageString.C_CHANGEMAP_FAILED_COPYMAP)); break; case -12: { GameCenter.TaskController.ResumeForTransPort(); } break; } GameCenter.PushFixEvent(UIEventDefine.UI_WAITING_CLOSE); GameCenter.PathSearchSystem.EraseAll(); return; } LocalPlayer lp = GameCenter.GameSceneSystem.GetLocalPlayer(); if (lp == null) return; DeclareMapsetting cfg = DeclareMapsetting.Get(result.mapDataID); if (cfg == null) return; lp.ForcedStop_Action(); GameCenter.LuaSystem.Adaptor.EndMandate(); lp.skillManager.Clear(); GameCenter.ReconnectSystem.LastPlayerPos = lp.Position; GameCenter.GameSceneSystem.StartChangeToMap(result.mapDataID, result.line, new Vector2((float)result.pos.x, (float)result.pos.y), result.type, result.param); } //返回视线范围之内的所有其他对象 public void GS2U_ResRoundObjs(ResRoundObjs result) { var scene = GameCenter.GameSceneSystem.GetActivedScene(); var lp = GameCenter.GameSceneSystem.GetLocalPlayer(); if (scene == null || lp == null) return; MSG_Map.ResRoundObjs msg = result; if (scene.Entities != null) { //删除对象 GameCenter.GameSceneSystem.RemoveRemoteEntities(msg.removeIds); //增加NPC for (int i = 0; i < msg.npcs.Count; ++i) { NpcInitInfo info = new NpcInitInfo(msg.npcs[i]); GameCenter.GameSceneSystem.RefreshNpc(info); } //增加player for (int i = 0; i < msg.players.Count; ++i) { if (lp.ID == msg.players[i].playerId) { continue; } var info = new RemotePlayerInitInfo(msg.players[i]); GameCenter.GameSceneSystem.RefreshRemotePlayer(info); } //增加monster for (int i = 0; i < msg.monsters.Count; ++i) { //DeclareMonster cfg = DeclareMonster.Get(msg.monsters[i].dataID); //if (cfg != null) //{ // if (cfg.MonsterType == 8) // { // var info = new BrokenObjInitInfo(msg.monsters[i]); // GameCenter.GameSceneSystem.RefreshBrokenObj(info); // } // else // { // var info = new MonsterInitInfo(msg.monsters[i]); // GameCenter.GameSceneSystem.RefreshMonster(info); // } //} var info = new MonsterInitInfo(msg.monsters[i]); GameCenter.GameSceneSystem.RefreshMonster(info); } //增加采集物 for (int i = 0; i < msg.gathers.Count; ++i) { CollectionInitInfo info = new CollectionInitInfo(msg.gathers[i]); GameCenter.GameSceneSystem.RefreshCollection(info); } ////增加墓碑 //for (int i = 0; i < msg.tombstone.Count; i++) //{ // TombstoneInitInfo info = new TombstoneInitInfo(msg.tombstone[i]); // GameCenter.GameSceneSystem.RefreshTombstone(info); //} //增加宠物 for (int i = 0; i < msg.pets.Count; ++i) { PetInitInfo info = new PetInitInfo(msg.pets[i]); GameCenter.GameSceneSystem.RefreshPet(info); } ////增加技能对象 //for (int i = 0; i < msg.magics.Count; ++i) //{ // SkillObjectInitInfo info = new SkillObjectInitInfo(msg.magics[i]); // GameCenter.GameSceneSystem.RefreshSkillObject(info); //} ////增加篝火对象 //for (int i = 0; i < msg.bonfires.Count; ++i) //{ // BonfireInfo info = new BonfireInfo(msg.bonfires[i]); // GameCenter.GameSceneSystem.RefreshBonFires(info); //} //增加地面buff对象 for (int i = 0; i < msg.groundBuff.Count; ++i) { GroundBuffInitInfo info = new GroundBuffInitInfo(msg.groundBuff[i]); GameCenter.GameSceneSystem.RefreshGroundBuff(info); } } } //其他玩家信息 public void GS2U_ResMapPlayer(ResMapPlayer msg) { GameCenter.GameSceneSystem.RefreshRemotePlayer(new RemotePlayerInitInfo(msg.player)); } //某个对象停止移动 public void GS2U_ResStopMove(ResStopMove result) { NetHandler.OnResStopMove(result); } //某个对象移动到 public void GS2U_ResMoveTo(ResMoveTo msg) { NetHandler.OnResMoveTo(msg); } //某个玩家跳跃 public void GS2U_ResJump(ResJump msg) { NetHandler.OnResJump(msg); } //从视线范围内移除某个玩家 public void GS2U_ResPlayerDisappear(ResPlayerDisappear msg) { GameCenter.GameSceneSystem.RemoveRemoteEntities(msg.playerIds); } //更新NPC信息 public void GS2U_ResRoundNpcInfo(MSG_Map.ResRoundNpcInfo result) { GameCenter.GameSceneSystem.RefreshNpc(new NpcInitInfo(result.npcInfo)); } //从视线范围内移除NPC public void GS2U_ResRoundNpcDisappear(MSG_Map.ResRoundNpcDisappear msg) { GameCenter.GameSceneSystem.RemoveRemoteEntities(msg.npcIds); } //更新一个怪物信息 public void GS2U_ResMapMonster(MSG_Map.ResMapMonster result) { GameCenter.GameSceneSystem.RefreshMonster(new MonsterInitInfo(result.monserInfo)); } //从视线范围内移除某个怪物 public void GS2U_ResMonsterDisappear(MSG_Map.ResMonsterDisappear result) { GameCenter.GameSceneSystem.RemoveRemoteEntity(result.monsterId); } //更新一个宠物信息 public void GS2U_ResPetBirth(MSG_Map.ResPetBirth result) { DeclarePet pet = DeclarePet.Get(result.pet.dataID); if (pet == null) return; GameCenter.GameSceneSystem.RefreshPet(new PetInitInfo(result.pet)); } //从视线内移除某个宠物 public void GS2U_ResPetDisappear(MSG_Map.ResPetDisappear result) { GameCenter.GameSceneSystem.RemoveRemoteEntity(result.id); } //某个对象往某个方向移动 public void GS2U_ResDirMove(MSG_Map.ResDirMove result) { NetHandler.OnResDirMove(result); } //采集信息更新 public void GS2U_ResMapGatherInfo(MSG_Map.ResMapGatherInfo result) { GameCenter.GameSceneSystem.RefreshCollection(new CollectionInitInfo(result.gatherInfo)); } //在视线范围内移除采集对象 public void GS2U_ResGatherDisappear(MSG_Map.ResGatherDisappear result) { GameCenter.GameSceneSystem.RemoveRemoteEntity(result.id); } //打断采集 public void GS2U_ResBreakGather(MSG_Map.ResBreakGather result) { LocalPlayer lp = GameCenter.GameSceneSystem.GetLocalPlayer(); if (lp == null) return; if (lp.Fsm.CurrentState is Collect) { lp.Stop_Action(false); Collect c = lp.Fsm.CurrentState as Collect; c.FinishTransition(); } } //对象复活 public void GS2U_ResRelive(MSG_Map.ResRelive result) { NetHandler.OnResRelive(result); } //移动速度改变 public void GS2U_ResMoveSpeedChange(MSG_Map.ResMoveSpeedChange result) { if (GameCenter.GameSceneSystem.ActivedScene == null) return; Character c = GameCenter.GameSceneSystem.FindEntity(result.objectId); if (c != null) { if (c.PropMoudle != null) c.PropMoudle.SetBattleProp(AllBattleProp.MoveSpeed, result.value); } else { var skillObj = GameCenter.GameSceneSystem.FindEntity(result.objectId); if (skillObj != null) { skillObj.MoveSpeed = result.value / 100f; } } } //攻击速度改变 public void GS2U_ResAttackspeedChange(MSG_Map.ResAttackspeedChange result) { if (GameCenter.GameSceneSystem.ActivedScene == null) return; Character c = GameCenter.GameSceneSystem.ActivedScene.Find(result.objectId); if (c == null || c.PropMoudle == null) return; c.PropMoudle.SetBattleProp(AllBattleProp.AttackSpeed, result.value); } public void GS2U_ResLineList(MSG_Map.ResLineList result) { GameCenter.PushFixEvent(LogicEventDefine.EID_EVENT_GET_MAP_LINES_RESULT, result.lines); } public void GS2U_ResPlayerCloakChange(MSG_Map.ResPlayerCloakChange result) { } public void GS2U_ResJumpBlock(MSG_Map.ResJumpBlock result) { NetHandler.OnResJumpBlock(result); } public void GS2U_ResBlockDoors(MSG_Map.ResBlockDoors result) { for (int i = 0; i < result.doors.Count; ++i) { GameCenter.DynamicBlockerManager.SetBlockerState(result.doors[i].id, result.doors[i].isopen); } } public void GS2U_ResUpdateBlockDoor(MSG_Map.ResUpdateBlockDoor result) { GameCenter.DynamicBlockerManager.SetBlockerState(result.id, result.isopen); } public void GS2U_ResMagicBirth(MSG_Map.ResMagicBirth result) { //GameCenter.GameSceneSystem.RefreshSkillObject(new SkillObjectInitInfo(result.magic)); } public void GS2U_ResMagicClean(MSG_Map.ResMagicClean result) { GameCenter.GameSceneSystem.RemoveRemoteEntity(result.id); } public void GS2U_ResBonfireBirth(MSG_Map.ResBonfireBirth result) { //BonfireInfo info = new BonfireInfo(result.bonfire); //GameCenter.GameSceneSystem.RefreshBonFires(info); } public void GS2U_ResBonfireClean(MSG_Map.ResBonfireClean result) { GameCenter.GameSceneSystem.RemoveRemoteEntity(result.id); } public void GS2U_ResUpdateCamp(MSG_Map.ResUpdateCamp result) { Character c = GameCenter.GameSceneSystem.FindEntity(result.id); if (c != null) { c.PropMoudle.SceneCampID = result.camp; if (c.IsLocalPlayer()) { var playerList = GameCenter.GameSceneSystem.FindEntityAll(); for (int i = 0; playerList != null && i < playerList.Count; ++i) { playerList[i].UpdateNameColor(); } if (GameCenter.MapLogicSwitch.GetSceneCampIcon(c as Player) > 0) { GameCenter.PushFixEvent(LogicEventDefine.EID_EVENT_HUD_UPDATE_HEADINFO, c); } var monsterList = GameCenter.GameSceneSystem.FindEntityAll(); for (int i = 0; monsterList != null && i < monsterList.Count; ++i) { GameCenter.PushFixEvent(LogicEventDefine.EID_EVENT_HUD_UPDATEHUDNAMECOLOR, monsterList[i].ID); } } else if (c is RemotePlayer) { var player = c as RemotePlayer; player.UpdateNameColor(); if (GameCenter.MapLogicSwitch.GetSceneCampIcon(c as Player) > 0) { GameCenter.PushFixEvent(LogicEventDefine.EID_EVENT_HUD_UPDATE_HEADINFO, player); } } else if(c is Monster) { if(c.IsShowHUD) { GameCenter.PushFixEvent(LogicEventDefine.EID_EVENT_HUD_UPDATEHUDNAMECOLOR, c.ID); } } } } public void GS2U_ResMonsterPos(MSG_Map.ResMonsterPos result) { //GameCenter.MandateSystem.OnGetMonsterResult(new Vector2((float)result.x, (float)result.Y)); } public void GS2U_ResMonsterDieGetItem(MSG_Map.ResMonsterDieGetItem result) { if (GameCenter.GameSetting.IsEnabled(GameSettingKeyCode.TPDropEffect)) return; var droper = GameCenter.GameSceneSystem.FindEntity(result.instanceId); var owner = GameCenter.GameSceneSystem.FindEntity(result.roleId); //如果掉落的怪物或者掉落的归属都找不到,不做展示 if (droper == null || owner == null) return; for(int index = 0; index < result.list.Count; ++index) { var msgItem = result.list[index]; DeclareItem itemCfg = DeclareItem.Get(msgItem.itemId); long count = 1; if (itemCfg != null) { //主角的物品菜会展示 if (owner.IsLocalPlayer()) { if (itemCfg.DropItemNum > 0) { count = msgItem.num / itemCfg.DropItemNum; if (msgItem.num % itemCfg.DropItemNum != 0) { count += 1; } } if (itemCfg.Id == (int)ItemTypeCode.BindMoney) { //如果是绑定金币,走金币掉落流程 var host = GameCenter.GameSceneSystem.FindEntity(result.instanceId); if (host != null) { if (!host.IsXState(EntityStateID.Dead)) { //没有死亡,添加金币数量,等待进入死亡状态后播放 host.DropGoldCount = (int)count; } else { //当前已经在死亡状态,直接播放金币掉落效果 for (int i = 0; i < count; ++i) { GameCenter.GameSceneSystem.RefreshDropGold(new DropGoldInitInfo(result.instanceId)); } } } } else { if (owner.IsLocalPlayer() || itemCfg.Color >= (int)QualityCode.Golden) { //走物品掉落流程 for (int i = 0; i < count; ++i) { GameCenter.GameSceneSystem.RefreshDropItem(new DropItemInitInfo(result.instanceId, result.roleId, msgItem.itemId)); } } } } } else { if (owner.IsLocalPlayer()) { //走物品掉落流程 for (int i = 0; i < count; ++i) { GameCenter.GameSceneSystem.RefreshDropItem(new DropItemInitInfo(result.instanceId, result.roleId, msgItem.itemId)); } } else { //其他玩家只展示金色以上装备 var equipCfg = DeclareEquip.Get(msgItem.itemId); if (equipCfg != null && equipCfg.Quality >= (int)QualityCode.Golden) { //走物品掉落流程 for (int i = 0; i < count; ++i) { GameCenter.GameSceneSystem.RefreshDropItem(new DropItemInitInfo(result.instanceId, result.roleId, msgItem.itemId)); } } } } } } //弃用 public void GS2U_ResMonsterDieGetCoin(MSG_Map.ResMonsterDieGetCoin result) { } public void GS2U_ResPlayEffect(MSG_Map.ResPlayEffect result) { GameCenter.PushFixEvent((int)UIEventDefine.UI_SCREENEFFECT_FORM_OPEN, result.effectType); } public void GS2U_ResRoleStatue(MSG_Map.ResRoleStatue result) { //for (int i = 0; i < PlayerStatueInitInfo.StatueIds.Count; i++) //{ // GameCenter.GameSceneSystem.RemoveRemoteEntity(PlayerStatueInitInfo.StatueIds[i]); //} //PlayerStatueInitInfo.StatueIds.Clear(); //for (int i = 0; i < result.statues.Count; ++i) //{ // var info = new PlayerStatueInitInfo(result.statues[i]); // GameCenter.GameSceneSystem.RefreshPlayerStatue(info); //} } public void GS2U_ResCityFlag(MSG_Map.ResCityFlag result) { //var info = new CityFlagInitInfo(result); //GameCenter.GameSceneSystem.RefreshCityFlag(info); } public void GS2U_ResUpdateMoveState(MSG_Map.ResUpdateMoveState result) { Monster m = GameCenter.GameSceneSystem.FindEntity(result.id); if (m != null) { m.IsRunning = result.isRun; } } public void GS2U_ResJumpTransport(MSG_Map.ResJumpTransport result) { } public void GS2U_ResJumpDown(MSG_Map.ResJumpDown result) { NetHandler.OnResJumpDown(result); } public void GS2U_ResPetHpChange(MSG_Map.ResPetHpChange result) { Pet pet = GameCenter.GameSceneSystem.FindEntity(result.id); if (pet != null) { pet.PropMoudle.CurHP = result.curHp; pet.PropMoudle.SetBattleProp(AllBattleProp.MaxHP, (long)result.maxHp); pet.PropMoudle.SetBattleProp(AllBattleProp.MoveSpeed, result.speed); } } public void GS2U_ResMonsterDropMark(MSG_Map.ResMonsterDropMark result) { GameCenter.DropAscriptionSystem.UpdateMonsterDropOwners(result.monsterId, result.dropUserIds); } //墓碑刷新 public void GS2U_ResTombstoneBirth(MSG_Map.ResTombstoneBirth result) { //GameCenter.GameSceneSystem.RefreshTombstone(new TombstoneInitInfo(result.TombstoneInfo)); } //清除墓碑 public void GS2U_ResTombstoneClean(MSG_Map.ResTombstoneClean result) { GameCenter.GameSceneSystem.RemoveRemoteEntity(result.id); } //刷新地面buff public void GS2U_ResGroundBuffBirth(MSG_Map.ResGroundBuffBirth result) { GameCenter.GameSceneSystem.RefreshGroundBuff(new GroundBuffInitInfo(result.groundBuffInfo)); } //删除地面buff public void GS2U_ResGroundBuffClean(MSG_Map.ResGroundBuffClean result) { GameCenter.GameSceneSystem.RemoveRemoteEntity(result.gbid); } //地面产生效果 public void GS2U_ResGroundBuffStar(MSG_Map.ResGroundBuffStar result) { } public void GS2U_ResShowMonsterPop(MSG_Map.ResShowMonsterPop result) { var character = GameCenter.GameSceneSystem.FindEntity(result.monsterid); if (character != null) { character.ShowHUD(); GameCenter.PushFixEvent(LogicEventDefine.EID_EVENT_HUD_SHOWEMONSTER_SERVERPOP, new object[] { character, result.talkid }); } } //播放剧情 public void GS2U_ResPlayCinematic(MSG_Map.ResPlayCinematic result) { //var cfg = DeclareCinematic.Get(result.cinematicID); //if (cfg != null) //{ // GameCenter.CinematicSystem.Play(cfg, () => // { // GameCenter.PushFixEvent(LogicEventDefine.EID_EVENT_SERVER_CINEMATIC_START, cfg); // }, // () => // { // GameCenter.PushFixEvent(LogicEventDefine.EID_EVENT_SERVER_CINEMATIC_END, cfg); // }); //} } public void GS2U_ResNotCanGather(MSG_Map.ResNotCanGather result) { //GameCenter.SkyCitySystem.ResNotCanGather(result); } public void GS2U_ResShiHaiBroadcast(MSG_Map.ResShiHaiBroadcast result) { var player = GameCenter.GameSceneSystem.FindEntity(result.playerId); if (player != null) { player.CurShiHaiID = result.shiHaiCfgId; } } public void GS2U_ResVipLvBroadCast(MSG_Map.ResVipLvBroadCast result) { var player = GameCenter.GameSceneSystem.FindEntity((ulong)result.roleId); if (player != null) { player.VipLevel = result.vipLv; //保存vip等级 CoreSDK.SDKCacheData.RoleVipLevel = player.VipLevel.ToString(); } } public void GS2U_ResGuildInfoBroadCast(MSG_Map.ResGuildInfoBroadCast result) { var player = GameCenter.GameSceneSystem.FindEntity((ulong)result.roleId); if (player != null) { player.PropMoudle.GuildId = (ulong)result.guildId; player.PropMoudle.GuildName = result.guildName; player.PropMoudle.GuildRank = result.guildPos; GameCenter.PushFixEvent(LogicEventDefine.EID_EVENT_HUD_UPDATE_HEADINFO, player); if(result.guildId <= 0 && player.IsLocalPlayer()) { var lp = player as LocalPlayer; if(lp.PkMode == PKMode.GuildMode) { //如果主角当前是公会PK模式,切换为和平 MSG_Player.ReqUpdataPkState msg = new MSG_Player.ReqUpdataPkState(); msg.pkState = 0; msg.Send(); GameCenter.MsgPromptSystem.ShowPrompt(Thousandto.Cfg.Data.DeclareMessageString.Get(Thousandto.Cfg.Data.DeclareMessageString.C_PKMODE_AUTO_CHANGED_GUILD)); } } if (player.IsLocalPlayer()) { if(result.guildId > 0) { MSG_Guild.ReqGuildInfo msg = new MSG_Guild.ReqGuildInfo(); msg.Send(); } else { GameCenter.LuaSystem.Adaptor.OnExitGuildMsg(); } //刷新其他角色的名字颜色 var playerList = GameCenter.GameSceneSystem.FindEntityAll(); for (int i = 0; playerList != null && i < playerList.Count; ++i) { playerList[i].UpdateNameColor(); } } } } //法宝信息改变 public void GS2U_ResFabaoInfoBroadCast(MSG_Map.ResFabaoInfoBroadCast result) { } //灵体阶数改变 public void GS2U_ResSpiritIdBroadCast(MSG_Map.ResSpiritIdBroadCast result) { var player = GameCenter.GameSceneSystem.FindEntity((ulong)result.playerId); if(player != null) { //if(player.IsLocalPlayer()) //{ // var oldModel = RoleVEquipTool.GetLingTiBodyID((int)player.Occ, player.LingTiDegree); // var newModel = RoleVEquipTool.GetLingTiBodyID((int)player.Occ, result.spiritId); // if(oldModel != newModel) // { // GameCenter.PushFixEvent(LogicEventDefine.EID_EVENT_SHOWMODEL_VIEW, new int[4] { 3, newModel, 200, 0}); // } //} player.LingTiDegree = result.spiritId; } } //飞剑外形改变 public void GS2U_ResHuaxinFlySwordBroadCast(MSG_Map.ResHuaxinFlySwordBroadCast result) { var player = GameCenter.GameSceneSystem.FindEntity((ulong)result.playerId); if (player != null) { player.PropMoudle.FlySwordUID = (ulong)result.uid; player.PropMoudle.FlySwordCfgID = result.huxinFlyID; player.PropMoudle.FlySwordSkillId = result.feijianMaxID; player.LoadFlySword(); GameCenter.PushFixEvent(LogicEventDefine.EID_EVENT_HUD_UPDATE_HEADINFO, player); } } //仙娃外形改变 public void GS2U_ResChildCallInfo(MSG_Map.ResChildCallInfo result) { var player = GameCenter.GameSceneSystem.FindEntity((ulong)result.playerId); if (player != null) { if(result.opt == 0) { player.PropMoudle.MarryChildID = 0; player.PropMoudle.MarryChildName = null; player.UnLoadMarryChild(); } else { player.PropMoudle.MarryChildID = result.childId; player.PropMoudle.MarryChildName = result.childName; player.LoadMarryChild(); } } } public void GS2U_ResPlayerPlayVfx(MSG_Map.ResPlayerPlayVfx result) { var player = GameCenter.GameSceneSystem.FindEntity((ulong)result.playerId); if (player != null && player.Skin != null && GameObjectLimit.CanPlayVfx(player, ModelTypeCode.CollectionVFX)) { player.Skin.PlayVFX(ModelTypeCode.CollectionVFX, result.vfxId, null, FSkinPartCode.Body, false, 1f, true, false, null, false, false); } } public void GS2U_ResSoulEquipChange(MSG_Map.ResSoulEquipChange result) { } } }