احصائياتى

الردود
5

المشاهدات
76
 
Hazem
.:: المدير العام::.

    متواجد  الان

المشاركات
2,307

+التقييم
0.84

تاريخ التسجيل
Apr 2019

الاقامة
Egypt

نظام التشغيل
windows 7

رقم العضوية
1
2021-08-16, 01:34 PM
المشاركة 1
2021-08-16, 01:34 PM
المشاركة 1
افتراضي الان و حصريا من ارض الحصريات و بس اليونيون كامل للسورسات العاديه


في الاول احب امسي علي كل راجل جدع في المنتداي البيساعد بس و احب امسي علي اخويا Mena MaGice
النهارده انا جيبلوكم اليونيون كامل و الكمال لله وحده عشان محدش يتزل علي حد تاني عشان انا شايف ان كل حاجه لسورس اسلام وبس
و مفيش حاجه للسورسات العديه فقلت اما انزل حاجه للسورسات العديه
و الفضل لله ثم لاخويا مينا عشان ساعدني فيه ارجو قبل البدء عدم نقل الموضوع الا بزكر صاحبه يلا بقاء نشتغل انا عارف انا رغاي اوي بس الاول نشوف شوية صور

كفايه كده يلا نخوش في التركيب

اول حاجه خوش علي Network/GamePackets و اعمل كلاس ب اسم UnionPacket

و اسمح الفي و حط ده


كود:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Conquer_Online_Server.Network;
using Conquer_Online_Server.Client;
using Conquer_Online_Server.Interfaces;
using ProtoBuf;

namespace 
Conquer_Online_Server.Network.GamePackets
{
    public class 
UnionPacket
    
{
        public 
unsafe class CMsgLeagueOpt : Interfaces.IPacket
        
{
            private 
byte[] Buffer;
            public 
CMsgLeagueOpt(bool Create)
            {
                if (
Create)
                {
                    
Buffer = new byte[8 + 23];
                    
Writer.WriteUInt16(23, 0, Buffer);
                    
Writer.WriteUInt16(2622, 2, Buffer);
                }
            }
            public 
UnionPacket.Action dwParam1
            
{
                
get { return (UnionPacket.Action)BitConverter.ToUInt16(Buffer, 4); }
                
set { Writer.WriteUInt16((ushort)value, 4, Buffer); }
            }
            public 
uint dwParam2
            
{
                
get { return BitConverter.ToUInt32(Buffer, 6); }
                
set { Writer.WriteUInt32(value, 6, Buffer); }
            }
            public 
uint UID
            
{
                
get { return BitConverter.ToUInt32(Buffer, 10); }
                
set { Writer.WriteUInt32(value, 10, Buffer); }
            }
            public 
uint dwParam3
            
{
                
get { return BitConverter.ToUInt32(Buffer, 14); }
                
set { Writer.WriteUInt32(value, 14, Buffer); }
            }
            public 
void Deserialize(byte[] buffer)
            {
                
this.Buffer = buffer;
            }
            public 
byte[] ToArray()
            {
                return 
Buffer;
            }
            public 
void Send(Client.GameState client)
            {
                
client.Send(Buffer);
            }
        }
        public static 
Counter UnionCounter = new Counter(0);
        public 
enum Action : byte
        
{
            
LeagueInfo = 0,
            
LeagueSynList = 1,
            
LeagueGuildMemList = 2,
            
LeagueMemList = 3,
            
LeagueAllegianceList = 4,
            
KingdomIcon = 5,
            
ChangeNameGui = 6,
            
CreateLeague = 7,
            
JoinLeagueOthers = 8,
            
QuitLeague = 9,
            
ExpelMember = 10,
            
GuildJoinLeague = 11,
            
GuildQuitLeague = 12,
            
ExpelGuild = 13,
            
TransferLeader = 14,
            
KingdomTitleGui = 17,
            
CreateKingdomTitle = 18,
            
Declarationmsg = 20,
            
LeaguePalaceGuardsList = 23,
            
AppointPalaceGuard = 24,
            
RemovePalaceGuard = 25,
            
ReSignPalaceGuard = 26,
            
CoreOfficals = 27,
            
AppointCoreOffical = 28,
            
RemoveCoreOffical = 29,
            
ReSignCoreOffical = 30,
            
Officals = 34,
            
LeagueConcubinesList = 40,
            
AppointLeagueConcubines = 41,
            
RemoveHarem = 44,
            
AppointCore = 47,
            
AppointGuard = 48,
            
AppointHarem = 49,
            
Bulletinmsg = 66,
        }


        public static 
byte[] SendLeagueAllegianceList(byte page)
        {
            
byte Page = page;
            
byte[] buffer = new byte[0];
            var 
Unions = Kernel.Unions.Values.ToArray();
            
int Count = Unions.Length;
            if (
Count > (3 * (Page + 1)))
            {
                
Count = 3;
                
buffer = new byte[(304 * Count) + 17 + 8];
            }
            else
            {
                
Count = Count - (3 * Page);
                
buffer = new byte[(304 * Count) + 17 + 8];
            }
            
Writer.WriteUInt16((ushort)(buffer.Length - 8), 0, buffer);
            
Writer.WriteUInt16(2624, 2, buffer);
            
buffer[4] = 4;
            
buffer[8] = Page;
            
Writer.WriteUInt16((ushort)Count, 10, buffer);
            
buffer[12] = 1;
            
int Offset = 13;
            for (
int i = 3 * Page; i < (Unions.Length); i++)
            {
                var 
Union = Unions[i];
                
Writer.WriteUInt64(Union.UnionFund, Offset, buffer); Offset += 8;
                
Writer.WriteUInt32((uint)Union.ID, Offset, buffer); Offset += 4;
                
Writer.WriteUInt32(Union.GoldBricks, Offset, buffer); Offset += 4;
                
Writer.WriteString(Union.Name, Offset, buffer); Offset += 16;
                
Writer.WriteString(Union.LeaderName, Offset, buffer); Offset += 16;
                
Writer.WriteString(Union.Declaration, Offset, buffer); Offset += 256;
            }
            return 
buffer;
        }

        [
ProtoContract]
        public class 
OverheadLeagueInfo
        
{
            [
ProtoMember(1, IsRequired = true)]
            public 
uint Unknown1 = 0;

            [
ProtoMember(2, IsRequired = true)]
            public 
uint UID = 0;

            [
ProtoMember(3, IsRequired = true)]
            public 
uint UnionID = 0;

            [
ProtoMember(4, IsRequired = true)]
            public 
uint PlayerRank = 0;

            [
ProtoMember(5, IsRequired = true)]
            public 
uint UnionRank = 0;

            [
ProtoMember(6, IsRequired = true)]
            public 
uint Unknown2 = 14;

            [
ProtoMember(7, IsRequired = true)]
            public 
string UnionName = "";
        }
        [
ProtoContract]
        public class 
LeagueConcubines
        
{
            [
ProtoMember(1, IsRequired = true)]
            public 
uint UID = 0;
            [
ProtoMember(2, IsRequired = true)]
            public 
uint RankID = 0;
            [
ProtoMember(3, IsRequired = true)]
            public 
string Name = "";
            [
ProtoMember(4, IsRequired = true)]
            public 
uint Class = 0;
            [
ProtoMember(5, IsRequired = true)]
            public 
uint Level = 0;
            [
ProtoMember(6, IsRequired = true)]
            public 
uint BattelPower = 0;
            [
ProtoMember(7, IsRequired = true)]
            public 
uint Exploits = 0;
            [
ProtoMember(8, IsRequired = true)]
            public 
uint Nobility = 0;
            [
ProtoMember(9, IsRequired = true)]
            public 
uint Online = 0;
            [
ProtoMember(10, IsRequired = true)]
            public 
uint Mesh = 0;


        }

        public static 
void Prosses(byte[] packet, Client.GameState client)
        {
            
UnionPacket.CMsgLeagueOpt LeagueOpt = new UnionPacket.CMsgLeagueOpt(false);
            
LeagueOpt.Deserialize(packet);
            switch (
LeagueOpt.dwParam1)
            {
                case 
UnionPacket.Action.ChangeNameGui:
                    {
                        if (
client.Union != null)
                        {
                            if (
client.Union.IsLeader(client.Entity.UID))
                            {
                                
string name = Encoding.UTF8.GetString(packet, 20, packet[19]);
                                
client.Union.Name = name;

                                
Game.ConquerStructures.Union.SendOverheadLeagueInfo(client);
                                foreach (var 
player in Kernel.GamePool.Values)
                                {
                                    if (
player.Union != null)
                                    {
                                        if (
player.Union.ID == client.UnionID)
                                        {

                                            
Game.ConquerStructures.Union.SendOverheadLeagueInfo(player);
                                        }
                                    }
                                }
                            }
                        }
                        break;
                    }
                case 
UnionPacket.Action.RemovePalaceGuard:
                    {
                        if (
client.Union != null)
                        {
                            if (
client.Union.IsLeader(client.Entity.UID))
                            {
                                var 
_client = Client.GameState.GetClientFromID(LeagueOpt.UID);
                                if (
_client != null)
                                {
                                    
client.Send(client.Union.ShowLeaguePalaceGuardsList((byte)1));
                                }
                            }
                        }
                        break;
                    }
                case 
UnionPacket.Action.ReSignPalaceGuard:
                    {
                        if (
client.Union != null)
                        {
                            
client.Send(client.Union.ShowLeaguePalaceGuardsList((byte)1));
                        }
                        break;
                    }
                case 
UnionPacket.Action.AppointGuard:
                    {
                        if (
client.Union != null)
                        {
                            if (
client.Union.IsLeader(client.Entity.UID))
                            {
                            }
                        }
                        break;
                    }
                case 
UnionPacket.Action.AppointPalaceGuard:
                    {
                        if (
client.Union != null)
                        {
                            if (
client.Union.IsLeader(client.Entity.UID))
                            {

                            }
                        }
                        break;
                    }
                case 
UnionPacket.Action.LeaguePalaceGuardsList:
                    {
                        if (
client.Union != null)
                        {
                            
client.Send(client.Union.ShowLeaguePalaceGuardsList((byte)LeagueOpt.dwParam3));
                        }
                        break;
                    }
                case 
UnionPacket.Action.AppointHarem:
                    {
                        if (
client.Union != null)
                        {
                            if (
client.Union.IsLeader(client.Entity.UID))
                            {
                                
string name = Encoding.UTF8.GetString(packet, 20, packet[19]);
                            }
                        }
                        break;
                    }
                case 
UnionPacket.Action.RemoveHarem:
                    {
                        if (
client.Union != null)
                        {
                            if (
client.Union.IsLeader(client.Entity.UID))
                            {
                                var 
_client = Client.GameState.GetClientFromID(LeagueOpt.UID);
                                if (
_client != null)
                                {
                                    
client.Send(client.Union.ShowLeagueConcubinesList());
                                }
                            }
                        }
                        break;
                    }
                case 
UnionPacket.Action.AppointLeagueConcubines:
                    {
                        if (
client.Union != null)
                        {
                            if (
client.Union.IsLeader(client.Entity.UID))
                            {

                            }
                        }
                        break;
                    }
                case 
UnionPacket.Action.LeagueConcubinesList:
                    {
                        
client.Send(client.Union.ShowLeagueConcubinesList());
                        break;
                    }
                case 
UnionPacket.Action.LeagueInfo:
                    {
                        if (
client.Union != null)
                        {
                            
client.Send(client.Union.SendLeagueInfo());
                        }
                        break;
                    }
                case 
UnionPacket.Action.LeagueSynList:
                    {
                        if (
client.Union != null)
                        {
                            
client.Send(client.Union.SendLeagueSynList((byte)LeagueOpt.dwParam3));
                        }
                        break;
                    }
                case 
UnionPacket.Action.LeagueGuildMemList:
                    {
                        if (
client.Union != null)
                        {
                            
client.Send(client.Union.ShowLeagueGuildMemList((ushort)LeagueOpt.dwParam2, (ushort)LeagueOpt.dwParam3));
                        }
                        break;
                    }
                case 
UnionPacket.Action.LeagueMemList:
                    {
                        if (
client.Union != null)
                        {
                            
client.Send(client.Union.ShowLeagueMemList((ushort)LeagueOpt.dwParam2, (ushort)LeagueOpt.dwParam3));
                        }
                        break;
                    }
                case 
UnionPacket.Action.LeagueAllegianceList:
                    {
                        if (
client.Union == null)
                        {
                            
client.Send(GamePackets.UnionPacket.SendLeagueAllegianceList((byte)LeagueOpt.dwParam3));
                        }
                        break;
                    }
                case 
UnionPacket.Action.JoinLeagueOthers:
                    {
                        if (
client.Union == null && client.Guild == null)
                        {

                        }
                        break;
                    }
                case 
UnionPacket.Action.ExpelMember:
                    {
                        if (
client.Union != null)
                        {
                            if (
client.Union.IsLeader(client.Entity.UID))
                            {
                                var 
c = Client.GameState.GetClientFromID(LeagueOpt.dwParam3);
                                if (
c != null)
                                {
                                    
client.Union.RemoveMember(c);
                                }
                            }
                        }
                        break;
                    }
                case 
UnionPacket.Action.ExpelGuild:
                    {

                        break;
                    }
                case 
UnionPacket.Action.TransferLeader:
                    {
                        if (
client.Union != null)
                        {
                            if (
client.Union.IsLeader(client.Entity.UID))
                            {
                                var 
_client = Client.GameState.GetClientFromID(LeagueOpt.UID);
                                if (
_client != null)
                                {
                                    if (
_client.Union != null)
                                    {
                                        if (
_client.Union.ID == client.Union.ID)
                                        {
                                            
client.Union.LeaderName = _client.Entity.Name;
                                            
client.Union.LeaderUID = _client.Entity.UID;
                                            
Database.UnionTable.UpdateLeader(client.Union);
                                            
_client.Offical = 1;
                                            
client.Offical = 0;
                                            
_client.Send(Game.ConquerStructures.Union.SendOverheadLeagueInfo(_client));
                                            
client.Send(Game.ConquerStructures.Union.SendOverheadLeagueInfo(client));
                                        }
                                    }
                                }
                            }
                        }
                        break;
                    }
                case 
UnionPacket.Action.CreateKingdomTitle:
                    {
                        if (
client.Union != null && client.Union.IsLeader(client.Entity.UID))
                        {
                            
string Name = Encoding.UTF8.GetString(packet, 20, packet[19]);
                            if (
Name.Length <= 5)
                            {
                                
client.Union.Title = Name;
                            }
                        }
                        break;
                    }
                case 
UnionPacket.Action.QuitLeague:
                    {
                        if (
client.Union != null)
                        {
                            var 
Union = client.Union;
                            
Union.RemoveMember(client);
                        }
                        break;
                    }
                case 
UnionPacket.Action.GuildJoinLeague:
                    {
                        if (
client.Guild != null && client.Entity.GuildRank == 1000 && client.Union == null)
                        {
                            var 
Union = Kernel.Unions[LeagueOpt.dwParam3];
                            
Union.AddGuild(client);
                        }
                        break;
                    }
                case 
UnionPacket.Action.GuildQuitLeague:
                    {
                        if (
client.Guild != null && client.Entity.GuildRank == 1000 && client.Union != null)
                        {
                            
client.Union.RemoveGuild(client.Guild.ID);
                        }
                        break;
                    }
                case 
Network.GamePackets.UnionPacket.Action.CreateLeague:
                    {
                        if (
client.Union == null && client.Guild != null && client.Entity.GuildRank == 1000)
                        {
                            
string Name = Encoding.UTF8.GetString(packet, 20, packet[19]);
                            var 
Check = Kernel.Unions.Values.Where(p => p.Name == Name).FirstOrDefault();
                            if (
Check == null)
                            {
                                
Game.ConquerStructures.Union Union = new Game.ConquerStructures.Union(client, Name);
                            }
                            else
                            {
                                
client.Entity.SendSysMesage("There's a union with the same name please choose another name.");
                            }
                        }
                        break;
                    }
                case 
Network.GamePackets.UnionPacket.Action.Declarationmsg:
                    {
                        if (
client.Union != null)
                        {
                            if (
client.Union.IsLeader(client.Entity.UID))
                            {
                                
string msg = Encoding.UTF8.GetString(packet, 20, packet[19]);
                                
client.Union.Declaration = msg;
                            }
                        }
                        break;
                    }
                case 
Network.GamePackets.UnionPacket.Action.CoreOfficals:
                    {
                        if (
client.Union != null)
                        {
                            
client.Send(client.Union.ShowLeagueImperialCourtList());
                        }
                        break;
                    }
                case 
Network.GamePackets.UnionPacket.Action.AppointCoreOffical:
                    {
                        if (
client.Union != null)
                        {
                            if (
client.Union.IsLeader(client.Entity.UID))
                            {

                            }
                        }
                        break;
                    }
                case 
Network.GamePackets.UnionPacket.Action.AppointCore:
                    {
                        if (
client.Union != null)
                        {
                            if (
client.Union.IsLeader(client.Entity.UID))
                            {
                                
string name = Encoding.UTF8.GetString(packet, 20, packet[19]);
                            }
                        }
                        break;
                    }
                case 
Network.GamePackets.UnionPacket.Action.RemoveCoreOffical:
                    {
                        if (
client.Union != null)
                        {
                            if (
client.Union.IsLeader(client.Entity.UID))
                            {
                                var 
_client = Client.GameState.GetClientFromID(LeagueOpt.UID);
                                if (
_client != null)
                                {

                                    
client.Send(client.Union.ShowLeagueImperialCourtList());
                                }
                            }
                        }
                        break;
                    }
                case 
Network.GamePackets.UnionPacket.Action.ReSignCoreOffical:
                    {
                        if (
client.Union != null)
                        {
                            
client.Send(client.Union.ShowLeagueImperialCourtList());
                        }
                        break;
                    }
                case 
Network.GamePackets.UnionPacket.Action.Officals:
                    {
                        if (
client.Union != null)
                        {
                            
client.Send(client.Union.ShowLeagueImperialCourt());
                        }
                        break;
                    }
                case 
Network.GamePackets.UnionPacket.Action.Bulletinmsg:
                    {
                        if (
client.Union != null)
                        {
                            if (
client.Union.IsLeader(client.Entity.UID))
                            {
                                
string msg = Encoding.UTF8.GetString(packet, 20, packet[19]);
                                
client.Union.Bulletin = msg;
                            }
                        }
                        break;
                    }
            }
        }
    }
} 

و اعمل كلاس تاني في Game/ConquerStructures و سميه Union
و اسمح الفيه و حط ده


كود:
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Conquer_Online_Server.Network;
using Conquer_Online_Server.Game.ConquerStructures;
using Conquer_Online_Server.Network.GamePackets;
using ProtoBuf;

namespace 
Conquer_Online_Server.Game.ConquerStructures
{
    public class 
Union
    
{
        public class 
Member
        
{
            public 
Member(uint UnionID)
            {
                
this.UnionID = UnionID;
            }
            public 
uint Offical = 0;
            public 
uint Harem = 0;
            public 
uint Guards = 0;
            public 
uint UnionExploits = 0;
            public 
uint ID;
            public 
string Name;
            public 
bool IsOnline
            
{
                
get
                
{
                    return 
Kernel.GamePool.ContainsKey(ID);
                }
            }
            public 
byte Level;
            public 
NobilityRank NobilityRank;
            public 
uint Mesh = 0;
            public 
byte Class;
            public 
uint UnionID;
            public 
uint GuildID;
        }
        public 
uint ID;
        
uint _goldbricks = 0;
        public 
uint GoldBricks
        
{
            
get
            
{
                return 
_goldbricks;
            }
            
set
            
{
                
_goldbricks = value;
                
UpdateDatabase("GoldBricks", value);
            }
        }
        
ulong _unionfund = 0;
        public 
ulong UnionFund
        
{
            
get
            
{
                return 
_unionfund;
            }
            
set
            
{
                
_unionfund = value;
                
UpdateDatabase("UnionFund", value);
            }
        }
        
string _declaration = "";
        public 
string Declaration
        
{
            
get
            
{
                return 
_declaration;
            }
            
set
            
{
                
_declaration = value;
            }
        }
        
string _Name;
        public 
string Name
        
{
            
get
            
{
                return 
_Name;
            }
            
set
            
{
                
_Name = value;
                foreach (var 
client in Kernel.GamePool.Values)
                {

                    
client.Send(Union.SendOverheadLeagueInfo(client));
                }

            }

        }

        
string _title = "";
        public 
string Title
        
{
            
get
            
{
                return 
_title;
            }
            
set
            
{
                
_title = value;
                foreach (var 
client in Kernel.GamePool.Values)
                {
                    if (
client.UnionID == this.ID)
                    {
                        
client.Send(Union.SendOverheadLeagueInfo(client));

                    }
                }
            }
        }
        public List<
uint> Guilds;
        public List<
Member> Members
        
{
            
get
            
{
                return 
Database.UnionTable.LoadMembers(this.ID);
            }
        }
        public 
Union(Client.GameState Owner, string name)
        {
            
Guilds = new List<uint>();
            
LeaderName = Owner.Entity.Name;
            
LeaderUID = Owner.Entity.UID;
            
this.Name = name;
            
ID = UnionPacket.UnionCounter.Next;
            
Database.UnionTable.CreateUnion(this);
            
Kernel.Unions.Add(this.ID, this);
            
Owner.Union = Kernel.Unions[this.ID];
            
Owner.UnionID = Owner.Union.ID;
            
Owner.Offical = 0;
            
Owner.Harem = 0;
            
Owner.Guards = 0;
            
Owner.Guild.UnionID = Owner.Union.ID;
            
Database.GuildTable.UpdateUnionID(Owner.Guild);
            
Owner.Send(Game.ConquerStructures.Union.SendOverheadLeagueInfo(Owner));
            
this.AddGuild(Owner);
            new 
Database.MySqlCommand(Database.MySqlCommandType.UPDATE).Update("configuration").Set("UnionID", Network.GamePackets.UnionPacket.UnionCounter.Now).Where("Server", Constants.ServerName).Execute();
        }
        public 
Union()
        {
            
Guilds = new List<uint>();

        }
        public 
uint[] CoreOfficals = new uint[8];
        public 
uint[] Harem = new uint[10];
        public 
uint[] Guards = new uint[20];
        public 
string LeaderName;
        public 
uint LeaderUID;
        
string _bulletin = "";
        public 
string Bulletin
        
{
            
get
            
{
                return 
_bulletin;
            }
            
set
            
{
                
_bulletin = value;
            }
        }
        public 
bool IsLeader(uint uid)
        {
            if (
uid == LeaderUID)
            {
                return 
true;
            }
            return 
false;
        }
        public 
bool IsKingdom()
        {
            if (
Kernel.ServerKingdom == this.ID)
            {
                return 
true;
            }
            return 
false;
        }
        public static 
void Upgrade()
        {
            
UnionPacket.CMsgLeagueOpt response;
            var 
Kingdom = Kernel.Unions.Values.OrderByDescending(p => p.GoldBricks).FirstOrDefault();
            
Kernel.ServerKingdom = Kingdom.ID;
            foreach (var 
client in Kernel.GamePool.Values)
            {
                if (
client.Union != null)
                {
                    if (
client.UnionID == Kingdom.ID)
                    {
                        
client.Union.GetPlayerRanks(client);
                        if (
client.Union.IsLeader(client.Entity.UID))
                        {
                            
response = new UnionPacket.CMsgLeagueOpt(true);
                            
response.dwParam1 = UnionPacket.Action.KingdomTitleGui;
                            
response.dwParam3 = (ushort)Kernel.ServerKingdom;
                            
client.Send(response);
                        }
                    }
                }
                
response = new UnionPacket.CMsgLeagueOpt(true);
                
response.dwParam1 = UnionPacket.Action.KingdomIcon;
                
response.dwParam3 = (ushort)Kernel.ServerKingdom;
                
client.Send(response);
                
client.Send(Union.SendOverheadLeagueInfo(client));
                
client.SendScreen(client.Entity.SpawnPacket, false);
            }


        }
        public static 
void Downgrade()
        {
            
Kernel.ServerKingdom = 0;
            foreach (var 
client in Kernel.GamePool.Values)
            {
                
client.Offical = 0;
                
client.Harem = 0;
                
client.Guards = 0;
                
UnionPacket.CMsgLeagueOpt response = new UnionPacket.CMsgLeagueOpt(true);
                
response.dwParam1 = UnionPacket.Action.KingdomIcon;
                
response.dwParam3 = (ushort)Kernel.ServerKingdom;
                
client.Send(response);
                
client.Send(Union.SendOverheadLeagueInfo(client));

            }
        }
        public 
byte[] ShowLeaguePalaceGuardsList(byte Page)
        {
            
byte[] buffer;
            List<
Game.ConquerStructures.Union.Member> Members = this.Members.Where(p => p.Guards == 512 && Guards.Contains(p.ID)).OrderByDescending(p => p.IsOnline).ToList();
            
int Count = Members.Count;
            if (
Count > (10 * Page))
            {
                
Count = 10;
                
buffer = new byte[(41 * Count) + 10 + 8];
            }
            else
            {
                
Count = Count - (10 * (Page - 1));
                
buffer = new byte[(41 * Count) + 10 + 8];
            }
            
Writer.WriteUInt16((ushort)(buffer.Length - 8), 0, buffer);
            
Writer.WriteUInt16(2628, 2, buffer);
            
Writer.WriteByte((byte)Count, 4, buffer);
            
Writer.WriteByte(Page, 5, buffer);
            
int Offset = 6;
            foreach (var 
Member in Members)
            {
                if (
Member.IsOnline)
                {
                    var 
c = Client.GameState.GetClientFromID(Member.ID);
                    
Writer.WriteUInt32((uint)c.Entity.BattlePower, Offset, buffer);
                }
                else
                {
                    
Writer.WriteUInt32((uint)0, Offset, buffer);
                }
                
Offset += 4;
                
Writer.WriteUInt32(Member.Mesh, Offset, buffer); Offset += 4;
                
Writer.WriteUInt32(Member.UnionExploits, Offset, buffer); Offset += 4;
                
Writer.WriteUInt32((uint)Member.NobilityRank, Offset, buffer); Offset += 4;
                
Writer.WriteUInt32(Member.ID, Offset, buffer); Offset += 4;
                
Writer.WriteUInt16(Member.Level, Offset, buffer); Offset += 2;
                
Writer.WriteUInt16(Member.Class, Offset, buffer); Offset += 2;
                if (
Member.IsOnline)
                {
                    
buffer[Offset] = 1;
                }
                else
                {
                    
buffer[Offset] = 0;
                }
                
Offset += 1;
                
Writer.WriteString(Member.Name, Offset, buffer); Offset += 16;
            }
            return 
buffer;
        }
        public 
byte[] ShowLeagueConcubinesList()
        {
            List<
Network.GamePackets.UnionPacket.LeagueConcubines> packets = new List<Network.GamePackets.UnionPacket.LeagueConcubines>();
            
byte[] buffer = new byte[0];
            List<
Game.ConquerStructures.Union.Member> Members = this.Members.Where(p => p.Harem > 0 && Harem.Contains(p.ID)).OrderByDescending(p => p.IsOnline).ToList();
            
Network.GamePackets.UnionPacket.LeagueConcubines Packet = null;
            
uint I = 0;
            foreach (var 
member in Members)
            {
                for (
int i = 0; i < 10; i++)
                {
                    if (
Harem[i] == member.ID)
                    {
                        if (
i == 1 || i == 2)
                        {
                            
I = (uint)i;
                        }
                        if (
i > 2)
                        {
                            
I = (uint)i - 2;
                        }
                    }
                }
                
uint ID = 0;
                if (
member.Harem == 1024)
                {
                    
ID = 4000;
                }
                if (
member.Harem == 2048)
                {
                    
ID = 4010 + I;
                }
                if (
member.Harem == 4096)
                {
                    
ID = 4020 + I;
                }
                
Packet = new Network.GamePackets.UnionPacket.LeagueConcubines()
                {
                    
UID = member.ID,
                    
RankID = ID,
                    
Name = member.Name,
                    Class = 
member.Class,
                    
Level = member.Level,
                    
Exploits = member.UnionExploits,
                    
Nobility = (uint)member.NobilityRank,
                    
Online = member.IsOnline ? (uint)1 : (uint)0,
                    
Mesh = member.Mesh,

                };
                if (
member.IsOnline)
                {
                    
Packet.BattelPower = (uint)Client.GameState.GetClientFromID(member.ID).Entity.BattlePower;
                }
                
packets.Add(Packet);

            }
            if (
packets.Count > 0)
            {
                
using (var ms = new System.IO.MemoryStream())
                {
                    
ProtoBuf.Serializer.Serialize<List<Network.GamePackets.UnionPacket.LeagueConcubines>>(ms, packets);
                    
buffer = ms.ToArray();
                    
uint value = buffer[1];
                    
int offset = 2;
                    while (
offset < buffer.Length)
                    {
                        
buffer[offset - 2] = 18;
                        
offset += buffer[offset - 1] + 2;
                    }
                }
            }
            
byte[] array = new byte[6 + 8 + buffer.Length];
            
System.Buffer.BlockCopy(buffer, 0, array, 6, buffer.Length);
            
Writer.WriteUInt16((ushort)(array.Length - 8), 0, array);
            
Writer.WriteUInt16(2634, 2, array);
            array[
4] = 8;
            return array;
        }
        public 
byte[] ShowLeagueImperialCourt()
        {
            
byte[] buffer;
            List<
Game.ConquerStructures.Union.Member> Members = this.Members.Where(p => (p.Offical > 0 && CoreOfficals.Contains(p.ID)) || p.Offical == 1).OrderByDescending(p => p.IsOnline).ToList();
            
int Count = Members.Count;
            
buffer = new byte[(43 * Count) + 10 + 8];
            
Writer.WriteUInt16((ushort)(buffer.Length - 8), 0, buffer);
            
Writer.WriteUInt16(2629, 2, buffer);
            
Writer.WriteByte(1, 4, buffer);
            
Writer.WriteUInt32((uint)Count, 5, buffer);
            
int Offset = 6;
            foreach (var 
Member in Members)
            {
                
ushort ID = 0;
                if (
Member.IsOnline)
                {
                    var 
c = Client.GameState.GetClientFromID(Member.ID);
                    
Writer.WriteUInt32((uint)c.Entity.BattlePower, Offset, buffer);
                }
                else
                {
                    
Writer.WriteUInt32((uint)0, Offset, buffer);
                }
                
Offset += 4;
                
Writer.WriteUInt32(Member.Mesh, Offset, buffer); Offset += 4;
                
Writer.WriteUInt32(Member.UnionExploits, Offset, buffer); Offset += 4;
                
Writer.WriteUInt32((uint)Member.NobilityRank, Offset, buffer); Offset += 4;
                
Writer.WriteUInt32(Member.ID, Offset, buffer); Offset += 4;
                
Writer.WriteUInt16(Member.Level, Offset, buffer); Offset += 2;
                
Writer.WriteUInt16(Member.Class, Offset, buffer); Offset += 2;
                if (
Member.Offical == 1)
                    
ID = 1000;
                if (
Member.Offical == 2)
                    
ID = 2000;
                if (
Member.Offical == 4)
                    
ID = 2010;
                if (
Member.Offical == 8)
                    
ID = 2020;
                if (
Member.Offical == 16)
                    
ID = 2030;
                if (
Member.Offical == 32)
                    
ID = 2040;
                if (
Member.Offical == 64)
                    
ID = 2050;
                if (
Member.Offical == 128)
                    
ID = 2060;
                if (
Member.Offical == 256)
                    
ID = 2070;
                
Writer.WriteUInt16(ID, Offset, buffer); Offset += 2;
                if (
Member.IsOnline)
                {
                    
buffer[Offset] = 1;
                }
                else
                {
                    
buffer[Offset] = 0;
                }
                
Offset += 1;
                
Writer.WriteString(Member.Name, Offset, buffer); Offset += 16;
            }
            return 
buffer;
        }
        public 
byte[] ShowLeagueImperialCourtList()
        {
            
byte[] buffer;
            List<
Game.ConquerStructures.Union.Member> Members = this.Members.Where(p => p.Offical > 0 & CoreOfficals.Contains(p.ID)).OrderByDescending(p => p.IsOnline).ToList();
            
int Count = Members.Count;
            
buffer = new byte[(43 * Count) + 10 + 8];
            
Writer.WriteUInt16((ushort)(buffer.Length - 8), 0, buffer);
            
Writer.WriteUInt16(2629, 2, buffer);
            
Writer.WriteUInt32((uint)Count, 5, buffer);
            
int Offset = 6;
            foreach (var 
Member in Members)
            {
                
ushort ID = 0;
                if (
Member.IsOnline)
                {
                    var 
c = Client.GameState.GetClientFromID(Member.ID);
                    
Writer.WriteUInt32((uint)c.Entity.BattlePower, Offset, buffer);
                }
                else
                {
                    
Writer.WriteUInt32((uint)0, Offset, buffer);
                }
                
Offset += 4;
                
Writer.WriteUInt32(Member.Mesh, Offset, buffer); Offset += 4;
                
Writer.WriteUInt32(Member.UnionExploits, Offset, buffer); Offset += 4;
                
Writer.WriteUInt32((uint)Member.NobilityRank, Offset, buffer); Offset += 4;
                
Writer.WriteUInt32(Member.ID, Offset, buffer); Offset += 4;
                
Writer.WriteUInt16(Member.Level, Offset, buffer); Offset += 2;
                
Writer.WriteUInt16(Member.Class, Offset, buffer); Offset += 2;
                if (
Member.Offical == 2)
                    
ID = 2000;
                if (
Member.Offical == 4)
                    
ID = 2010;
                if (
Member.Offical == 8)
                    
ID = 2020;
                if (
Member.Offical == 16)
                    
ID = 2030;
                if (
Member.Offical == 32)
                    
ID = 2040;
                if (
Member.Offical == 64)
                    
ID = 2050;
                if (
Member.Offical == 128)
                    
ID = 2060;
                if (
Member.Offical == 256)
                    
ID = 2070;
                
Writer.WriteUInt16(ID, Offset, buffer); Offset += 2;
                if (
Member.IsOnline)
                {
                    
buffer[Offset] = 1;
                }
                else
                {
                    
buffer[Offset] = 0;
                }
                
Offset += 1;
                
Writer.WriteString(Member.Name, Offset, buffer); Offset += 16;
            }
            return 
buffer;
        }
        public 
byte[] ShowLeagueGuildMemList(ushort guildid, ushort page)
        {
            
byte[] buffer = new byte[0];
            
byte Page = (byte)page;
            
ushort GuildID = guildid;
            List<
Game.ConquerStructures.Union.Member> Members = this.Members.Where(p => p.GuildID == GuildID).OrderByDescending(p => p.IsOnline).ToList();
            
int Count = Members.Count;
            if (
Count > (10 * (Page + 1)))
            {
                
Count = 10;
                
buffer = new byte[(45 * Count) + 23 + 8];
            }
            else
            {
                
Count = Count - (10 * Page);
                
buffer = new byte[(45 * Count) + 23 + 8];
            }
            
Writer.WriteUInt16((ushort)(buffer.Length - 8), 0, buffer);
            
Writer.WriteUInt16(2626, 2, buffer);
            
Writer.WriteUInt32((uint)GuildID, 4, buffer);
            if (
Kernel.Guilds[GuildID].Leader != null)
            {
                
Writer.WriteUInt32((uint)Kernel.Guilds[GuildID].Leader.ID, 8, buffer);
            }
            
Writer.WriteUInt32((uint)Members.Count, 12, buffer);
            
Writer.WriteUInt16((ushort)Count, 16, buffer);
            
buffer[18] = 1;
            
int Offset = 19;
            for (
int i = 10 * Page; i < Count; i++)
            {
                var 
Member = Members[i];
                
Writer.WriteUInt32(Member.UnionExploits, Offset, buffer); Offset += 4;
                
Writer.WriteUInt32(Member.Class, Offset, buffer); Offset += 4;
                
Writer.WriteUInt16(Member.Level, Offset, buffer); Offset += 2;
                
Writer.WriteUInt32(Member.Mesh, Offset, buffer); Offset += 4;
                if (
Member.IsOnline)
                {
                    
buffer[Offset] = 1;
                }
                else
                {
                    
buffer[Offset] = 0;
                }
                
Offset += 1;
                
Writer.WriteString(Member.Name, Offset, buffer); Offset += 16;
                if (
Member.IsOnline)
                {
                    var 
c = Client.GameState.GetClientFromID(Member.ID);
                    
Writer.WriteUInt32(c.UnionTitle, Offset, buffer); Offset += 4;

                }
                else
                {
                    
Writer.WriteUInt32(0, Offset, buffer); Offset += 4;
                }
                
Writer.WriteUInt32((uint)Member.NobilityRank, Offset, buffer); Offset += 4;
                
Writer.WriteUInt32((uint)Member.ID, Offset, buffer); Offset += 4;
                if (
Member.IsOnline)
                {
                    var 
c = Client.GameState.GetClientFromID(Member.ID);
                    
Writer.WriteUInt16((ushort)c.Entity.BattlePower, Offset, buffer);
                }
                else
                {
                    
Writer.WriteUInt16((ushort)0, Offset, buffer);
                }
                
Offset += 2;
            }
            return 
buffer;
        }
        public 
byte[] ShowLeagueMemList(ushort guildid, ushort page)
        {
            
byte[] buffer = new byte[0];
            
byte Page = (byte)page;
            
ushort GuildID = guildid;
            List<
Game.ConquerStructures.Union.Member> Members = this.Members.Where(p => p.GuildID == 0).OrderByDescending(p => p.IsOnline).ToList();
            
int Count = Members.Count;
            if (
Count > (10 * (Page + 1)))
            {
                
Count = 10;
                
buffer = new byte[(45 * Count) + 23 + 8];
            }
            else
            {
                
Count = Count - (10 * Page);
                
buffer = new byte[(45 * Count) + 23 + 8];
            }
            
Writer.WriteUInt16((ushort)(buffer.Length - 8), 0, buffer);
            
Writer.WriteUInt16(2626, 2, buffer);
            
Writer.WriteUInt32((uint)GuildID, 4, buffer);
            
Writer.WriteUInt32((uint)0, 8, buffer);
            
Writer.WriteUInt32((uint)Members.Count, 12, buffer);
            
Writer.WriteUInt16((ushort)Count, 16, buffer);
            
buffer[18] = 1;
            
int Offset = 19;
            for (
int i = 10 * Page; i < Count; i++)
            {
                var 
Member = Members[i];
                
Writer.WriteUInt32(Member.UnionExploits, Offset, buffer); Offset += 4;
                
Writer.WriteUInt32(Member.Class, Offset, buffer); Offset += 4;
                
Writer.WriteUInt16(Member.Level, Offset, buffer); Offset += 2;
                
Writer.WriteUInt32(Member.Mesh, Offset, buffer); Offset += 4;
                if (
Member.IsOnline)
                {
                    
buffer[Offset] = 1;
                }
                else
                {
                    
buffer[Offset] = 0;
                }
                
Offset += 1;
                
Writer.WriteString(Member.Name, Offset, buffer); Offset += 16;
                if (
Member.IsOnline)
                {
                    var 
c = Client.GameState.GetClientFromID(Member.ID);
                    
Writer.WriteUInt32(c.UnionTitle, Offset, buffer); Offset += 4;

                }
                else
                {
                    
Writer.WriteUInt32(0, Offset, buffer); Offset += 4;
                }
                
Writer.WriteUInt32((uint)Member.NobilityRank, Offset, buffer); Offset += 4;
                
Writer.WriteUInt32((uint)Member.ID, Offset, buffer); Offset += 4;
                if (
Member.IsOnline)
                {
                    var 
c = Client.GameState.GetClientFromID(Member.ID);
                    
Writer.WriteUInt16((ushort)c.Entity.BattlePower, Offset, buffer);
                }
                else
                {
                    
Writer.WriteUInt16((ushort)0, Offset, buffer);
                }
                
Offset += 2;
            }
            return 
buffer;
        }
        public 
byte[] SendLeagueInfo()
        {
            
byte[] buffer = new byte[362 + 8];
            if (
this != null)
            {
                
Writer.WriteUInt16((ushort)(buffer.Length - 8), 0, buffer);
                
Writer.WriteUInt16(2623, 2, buffer);
                
Writer.WriteUInt64(this.UnionFund, 4, buffer);
                
Writer.WriteUInt64(this.GoldBricks, 12, buffer);
                
Writer.WriteString(this.Name, 28, buffer);
                
Writer.WriteString(this.LeaderName, 44, buffer);
                
Writer.WriteString(this.Bulletin, 60, buffer);
                
Writer.WriteString(this.Title, 316, buffer);
            }
            return 
buffer;
        }
        public 
byte[] SendLeagueSynList(byte Page)
        {
            
byte[] buffer = new byte[0];
            
int Count = this.Guilds.Count;
            if (
Count > (15 * (Page + 1)))
            {
                
Count = 15;
                
buffer = new byte[(48 * Count) + 15 + 8];
            }
            else
            {
                
Count = Count - (15 * Page);
                
buffer = new byte[(48 * Count) + 15 + 8];
            }
            
Writer.WriteUInt16((ushort)(buffer.Length - 8), 0, buffer);
            
Writer.WriteUInt16(2625, 2, buffer);
            
Writer.WriteUInt32((uint)this.Guilds.Count, 4, buffer);
            
buffer[8] = (byte)Count;
            
buffer[10] = 1;
            
int Offset = 11;
            for (
int i = 15 * Page; i < Count; i++)
            {
                
uint ID = this.Guilds[i];
                var 
Guild = Kernel.Guilds[ID];
                
Writer.WriteUInt32(Guild.ID, Offset, buffer); Offset += 4;
                
Writer.WriteUInt64(Guild.SilverFund, Offset, buffer); Offset += 8;
                
Writer.WriteUInt16((ushort)Guild.Members.Count, Offset, buffer); Offset += 2;
                
Writer.WriteUInt16((ushort)Guild.Level, Offset, buffer); Offset += 2;
                
Writer.WriteString(Guild.Name, Offset, buffer); Offset += 16;
                
Writer.WriteString(Guild.LeaderName, Offset, buffer); Offset += 16;
            }
            
Offset += 4;
            return 
buffer;
        }
        public static 
byte[] SendOverheadLeagueInfo(Client.GameState client)
        {
            
byte[] buffer;
            
Network.GamePackets.UnionPacket.OverheadLeagueInfo Packet = null;
            if (
client.Union != null)
            {
                
Packet = new Network.GamePackets.UnionPacket.OverheadLeagueInfo()
                {
                    
UID = client.Entity.UID,
                    
UnionID = client.Union.ID,
                    
PlayerRank = client.Union.IsLeader(client.Entity.UID) ? (uint)1 : (uint)0,
                    
UnionRank = client.Union.IsKingdom() ? (uint)1 : (uint)0,
                    
UnionName = client.Union.Name,
                    
Unknown2 = 14,
                    
Unknown1 = 0,
                };
                if (
Packet.UnionRank == 1)
                {
                    
Packet.UnionName = client.Union.Title == "" ? client.Union.Name : client.Union.Title + "KDM";
                }
                
client.Entity.UnionName = Packet.UnionName;
                
client.UnionRank = (byte)Packet.PlayerRank;
                
client.UnionType = (byte)Packet.UnionRank;
                
client.UnionID = Packet.UnionID;

            }
            else
            {
                if (
client.Union != null)
                {
                    
Packet = new Network.GamePackets.UnionPacket.OverheadLeagueInfo()
                    {
                        
UID = client.Entity.UID,
                        
UnionID = 0,
                        
PlayerRank = 0,
                        
UnionRank = 0,
                        
UnionName = "",
                        
Unknown2 = 14,
                        
Unknown1 = 0,
                    };
                    
client.Entity.UnionName = Packet.UnionName;
                    
client.UnionRank = (byte)Packet.PlayerRank;
                    
client.UnionType = (byte)Packet.UnionRank;
                    
client.UnionID = Packet.UnionID;

                }
            }
            
using (var ms = new System.IO.MemoryStream())
            {
                
Serializer.Serialize(ms, Packet);
                
buffer = ms.ToArray();
            }
            
byte[] Array = new byte[buffer.Length + 12];
            
System.Buffer.BlockCopy(buffer, 0, Array, 4, buffer.Length);
            
Writer.WriteUInt16((ushort)(Array.Length - 8), 0, Array);
            
Writer.WriteUInt16(2631, 2, Array);
            if (
client.Entity.EntityFlag == EntityFlag.Player)
            {
                
client.Entity.Update((byte)Network.GamePackets.Update.UnionRank, (ushort)(client.Offical + client.Harem + client.Guards), true);
            }
            return Array;
        }
        private 
void UpdateDatabase(string column, ulong value)
        {
            new 
Database.MySqlCommand(Database.MySqlCommandType.UPDATE).Update("Unions")
                .
Set(column, value)
                .
Where("ID", this.ID)
                .
Execute();
        }
        private 
void UpdateDatabase(string column, uint value)
        {
            new 
Database.MySqlCommand(Database.MySqlCommandType.UPDATE).Update("Unions")
                .
Set(column, value)
                .
Where("ID", this.ID)
                .
Execute();
        }

        public 
void RemoveMember(Client.GameState client)
        {
            var 
C = Members.Where(p => p.ID == client.Entity.UID).FirstOrDefault();
            if (
C != null)
            {
                if (
C.UnionID == this.ID)
                {
                    
client.Union = null;
                    
client.UnionID = 0;
                    
client.Offical = 0;
                    
client.Harem = 0;
                    
client.Guards = 0;
                    
UnionPacket.CMsgLeagueOpt response = new UnionPacket.CMsgLeagueOpt(true);
                    
response.dwParam1 = UnionPacket.Action.KingdomIcon;
                    
response.dwParam3 = (ushort)Kernel.ServerKingdom;
                    
client.Send(response);
                    
client.Send(Game.ConquerStructures.Union.SendOverheadLeagueInfo(client));
                }
            }
        }
        public 
void GetMemberRankGuard(Client.GameState client)
        {
            if (
this.Guards.Contains(client.Entity.UID))
            {
                
client.Guards = 512;
            }
        }
        public 
void GetMemberRankHarem(Client.GameState client)
        {
            if (
this.Harem.Contains(client.Entity.UID))
            {
                for (
int i = 0; i < 10; i++)
                {
                    if (
Harem[i] == client.Entity.UID)
                    {
                        if (
i == 0)
                        {
                            
client.Harem = 1024;
                        }
                        else if (
i == 1 || i == 2)
                        {
                            
client.Harem = 2048;
                        }
                        else
                        {
                            
client.Harem = 4096;
                        }
                    }
                }
            }
        }
        public 
void GetMemberRankOffical(Client.GameState client)
        {
            if (
IsLeader(client.Entity.UID))
            {
                
client.Offical = 1;
                return;
            }
            if (
this.CoreOfficals.Contains(client.Entity.UID))
            {
                for (
int i = 0; i < 8; i++)
                {
                    if (
CoreOfficals[i] == client.Entity.UID)
                    {
                        if (
i == 0)
                        {
                            
client.Offical = 2;
                        }
                        else if (
i == 1)
                        {
                            
client.Offical = 4;
                        }
                        else if (
i == 2)
                        {
                            
client.Offical = 8;
                        }
                        else if (
i == 3)
                        {
                            
client.Offical = 16;
                        }
                        else if (
i == 4)
                        {
                            
client.Offical = 32;
                        }
                        else if (
i == 5)
                        {
                            
client.Offical = 64;
                        }
                        else if (
i == 6)
                        {
                            
client.Offical = 128;
                        }
                        else if (
i == 7)
                        {
                            
client.Offical = 256;
                        }
                    }
                }
            }
        }
        public 
void GetPlayerRanks(Client.GameState client)
        {
            if (
this.IsKingdom())
            {
                
GetMemberRankHarem(client);
                
GetMemberRankOffical(client);
                
GetMemberRankGuard(client);
            }
        }
        public 
void AddGuild(Client.GameState client)
        {
            if (
Guilds.Contains(client.Guild.ID))
            {
                
Guilds.Remove(client.Guild.ID);
            }
            
Guilds.Add(client.Guild.ID);
            
client.Guild.UnionID = ID;
            
Database.GuildTable.UpdateUnionID(client.Guild);
            foreach (var 
mem in client.Guild.Members.Values)
            {


            }
        }
        public 
void RemoveGuild(uint GuildID)
        {
            var 
Guild = Kernel.Guilds[GuildID];
            if (
Guild != null)
            {
                if (
Guilds.Contains(GuildID))
                {
                    
Guild.UnionID = 0;
                    
Database.GuildTable.UpdateUnionID(Guild);
                    
Guilds.Remove(GuildID);
                    foreach (var 
mem in Kernel.Guilds[GuildID].Members.Values)
                    {
                        if (
mem.IsOnline)
                        {
                            if (
mem.Client != null)
                            {
                                
RemoveMember(mem.Client);
                            }
                        }
                    }

                }
            }
        }
    }
} 

و اعمل كلاس في Client و سميه UnionTable.cs
و اسمح الفيه و حط ده

كود:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Conquer_Online_Server.Game.ConquerStructures;

namespace 
Conquer_Online_Server.Database
{
    public class 
UnionTable
    
{
        public static List<
Game.ConquerStructures.Union.Member> LoadMembers(uint UnionID)
        {
            List<
Game.ConquerStructures.Union.Member> Members = new List<Game.ConquerStructures.Union.Member>();
            
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("entities").Where("UnionID", UnionID))
            
using (var reader = new MySqlReader(cmd))
            {
                while (
reader.Read())
                {
                    var 
member = new Game.ConquerStructures.Union.Member(UnionID);
                    
member.ID = reader.ReadUInt32("uid");
                    
member.Name = reader.ReadString("name");
                    
member.Level = reader.ReadByte("level");
                    if (
Game.ConquerStructures.Nobility.Board.ContainsKey(member.ID))
                    {
                        
member.NobilityRank = Game.ConquerStructures.Nobility.Board[member.ID].Rank;
                    }
                    
member.Class = reader.ReadByte("Class");
                    
member.UnionExploits = reader.ReadUInt32("UnionExploits");
                    
member.Offical = reader.ReadUInt16("Offical");
                    
member.Harem = reader.ReadUInt16("Harem");
                    
member.Guards = reader.ReadUInt16("Guards");
                    
member.GuildID = reader.ReadUInt32("guildid");
                    
member.Mesh = uint.Parse(reader.ReadUInt16("Face").ToString() + reader.ReadUInt16("Body").ToString());
                    
Members.Add(member);
                }
            }
            return 
Members;
        }
        public static 
void Load()
        {
            
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("Unions"))
            
using (var reader = new MySqlReader(cmd))
            {
                while (
reader.Read())
                {
                    var 
Union = new Game.ConquerStructures.Union();
                    
Union.ID = reader.ReadUInt32("ID");
                    
Union.GoldBricks = reader.ReadUInt32("GoldBricks");
                    
Union.UnionFund = reader.ReadUInt64("UnionFund");
                    
Union.Name = reader.ReadString("Name");
                    
Union.Title = reader.ReadString("Title");
                    
Union.LeaderName = reader.ReadString("LeaderName");
                    
Union.LeaderUID = reader.ReadUInt32("LeaderUID");
                    
Union.Bulletin = reader.ReadString("Bulletin");
                    
Union.Declaration = reader.ReadString("Declaration");
                    foreach (var 
guild in Kernel.Guilds.Values)
                    {
                        if (
guild.UnionID == Union.ID)
                        {
                            
Union.Guilds.Add(guild.ID);
                        }
                    }
                    
string[] Officals = reader.ReadString("CoreOfficals").Split('#');
                    
Union.CoreOfficals[0] = uint.Parse(Officals[0]);
                    
Union.CoreOfficals[1] = uint.Parse(Officals[1]);
                    
Union.CoreOfficals[2] = uint.Parse(Officals[2]);
                    
Union.CoreOfficals[3] = uint.Parse(Officals[3]);
                    
Union.CoreOfficals[4] = uint.Parse(Officals[4]);
                    
Union.CoreOfficals[5] = uint.Parse(Officals[5]);
                    
Union.CoreOfficals[6] = uint.Parse(Officals[6]);
                    
Union.CoreOfficals[7] = uint.Parse(Officals[7]);
                    
string[] Harem = reader.ReadString("Harem").Split('#');
                    
Union.Harem[0] = uint.Parse(Harem[0]);
                    
Union.Harem[1] = uint.Parse(Harem[1]);
                    
Union.Harem[2] = uint.Parse(Harem[2]);
                    
Union.Harem[3] = uint.Parse(Harem[3]);
                    
Union.Harem[4] = uint.Parse(Harem[4]);
                    
Union.Harem[5] = uint.Parse(Harem[5]);
                    
Union.Harem[6] = uint.Parse(Harem[6]);
                    
Union.Harem[7] = uint.Parse(Harem[7]);
                    
Union.Harem[8] = uint.Parse(Harem[8]);
                    
Union.Harem[9] = uint.Parse(Harem[9]);
                    
string[] Guards = reader.ReadString("Guards").Split('#');
                    
Union.Guards[0] = uint.Parse(Guards[0]);
                    
Union.Guards[1] = uint.Parse(Guards[1]);
                    
Union.Guards[2] = uint.Parse(Guards[2]);
                    
Union.Guards[3] = uint.Parse(Guards[3]);
                    
Union.Guards[4] = uint.Parse(Guards[4]);
                    
Union.Guards[5] = uint.Parse(Guards[5]);
                    
Union.Guards[6] = uint.Parse(Guards[6]);
                    
Union.Guards[7] = uint.Parse(Guards[7]);
                    
Union.Guards[8] = uint.Parse(Guards[8]);
                    
Union.Guards[9] = uint.Parse(Guards[9]);
                    
Union.Guards[10] = uint.Parse(Guards[10]);
                    
Union.Guards[11] = uint.Parse(Guards[11]);
                    
Union.Guards[12] = uint.Parse(Guards[12]);
                    
Union.Guards[13] = uint.Parse(Guards[13]);
                    
Union.Guards[14] = uint.Parse(Guards[14]);
                    
Union.Guards[15] = uint.Parse(Guards[15]);
                    
Union.Guards[16] = uint.Parse(Guards[16]);
                    
Union.Guards[17] = uint.Parse(Guards[17]);
                    
Union.Guards[18] = uint.Parse(Guards[18]);
                    
Union.Guards[19] = uint.Parse(Guards[19]);
                    
Kernel.Unions.Add(Union.ID, Union);
                }
            }
        }
        public static 
void CreateUnion(Union union)
        {
            
using (var cmd = new MySqlCommand(MySqlCommandType.INSERT).Insert("Unions")
                 .
Insert("ID", union.ID)
                 .
Insert("GoldBricks", union.GoldBricks)
                 .
Insert("UnionFund", union.UnionFund)
                 .
Insert("Name", union.Name)
                 .
Insert("Title", union.Title)
                 .
Insert("LeaderName", union.LeaderName)
                 .
Insert("LeaderUID", union.LeaderUID)
                 .
Insert("Bulletin", "")
                 .
Insert("Declaration", ""))
                
cmd.Execute();
        }
        public static 
void UpdateHarem(Union union)
        {
            var 
builder = new StringBuilder();
            
builder.Append
                
(
                
union.Harem[0] + "#" +
                
union.Harem[1] + "#" +
                
union.Harem[2] + "#" +
                
union.Harem[3] + "#" +
                
union.Harem[4] + "#" +
                
union.Harem[5] + "#" +
                
union.Harem[6] + "#" +
                
union.Harem[7] + "#" +
                
union.Harem[8] + "#" +
                
union.Harem[9]
                );
            
using (var cmd = new MySqlCommand(MySqlCommandType.UPDATE).Update("Unions")
                 .
Set("Harem", builder.ToString()).Where("ID", union.ID))
                
cmd.Execute();
        }
        public static 
void UpdateCoreOfficals(Union union)
        {
            var 
builder = new StringBuilder();
            
builder.Append
                
(
                
union.CoreOfficals[0] + "#" +
                
union.CoreOfficals[1] + "#" +
                
union.CoreOfficals[2] + "#" +
                
union.CoreOfficals[3] + "#" +
                
union.CoreOfficals[4] + "#" +
                
union.CoreOfficals[5] + "#" +
                
union.CoreOfficals[6] + "#" +
                
union.CoreOfficals[7]
                );
            
using (var cmd = new MySqlCommand(MySqlCommandType.UPDATE).Update("Unions")
                 .
Set("CoreOfficals", builder.ToString()).Where("ID", union.ID))
                
cmd.Execute();
        }
        public static 
void UpdateGuards(Union union)
        {
            var 
builder = new StringBuilder();
            
builder.Append
                
(
                
union.Guards[0] + "#" +
                
union.Guards[1] + "#" +
                
union.Guards[2] + "#" +
                
union.Guards[3] + "#" +
                
union.Guards[4] + "#" +
                
union.Guards[5] + "#" +
                
union.Guards[6] + "#" +
                
union.Guards[7] + "#" +
                
union.Guards[8] + "#" +
                
union.Guards[9] + "#" +
                
union.Guards[10] + "#" +
                
union.Guards[11] + "#" +
                
union.Guards[12] + "#" +
                
union.Guards[13] + "#" +
                
union.Guards[14] + "#" +
                
union.Guards[15] + "#" +
                
union.Guards[16] + "#" +
                
union.Guards[17] + "#" +
                
union.Guards[18] + "#" +
                
union.Guards[19]
                );
            
using (var cmd = new MySqlCommand(MySqlCommandType.UPDATE).Update("Unions")
                 .
Set("Guards", builder.ToString()).Where("ID", union.ID))
                
cmd.Execute();
        }
        public static 
void UpdateLeader(Union union)
        {

            
using (var cmd = new MySqlCommand(MySqlCommandType.UPDATE).Update("Unions")
                 .
Set("LeaderName", union.LeaderName).Set("LeaderUID", union.LeaderUID).Where("ID", union.ID))
                
cmd.Execute();
        }
    }
} 

و بعد كده روح Network/PacketHandler
و ابحث عن switch (ID)
و ضيف تحت القس علي طول ده

كود:
#region Union
                
case 2622:
                    {
                        
UnionPacket.Prosses(packet, client);
                        break;
                    }
                case 
11:
                    {
                        
byte[] pac = new byte[23 + 8];
                        
Writer.WriteUInt32(23, 0, pac);
                        
Writer.WriteUInt32(2622, 2, pac);
                        
Writer.WriteUInt32(8, 4, pac);
                        
Writer.WriteUInt32(3, 6, pac);// 3 = kingdom 2 = union
                        
Writer.WriteUInt32(3, 14, pac);// 3 = kingdom 2 = union
                        
client.Send(pac);
                        break;
                    }
                case 
12://خروج من يونيون
                    
{
                        
byte[] pac = new byte[23 + 8];
                        
Writer.WriteUInt32(23, 0, pac);
                        
Writer.WriteUInt32(2622, 2, pac);
                        
Writer.WriteUInt32(8, 4, pac);
                        
Writer.WriteUInt32(3, 14, pac);// 3 = kingdom 2 = union
                        
client.Send(pac);
                        break;
                    }
                
#endregion 

و بعد كده Network/GamePackets و افتح Update
ابحث عن دي

كود:
public const byte 

و ترزع ده فيها

كود:
UnionRank = 83,
 
MilitaryRank = 82, 

و روح Clinet و افتح GameState او GameClinet علي حسب سورسك
ابحث عن ده

كود:
public bool ChatBlock; 

ضيف ده تحتو علي طول
كود:
private string _unionname = "";
        public 
string UnionName
        
{
            
get
            
{

                return 
_unionname;
            }
            
set
            
{
                
_unionname = value;
                
Entity.WriteStringList(new List<string>() { Entity.Name, "", Entity.ClanName, "", "", "", _unionname }, 284, Entity.SpawnPacket);
                
SendScreen(Entity.SpawnPacket, false);
            }
        }
        
uint _UnionID;
        public 
uint UnionID
        
{
            
get
            
{
                return 
_UnionID;
            }
            
set
            
{
                
_UnionID = value;
                
Entity.SpawnPacket[270] = (byte)_UnionID;
                
Entity.UpdateDatabase("UnionID", _UnionID);
                
SendScreen(Entity.SpawnPacket, false);
            }
        }
        public 
byte UnionRank
        
{
            
set
            
{
                
Entity.SpawnPacket[282] = value;
                
SendScreen(Entity.SpawnPacket, false);
            }

        }
        public 
byte UnionType
        
{
            
set
            
{

                
Entity.SpawnPacket[283] = value;
                
SendScreen(Entity.SpawnPacket, false);
            }

        }
        public 
uint UnionTitle
        
{
            
get
            
{
                if (
Union != null)
                {
                    if (
Union.IsKingdom())
                    {
                        return (
uint)(Offical + Harem + Guards);

                    }
                }
                return 
0;
            }
        }
        
uint _UnionExploits;
        public 
uint UnionExploits
        
{
            
get
            
{
                return 
_UnionExploits;
            }
            
set
            
{
                
_UnionExploits = value;
                
Entity.UpdateDatabase("UnionExploits", _UnionExploits);
                
byte i = 0;
                if (
_UnionExploits >= 200)
                    
i += 1;
                if (
_UnionExploits >= 500)
                    
i += 1;
                if (
_UnionExploits >= 1000)
                    
i += 1;
                if (
_UnionExploits >= 1500)
                    
i += 1;
                if (
_UnionExploits >= 2100)
                    
i += 1;
                if (
_UnionExploits >= 2800)
                    
i += 1;
                if (
_UnionExploits >= 3700)
                    
i += 1;
                if (
_UnionExploits >= 4700)
                    
i += 1;
                if (
_UnionExploits >= 6000)
                    
i += 1;
                if (
_UnionExploits >= 7500)
                    
i += 1;
                if (
_UnionExploits >= 10000)
                    
i += 1;
                if (
_UnionExploits >= 15000)
                    
i += 1;
                if (
_UnionExploits >= 23000)
                    
i += 1;
                
Entity.SpawnPacket[274] = i;
                if (
Entity.EntityFlag == EntityFlag.Player)
                {
                    
Entity.Update((byte)Network.GamePackets.Update.MilitaryRank, i, true);
                }
            }
        }
        
ushort _Offical;
        public 
ushort Offical
        
{
            
get
            
{
                return 
_Offical;
            }
            
set
            
{
                
_Offical = value;
                
Entity.UpdateDatabase("Offical", _Offical);
                
Writer.WriteUInt16((ushort)(Offical + Harem + Guards), 278, Entity.SpawnPacket);
                if (
Entity.EntityFlag == EntityFlag.Player)
                {
                    
Entity.Update((byte)Update.UnionRank, (ushort)(Offical + Harem + Guards), true);
                }
                
SendScreen(Entity.SpawnPacket, false);

            }
        }
        
ushort _Harem;
        public 
ushort Harem
        
{
            
get
            
{
                return 
_Harem;
            }
            
set
            
{
                
_Harem = value;
                
Entity.UpdateDatabase("Harem", _Harem);
                
Writer.WriteUInt16((ushort)(Offical + Harem + Guards), 278, Entity.SpawnPacket);
                if (
Entity.EntityFlag == EntityFlag.Player)
                {
                    
Entity.Update((byte)Update.UnionRank, (ushort)(Offical + Harem + Guards), true);
                }
                
SendScreen(Entity.SpawnPacket, false);
            }
        }
        
ushort _Guards;
        public 
ushort Guards
        
{
            
get
            
{
                return 
_Guards;
            }
            
set
            
{
                
_Guards = value;
                
Entity.UpdateDatabase("Guards", _Guards);
                
Writer.WriteUInt16((ushort)(Offical + Harem + Guards), 278, Entity.SpawnPacket);
                if (
Entity.EntityFlag == EntityFlag.Player)
                {
                    
Entity.Update((byte)Update.UnionRank, (ushort)(Offical + Harem + Guards), true);
                }
                
SendScreen(Entity.SpawnPacket, false);
            }
        }

        public 
Game.ConquerStructures.Union Union;

        public static 
GameState GetClientFromID(uint p)
        {
            foreach (var 
c in Kernel.GamePool.Values)
            {
                if (
c.Entity.UID == p)
                {
                    return 
c;

                }
            }
            return 
null;
        }

        public static 
GameState GetClientFromName(string Name)
        {
            foreach (var 
c in Kernel.GamePool.Values)
            {
                if (
c.Entity.Name == Name)
                {
                    return 
c;

                }
            }
            return 
null;
        } 

بعد كده افتح Kernel ضيف ده فيه

كود:
public static Dictionary<uint, Conquer_Online_Server.Game.ConquerStructures.Union> Unions = new Dictionary<uint, Conquer_Online_Server.Game.ConquerStructures.Union>(10000); 

لنزل فيه لحد الاخير خالص و ضيف ده

كود:
public static uint ServerKingdom = 0; 

بعد كده روح Game/Entity ابحث عن ده

كود:
public void Die(UInt32 killer) 

انزل لحد الكود ده

كود:
private void UpdateDatabase(string column, byte value) 

و ضيف تحتو ده


كود:
public void UpdateDatabase(string column, long value)
        {
            new 
Database.MySqlCommand(Conquer_Online_Server.Database.MySqlCommandType.UPDATE).Update("entities").Set(column, value).Where("UID", UID).Execute();
        } 

في نفس الكلاس ابحث عن ده


كود:
public string Name 

ضيف ده فقيه علي طول


كود:
private string _unionname = "";
        public 
string UnionName
        
{
            
get
            
{
                return 
_unionname;
            }
            
set
            
{
                
_unionname = value;
                
Entity.WriteStringList(new List<string>() { Name, "", ClanName, "", "", "", _unionname }, 308, SpawnPacket);
                
Owner.SendScreen(SpawnPacket, false);
            }
        } 

بعد كده روح Game/ConquerStructures/Society/Guild
ابحث


كود:
public void AddMember 

بدلو بده

كود:
public void AddMember(Client.GameState client)
        {
            if (
client.AsMember == null && client.Guild == null)
            {
                if (
client.Union != null)
                {
                    if (!
client.Union.Guilds.Contains(ID))
                    {
                        var 
union = Kernel.Unions[client.UnionID];
                        
union.RemoveMember(client);
                    }
                }
                if (
UnionID != 0)
                {
                    if (
Kernel.Unions[UnionID] != null)
                    {

                    }
                }
                
client.AsMember = new Member(ID)
                {
                    
ID = client.Entity.UID,
                    
Level = client.Entity.Level,
                    
Name = client.Entity.Name,
                    
Rank = Conquer_Online_Server.Game.Enums.GuildMemberRank.Member,
                    
Mesh = client.Entity.Mesh
                
};
                if (
Nobility.Board.ContainsKey(client.Entity.UID))
                {
                    
client.AsMember.Gender = Nobility.Board[client.Entity.UID].Gender;
                    
client.AsMember.NobilityRank = Nobility.Board[client.Entity.UID].Rank;
                }
                
MemberCount++;
                
client.Guild = this;
                
client.Entity.GuildID = (ushort)client.Guild.ID;
                
client.Entity.GuildRank = (ushort)client.AsMember.Rank;

                
client.Entity.GuildBattlePower = GetSharedBattlepower(client.AsMember.Rank);
                for (
int i = 0; i < client.ArsenalDonations.Length; i++)
                    
client.ArsenalDonations[i] = 0;
                
Database.EntityTable.UpdateGuildID(client);
                
Database.EntityTable.UpdateGuildRank(client);
                
Members.Add(client.Entity.UID, client.AsMember);
                
SendGuild(client);
                
client.Screen.FullWipe();
                
client.Screen.Reload(null);
                
SendGuildMessage(new Message(client.AsMember.Name + " has joined our guild.", System.Drawing.Color.Black, Message.Guild));

                
Network.GamePackets.GuildMinDonations mindonation = new GuildMinDonations(31);
                
mindonation.AprendGuild(this);
                
client.Send(mindonation.ToArray());
            }
        } 

و ابحث عن ده

كود:
public void SendMembers 

و بدل بده

كود:
public void SendMembers(Client.GameState client, ushort page)
        {
            
ulong timernow = (ulong)DateTime.Now.Ticks;
            
MemoryStream strm = new MemoryStream();
            
BinaryWriter wtr = new BinaryWriter(strm);
            
wtr.Write((ushort)0);
            
wtr.Write((ushort)2102);
            
wtr.Write((uint)0);
            
wtr.Write((uint)page);
            
int left = (int)MemberCount - page;
            if (
left > 12) left = 12;
            if (
left < 0) left = 0;
            
wtr.Write((uint)left);
            
int count = 0;
            
int maxmem = page + 12;
            
int minmem = page;
            List<
Member> online = new List<Member>(250);
            List<
Member> offline = new List<Member>(250);
            foreach (
Member member in Members.Values)
            {
                if (
member.IsOnline)
                    
online.Add(member);
                else
                    
offline.Add(member);
            }
            
online.OrderByDescending((mem) => mem.Rank);
            var 
unite = online.Union<Member>(offline);
            
byte[] name = null;
            foreach (
Member member in unite)
            {
                if (
count >= minmem && count < maxmem)
                {
                    
name = System.Text.Encoding.Default.GetBytes(member.Name);
                    for (
int j = 0; j < 16; j++)
                    {
                        if (
name.Length > j) wtr.Write(name[j]);
                        else 
wtr.Write((byte)0);
                    }
                    
wtr.Write((uint)member.NobilityRank);
                    
// wtr.Write((uint)member.Gender);
                    
if (member.Gender == 3)
                        
wtr.Write((uint)(member.Gender - 2));
                    else
                        
wtr.Write((uint)(member.Gender + 1));
                    
wtr.Write((uint)member.Level);
                    
wtr.Write((uint)member.Rank);
                    
wtr.Write((uint)0); // EXP
                    //wtr.Write((uint)member.SilverDonation + 1);
                    
wtr.Write((uint)member.ArsenalDonation);
                    
wtr.Write((uint)(member.IsOnline ? 1 : 0));
                    
wtr.Write((uint)0); // unknown
                    //  if (member.IsOnline) 
                    //      wtr.Write((uint)member.Client.Entity.Class); // class
                    //  else 
                    //wtr.Write((uint)member.Class); // class
                    
if (member.IsOnline) wtr.Write((uint)member.Client.Entity.Class); // class
                    
else wtr.Write((uint)Database.EntityTable.GetClass(member.Name)); // class
                    
wtr.Write((uint)(((timernow - member.LastLogin) / 10000000))); // Offline time (in secoudes)
                    
wtr.Write((uint)client.Entity.Mesh);//mesh
                
}
                
count++;
            }

            
int packetlength = (int)strm.Length;
            
strm.Position = 0;
            
wtr.Write((ushort)packetlength);
            
strm.Position = strm.Length;
            
wtr.Write(Encoding.Default.GetBytes("TQServer"));
            
strm.Position = 0;
            
byte[] buf = new byte[strm.Length];
            
strm.Read(buf, 0, buf.Length);
            
wtr.Close();
            
strm.Close();
            
client.Send(buf);
        } 

و ابحث عن ده

كود:
public void Disband() 

و ضيف تحت القس ده

كود:
if (Kernel.Unions.ContainsKey(UnionID))
            {
                
Kernel.Unions[UnionID].RemoveGuild(this.ID);
            } 

و ابحث عن ده

كود:
public void AddAlly(string name) 

فقيه علي طول ضيف ده

كود:
public uint UnionID { get; set; } 

بعد كده روح Database/GuildTable

و ابحث عن

كود:
guild.CTFdonationCPsold = reader.ReadUInt32("CTFdonationCPsold"); 

وضيف ده تحتو علي طول

كود:
guild.UnionID = reader.ReadUInt32("UnionID"); 

و في نفس الكلاس ابحث عن ده و ركز في الكلام الجي

كود:
public static void Create(Guild guild) 

تحتيه هتلاقي الكود ده


كود:
using (var cmd = new MySqlCommand(MySqlCommandType.INSERT).Insert("guilds")
                .
Insert("ID", guild.ID).Insert("name", guild.Name).Insert("Bulletin", "")
                .
Insert("SilverFund", 500000).Insert("LeaderName", guild.LeaderName))
                
cmd.Execute(); 

هتبدلو ب ده

كود:
using (var cmd = new MySqlCommand(MySqlCommandType.INSERT).Insert("guilds")
                 .
Insert("ID", guild.ID).Insert("name", guild.Name).Insert("Bulletin", "")
                 .
Insert("SilverFund", 500000).Insert("UnionID", guild.UnionID).Insert("LeaderName", guild.LeaderName))
                
cmd.Execute();
        } 

و ابحث عن ده

كود:
public static void ChangeName 

3

ضيف ده فقيه علي طول

كود:
public static void UpdateUnionID(Guild guild)
        {
            
using (var cmd = new MySqlCommand(MySqlCommandType.UPDATE).Update("guilds")
               .
Set("UnionID", guild.UnionID)
                .
Where("id", guild.ID))
                
cmd.Execute();
        } 

و بعد كده روح Database/EntityTable

و ابحث عن ده


كود:
 client.Entity.Atributes = reader.ReadUInt16("Atributes"); 

و ضيف فقيها دي

كود:
client.UnionID = reader.ReadUInt32("UnionID");
client.UnionExploits = reader.ReadUInt32("UnionExploits"); 

في نفس الكلاس ابحث عن ده

كود:
client.Entity.GuildRank = (ushort)client.AsMember.Rank; 

و انزل لحد الكود ده

كود:
client.Guild = null;
                        } 

ضيف تحت القس علي طول ده

كود:
if (client.Guild != null)
                    {
                        if (
client.Guild.UnionID != 0)
                        {
                            if (
Kernel.Unions.ContainsKey(client.Guild.UnionID))
                            {
                                
client.Union = Kernel.Unions[client.Guild.UnionID];
                                if (
client.UnionID != client.Guild.UnionID)
                                {
                                    if (
client.UnionID != 0)
                                    {

                                    }
                                    
client.UnionID = client.Guild.UnionID;
                                    
client.Offical = 0;
                                    
client.Harem = 0;
                                    
client.Guards = 0;
                                }
                            }
                            else
                            {
                                
client.UnionID = 0;
                                
client.Offical = 0;
                                
client.Harem = 0;
                                
client.Guards = 0;
                            }
                        }
                        else
                        {
                            if (
client.UnionID != 0)
                            {
                            }
                            
client.UnionID = 0;
                            
client.Offical = 0;
                            
client.Harem = 0;
                            
client.Guards = 0;
                        }
                    }
                    else
                    {
                        if (
client.UnionID != 0)
                        {
                            if (
Kernel.Unions.ContainsKey(client.UnionID))
                            {
                                
client.Union = Kernel.Unions[client.UnionID];
                            }
                        }
                        else
                        {
                            
client.UnionID = 0;
                            
client.Offical = 0;
                            
client.Harem = 0;
                            
client.Guards = 0;
                        }
                    }
                    if (
client.Union != null)
                    {
                        
client.Union.GetPlayerRanks(client); 

في نفس الكلاس ابحث عن ده

كود:
public static void UpdateData(Client.GameState client, string column, object value) 

وضيف تحتيه علي طول ده

كود:
public static void SaveUnionID(Client.GameState client, uint ID)
        {
            
UpdateData(client, "UnionID", ID);
        }
        public static 
void SaveUnionR(Client.GameState client, Game.Enums.GuildMemberRank ID)
        {
            
UpdateData(client, "UnionRank", (ushort)ID);
        } 

بعد كده روح Program

ابحث عن ده
كود:
EntityUID = new Counter(r.ReadUInt32("EntityID")); 

ضيف ده فقيه علي طول

كود:
 Network.GamePackets.UnionPacket.UnionCounter =
new 
Conquer_Online_Server.Counter(r.ReadUInt32("UnionID")); 

في نفس الكلاس ابحث عن ده

كود:
Database.NobilityTable.Load(); 

وضيف ده تحتيه علي طول


كود:
Database.UnionTable.Load(); 

اخيرا الانبي سي روح علي Npcs

ابحث عن ده

كود:
case 10003: 

و بدلوه بده


كود:
#region GuildDirector
                            
case 10003:
                                {
                                    switch (
npcRequest.OptionID)
                                    {
                                        case 
0:
                                            {
                                                
dialog.Text("Hello there. Do you want to create a new guild? You need level 90 and 500,000 Money and you have to not belong to any guild. If you are a guild leader.");
                                                
dialog.Option("Create Guild.", 1);
                                                
dialog.Option("Open DeputyLeader", 3);
                                                if (
client.Union == null)
                                                {
                                                    
dialog.Option("Create Union.", 31);
                                                }
                                                else
                                                {
                                                    
dialog.Option("Change UnionName.", 45);
                                                }
                                                
dialog.Option("Move leadership.", 6);
                                                
dialog.Option("Change Guild name.", 17);
                                                
dialog.Option("Disband Guild.", 9);
                                                
dialog.Option("I don't have that.", 255);
                                                
//dialog.Option("Weird  Named Deputy leader.", 16);
                                                //dialog.Option("Remove ins From my items.", 15);
                                                
dialog.Send();
                                                break;
                                            }
                                        case 
31:
                                            {
                                                
client.Send(new Data(true) { ID = Network.GamePackets.Data.OpenWindow, dwParam = 693, UID = client.Entity.UID });
                                                break;
                                            }
                                        case 
45:
                                            {
                                                if (
client.Union != null)
                                                {
                                                    
UnionPacket.CMsgLeagueOpt packet = new UnionPacket.CMsgLeagueOpt(true);
                                                    
packet.dwParam1 = UnionPacket.Action.ChangeNameGui;
                                                    
packet.dwParam3 = client.UnionID;
                                                    
client.Send(packet);
                                                }
                                                break;
                                            }
                                        default:
                                            {
                                                var 
member = client.Guild.Members.Values.Where(x => x.Name.StartsWith("~")).OrderBy(z => z.ID).ToArray()[npcRequest.OptionID - 100];
                                                if (
member.Rank != Conquer_Online_Server.Game.Enums.GuildMemberRank.Member)
                                                {
                                                    
dialog.Text("You cannot promote this member anymore.");
                                                    
dialog.Option("Ah, nevermind.", 255);
                                                    
dialog.Send();
                                                    return;
                                                }
                                                else
                                                {
                                                    
member.Rank = Conquer_Online_Server.Game.Enums.GuildMemberRank.DeputyLeader;
                                                    if (
member.IsOnline)
                                                    {
                                                        
client.Guild.SendGuild(member.Client);
                                                        
member.Client.Entity.GuildRank = (ushort)member.Rank;
                                                        
member.Client.Screen.FullWipe();
                                                        
member.Client.Screen.Reload(null);
                                                    }
                                                    
dialog.Text("You have prometed " + member.Name + "to be a DeputyLeader");
                                                    
dialog.Option("cool!", 255);
                                                    
dialog.Send();
                                                    
client.Guild.RanksCounts[(ushort)Game.Enums.GuildMemberRank.DeputyLeader]++;
                                                    
Database.EntityTable.UpdateGuildRank(member.ID, member.Rank);
                                                }
                                                break;
                                            }
                                        case 
17:
                                            {
                                                if (
client.Guild != null && client.AsMember.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader && client.Entity.Money >= 500000)
                                                {
                                                    
dialog.Text("Name your guild. The name must have less than 16 characters of any type.");
                                                    
dialog.Text("It's for 215 Cps.");
                                                    
dialog.Input("Here:", 18, 16);
                                                    
dialog.Option("Ah, nevermind.", 255);
                                                    
dialog.Send();
                                                }
                                                else
                                                {
                                                    
dialog.Text("You don't meet the requierments.");
                                                    
dialog.Option("Ahh.", 255);
                                                    
dialog.Send();
                                                }
                                                break;
                                            }
                                        case 
18:
                                            {
                                                if (
client.Guild != null && client.AsMember.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader && client.Entity.ConquerPoints >= 215)
                                                {
                                                    if (
npcRequest.Input != "" && npcRequest.Input.Length > 3 && npcRequest.Input.Length < 16)
                                                    {
                                                        if (!
Guild.CheckNameExist(npcRequest.Input))
                                                        {
                                                            
Database.GuildTable.ChangeName(client, npcRequest.Input);
                                                            
client.Guild.Name = npcRequest.Input;
                                                            
client.Guild.SendGuild(client);
                                                            
client.Guild.SendName(client);
                                                            
client.Screen.FullWipe();
                                                            
client.Screen.Reload(null);
                                                        }
                                                        else
                                                        {
                                                            
dialog.Text("There is a Guild Already with this Name i'm sorry.");
                                                            
dialog.Option("Choose another Name", 1);
                                                            
dialog.Option("Ok Sorry.", 255);
                                                            
dialog.Send();
                                                        }
                                                    }
                                                    else
                                                    {
                                                        
dialog.Text("There is a Guild bad Name i'm sorry.");
                                                        
dialog.Option("Try Again", 1);
                                                        
dialog.Option("Ok Sorry.", 255);
                                                        
dialog.Send();
                                                    }
                                                }
                                                else
                                                {
                                                    
dialog.Text("Error >>> [Not in a Guild] , [Not GuildLeader], [Dont have 215 CPS]");
                                                    
dialog.Option("Try Again", 1);
                                                    
dialog.Option("Ok Sorry.", 255);
                                                    
dialog.Send();
                                                }
                                                break;
                                            }
                                        case 
16:
                                            {
                                                if (
client.Guild != null && client.AsMember.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader)
                                                {
                                                    var 
invchar = client.Guild.Members.Values.Where(x => x.Name.StartsWith("~")).OrderBy(z => z.ID).ToArray();
                                                    if (
invchar.Length == 0)
                                                    {
                                                        
dialog.Text("You don't have any members that start with weird char!.");
                                                        
dialog.Option("Ahh.", 255);
                                                        
dialog.Send();
                                                    }
                                                    else
                                                    {
                                                        
dialog.Text("choose one!.");
                                                        for (
int i = 0; i < invchar.Length; i++)
                                                        {
                                                            
dialog.Option(invchar[i].Name, (byte)(100 + i));
                                                        }
                                                        
dialog.Send();
                                                    }

                                                }
                                                else
                                                {
                                                    
dialog.Text("You don't meet the requierments.");
                                                    
dialog.Option("Ahh.", 255);
                                                    
dialog.Send();
                                                }
                                                break;
                                            }
                                        case 
15:
                                            {
                                                if (
client.Guild != null)
                                                {
                                                    
dialog.Text("Sorry you Already in guild i cant help you, need to Quit so i can help You.");
                                                    
dialog.Option("Ahh.", 255);
                                                    
dialog.Send();
                                                }
                                                else
                                                {
                                                    
//Conquer_Online_Server.Database.ConquerItemTable.deleteallguildins(client);
                                                    
dialog.Text("Congratulations, all your items is back to normal status again, Now you need to Relog!");
                                                    
dialog.Option("Thanks, i'll relog.", 255);
                                                    
dialog.Send();
                                                }
                                                break;
                                            }
                                        case 
9:
                                            {
                                                if (
client.Guild != null && client.AsMember.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader)
                                                {
                                                    
dialog.Text("Are you sure you want to disband your guild?");
                                                    
dialog.Option("Yes.", 10);
                                                    
dialog.Option("Ah, nevermind.", 255);
                                                    
dialog.Send();
                                                }
                                                else
                                                {
                                                    
dialog.Text("You don't meet the requierments.");
                                                    
dialog.Option("Ahh.", 255);
                                                    
dialog.Send();
                                                }
                                                break;
                                            }
                                        case 
10:
                                            {
                                                if (
client.Guild != null && client.AsMember.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader)
                                                {
                                                    
client.Guild.Disband();
                                                }
                                                break;
                                            }
                                        case 
6:
                                            {
                                                if (
client.Guild != null && client.AsMember.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader)
                                                {
                                                    
dialog.Text("Input here the member name you want to promote as guild leader.");
                                                    
dialog.Input("Here:", 7, 16);
                                                    
dialog.Option("Ah, nevermind.", 255);
                                                    
dialog.Send();
                                                }
                                                else
                                                {
                                                    
dialog.Text("You don't meet the requierments.");
                                                    
dialog.Option("Ahh.", 255);
                                                    
dialog.Send();
                                                }
                                                break;
                                            }
                                        case 
7:
                                            {
                                                if (
client.Guild != null && client.AsMember.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader)
                                                {
                                                    if (
npcRequest.Input != "")
                                                    {
                                                        
string lookingFor = npcRequest.Input.Replace(" ", "").Replace("~", "");
                                                        var 
member = client.Guild.Members.Values.FirstOrDefault((p) => p.Name.Replace(" ", "").Replace("~", "") == lookingFor);

                                                        if (
member == null)
                                                        {
                                                            
dialog.Text("There is no such member in your guild.");
                                                            
dialog.Option("Ah, nevermind.", 255);
                                                            
dialog.Send();
                                                            return;
                                                        }
                                                        else
                                                        {
                                                            if (
member.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader)
                                                            {
                                                                
dialog.Text("You cannot promote this member anymore.");
                                                                
dialog.Option("Ah, nevermind.", 255);
                                                                
dialog.Send();
                                                                return;
                                                            }
                                                            else
                                                            {
                                                                
client.Entity.GuildBattlePower = 0;
                                                                
client.AsMember.Rank = member.Rank;
                                                                
EntityTable.UpdateGuildRank(client.Entity.UID, member.Rank);
                                                                
member.Rank = Game.Enums.GuildMemberRank.GuildLeader;
                                                                
EntityTable.UpdateGuildRank(member.ID, member.Rank);
                                                                if (
member.IsOnline)
                                                                {
                                                                    var 
memberClient = member.Client;
                                                                    
member.Client.Entity.GuildBattlePower = 0;
                                                                    
memberClient.Entity.GuildRank = (ushort)member.Rank;
                                                                    
memberClient.Screen.FullWipe();
                                                                    
memberClient.Screen.Reload(null);
                                                                    
memberClient.Guild.SendGuild(memberClient);
                                                                }
                                                                
client.Entity.GuildRank = (ushort)client.AsMember.Rank;
                                                                
client.Screen.FullWipe();
                                                                
client.Screen.Reload(null);
                                                                
client.Guild.SendGuild(client);
                                                                
client.Guild.GetMaxSharedBattlepower(true);
                                                            }
                                                        }
                                                    }
                                                }
                                                break;
                                            }
                                        case 
3:
                                            {
                                                if (
client.Guild != null && client.AsMember.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader)
                                                {
                                                    
dialog.Text("You have now " + client.Guild.RanksCounts[(ushort)Game.Enums.GuildMemberRank.DeputyLeader] + " named deupty leaders.");
                                                    if (
client.Guild.RanksCounts[(ushort)Game.Enums.GuildMemberRank.DeputyLeader] == 25)
                                                    {
                                                        
dialog.Text("You cannot name any other deupty leader.");
                                                        
dialog.Option("Ah, nevermind.", 255);
                                                        
dialog.Send();
                                                    }
                                                    else
                                                    {
                                                        
dialog.Text("Input here the member name you want to promote as deputy leader.");
                                                        
dialog.Input("Here:", 4, 16);
                                                        
dialog.Option("Ah, nevermind.", 255);
                                                        
dialog.Send();
                                                    }
                                                }
                                                else
                                                {
                                                    
dialog.Text("You don't meet the requierments.");
                                                    
dialog.Option("Ahh.", 255);
                                                    
dialog.Send();
                                                }
                                                break;
                                            }
                                        case 
4:
                                            {
                                                if (
client.Guild != null && client.AsMember.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader)
                                                {
                                                    if (
npcRequest.Input != "")
                                                    {
                                                        
string lookingFor = npcRequest.Input.Replace(" ", "~");
                                                        var 
member = client.Guild.Members.Values.FirstOrDefault((p) => p.Name == lookingFor);

                                                        if (
member == null)
                                                        {
                                                            
dialog.Text("There is no such member in your guild.");
                                                            
dialog.Option("Ah, nevermind.", 255);
                                                            
dialog.Send();
                                                            return;
                                                        }
                                                        else
                                                        {
                                                            if (
member.Rank != Conquer_Online_Server.Game.Enums.GuildMemberRank.Member)
                                                            {
                                                                
dialog.Text("You cannot promote this member anymore.");
                                                                
dialog.Option("Ah, nevermind.", 255);
                                                                
dialog.Send();
                                                                return;
                                                            }
                                                            else
                                                            {
                                                                
member.Rank = Conquer_Online_Server.Game.Enums.GuildMemberRank.DeputyLeader;
                                                                if (
member.IsOnline)
                                                                {
                                                                    
client.Guild.SendGuild(member.Client);
                                                                    
member.Client.Entity.GuildRank = (ushort)member.Rank;
                                                                    
member.Client.Screen.FullWipe();
                                                                    
member.Client.Screen.Reload(null);
                                                                    
member.Client.Entity.GuildBattlePower = member.Guild.GetSharedBattlepower(member.Rank);
                                                                }
                                                                
client.Guild.RanksCounts[(ushort)Game.Enums.GuildMemberRank.DeputyLeader]++;
                                                            }
                                                        }
                                                    }
                                                    else
                                                    {
                                                        
dialog.Text("Please input the name of the person you want to Deputilize.");
                                                        
dialog.Option("Ah, Ok.", 255);
                                                        
dialog.Send();
                                                    }
                                                }
                                                else
                                                {
                                                    
dialog.Text("You are not the guild leader of the current guild you are in.");
                                                    
dialog.Option("Ah, Ok.", 255);
                                                    
dialog.Send();
                                                }
                                                break;
                                            }
                                        case 
1:
                                            {
                                                if (
client.Guild == null && client.Entity.Level >= 90 && client.Entity.Money >= 500000)
                                                {
                                                    
dialog.Text("Name your guild. The name must have less than 16 characters of any type.");
                                                    
dialog.Input("Here:", 2, 16);
                                                    
dialog.Option("Ah, nevermind.", 255);
                                                    
dialog.Send();
                                                }
                                                else
                                                {
                                                    
dialog.Text("You don't meet the requierments.");
                                                    
dialog.Option("Ahh.", 255);
                                                    
dialog.Send();
                                                }
                                                break;
                                            }
                                        case 
2:
                                            {
                                                if (
client.Guild == null && client.Entity.Level >= 90 && client.Entity.Money >= 500000)
                                                {
                                                    if (
npcRequest.Input != "" && npcRequest.Input.Length > 3 && npcRequest.Input.Length < 16)
                                                    {
                                                        if (!
Guild.CheckNameExist(npcRequest.Input))
                                                        {
                                                            
client.Entity.Money -= 500000;
                                                            
Guild guild = new Guild(client.Entity.Name);
                                                            
guild.ID = Guild.GuildCounter.Next;
                                                            
guild.SilverFund = 1000000;
                                                            
client.AsMember = new Conquer_Online_Server.Game.ConquerStructures.Society.Guild.Member(guild.ID)
                                                            {
                                                                
SilverDonation = 500000,
                                                                
ID = client.Entity.UID,
                                                                
Level = client.Entity.Level,
                                                                
Name = client.Entity.Name,
                                                                
Rank = Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader,
                                                            };
                                                            if (
client.NobilityInformation != null)
                                                            {
                                                                
client.AsMember.Gender = client.NobilityInformation.Gender;
                                                                
client.AsMember.NobilityRank = client.NobilityInformation.Rank;
                                                            }

                                                            
client.Entity.GuildID = (ushort)guild.ID;
                                                            
client.Entity.GuildRank = (ushort)Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader;
                                                            
guild.Leader = client.AsMember;
                                                            
client.Guild = guild;
                                                            
guild.Create(npcRequest.Input);
                                                            
guild.Name = npcRequest.Input;
                                                            
guild.MemberCount++;
                                                            
guild.SendGuild(client);
                                                            
guild.SendName(client);
                                                            
Database.GuildArsenalTable.Insert(guild.ID);
                                                            
client.Screen.FullWipe();
                                                            
client.Screen.Reload(null);
                                                        }
                                                        else
                                                        {
                                                            
dialog.Text("There is a Guild Already with this Name i'm sorry.");
                                                            
dialog.Option("Choose another Name", 1);
                                                            
dialog.Option("Ok Sorry.", 255);
                                                            
dialog.Send();
                                                        }
                                                    }
                                                }
                                                break;
                                            }
                                    }
                                    break;
                                }
                            
#endregion 

كده السي شارب خلص تعاله بقاء نخش علي شغل النافي كات

روح علي configuration و دوس كليك يمين و اختار Design Table

و ضيف فيه العمود ده

كود:
UnionID    bigint    255    0    -1    0    0    0    0    0  0     0 

و روح علي entities و دوس كليك يمين و اختار Design Table

وضيف فيه العواميد دي


كود:
UnionID    bigint    255    0    -1    0    0    0    0    0    0    0

UnionExploits    bigint    255    0    
-1    0    0    0    0    0    0    0

Harem    bigint    255    0    
-1    0    0    0    0    0    0    0

Guards    bigint    255    0    
-1    0    0    0    0    0    0    0

Offical    bigint    255    0    
-1    0    0    0    0    0    0    0 

و روح علي guilds و دوس كليك يمين و اختار Design Table

وضيف فيه العمود ده



كود:
UnionID    bigint    255    0    -1    0    0    0    0    0    0    0 

و ارفع دي عندك في القاعده عشان يكون كلو تمام
عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع
كده اقولك مبروك عليك اليونيون كامل و متتزلش علي حد بعد كده

و كل سنه و انتم طيبون ارجو تثبيت الموضوع

سلامووووووز انا


قديم 2021-09-10, 08:33 PM
المشاركة 2
walid88
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: الان و حصريا من ارض الحصريات و بس اليونيون كامل للسورسات العاديه
عاش

قديم 2021-09-11, 02:00 AM
المشاركة 3
Eslam askr
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: الان و حصريا من ارض الحصريات و بس اليونيون كامل للسورسات العاديه
عاااااش يا حازم استمر مجهود أكثر من رائع

قديم 2021-09-14, 02:07 PM
المشاركة 4
hemaDoc
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: الان و حصريا من ارض الحصريات و بس اليونيون كامل للسورسات العاديه
تسلم ايدك

قديم 2021-09-23, 04:56 AM
المشاركة 5
abdocoder
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: الان و حصريا من ارض الحصريات و بس اليونيون كامل للسورسات العاديه
تسلم

قديم 2021-09-23, 04:57 AM
المشاركة 6
abdocoder
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: الان و حصريا من ارض الحصريات و بس اليونيون كامل للسورسات العاديه
تسلم ايدك


العلامات المرجعية



الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع

الانتقال السريع

المواضيع المتشابهه للموضوع: الان و حصريا من ارض الحصريات و بس اليونيون كامل للسورسات العاديه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
حصريا اقوي لودر لتني مره MeGo لاصدار 6711 كامل MeGo البرامج والودرات 241 2021-09-22 08:26 PM
اضافه ابيك القرصان للسورسات العاديه Hazem تطوير سيرفرات كونكر 47 2021-09-15 08:07 PM
هديه مني ليكم يا رجاله ملف اتاك يعتبر فكسد بنسبه كبيره للسورسات العاديه كلمه شكر تكفي MahmoudMano تطوير سيرفرات كونكر 35 2021-08-20 09:15 PM
الان سيستم كامل فيكسد نظام الشخصية الزكية ممكن تلعب مع نفسك بمستويات مختلفة Mero تطوير سيرفرات كونكر 88 2021-02-16 09:38 PM
اليونيون messi55 مشكلات السيرفيرات كونكر الشخصيه 1 2020-09-16 10:48 AM


الساعة الآن 05:03 PM