/// <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); }
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); }