示例#1
0
        /// <summary>
        /// 举办庆功宴
        /// </summary>
        public QingGongYanResult HoldQingGongYan(GameClient client, int index, int onlyCheck = 0)
        {
            // 是不是王城占领者
            if (!Global.IsKingCityLeader(client))
            {
                return(QingGongYanResult.NotKing);
            }

            QingGongYanInfo InfoData = GetQingGongYanConfig(index);

            if (null == InfoData)
            {
                return(QingGongYanResult.ErrorParam);
            }

            /// 此时是否能够开启庆功宴
            if (InfoData.IfBanTime(TimeUtil.NowDateTime()))
            {
                return(QingGongYanResult.OutTime);
            }

            int DBStartDay = GameManager.GameConfigMgr.GetGameConfigItemInt(GameConfigNames.QGYStartDay, 0);
            int currDay    = Global.GetOffsetDay(TimeUtil.NowDateTime());

            //  如果今天有庆功宴 并且庆功宴结束时间还没到 提示已经申请
            if (DBStartDay == currDay && TimeUtil.NowDateTime() <= DateTime.Parse(InfoData.OverTime))
            {
                return(QingGongYanResult.RepeatHold);
            }

            // 计算申请之后,庆功宴的举办时间
            int startDay = 0;

            // 在庆功宴开始时间之前,就在今天开启
            if (TimeUtil.NowDateTime() < DateTime.Parse(InfoData.BeginTime))
            {
                startDay = currDay;
            }
            // 否则在明天开启
            else
            {
                startDay = currDay + 1;
            }

            // 如果计算出来的举办时间和数据库的举办时间相同,则返回已经申请
            if (startDay == DBStartDay)
            {
                return(QingGongYanResult.RepeatHold);
            }

            // 检查举办所需金币是否足够
            if (InfoData.HoldBindJinBi > 0)
            {
                if (InfoData.HoldBindJinBi > Global.GetTotalBindTongQianAndTongQianVal(client))
                {
                    return(QingGongYanResult.MoneyNotEnough);
                }
            }

            if (onlyCheck > 0)
            {
                return(QingGongYanResult.CheckSuccess);
            }

            // 扣除举办所需金币
            if (InfoData.HoldBindJinBi > 0)
            {
                if (!Global.SubBindTongQianAndTongQian(client, InfoData.HoldBindJinBi, "举办庆功宴"))
                {
                    return(QingGongYanResult.MoneyNotEnough);
                }
            }

            Global.UpdateDBGameConfigg(GameConfigNames.QGYRoleID, client.ClientData.RoleID.ToString());
            GameManager.GameConfigMgr.SetGameConfigItem(GameConfigNames.QGYRoleID, client.ClientData.RoleID.ToString());

            BangHuiMiniData bangHuiMiniData = Global.GetBangHuiMiniData(client.ClientData.Faction);

            if (null != bangHuiMiniData)
            {
                Global.UpdateDBGameConfigg(GameConfigNames.QGYGuildName, bangHuiMiniData.BHName);
                GameManager.GameConfigMgr.SetGameConfigItem(GameConfigNames.QGYGuildName, bangHuiMiniData.BHName);
            }
            else
            {
                Global.UpdateDBGameConfigg(GameConfigNames.QGYGuildName, "");
                GameManager.GameConfigMgr.SetGameConfigItem(GameConfigNames.QGYGuildName, "");
            }

            GameManager.GameConfigMgr.SetGameConfigItem(GameConfigNames.QGYGuildName, client.ClientData.RoleName);
            Global.UpdateDBGameConfigg(GameConfigNames.QGYStartDay, startDay.ToString());
            GameManager.GameConfigMgr.SetGameConfigItem(GameConfigNames.QGYStartDay, startDay.ToString());
            Global.UpdateDBGameConfigg(GameConfigNames.QGYGrade, index.ToString());
            GameManager.GameConfigMgr.SetGameConfigItem(GameConfigNames.QGYGrade, index.ToString());
            Global.UpdateDBGameConfigg(GameConfigNames.QGYJoinCount, "0");
            GameManager.GameConfigMgr.SetGameConfigItem(GameConfigNames.QGYJoinCount, "0");
            Global.UpdateDBGameConfigg(GameConfigNames.QGYJoinMoney, "0");
            GameManager.GameConfigMgr.SetGameConfigItem(GameConfigNames.QGYJoinMoney, "0");

            // 为了合服,要记录举办人花了多少金币
            Global.UpdateDBGameConfigg(GameConfigNames.QGYJuBanMoney, InfoData.HoldBindJinBi.ToString());
            GameManager.GameConfigMgr.SetGameConfigItem(GameConfigNames.QGYJuBanMoney, InfoData.HoldBindJinBi.ToString());

            // log it...
            GameManager.logDBCmdMgr.AddDBLogInfo(-1, "举办庆功宴", startDay.ToString(), "", client.ClientData.RoleName, "", index, client.ClientData.ZoneID, client.strUserID, -1, client.ServerId);
            EventLogManager.AddRoleEvent(client, OpTypes.Hold, OpTags.QingGongYan, LogRecordType.OffsetDayId, startDay);

            return(QingGongYanResult.Success);
        }
示例#2
0
        public QingGongYanResult HoldQingGongYan(GameClient client, int index, int onlyCheck = 0)
        {
            QingGongYanResult result;

            if (!Global.IsKingCityLeader(client))
            {
                result = QingGongYanResult.NotKing;
            }
            else
            {
                QingGongYanInfo InfoData = this.GetQingGongYanConfig(index);
                if (null == InfoData)
                {
                    result = QingGongYanResult.ErrorParam;
                }
                else if (InfoData.IfBanTime(TimeUtil.NowDateTime()))
                {
                    result = QingGongYanResult.OutTime;
                }
                else
                {
                    int DBStartDay = GameManager.GameConfigMgr.GetGameConfigItemInt("qinggongyan_startday", 0);
                    int currDay    = Global.GetOffsetDay(TimeUtil.NowDateTime());
                    if (DBStartDay == currDay && TimeUtil.NowDateTime() <= DateTime.Parse(InfoData.OverTime))
                    {
                        result = QingGongYanResult.RepeatHold;
                    }
                    else
                    {
                        int startDay;
                        if (TimeUtil.NowDateTime() < DateTime.Parse(InfoData.BeginTime))
                        {
                            startDay = currDay;
                        }
                        else
                        {
                            startDay = currDay + 1;
                        }
                        if (startDay == DBStartDay)
                        {
                            result = QingGongYanResult.RepeatHold;
                        }
                        else
                        {
                            if (InfoData.HoldBindJinBi > 0)
                            {
                                if (InfoData.HoldBindJinBi > Global.GetTotalBindTongQianAndTongQianVal(client))
                                {
                                    return(QingGongYanResult.MoneyNotEnough);
                                }
                            }
                            if (onlyCheck > 0)
                            {
                                result = QingGongYanResult.CheckSuccess;
                            }
                            else
                            {
                                if (InfoData.HoldBindJinBi > 0)
                                {
                                    if (!Global.SubBindTongQianAndTongQian(client, InfoData.HoldBindJinBi, "举办庆功宴"))
                                    {
                                        return(QingGongYanResult.MoneyNotEnough);
                                    }
                                }
                                Global.UpdateDBGameConfigg("qinggongyan_roleid", client.ClientData.RoleID.ToString());
                                GameManager.GameConfigMgr.SetGameConfigItem("qinggongyan_roleid", client.ClientData.RoleID.ToString());
                                BangHuiMiniData bangHuiMiniData = Global.GetBangHuiMiniData(client.ClientData.Faction, 0);
                                if (null != bangHuiMiniData)
                                {
                                    Global.UpdateDBGameConfigg("qinggongyan_guildname", bangHuiMiniData.BHName);
                                    GameManager.GameConfigMgr.SetGameConfigItem("qinggongyan_guildname", bangHuiMiniData.BHName);
                                }
                                else
                                {
                                    Global.UpdateDBGameConfigg("qinggongyan_guildname", "");
                                    GameManager.GameConfigMgr.SetGameConfigItem("qinggongyan_guildname", "");
                                }
                                GameManager.GameConfigMgr.SetGameConfigItem("qinggongyan_guildname", client.ClientData.RoleName);
                                Global.UpdateDBGameConfigg("qinggongyan_startday", startDay.ToString());
                                GameManager.GameConfigMgr.SetGameConfigItem("qinggongyan_startday", startDay.ToString());
                                Global.UpdateDBGameConfigg("qinggongyan_grade", index.ToString());
                                GameManager.GameConfigMgr.SetGameConfigItem("qinggongyan_grade", index.ToString());
                                Global.UpdateDBGameConfigg("qinggongyan_joincount", "0");
                                GameManager.GameConfigMgr.SetGameConfigItem("qinggongyan_joincount", "0");
                                Global.UpdateDBGameConfigg("qinggongyan_joinmoney", "0");
                                GameManager.GameConfigMgr.SetGameConfigItem("qinggongyan_joinmoney", "0");
                                Global.UpdateDBGameConfigg("qinggongyan_jubanmoney", InfoData.HoldBindJinBi.ToString());
                                GameManager.GameConfigMgr.SetGameConfigItem("qinggongyan_jubanmoney", InfoData.HoldBindJinBi.ToString());
                                GameManager.logDBCmdMgr.AddDBLogInfo(-1, "举办庆功宴", startDay.ToString(), "", client.ClientData.RoleName, "", index, client.ClientData.ZoneID, client.strUserID, -1, client.ServerId, null);
                                EventLogManager.AddRoleEvent(client, OpTypes.Hold, OpTags.QingGongYan, LogRecordType.OffsetDayId, new object[]
                                {
                                    startDay
                                });
                                result = QingGongYanResult.Success;
                            }
                        }
                    }
                }
            }
            return(result);
        }