| | |
| | | public Dictionary<int, Dictionary<int, HA513_tagMCFamilyActionInfo.tagMCFamilyAction[]>> familyActions = new Dictionary<int, Dictionary<int, HA513_tagMCFamilyActionInfo.tagMCFamilyAction[]>>();
|
| | | public event Action<int, int> FamilyActionInfoEvent; //公会自定义记录, 其他功能从这获取
|
| | |
|
| | | //要操作哪个成员的索引
|
| | | int m_MemberOPIndex = -1;
|
| | | public event Action MemberOPIndexEvent;
|
| | | public int memberOPIndex
|
| | | {
|
| | | get { return m_MemberOPIndex; }
|
| | | set
|
| | | {
|
| | | m_MemberOPIndex = value;
|
| | | MemberOPIndexEvent?.Invoke();
|
| | | }
|
| | | }
|
| | |
|
| | | public override void Init()
|
| | | {
|
| | | ParseConfig();
|
| | | // PlayerDatas.Instance.fairyData.OnRefreshFairyMine += OnRefreshFairyMine;
|
| | | DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
|
| | | }
|
| | | public override void Release()
|
| | | {
|
| | | // PlayerDatas.Instance.fairyData.OnRefreshFairyMine -= OnRefreshFairyMine;
|
| | | DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize;
|
| | | }
|
| | |
|
| | |
|
| | | public void OnBeforePlayerDataInitialize()
|
| | | {
|
| | | ClearGuildData();
|
| | | }
|
| | |
|
| | | void ClearGuildData()
|
| | | {
|
| | | m_FairyRequesteds.Clear();
|
| | | familyActions.Clear();
|
| | |
| | | applyList.Clear();
|
| | | PlayerDatas.Instance.fairyData.ClearData();
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | | private void OnRefreshFairyMine()
|
| | | |
| | | public void ClearGuildWhenQuit()
|
| | | {
|
| | | if (!PlayerDatas.Instance.fairyData.HasFairy)
|
| | | {
|
| | | //退出公会
|
| | | familyActions.Clear();
|
| | | }
|
| | | //退出公会
|
| | | ClearGuildData();
|
| | |
|
| | | //需要转到HomeWin界面 且关闭公会相关界面(父子继承关闭)
|
| | | UIManager.Instance.GetUI<MainWin>()?.ClickFunc(0);
|
| | | }
|
| | |
|
| | |
|
| | |
| | |
|
| | | void ParseConfig()
|
| | | {
|
| | | DirtyWordConfig.DirtyWordInit();
|
| | | DirtyNameConfig.DirtyNameInit();
|
| | |
|
| | | var config = FuncConfigConfig.Get("CreateFamily");
|
| | | createFairyCost = int.Parse(config.Numerical1);
|
| | | createMoneyType = int.Parse(config.Numerical2);
|
| | |
| | | config = FuncConfigConfig.Get("FamilyRename");
|
| | | renameFairyNameCD = int.Parse(config.Numerical2);
|
| | | var arr = ConfigParse.GetMultipleStr<int>(config.Numerical1);
|
| | | renameFairyNameCost = arr[0];
|
| | | renameFairyNameMoneyType = arr[1];
|
| | | renameFairyNameMoneyType = arr[0];
|
| | | renameFairyNameCost = arr[1];
|
| | |
|
| | | }
|
| | |
|
| | |
| | | if (quitType == 0)
|
| | | {
|
| | | //被踢
|
| | | quitCount = PlayerDatas.Instance.baseData.leaveGuildInfo / 10 % 10;
|
| | | quitCount = PlayerDatas.Instance.baseData.leaveGuildInfo / 10 % 10 - 1;
|
| | | if (quitCount < 0) return 0;
|
| | | if (beQuitGuildPunishTime.Length != 0)
|
| | | punishTime = beQuitGuildPunishTime[Math.Min(quitCount, beQuitGuildPunishTime.Length - 1)];
|
| | | }
|
| | | else if (quitType == 1)
|
| | | {
|
| | | //主动退出
|
| | | quitCount = PlayerDatas.Instance.baseData.leaveGuildInfo / 100;
|
| | | quitCount = PlayerDatas.Instance.baseData.leaveGuildInfo / 100 - 1;
|
| | | if (quitCount < 0) return 0;
|
| | | if (quitGuildPunishTime.Length != 0)
|
| | | punishTime = quitGuildPunishTime[Math.Min(quitCount, quitGuildPunishTime.Length - 1)];
|
| | | }
|
| | |
|
| | | return TimeUtility.AllSeconds - PlayerDatas.Instance.baseData.leaveFamilyTime - punishTime * 60;
|
| | | return punishTime * 60 - (TimeUtility.AllSeconds - PlayerDatas.Instance.baseData.leaveFamilyTime);
|
| | | }
|
| | |
|
| | |
|
| | |
| | | return;
|
| | | }
|
| | |
|
| | | int error;
|
| | |
|
| | | //获取name的字节长度,name可能是中文 或者其他占用3个字符的符号
|
| | | if (!UIHelper.SatisfyNameLength(name, out error))
|
| | | if (!CheckName(name))
|
| | | {
|
| | | // TODO 暂时按中文长度提示, 不同语言可根据情况修改
|
| | | if (error == 1)
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("NameError2", 7);
|
| | | return;
|
| | | }
|
| | | else if (error == 2)
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("NameError1", 2);
|
| | | return;
|
| | | }
|
| | | }
|
| | |
|
| | | if (!CheckFairyNameLimit(name, out error))
|
| | | {
|
| | | ShowFairyNameErrorTip(error);
|
| | | return;
|
| | | }
|
| | |
|
| | |
| | | pack.EmblemWord = emblemWord;
|
| | | GameNetSystem.Instance.SendInfo(pack);
|
| | |
|
| | | }
|
| | |
|
| | | public bool CheckName(string name)
|
| | | {
|
| | | int error;
|
| | |
|
| | | //获取name的字节长度,name可能是中文 或者其他占用3个字符的符号
|
| | | if (!UIHelper.SatisfyNameLength(name, out error))
|
| | | {
|
| | | // TODO 暂时按中文长度提示, 不同语言可根据情况修改
|
| | | if (error == 1)
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("NameError2", 7);
|
| | | return false;
|
| | | }
|
| | | else if (error == 2)
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("NameError1", 2);
|
| | | return false;
|
| | | }
|
| | | }
|
| | |
|
| | | if (!CheckFairyNameLimit(name, out error))
|
| | | {
|
| | | ShowFairyNameErrorTip(error);
|
| | | return false;
|
| | | }
|
| | |
|
| | | return true;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | |
|
| | |
|
| | |
|
| | | // 公会自定义记录
|
| | | #region 公会自定义记录
|
| | | public void UpdateFamilyAction(HA513_tagMCFamilyActionInfo _package)
|
| | | {
|
| | |
|
| | |
| | | return false;
|
| | | return true;
|
| | | }
|
| | |
|
| | | public void QueryFamilyAction(int familyID, int actionType)
|
| | | {
|
| | | var pack = new CA617_tagCMQueryFamilyAction();
|
| | | pack.FamilyID = (ushort)familyID;
|
| | | pack.ActionType = (byte)actionType;
|
| | | GameNetSystem.Instance.SendInfo(pack);
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | |
|
| | |
|
| | |
| | |
|
| | | if (type == 0)
|
| | | {
|
| | | if (m_FairyRequesteds.Count >= requestGuildCount)
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("GuildSys9");
|
| | | return;
|
| | | }
|
| | |
|
| | | var cdSeconds = GetJoinCD();
|
| | | if (cdSeconds > 0)
|
| | | {
|
| | |
| | |
|
| | | #endregion
|
| | |
|
| | |
|
| | | float lastChangeMarkTime = 0; //打开界面情况下避免短时间多次立即请求,C/S通信也是有时间间隔
|
| | | public bool guildChanged = false;
|
| | | //Type:0-无;1-成员加入;2-成员退出;3-收人设置修改;4-公告修改;5-徽章修改;6-盟主变更;7-成员职位变更;8-成员上线;9-成员离线;
|
| | | //公会数据变化,请求新的公会信息,如在打开公会列表时请求,其他功能根据自身情况请求
|
| | | public void UpdateGuildDataChangeMark(HA521_tagMCFamilyChange netPack)
|
| | | {
|
| | | if (netPack.Type > 0)
|
| | | guildChanged = true;
|
| | | if (Time.time - lastChangeMarkTime < 0.2f)
|
| | | {
|
| | | guildChanged = true;
|
| | | //小优化 如果有问题也可以去除
|
| | | return;
|
| | | }
|
| | | lastChangeMarkTime = Time.time;
|
| | | if (UIManager.Instance.IsOpened<GuildHallWin>())
|
| | | {
|
| | | RequestGuildData();
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | GameNetSystem.Instance.SendInfo(pak);
|
| | | }
|
| | |
|
| | |
|
| | | //获取需要公会职位等级
|
| | | public int GetNeedGuildJobLV(int guildFuncID)
|
| | | {
|
| | | if (guildWorkToLevel.ContainsKey(guildFuncID))
|
| | | {
|
| | | return guildWorkToLevel[guildFuncID];
|
| | | }
|
| | | return 0;
|
| | | }
|
| | |
|
| | |
|
| | | public void SendChangeMemberLV(int playerID, int lv)
|
| | | {
|
| | | var pack = new CA625_tagCMChangeFamilyMemLV();
|
| | | pack.PlayerID = (uint)playerID;
|
| | | pack.FmLV = (byte)lv;
|
| | | GameNetSystem.Instance.SendInfo(pack);
|
| | | }
|
| | |
|
| | | public void KickMember(int playerID)
|
| | | {
|
| | | var pack = new CA605_tagCMDeleteFamilyMember();
|
| | | pack.MemberID = (uint)playerID;
|
| | | GameNetSystem.Instance.SendInfo(pack);
|
| | | }
|
| | |
|
| | | public void QuitGuild()
|
| | | {
|
| | |
|
| | | ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),
|
| | | Language.Get("Guild_46"), (bool isOK) =>
|
| | | {
|
| | | if (isOK)
|
| | | {
|
| | | if (PlayerDatas.Instance.fairyData.fairy.MemberCount > 1 &&
|
| | | PlayerDatas.Instance.fairyData.mine.FmLV == 3)
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("GuildSys15");
|
| | | return;
|
| | | }
|
| | | var pack = new CA603_tagCMLeaveFamily();
|
| | | GameNetSystem.Instance.SendInfo(pack);
|
| | | }
|
| | | });
|
| | |
|
| | |
|
| | | }
|
| | |
|
| | | #region 加密数字
|
| | |
|
| | |
| | | SysNotifyMgr.Instance.ShowTip("GuildSys6");
|
| | | return "";
|
| | | }
|
| | | |
| | |
|
| | | encryptedStr = encryptedStr.Substring(1);
|
| | |
|
| | | if (reverseMap.IsNullOrEmpty())
|
| | |
| | | }
|
| | | return originalStr.ToString().TrimStart('0'); // 去除前导零
|
| | | }
|
| | | |
| | | |
| | |
|
| | |
|
| | | int[] GenerateReverseMap(int[] map)
|
| | | {
|
| | | for (int i = 0; i < map.Length; i++)
|
| | |
| | |
|
| | | #endregion
|
| | |
|
| | | }
|
| | |
|
| | | // 权限ID: 1-收人,2-变更职位,3-发布公告,4-踢人
|
| | | public enum GuildFuncType
|
| | | {
|
| | | Accept = 1,
|
| | | ChangeJob = 2,
|
| | | PublishNotice = 3,
|
| | | Kick = 4,
|
| | |
|
| | | } |