Files
JJBB/Assets/Project/Script/Player/UserData/PlayerData.cs

1780 lines
52 KiB
C#
Raw Normal View History

2024-08-23 15:49:34 +08:00
using System.Collections.Generic;
using Games.ChatHistory;
using Games.DailyMissionData;
using Games.Events;
using Games.Fellow;
using Games.GlobeDefine;
using Games.ImpactModle;
using Games.Item;
using Games.LogicObj;
using Games.MountModule;
using Games.SkillModle;
using Games.TitleInvestitive;
using Games.UserCommonData;
using GCGame.Table;
using UnityEngine;
public enum MONEYTYPE
{
MONEYTYPE_INVALID = -1,
MONEYTYPE_COIN = 0, //银两
MONEYTYPE_YUANBAO = 1, //灵玉
MONEYTYPE_YUANBAO_BIND = 2, //元宝
MONEYTYPE_COIN_BIND = 3, //银票
MONEYTYPE_USERCHALLENGE, //门派挑战积分
MONEYTYPE_SNATCHSCORE, //夺宝积分
//MONEYTYPE_ACT1 = 4, //活动积分
//MONEYTYPE_ACT2 = 5, //活动积分
//MONEYTYPE_ACT3 = 6, //活动积分
//MONEYTYPE_ACT4 = 7, //活动积分
//MONEYTYPE_ACT5 = 8, //活动积分
//MONEYTYPE_ACT6 = 9, //活动积分
//MONEYTYPE_ACT7 = 10, //活动积分
//MONEYTYPE_ACT8 = 11, //活动积分
MONEYTYPE_SKILLEXP,
MONEYTYPE_ROLEEXP,
MONEYTYPE_TYPECOUNT
}
public enum CONSUM_TYPE
{
INVALID = 0,
PROPVAL = 1, //奖励或者消耗一种非固定战斗属性id为属性idval为属性值
PROPPER = 2, //增加属性百分比id为属性idval为百分比乘以1万
ITEM = 3, //物品, id是为物品id cnt为物品数量
MONEY = 4, // 金钱id为金钱子类型val为金钱数量
SCORE = 5, // 积分
NUM //类型总数 枚举于此之前添加
}
// 装备槽位强化结构
public struct StrengthData
{
public int lv; // 强化等级
public int perfect; // 强化完美度
public StrengthData(int lv, int perfect)
{
this.lv = lv;
this.perfect = perfect;
}
}
public enum SCORE_TYPE
{
GUILD_SCORE = 1
}
public class PlayerData
{
//丈夫妻子标记
private int _CoupFlag = -1;
private FunctionRewStateManager _functionRewStateManager;
private readonly Dictionary<PropID.PropertyID, int> _IntPropValue = new Dictionary<PropID.PropertyID, int>();
//是否有队长奖励可以领取
//打坐状态
private bool _IsInMeditataState;
//是否已婚
public float _LastGuildConscribeTime;
//寻物任务所需物品ID 及 数量
public Dictionary<int, int> _MissionLootItemNeedCountDic = new Dictionary<int, int>();
private float _modelScale = 1f;
//人物相思树信息
private MarryAcaciaData _MyAcaciaData;
//人物羁绊信息
private MarryFetterData _MyFetterData;
//人物戒指信息
private MarryRingCtr _MyRingInfoData;
//人物时装信息
private PlayerFashionData _PlayerFashionData;
private int _skillLockMode = int.MaxValue;
//结拜
public SwornBrother _SwornBrother;
private List<string> AbuseFilterList = new List<string>(); //动态屏蔽字
public int DragonWar_DayRecvTimes = 0; //战龙堂每日接取次数
//战龙堂数据
public ulong DragonWar_destanceGuildGuid = GlobeVar.INVALID_GUID; //目标帮会guid
public string DragonWar_destanceGuildName = string.Empty; //目标帮会名称
// public int OPenServerDays = 0;
// 快捷仓库剩余使用次数,-1代表无限次
public int FastOPenCangKuLeaveTimes = 0;
public bool HasInitOwnSkill = false;
public bool InTreasureState;
public bool IsHaveActrivityRewCanGet = false;
//已经激活的伙伴技能
private readonly List<int> m_activeMagicModels = new List<int>();
//每个活动对应迎头经验
private Dictionary<int, int> m_ActivityHeadExpDic;
//public MountParam ObjMountParam
//{
// get { return m_objMountParam; }
// set { m_objMountParam = value; }
//}
public AdvanceData m_AdvanceData;
//出副本自动寻路
private int m_AutoSearchMissionId = -1;
//出副本显示轮次完成
private int m_AutoShowTurnOverEnsureMissionId = -1;
//是否开始自动战斗
protected bool m_bAutoComabat;
private int m_bAutoTeamCopySceneDifficult = 1; //记录自动组队状态 难度
private int m_bAutoTeamCopySceneId = -1; //记录自动组队状态 场景ID
// 4技能新手指引切场景需要 加个标记
//玩家黑名单
//所属渠道ID
//////////////////////////////////////////////////////////////////////////
//聊天记录
//////////////////////////////////////////////////////////////////////////
//孩子信息
private ChildData m_ChildData;
//角色自动使用药品信息
private ClientCustomData m_ClientCustomDateManager;
// 通用存储数据
// 日常任务
private int m_dressMagicModelId = -1;
private ChatInfoLogic.CHANNEL_TYPE m_eChooseChannel = ChatInfoLogic.CHANNEL_TYPE.CHAT_TYPE_WORLD;
//////////////////////////////////////////////////////////////////////////
//收到EnterScene包后的数据缓存
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//时装
//////////////////////////////////////////////////////////////////////////
private float m_fCopySceneChange; //判断副本是否发送过传送信息.
//伙伴数据
//伙伴数据
//伙伴抽取CD
//当天抽取伙伴次数
//伙伴特效
private float m_FellowTickTime;
//上次寄售行吆喝时间
//禁言结束时间
public ulong m_ForbiddenTalkOverTime;
//////////////////////////////////////////////////////////////////////////
//玩家关系
//////////////////////////////////////////////////////////////////////////
//玩家好友列表
private RelationList m_FriendList;
//每个活动单独计时在线时长
private Dictionary<int, long> m_FuncionOnlineTimeDic;
//功能开启状态
private Dictionary<int, bool> m_FunctionOpenState;
//玩家帮派好友列表
//////////////////////////////////////////////////////////////////////////
//帮会数据
//////////////////////////////////////////////////////////////////////////
//仇人列表
//玩家当前禁言状态
//角色物品使用限制
private ItemLimtInfoCtr m_ItemLimitInfoCtr;
private ulong m_LastTellGUID = GlobeVar.INVALID_GUID;
private string m_LastTellName = "";
//伴侣 GUID
private ulong m_LoverGUID = GlobeVar.INVALID_GUID;
//主角基础属性
//Obj_MainPlayer已经将自己的BaseAttr屏蔽掉而直接从这里读取
//师门
public Master m_MasterInfo;
// 策划要求 任务追踪界面排序
private int m_ModelVisualID = GlobeVar.INVALID_ID;
public MONEY m_Money;
// 月卡的剩余天数
// 如果是小于等于0月卡失效否则有效
//帮会货运马车
private int m_nGharryObjID = -1;
private ulong m_nHpDrugGUID = GlobeVar.INVALID_GUID; //血药位置
private ulong m_nMpDrugGUID = GlobeVar.INVALID_GUID; //魔药位置
//VIP
//VIP
//进阶装备槽位
private GameItemContainer m_oAdvancePack;
private GameItemContainer m_oBackPack;
//////////////////////////////////////////////////////////////////////////
//坐骑数据
//////////////////////////////////////////////////////////////////////////
public MountParam m_objMountParam;
//////////////////////////////////////////////////////////////////////////
//回购槽位
//////////////////////////////////////////////////////////////////////////
private GameItemContainer m_oBuyBackPack;
//////////////////////////////////////////////////////////////////////////
//装备槽位
//////////////////////////////////////////////////////////////////////////
private GameItemContainer m_oEquipPack;
// 装备槽位的强化等级和完美度
private StrengthData[] m_oEquipSlotStrength;
//////////////////////////////////////////////////////////////////////////
//法宝槽位
//////////////////////////////////////////////////////////////////////////
private GameItemContainer m_oMagicPack;
private CangkuContainer m_oStoragePack;
//充值活动
private PayActivityData m_PayActivity;
private PlayerOrnamentInfo m_PlayerOrnamentStateInfo;
//角色PVP信息
private PvpInfo m_PvpInfo;
// 滚动公告
//////////////////////////////////////////////////////////////////////////
//组队数据
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//称号数据
//////////////////////////////////////////////////////////////////////////
private readonly List<int> m_VipRewardState = new List<int>();
//帮战推送消息
//所属服务器ID
//玩家好友申请列表
public bool NewApplyCheck = false;
// 这个变量从来未赋值将会一直处于false状态
//是否开启挂机模式
//private bool m_BeforeChangeSceneAutoCombat;
//public bool ChangeSceneAutoCombat
//{
// get { return m_BeforeChangeSceneAutoCombat; }
// set { m_BeforeChangeSceneAutoCombat = value; }
//}
////是否开启挂机模式
//private bool m_IsOpenAutoCombat;
//public bool IsOpenAutoCombat
//{
// get { return m_IsOpenAutoCombat; }
// set { m_IsOpenAutoCombat = value; }
//}
////最近一次打断 自动战斗的时间
//private float m_fBreakAutoCombatTime;
//public float BreakAutoCombatTime
//{
// get { return m_fBreakAutoCombatTime; }
// set { m_fBreakAutoCombatTime = value; }
//}
public int OldAutoCombat = -1;
//婚车双方OBJ
public List<Obj_Character> OnWeddingCarObjList;
//复活相关数据
public ReliveLogic.ReLiveData ReliveData;
//仓库最大解锁数(只在打开仓库之后才会同步)
public int SlotTotalUnLockCount = 0;
public string TreasureTip = "";
public PlayerData()
{
IsShowVipTip = false;
ForthSkillFlag = false;
AutoTeamState = false;
StartSweep = false;
MpItemCDTime = 0;
HpItemCDTime = 0;
ReliveEntryTime = 0;
HasInitEquipPack = false;
HasInitBackPack = false;
IsMarried = false;
LastConsignShareTime = 0.0f;
IsHaveCaptainWelfareRewCanGetted = false;
IsForbiddenTalk = false;
CleanUp();
}
public bool IsFollowTeam
{
get { return IsHaveTeam() && !TeamInfo.IsCaptain() && TeamInfo.IsFollowTeam(); }
}
public PlayerOrnamentInfo PlayerOrnamentStateInfo
{
get
{
if (m_PlayerOrnamentStateInfo == null)
m_PlayerOrnamentStateInfo = new PlayerOrnamentInfo();
return m_PlayerOrnamentStateInfo;
}
}
public ItemLimtInfoCtr ItemLimitInfo
{
get
{
if (m_ItemLimitInfoCtr == null)
m_ItemLimitInfoCtr = new ItemLimtInfoCtr();
return m_ItemLimitInfoCtr;
}
}
public ChildData ChildData
{
get
{
if (m_ChildData == null)
m_ChildData = new ChildData();
return m_ChildData;
}
}
//是否处于门派挑战自动匹配状态
public bool IsFactionAdvanceAutoMtach { get; set; }
public bool IsInMeditateState
{
get { return _IsInMeditataState; }
set
{
_IsInMeditataState = value;
if (MeditateCtr.Instance)
MeditateCtr.Instance.ShowMeditateHLBtn(_IsInMeditataState);
}
}
//结婚游街
public bool IsInWeddingCar { get; set; }
//婚车ObjId
public int WeddingCarObjId { get; set; }
////婚车相机
//public Camera WCCamera { get; set; }
//BindObjId
public Dictionary<ulong, WCBingObjInfo> _WCBindObjDic { get; set; }
//当前VIP体验对应ID
public int VipIdoitId { set; get; }
//当前VIP体验状态
public int VipIdoitStae { set; get; }
public PvpInfo pvpIfo
{
get
{
if (m_PvpInfo == null)
m_PvpInfo = new PvpInfo();
return m_PvpInfo;
}
}
public ClientCustomData ClientCustomDateManager
{
get
{
if (m_ClientCustomDateManager == null)
m_ClientCustomDateManager = new ClientCustomData();
return m_ClientCustomDateManager;
}
}
public FunctionRewStateManager FunctionRemainTimeStateManager
{
get
{
if (_functionRewStateManager == null)
_functionRewStateManager = new FunctionRewStateManager();
return _functionRewStateManager;
}
}
public Dictionary<int, int> ActivityHeadExpDic
{
get
{
if (m_ActivityHeadExpDic == null)
m_ActivityHeadExpDic = new Dictionary<int, int>();
return m_ActivityHeadExpDic;
}
}
public Dictionary<int, long> FuncionOnlineTimeDic
{
get
{
if (m_FuncionOnlineTimeDic == null)
m_FuncionOnlineTimeDic = new Dictionary<int, long>();
return m_FuncionOnlineTimeDic;
}
}
public Dictionary<int, bool> FunctionOpenState
{
get
{
if (m_FunctionOpenState == null)
m_FunctionOpenState = new Dictionary<int, bool>();
return m_FunctionOpenState;
}
}
public bool IsForbiddenTalk { get; set; }
public ulong ForbiddenTalkOverTime
{
get { return m_ForbiddenTalkOverTime; }
set { m_ForbiddenTalkOverTime = value; }
}
public int WorldId { set; get; }
public string ChannelId { set; get; }
public List<int> VipRewardStates
{
get { return m_VipRewardState; }
}
// 技能锁定相关数据
public int SkillLockMode
{
get { return _skillLockMode; }
set
{
if (_skillLockMode != value)
{
_skillLockMode = value;
EventDispatcher.Instance.Dispatch(EventId.LockSkillInput, _skillLockMode);
}
}
}
/// <summary>
/// 是否允许输入普攻
/// </summary>
public bool AllowSimpleInput
{
get { return (SkillLockMode & 1) > 0; }
}
/// <summary>
/// 是否允许输入技能
/// </summary>
public bool AllowSkillInput
{
get { return (SkillLockMode & 2) > 0; }
}
public PlayerFashionData PlerfaFashiuonDataCtr
{
get
{
if (_PlayerFashionData == null)
_PlayerFashionData = new PlayerFashionData();
return _PlayerFashionData;
}
}
public MarryRingCtr MyRingInfoData
{
get
{
if (_MyRingInfoData == null)
_MyRingInfoData = new MarryRingCtr();
return _MyRingInfoData;
}
}
public MarryFetterData MyFetterData
{
get
{
if (_MyFetterData == null)
_MyFetterData = new MarryFetterData();
return _MyFetterData;
}
}
public MarryAcaciaData MyAcaciaData
{
get
{
if (_MyAcaciaData == null)
_MyAcaciaData = new MarryAcaciaData();
return _MyAcaciaData;
}
}
public bool IsHaveCaptainWelfareRewCanGetted { get; set; }
public OwnSkillData[] OwnSkillInfo { get; private set; }
public bool IsHaveImperialEligible { set; get; }
public int SkillPublicTime { get; set; }
public bool IsCanPKLegal { get; set; }
public int PkModle { get; set; }
public bool AutoComabat
{
get { return m_bAutoComabat; }
set { m_bAutoComabat = value; }
}
public int StealthLev { get; set; }
public float LastConsignShareTime { get; set; }
//体验VIP
public int ExperIvpLevel { get; set; }
public int VipCost { get; set; }
public int VipFreeLive { get; set; }
public int MonthlyCardDayRemain { get; set; }
public int PoolCombatValue { get; set; }
public List<ClientImpactInfo> ClientImpactInfo { get; set; }
public int MainBindParent { get; set; }
public List<int> MainBindChildren { get; set; }
public bool IsMarried { get; set; }
public int CoupFlag
{
get { return _CoupFlag; }
set { _CoupFlag = value; }
}
public BaseAttr MainPlayerBaseAttr { get; set; }
public PlayerEnterSceneCache EnterSceneCache { get; set; }
public GameItemContainer BackPack
{
get
{
if (m_oBackPack == null) CleanUpContainers();
return m_oBackPack;
}
set { m_oBackPack = value; }
}
public bool HasInitBackPack { get; set; }
public GameItemContainer EquipPack
{
get
{
if (m_oEquipPack == null) CleanUpContainers();
return m_oEquipPack;
}
set { m_oEquipPack = value; }
}
public bool HasInitEquipPack { get; set; }
public StrengthData[] EquipSlotStrength
{
get
{
if (m_oEquipSlotStrength == null) CleanUpContainers();
return m_oEquipSlotStrength;
}
set { m_oEquipSlotStrength = value; }
}
public GameItemContainer BuyBackPack
{
get
{
if (m_oBuyBackPack == null) CleanUpContainers();
return m_oBuyBackPack;
}
set { m_oBuyBackPack = value; }
}
public CangkuContainer StoragePack
{
get
{
if (m_oStoragePack == null) CleanUpContainers();
return m_oStoragePack;
}
set { m_oStoragePack = value; }
}
public GameItemContainer MagicPack
{
get
{
if (m_oMagicPack == null) CleanUpContainers();
return m_oMagicPack;
}
set { m_oMagicPack = value; }
}
public GameItemContainer AdvancePack
{
get
{
if (m_oAdvancePack == null) CleanUpContainers();
return m_oAdvancePack;
}
set { m_oAdvancePack = value; }
}
public int DressMagicModelId
{
get { return m_dressMagicModelId; }
}
public int ActiveMagicModelCount
{
get { return m_activeMagicModels.Count; }
}
public Team TeamInfo { get; set; }
public Guild GuildInfo { get; set; }
public int nGharryObjID
{
get { return m_nGharryObjID; }
set { m_nGharryObjID = value; }
}
public GuildList guildList { get; set; }
public List<GuildWarPushMessageInfo> WarPushMessaeg { get; set; }
public GameTitleInvestitive TitleInvestitive { get; set; }
public bool IsLockPriorTitle { get; set; }
public GameChatHistory ChatHistory { get; set; }
public ChatInfoLogic.CHANNEL_TYPE ChooseChannel
{
get { return m_eChooseChannel; }
set { m_eChooseChannel = value; }
}
public ulong LastTellGUID
{
get { return m_LastTellGUID; }
set { m_LastTellGUID = value; }
}
public string LastTellName
{
get { return m_LastTellName; }
set { m_LastTellName = value; }
}
public LastSpeakerRecord TellChatSpeakers { get; set; }
public RelationList FriendList
{
get
{
if (m_FriendList.RelationDataList.Count == 0)
{
// "系统信息" 好友
var sysFriend = new Relation();
sysFriend.Guid = GlobeVar.SYSFRIEND_GUID;
sysFriend.Name = StrDictionary.GetClientDictionaryString("#{5213}");
sysFriend.State = 1;
sysFriend.TimeInfo = 0;
m_FriendList.AddRelation(sysFriend);
// "小精灵" 好友
//Relation helpFriend = new Relation();
//helpFriend.Guid = GlobeVar.HELPFRIEND_GUID;
//helpFriend.Name = StrDictionary.GetClientDictionaryString("#{5214}");
//helpFriend.State = 1;
//helpFriend.TimeInfo = 1;
//m_FriendList.AddRelation(helpFriend);
}
return m_FriendList;
}
set { m_FriendList = value; }
}
public RelationList GuildFriendList { get; set; }
public RelationList FriendApplyList { get; set; }
public RelationList BlackList { get; set; }
public RelationList HateList { get; set; }
public FellowBookData FellowBookData { get; set; }
public FellowContainer FellowContainer { get; set; }
public bool FellowPlayerEffect { get; set; }
public List<int> ActiveFellowSkill { get; set; }
public int FellowGainCount_Free { get; set; }
public int FellowGainCount_Coin { get; set; }
public int FellowGainCount_YuanBao { get; set; }
public int FellowGainCD_Coin { get; set; }
public int ReliveEntryTime { get; set; }
public UserCommonData CommonData { get; set; }
public DailyMissionData DailyMissionData { get; set; }
public ulong LoverGUID
{
get { return m_LoverGUID; }
set { m_LoverGUID = value; }
}
public MONEY Money
{
get { return m_Money; }
set { m_Money = value; }
}
public int[] FashionDeadline { get; set; }
public int WeaponFashionId { get; set; }
public bool ShowFashion { get; set; }
public int ModelVisualID
{
get { return m_ModelVisualID; }
set { m_ModelVisualID = value; }
}
public ForceUseModelData ForceUseModel { get; set; }
/// <summary>
/// 额外的模型尺寸参数
/// </summary>
// 注例如变大变小的buff需要保障角色模型替换后有效
public float ModelScale
{
get { return _modelScale; }
set { _modelScale = value; }
}
public List<string> RollNoticeList { get; set; }
public float HpItemCDTime { get; set; }
public float MpItemCDTime { get; set; }
public bool StartSweep { get; set; }
public bool CopySceneChange
{
get
{
if (Time.realtimeSinceStartup - m_fCopySceneChange > 10.0f)
return false;
return true;
}
set
{
if (value)
m_fCopySceneChange = Time.realtimeSinceStartup;
else
m_fCopySceneChange = 0;
}
}
public PayActivityData PayActivity
{
get { return m_PayActivity; }
set { m_PayActivity = value; }
}
public bool AutoTeamState { get; set; }
public int AutoTeamCopySceneId
{
get { return m_bAutoTeamCopySceneId; }
set { m_bAutoTeamCopySceneId = value; }
}
public int AutoTeamCopySceneDifficult
{
get { return m_bAutoTeamCopySceneDifficult; }
set { m_bAutoTeamCopySceneDifficult = value; }
}
public bool ForthSkillFlag { get; set; }
public List<int> MissionSortList { get; set; }
public Vector3 MissionGridLastPos { get; set; }
public bool IsShowVipTip { get; set; }
public int AutoSearchMissionId
{
get { return m_AutoSearchMissionId; }
set { m_AutoSearchMissionId = value; }
}
public int AutoShowTurnOverEnsureMissionId
{
get { return m_AutoShowTurnOverEnsureMissionId; }
set { m_AutoShowTurnOverEnsureMissionId = value; }
}
public ulong HpDrugGUID
{
get { return m_nHpDrugGUID; }
set { m_nHpDrugGUID = value; }
}
public ulong MpDrugGUID
{
get { return m_nMpDrugGUID; }
set { m_nMpDrugGUID = value; }
}
public void CleanUpContainers()
{
GameItemContainer.InitStaticParams();
m_oBackPack = new GameItemContainer(GameItemContainer.SIZE_BACKPACK, GameItemContainer.Type.TYPE_BACKPACK);
m_oEquipPack = new GameItemContainer(GameItemContainer.SIZE_EQUIPPACK, GameItemContainer.Type.TYPE_EQUIPPACK);
m_oEquipSlotStrength = new StrengthData[GameItemContainer.SIZE_EQUIPPACK];
m_oBuyBackPack =
new GameItemContainer(GameItemContainer.MAXSIZE_BUYBACKPACK, GameItemContainer.Type.TYPE_BUYBACKPACK);
m_oStoragePack =
new CangkuContainer(GameItemContainer.SIZE_STORAGEPACK, GameItemContainer.Type.TYPE_STORAGEPACK);
m_oMagicPack = new GameItemContainer(GameItemContainer.SIZE_MAGICPACK, GameItemContainer.Type.TYPE_MAGICPACK);
m_oAdvancePack =
new GameItemContainer(GameItemContainer.SIZE_ADVANCPACK, GameItemContainer.Type.TYPE_ADVANCEPACK);
}
public void CleanUp()
{
var newAttr = new BaseAttr();
// 试图将绑定事件传递到新的Attr
if (MainPlayerBaseAttr != null)
{
newAttr.onMoveSpeedUpdate = MainPlayerBaseAttr.onMoveSpeedUpdate;
MainPlayerBaseAttr.onMoveSpeedUpdate = null;
}
MainPlayerBaseAttr = newAttr;
HasInitBackPack = false;
//清理玩家切场景缓存数据
EnterSceneCache = new PlayerEnterSceneCache();
//玩家组队信息
TeamInfo = new Team();
if (null != TeamInfo) TeamInfo.CleanUp();
GuildInfo = new Guild();
guildList = new GuildList();
m_objMountParam = new MountParam();
m_objMountParam.CleanUp();
m_AdvanceData = new AdvanceData();
// 玩家称号
TitleInvestitive = new GameTitleInvestitive();
IsLockPriorTitle = false;
// 聊天记录
if (ChatHistory == null)
//如果聊天记录存在(断线重连/重新登陆),不清除聊天记录
ChatHistory = new GameChatHistory();
// 最近私聊对象记录
TellChatSpeakers = new LastSpeakerRecord();
//初始化玩家关系数据
m_FriendList = new RelationList();
GuildFriendList = new RelationList();
FriendApplyList = new RelationList();
BlackList = new RelationList();
HateList = new RelationList();
//伙伴
FellowContainer = new FellowContainer();
FellowPlayerEffect = false;
ActiveFellowSkill = new List<int>();
FellowGainCount_Free = 0;
FellowGainCount_Coin = 0;
FellowGainCount_YuanBao = 0;
FellowGainCD_Coin = 0;
m_FellowTickTime = 0f;
FellowBookData = new FellowBookData();
//初始化
_MyRingInfoData = new MarryRingCtr();
OwnSkillInfo = new OwnSkillData[(int) SKILLDEFINE.MAX_SKILLNUM];
for (var i = 0; i < (int) SKILLDEFINE.MAX_SKILLNUM; i++)
{
OwnSkillInfo[i] = new OwnSkillData();
OwnSkillInfo[i].CleanUp();
}
SkillPublicTime = 0;
IsCanPKLegal = false;
m_Money = new MONEY();
VipCost = -1;
ClientImpactInfo = new List<ClientImpactInfo>();
CommonData = new UserCommonData(); // 玩家通用数据
DailyMissionData = new DailyMissionData(); // 日常任务数据
FashionDeadline = new int[GlobeVar.MAX_FASHION_SIZE];
for (var i = 0; i < GlobeVar.MAX_FASHION_SIZE; i++) FashionDeadline[i] = 0;
WeaponFashionId = GlobeVar.INVALID_ID;
ShowFashion = false;
m_ModelVisualID = GlobeVar.INVALID_ID;
_SwornBrother = new SwornBrother();
m_MasterInfo = new Master();
PkModle = -1;
//隐身级别
StealthLev = 0;
//是否开始自动战斗
m_bAutoComabat = false;
WarPushMessaeg = new List<GuildWarPushMessageInfo>();
m_LoverGUID = GlobeVar.INVALID_GUID;
//上次寄售行吆喝时间
LastConsignShareTime = 0.0f;
m_PayActivity.CleanUp();
RollNoticeList = new List<string>();
ForthSkillFlag = false;
MainBindChildren = new List<int>();
MainBindParent = -1;
AutoTeamState = false;
MissionSortList = new List<int>();
MissionGridLastPos = Vector3.zero;
IsShowVipTip = false;
ReliveData.ClearUp();
_PlayerFashionData = new PlayerFashionData();
_MyFetterData = new MarryFetterData();
_MyAcaciaData = new MarryAcaciaData();
IsHaveCaptainWelfareRewCanGetted = false;
// m_PrivilegeTypeStateDic = new Dictionary<int, bool>();
IsForbiddenTalk = false;
m_ForbiddenTalkOverTime = 0; //0就是没有禁言状态
m_FunctionOpenState = new Dictionary<int, bool>();
m_FuncionOnlineTimeDic = new Dictionary<int, long>();
_functionRewStateManager = new FunctionRewStateManager();
m_ClientCustomDateManager = new ClientCustomData();
m_ItemLimitInfoCtr = new ItemLimtInfoCtr();
m_PvpInfo = new PvpInfo();
VipIdoitId = -1;
VipIdoitStae = 0;
_LastGuildConscribeTime = 0.0f;
WeddingCarObjId = -1;
IsInWeddingCar = false;
_WCBindObjDic = new Dictionary<ulong, WCBingObjInfo>();
IsFactionAdvanceAutoMtach = false;
//防止切换账号后接到任务不能自动寻路
GuideLogic._isShowCompleteMissionGuide = false;
InTreasureState = false;
m_PlayerOrnamentStateInfo = new PlayerOrnamentInfo();
m_ChildData = new ChildData();
}
public void AddVipGetRewardState(IList<int> states)
{
m_VipRewardState.Clear();
m_VipRewardState.AddRange(states);
if (ActiveBtns.Instance() != null)
ActiveBtns.Instance().VipTipRedPoint();
}
public OwnSkillData GetOwnSkillInfo(int skillBaseID)
{
foreach (var ownSkill in OwnSkillInfo)
{
if (ownSkill.SkillBaseTable == null)
continue;
if (ownSkill.SkillBaseTable.Id == skillBaseID)
return ownSkill;
}
return null;
}
public void UpdateOwnSkills()
{
for (var i = 0; i < OwnSkillInfo.Length; i++)
OwnSkillInfo[i].UpdateCooldown();
}
public void AddCooldownModifier(int handle, float substract, float modifier, IList<int> baseIdList)
{
for (var i = 0; i < baseIdList.Count; i++)
{
// 注:防御委托延迟操作,勿删
var index = i;
var ownSkill = OwnSkillInfo.Find(a => a.SkillBaseTable != null && a.SkillBaseTable.Id == baseIdList[index]);
if (ownSkill != null)
{
if (modifier > 0f)
ownSkill.AddCooldownModifier(handle, modifier);
if (substract > 0f)
ownSkill.SubstractCooldown(substract);
}
}
}
public void RemoveCooldownModifier(int handle)
{
for (var i = 0; i < OwnSkillInfo.Length; i++)
OwnSkillInfo[i].RemoveCooldownModifier(handle);
}
public void CleanUpOwnSkillInfo()
{
for (var i = 0; i < OwnSkillInfo.Length; i++) OwnSkillInfo[i].CleanUp();
if (GameManager.gameManager != null && GameManager.gameManager.effectPool != null)
GameManager.gameManager.effectPool.CleanHoldPreload();
}
//特权VIP等级
//private Dictionary<int, bool> m_PrivilegeTypeStateDic;
//public Dictionary<int, bool> PrivilegeTypeStateDic
//{
// get
// {
// if (m_PrivilegeTypeStateDic == null)
// m_PrivilegeTypeStateDic = new Dictionary<int, bool>();
// return m_PrivilegeTypeStateDic;
// }
//}
public int GetMaxPrivilegeVip()
{
var level = 0;
//foreach (var privilegeType in m_PrivilegeTypeStateDic)
//{
// if (privilegeType.Value)
// {
// if (privilegeType.Key > level)
// level = privilegeType.Key;
// }
//}
return level;
}
public void SetPropInt(PropID.PropertyID propID, int value)
{
if (_IntPropValue.ContainsKey(propID))
_IntPropValue[propID] = value;
else
_IntPropValue.Add(propID, value);
}
public int GetPropInt(PropID.PropertyID propID)
{
if (_IntPropValue.ContainsKey(propID))
return _IntPropValue[propID];
return -1;
}
//////////////////////////////////////////////////////////////////////////
//背包
//////////////////////////////////////////////////////////////////////////
//取得背包
public GameItemContainer GetItemContainer(GameItemContainer.Type type)
{
switch (type)
{
case GameItemContainer.Type.TYPE_BACKPACK: return m_oBackPack;
case GameItemContainer.Type.TYPE_EQUIPPACK: return m_oEquipPack;
case GameItemContainer.Type.TYPE_BUYBACKPACK: return m_oBuyBackPack;
case GameItemContainer.Type.TYPE_STORAGEPACK: return m_oStoragePack;
case GameItemContainer.Type.TYPE_MAGICPACK: return m_oMagicPack;
case GameItemContainer.Type.TYPE_ADVANCEPACK: return m_oAdvancePack;
}
return null;
}
public bool IsMagicModelActive(int Id)
{
for (var i = 0; i < m_activeMagicModels.Count; i++)
if (Id == m_activeMagicModels[i])
return true;
return false;
}
public int GetActiveMagicModelsByIndex(int index)
{
if (index < 0 || index > m_activeMagicModels.Count)
return -1;
return m_activeMagicModels[index];
}
public void InitMagicWeaponInfo(int dressId, IList<int> activeModels)
{
m_activeMagicModels.Clear();
m_activeMagicModels.AddRange(activeModels);
m_dressMagicModelId = dressId;
if (Singleton<ObjManager>.Instance.MainPlayer != null)
{
Singleton<ObjManager>.Instance.MainPlayer.CreateMagicModel(m_dressMagicModelId);
EventDispatcher.Instance.SendMessage(EventId.MagicShowModel);
}
}
public bool IsHaveTeam()
{
return null != TeamInfo && TeamInfo.TeamID != GlobeVar.INVALID_ID;
}
//某个Guid是否为队伍成员
public bool IsTeamMem(ulong guid)
{
if (GlobeVar.INVALID_ID == TeamInfo.TeamID ||
GlobeVar.INVALID_GUID == guid)
return false;
for (var i = 0; i < GlobeVar.MAX_TEAM_MEMBER; i++)
if (null != TeamInfo.GetTeamMember(i) &&
guid == TeamInfo.GetTeamMember(i).Guid)
return true;
return false;
}
public bool IsHadCreateGuild()
{
return null != GuildInfo && GuildInfo.GuildGuid != GlobeVar.INVALID_GUID;
}
public bool IsHaveGuild()
{
return null != GuildInfo && GuildInfo.GuildGuid != GlobeVar.INVALID_GUID && GuildInfo.GuildLevel > 0;
}
public bool IsReserveGuildMember()
{
if (null == GuildInfo || GuildInfo.GuildGuid == GlobeVar.INVALID_GUID) return false;
var mainPlayerGuid = GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Guid;
GuildMember member;
if (GuildInfo.GuildMemberList.TryGetValue(mainPlayerGuid, out member))
if (member.Job == (int) GameDefine_Globe.GUILD_JOB.RESERVE)
return true;
return false;
}
public bool IsGuildMember(Obj_OtherPlayer _otherPlayer)
{
if (_otherPlayer != null && _otherPlayer.GuildGUID != GlobeVar.INVALID_GUID &&
_otherPlayer.GuildGUID == GuildInfo.GuildGuid)
return _otherPlayer.GuildJob > (int) GameDefine_Globe.GUILD_JOB.INVALID &&
_otherPlayer.GuildJob < (int) GameDefine_Globe.GUILD_JOB.RESERVE;
return false;
}
public bool IsGuildMember(ulong guid)
{
var job = GetGuildJob(guid);
if (job > GameDefine_Globe.GUILD_JOB.INVALID &&
// 排除学徒以及预备学徒,或者之后加入的更低级职位
job < GameDefine_Globe.GUILD_JOB.RESERVE)
return true;
// 之前的判定逻辑最后允许GuildGuid == guid的情况
return GuildInfo != null && GuildInfo.GuildGuid != GlobeVar.INVALID_GUID && GuildInfo.GuildGuid == guid;
}
public GameDefine_Globe.GUILD_JOB GetGuildJob(ulong guid)
{
var result = GameDefine_Globe.GUILD_JOB.INVALID;
if (guid != GlobeVar.INVALID_GUID &&
GuildInfo != null &&
GuildInfo.GuildGuid != GlobeVar.INVALID_GUID)
{
GuildMember member;
if (GuildInfo.GuildMemberList.TryGetValue(guid, out member))
result = (GameDefine_Globe.GUILD_JOB) member.Job;
}
return result;
}
public bool IsGuildChief()
{
return null != Singleton<ObjManager>.GetInstance().MainPlayer && GuildInfo.GuildChiefGuid ==
GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Guid;
}
public bool IsGuildViceChief(ulong guid)
{
if (null == GuildInfo || GuildInfo.GuildGuid == GlobeVar.INVALID_GUID) return false;
if (guid == GlobeVar.INVALID_GUID) return false;
GuildMember member;
if (GuildInfo.GuildMemberList.TryGetValue(guid, out member))
{
if (member.Job == (int) GameDefine_Globe.GUILD_JOB.VICE_CHIEF)
return true;
return false;
}
return false;
}
//申请数量
public int GetNewApplyListCount()
{
return FriendApplyList.RelationDataList.Count;
}
public void Tick_FellowGainCD()
{
if (FellowGainCD_Coin > 0)
{
m_FellowTickTime += Time.deltaTime;
//一秒触发一次
if (m_FellowTickTime > 1)
{
m_FellowTickTime = 0f;
FellowGainCD_Coin--;
}
}
}
public void HandlePacket(GC_SYNC_PAY_ACTIVITY_DATA packet)
{
m_PayActivity.HandlePacket(packet);
}
public static void NoticeLack(int consumType, int consumID)
{
var lackStr = "";
if ((int) CONSUM_TYPE.MONEY == consumType)
lackStr = MONEY.GetMoneyStr((MONEYTYPE) consumID);
else if ((int) CONSUM_TYPE.PROPVAL == consumType)
lackStr = PropID.GetAttrName((PropID.PropertyID) consumID, -1, -1);
GUIData.AddNotifyData(lackStr + StrDictionary.GetClientDictionaryString("#{1096}"));
}
public void ClearFashionData()
{
FashionDeadline = new int[GlobeVar.MAX_FASHION_SIZE];
for (var i = 0; i < GlobeVar.MAX_FASHION_SIZE; i++) FashionDeadline[i] = 0;
WeaponFashionId = GlobeVar.INVALID_ID;
ShowFashion = false;
m_ModelVisualID = GlobeVar.INVALID_ID;
}
//服务器标记
//private int m_ServerFlags;
public void HandlerServerFlags(GC_SERVERFLAGS packet)
{
//m_ServerFlags = packet.Flags;
}
//public bool IsVipOpen()
//{
// if ((m_ServerFlags & (1 << (int)SERVER_FLAGS_ENUM.FLAG_VIP)) == 0)
// {
// return false;
// }
// return true;
//}
//public bool IsChargeActivityOpen()
//{
// if ((m_ServerFlags & (1 << (int)SERVER_FLAGS_ENUM.FLAG_PAYACT)) == 0)
// {
// return false;
// }
// return true;
//}
//每日首次登陆触发
public void OnTodayFirstLogin()
{
}
public void AddAbuseFilter(string data)
{
var str = "";
if (string.IsNullOrEmpty(data)) return;
if (AbuseFilterList == null) AbuseFilterList = new List<string>();
AbuseFilterList.Add(data);
}
public string GetAbuseFilter(string str)
{
if (str == null) return null;
if (AbuseFilterList == null) return null;
for (var i = 0; i < AbuseFilterList.Count; i++)
if (str.IndexOf(AbuseFilterList[i]) != -1)
return AbuseFilterList[i];
return null;
}
public void ClearAbuseFilter()
{
if (AbuseFilterList != null) AbuseFilterList.Clear();
}
//经济系统
public class MONEY
{
private readonly Dictionary<PropID.PropertyID, int> _ActMoney = new Dictionary<PropID.PropertyID, int>();
private readonly long[] m_nMoney;
public MONEY()
{
m_nMoney = new long[(int) MONEYTYPE.MONEYTYPE_TYPECOUNT];
for (var i = 0; i < (int) MONEYTYPE.MONEYTYPE_TYPECOUNT; ++i) m_nMoney[i] = 0;
}
public long GetMoney_Coin()
{
return GetMoneyByType(MONEYTYPE.MONEYTYPE_COIN);
}
public long GetMoney_CoinBind()
{
return GetMoneyByType(MONEYTYPE.MONEYTYPE_COIN_BIND);
}
public long GetMoney_YuanBao()
{
return GetMoneyByType(MONEYTYPE.MONEYTYPE_YUANBAO);
}
public long GetMoney_YuanBaoBind()
{
return GetMoneyByType(MONEYTYPE.MONEYTYPE_YUANBAO_BIND);
}
public long GetMoney_ChallengeScore()
{
return GetMoneyByType(MONEYTYPE.MONEYTYPE_USERCHALLENGE);
}
public long GetMoney_SnatchScore()
{
return GetMoneyByType(MONEYTYPE.MONEYTYPE_SNATCHSCORE);
}
public void SetMoney(MONEYTYPE nType, long nValue)
{
if (nType > MONEYTYPE.MONEYTYPE_INVALID && nType < MONEYTYPE.MONEYTYPE_TYPECOUNT)
m_nMoney[(int) nType] = nValue;
if (MoneyInfoPanel.Instance)
MoneyInfoPanel.Instance.UpdateMoneyInfo();
EventDispatcher.Instance.SendMessage(EventId.FRESHSAMEUSETIP);
if (MeridiaSoulData.Instance != null) MeridiaSoulData.Instance.CheckIsHasUp();
GameManager.gameManager.PlayerDataPool.GuildInfo.XiulianRedPoint();
}
public long GetMoneyByType(MONEYTYPE nType)
{
if (nType > MONEYTYPE.MONEYTYPE_INVALID && nType < MONEYTYPE.MONEYTYPE_TYPECOUNT)
return m_nMoney[(int) nType];
return 0;
}
public void SetMoney(PropID.PropertyID nType, int nValue)
{
if (_ActMoney.ContainsKey(nType))
_ActMoney[nType] = nValue;
else
_ActMoney.Add(nType, nValue);
}
public int GetMoneyByType(PropID.PropertyID nType)
{
if (_ActMoney.ContainsKey(nType)) return _ActMoney[nType];
return 0;
}
public void PushMoneyLessData(int nType)
{
var moneyStrID = nType + 6000;
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{" + moneyStrID + "}") +
StrDictionary.GetClientDictionaryString("#{6000}"));
}
public static string GetMoneySpriteStr(MONEYTYPE currencyType)
{
var spriteName = "";
if (currencyType == MONEYTYPE.MONEYTYPE_COIN)
spriteName = "qian1";
else if (currencyType == MONEYTYPE.MONEYTYPE_YUANBAO)
spriteName = "qian2";
else if (currencyType == MONEYTYPE.MONEYTYPE_YUANBAO_BIND)
spriteName = "qian3";
else if (currencyType == MONEYTYPE.MONEYTYPE_COIN_BIND)
spriteName = "qian4";
else if (currencyType == MONEYTYPE.MONEYTYPE_SKILLEXP)
spriteName = "skillExp";
else if (currencyType == MONEYTYPE.MONEYTYPE_ROLEEXP)
spriteName = "roleExp";
else if (currencyType == MONEYTYPE.MONEYTYPE_USERCHALLENGE) spriteName = "menpai";
return spriteName;
}
public static string GetMoneyStr(MONEYTYPE currencyType)
{
var spriteName = "";
if (currencyType == MONEYTYPE.MONEYTYPE_COIN)
spriteName = StrDictionary.GetClientDictionaryString("#{6003}");
else if (currencyType == MONEYTYPE.MONEYTYPE_YUANBAO)
spriteName = StrDictionary.GetClientDictionaryString("#{6001}");
else if (currencyType == MONEYTYPE.MONEYTYPE_YUANBAO_BIND)
spriteName = StrDictionary.GetClientDictionaryString("#{6002}");
else if (currencyType == MONEYTYPE.MONEYTYPE_COIN_BIND)
spriteName = StrDictionary.GetClientDictionaryString("#{6004}");
return spriteName;
}
}
#region
public int GetIntPropty(int consumType, int consumID)
{
if ((int) CONSUM_TYPE.MONEY == consumType)
{
long moneyValue = 0;
switch ((MONEYTYPE) consumID)
{
case MONEYTYPE.MONEYTYPE_YUANBAO:
moneyValue = Money.GetMoney_YuanBao();
if (moneyValue > GlobeVar.MAX_INT_VALUE)
return GlobeVar.MAX_INT_VALUE;
return (int) moneyValue; // 灵玉
case MONEYTYPE.MONEYTYPE_YUANBAO_BIND:
moneyValue = Money.GetMoney_YuanBaoBind();
if (moneyValue > GlobeVar.MAX_INT_VALUE)
return GlobeVar.MAX_INT_VALUE;
return (int) moneyValue; // 元宝
case MONEYTYPE.MONEYTYPE_COIN:
moneyValue = Money.GetMoney_Coin();
if (moneyValue > GlobeVar.MAX_INT_VALUE)
return GlobeVar.MAX_INT_VALUE;
return (int) moneyValue; // 银两
case MONEYTYPE.MONEYTYPE_COIN_BIND:
moneyValue = Money.GetMoney_CoinBind();
if (moneyValue > GlobeVar.MAX_INT_VALUE)
return GlobeVar.MAX_INT_VALUE;
return (int) moneyValue; // 银票
case MONEYTYPE.MONEYTYPE_USERCHALLENGE:
moneyValue = Money.GetMoney_ChallengeScore();
if (moneyValue > GlobeVar.MAX_INT_VALUE)
return GlobeVar.MAX_INT_VALUE;
return (int) moneyValue; // 挑战积分
case MONEYTYPE.MONEYTYPE_SNATCHSCORE:
moneyValue = Money.GetMoney_SnatchScore();
if (moneyValue > GlobeVar.MAX_INT_VALUE)
return GlobeVar.MAX_INT_VALUE;
return (int) moneyValue; // 夺宝积分
}
}
else if ((int) CONSUM_TYPE.PROPVAL == consumType)
{
switch ((PropID.PropertyID) consumID)
{
case PropID.PropertyID.ACTVAL:
//return GetPropInt(PropID.PropertyID.ACTVAL); //活力
return MainPlayerBaseAttr.CurStamina;
case PropID.PropertyID.PRIVATEEXP: //专属经验
return GetPropInt(PropID.PropertyID.PRIVATEEXP);
case PropID.PropertyID.PROPUSER_EXP:
return GetPropInt(PropID.PropertyID.PROPUSER_EXP);
}
}
else if ((int) CONSUM_TYPE.SCORE == consumType)
{
switch ((SCORE_TYPE) consumID)
{
case SCORE_TYPE.GUILD_SCORE:
//return GetPropInt(PropID.PropertyID.ACTVAL);
return GameManager.gameManager.PlayerDataPool.GuildInfo.GuildContribute;
}
}
return 0;
}
public long GetLongPropty(int consumType, int consumID)
{
if ((int) CONSUM_TYPE.MONEY == consumType)
switch ((MONEYTYPE) consumID)
{
case MONEYTYPE.MONEYTYPE_YUANBAO:
return Money.GetMoney_YuanBao(); //灵玉
case MONEYTYPE.MONEYTYPE_YUANBAO_BIND:
return Money.GetMoney_YuanBaoBind(); //元宝
case MONEYTYPE.MONEYTYPE_COIN:
return Money.GetMoney_Coin(); //银两
case MONEYTYPE.MONEYTYPE_COIN_BIND:
return Money.GetMoney_CoinBind(); //银票
}
else if ((int) CONSUM_TYPE.PROPVAL == consumType)
switch ((PropID.PropertyID) consumID)
{
case PropID.PropertyID.PRIVATEEXP:
return MainPlayerBaseAttr.SkillExp; //专用经验
case PropID.PropertyID.PROPUSER_EXP:
return MainPlayerBaseAttr.Exp; //非专用经验
}
return 0;
}
public bool IsConsumEnough(int consumType, int consumID, int consumValue)
{
if (consumType < 0)
return true;
if ((int) CONSUM_TYPE.PROPVAL == consumType)
switch ((PropID.PropertyID) consumID)
{
case PropID.PropertyID.PRIVATEEXP:
return MainPlayerBaseAttr.SkillExp + MainPlayerBaseAttr.Exp >= consumValue;
}
else if ((int) CONSUM_TYPE.MONEY == consumType)
switch ((MONEYTYPE) consumID)
{
case MONEYTYPE.MONEYTYPE_YUANBAO:
return Money.GetMoney_YuanBao() >= consumValue;
case MONEYTYPE.MONEYTYPE_YUANBAO_BIND:
return Money.GetMoney_YuanBaoBind() >= consumValue;
case MONEYTYPE.MONEYTYPE_COIN:
return Money.GetMoney_Coin() >= consumValue;
case MONEYTYPE.MONEYTYPE_COIN_BIND:
return Money.GetMoney_CoinBind() + Money.GetMoney_Coin() >= consumValue;
}
else if ((int) CONSUM_TYPE.INVALID == consumType) return true;
return false;
}
/// <summary>
/// 可替代消耗是否满足
/// </summary>
/// <param name="consumType"></param>
/// <param name="consumID"></param>
/// <param name="consumValue"></param>
/// <returns>1无需替代即可满足2.替代满足, 3替代后不满足</returns>
public int ConsumReplaceEnough(int consumType, int consumID, int consumValue)
{
var state = 0;
if ((int) CONSUM_TYPE.PROPVAL == consumType)
switch ((PropID.PropertyID) consumID)
{
case PropID.PropertyID.PRIVATEEXP:
if (MainPlayerBaseAttr.SkillExp >= consumValue)
state = 1;
else if (MainPlayerBaseAttr.SkillExp + MainPlayerBaseAttr.Exp >= consumValue)
state = 2;
else
state = 3;
break;
}
else if ((int) CONSUM_TYPE.MONEY == consumType)
switch ((MONEYTYPE) consumID)
{
case MONEYTYPE.MONEYTYPE_COIN_BIND:
if (Money.GetMoney_CoinBind() >= consumValue)
state = 1;
else if (Money.GetMoney_CoinBind() + Money.GetMoney_Coin() >= consumValue)
state = 2;
else
state = 3;
break;
}
else if ((int) CONSUM_TYPE.SCORE == consumType)
switch ((SCORE_TYPE) consumID)
{
case SCORE_TYPE.GUILD_SCORE:
if (GameManager.gameManager.PlayerDataPool.GuildInfo.GuildContribute >= consumValue)
state = 1;
else
state = 3;
break;
}
else if ((int) CONSUM_TYPE.INVALID == consumType) state = 1;
return state;
}
#endregion
// //进入新的场景后任务数据更新
// public void LoadSceneFinish()
// {
// // Tab_SceneClass sceneInfo = TableManager.GetSceneClassByID(GameManager.gameManager.RunningScene, 0);
// // if (sceneInfo == null)
// // return;
// // if (sceneInfo.IsAutoFight != 0)
// // {
// // m_IsOpenAutoCombat = false;
// // return;
// // }
//
//
// }
#region equip suit
public int EquipSuitID;
public int NextSuitEquipCnt;
public void CalculateEquipSuit()
{
var equipList = m_oEquipPack.GetList();
var suitTabs = TableManager.GetEquipEnchanceSuit().Values;
EquipSuitID = 0;
NextSuitEquipCnt = 0;
foreach (var suitTab in suitTabs)
{
var slotCnt = 0;
for (var i = 0; i < EquipSlotStrength.Length; ++i)
{
if (EquipSlotStrength[i].lv < suitTab.EnchanceLevel || EquipSlotStrength[i].perfect < suitTab.PerfectID)
continue;
++slotCnt;
}
if (slotCnt >= suitTab.EquipNum)
{
EquipSuitID = suitTab.Id;
}
else
{
NextSuitEquipCnt = slotCnt;
break;
}
}
}
#endregion
}