case NobilityInfo.Donate:
case NobilityInfo.Donate: { if (client.Trade.InTrade) return; if (client.Entity.DonateTime) return; ulong silvers = information.dwParam; bool newDonator = false; client.NobilityInformation.Gender = (byte)(client.Entity.Body % 10); if (client.NobilityInformation.Donation == 0) newDonator = true; if (information.MoneyType == 1) { ulong Slivers = silvers; if (client.Entity.Money >= Slivers) { client.Entity.ConquerPoints -= (uint)Slivers; client.NobilityInformation.Donation += silvers; } } else { if (client.Entity.Money >= silvers) { client.Entity.Money -= (uint)silvers; client.NobilityInformation.Donation += silvers; } } if (!Board.ContainsKey(client.Entity.UID) && client.NobilityInformation.Donation == silvers && newDonator) { Board.Add(client.Entity.UID, client.NobilityInformation); try { Database.NobilityTable.InsertNobilityInformation(client.NobilityInformation); } catch { Database.NobilityTable.UpdateNobilityInformation(client.NobilityInformation); } } else { Database.NobilityTable.UpdateNobilityInformation(client.NobilityInformation); } Sort(client.Entity.UID); break; } case NobilityInfo.List: { byte[] packet = new byte[600 + 8]; Network.Writer.WriteUInt16(600, 0, packet); Network.Writer.WriteUInt16(2064, 2, packet); Network.Writer.WriteUInt16(2, 4, packet); Network.Writer.WriteUInt16(10, 10, packet); Network.Writer.WriteUInt16(10, 12, packet); int offset = 120; for (int i = (int)(information.wParam1 * 10); i < information.wParam1 * 10 + 10 && i < BoardList.Count; i++) { var nob = BoardList[i]; Network.Writer.WriteUInt32(nob.EntityUID, offset, packet); offset += 4; if (Kernel.GamePool.ContainsKey(nob.EntityUID)) { Network.Writer.WriteUInt32(1, offset, packet); offset += 4; Network.Writer.WriteUInt32(nob.Mesh, offset, packet); offset += 4; } else { offset += 8; } Network.Writer.WriteString(nob.Name, offset, packet); offset += 20; Network.Writer.WriteUInt64(nob.Donation, offset, packet); offset += 8; Network.Writer.WriteUInt32((uint)nob.Rank, offset, packet); offset += 4; Network.Writer.WriteUInt32((uint)i, offset, packet); offset += 4; } client.Send(packet); break; } } }