Files
Main/Assets/Code/Logic/_NetMessage/Handlers/HandleMsgResult_MSG_Map.cs

757 lines
30 KiB
C#
Raw Normal View History

2025-01-25 04:38:09 +08:00
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
{
/// <summary>
/// 实现消息的回调方法 --- 地图协议,同步所有玩家,怪物,NPC的信息
/// </summary>
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<Character>(result.objectId);
if (c != null)
{
if (c.PropMoudle != null)
c.PropMoudle.SetBattleProp(AllBattleProp.MoveSpeed, result.value);
}
else
{
var skillObj = GameCenter.GameSceneSystem.FindEntity<SkillObject>(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<Character>(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<Character>(result.id);
if (c != null)
{
c.PropMoudle.SceneCampID = result.camp;
if (c.IsLocalPlayer())
{
var playerList = GameCenter.GameSceneSystem.FindEntityAll<RemotePlayer>();
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<Monster>();
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<Character>(result.instanceId);
var owner = GameCenter.GameSceneSystem.FindEntity<Character>(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<Monster>(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<Monster>(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<Pet>(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<Character>(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<Player>(result.playerId);
if (player != null)
{
player.CurShiHaiID = result.shiHaiCfgId;
}
}
public void GS2U_ResVipLvBroadCast(MSG_Map.ResVipLvBroadCast result)
{
var player = GameCenter.GameSceneSystem.FindEntity<Player>((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<Player>((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<RemotePlayer>();
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<Player>((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<Player>((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<Player>((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<Player>((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)
{
}
}
}