/// <summary> /// 声望军衔——设置等级 /// </summary> /// <param name="client"></param> /// <param name="level"></param> /// <returns></returns> public static void SetPrestigeLevel(GameClient client, int level) { //更新到数据库 Global.SaveRoleParamsInt32ValueWithTimeStampToDB(client, RoleParamName.ShengWangLevel, level, true); GameManager.logDBCmdMgr.AddDBLogInfo(-1, "声望等级", "GM", "系统", client.ClientData.RoleName, "修改", level, client.ClientData.ZoneID, client.strUserID, level, client.ServerId); EventLogManager.AddRoleEvent(client, OpTypes.Trace, OpTags.GM, LogRecordType.IntValueWithType, level, RoleAttributeType.ShengWangLevel); if (level > 0) { JingJiChangManager.getInstance().activeJunXianBuff(client, true); } //更新BufferData double[] actionParams = new double[1]; actionParams[0] = (double)level - 1; Global.UpdateBufferData(client, BufferItemTypes.MU_JINGJICHANG_JUNXIAN, actionParams, 0); ChengJiuManager.OnRoleJunXianChengJiu(client); Global.BroadcastClientMUShengWang(client, level); //通知自己 GameManager.ClientMgr.NotifySelfParamsValueChange(client, RoleCommonUseIntParamsIndexs.ShengWangLevel, level); //通知客户端属性变化 GameManager.ClientMgr.NotifyUpdateEquipProps(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client); // 总生命值和魔法值变化通知(同一个地图才需要通知) GameManager.ClientMgr.NotifyOthersLifeChanged(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client); // 军衔升级成功时,刷新相应的图标状态 client._IconStateMgr.CheckJingJiChangJunXian(client); client._IconStateMgr.CheckSpecialActivity(client); client._IconStateMgr.SendIconStateToClient(client); }
public static void startup() { //战盟事件管理器 ZhanMengShiJianManager.getInstance().startup(); //竞技场管理器 JingJiChangManager.getInstance().startup(); //离线摆摊 LiXianBaiTanManager.getInstance().startup(); //离线挂机 LiXianGuaJiManager.getInstance().startup(); //副本活动组队管理器 CopyTeamManager.getInstance().startup(); //指令注册管理器 CmdRegisterTriggerManager.getInstance().startup(); //发送指令管理 SendCmdManager.getInstance().startup(); //Boss AI管理器 BossAIManager.getInstance().startup(); //MU交易所 SaleManager.getInstance().startup(); //炼制系统 LianZhiManager.GetInstance().startup(); // 成就升级 ChengJiuManager.GetInstance().startup(); }
public static void SetPrestigeLevel(GameClient client, int level) { Global.SaveRoleParamsInt32ValueWithTimeStampToDB(client, "ShengWangLevel", level, true, "2020-12-12 12:12:12"); GameManager.logDBCmdMgr.AddDBLogInfo(-1, "声望等级", "GM", "系统", client.ClientData.RoleName, "修改", level, client.ClientData.ZoneID, client.strUserID, level, client.ServerId, null); EventLogManager.AddRoleEvent(client, OpTypes.Trace, OpTags.GM, LogRecordType.IntValueWithType, new object[] { level, RoleAttributeType.ShengWangLevel }); if (level > 0) { JingJiChangManager.getInstance().activeJunXianBuff(client, true); } Global.UpdateBufferData(client, BufferItemTypes.MU_JINGJICHANG_JUNXIAN, new double[] { (double)level - 1.0 }, 0, true); ChengJiuManager.OnRoleJunXianChengJiu(client); Global.BroadcastClientMUShengWang(client, level); GameManager.ClientMgr.NotifySelfParamsValueChange(client, RoleCommonUseIntParamsIndexs.ShengWangLevel, level); GameManager.ClientMgr.NotifyUpdateEquipProps(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client); GameManager.ClientMgr.NotifyOthersLifeChanged(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client, true, false, 7); client._IconStateMgr.CheckJingJiChangJunXian(client); client._IconStateMgr.CheckSpecialActivity(client); client._IconStateMgr.CheckEverydayActivity(client); client._IconStateMgr.SendIconStateToClient(client); }
/// <summary> /// 成就配置文件 /// </summary> /// <returns></returns> private static int ReloadXmlFile_config_ChengJiu() { //成就配置文件 GameManager.systemChengJiu.LoadFromXMlFile("Config/ChengJiu.xml", "ChengJiu", "ChengJiuID"); ChengJiuManager.InitChengJiuConfig(); return(1); }
public static void startup() { ZhanMengShiJianManager.getInstance().startup(); JingJiChangManager.getInstance().startup(); LiXianBaiTanManager.getInstance().startup(); LiXianGuaJiManager.getInstance().startup(); CmdRegisterTriggerManager.getInstance().startup(); SendCmdManager.getInstance().startup(); BossAIManager.getInstance().startup(); SaleManager.getInstance().startup(); LianZhiManager.GetInstance().startup(); ChengJiuManager.GetInstance().startup(); UserReturnManager.getInstance().startup(); OlympicsManager.getInstance().startup(); TalentManager.getInstance().startup(); TodayManager.getInstance().startup(); FundManager.getInstance().startup(); WarnManager.getInstance().startup(); PrestigeMedalManager.getInstance().startup(); UnionPalaceManager.getInstance().startup(); UserActivateManager.getInstance().startup(); PetSkillManager.getInstance().startup(); BuildingManager.getInstance().startup(); OnePieceManager.getInstance().startup(); TenManager.getInstance().startup(); SingletonTemplate <SevenDayActivityMgr> .Instance().startup(); SingletonTemplate <SoulStoneManager> .Instance().startup(); lock (GlobalServiceManager.Scene2ManagerDict) { foreach (List <IManager> list in GlobalServiceManager.Scene2ManagerDict.Values) { foreach (IManager i in list) { try { bool success = i.startup(); if (GameManager.ServerStarting && !success) { LogManager.WriteLog(LogTypes.Fatal, string.Format("初始化{0}.startup()失败,按任意键忽略此错误并继续启动服务器!", i.GetType()), null, true); Console.ReadKey(); } } catch (Exception ex) { LogManager.WriteException(ex.ToString()); } } } } FaceBookManager.getInstance().startup(); }
private bool SetFinishNum(GameClient client, TodayInfo todayInfo, SystemXmlItem fuBenInfo) { int num = todayInfo.NumMax - todayInfo.NumEnd; switch ((ETodayType)todayInfo.Type) { case ETodayType.Exp: case ETodayType.Gold: Global.UpdateFuBenData(client, todayInfo.FuBenID, num, num); break; case ETodayType.KaLiMa: case ETodayType.EM: case ETodayType.Lo: Global.UpdateFuBenData(client, todayInfo.FuBenID, num, num); break; case ETodayType.Tao: { DailyTaskData taoData = null; Global.GetDailyTaskData(client, (int)TaskClasses.TaofaTask, out taoData, true); taoData.RecNum = todayInfo.NumMax; Global.UpdateDBDailyTaskData(client, taoData, true); } break; } FuBenData fuBenData = Global.GetFuBenData(client, todayInfo.FuBenID); if (fuBenData != null && (fuBenData.EnterNum != 0 || fuBenData.FinishNum != 0)) { //记录通关副本数量 int dayID = TimeUtil.NowDateTime().DayOfYear; RoleDailyData roleData = client.ClientData.MyRoleDailyData; if (null == roleData || dayID != roleData.FuBenDayID) { roleData = new RoleDailyData(); roleData.FuBenDayID = dayID; client.ClientData.MyRoleDailyData = roleData; } int count = todayInfo.NumMax - todayInfo.NumEnd; roleData.TodayFuBenNum += count; int level = fuBenInfo.GetIntValue("FuBenLevel"); DailyActiveManager.ProcessCompleteCopyMapForDailyActive(client, level, count); //活跃 ChengJiuManager.ProcessCompleteCopyMapForChengJiu(client, level, count); //成就 } return(true); }
public static void destroy() { ZhanMengShiJianManager.getInstance().destroy(); JingJiChangManager.getInstance().destroy(); LiXianBaiTanManager.getInstance().destroy(); LiXianGuaJiManager.getInstance().destroy(); CmdRegisterTriggerManager.getInstance().destroy(); SendCmdManager.getInstance().destroy(); BossAIManager.getInstance().destroy(); SaleManager.getInstance().destroy(); LianZhiManager.GetInstance().destroy(); ChengJiuManager.GetInstance().destroy(); PrestigeMedalManager.getInstance().destroy(); UnionPalaceManager.getInstance().destroy(); UserActivateManager.getInstance().destroy(); PetSkillManager.getInstance().destroy(); UserReturnManager.getInstance().destroy(); OlympicsManager.getInstance().destroy(); TalentManager.getInstance().destroy(); TodayManager.getInstance().destroy(); FundManager.getInstance().destroy(); WarnManager.getInstance().destroy(); MarryFuBenMgr.getInstance().destroy(); BuildingManager.getInstance().destroy(); OnePieceManager.getInstance().destroy(); TenManager.getInstance().destroy(); SingletonTemplate <SevenDayActivityMgr> .Instance().destroy(); SingletonTemplate <SoulStoneManager> .Instance().destroy(); lock (GlobalServiceManager.Scene2ManagerDict) { foreach (List <IManager> list in GlobalServiceManager.Scene2ManagerDict.Values) { foreach (IManager i in list) { try { i.destroy(); } catch (Exception ex) { LogManager.WriteException(ex.ToString()); } } } } FaceBookManager.getInstance().destroy(); }
/// <summary> /// 处理合成的新物品 /// </summary> /// <param name="client"></param> /// <param name="mergeItemID"></param> public static int Process(GameClient client, int mergeItemID, int luckyGoodsID, int WingDBID, int CrystalDBID, int nUseBindItemFirst) { //获取缓存项 CacheMergeItem cacheMergeItem = GetCacheMergeItem(mergeItemID); if (null == cacheMergeItem) { return(-1000); } int ret = 0; // 翅膀合成 特殊处理! [12/12/2013 LiaoWei] if (mergeItemID >= (int)WINGMERGEINFO.WINGMERGE_FIRST_LEVEL_ID && mergeItemID <= (int)WINGMERGEINFO.WINGMERGE_THIRD_LEVEL_ID) { //检查是否满足合成的条件 ret = CanMergeNewGoods(client, cacheMergeItem, cacheMergeItem.NewGoodsID[0]); if (ret < 0) { return(ret); } ret = ProcessWingMerge(client, mergeItemID, luckyGoodsID, WingDBID, CrystalDBID, cacheMergeItem); if (ret < 0) { return(ret); } //成就处理 第一次合成 ChengJiuManager.OnFirstHeCheng(client); ChengJiuManager.OnRoleGoodsHeCheng(client, cacheMergeItem.NewGoodsID[0]); } else { //用材料合成新物品 ret = ProcessMergeNewGoods(client, mergeItemID, cacheMergeItem, luckyGoodsID, nUseBindItemFirst); if (ret < 0) { return(ret); } } return(0); }
/// <summary> /// 炼制系统命令处理 /// </summary> public bool processCmd(GameClient client, string[] cmdParams) { int nID = (int)CmdID; if (CmdID == TCPGameServerCmds.CMD_SPR_UPGRADE_CHENGJIU) { int nRoleID = Global.SafeConvertToInt32(cmdParams[0]); // 角色ID int nChengJiuLevel = Global.SafeConvertToInt32(cmdParams[1]); // 角色成就等级 int nRet = ChengJiuManager.TryToActiveNewChengJiuBuffer(client, true, nChengJiuLevel); String strCmd = string.Format("{0}:{1}", nRoleID, nRet); client.sendCmd(nID, strCmd); return(true); } return(false); }
/// <summary> /// 检查“累计登陆”项是否有奖励未领取 /// </summary> public bool CheckFuLiLeiJiDengLuReward(GameClient client) { int nFlag = Global.GetRoleParamsInt32FromDB(client, RoleParamName.TotalLoginAwardFlag); int nLoginNum = (int)ChengJiuManager.GetChengJiuExtraDataByField(client, ChengJiuExtraDataField.TotalDayLogin); int nMaxLoginNum = Data.TotalLoginDataInfoList.Count(); bool bFulsh = false; for (int i = 0; i < 7 && i < nLoginNum && i < nMaxLoginNum; i++) { // 还有未领取的累计登陆奖励 if ((nFlag & (0x1 << (i + 1))) == 0) { bFulsh = true; break; } } if (nLoginNum == 30) { if ((nFlag & (0x1 << (10))) == 0) { bFulsh = true; } } if (nLoginNum == 21) { if ((nFlag & (0x1 << 9)) == 0) { bFulsh = true; } } if (nLoginNum == 14) { if ((nFlag & (0x1 << (8))) == 0) { bFulsh = true; } } return(bFulsh); }
public bool Judge(GameClient client, string arg, out string failedMsg) { failedMsg = ""; bool bOK = false; if (client != null && !string.IsNullOrEmpty(arg)) { int iNeedLvl = -1; if (int.TryParse(arg, out iNeedLvl) && ChengJiuManager.GetChengJiuLevel(client) >= iNeedLvl) { bOK = true; } } if (!bOK) { failedMsg = string.Format(GLang.GetLang(140, new object[0]), string.Format(GLang.GetLang(676, new object[0]), arg)); } return(bOK); }
public bool processCmd(GameClient client, string[] cmdParams) { int nID = (int)this.CmdID; bool result; if (this.CmdID == TCPGameServerCmds.CMD_SPR_UPGRADE_CHENGJIU) { int nRoleID = Global.SafeConvertToInt32(cmdParams[0]); int nChengJiuLevel = Global.SafeConvertToInt32(cmdParams[1]); int nRet = ChengJiuManager.TryToActiveNewChengJiuBuffer(client, true, nChengJiuLevel); string strCmd = string.Format("{0}:{1}", nRoleID, nRet); client.sendCmd(nID, strCmd, false); result = true; } else { result = false; } return(result); }
public static void initialize() { //战盟事件管理器 ZhanMengShiJianManager.getInstance().initialize(); //竞技场管理器 JingJiChangManager.getInstance().initialize(); //离线摆摊 LiXianBaiTanManager.getInstance().initialize(); //离线挂机 LiXianGuaJiManager.getInstance().initialize(); //副本活动组队管理器 CopyTeamManager.getInstance().initialize(); //指令注册管理器 CmdRegisterTriggerManager.getInstance().initialize(); //发送指令管理 SendCmdManager.getInstance().initialize(); //Boss AI管理器 BossAIManager.getInstance().initialize(); //洗炼管理器 WashPropsManager.initialize(); //MU交易所 SaleManager.getInstance().initialize(); //炼制系统 LianZhiManager.GetInstance().initialize(); // 成就升级 ChengJiuManager.GetInstance().initialize(); //恶魔来袭 EMoLaiXiCopySceneManager.LoadEMoLaiXiCopySceneInfo(); }
public static int Process(GameClient client, int mergeItemID, int luckyGoodsID, int WingDBID, int CrystalDBID, int nUseBindItemFirst) { CacheMergeItem cacheMergeItem = MergeNewGoods.GetCacheMergeItem(mergeItemID); int result; if (null == cacheMergeItem) { result = -1000; } else { if (mergeItemID >= 4 && mergeItemID <= 6) { int ret = MergeNewGoods.CanMergeNewGoods(client, cacheMergeItem, cacheMergeItem.NewGoodsID[0], false); if (ret < 0) { return(ret); } ret = MergeNewGoods.ProcessWingMerge(client, mergeItemID, luckyGoodsID, WingDBID, CrystalDBID, cacheMergeItem); if (ret < 0) { return(ret); } ChengJiuManager.OnFirstHeCheng(client); ChengJiuManager.OnRoleGoodsHeCheng(client, cacheMergeItem.NewGoodsID[0]); } else { int ret = MergeNewGoods.ProcessMergeNewGoods(client, mergeItemID, cacheMergeItem, luckyGoodsID, nUseBindItemFirst); if (ret < 0) { return(ret); } } result = 0; } return(result); }
public bool Judge(GameClient client, string arg, out string failedMsg) { failedMsg = ""; bool bOK = false; if (client != null && !string.IsNullOrEmpty(arg)) { int iNeedLvl = -1; if (int.TryParse(arg, out iNeedLvl) && ChengJiuManager.GetChengJiuLevel(client) >= iNeedLvl) { bOK = true; } } if (!bOK) { failedMsg = string.Format(Global.GetLang(CondMultiLang.Wrapper), string.Format(Global.GetLang(CondMultiLang.ChengJiu), arg)); } return(bOK); }
/// <summary> /// 检查是否可提升成就称号 /// </summary> /// <param name="client"></param> /// <returns></returns> public bool CheckChengJiuUpLevelState(GameClient client) { bool result = AddFlushIconState((ushort)ActivityTipTypes.MainChengJiuIcon, ChengJiuManager.CanActiveNextChengHao(client)); SendIconStateToClient(client); return(result); }
private static int ProcessMergeNewGoods(GameClient client, int mergeItemID, CacheMergeItem cacheMergeItem, int luckyGoodsID, int nUseBindItemFirst) { int newGoodsBinding = 0; int addSuccessPercent = 0; bool bLeftGrid = false; int nNewGoodsID = cacheMergeItem.NewGoodsID[0]; if (cacheMergeItem.NewGoodsID.Count > 1) { if (!Global.CanAddGoodsNum(client, 1)) { return(-1); } nNewGoodsID = cacheMergeItem.NewGoodsID[Global.GetRandomNumber(0, cacheMergeItem.NewGoodsID.Count)]; bLeftGrid = true; } int ret = MergeNewGoods.CanMergeNewGoods(client, cacheMergeItem, nNewGoodsID, bLeftGrid); int result; if (ret < 0) { result = ret; } else { if (luckyGoodsID > 0) { int luckyPercent = Global.GetLuckyValue(luckyGoodsID); if (luckyPercent > 0) { bool usedBinding = false; bool usedTimeLimited = false; if (GameManager.ClientMgr.NotifyUseGoods(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, luckyGoodsID, 1, false, out usedBinding, out usedTimeLimited, false)) { if (newGoodsBinding <= 0) { newGoodsBinding = (usedBinding ? 1 : 0); } addSuccessPercent = luckyPercent; } } } bool success = MergeNewGoods.JugeSucess(mergeItemID, cacheMergeItem, addSuccessPercent); for (int i = 0; i < cacheMergeItem.OrigGoodsIDList.Count; i++) { int usingGoodsNum = MergeNewGoods.GetUsingGoodsNum(success, cacheMergeItem, cacheMergeItem.OrigGoodsIDList[i], cacheMergeItem.OrigGoodsNumList[i]); int nBindGoodNum = Global.GetTotalBindGoodsCountByID(client, cacheMergeItem.OrigGoodsIDList[i]); int nNotBindGoodNum = Global.GetTotalNotBindGoodsCountByID(client, cacheMergeItem.OrigGoodsIDList[i]); if (usingGoodsNum > nBindGoodNum + nNotBindGoodNum) { return(-10); } bool usedBinding = false; bool usedTimeLimited = false; if (nUseBindItemFirst > 0 && nBindGoodNum > 0) { int nSum; int nSubNum; if (usingGoodsNum > nBindGoodNum) { nSum = nBindGoodNum; nSubNum = usingGoodsNum - nBindGoodNum; } else { nSum = usingGoodsNum; nSubNum = 0; } if (nSum > 0) { if (!GameManager.ClientMgr.NotifyUseBindGoods(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, cacheMergeItem.OrigGoodsIDList[i], nSum, false, out usedBinding, out usedTimeLimited, true)) { return(-10); } } if (nSubNum > 0) { if (!GameManager.ClientMgr.NotifyUseNotBindGoods(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, cacheMergeItem.OrigGoodsIDList[i], nSubNum, false, out usedBinding, out usedTimeLimited, true)) { return(-10); } } newGoodsBinding = 1; } else { int nSum; int nSubNum; if (usingGoodsNum > nNotBindGoodNum) { nSum = nNotBindGoodNum; nSubNum = usingGoodsNum - nNotBindGoodNum; } else { nSum = usingGoodsNum; nSubNum = 0; } if (nSum > 0) { if (!GameManager.ClientMgr.NotifyUseNotBindGoods(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, cacheMergeItem.OrigGoodsIDList[i], nSum, false, out usedBinding, out usedTimeLimited, true)) { return(-10); } } if (nSubNum > 0) { if (!GameManager.ClientMgr.NotifyUseBindGoods(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, cacheMergeItem.OrigGoodsIDList[i], nSubNum, false, out usedBinding, out usedTimeLimited, true)) { return(-10); } newGoodsBinding = 1; } } } if (cacheMergeItem.DianJuan > 0) { if (!GameManager.ClientMgr.SubUserMoney(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, cacheMergeItem.DianJuan, "合成新物品", true, true, false, DaiBiSySType.None)) { return(-11); } } if (cacheMergeItem.Money > 0) { if (!Global.SubBindTongQianAndTongQian(client, cacheMergeItem.Money, "材料合成")) { return(-12); } } if (cacheMergeItem.JingYuan > 0) { GameManager.ClientMgr.ModifyTianDiJingYuanValue(client, -cacheMergeItem.JingYuan, "材料合成", true, true, false); } if (!success) { result = -1000; } else { int dbRet = Global.AddGoodsDBCommand(Global._TCPManager.TcpOutPacketPool, client, nNewGoodsID, 1, 0, "", 0, newGoodsBinding, 0, "", true, 1, "材料合成新物品", "1900-01-01 12:00:00", 0, 0, 0, 0, 0, 0, 0, null, null, 0, true); if (dbRet < 0) { result = -20; } else { if (90 == Global.GetGoodsCatetoriy(nNewGoodsID)) { if (Global.GetJewelLevel(nNewGoodsID) >= 6) { Global.BroadcastMergeJewelOk(client, nNewGoodsID); } } if (120 == Global.GetGoodsCatetoriy(nNewGoodsID)) { } ChengJiuManager.OnFirstHeCheng(client); ChengJiuManager.OnRoleGoodsHeCheng(client, nNewGoodsID); SevenDayGoalEventObject evObj = SevenDayGoalEvPool.Alloc(client, ESevenDayGoalFuncType.HeChengTimes); evObj.Arg1 = nNewGoodsID; GlobalEventSource.getInstance().fireEvent(evObj); ProcessTask.ProcessAddTaskVal(client, TaskTypes.Merge_GuoShi, cacheMergeItem.MergeType, 1, new object[0]); result = 0; } } } return(result); }
private void ProcessAward(GameClient client) { if (this.BattlingState >= BattleStates.StartFight) { if (this.BattlingState == BattleStates.StartFight) { long ticks = TimeUtil.NOW(); if (ticks < this.StateStartTicks + 1000L) { return; } } lock (this.mutex) { int nFlag; if (!this.TheKingOfPKGetawardFlag.TryGetValue(client.ClientData.RoleID, out nFlag)) { return; } if (nFlag > 0) { return; } this.TheKingOfPKGetawardFlag[client.ClientData.RoleID] = 1; } if (client.ClientData.KingOfPkCurrentPoint > this.TheKingOfPKTopPoint) { this.SetTotalPointInfo(client.ClientData.RoleName, client.ClientData.KingOfPkCurrentPoint); } string strPkAward = GameManager.systemParamsList.GetParamValueByName("PkAward"); string[] strChengJiu = null; string[] strExp = null; if (!string.IsNullOrEmpty(strPkAward)) { string[] strFild = strPkAward.Split(new char[] { '|' }); string strInfo = strFild[0]; strChengJiu = strInfo.Split(new char[] { ',' }); strInfo = strFild[1]; strExp = strInfo.Split(new char[] { ',' }); } HeFuAwardTimesActivity activity = HuodongCachingMgr.GetHeFuAwardTimesActivity(); JieRiMultAwardActivity jieriact = HuodongCachingMgr.GetJieRiMultAwardActivity(); SpecPriorityActivity spAct = HuodongCachingMgr.GetSpecPriorityActivity(); double actTimes = 0.0; if (activity != null && activity.InActivityTime() && (double)activity.activityTimes > 0.0) { actTimes += (double)activity.activityTimes; } if (null != jieriact) { JieRiMultConfig config = jieriact.GetConfig(3); if (null != config) { actTimes += config.GetMult(); } } if (null != spAct) { actTimes += spAct.GetMult(SpecPActivityBuffType.SPABT_PKKing); } actTimes = Math.Max(1.0, actTimes); int nChengjiuPoint = Global.SafeConvertToInt32(strChengJiu[0]) + Global.GMin(Global.SafeConvertToInt32(strChengJiu[1]), client.ClientData.KingOfPkCurrentPoint) * Global.SafeConvertToInt32(strChengJiu[2]); nChengjiuPoint *= (int)actTimes; if (nChengjiuPoint > 0) { ChengJiuManager.AddChengJiuPoints(client, "角斗赛", nChengjiuPoint, true, true); } double nRate = Data.ChangeLifeEverydayExpRate[client.ClientData.ChangeLifeCount]; long nExp = (long)((int)((double)Global.SafeConvertToInt32(strExp[0]) * nRate + (double)(Global.GMin(Global.SafeConvertToInt32(strExp[1]), client.ClientData.KingOfPkCurrentPoint) * Global.SafeConvertToInt32(strExp[2])) * nRate)); double dblExperience = 1.0; dblExperience += actTimes; nExp = (long)((int)((double)nExp * dblExperience)); if (nExp > 0L) { GameManager.ClientMgr.ProcessRoleExperience(client, nExp, true, true, false, "none"); } string strCmd = string.Format("{0}:{1}:{2}", client.ClientData.KingOfPkCurrentPoint, nChengjiuPoint, nExp); client.ClientData.KingOfPkCurrentPoint = 0; GameManager.ClientMgr.SendToClient(client, strCmd, 569); ProcessTask.ProcessAddTaskVal(client, TaskTypes.PKKing, -1, 1, new object[0]); } }
/// <summary> /// 用材料合成新物品 /// </summary> /// <param name="cacheMergeItem"></param> /// <returns></returns> private static int ProcessMergeNewGoods(GameClient client, int mergeItemID, CacheMergeItem cacheMergeItem, int luckyGoodsID, int nUseBindItemFirst) { //新合成的物品是否绑定 int newGoodsBinding = 0; int addSuccessPercent = 0; bool bLeftGrid = false; int nNewGoodsID = cacheMergeItem.NewGoodsID[0]; if (cacheMergeItem.NewGoodsID.Count > 1) { nNewGoodsID = cacheMergeItem.NewGoodsID[Global.GetRandomNumber(0, cacheMergeItem.NewGoodsID.Count)]; bLeftGrid = true; } //检查是否满足合成的条件 int ret = CanMergeNewGoods(client, cacheMergeItem, nNewGoodsID, bLeftGrid); if (ret < 0) { return(ret); } if (luckyGoodsID > 0) { int luckyPercent = Global.GetLuckyValue(luckyGoodsID); if (luckyPercent > 0) { bool usedBinding = false; bool usedTimeLimited = false; //从用户物品中扣除消耗的数量 if (GameManager.ClientMgr.NotifyUseGoods(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, luckyGoodsID, 1, false, out usedBinding, out usedTimeLimited)) { if (newGoodsBinding <= 0) { newGoodsBinding = usedBinding ? 1 : 0; } addSuccessPercent = luckyPercent; } } } //检查概率 bool success = JugeSucess(mergeItemID, cacheMergeItem, addSuccessPercent); //检查物品 for (int i = 0; i < cacheMergeItem.OrigGoodsIDList.Count; i++) { int usingGoodsNum = GetUsingGoodsNum(success, cacheMergeItem, cacheMergeItem.OrigGoodsIDList[i], cacheMergeItem.OrigGoodsNumList[i]); int nBindGoodNum = Global.GetTotalBindGoodsCountByID(client, cacheMergeItem.OrigGoodsIDList[i]); int nNotBindGoodNum = Global.GetTotalNotBindGoodsCountByID(client, cacheMergeItem.OrigGoodsIDList[i]); if (usingGoodsNum > nBindGoodNum + nNotBindGoodNum) { return(-10); } bool usedBinding = false; bool usedTimeLimited = false; int nSubNum = usingGoodsNum; int nSum = 0; if (nUseBindItemFirst > 0 && nBindGoodNum > 0) { if (usingGoodsNum > nBindGoodNum) { nSum = nBindGoodNum; nSubNum = usingGoodsNum - nBindGoodNum; } else { nSum = usingGoodsNum; nSubNum = 0; } if (nSum > 0) { if (!GameManager.ClientMgr.NotifyUseBindGoods(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, cacheMergeItem.OrigGoodsIDList[i], nSum, false, out usedBinding, out usedTimeLimited, true)) { return(-10); } } if (nSubNum > 0) { if (!GameManager.ClientMgr.NotifyUseNotBindGoods(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, cacheMergeItem.OrigGoodsIDList[i], nSubNum, false, out usedBinding, out usedTimeLimited, true)) { return(-10); } } newGoodsBinding = 1; } else { if (usingGoodsNum > nNotBindGoodNum) { nSum = nNotBindGoodNum; nSubNum = usingGoodsNum - nNotBindGoodNum; } else { nSum = usingGoodsNum; nSubNum = 0; } if (nSum > 0) { if (!GameManager.ClientMgr.NotifyUseNotBindGoods(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, cacheMergeItem.OrigGoodsIDList[i], nSum, false, out usedBinding, out usedTimeLimited, true)) { return(-10); } } if (nSubNum > 0) { if (!GameManager.ClientMgr.NotifyUseBindGoods(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, cacheMergeItem.OrigGoodsIDList[i], nSubNum, false, out usedBinding, out usedTimeLimited, true)) { return(-10); } newGoodsBinding = 1; } } // if (newGoodsBinding <= 0) // { // newGoodsBinding = usedBinding ? 1 : 0; // } } //检查点卷 if (cacheMergeItem.DianJuan > 0) { //优先扣除金币 //扣除的金币 //int hasSubGold = 0; //扣除的元宝 //int hasSubYuanBao = 0; if (!GameManager.ClientMgr.SubUserMoney(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, cacheMergeItem.DianJuan, "合成新物品")) { return(-11); } //if (hasSubGold > 0) //{ // newGoodsBinding = 1; //} } //检查银两 if (cacheMergeItem.Money > 0) { //if (!GameManager.ClientMgr.SubUserYinLiang(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, // Global._TCPManager.TcpOutPacketPool, client, cacheMergeItem.Money)) if (!Global.SubBindTongQianAndTongQian(client, cacheMergeItem.Money, "材料合成")) { return(-12); } } // 合成改造 -- 注释掉真气和积分 [12/14/2013 LiaoWei] //检查真气 /*if (cacheMergeItem.ZhenQi > 0) * { * //扣除角色的真气 * GameManager.ClientMgr.ModifyZhenQiValue(client, -cacheMergeItem.ZhenQi, true, true); * }*/ //检查积分 /*if (cacheMergeItem.JiFen > 0) * { * //扣除角色的积分 * GameManager.ClientMgr.ModifyZhuangBeiJiFenValue(client, -cacheMergeItem.JiFen, true, true); * }*/ //检查天地精元 if (cacheMergeItem.JingYuan > 0) { //扣除角色的天地精元 GameManager.ClientMgr.ModifyTianDiJingYuanValue(client, -cacheMergeItem.JingYuan, "材料合成", true, true); } if (!success) { return(-1000); } //添加合成的新物品到角色的背包中 //想DBServer请求加入某个新的物品到背包中 int dbRet = Global.AddGoodsDBCommand(Global._TCPManager.TcpOutPacketPool, client, nNewGoodsID, 1, 0, "", 0, newGoodsBinding, 0, "", true, 1, "材料合成新物品"); if (dbRet < 0) { return(-20); } //判断如果是宝石,并且超过了4级,则提示 if ((int)ItemCategories.ItemJewel == Global.GetGoodsCatetoriy(nNewGoodsID)) { //如果是宝石,处理成就 //ChengJiuManager.OnRoleGoodsHeCheng(client, cacheMergeItem.NewGoodsID[0]); if (Global.GetJewelLevel(nNewGoodsID) >= 6) //6级以上 { //宝石合成 Global.BroadcastMergeJewelOk(client, nNewGoodsID); } } //如果是合成强化石,则处理成就 if ((int)ItemCategories.ItemMaterial == Global.GetGoodsCatetoriy(nNewGoodsID)) { //如果是宝石,处理成就 //ChengJiuManager.OnRoleGoodsHeCheng(client, cacheMergeItem.NewGoodsID[0]); } //成就处理 第一次合成 ChengJiuManager.OnFirstHeCheng(client); ChengJiuManager.OnRoleGoodsHeCheng(client, nNewGoodsID); return(0); }
/// <summary> /// 给奖励 /// </summary> private void ProcessAward(GameClient client) { int nFlag; if (BattlingState < BattleStates.StartFight) { //开始战斗前离开不给奖励 return; } else if (BattlingState == BattleStates.StartFight) { long ticks = DateTime.Now.Ticks / 10000; if (ticks < StateStartTicks + 1000) //进场1秒后退出才给奖励,防止卡时间点刷奖励 { return; } } lock (mutex) { if (!TheKingOfPKGetawardFlag.TryGetValue(client.ClientData.RoleID, out nFlag)) { return; } if (nFlag > 0) { return; } TheKingOfPKGetawardFlag[client.ClientData.RoleID] = 1; } if (client.ClientData.KingOfPkCurrentPoint > TheKingOfPKTopPoint) { SetTotalPointInfo(client.ClientData.RoleName, client.ClientData.KingOfPkCurrentPoint); } // 1.成就=系数1+Min(系数2,积分)*系数3 2.经验=Min(400,转生级别*400+人物等级)*系数1+Min(系数2,积分)*系数3 2014.4.21改成 人物级别*转生级别对应比例*系数1 +Min(系数2,积分)*系数3 // 经验=系数1*SystemParams.xml定义的ZhuanShengExpXiShu参数值+Min(系数2,积分)*系数3*SystemParams.xml定义的ZhuanShengExpXiShu参数值 string strPkAward = GameManager.systemParamsList.GetParamValueByName("PkAward"); string[] strChengJiu = null; string[] strExp = null; int nChengjiuPoint = 0; long nExp = 0; if (!string.IsNullOrEmpty(strPkAward)) { string[] strFild = strPkAward.Split('|'); string strInfo = strFild[0]; strChengJiu = strInfo.Split(','); strInfo = strFild[1]; strExp = strInfo.Split(','); } nChengjiuPoint = Global.SafeConvertToInt32(strChengJiu[0]) + Global.GMin(Global.SafeConvertToInt32(strChengJiu[1]), client.ClientData.KingOfPkCurrentPoint) * Global.SafeConvertToInt32(strChengJiu[2]); if (nChengjiuPoint > 0) { ChengJiuManager.AddChengJiuPoints(client, "角斗赛", nChengjiuPoint, true, true); } //nExp = Global.GMin(400, client.ClientData.ChangeLifeCount * 400 + client.ClientData.Level) * Global.SafeConvertToInt32(strExp[0]) + // Global.GMin(Global.SafeConvertToInt32(strExp[1]), client.ClientData.KingOfPkCurrentPoint) * Global.SafeConvertToInt32(strExp[2]); double nRate = 0.0; /*if (client.ClientData.ChangeLifeCount == 0) * nRate = 1; * else * nRate = Data.ChangeLifeInfoList[client.ClientData.ChangeLifeCount].ExpProportion;*/ nRate = Data.ChangeLifeEverydayExpRate[client.ClientData.ChangeLifeCount]; //(int)(client.ClientData.Level * nRate * Global.SafeConvertToInt32(strExp[0]) + Global.GMin(Global.SafeConvertToInt32(strExp[1]), client.ClientData.KingOfPkCurrentPoint) * Global.SafeConvertToInt32(strExp[2])); nExp = (int)(Global.SafeConvertToInt32(strExp[0]) * nRate + Global.GMin(Global.SafeConvertToInt32(strExp[1]), client.ClientData.KingOfPkCurrentPoint) * Global.SafeConvertToInt32(strExp[2]) * nRate); double dblExperience = 1.0; // 合服期间奖励翻倍 // 活动时间内 HeFuAwardTimesActivity activity = HuodongCachingMgr.GetHeFuAwardTimesActivity(); if (null != activity && activity.InActivityTime() && activity.activityTimes > 0.0) { dblExperience += activity.activityTimes - 1; } // 节日多倍奖励 JieRiMultAwardActivity jieriact = HuodongCachingMgr.GetJieRiMultAwardActivity(); if (null != jieriact) { JieRiMultConfig config = jieriact.GetConfig((int)MultActivityType.TheKingOfPK); if (null != config) { dblExperience += config.GetMult(); } } nExp = (int)(nExp * dblExperience); if (nExp > 0) { GameManager.ClientMgr.ProcessRoleExperience(client, nExp); } string strCmd = ""; // 1.自己的积分 2.获得成就积分 3.获得经验 strCmd = string.Format("{0}:{1}:{2}", client.ClientData.KingOfPkCurrentPoint, nChengjiuPoint, nExp); client.ClientData.KingOfPkCurrentPoint = 0; GameManager.ClientMgr.SendToClient(client, strCmd, (int)TCPGameServerCmds.CMD_SPR_NOTIFYTHEKINGOFPKAWARDINFO); }
private bool SetFinishNum(GameClient client, TodayInfo todayInfo, SystemXmlItem fuBenInfo) { int num = todayInfo.NumMax - todayInfo.NumEnd; switch (todayInfo.Type) { case 1: case 2: Global.UpdateFuBenData(client, todayInfo.FuBenID, num, num); break; case 3: case 4: case 5: Global.UpdateFuBenData(client, todayInfo.FuBenID, num, num); break; case 6: { DailyTaskData taoData = null; Global.GetDailyTaskData(client, 9, out taoData, true); taoData.RecNum = todayInfo.NumMax; Global.UpdateDBDailyTaskData(client, taoData, true); break; } case 7: { int nType = 2; Global.UpdateDayActivityEnterCountToDB(client, client.ClientData.RoleID, TimeUtil.NowDateTime().DayOfYear, nType, todayInfo.NumMax); break; } case 8: { int nType = 1; Global.UpdateDayActivityEnterCountToDB(client, client.ClientData.RoleID, TimeUtil.NowDateTime().DayOfYear, nType, todayInfo.NumMax); break; } case 9: { int nType = 6; Global.UpdateDayActivityEnterCountToDB(client, client.ClientData.RoleID, TimeUtil.NowDateTime().DayOfYear, nType, todayInfo.NumMax); break; } case 10: case 11: case 12: Global.UpdateFuBenData(client, todayInfo.FuBenID, num, num); break; } FuBenData fuBenData = Global.GetFuBenData(client, todayInfo.FuBenID); if (fuBenData != null && (fuBenData.EnterNum != 0 || fuBenData.FinishNum != 0)) { int dayID = TimeUtil.NowDateTime().DayOfYear; RoleDailyData roleData = client.ClientData.MyRoleDailyData; if (roleData == null || dayID != roleData.FuBenDayID) { roleData.FuBenDayID = dayID; roleData.TodayFuBenNum = 0; } int count = todayInfo.NumMax - todayInfo.NumEnd; roleData.TodayFuBenNum += count; int level = fuBenInfo.GetIntValue("FuBenLevel", -1); DailyActiveManager.ProcessCompleteCopyMapForDailyActive(client, level, count); ChengJiuManager.ProcessCompleteCopyMapForChengJiu(client, level, count); } return(true); }
public static void destroy() { //战盟事件管理器 ZhanMengShiJianManager.getInstance().destroy(); //竞技场管理器 JingJiChangManager.getInstance().destroy(); //离线摆摊 LiXianBaiTanManager.getInstance().destroy(); //离线挂机 LiXianGuaJiManager.getInstance().destroy(); //副本活动组队管理器 CopyTeamManager.Instance().destroy(); //指令注册管理器 CmdRegisterTriggerManager.getInstance().destroy(); //发送指令管理 SendCmdManager.getInstance().destroy(); //Boss AI管理器 BossAIManager.getInstance().destroy(); //MU交易所 SaleManager.getInstance().destroy(); //炼制系统 LianZhiManager.GetInstance().destroy(); // 成就升级 ChengJiuManager.GetInstance().destroy(); //声望勋章 PrestigeMedalManager.getInstance().destroy(); UnionPalaceManager.getInstance().destroy(); UserActivateManager.getInstance().destroy(); PetSkillManager.getInstance().destroy(); //玩家召回 UserReturnManager.getInstance().destroy(); //天赋 TalentManager.getInstance().destroy(); //每日专享 TodayManager.getInstance().destroy(); FundManager.getInstance().destroy(); WarnManager.getInstance().destroy(); //情侣副本管理器 MarryFuBenMgr.getInstance().destroy(); //领地 BuildingManager.getInstance().destroy(); //藏宝秘境 OnePieceManager.getInstance().destroy(); TenManager.getInstance().destroy(); // 七日活动 SevenDayActivityMgr.Instance().destroy(); SoulStoneManager.Instance().destroy(); //调用所有注册的管理模块的销毁函数 lock (Scene2ManagerDict) { foreach (var list in Scene2ManagerDict.Values) { foreach (var m in list) { m.destroy(); } } } }
public static void startup() { //战盟事件管理器 ZhanMengShiJianManager.getInstance().startup(); //竞技场管理器 JingJiChangManager.getInstance().startup(); //离线摆摊 LiXianBaiTanManager.getInstance().startup(); //离线挂机 LiXianGuaJiManager.getInstance().startup(); //副本活动组队管理器 CopyTeamManager.Instance().startup(); //指令注册管理器 CmdRegisterTriggerManager.getInstance().startup(); //发送指令管理 SendCmdManager.getInstance().startup(); //Boss AI管理器 BossAIManager.getInstance().startup(); //MU交易所 SaleManager.getInstance().startup(); //炼制系统 LianZhiManager.GetInstance().startup(); // 成就升级 ChengJiuManager.GetInstance().startup(); //玩家召回 UserReturnManager.getInstance().startup(); //天赋 TalentManager.getInstance().startup(); //每日专享 TodayManager.getInstance().startup(); FundManager.getInstance().startup(); WarnManager.getInstance().startup(); //声望勋章 PrestigeMedalManager.getInstance().startup(); UnionPalaceManager.getInstance().startup(); UserActivateManager.getInstance().startup(); PetSkillManager.getInstance().startup(); //领地 BuildingManager.getInstance().startup(); //藏宝秘境 OnePieceManager.getInstance().startup(); TenManager.getInstance().startup(); // 七日活动 SevenDayActivityMgr.Instance().startup(); SoulStoneManager.Instance().startup(); //调用所有注册的管理模块的启动函数 lock (Scene2ManagerDict) { foreach (var list in Scene2ManagerDict.Values) { foreach (var m in list) { bool success = m.startup(); if (GameManager.ServerStarting && !success) { LogManager.WriteLog(LogTypes.Fatal, string.Format("初始化{0}.startup()失败,按任意键忽略此错误并继续启动服务器!", m.GetType())); Console.ReadKey(); } } } } }
/// <summary> /// 给奖励 /// </summary> public void GiveAwards(HuanYingSiYuanScene huanYingSiYuanScene) { try { List <GameClient> objsList = huanYingSiYuanScene.CopyMap.GetClientsList(); if (objsList != null && objsList.Count > 0) { int nowDayId = Global.GetOffsetDayNow(); for (int n = 0; n < objsList.Count; ++n) { GameClient client = objsList[n]; if (client != null && client == GameManager.ClientMgr.FindClient(client.ClientData.RoleID)) //确认角色仍然在线 { bool success = false; double nMultiple = 0.5; int awardsRate = 1; int count = 0; HuanYingSiYuanLianShaContextData clientLianShaContextData = client.SceneContextData2 as HuanYingSiYuanLianShaContextData; if (null != clientLianShaContextData && clientLianShaContextData.TotalScore >= RuntimeData.TempleMirageMinJiFen) { if (client.ClientData.BattleWhichSide == huanYingSiYuanScene.SuccessSide) { success = true; nMultiple = 1; //每日前3次享受10倍奖励 int dayid = Global.GetRoleParamsInt32FromDB(client, RoleParamName.HysySuccessDayId); if (dayid == nowDayId) { count = Global.GetRoleParamsInt32FromDB(client, RoleParamName.HysySuccessCount); if (count < RuntimeData.TempleMirageWinExtraNum) { awardsRate = RuntimeData.TempleMirageWinExtraRate; } } else { awardsRate = RuntimeData.TempleMirageWinExtraRate; } } } else { //达不到最低分数,无奖励,不计次 nMultiple = 0; awardsRate = 0; } // 公式 long nExp = (long)(RuntimeData.TempleMirageEXPAward * nMultiple * client.ClientData.ChangeLifeCount); int chengJiuaward = (int)(RuntimeData.TempleMirageAwardChengJiu * nMultiple); int shengWangaward = (int)(RuntimeData.TempleMirageAwardShengWang * nMultiple); if (nExp > 0) { GameManager.ClientMgr.ProcessRoleExperience(client, nExp * awardsRate, false); //GameManager.ClientMgr.NotifyAddExpMsg(client, nExp); //客户端自己提示,有显示"X10"的需求 } if (chengJiuaward > 0) { ChengJiuManager.AddChengJiuPoints(client, "幻影寺院获得成就", chengJiuaward * awardsRate, true, true); } if (shengWangaward > 0) { GameManager.ClientMgr.ModifyShengWangValue(client, shengWangaward * awardsRate, "幻影寺院获得声望"); } HuanYingSiYuanAwardsData awardsData = new HuanYingSiYuanAwardsData() { SuccessSide = huanYingSiYuanScene.SuccessSide, Exp = nExp, ShengWang = shengWangaward, ChengJiuAward = chengJiuaward, AwardsRate = awardsRate, }; if (success) { if (nMultiple > 0) { Global.SaveRoleParamsInt32ValueToDB(client, RoleParamName.HysySuccessDayId, nowDayId, true); Global.SaveRoleParamsInt32ValueToDB(client, RoleParamName.HysySuccessCount, count + 1, true); GlobalNew.UpdateKuaFuRoleDayLogData(client.ServerId, client.ClientData.RoleID, TimeUtil.NowDateTime(), client.ClientData.ZoneID, 0, 0, 1, 0, (int)GameTypes.HuanYingSiYuan); if (huanYingSiYuanScene.ScoreInfoData.Score1 >= 1000 || huanYingSiYuanScene.ScoreInfoData.Score2 >= 1000) { //FaildCount记录为获得够1000分而获胜的人次 GlobalNew.UpdateKuaFuRoleDayLogData(client.ServerId, client.ClientData.RoleID, TimeUtil.NowDateTime(), client.ClientData.ZoneID, 0, 0, 0, 1, (int)GameTypes.HuanYingSiYuan); } } } else { //FaildCount记录为失败人次 //GlobalNew.UpdateKuaFuRoleDayLogData(client.ServerId, client.ClientData.RoleID, TimeUtil.NowDateTime(), client.ClientData.ZoneID, 0, 0, 0, 1); } client.sendCmd((int)TCPGameServerCmds.CMD_SPR_HYSY_AWARD, awardsData); } } } } catch (System.Exception ex) { DataHelper.WriteExceptionLogEx(ex, "幻影寺院清场调度异常"); } }
public static void initialize() { #if BetaConfig int round = 9; Console.WriteLine("连接调试器或按任意键继续"); do { Console.Write("\b\b" + round); if (Console.KeyAvailable) { break; } Thread.Sleep(1000); } while (--round > 0); Console.Write("\b\b"); #endif //战盟事件管理器 ZhanMengShiJianManager.getInstance().initialize(); //竞技场管理器 JingJiChangManager.getInstance().initialize(); //离线摆摊 LiXianBaiTanManager.getInstance().initialize(); //离线挂机 LiXianGuaJiManager.getInstance().initialize(); //副本活动组队管理器 CopyTeamManager.Instance().initialize(); //指令注册管理器 CmdRegisterTriggerManager.getInstance().initialize(); //发送指令管理 SendCmdManager.getInstance().initialize(); //Boss AI管理器 BossAIManager.getInstance().initialize(); //洗炼管理器 WashPropsManager.initialize(); //MU交易所 SaleManager.getInstance().initialize(); //炼制系统 LianZhiManager.GetInstance().initialize(); // 成就升级 ChengJiuManager.GetInstance().initialize(); //声望勋章 PrestigeMedalManager.getInstance().initialize(); UnionPalaceManager.getInstance().initialize(); UserActivateManager.getInstance().initialize(); PetSkillManager.getInstance().initialize(); //玩家召回 UserReturnManager.getInstance().initialize(); //天赋 TalentManager.getInstance().initialize(); //每日专享 TodayManager.getInstance().initialize(); FundManager.getInstance().initialize(); //警告 WarnManager.getInstance().initialize(); //恶魔来袭 EMoLaiXiCopySceneManager.LoadEMoLaiXiCopySceneInfo(); //罗兰法阵副本 LuoLanFaZhenCopySceneManager.initialize(); //情侣副本管理器 MarryFuBenMgr.getInstance().initialize(); MarryLogic.LoadMarryBaseConfig(); MarryPartyLogic.getInstance().LoadMarryPartyConfig(); //领地 BuildingManager.getInstance().initialize(); // 藏宝秘境 OnePieceManager.getInstance().initialize(); //初始化跨服相关管理器 RegisterManager4Scene((int)SceneUIClasses.Normal, KuaFuManager.getInstance()); // RegisterManager4Scene((int)SceneUIClasses.LangHunLingYu, LangHunLingYuManager.getInstance()); //注册罗兰城战管理器 RegisterManager4Scene((int)SceneUIClasses.LuoLanChengZhan, LuoLanChengZhanManager.getInstance()); RegisterManager4Scene((int)SceneUIClasses.Normal, FashionManager.getInstance()); RegisterManager4Scene((int)SceneUIClasses.HuanYingSiYuan, HuanYingSiYuanManager.getInstance()); RegisterManager4Scene((int)ManagerTypes.ClientGoodsList, JingLingQiYuanManager.getInstance()); RegisterManager4Scene((int)SceneUIClasses.TianTi, TianTiManager.getInstance()); RegisterManager4Scene((int)SceneUIClasses.YongZheZhanChang, YongZheZhanChangManager.getInstance()); RegisterManager4Scene((int)SceneUIClasses.KingOfBattle, KingOfBattleManager.getInstance()); RegisterManager4Scene((int)SceneUIClasses.MoRiJudge, MoRiJudgeManager.Instance()); RegisterManager4Scene((int)SceneUIClasses.ElementWar, ElementWarManager.getInstance()); RegisterManager4Scene((int)SceneUIClasses.CopyWolf, CopyWolfManager.getInstance()); RegisterManager4Scene((int)SceneUIClasses.KuaFuBoss, KuaFuBossManager.getInstance()); RegisterManager4Scene((int)SceneUIClasses.KuaFuMap, KuaFuMapManager.getInstance()); RegisterManager4Scene((int)SceneUIClasses.Spread, SpreadManager.getInstance()); RegisterManager4Scene((int)SceneUIClasses.KFZhengBa, ZhengBaManager.Instance()); RegisterManager4Scene((int)SceneUIClasses.CoupleArena, CoupleArenaManager.Instance()); RegisterManager4Scene((int)SceneUIClasses.Ally, AllyManager.getInstance()); RegisterManager4Scene((int)SceneUIClasses.CoupleWish, CoupleWishManager.Instance()); // 读取外挂列表和相关配置 RobotTaskValidator.getInstance().Initialize(false, 0, 0, ""); //初始化圣物系统相关配置 HolyItemManager.getInstance().Initialize(); //初始化塔罗牌相关配置 TarotManager.getInstance().Initialize(); // 七日活动 SevenDayActivityMgr.Instance().initialize(); // 魂石 SoulStoneManager.Instance().initialize(); TradeBlackManager.Instance().LoadConfig(); //调用所有注册的管理模块的初始化函数 lock (Scene2ManagerDict) { foreach (var list in Scene2ManagerDict.Values) { foreach (var m in list) { bool success = m.initialize(); IManager2 m2 = m as IManager2; if (null != m2) { success = success && m2.initialize(GameCoreInterface.getinstance()); } if (GameManager.ServerStarting && !success) { LogManager.WriteLog(LogTypes.Fatal, string.Format("执行{0}.initialize()失败,按任意键继续启动!", m.GetType())); //Console.ReadKey(); HX_SERVER close the copy scenes; } } } } //应用宝 TenManager.getInstance().initialize(); TenRetutnManager.getInstance().initialize(); //礼包码 GiftCodeNewManager.getInstance().initialize(); }
public override bool CheckCondition(GameClient client, int extTag) { AwardItem myAwardItem = null; if (this.AwardDict.ContainsKey(extTag)) { myAwardItem = this.AwardDict[extTag]; } bool result; if (null == myAwardItem) { result = false; } else { ActivityTypes activityType = (ActivityTypes)this.ActivityType; switch (activityType) { case ActivityTypes.JieriWing: if (client.ClientData.MyWingData == null || client.ClientData.MyWingData.Using == 0) { return(false); } if (client.ClientData.MyWingData.WingID < myAwardItem.MinAwardCondionValue) { return(false); } if (client.ClientData.MyWingData.WingID == myAwardItem.MinAwardCondionValue && client.ClientData.MyWingData.ForgeLevel < myAwardItem.MinAwardCondionValue2) { return(false); } goto IL_3A3; case ActivityTypes.JieriAddon: if (client.UsingEquipMgr.GetUsingEquipAllAppendPropLeva() < myAwardItem.MinAwardCondionValue) { return(false); } goto IL_3A3; case ActivityTypes.JieriStrengthen: if (client.UsingEquipMgr.GetUsingEquipAllForge() < myAwardItem.MinAwardCondionValue) { return(false); } goto IL_3A3; case ActivityTypes.JieriAchievement: if (ChengJiuManager.GetChengJiuLevel(client) < myAwardItem.MinAwardCondionValue) { return(false); } goto IL_3A3; case ActivityTypes.JieriMilitaryRank: if (GameManager.ClientMgr.GetShengWangLevelValue(client) < myAwardItem.MinAwardCondionValue) { return(false); } goto IL_3A3; case ActivityTypes.JieriVIPFanli: if (client.ClientData.VipLevel < myAwardItem.MinAwardCondionValue) { return(false); } goto IL_3A3; case ActivityTypes.JieriAmulet: { GoodsData hufugoods = client.UsingEquipMgr.GetGoodsDataByCategoriy(client, 22); if (null == hufugoods) { return(false); } SystemXmlItem systemGoods = null; if (!GameManager.SystemGoods.SystemXmlItemDict.TryGetValue(hufugoods.GoodsID, out systemGoods)) { return(false); } int nSuitID = systemGoods.GetIntValue("SuitID", -1); if (nSuitID < myAwardItem.MinAwardCondionValue) { return(false); } goto IL_3A3; } case ActivityTypes.JieriArchangel: if (client.UsingEquipMgr.GetUsingEquipArchangelWeaponSuit() < myAwardItem.MinAwardCondionValue) { return(false); } goto IL_3A3; case ActivityTypes.JieriLianXuCharge: break; case ActivityTypes.JieriMarriage: if (client.ClientData.MyMarriageData == null || -1 == client.ClientData.MyMarriageData.byMarrytype || (int)client.ClientData.MyMarriageData.byGoodwilllevel < myAwardItem.MinAwardCondionValue) { return(false); } goto IL_3A3; default: switch (activityType) { case ActivityTypes.JieRiHuiJi: { EmblemStarInfo starInfo = HuiJiManager.getInstance().GetHuiJiStartInfo(client); if (null == starInfo) { return(false); } if (starInfo.EmblemLevel < myAwardItem.MinAwardCondionValue) { return(false); } if (starInfo.EmblemLevel == myAwardItem.MinAwardCondionValue && starInfo.EmblemStar < myAwardItem.MinAwardCondionValue2) { return(false); } goto IL_3A3; } case ActivityTypes.JieRiFuWen: if (ShenShiManager.getInstance().GetCurrentTabTotalLevel(client) < myAwardItem.MinAwardCondionValue) { return(false); } goto IL_3A3; } break; } return(false); IL_3A3: result = true; } return(result); }
public static void initialize() { ZhanMengShiJianManager.getInstance().initialize(); JingJiChangManager.getInstance().initialize(); LiXianBaiTanManager.getInstance().initialize(); LiXianGuaJiManager.getInstance().initialize(); CmdRegisterTriggerManager.getInstance().initialize(); SendCmdManager.getInstance().initialize(); BossAIManager.getInstance().initialize(); WashPropsManager.initialize(); SaleManager.getInstance().initialize(); LianZhiManager.GetInstance().initialize(); ChengJiuManager.GetInstance().initialize(); PrestigeMedalManager.getInstance().initialize(); UnionPalaceManager.getInstance().initialize(); UserActivateManager.getInstance().initialize(); PetSkillManager.getInstance().initialize(); UserReturnManager.getInstance().initialize(); OlympicsManager.getInstance().initialize(); TalentManager.getInstance().initialize(); TodayManager.getInstance().initialize(); FundManager.getInstance().initialize(); WarnManager.getInstance().initialize(); EMoLaiXiCopySceneManager.LoadEMoLaiXiCopySceneInfo(); LuoLanFaZhenCopySceneManager.initialize(); MarryFuBenMgr.getInstance().initialize(); MarryLogic.LoadMarryBaseConfig(); MarryPartyLogic.getInstance().LoadMarryPartyConfig(); BuildingManager.getInstance().initialize(); OnePieceManager.getInstance().initialize(); GlobalServiceManager.RegisterManager4Scene(0, SingletonTemplate <CopyTeamManager> .Instance()); GlobalServiceManager.RegisterManager4Scene(0, KuaFuManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(35, LangHunLingYuManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, RebornManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, RebornBoss.getInstance()); GlobalServiceManager.RegisterManager4Scene(24, LuoLanChengZhanManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, FashionManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, OrnamentManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, ShenJiFuWenManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, YaoSaiJianYuManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, AlchemyManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, EraManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, VideoLogic.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, SpecPlatFuLiManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(25, HuanYingSiYuanManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(10000, JingLingQiYuanManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(26, TianTiManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(27, YongZheZhanChangManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(39, KingOfBattleManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(45, BangHuiMatchManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(48, CompManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(52, CompBattleManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(53, CompMineManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(57, ZorkBattleManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(47, KuaFuLueDuoManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, KarenBattleManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(41, KarenBattleManager_MapWest.getInstance()); GlobalServiceManager.RegisterManager4Scene(42, KarenBattleManager_MapEast.getInstance()); GlobalServiceManager.RegisterManager4Scene(29, SingletonTemplate <MoRiJudgeManager> .Instance()); GlobalServiceManager.RegisterManager4Scene(28, ElementWarManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(49, WanMoXiaGuManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(34, CopyWolfManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(31, KuaFuBossManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(10003, KuaFuMapManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(10002, SpreadManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(36, SingletonTemplate <ZhengBaManager> .Instance()); GlobalServiceManager.RegisterManager4Scene(38, SingletonTemplate <CoupleArenaManager> .Instance()); GlobalServiceManager.RegisterManager4Scene(10004, AllyManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(10005, SingletonTemplate <CoupleWishManager> .Instance()); GlobalServiceManager.RegisterManager4Scene(40, ZhengDuoManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, AoYunDaTiManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, RoleManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, ZhuanPanManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, ShenQiManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, JunTuanManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, LingDiCaiJiManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, HongBaoManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, YaoSaiBossManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, YaoSaiMissionManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, HuiJiManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, DeControl.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, GVoiceManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, ShenShiManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, JueXingManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, ZuoQiManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, ThemeBoss.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, ArmorManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, JingLingYuanSuJueXingManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, BianShenManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(55, TianTi5v5Manager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, UserRegressActiveManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, MountHolyStampManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, MazingerStoreManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, GlodAuctionProcessCmdEx.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, BoCaiManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, FunctionSendManager.GetInstance()); GlobalServiceManager.RegisterManager4Scene(0, HuanLeDaiBiManager.GetInstance()); GlobalServiceManager.RegisterManager4Scene(0, NewTimerProc.GetInstance()); GlobalServiceManager.RegisterManager4Scene(56, ZhanDuiZhengBaManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(59, EscapeBattleManager.getInstance()); GlobalServiceManager.RegisterManager4Scene(0, TestReceiveModel.getInstance()); RobotTaskValidator.getInstance().Initialize(false, 0, 0, ""); HolyItemManager.getInstance().Initialize(); TarotManager.getInstance().Initialize(); SingletonTemplate <SevenDayActivityMgr> .Instance().initialize(); SingletonTemplate <SoulStoneManager> .Instance().initialize(); SingletonTemplate <TradeBlackManager> .Instance().LoadConfig(); lock (GlobalServiceManager.Scene2ManagerDict) { foreach (List <IManager> list in GlobalServiceManager.Scene2ManagerDict.Values) { foreach (IManager i in list) { bool success = true; try { success = (success && i.initialize()); IManager2 m2 = i as IManager2; if (null != m2) { success = (success && m2.initialize(GameCoreInterface.getinstance())); } } catch (Exception ex) { success = false; LogManager.WriteException(ex.ToString()); } if (GameManager.ServerStarting && !success) { LogManager.WriteLog(LogTypes.Fatal, string.Format("执行{0}.initialize()失败,按任意键继续启动!", i.GetType()), null, true); Console.ReadKey(); } } } } TenManager.getInstance().initialize(); TenRetutnManager.getInstance().initialize(); GiftCodeNewManager.getInstance().initialize(); FaceBookManager.getInstance().initialize(); AssemblyPatchManager.getInstance().initialize(); IPStatisticsManager.getInstance().initialize(); FuMoManager.getInstance().Initialize(); }