using ProtoBuf;
using Thousandto.Plugins.Common;
using Thousandto.Code.Center;
using Thousandto.Core.Base;
using Thousandto.Code.Global;
using Thousandto.Cfg.Data;
using Thousandto.Core.Asset;
using AppPersistData = UnityEngine.Gonbest.MagicCube.AppPersistData;
namespace Thousandto.Code.Logic.Network
{
///
/// 实现消息的回调方法 -- 主角玩家的协议
///
public partial class HandleMsgResult : IHandleMsgResult
{
//更新在线玩家的战斗属性信息
public void GS2U_ResPlayerOnLineAttribute(MSG_Player.ResPlayerOnLineAttribute result)
{
GameCenter.GameSceneSystem.RefreshLocalPlayerBattleAttribute(result);
}
//玩家的战斗属性改变
public void GS2U_ResPlayerAttributeChange(MSG_Player.ResPlayerAttributeChange result)
{
GameCenter.GameSceneSystem.RefreshLocalPlayerBattleAttribute(result.changeList);
}
//玩家的基础属性信息
public void GS2U_ResPlayerBaseInfo(MSG_Player.ResPlayerBaseInfo msg)
{
if (msg == null)
return;
//设置替代模型的位置
LocalPlayerRoot.SetLocalPlayerID(msg.roleID);
GameCenter.GameSetting.RoleSetting.RoleID = msg.roleID;
var lp = GameCenter.GameSceneSystem.GetLocalPlayer();
if (lp == null)
{
lp = GameCenter.GameSceneSystem.RefreshLocalPlayer(new LocalPlayerInitInfo(msg));
//GameCenter.SceneRestoreSystem.InitSceneData(GameCenter.GameSceneSystem.ActivedScene.GetUnitySceneRoot().gameObject);
}
else
{
lp.SyncInfo(new LocalPlayerInitInfo(msg));
}
AppPersistData.LastRoleID = msg.roleID.ToString();
AppPersistData.LastRoleName = msg.name;
UnityEngine.PlayerPrefs.SetString("role", msg.name + "_" + msg.roleID);
//以下是统计信息------------------------
if (GameCenter.SDKSystem.IsCreatePlayerFlag)
{
GameCenter.SDKSystem.ActionEvent(ActionEventCode.CreateChar, msg.name, "" + msg.roleID);
//UnityEngine.Debug.Log("创建角色 " + msg.name + " : " + msg.roleID);
}
else
{
GameCenter.SDKSystem.ActionEvent(ActionEventCode.SelectChar, msg.name, "" + msg.roleID);
//UnityEngine.Debug.Log("选择角色 " + msg.name + " : " + msg.roleID);
}
//登录类型,普通登录=1,掉线重连=2 ,跨天登记=3
CoreSDK.SDKCacheData.LoginType = "1";
GameCenter.SDKSystem.SetRoleInfo();
GameCenter.SDKSystem.SetGuildName(msg.guildName);
//GameCenter.SDKSystem.SetGoldBalance(msg.haveGoldNum);
GameCenter.SDKSystem.SendEventServerInfo();
//到这里,角色信息才是完整的,才能发送创建角色事件
if (GameCenter.SDKSystem.IsCreatePlayerFlag)
GameCenter.SDKSystem.SendEventCreateRole();
//请求累计在线时间
MSG_Player.ReqGetAccunonlinetime reqMsg = new MSG_Player.ReqGetAccunonlinetime();
reqMsg.Send();
}
// 转职结果
public void GS2U_ResChangeJobResult(MSG_Player.ResChangeJobResult result)
{
//GameCenter.TransferSystemMsg.GS2U_ResChangeJobResult(result);
}
//增加反击对象
public void GS2U_ResAddHatred(MSG_Player.ResAddHatred result)
{
LocalPlayer lp = GameCenter.GameSceneSystem.GetLocalPlayer();
if (lp != null)
{
lp.AddStrikeBackCharacter(result.playerId);
}
}
//删除反击对象
public void GS2U_ResDelHatred(MSG_Player.ResDelHatred result)
{
LocalPlayer lp = GameCenter.GameSceneSystem.GetLocalPlayer();
if (lp != null)
{
lp.DeleteStrikeBackCharacter(result.playerId);
}
}
//清除反击对象
public void GS2U_ResCleanHatred(MSG_Player.ResCleanHatred result)
{
LocalPlayer lp = GameCenter.GameSceneSystem.GetLocalPlayer();
if (lp != null)
{
lp.ClearStrikeBackCharacter();
}
}
//等级改变
public void GS2U_ResLevelChange(MSG_Player.ResLevelChange result)
{
NetHandler.OnResLevelChange(result);
}
public void GS2U_ResPracticeInfo(MSG_Player.ResPracticeInfo result)
{
//GameCenter.offLineExpSystem.GS2U_ResPracticeInfo( result );
}
public void GS2U_ResPracticeSetDo(MSG_Player.ResPracticeSetDo result)
{
//GameCenter.offLineExpSystem.GS2U_ResPracticeSetDo( result );
}
public void GS2U_ResPracticeGetResult(MSG_Player.ResPracticeGetResult result)
{
//GameCenter.offLineExpSystem.GS2U_ResPracticeGetResult( result );
}
//在线时长
public void GS2U_ResAccunonlinetime(MSG_Player.ResAccunonlinetime result)
{
var lp = GameCenter.GameSceneSystem.GetLocalPlayer();
if(lp != null)
{
lp.PropMoudle.AllOnLineTime = result.time;
}
}
public void GS2U_ResUpdataExpRate(MSG_Player.ResUpdataExpRate result)
{
LocalPlayer lp = GameCenter.GameSceneSystem.GetLocalPlayer();
if (lp != null)
{
lp.PropMoudle.ExpRate = result.expRate;
}
}
public void GS2U_ResUpdataPkValue(MSG_Player.ResUpdataPkValue result)
{
//if (GameCenter.GameSceneSystem.ActivedScene != null)
//{
// Player p = GameCenter.GameSceneSystem.ActivedScene.Find(result.playerId);
// if (p != null)
// {
// p.PropMoudle.PkValue = (uint)result.pkValue;
// p.UpdateNameColor();
// }
//}
}
public void GS2U_ResUpdataPkStateResult(MSG_Player.ResUpdataPkStateResult result)
{
if (result.reason == 0)
{
if (GameCenter.GameSceneSystem.ActivedScene != null)
{
LocalPlayer lp = GameCenter.GameSceneSystem.GetLocalPlayer();
if (lp != null)
{
var oldPkMode = lp.PropMoudle.PkModel;
lp.PropMoudle.PkModel = (PKMode)result.curPkState;
GameCenter.PushFixEvent(LogicEventDefine.EID_EVENT_PKMODE_CHANGED);
if (oldPkMode != lp.PropMoudle.PkModel)
{
var remotePlayerlit = GameCenter.GameSceneSystem.FindEntityAll();
for (int i = 0; i < remotePlayerlit.Count; ++i)
{
remotePlayerlit[i].UpdateNameColor();
}
if (result.notice)
{
switch ((PKMode)result.curPkState)
{
case PKMode.PeaceMode:
GameCenter.MsgPromptSystem.ShowPrompt(Thousandto.Cfg.Data.DeclareMessageString.Get(Thousandto.Cfg.Data.DeclareMessageString.C_PKPMDE_DESC_PEACE));
break;
case PKMode.AllMode:
GameCenter.MsgPromptSystem.ShowPrompt(Thousandto.Cfg.Data.DeclareMessageString.Get(Thousandto.Cfg.Data.DeclareMessageString.C_PKMODE_QUANTI_DESC));
break;
case PKMode.SelfServer:
GameCenter.MsgPromptSystem.ShowPrompt(Thousandto.Cfg.Data.DeclareMessageString.Get(Thousandto.Cfg.Data.DeclareMessageString.C_PKMODE_BENFU_DESC));
break;
case PKMode.GuildMode:
GameCenter.MsgPromptSystem.ShowPrompt(Thousandto.Cfg.Data.DeclareMessageString.Get(Thousandto.Cfg.Data.DeclareMessageString.C_PKMODE_XIANMENG_DESC));
break;
}
}
}
}
}
}
}
enum FightPowerChangeReason
{
BASE = 1,//基本属性加成
EQUIP = 2,//装备属性
BUFF = 3,//BUFF属性
MEDICINESATTRIBUTE = 4,//属性药
HORSE = 5, //坐骑属性加成
DRAGOON = 6, //骑兵系统加成
ACHIEVEMENT = 7, //成就系统加成
CLOAK = 8, //披风属性加成
MARRIAGE = 9, //婚姻
CARD = 10, //图鉴
PET = 11, //宠物
GUILD_HanLin = 12,//公会翰林属性
Soul = 13, //战魂
TITLE = 14, //称号
VIP = 15, //VIP
MASTER = 16, //师门
FASHION = 17, //时装
SkillBuff = 999, //技能buf
}
public void GS2U_ResPlayerFightPointChange(MSG_Player.ResPlayerFightPointChange result)
{
if (GameCenter.GameSceneSystem.ActivedScene != null)
{
LocalPlayer lp = GameCenter.GameSceneSystem.GetLocalPlayer();
if (lp != null)
{
lp.FightPower = result.fightPoint;
}
}
}
public void GS2U_ResPlayerSummaryInfo(MSG_Player.ResPlayerSummaryInfo result)
{
GameCenter.PushFixEvent(UIEventDefine.UISocialTipsForm_OPEN, result);
}
//查看其它玩家
public void GS2U_ResLookOtherPlayerResult(MSG_Player.ResLookOtherPlayerResult result)
{
//if (GameCenter.FormStateSystem.GetFormState("UIGuildForm") == FormStateCode.FSC_OPENED)
//{
GameCenter.PushFixEvent(UIEventDefine.UILookOterPlayerForm_OPEN, result);
//}
}
public void GS2U_ResFightOrUnFight(MSG_Player.ResFightOrUnFight result)
{
var lp = GameCenter.GameSceneSystem.GetLocalPlayer();
if (lp != null && lp.FightState != result.isFight)
{
lp.FightState = result.isFight;
if (result.isFight)
{
//进入战斗状态
GameCenter.MsgPromptSystem.ShowPrompt(DeclareMessageString.Get(DeclareMessageString.C_ENTER_FIGHTSTATE));
}
else
{
//离开战斗状态
GameCenter.MsgPromptSystem.ShowPrompt(DeclareMessageString.Get(DeclareMessageString.C_LEAVE_FIGHTSTATE));
}
}
}
public void GS2U_ResMainUIGuideID(MSG_Player.ResMainUIGuideID result)
{
}
public void GS2U_ResPlayerTodayData(MSG_Player.ResPlayerTodayData result)
{
//GameCenter.WeaponGrowthSystem.LoginDays = result.accumOnlineDays;
}
public void GS2U_ResBeginGather(MSG_Map.ResBeginGather result)
{
//UnityEngine.Debug.Log("====begin sky res=====");
Player p = GameCenter.GameSceneSystem.FindEntity(result.roleId);
if (p != null)
{
p.Action_Collect(result.gatherId);
}
}
public void GS2U_ResEndGather(MSG_Map.ResEndGather result)
{
RemotePlayer p = GameCenter.GameSceneSystem.FindEntity(result.roleId);
if (p != null && p.Fsm != null && p.Fsm.CurrentState is Collect)
{
//UnityEngine.Debug.Log("====end sky res=====");
Collect c = p.Fsm.CurrentState as Collect;
c.FinishTransition();
p.Stop_Action(false);
}
//GameCenter.SkyCitySystem.ResEndGather(result);
}
public void GS2U_ResChangeRoleNameResult(MSG_Player.ResChangeRoleNameResult result)
{
if (!result.isSuccess)
return;
var player = GameCenter.GameSceneSystem.FindEntity(result.roleId);
if (player != null)
{
player.PropMoudle.Name = result.newName;
GameCenter.PushFixEvent(LogicEventDefine.EID_EVENT_HUD_UPDATE_HEADINFO, player);
if (player.IsLocalPlayer())
{
GameCenter.MsgPromptSystem.ShowPrompt(Thousandto.Cfg.Data.DeclareMessageString.Get(Thousandto.Cfg.Data.DeclareMessageString.C_CHANGEJOB_TIPS_SUC));
}
}
}
public void GS2U_ResMaxHpChange(MSG_Player.ResMaxHpChange result)
{
var character = GameCenter.GameSceneSystem.FindEntity((ulong)result.roleId);
if (character != null)
{
character.PropMoudle.SetBattleProp(AllBattleProp.MaxHP, result.maxHp);
if (character.IsLocalPlayer())
{
var lp = character as LocalPlayer;
lp.CheckLifeHint();
}
}
}
//打开阵营选择界面
public void GS2U_ResClientToChoiceBirthGroup(MSG_Player.ResClientToChoiceBirthGroup result)
{
//GameCenter.PushFixEvent(UIEventDefine.UIChooseCampForm_OPEN);
}
public void GS2U_ResNotUpLevel(MSG_Player.ResNotUpLevel result)
{
}
public void GS2U_ResChangeJobTips(MSG_Player.ResChangeJobTips result)
{
//提示可以转职了
}
//接收到开服时间
public void GS2U_ResOpenServerTime(MSG_Player.ResOpenServerTime result)
{
}
public void GS2U_ResPeakLevelPanel(MSG_Player.ResPeakLevelPanel result)
{
//GameCenter.DianFengLvSystem.GS2U_ResPeakLevelPanel(result);
}
public void GS2U_ResActiveFateStar(MSG_Player.ResActiveFateStar result)
{
//if (result.ids.gender == 4)
// GameCenter.DianFengLvSystem.GS2U_ResActiveFateStar(result);
//else if (result.ids.gender == 5)
//{
// GameCenter.DianFengFiveSystem.GS2U_ResActiveFateStar(result);
//}
}
//转职广播
public void GS2U_ResPlayerGenderNotice(MSG_Player.ResPlayerGenderNotice result)
{
//Player player = GameCenter.GameSceneSystem.FindEntity((ulong)result.playerId);
//if (player != null)
//{
// int cfgId = GameCenter.TransferSystem.GetModelCfgId((int)player.Occ, (int)player.PropMoudle.GradeLevel);
// if (cfgId != 0)
// {
// player.EquipWithType(FSkinPartCode.TransVfx, cfgId);
// }
//}
}
//五转
public void GS2U_ResChangeJobPanel(MSG_Player.ResChangeJobPanel result)
{
//if (result.gender == 5)
//{
// //五转
// GameCenter.DianFengFiveSystem.GS2U_ResChangeJobPanel(result);
//}
}
///
/// 血脉系统升级返回消息
///
///
public void GS2U_ResUpgradeBlood(MSG_Player.ResUpgradeBlood result)
{
//GameCenter.BloodVenationSystem.GS2U_ResUpgradeBlood(result);
}
public void GS2U_ResOpenBloodPannel(MSG_Player.ResOpenBloodPannel result)
{
//GameCenter.BloodVenationSystem.GS2U_ResOpenBloodPannel(result);
}
//转换职业
public void GS2U_ResPlayerCareerChange(MSG_Player.ResPlayerCareerChange result)
{
/*
if(result.state == 0 && (ulong)result.roleId == LocalPlayerRoot.LocalPlayerID)
{
GameCenter.MsgPromptSystem.ShowMsgBox(string.Format(DeclareMessageString.Get(DeclareMessageString.C_CHANGEOCC_SUCCTIPS), PlayerPropetry.GetOccName((Occupation)result.careerNo)), DeclareMessageString.Get(DeclareMessageString.C_MSGBOX_OK), null, (code) =>
{
//回到登录界面
GameCenter.GameSceneSystem.ReturnToLogin();
});
}
*/
}
public void GS2U_ResSendGift(MSG_Player.ResSendGift result) { }
public void GS2U_ResGetGiftLog(MSG_Player.ResGetGiftLog result) { }
public void GS2U_SyncXiSuiData(MSG_Player.SyncXiSuiData result)
{
var player = GameCenter.GameSceneSystem.FindEntity((ulong)result.roleID);
if(player != null)
{
player.PropMoudle.XiSuiLevel = result.xsLvl;
}
}
public void GS2U_ResGenderClassChange(MSG_Player.ResGenderClassChange result)
{
var lp = GameCenter.GameSceneSystem.GetLocalPlayer();
if(lp != null)
{
lp.ChangeJobLevel = result.genderClass;
}
}
public void GS2U_ResNewGiftLog(MSG_Player.ResNewGiftLog result) { }
public void GS2U_ResReadGiftLog(MSG_Player.ResReadGiftLog result) { }
public void GS2U_G2SSynPlayerSocialInfo(MSG_Player.G2SSynPlayerSocialInfo result) { }
public void GS2U_G2SReqPlayerSummaryInfo(MSG_Player.G2SReqPlayerSummaryInfo result) { }
public void GS2U_ResPlayerSettingCustomHeadResult(MSG_Player.ResPlayerSettingCustomHeadResult result)
{
if(result.head != null)
{
var player = GameCenter.GameSceneSystem.FindEntity((ulong)result.roleId);
if (player != null)
{
player.TexHeadPicID = result.head.customHeadPath;
player.IsShowHeadPic = result.head.useCustomHead;
}
}
}
}
}