public static void SetUnionPalaceCount(GameClient client, int count) { count = ((count < 0) ? 0 : count); UnionPalaceManager.ModifyUpCount(client, count); UnionPalaceData myUPData = client.ClientData.MyUnionPalaceData; myUPData.ZhanGongNeed = UnionPalaceManager.GetUnionPalaceZG(client, 0); }
public static int GetUpCount(GameClient client, int day) { int count = 0; int dayOld = 0; List <int> data = Global.GetRoleParamsIntListFromDB(client, "UnionPalaceUpCount"); if (data != null && data.Count > 0) { dayOld = data[0]; } if (dayOld == day) { count = data[1]; } else { UnionPalaceManager.ModifyUpCount(client, count); } return(count); }
public static UnionPalaceData UnionPalaceUp(GameClient client) { UnionPalaceData result; lock (client.ClientData.LockUnionPalace) { UnionPalaceData myUPData = UnionPalaceManager.UnionPalaceGetData(client, false); if (myUPData.ResultType < 0) { result = myUPData; } else if (myUPData.ResultType == 3 || myUPData.ResultType == -4) { myUPData.ResultType = -4; result = myUPData; } else if (!UnionPalaceManager.IsGongNengOpened(client)) { myUPData.ResultType = -1; result = myUPData; } else { UnionPalaceBasicInfo basicInfo = UnionPalaceManager.GetUPBasicInfoByID(myUPData.StatueID); if (basicInfo.UnionLevel < 0) { myUPData.ResultType = -4; result = myUPData; } else { int bhLevel = Global.GetBangHuiLevel(client); if (basicInfo.UnionLevel > bhLevel) { myUPData.ResultType = -8; result = myUPData; } else if (bhLevel < myUPData.StatueLevel) { myUPData.ResultType = -7; result = myUPData; } else { int zhanGongNeed = UnionPalaceManager.GetUnionPalaceZG(client, 0); if (!GameManager.ClientMgr.SubUserBangGong(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, zhanGongNeed)) { myUPData.ResultType = -3; result = myUPData; } else { UnionPalaceRateInfo rateInfo = UnionPalaceManager.GetUPRateInfoByID(basicInfo.StatueLevel); int[] addNums = null; int rate = 0; int r = Global.GetRandomNumber(0, 100); for (int i = 0; i < rateInfo.RateList.Count; i++) { rate += rateInfo.RateList[i]; if (r <= rate) { addNums = rateInfo.AddNumList[rateInfo.RateList[i]].ToArray(); myUPData.BurstType = i; break; } } List <int> logList = new List <int>(); logList.Add(myUPData.StatueID); logList.Add(myUPData.LifeAdd); logList.Add(myUPData.AttackAdd); logList.Add(myUPData.DefenseAdd); logList.Add(myUPData.AttackInjureAdd); myUPData.LifeAdd += addNums[0] * UnionPalaceManager._gmRate; myUPData.LifeAdd = ((myUPData.LifeAdd > basicInfo.LifeMax) ? basicInfo.LifeMax : myUPData.LifeAdd); myUPData.AttackAdd += addNums[1] * UnionPalaceManager._gmRate; myUPData.AttackAdd = ((myUPData.AttackAdd > basicInfo.AttackMax) ? basicInfo.AttackMax : myUPData.AttackAdd); myUPData.DefenseAdd += addNums[2] * UnionPalaceManager._gmRate; myUPData.DefenseAdd = ((myUPData.DefenseAdd > basicInfo.DefenseMax) ? basicInfo.DefenseMax : myUPData.DefenseAdd); myUPData.AttackInjureAdd += addNums[3] * UnionPalaceManager._gmRate; myUPData.AttackInjureAdd = ((myUPData.AttackInjureAdd > basicInfo.AttackInjureMax) ? basicInfo.AttackInjureMax : myUPData.AttackInjureAdd); if (myUPData.LifeAdd < basicInfo.LifeMax || myUPData.DefenseAdd < basicInfo.DefenseMax || myUPData.AttackAdd < basicInfo.AttackMax || myUPData.AttackInjureAdd < basicInfo.AttackInjureMax) { myUPData.ResultType = 1; } else { myUPData.StatueID++; basicInfo = UnionPalaceManager.GetUPBasicInfoByID(myUPData.StatueID); myUPData.StatueType = basicInfo.StatueType; myUPData.StatueLevel = basicInfo.StatueLevel; myUPData.LifeAdd = 0; myUPData.AttackAdd = 0; myUPData.DefenseAdd = 0; myUPData.AttackInjureAdd = 0; myUPData.ResultType = 2; if (myUPData.StatueID > UnionPalaceManager._unionPalaceBasicList.Count || basicInfo.UnionLevel < 0) { myUPData.ResultType = 3; } else if (bhLevel < basicInfo.UnionLevel) { myUPData.ResultType = 5; } else if (bhLevel < myUPData.StatueLevel) { myUPData.ResultType = 4; } } int today = Global.GetOffsetDayNow(); int upCount = UnionPalaceManager.GetUpCount(client, today); myUPData.ZhanGongNeed = UnionPalaceManager.GetUnionPalaceZG(client, upCount + 1); UnionPalaceManager.ModifyUpCount(client, upCount + 1); UnionPalaceManager.ModifyUnionPalaceData(client, myUPData); client.ClientData.MyUnionPalaceData = myUPData; UnionPalaceManager.SetUnionPalaceProps(client, myUPData); GameManager.ClientMgr.NotifyUpdateEquipProps(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client); GameManager.ClientMgr.NotifyOthersLifeChanged(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client, true, false, 7); myUPData.ZhanGongLeft = client.ClientData.BangGong; logList.Add(myUPData.StatueID); logList.Add(myUPData.LifeAdd); logList.Add(myUPData.AttackAdd); logList.Add(myUPData.DefenseAdd); logList.Add(myUPData.AttackInjureAdd); logList.Add(upCount); EventLogManager.AddUnionPalaceEvent(client, LogRecordType.UnionPalace, new object[] { logList.ToArray() }); result = myUPData; } } } } } return(result); }