public bool processCmd(GameClient client, string[] cmdParams) { int roleID = Global.SafeConvertToInt32(cmdParams[0]); int bhid = Global.SafeConvertToInt32(cmdParams[1]); int buildType = Global.SafeConvertToInt32(cmdParams[2]); int toLevel = Math.Max(2, Global.SafeConvertToInt32(cmdParams[3])); int nID = 601; bool result; if (client.ClientData.Faction != bhid) { string strcmd = string.Format("{0}:{1}:{2}:{3}:{4}", new object[] { -1, roleID, bhid, buildType, 0 }); client.sendCmd(nID, strcmd, false); result = true; } else if (toLevel > Global.MaxBangHuiFlagLevel) { string strcmd = string.Format("{0}:{1}:{2}:{3}:{4}", new object[] { -2, roleID, bhid, buildType, 0 }); client.sendCmd(nID, strcmd, false); result = true; } else { SystemXmlItem systemZhanMengBuildItem = Global.GetZhanMengBuildItem(buildType, toLevel); if (null == systemZhanMengBuildItem) { string strcmd = string.Format("{0}:{1}:{2}:{3}:{4}", new object[] { -3, roleID, bhid, buildType, 0 }); client.sendCmd(nID, strcmd, false); result = true; } else { BangHuiDetailData bangHuiDetailData = Global.GetBangHuiDetailData(roleID, bhid, 0); int oldBanHuiMoney = bangHuiDetailData.TotalMoney; int levelupCost = systemZhanMengBuildItem.GetIntValue("LevelupCost", -1); string strReqGoods = systemZhanMengBuildItem.GetStringValue("NeedGoods"); string dbcmd = string.Format("{0}:{1}:{2}:{3}:{4}:{5}:{6}", new object[] { roleID, bhid, buildType, levelupCost, toLevel, Global.GetZhanMengInitCoin(), strReqGoods }); string[] fields = Global.ExecuteDBCmd(nID, dbcmd, client.ServerId); if (fields == null || fields.Length != 1) { LogManager.WriteLog(LogTypes.Error, string.Format("升级帮旗等级时失败, CMD={0}, Client={1}, RoleID={2}", (TCPGameServerCmds)nID, Global.GetSocketRemoteEndPoint(client.ClientSocket, false), roleID), null, true); result = false; } else { int retCode = Global.SafeConvertToInt32(fields[0]); string strcmd; if (retCode >= 0) { Global.BroadcastZhanMengBuildUpLevelHint(client, buildType, toLevel); strcmd = string.Format("{0}:{1}:{2}:{3}:{4}", new object[] { toLevel, roleID, bhid, buildType, levelupCost }); JunQiManager.NotifySyncBangHuiJunQiItemsDict(client); GameManager.ClientMgr.NotifyBangHuiUpLevel(bhid, client.ServerId, toLevel, client.ClientSocket.IsKuaFuLogin); BangHuiDetailData bangHuiDetailDataNew = Global.GetBangHuiDetailData(roleID, bhid, 0); int newBanHuiMoney = bangHuiDetailDataNew.TotalMoney; string strCostList = EventLogManager.NewResPropString(ResLogType.BangHuiMoney, new object[] { -levelupCost, oldBanHuiMoney, newBanHuiMoney }); EventLogManager.AddBangHuiBuildUpEvent(client, bhid, buildType, toLevel, strCostList); } else { strcmd = string.Format("{0}:{1}:{2}:{3}:{4}", new object[] { retCode, roleID, bhid, buildType, 0 }); } client.sendCmd(nID, strcmd, false); result = true; } } } return(result); }