public static bool initPrestigeMedal() { bool result = PrestigeMedalManager.LoadPrestigeMedalBasicData(); bool result2 = PrestigeMedalManager.LoadPrestigeMedalSpecialData(); return(result && result2); }
public bool ProcessCmdPrestigeMedalInfo(GameClient client, int nID, byte[] bytes, string[] cmdParams) { try { if (cmdParams.Length != 1) { LogManager.WriteLog(LogTypes.Error, string.Format("指令参数个数错误, CMD={0}, Client={1}, Recv={2}", (TCPGameServerCmds)nID, Global.GetSocketRemoteEndPoint(client.ClientSocket, false), cmdParams.Length), null, true); return(false); } int roleID = Convert.ToInt32(cmdParams[0]); if (KuaFuManager.getInstance().ClientCmdCheckFaild(nID, client, ref roleID)) { LogManager.WriteLog(LogTypes.Error, string.Format("根据RoleID定位GameClient对象失败, CMD={0}, Client={1}, RoleID={2}", (TCPGameServerCmds)nID, Global.GetSocketRemoteEndPoint(client.ClientSocket, false), roleID), null, true); return(false); } PrestigeMedalData runeData = PrestigeMedalManager.GetPrestigeMedalData(client); client.sendCmd <PrestigeMedalData>(782, runeData, false); return(true); } catch (Exception ex) { DataHelper.WriteFormatExceptionLog(ex, Global.GetDebugHelperInfo(client.ClientSocket), false, false); } return(false); }
public static void SetPrestigeMedalCount(GameClient client, int count) { count = ((count < 0) ? 0 : count); PrestigeMedalManager.ModifyPrestigeMedalUpCount(client, count, true); PrestigeMedalData prestigeMedalData = client.ClientData.prestigeMedalData; prestigeMedalData.Diamond = PrestigeMedalManager.GetPrestigeMedalDiamond(client, PrestigeMedalManager.GetPrestigeMedalUpCount(client)); client.ClientData.prestigeMedalData = prestigeMedalData; }
public static void initSetPrestigeMedalProps(GameClient client) { if (!GameFuncControlManager.IsGameFuncDisabled(GameFuncType.System1Dot4Dot1)) { if (GlobalNew.IsGongNengOpened(client, GongNengIDs.PrestigeMedal, false)) { PrestigeMedalData PrestigeMedalData = PrestigeMedalManager.GetPrestigeMedalData(client); PrestigeMedalManager.SetPrestigeMedalProps(client, PrestigeMedalData); } } }
public static PrestigeMedalData GetPrestigeMedalData(GameClient client) { PrestigeMedalData result; if (GameFuncControlManager.IsGameFuncDisabled(GameFuncType.System1Dot4Dot1)) { result = null; } else if (!GlobalNew.IsGongNengOpened(client, GongNengIDs.PrestigeMedal, false)) { result = null; } else { PrestigeMedalData prestigeMedalData = client.ClientData.prestigeMedalData; if (prestigeMedalData == null) { prestigeMedalData = new PrestigeMedalData(); List <int> data = Global.GetRoleParamsIntListFromDB(client, "PrestigeMedal"); PrestigeMedalBasicData basic; if (data == null || data.Count <= 0) { basic = PrestigeMedalManager.GetPrestigeMedalBasicDataByID(PrestigeMedalManager._defaultMedalID); prestigeMedalData.RoleID = client.ClientData.RoleID; prestigeMedalData.MedalID = basic.MedalID; PrestigeMedalManager.ModifyPrestigeMedalData(client, prestigeMedalData, true); } else { prestigeMedalData.RoleID = client.ClientData.RoleID; prestigeMedalData.MedalID = data[0]; prestigeMedalData.LifeAdd = data[1]; prestigeMedalData.AttackAdd = data[2]; prestigeMedalData.DefenseAdd = data[3]; prestigeMedalData.HitAdd = data[4]; if (prestigeMedalData.MedalID > PrestigeMedalManager._prestigeMedalBasicList.Count) { prestigeMedalData.UpResultType = 3; basic = PrestigeMedalManager.GetPrestigeMedalBasicDataByID(PrestigeMedalManager._prestigeMedalBasicList.Count); } else { basic = PrestigeMedalManager.GetPrestigeMedalBasicDataByID(prestigeMedalData.MedalID); } } prestigeMedalData.Diamond = PrestigeMedalManager.GetPrestigeMedalDiamond(client, PrestigeMedalManager.GetPrestigeMedalUpCount(client)); prestigeMedalData.Prestige = basic.PrestigeCost; client.ClientData.prestigeMedalData = prestigeMedalData; } prestigeMedalData.PrestigeLeft = GameManager.ClientMgr.GetShengWangValue(client); result = prestigeMedalData; } return(result); }
public static void SetPrestigeMedalLevel(GameClient client, int level) { level = ((level <= 0) ? 1 : level); PrestigeMedalData prestigeMedalData = new PrestigeMedalData(); PrestigeMedalBasicData basic = PrestigeMedalManager.GetPrestigeMedalBasicDataByID(level); prestigeMedalData.RoleID = client.ClientData.RoleID; prestigeMedalData.MedalID = basic.MedalID; if (prestigeMedalData.MedalID > PrestigeMedalManager._prestigeMedalBasicList.Count) { prestigeMedalData.UpResultType = 3; } PrestigeMedalManager.ModifyPrestigeMedalData(client, prestigeMedalData, true); client.ClientData.prestigeMedalData = prestigeMedalData; PrestigeMedalManager.SetPrestigeMedalProps(client, prestigeMedalData); }
public static int GetPrestigeMedalUpCount(GameClient client) { int count = 0; int dayOld = 0; List <int> data = Global.GetRoleParamsIntListFromDB(client, "PrestigeMedalUpCount"); if (data != null && data.Count > 0) { dayOld = data[0]; } int day = TimeUtil.NowDateTime().DayOfYear; if (dayOld == day) { count = data[1]; } else { PrestigeMedalManager.ModifyPrestigeMedalUpCount(client, count, true); } return(count); }
public static void SetPrestigeMedalProps(GameClient client, PrestigeMedalData PrestigeMedalData) { if (!GameFuncControlManager.IsGameFuncDisabled(GameFuncType.System1Dot4Dot1)) { int life = PrestigeMedalData.LifeAdd; int attack = PrestigeMedalData.AttackAdd; int defense = PrestigeMedalData.DefenseAdd; int hit = PrestigeMedalData.HitAdd; foreach (PrestigeMedalBasicData d in PrestigeMedalManager._prestigeMedalBasicList.Values) { if (d.MedalID < PrestigeMedalData.MedalID) { life += d.LifeMax; attack += d.AttackMax; defense += d.DefenseMax; hit += d.HitMax; } } double zhuoYue = 0.0; double diKang = 0.0; if (PrestigeMedalData.MedalID > 1) { PrestigeMedalSpecialData d2 = PrestigeMedalManager.GetPrestigeMedalSpecialDataByID(PrestigeMedalData.MedalID - 1); zhuoYue += d2.DoubleAttack; diKang += d2.DiDouble; } client.ClientData.PropsCacheManager.SetExtPropsSingle(new object[] { 9, 13, life }); client.ClientData.PropsCacheManager.SetExtPropsSingle(new object[] { 9, 45, attack }); client.ClientData.PropsCacheManager.SetExtPropsSingle(new object[] { 9, 46, defense }); client.ClientData.PropsCacheManager.SetExtPropsSingle(new object[] { 9, 18, hit }); client.ClientData.PropsCacheManager.SetExtPropsSingle(new object[] { 9, 36, zhuoYue }); client.ClientData.PropsCacheManager.SetExtPropsSingle(new object[] { 9, 53, diKang }); } }
public static PrestigeMedalData UpPrestigeMedal(GameClient client, int MedalID) { PrestigeMedalData prestigeMedalData = client.ClientData.prestigeMedalData; PrestigeMedalData result; if (prestigeMedalData != null && prestigeMedalData.UpResultType == 3) { prestigeMedalData.UpResultType = -4; result = prestigeMedalData; } else if (prestigeMedalData == null || prestigeMedalData.MedalID != MedalID) { prestigeMedalData.UpResultType = 0; result = prestigeMedalData; } else if (!GlobalNew.IsGongNengOpened(client, GongNengIDs.PrestigeMedal, false)) { prestigeMedalData.UpResultType = -1; result = prestigeMedalData; } else { PrestigeMedalBasicData basicMedal = PrestigeMedalManager.GetPrestigeMedalBasicDataByID(MedalID); int prestigeNow = GameManager.ClientMgr.GetShengWangValue(client); if (basicMedal.PrestigeCost > prestigeNow) { prestigeMedalData.UpResultType = -2; result = prestigeMedalData; } else { int upCount = PrestigeMedalManager.GetPrestigeMedalUpCount(client); int diamondNeed = PrestigeMedalManager.GetPrestigeMedalDiamond(client, upCount); if (diamondNeed > 0 && !GameManager.ClientMgr.SubUserMoney(client, diamondNeed, "声望勋章提升", true, true, true, true, DaiBiSySType.ShengWangYinJi)) { prestigeMedalData.UpResultType = -3; result = prestigeMedalData; } else { try { GameManager.ClientMgr.ModifyShengWangValue(client, -basicMedal.PrestigeCost, "声望勋章提升", false, true); } catch (Exception) { prestigeMedalData.UpResultType = -2; return(prestigeMedalData); } int[] addNums = null; int rate = 0; int r = Global.GetRandomNumber(0, 100); for (int i = 0; i < basicMedal.RateList.Count; i++) { rate += basicMedal.RateList[i]; if (r <= rate) { addNums = basicMedal.AddNumList[i]; prestigeMedalData.BurstType = i; break; } } prestigeMedalData.LifeAdd += addNums[0] * PrestigeMedalManager._medalRate; prestigeMedalData.LifeAdd = ((prestigeMedalData.LifeAdd > basicMedal.LifeMax) ? basicMedal.LifeMax : prestigeMedalData.LifeAdd); prestigeMedalData.AttackAdd += addNums[1] * PrestigeMedalManager._medalRate; prestigeMedalData.AttackAdd = ((prestigeMedalData.AttackAdd > basicMedal.AttackMax) ? basicMedal.AttackMax : prestigeMedalData.AttackAdd); prestigeMedalData.DefenseAdd += addNums[2] * PrestigeMedalManager._medalRate; prestigeMedalData.DefenseAdd = ((prestigeMedalData.DefenseAdd > basicMedal.DefenseMax) ? basicMedal.DefenseMax : prestigeMedalData.DefenseAdd); prestigeMedalData.HitAdd += addNums[3] * PrestigeMedalManager._medalRate; prestigeMedalData.HitAdd = ((prestigeMedalData.HitAdd > basicMedal.HitMax) ? basicMedal.HitMax : prestigeMedalData.HitAdd); if (prestigeMedalData.LifeAdd < basicMedal.LifeMax || prestigeMedalData.DefenseAdd < basicMedal.DefenseMax || prestigeMedalData.AttackAdd < basicMedal.AttackMax || prestigeMedalData.HitAdd < basicMedal.HitMax) { prestigeMedalData.UpResultType = 1; prestigeMedalData.Prestige = basicMedal.PrestigeCost; prestigeMedalData.Diamond = PrestigeMedalManager.GetPrestigeMedalDiamond(client, upCount + 1); } else { prestigeMedalData.MedalID++; prestigeMedalData.LifeAdd = 0; prestigeMedalData.AttackAdd = 0; prestigeMedalData.DefenseAdd = 0; prestigeMedalData.HitAdd = 0; prestigeMedalData.UpResultType = 2; if (prestigeMedalData.MedalID > PrestigeMedalManager._prestigeMedalBasicList.Count) { prestigeMedalData.UpResultType = 3; prestigeMedalData.Prestige = 0; prestigeMedalData.Diamond = 0; } else { basicMedal = PrestigeMedalManager.GetPrestigeMedalBasicDataByID(prestigeMedalData.MedalID); prestigeMedalData.Prestige = basicMedal.PrestigeCost; prestigeMedalData.Diamond = PrestigeMedalManager.GetPrestigeMedalDiamond(client, upCount + 1); } } PrestigeMedalManager.ModifyPrestigeMedalUpCount(client, upCount + 1, true); PrestigeMedalManager.ModifyPrestigeMedalData(client, prestigeMedalData, true); client.ClientData.prestigeMedalData = prestigeMedalData; PrestigeMedalManager.SetPrestigeMedalProps(client, prestigeMedalData); GameManager.ClientMgr.NotifyUpdateEquipProps(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client); GameManager.ClientMgr.NotifyOthersLifeChanged(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client, true, false, 7); prestigeMedalData.PrestigeLeft = GameManager.ClientMgr.GetShengWangValue(client); result = prestigeMedalData; } } } return(result); }
public bool startup() { TCPCmdDispatcher.getInstance().registerProcessorEx(782, 1, 1, PrestigeMedalManager.getInstance(), TCPCmdFlags.IsStringArrayParams); TCPCmdDispatcher.getInstance().registerProcessorEx(783, 2, 2, PrestigeMedalManager.getInstance(), TCPCmdFlags.IsStringArrayParams); return(true); }
public bool initialize() { return(PrestigeMedalManager.initPrestigeMedal()); }