منتدي اكواد

منتدي اكواد (https://code.vpscairo.com/index.php)
-   تطوير سيرفرات كونكر (https://code.vpscairo.com/forumdisplay.php?f=11)
-   -   التيم الاسكل الاليت الي عندو مشاكل فيهم يخوش هنااا (https://code.vpscairo.com/showthread.php?t=4550)

ElSaher 2020-04-25 06:00 AM

التيم الاسكل الاليت الي عندو مشاكل فيهم يخوش هنااا
 

النهردا يا جدعان هنحل مشكلة كبيرة جدااا وفي معظم السورسات الي موجوده علي النت او معا الناس ومحدش عارف يحلهم ومحدش بيحلهم ببلاش ودا اكيد النهردا يا جدعان هنحوط شعاررر وداعا لي النصب وا المشاكل المدفوعه هنحل المشكلة النهردا الي يجيلو اي ايرورات ينزل الايرور في صورة او يقول line بتاعو واسم الكلاس وهيتم الحل انشاء الله

هنبدا بي الاليت بكيه
هتبحث عن
كود PHP:

public unsafe class ElitePK 

هتلاقيها في كلاس Elitepk
هتمسح كل الي فيها وهتضيف دول
كود PHP:

using System;
using System.IO;
using System.Linq;
using System.Text;
using XMeGo.Client;
using System.Collections.Generic;
using XMeGo.Network.GamePackets;
using System.Collections.Concurrent;
using XMeGo.Game.Features.Tournaments;
using XMeGo.MaTrix;

namespace 
XMeGo.Game
{
    public 
unsafe class ElitePK
    
{
        public const 
int EventTime 16;
        public class 
States
        
{
            public const 
byte
            GUI_Top8Ranking 
0,
            
GUI_Knockout 3,
            
GUI_Top8Qualifier 4,
            
GUI_Top4Qualifier 5,
            
GUI_Top2Qualifier 6,
            
GUI_Top3 7,
            
GUI_Top1 8,
            
GUI_ReconstructTop 9;
            public const 
byte
            T_Organize 
0,
            
T_CreateMatches 1,
            
T_Wait 2,
            
T_Fights 3,
            
T_Finished 4,
            
T_ReOrganize 5;
        }
        public 
FighterStats[] Top8 = new FighterStats[0];
        public 
ConcurrentDictionary<uintGameStatePlayers;
        public 
ConcurrentDictionary<uintMatchMatches;
        private 
Match[] MatchArray;
        private 
Match[] Top4MatchArray;
        private 
Match[] ExtendedMatchArray;
        private 
Counter MatchCounter;
        private 
ushort MatchIndex;
        public 
bool IsAlive false;
        public 
DateTime ConstructTop8 DateTime.Now;
        public 
Map WaitingArea;
        public 
int State;
        private 
int pState States.T_Organize;
        public 
int GroupID;
        public 
bool EliteStarted false;
        private 
bool willAdvance;
        private 
IDisposable Subscriber;
        private 
Time32 pStamp;
        private 
bool SentNoWagers;
        public 
DateTime EndDateTime;
        public 
ElitePK(int group)
        {
            if (!
IsAlive)
            {
                
IsAlive true;
                
Players = new ConcurrentDictionary<uintGameState>();
                
Matches = new ConcurrentDictionary<uintMatch>();

                
GroupID group;
                
MatchCounter = new Counter((uint)(GroupID 100000 100000));

                
LoadTop8();

                
WaitingArea Kernel.Maps[(ushort)ElitePKTournament.WaitingAreaID].MakeDynamicMap();
                
Constants.PKForbiddenMaps.Add(WaitingArea.ID);

                
State States.GUI_Top8Ranking;
                
pState States.T_Organize;
            }
        }
        public 
void SaveTop8()
        {
            
int len Top8.Count(=> p.UID != 0);
            
using (var stream = new MemoryStream())
            
using (var writer = new BinaryWriter(stream))
            {
                
writer.Write(len);
                for (
int i 0leni++)
                {
                    
writer.Write(Top8[i].UID);
                    
writer.Write(Top8[i].Name);
                    
writer.Write(Top8[i].Mesh);
                    
writer.Write(Top8[i].ReceiveReward);
                }
                
Program.Vars["epk" GroupID] = stream.ToArray();
            }
        }

        private 
void LoadTop8()
        {
            
Top8 = new FighterStats[8];
            
byte[] bytes Program.Vars["epk" GroupID];
            if (
bytes == null)
            {
                for (
int i 08i++)
                    
Top8[i] = new FighterStats(0""0);
                
SaveTop8();
                return;
            }
            
using (var stream = new MemoryStream(bytes))
            
using (var reader = new BinaryReader(stream))
            {
                
int len reader.ReadInt32();
                for (
int i 0leni++)
                {
                    
Top8[i] = new FighterStats(reader.ReadUInt32(), reader.ReadString(), reader.ReadUInt32());
                    
Top8[i].ReceiveReward reader.ReadByte();
                }
                for (
int i len8i++)
                    
Top8[i] = new FighterStats(0""0);
            }
        }
        public 
bool GetReward(Client.GameState clientout byte Rank)
        {
            if (
Top8.Length == 8)
            {
                for (
int x 0Top8.Lengthx++)
                {
                    if (
Top8[x] != null)
                    {
                        if (
Top8[x].UID == client.Entity.UID)
                        {
                            if (
Top8[x].ReceiveReward == 0)
                            {
                                
Top8[x].ReceiveReward 1;
                                
Rank = (byte)(1);
                                return 
true;
                            }
                            else
                            {
                                
Rank = (byte)(1);
                                return 
false;
                            }
                        }
                    }
                }
            }
            
Rank 0;
            return 
false;
        }
        public static 
bool GetReward(GameState clientout byte rankout byte elitestage)
        {
            if (
ElitePKTournament.Tournaments != null)

                for (
byte x 0ElitePKTournament.Tournaments.Lengthx++)
                {
                    if (
ElitePKTournament.Tournaments[x] != null)
                    {
                        if (
ElitePKTournament.Tournaments[x].Top8 != null)
                        {
                            for (
byte i 0ElitePKTournament.Tournaments[x].Top8.Lengthi++)
                            {
                                if (
ElitePKTournament.Tournaments[x].Top8[i] != null)
                                {
                                    if (
ElitePKTournament.Tournaments[x].Top8[i].UID == client.Entity.UID)
                                    {

                                        if (
ElitePKTournament.Tournaments[x].Top8[i].RceiveReward == 0)
                                        {
                                            
rank = (byte)(1);
                                            
elitestage x;
                                            
ElitePKTournament.Tournaments[x].Top8[i].RceiveReward 1;
                                            return 
true;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            
rank 0;
            
elitestage 0;
            return 
false;
        }
        public class 
FighterStats
        
{
            public 
enum StatusFlag int
            
{
                
None 0,
                
Fighting 1,
                
Lost 2,
                
Qualified 3,
                
Waiting 4,
                
Bye 5,
                
Inactive 7,
                
WonMatch 8
            
}
            public 
ConcurrentDictionary<uintuintWagers;
            public 
string Name;
            public 
uint UID;
            public 
byte ReceiveReward;
            public 
uint Mesh;
            public 
uint Wager;
            public 
uint Cheers;
            public 
uint Points;
            public 
StatusFlag Flag;
            public 
bool Advance;
            public 
byte RceiveReward;
            public 
bool Waiting
            
{
                
get { return Flag == StatusFlag.Waiting; }
            }
            public 
bool NoFlag
            
{
                
get { return Flag == StatusFlag.None; }
            }
            public 
bool Fighting
            
{
                
get { return Flag == StatusFlag.Fighting; }
            }
            public 
bool Winner
            
{
                
get { return Flag == StatusFlag.Qualified || Flag == StatusFlag.WonMatch; }
            }
            public 
bool Lost
            
{
                
get { return Flag == StatusFlag.Lost; }
            }
            public 
FighterStats(uint idstring nameuint mesh)
            {
                
Wagers = new ConcurrentDictionary<uintuint>();
                
UID id;
                
Name name;
                
Mesh mesh;
            }
            public 
void Reset(bool setflag false)
            {
                
Wagers.Clear();
                
Wager 0;
                
Points 0;
                
Cheers 0;
                if (
setflagFlag StatusFlag.None;

            }
            public 
FighterStats Clone()
            {
                
FighterStats stats = new FighterStats(UIDNameMesh);
                
stats.Points this.Points;
                
stats.Flag this.Flag;
                
stats.Wager this.Wager;
                return 
stats;
            }
        }
        public class 
Match
        
{
            public 
enum StatusFlag int
            
{
                
AcceptingWagers 0,
                
Watchable 1,
                
SwitchOut 2,
                
InFight 3,
                
OK 4,
                
FinalMatch 5,
            }
            public 
GameState[] Players;
            public 
FighterStats[] MatchStats;
            public 
FighterStats[] FightersStats
            
{
                
get { return MatchStats.Where(=> p.NoFlag p.Fighting).ToArray(); }
            }
            public 
bool OnGoing
            
{
                
get { return Flag != StatusFlag.AcceptingWagers; }
            }
            public 
int GroupID
            
{
                
get { return (int)ID 100000 1; }
            }
            public 
uint TimeLeft
            
{
                
get
                
{
                    
int val = (int)((ImportTime.AddMinutes(3).TotalMilliseconds Time32.Now.TotalMilliseconds) / 1000);
                    if (
val 0val 0;
                    return (
uint)val;
                }
            }
            public 
ConcurrentDictionary<uintGameStateWatchers;
            public 
uint ID;
            public 
StatusFlag Flag;
            public 
bool Inside;
            public 
bool Done;
            public 
bool Exported;
            public 
bool Completed;
            public 
ushort Index;
            private 
Time32 ImportTime;
            private 
Map Map;
            private 
Time32 DoneStamp;
            public 
int Imports;
            public 
uint TotalWagers;
            public 
Match(params GameState[] players)
            {
                
Players players;
                
Watchers = new ConcurrentDictionary<uintGameState>();
                
MatchStats = new FighterStats[players.Length];
                if (
players.Length == 1)
                {
                    
Players[0].ElitePKMatch this;
                    
MatchStats[0] = players[0].ElitePKStats;
                    
MatchStats[0].Reset(true);
                    
MatchStats[0].Flag FighterStats.StatusFlag.Qualified;
                }
                else
                {
                    
Players players;
                    for (
int i 0players.Lengthi++)
                    {
                        
players[i].ElitePKMatch this;
                        
MatchStats[i] = players[i].ElitePKStats;
                        
MatchStats[i].Reset(true);
                    }
                    if (
MatchStats.Length == 3)
                        if (
Players[0] != null)
                            
MatchStats[0].Flag ElitePK.FighterStats.StatusFlag.Waiting;
                }
                
Imports 0;
                
Flag StatusFlag.AcceptingWagers;
            }
            public 
void Import(StatusFlag flag StatusFlag.OK)
            {
                
Imports++;
                
Exported Done false;
                
Inside true;
                
Flag flag;
                
ImportTime Time32.Now;
                
Map Kernel.Maps[700].MakeDynamicMap();
                if (
Players.Length 1)
                {
                    
GameState player1 nullplayer2 null;
                    for (
int i 0Players.Lengthi++)
                    {
                        if (!
MatchStats[i].Waiting)
                        {
                            if (
player1 == null)
                                
player1 Players[i];
                            else
                                
player2 Players[i];
                        }
                    }
                    if (!
player1.Socket.IsAlive)
                    {
                        
Exported Done true;
                        
Flag StatusFlag.OK;
                        if (
Players.Length == 3)
                            
Flag StatusFlag.SwitchOut;
                        
Completed true;
                        var 
statsArray FightersStats;
                        if (
Players.Length == 3)
                            foreach (var 
stats in statsArray)
                                
stats.Flag FighterStats.StatusFlag.WonMatch;
                        else
                            foreach (var 
stats in statsArray)
                                
stats.Flag FighterStats.StatusFlag.Qualified;
                        
player1.ElitePKStats.Flag FighterStats.StatusFlag.Lost;
                        return;
                    }
                    if (!
player2.Socket.IsAlive)
                    {
                        
Exported Done true;
                        
Flag StatusFlag.OK;
                        if (
Players.Length == 3)
                            
Flag StatusFlag.SwitchOut;
                        
Completed true;
                        var 
statsArray FightersStats;
                        if (
Players.Length == 3)
                            foreach (var 
stats in statsArray)
                                
stats.Flag FighterStats.StatusFlag.WonMatch;
                        else
                            foreach (var 
stats in statsArray)
                                
stats.Flag FighterStats.StatusFlag.Qualified;
                        
player2.ElitePKStats.Flag FighterStats.StatusFlag.Lost;
                        return;
                    }

                    
player1.ElitePKStats.Flag FighterStats.StatusFlag.Fighting;
                    
player2.ElitePKStats.Flag FighterStats.StatusFlag.Fighting;
                    
importPlayer(player1player2);
                    
importPlayer(player2player1);

                    
ElitePKBrackets brackets = new ElitePKBrackets(true1);
                    
brackets.Group = (ushort)GroupID;
                    
brackets.GUIType = (ushort)ElitePKTournament.Tournaments[GroupID].State;
                    
brackets.TotalMatches brackets.MatchCount 1;
                    
brackets.Type ElitePKBrackets.StaticUpdate;
                    
brackets.Append(this);
                    
Kernel.SendWorldMessage(brackets);
                }
                else
                {
                    
Exported Done true;
                    
Flag StatusFlag.OK;
                    
Completed true;
                    foreach (var 
stats in MatchStats)
                        if (
stats != null)
                            
stats.Flag FighterStats.StatusFlag.Qualified;
                }
            }
            private 
void importPlayer(GameState playerGameState opponent)
            {
                if (
Players.Length 1)
                {
                    var 
coords Map.RandomCoordinates();
                    
player.Entity.Teleport(Map.BaseIDMap.IDcoords.Item1coords.Item2);
                    
player.Entity.BringToLife();

                    
ElitePKMatchUI ui = new ElitePKMatchUI(true);
                    
ui.Append(opponent);
                    
ui.TimeLeft TimeLeft;
                    
ui.Type ElitePKMatchUI.BeginMatch;
                    
player.Send(ui);

                    
player.Send(CreateUpdate());
                    
player.CantAttack Time32.Now.AddSeconds(11);
                    
player.Entity.PrevPKMode player.Entity.PKMode;
                    
player.Entity.PKMode Enums.PKMode.PK;

                    
Data dat = new Data(true);
                    
dat.UID player.Entity.UID;
                    
dat.ID Data.ChangePKMode;
                    
dat.dwParam = (uint)player.Entity.PKMode;
                    
player.Send(dat);
                }
                
player.Entity.OnDeath => { p.Owner.ElitePKMatch.End(p.Owner); };
            }
            public 
void End(GameState client)
            {
                if (
Players.Length == 1)
                {
                    
Players[0].ElitePKStats.Flag FighterStats.StatusFlag.Qualified;
                    
Flag StatusFlag.OK;
                    return;
                }
                if (
Done) return;
                if (
client.ElitePKStats.Flag != FighterStats.StatusFlag.Fighting) return;
                
Done true;
                
DoneStamp Time32.Now;
                
Flag StatusFlag.OK;
                
client.ElitePKStats.Flag FighterStats.StatusFlag.Lost;
                
ElitePKMatchUI ui = new ElitePKMatchUI(true);
                
ui.Type ElitePKMatchUI.Effect;
                
ui.dwParam ElitePKMatchUI.Effect_Lose;
                
client.Send(ui);

                
client.ElitePKStats.Wager 0;
                
client.ElitePKStats.Wagers.Clear();
                var 
target targetOf(client);
                if (
target != null)
                {
                    
ui.Append(client);
                    
ui.dwParam ElitePKMatchUI.Effect_Win;
                    
target.Send(ui);
                    
ui.Type ElitePKMatchUI.EndMatch;
                    
client.Send(ui);
                    
target.Send(ui);
                    if (
Imports == || Players.Length != 3)
                    {
                        
target.ElitePKStats.Flag FighterStats.StatusFlag.Qualified;
                    }
                    else
                    {
                        
Flag StatusFlag.SwitchOut;
                        
target.ElitePKStats.Flag FighterStats.StatusFlag.None;
                    }
                    if (
TotalWagers != 0)
                    {
                        
double totalWager target.ElitePKStats.Wager;
                        foreach (var 
kvp in target.ElitePKStats.Wagers)
                        {
                            
double ratio = (double)kvp.Value totalWager;
                            
Client.GameState pClient;
                            if (
Kernel.GamePool.TryGetValue(kvp.Keyout pClient))
                            {
                                
uint gain = (uint)(ratio totalWager 100000);
                                
pClient.Entity.Money += gain;
                                
pClient.Send("You have gained " gain " gold from the winning of " target.ElitePKStats.Name);
                            }
                        }
                        
target.ElitePKStats.Wager 0;
                        
target.ElitePKStats.Wagers.Clear();
                        
TotalWagers 0;
                    }
                }

                
ElitePKBrackets brackets = new ElitePKBrackets(true1);
                
brackets.Group = (ushort)GroupID;
                
brackets.GUIType = (ushort)ElitePKTournament.Tournaments[GroupID].State;
                
brackets.TotalMatches brackets.MatchCount 1;
                
brackets.Type ElitePKBrackets.StaticUpdate;
                
brackets.Append(this);
                
Kernel.SendWorldMessage(brackets);
                
//target.Entity.BringToLife();
                
var array = Watchers.Values.ToArray();
                foreach (var 
watcher in array)
                    
LeaveWatch(watcher);
            }
            public 
GameState targetOf(GameState client)
            {
                for (
int i 0Players.Lengthi++)
                    if (
Players[i] != null)
                        if (
Players[i].Entity.UID != client.Entity.UID)
                            if (!
Players[i].ElitePKStats.Waiting)
                                return 
Players[i];
                return 
null;
            }

            public 
ElitePKMatchStats CreateUpdate()
            {
                
ElitePKMatchStats stats = new ElitePKMatchStats();
                
stats.Append(this);
                return 
stats;
            }
            public 
void Export()
            {
                if (
Time32.Now DoneStamp.AddSeconds(3) || TimeLeft == 0)
                {
                    
#region !Done
                    
if (!Done)
                    {
                        if (
Players.Length == 1)
                        {
                            
Players[0].ElitePKStats.Flag FighterStats.StatusFlag.Qualified;
                            
Flag StatusFlag.OK;
                        }
                        else
                        {
                            var 
fighters FightersStats;
                            if (
fighters[0].Fighting && fighters[1].Fighting)
                            {
                                if (
fighters[0].Points == fighters[1].Points)
                                {
                                    if (
fighters[0].Wager <= fighters[1].Wager)
                                    {
                                        
End(Players.First(=> p.Entity.UID == fighters[0].UID));
                                    }
                                    else
                                    {
                                        
End(Players.First(=> p.Entity.UID == fighters[1].UID));
                                    }
                                }
                                else
                                {
                                    if (
fighters[0].Points fighters[1].Points)
                                    {
                                        
End(Players.First(=> p.Entity.UID == fighters[0].UID));
                                    }
                                    else
                                    {
                                        
End(Players.First(=> p.Entity.UID == fighters[1].UID));
                                    }
                                }
                            }
                        }
                    }
                    
#endregion
                    
foreach (var player in Players)
                    {
                        if (
player != null)
                        {
                            if (!
player.ElitePKStats.Waiting)
                            {
                                
// player.CurrentHonor += 1000;
                                //player.HistoryHonor += 1000;
                                
player.IncreaseExperience(player.ExpBallfalse);

                                var 
map ElitePKTournament.Tournaments[GroupID].WaitingArea;
                                var 
coords map.RandomCoordinates();
                                
player.Entity.Teleport(map.IDcoords.Item1coords.Item2);
                                
player.Entity.BringToLife();
                            }
                        }
                    }
                    
Exported true;
                    
Completed true;
                    var array = 
Watchers.Values.ToArray();
                    foreach (var 
watcher in array)
                        
LeaveWatch(watcher);
                }
            }
            public 
void SwitchBetween()
            {
                if (
Imports == 1)
                {
                    if (
Players.Length == 3)
                    {
                        if (
Players[0] != null)
                        {
                            
MatchStats[0].Flag FighterStats.StatusFlag.None;
                            if (
MatchStats[1].Winner)
                                
MatchStats[1].Flag FighterStats.StatusFlag.None;
                            if (
MatchStats[2].Winner)
                                
MatchStats[2].Flag FighterStats.StatusFlag.None;
                            
Completed false;
                        }
                    }
                }
                else
                    
Flag StatusFlag.OK;
            }
            public 
void Send(GameState clientint gui_state)
            {
                
ElitePKBrackets brackets = new ElitePKBrackets(true1);
                
brackets.Group = (ushort)GroupID;
                
brackets.GUIType = (ushort)gui_state;
                
brackets.TotalMatches brackets.MatchCount 1;
                
brackets.Type ElitePKBrackets.StaticUpdate;
                
brackets.Append(this);
                
client.Send(brackets);
            }
            public 
void Commit()
            {
                var 
matchStats = new FighterStats[MatchStats.Length];
                for (
int i 0matchStats.Lengthi++)
                {
                    
matchStats[i] = MatchStats[i].Clone();
                    if (
matchStats[i].Winner)
                        
matchStats[i].Advance true;
                }
                
MatchStats matchStats;
            }
            public 
void BeginWatch(GameState client)
            {
                if (
Watchers.ContainsKey(client.Entity.UID)) return;
                if (
client.ElitePKMatch != null)
                    if (!
client.ElitePKStats.Waiting && !client.ElitePKStats.Lost)
                        return;

                
Watchers.TryAdd(client.Entity.UIDclient);
                var 
coords Map.RandomCoordinates();
                
client.WatchingElitePKMatch this;
                
client.Entity.Teleport(Map.BaseIDMap.IDcoords.Item1coords.Item2);
                if (
FightersStats.Length == 2)
                {
                    
ElitePKWatch watch = new ElitePKWatch(trueWatchers.Count);
                    
watch.ID ID;
                    
watch.Type ElitePKWatch.Fighters;
                    
watch.dwCheers1 FightersStats[0].Cheers;
                    
watch.dwCheers2 FightersStats[1].Cheers;
                    
watch.Append(FightersStats[0].Name);
                    
watch.Append(FightersStats[1].Name);
                    
client.Send(watch);
                    
watch = new ElitePKWatch(trueWatchers.Count);
                    
watch.ID ID;
                    
watch.dwCheers1 FightersStats[0].Cheers;
                    
watch.dwCheers2 FightersStats[1].Cheers;
                    foreach (var 
pClient in Watchers.Values)
                        
watch.Append(pClient.Entity.MeshpClient.Entity.Name);
                    
client.Send(watch);
                }
                
client.Send(CreateUpdate());

                
UpdateWatchers();
            }
            public 
void Update()
            {
                var 
update CreateUpdate();
                if (
Players != null)
                    foreach (var 
player in Players)
                        if (
player != null)
                            if (
player.ElitePKStats.Fighting)
                                
player.Send(update);
            }
            public 
void UpdateWatchers()
            {
                var 
watch = new ElitePKWatch(trueWatchers.Count);
                
watch.ID ID;
                
watch.Type ElitePKWatch.Watchers;
                
watch.dwCheers1 FightersStats[0].Cheers;
                
watch.dwCheers2 FightersStats[1].Cheers;
                foreach (var 
pClient in Watchers.Values)
                    
watch.Append(pClient.Entity.MeshpClient.Entity.Name);
                foreach (var 
pClient in Watchers.Values)
                    
pClient.Send(watch);
                foreach (var 
pClient in Players)
                    if (
pClient != null)
                        
pClient.Send(watch);
            }
            public 
void LeaveWatch(GameState client)
            {
                var 
epk ElitePKTournament.Tournaments[GroupID];
                
client.WatchingElitePKMatch null;
                
Watchers.Remove(client.Entity.UID);
                try
                {
                    
ElitePKWatch watch = new ElitePKWatch(true);
                    
watch.ID ID;
                    
watch.Type ElitePKWatch.Leave;
                    
client.Send(watch);
                    if (!
epk.Players.ContainsKey(client.Entity.UID))
                        
client.Entity.PreviousTeleport();
                    else
                    {
                        var 
map epk.WaitingArea;
                        var 
coords map.RandomCoordinates();
                        
client.Entity.Teleport(map.IDcoords.Item1coords.Item2);
                    }
                }
                catch
                {
                    var 
map epk.WaitingArea;
                    var 
coords map.RandomCoordinates();
                    
client.Entity.Teleport(map.IDcoords.Item1coords.Item2);
                }
            }
            public 
void Cheer(GameState clientuint fighter)
            {
                
Players.First(=> != null && p.Entity.UID == fighter)
                    .
ElitePKStats.Cheers++;
                
UpdateWatchers();
            }
            public 
GameState Return(Func<FighterStatsboolfn)
            {
                foreach (var 
stat in MatchStats)
                    if (
stat != null)
                        if (
fn(stat))
                            return 
ElitePKTournament.Tournaments[GroupID].Players[stat.UID];
                return 
null;
            }
            public 
void Check()
            {
                if (
Exported) return;

                foreach (var 
player in Players)
                {
                    if (!
player.ElitePKStats.Lost && !player.ElitePKStats.Waiting)
                    {
                        if (
player.Entity.MapID != Map.ID)
                        {
                            
End(player);
                        }
                    }
                }
            }
        }
        public 
void SignUp(GameState client)
        {
            var 
coords WaitingArea.RandomCoordinates();
            
client.Entity.Teleport(WaitingArea.IDcoords.Item1coords.Item2);
            
Players.Add(client.Entity.UIDclient);
            
ElitePKMatchUI ui = new ElitePKMatchUI(true);
            
ui.Type ElitePKMatchUI.Information;
            
ui.Append(client);
            
ui.Send(client);
            
client.SignedUpForEPK true;
            
client.OnDisconnect =>
            {
                if (
p.ElitePKStats.Fighting)
                    
p.ElitePKMatch.End(p);
                
p.Entity.Teleport(1002313289);
            };
        }
        public 
void SubscribeTimer()
        {
            
Organization true;
            if (
Subscriber == null)
                
Subscriber World.Subscribe(timerCallback1000);
        }
        public 
void Purge()
        {
            foreach (var 
Player in Players.Values)
            {
                if (
Players.Count 8)
                {
                    if (
Player.ElitePKStats.Lost)
                    {
                        
Players.Remove(Player.Entity.UID);
                    }
                }
            }
        }
        public static List<
AIAis = new List<AI>();
        public 
bool Organization false;
        private 
void timerCallback(int time)
        {
            try
            {
                
DateTime Now64 DateTime.Now;
                if (
State == States.GUI_ReconstructTop)
                {
                    if (
Now64.AddMinutes(1) > ConstructTop8)
                    {
                        
Program.Vars["epk_" GroupID "_edt"] = EndDateTime DateTime.Now;
                        
State States.GUI_Top8Ranking;
                        var 
brackets CreateBrackets(new Match[0], 0ElitePKBrackets.RequestInformation);
                        
Kernel.SendWorldMessage(brackets);
                        
Kernel.SendWorldMessage(new ElitePKBrackets(true)
                        {
                            
Group = (ushort)GroupID,
                            
Type 6,
                            
OnGoing false
                        
});
                        
EliteStarted false;
                        
Subscriber.Dispose();
                    }
                    return;
                }
                
//#warning EPK AT 20 not                 
                
if (Now64.Hour == (EventTime 1) && Now64.Minute >= (GroupID) * 2)
                {
                    
EliteStarted true;
                    
#region GetState
                    
if (Organization)
                    {
                        foreach (var 
players in Players.Values)
                            
Top8 = new FighterStats[8];
                        for (
int i 08i++)
                            
Top8[i] = new FighterStats(0""0);
                        
Organization false;
                    }
                    if (
State == States.GUI_Top8Ranking)
                    {
                        
willAdvance Players.Count 8;
                        if (
Players.Count == 0)
                        {
                            
Program.Vars["epk_" GroupID "_edt"] = EndDateTime DateTime.Now;
                            
State States.GUI_Top8Ranking;
                            
Kernel.SendWorldMessage(new ElitePKBrackets(true)
                            {
                                
Group = (ushort)GroupID,
                                
Type 6,
                                
OnGoing false
                            
});
                            
EliteStarted false;
                            
Subscriber.Dispose();
                            return;
                        }
                        else if (
Players.Count == 1)
                        {
                            
Top8[0] = Players.Values.FirstOrDefault().ElitePKStats;
                            foreach (var 
player in Players.Values)
                                
player.Entity.Teleport();
                            
SaveTop8();
                            
ConstructTop8 DateTime.Now;
                            
State States.GUI_ReconstructTop;
                            foreach (var 
client in Program.GamePoolRankings(client);
                            var 
brackets CreateBrackets(ExtendedMatchArray0ElitePKBrackets.UpdateList);
                            
Kernel.SendWorldMessage(brackets);
                            
Kernel.SendWorldMessage(new ElitePKBrackets(true)
                            {
                                
Group = (ushort)GroupID,
                                
Type 6,
                                
OnGoing true
                            
});
                        }
                        else if (
Players.Count == 2)
                        {
                            
State States.GUI_Top1;
                            
pState States.T_Organize;
                        }
                        else if (
Players.Count && Players.Count <= 4)
                        {
                            
State States.GUI_Top2Qualifier;
                            
pState States.T_Organize;
                        }
                        else if (
Players.Count && Players.Count <= 8)
                        {
                            
State States.GUI_Top4Qualifier;
                            
pState States.T_Organize;
                        }
                        else if (
willAdvance && Players.Count <= 24)
                            
State States.GUI_Top8Qualifier;
                        else if (
Players.Count 24)
                            
State States.GUI_Knockout;
                    }

                    
#endregion
                    #region Knockout
                    
if (State == States.GUI_Knockout)
                    {
                        if (
pState == States.T_Organize)
                        {
                            if (
willAdvance && Players.Count <= 24)
                            {
                                
State States.GUI_Top8Qualifier;
                            }
                            else
                            {
                                
MatchIndex 0;
                                var array = 
Players.Values.ToArray();
                                try
                                {
                                    foreach (var 
player in array)
                                    {
                                        
player["epk_id"] = GroupID;
                                        
player["epk_prize"] = false;
                                    }
                                }
                                catch (
Exception exception)
                                {
                                    
Console.WriteLine(exception); Program.SaveException(exception);
                                }
                                
ushort counter 0;
                                if (array.
Length == 0)
                                {
                                    for (
ushort x 0< array.Lengthx++)
                                    {
                                        
int r counter;
                                        
counter++;
                                        
int t counter;
                                        
counter++;
                                        if (
counter <= array.Length)
                                        {
                                            
Match match = new Match(array[r], array[t]);
                                            
match.Index MatchIndex++;
                                            
match.ID MatchCounter.Next;
                                            
Matches.Add(match.IDmatch);
                                        }
                                    }
                                }
                                else
                                {
                                    for (
ushort x 0< array.Length 1x++)
                                    {
                                        
int r counter;
                                        
counter++;
                                        
int t counter;
                                        
counter++;
                                        if (
counter <= array.Length)
                                        {
                                            
Match match = new Match(array[r], array[t]);
                                            
match.Index MatchIndex++;
                                            
match.ID MatchCounter.Next;
                                            
Matches.Add(match.IDmatch);
                                        }
                                    }
                                    
Match match_single = new Match(array[array.Length 1]);
                                    
match_single.Index MatchIndex++;
                                    
match_single.ID MatchCounter.Next;
                                    
Matches.Add(match_single.IDmatch_single);
                                }
                                
pStamp Time32.Now.AddSeconds(60);
                                
pState States.T_Wait;
                                
SentNoWagers false;
                                
MatchArray Matches.Values.OrderByDescending(=> p.Players.Length).ToArray();
                                var 
brackets CreateBrackets(MatchArray0);
                                
Kernel.SendWorldMessage(brackets);
                                
Kernel.SendWorldMessage(new ElitePKBrackets(true) { Group = (ushort)GroupIDType 6OnGoing true });
                            }
                        }
                        else if (
pState == States.T_Wait)
                        {
                            if (
TimeLeft == 0)
                            {
                                
int doneMatches 0;
                                
SendNoWagers();

                                foreach (var 
match in MatchArray)
                                {
                                    if (!
match.Completed)
                                    {
                                        if (!
match.Inside)
                                        {
                                            
match.Import(Match.StatusFlag.InFight);
                                        }
                                        else
                                        {
                                            
match.Check();
                                            if (!
match.Exported && (match.Done || match.TimeLeft == 0))
                                                
match.Export();
                                            if (
match.Exported)
                                                
doneMatches++;
                                            foreach (var 
stats in match.MatchStats)
                                                if (
stats.Winner && match.Imports == 2)
                                                    
stats.Flag FighterStats.StatusFlag.Qualified;
                                        }
                                    }
                                    else
                                        
doneMatches++;
                                }
                                if (
doneMatches == Matches.Count)
                                {
                                    foreach (var 
match in Matches.Values)
                                        foreach (var 
stats in match.MatchStats)
                                            if (
stats != null)
                                                if (
stats.Flag != FighterStats.StatusFlag.Qualified)
                                                    
Remove(stats.UID);

                                    
Matches.Clear();
                                    
pState States.T_Organize;
                                }
                            }
                        }
                    }
                    
#endregion
                    #region Top8Qualifier
                    
if (State == States.GUI_Top8Qualifier)
                    {
                        if (
pState == States.T_Organize)
                        {
                            if (
Players.Count == 8)
                            {
                                
State States.GUI_Top4Qualifier;
                            }
                            else
                            {
                                var 
Brackets CreateBrackets(MatchArray0ElitePKBrackets.GUIEdit);
                                
MatchIndex 0;
                                var array = 
Players.Values.ToArray();
                                
int[] taken = new int[array.Length];
                                if (array.
Length <= 14)
                                {
                                    
ushort counter 0;
                                    
int t1Group = array.Length 8;
                                    
int lim taken.Length 2;
                                    
int len = array.Length;
                                    for (
int i 0t1Groupi++)
                                    {
                                        
int r counter++;
                                        
int t counter++;
                                        
Match match = new Match(array[r], array[t]);
                                        
match.Index MatchIndex++;
                                        
match.ID MatchCounter.Next;
                                        
Matches.TryAdd(match.IDmatch);
                                    }
                                    for (
int i 0t1Groupi++)
                                    {
                                        
ushort r counter++;
                                        
Match match = new Match(array[r]);
                                        
match.Index MatchIndex++;
                                        
match.ID MatchCounter.Next;
                                        
Matches.TryAdd(match.IDmatch);

                                    }
                                }
                                else
                                {
                                    
ushort counter 0;
                                    
int t3GroupCount = array.Length 16;
                                    for (
int i 0t3GroupCounti++)
                                    {
                                        
int r counter++;
                                        
int t counter++;
                                        
int y counter++;
                                        
Match match = new Match(array[r], array[t], array[y]);
                                        
match.Index MatchIndex++;
                                        
match.ID MatchCounter.Next;
                                        
Matches.TryAdd(match.IDmatch);
                                    }
                                    
int t2GroupCount = array.Length counter;
                                    for (
int i 0t2GroupCount 2i++)
                                    {
                                        
int r counter++;
                                        
int t counter++;
                                        
Match match = new Match(array[r], array[t]);
                                        
match.Index MatchIndex++;
                                        
match.ID MatchCounter.Next;
                                        
Matches.TryAdd(match.IDmatch);
                                    }
                                }
                                
pStamp Time32.Now.AddSeconds(60);
                                
pState States.T_Wait;
                                
SentNoWagers false;
                                
MatchArray Matches.Values.OrderByDescending(=> p.Players.Length).ToArray();
                                
Brackets CreateBrackets(MatchArray0ElitePKBrackets.UpdateList);
                                
Kernel.SendWorldMessage(Brackets);
                                
ElitePKBrackets brackets = new ElitePKBrackets(true);
                                
brackets.Type ElitePKBrackets.EPK_State;
                                
brackets.OnGoing true;
                                
Kernel.SendWorldMessage(brackets);
                            }
                        }
                        else if (
pState == States.T_Wait)
                        {
                            if (
TimeLeft == 0)
                            {
                                
int doneMatches 0;
                                
SendNoWagers();
                                foreach (var 
match in MatchArray)
                                {
                                    if (!
match.Completed)
                                    {
                                        if (!
match.Inside)
                                        {
                                            if (
match.MatchStats.Length 1)
                                            {
                                                
match.Import(Match.StatusFlag.InFight);
                                            }
                                            else
                                            {
                                                
match.Inside true;
                                                
match.Completed true;
                                                
match.Done true;
                                                
match.Flag Match.StatusFlag.OK;
                                                
match.MatchStats
                                                    
.First(=> != null).Flag
                                                     
FighterStats.StatusFlag.Qualified;
                                            }
                                        }
                                        else
                                        {
                                            
match.Check();
                                            if (!
match.Exported && (match.Done || match.TimeLeft == 0))
                                            {
                                                
match.Export();
                                                
match.Flag Match.StatusFlag.OK;
                                                if (
match.Players.Length == 3)
                                                {
                                                    
match.SwitchBetween();
                                                    var 
stat match.MatchStats.Where(=> p.Lost).ToArray();
                                                    foreach (var 
tea in stat)
                                                        
Remove(tea.UID);
                                                }
                                                else
                                                {
                                                    var 
stat match.MatchStats.Where(=> p.Lost).ToArray();
                                                    foreach (var 
tea in stat)
                                                        
Remove(tea.UID);
                                                    
match.Flag Match.StatusFlag.OK;
                                                }
                                            }

                                            if (
match.Exported)
                                                
doneMatches++;
                                        }
                                    }
                                    else
                                    {
                                        
doneMatches++;
                                    }
                                }
                                if (
doneMatches == Matches.Count)
                                {
                                    
bool finishedRound true;
                                    foreach (var 
match in MatchArray)
                                    {
                                        if (!
match.Completed)
                                        {
                                            
finishedRound false;
                                        }
                                    }
                                    if (!
finishedRound)
                                    {
                                        foreach (var 
match in MatchArray)
                                        {
                                            if (!
match.Completed)
                                            {
                                                foreach (var 
stats in match.MatchStats)
                                                {

                                                    
stats.Reset(false);
                                                }
                                                
match.Inside false;
                                                
match.Done false;
                                                
match.Exported false;
                                                
match.Flag Match.StatusFlag.SwitchOut;
                                            }
                                        }
                                        
pStamp Time32.Now.AddSeconds(60);
                                        
pState States.T_Wait;
                                        
SentNoWagers false;
                                        
// Kernel.SendWorldMessage(CreateBrackets(MatchArray, 0 ,ElitePKBrackets.GUIEdit));
                                        
Kernel.SendWorldMessage(CreateBrackets(MatchArray0ElitePKBrackets.RequestInformation));
                                    }
                                    else
                                    {
                                        
Matches.Clear();
                                        
Purge();
                                        
pState States.T_Organize;
                                    }
                                }
                            }
                        }
                    }

                    
#endregion
                    #region Top4Qualifier
                    
if (State == States.GUI_Top4Qualifier)
                    {
                        if (
pState == States.T_Organize)
                        {
                            
MatchIndex 0;
                            var array = 
Players.Values.ToArray();
                            foreach (var 
player in array)
                            {
                                
player["epk_prize"] = true;
                            }
                            
int[] taken = new int[array.Length];
                            
int lim taken.Length 2;
                            for (
int i 0taken.Length+= 2)
                            {
                                if (array.
Length 1)
                                {
                                    
Match match = new Match(array[i], array[1]);
                                    
match.Index MatchIndex++;
                                    
//match.Flag = Match.StatusFlag.FinalMatch;
                                    
match.ID MatchCounter.Next;
                                    
Matches.TryAdd(match.IDmatch);
                                }
                                else
                                {
                                    
Match match = new Match(array[i]);
                                    
match.Index MatchIndex++;
                                    
//match.Flag = Match.StatusFlag.FinalMatch;
                                    
match.ID MatchCounter.Next;
                                    
Matches.TryAdd(match.IDmatch);
                                }
                            }
                            
pStamp Time32.Now.AddSeconds(60);
                            
pState States.T_Wait;
                            
SentNoWagers false;
                            
MatchArray Matches.Values.ToArray();
                            var 
brackets CreateBrackets(MatchArray0ElitePKBrackets.GUIEdit);
                            
Kernel.SendWorldMessage(brackets);
                            var 
bracket CreateBrackets(MatchArray0ElitePKBrackets.UpdateList);
                            
Kernel.SendWorldMessage(bracket);
                            
Kernel.SendWorldMessage(new ElitePKBrackets(true)
                            {
                                
Group = (ushort)GroupID,
                                
Type 6,
                                
OnGoing true
                            
});
                        }
                        else if (
pState == States.T_Wait)
                        {
                            if (
TimeLeft == 0)
                            {
                                
SendNoWagers();

                                
int doneMatches 0;

                                foreach (var 
match in MatchArray)
                                {
                                    if (!
match.Completed)
                                    {
                                        if (!
match.Inside)
                                        {
                                            
match.Import(Match.StatusFlag.Watchable);
                                        }
                                        else
                                        {
                                            
match.Check();
                                            if (!
match.Exported && (match.Done || match.TimeLeft == 0))
                                                
match.Export();
                                            if (
match.Exported)
                                                
doneMatches++;
                                        }
                                    }
                                    else
                                        
doneMatches++;
                                }
                                if (
doneMatches == MatchArray.Length)
                                {
                                    
int i 4;
                                    foreach (var 
match in MatchArray)
                                    {
                                        foreach (var 
stats in match.MatchStats)
                                            if (
stats.Flag == FighterStats.StatusFlag.Lost)
                                                
Top8[Math.Min(7i++)] = stats.Clone();
                                        
match.Commit();
                                    }
                                    foreach (var list 
in Players.Values)
                                        if (list.
ElitePKStats.Lost)
                                        {
                                            
Remove(list.Entity.UID);
                                        }
                                    
State States.GUI_Top8Ranking;
                                }
                            }
                        }
                    }

                    
#endregion
                    #region Top2Qualifier

                    
if (State == States.GUI_Top2Qualifier)
                    {
                        if (
pState == States.T_Organize)
                        {
                            
MatchIndex 0;
                            
Top4MatchArray = new Match[2];
                            if (
MatchArray == null || MatchArray.Length == 0)
                            {
                                var array = 
Players.Values.ToArray();
                                
int[] taken = new int[array.Length];
                                
int mac 0;
                                for (
int i 0taken.Length+= 2)
                                {
                                    if (array.
Length 1)
                                    {
                                        
Match match = new Match(array[i], array[1]);
                                        
match.Index MatchIndex++;
                                        
match.ID MatchCounter.Next;
                                        
Top4MatchArray[mac++] = match;
                                        
Matches.TryAdd(match.IDmatch);
                                    }
                                    else
                                    {
                                        
Match match = new Match(array[i]);
                                        
match.Index MatchIndex++;
                                        
match.ID MatchCounter.Next;
                                        
Top4MatchArray[mac++] = match;
                                        
Matches.TryAdd(match.IDmatch);
                                    }
                                }
                                
MatchArray Matches.Values.ToArray();
                            }
                            else
                            {
                                for (
int i 0Top4MatchArray.Lengthi++)
                                {

                                    if (
MatchArray.Length 2)
                                    {
                                        foreach (var 
players in Players.Values)
                                        {
                                        }
                                        
Match match = new Match(
                                            
MatchArray[i].Return(=> p.Winner),
                                            
MatchArray[2].Return(=> p.Winner));
                                        
match.Index MatchIndex++;
                                        
match.ID MatchCounter.Next;
                                        
Top4MatchArray[i] = match;
                                        
Matches.TryAdd(match.IDmatch);
                                    }
                                    else
                                    {
                                        
Match match null;
                                        
match = new Match(//p.winer este
                                          
MatchArray[i].Return(=> p.Winner));//.MatchStats.First(p => p.Team.SkillFighterStats.Winner));
                                        
match.Index MatchIndex++;
                                        
match.ID MatchCounter.Next;
                                        
Top4MatchArray[i] = match;
                                        
Matches.TryAdd(match.IDmatch);
                                    }
                                }
                            }
                            
pStamp Time32.Now.AddSeconds(60);
                            
pState States.T_Wait;
                            
SentNoWagers false;
                            var 
brackets CreateBrackets(MatchArray0ElitePKBrackets.GUIEdit);
                            
Kernel.SendWorldMessage(brackets);
                            
brackets CreateBrackets(Top4MatchArray0ElitePKBrackets.UpdateList);
                            
Kernel.SendWorldMessage(brackets);
                            
Kernel.SendWorldMessage(new ElitePKBrackets(true)
                            {
                                
Group = (ushort)GroupID,
                                
Type 6,
                                
OnGoing true
                            
});
                        }
                        else if (
pState == States.T_Wait)
                        {
                            if (
TimeLeft == 0)
                            {
                                
SendNoWagers();
                                
int doneMatches 0;
                                foreach (var 
match in Top4MatchArray)
                                {
                                    if (!
match.Completed)
                                    {
                                        if (!
match.Inside)
                                        {
                                            
match.Import();
                                        }
                                        else
                                        {
                                            
match.Check();
                                            if (!
match.Exported && (match.Done || match.TimeLeft == 0))
                                                
match.Export();
                                            if (
match.Exported)
                                                
doneMatches++;
                                        }
                                    }
                                    else
                                        
doneMatches++;
                                }
                                if (
doneMatches == Top4MatchArray.Length)
                                {
                                    List<
GameState> list = new List<GameState>();
                                    foreach (var 
player in Players.Values)
                                        if (
player.ElitePKStats.Lost)
                                            list.
Add(player);
                                    foreach (var 
match in Top4MatchArray)
                                        
match.Commit();
                                    if (list.
Count == 1)
                                    {
                                        foreach (
GameState current in list)
                                        {
                                            
Remove(current.Entity.UID);
                                            
this.Top8[2] = current.ElitePKStats;
                                        }
                                        
this.State States.GUI_Top8Ranking;
                                    }
                                    else
                                    {
                                        
pState States.T_Organize;
                                        
State States.GUI_Top3;
                                    }
                                }
                            }
                        }
                    }

                    
#endregion
                    #region Top3

                    
if (State == States.GUI_Top3)
                    {
                        if (
pState == States.T_Organize)
                        {
                            
MatchIndex 0;
                            var 
brackets CreateBrackets(MatchArray0ElitePKBrackets.GUIEdit);
                            
Kernel.SendWorldMessage(brackets);
                            
ExtendedMatchArray = new Match[1];

                            
Match match = new Match(
                                
Top4MatchArray[0].Return(=> !p.Winner),
                                
Top4MatchArray[1].Return(=> !p.Winner));
                            
match.Index MatchIndex++;
                            
match.ID MatchCounter.Next;
                            
ExtendedMatchArray[0] = match;
                            
Matches.TryAdd(match.IDmatch);
                            
pStamp Time32.Now.AddSeconds(60);
                            
pState States.T_Wait;
                            
SentNoWagers false;
                            var 
bracket CreateBrackets(ExtendedMatchArray0ElitePKBrackets.UpdateList);
                            
Kernel.SendWorldMessage(bracket);
                            
Kernel.SendWorldMessage(new ElitePKBrackets(true)
                            {
                                
Group = (ushort)GroupID,
                                
Type 6,
                                
OnGoing true
                            
});
                        }
                        else if (
pState == States.T_Wait)
                        {
                            if (
TimeLeft == 0)
                            {
                                
SendNoWagers();
                                
int doneMatches 0;
                                var 
match ExtendedMatchArray[0];
                                {
                                    if (!
match.Completed)
                                    {
                                        if (!
match.Inside)
                                        {
                                            
match.Import();
                                        }
                                        else
                                        {
                                            
match.Check();
                                            if (!
match.Exported && (match.Done || match.TimeLeft == 0))
                                                
match.Export();
                                            if (
match.Exported)
                                                
doneMatches++;
                                        }
                                    }
                                    else
                                        
doneMatches++;
                                }
                                if (
doneMatches == ExtendedMatchArray.Length)
                                {
                                    var 
top3 ExtendedMatchArray[0].Players
                                        
.First(=> p.ElitePKStats.Winner);
                                    var 
top4 ExtendedMatchArray[0].Players
                                        
.First(=> !p.ElitePKStats.Winner);
                                    
Top8[2] = top3.ElitePKStats.Clone();
                                    
Top8[3] = top4.ElitePKStats.Clone();
                                    
top3.Entity.Teleport();
                                    
top4.Entity.Teleport();
                                    
Remove(top3.Entity.UID);
                                    
Remove(top4.Entity.UID);
                                    
pState States.T_Organize;
                                    
State States.GUI_Top8Ranking;
                                }
                            }
                        }
                    }

                    
#endregion
                    #region Top1
                    
if (State == States.GUI_Top1)
                    {
                        if (
pState == States.T_Organize)
                        {
                            
MatchIndex 0;
                            
ExtendedMatchArray = new Match[1];
                            
Match match = new Match(Players.Values.First(), Players.Values.Last());
                            
match.Index MatchIndex++;
                            
match.ID MatchCounter.Next;
                            
ExtendedMatchArray[0] = match;
                            
Matches.TryAdd(match.IDmatch);
                            
pStamp Time32.Now.AddSeconds(60);
                            
pState States.T_Wait;
                            
SentNoWagers false;
                            if (
MatchArray != null)
                            {
                                var 
brackets CreateBrackets(MatchArray0ElitePKBrackets.GUIEdit);
                                
Kernel.SendWorldMessage(brackets);
                            }
                            if (
Top4MatchArray != null)
                            {
                                
// Kernel.SendWorldMessage(CreateBrackets(Top4MatchArray, 0, ElitePKBrackets.UpdateList));
                            
}
                            
Kernel.SendWorldMessage(CreateBrackets(ExtendedMatchArray0ElitePKBrackets.UpdateList));

                            
Kernel.SendWorldMessage(new ElitePKBrackets(true)
                            {
                                
Group = (ushort)GroupID,
                                
Type 6,
                                
OnGoing true
                            
});
                        }
                        else if (
pState == States.T_Wait)
                        {
                            if (
TimeLeft == 0)
                            {
                                
SendNoWagers();
                                
int doneMatches 0;
                                foreach (var 
match in ExtendedMatchArray)
                                {
                                    if (!
match.Inside)
                                    {
                                        
match.Import();
                                    }
                                    else
                                    {
                                        
match.Check();
                                        if (!
match.Exported && (match.Done || match.TimeLeft == 0))
                                            
match.Export();
                                        if (
match.Exported)
                                            
doneMatches++;
                                    }
                                }
                                if (
doneMatches == ExtendedMatchArray.Length)
                                {
                                    var 
top1 ExtendedMatchArray[0].Players
                                        
.First(=> p.ElitePKStats.Winner).ElitePKStats;
                                    var 
top2 ExtendedMatchArray[0].Players
                                        
.First(=> !p.ElitePKStats.Winner).ElitePKStats;
                                    
Top8[0] = top1.Clone();
                                    
Top8[1] = top2.Clone();
                                    
ConstructTop8 DateTime.Now;
                                    foreach (var 
ai in Ais)
                                        
ai.Bot null;
                                    foreach (var 
player in Players.Values)
                                        
player.Entity.Teleport();
                                    
SaveTop8();
                                    
EliteStarted false;
                                    
State States.GUI_ReconstructTop;
                                    foreach (var 
client in Program.GamePoolRankings(client);
                                    var 
brackets CreateBrackets(ExtendedMatchArray0ElitePKBrackets.UpdateList);
                                    
Kernel.SendWorldMessage(brackets);
                                    
Kernel.SendWorldMessage(new ElitePKBrackets(true)
                                    {
                                        
Group = (ushort)GroupID,
                                        
Type 6,
                                        
OnGoing true
                                    
});

                                    foreach (var 
player in Players.Values)
                                        
Remove(player.Entity.UID);
                                }
                            }
                        }
                    }
                    
#endregion
                
}
            }
            catch (
Exception e)
            {
                
Console.WriteLine(e.ToString());
            }
        }
        private 
void SendNoWagers()
        {
            if (!
SentNoWagers)
            {
                
SentNoWagers true;
                
ElitePKBrackets noWagers = new ElitePKBrackets(true);
                
noWagers.Group = (ushort)GroupID;
                
noWagers.GUIType = (ushort)State;
                
noWagers.Type ElitePKBrackets.StopWagers;
                
Kernel.SendWorldMessage(noWagers);
            }
        }
        private 
ElitePKBrackets CreateBrackets(Match[] matchesint page 0byte type 0)
        {
            
int lim 0count 0;
            if (
matches == null) return new ElitePKBrackets(true);
            if (
State == States.GUI_Knockout)
            {
                if (
page matches.Length 5page 0;
                
lim 5;
            }
            else 
lim matches.Length;
            
count Math.Min(limmatches.Length page lim);
            
ElitePKBrackets brackets = new ElitePKBrackets(truecount);
            
brackets.Group = (ushort)GroupID;
            
brackets.GUIType = (ushort)State;
            
brackets.TotalMatches = (ushort)count;
            
brackets.Page = (byte)page;
            
brackets.TimeLeft TimeLeft;
            if (
type == States.GUI_Top2Qualifier)
                
brackets.MatchCount 2;
            else
                
brackets.MatchCount = (ushort)matches.Length;
            
brackets.Type type;
            for (
int i page limpage lim counti++)
                
brackets.Append(matches[i]);
            return 
brackets;
        }
        private 
void Remove(uint uid)
        {
            if (!
Players.ContainsKey(uid))
                return;
            if (
MaTrix.AI.Ais.ContainsKey(uid))
            {
                
Players[uid].RemoveScreenSpawn(Players[uid].Entityfalse);
                
MaTrix.AI.Ais.Remove(uid);
                
Players.Remove(uid);
                return;
            }
            
Players[uid].Entity.Teleport();
            
Players.Remove(uid);
        }
        public 
ushort TimeLeft
        
{
            
get
            
{
                
int value = (int)((pStamp.TotalMilliseconds Time32.Now.TotalMilliseconds) / 1000);
                if (
value 0) return 0;
                return (
ushort)value;
            }
        }
        public 
void Update(GameState clientint page 0)
        {
            try
            {
                if (
State == States.GUI_Top8Ranking)
                {
                    
Rankings(client);
                }
                else
                {
                    if (
State >= States.GUI_Top4Qualifier)
                    {
                        var 
brackets CreateBrackets(MatchArray0ElitePKBrackets.GUIEdit);
                        
client.Send(brackets);
                        if (
ExtendedMatchArray != null)
                        {
                            
brackets CreateBrackets(ExtendedMatchArray0ElitePKBrackets.UpdateList);
                            
client.Send(brackets);
                            foreach (var 
match in ExtendedMatchArray)
                                
match.Send(clientState);
                        }
                        else if (
Top4MatchArray != null)
                        {
                            
brackets CreateBrackets(Top4MatchArray0ElitePKBrackets.UpdateList);
                            
client.Send(brackets);
                            foreach (var 
match in Top4MatchArray)
                                
match.Send(clientState);
                        }
                        else
                        {
                            
brackets CreateBrackets(MatchArray0ElitePKBrackets.UpdateList);
                            
client.Send(brackets);
                            foreach (var 
match in MatchArray)
                            {
                                if (
match.Inside && !match.Done)
                                    
match.Flag Match.StatusFlag.Watchable;
                                
match.Send(clientState);
                            }
                        }
                    }
                    else
                    {
                        var 
brackets CreateBrackets(MatchArraypage);
                        
client.Send(brackets);
                    }
                    if (
State >= States.GUI_Top1)
                        
Rankings(client);
                }
            }
            catch (
Exception e) { Console.WriteLine(e.ToString()); }
        }
        public 
void Rankings(GameState client)
        {
            
ElitePKRanking ranks = new ElitePKRanking(true);
            
ranks.Type ElitePKRanking.Top8;
            
ranks.Group = (uint)GroupID;
            
ranks.GroupStatus = (uint)State;
            
ranks.UID client.Entity.UID;
            if (
State >= States.GUI_Top1)
            {
                
ranks.Type ElitePKRanking.Top3;
                if (
State == States.GUI_Top1)
                {
                    
ranks.Count 1;
                    
ranks.Append(Top8[2], 3);
                }
                else
                {
                    
ranks.Count 3;
                    for (
int i 03i++)
                        
ranks.Append(Top8[i], 1);
                }
                
client.Send(ranks);
            }
            else
            {
                
ranks.Count = (uint)Top8.Length;
                for (
int i 0ranks.Counti++)
                    if (
Top8[i] != null)
                        
ranks.Append(Top8[i], i);
                
client.Send(ranks);
            }
        }
    }


هيجيلك ايرورات كتير سيبك كل دا هيتحل في الاخر ركذ بس معايا
ابحث عن
كود PHP:

public unsafe class ElitePKBrackets 

هتلاقيها في كلاس ElitePKBrackets
هتمسح كل الي فيها وتضيف دول
كود PHP:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using XMeGo.Game;
using XMeGo.Client;

namespace 
XMeGo.Network.GamePackets
{
    public 
unsafe class ElitePKBrackets WriterInterfaces.IPacket
    
{
        public const 
byte
            InitialList 
0,
            
StaticUpdate 1,
            
GUIEdit 2,
            
UpdateList 3,
            
RequestInformation 4,
            
StopWagers 5,
            
EPK_State 6;

        private 
byte[] Buffer;

        public 
ElitePKBrackets(bool createint matches 0)
        {
            if (
create)
            {
                
Buffer = new byte[124 112 matches 8];
                
WriteUInt16((ushort)(Buffer.Length 8), 0Buffer);
                
WriteUInt16(22192Buffer);
            }
        }

        public 
byte Type
        
{
            
get { return Buffer[4]; }
            
set Buffer[4] = value; }
        }

        public 
byte Page
        
{
            
get { return Buffer[6]; }
            
set Buffer[6] = value; }
        }

        public 
byte Unknown
        
{
            
get { return Buffer[8]; }
            
set Buffer[8] = value; }
        }
        public 
uint MatchCount
        
{
            
get { return BitConverter.ToUInt32(Buffer10); }
            
set WriteUInt32(value10Buffer); }
        }
        public 
ushort Group
        
{
            
get { return BitConverter.ToUInt16(Buffer14); }
            
set WriteUInt16(value14Buffer); }
        }
        public 
ushort GUIType
        
{
            
get { return BitConverter.ToUInt16(Buffer16); }
            
set WriteUInt16(value16Buffer); }
        }
        public 
ushort TimeLeft
        
{
            
get { return BitConverter.ToUInt16(Buffer18); }
            
set WriteUInt16(value18Buffer); }
        }

        public 
uint TotalMatches
        
{
            
get { return BitConverter.ToUInt16(Buffer20); }
            
set WriteUInt32(value20Buffer); }
        }

        public 
bool OnGoing
        
{
            
get { return Buffer[20] == 1; }
            
set WriteBoolean(value20Buffer); }
        }

        private 
int offset 24;

        public 
void Append(ElitePK.Match match)
        {
            if (
match == null)
            {
                return;
            }
            if (
Type != GUIEdit)
                
WriteUInt32(match.IDoffsetBuffer);
            
offset += 4;
            
WriteUInt16((ushort)match.Players.LengthoffsetBuffer);
            
offset += 2;
            
WriteUInt16((ushort)match.IndexoffsetBuffer);
            
offset += 2;
            
WriteUInt16((ushort)match.FlagoffsetBuffer);
            
offset += 2;
            for (
int i 0match.Players.Lengthi++)
            {
                
AppendPlayer(match.MatchStats[i], offset);
                
offset += 34;
            }
            if (
match.Players.Length == 2offset += 34;
            if (
match.Players.Length == 1offset += 68;
            
// if (match.Players.Length == 0) offset += 102;
        
}
        private 
void AppendPlayer(ElitePK.FighterStats statsint _offset)
        {
            
WriteUInt32(stats.UID_offsetBuffer);
            
_offset += 4;
            
WriteUInt32(stats.Mesh_offsetBuffer);
            
_offset += 4;
            
WriteString(stats.Name_offsetBuffer);
            
_offset += 16;
            
WriteInt32(0_offsetBuffer);
            
_offset += 4;
            
WriteInt32((int)stats.Flag_offsetBuffer);
            
_offset += 4;
            
WriteInt32(stats.Advance 0_offsetBuffer);
        }

        public 
void Send(GameState client)
        {
            
client.Send(Buffer);
        }

        public 
byte[] ToArray()
        {
            return 
Buffer;
        }

        public 
void Deserialize(byte[] buffer)
        {
            
Buffer buffer;
        }
    }


بعدها ابحث عن
كود PHP:

 public unsafe class ElitePKMatchU 

امسح كل الي فيها وضيف دول
كود PHP:

// Project by Avalanche
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using XMeGo.Client;

namespace 
XMeGo.Network.GamePackets
{
    public 
unsafe class ElitePKMatchUI WriterInterfaces.IPacket
    
{
        public const 
byte
            Information 
1,
            
BeginMatch 2,
            
Effect 3,
            
EndMatch 4;

        public const 
uint
            Effect_Win 
1,
            
Effect_Lose 0;

        
byte[] Buffer;

        public 
ElitePKMatchUI(bool create)
        {
            if (
create)
            {
                
Buffer = new byte[52 8];
                
WriteUInt16(520Buffer);
                
WriteUInt16(22182Buffer);
            }
        }

        public 
uint Type
        
{
            
get { return BitConverter.ToUInt32(Buffer4); }
            
set WriteUInt32(value4Buffer); }
        }

        public 
uint dwParam
        
{
            
get { return BitConverter.ToUInt32(Buffer8); }
            
set WriteUInt32(value8Buffer); }
        }

        public 
uint OpponentUID
        
{
            
get { return BitConverter.ToUInt32(Buffer12); }
            
set WriteUInt32(value12Buffer); }
        }

        public 
string OpponentName
        
{
            
get { return Encoding.Default.GetString(Buffer2016).Trim(); }
            
set WriteString(value20Buffer); }
        }

        public 
uint TimeLeft
        
{
            
get { return BitConverter.ToUInt32(Buffer48); }
            
set WriteUInt32(value48Buffer); }
        }

        public 
void Append(GameState opponent)
        {
            
OpponentUID opponent.Entity.UID;
            
OpponentName opponent.Entity.Name;
        }

        public 
void Send(GameState client)
        {
            
client.Send(Buffer);
        }

        public 
byte[] ToArray()
        {
            return 
Buffer;
        }

        public 
void Deserialize(byte[] buffer)
        {
            
Buffer buffer;
        }
    }


بعدها ابحث عن
كود PHP:

public unsafe class ElitePKMatchStats 

امسح كل الي فيها وضيف دول
كود PHP:

// Project by Avalanche
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using XMeGo.Client;
using XMeGo.Game;

namespace 
XMeGo.Network.GamePackets
{
    public 
unsafe class ElitePKMatchStats WriterInterfaces.IPacket
    
{
        
byte[] Buffer;

        public 
ElitePKMatchStats()
        {
            
Buffer = new byte[64 8];
            
WriteUInt16(640Buffer);
            
WriteUInt16(22222Buffer);
        }

        public 
void Append(ElitePK.Match match)
        {
            
int offset 4;
            var array = 
match.FightersStats;
            if (array.
Length >= 2)
            {
                
AppendPlayer(array[0], offset);
                
offset += 28;
                
AppendPlayer(array[1], offset);
            }
        }
        private 
void AppendPlayer(ElitePK.FighterStats playerint offset)
        {
            
WriteUInt32(player.UIDoffsetBuffer); offset += 4;
            
WriteString(player.NameoffsetBuffer); offset += 16;
            
WriteUInt32(0offsetBuffer); offset += 4;
            
WriteUInt32(player.PointsoffsetBuffer); offset += 4;
        }

        public 
void Send(GameState client)
        {
            
client.Send(Buffer);
        }

        public 
byte[] ToArray()
        {
            return 
Buffer;
        }

        public 
void Deserialize(byte[] buffer)
        {
            
Buffer buffer;
        }
    }


بعدها ابحث عن
كود PHP:

public unsafe class ElitePKRanking 

امسح كل الي فيها وضيف دول
كود PHP:

// Project by Avalanche
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using XMeGo.Game;

namespace 
XMeGo.Network.GamePackets
{
    public 
unsafe class ElitePKRanking WriterInterfaces.IPacket
    
{
        public const 
byte Top8 0Top3 2;

        private 
byte[] buffer;
        public 
ElitePKRanking(bool create)
        {
            if (
create)
            {
                
buffer = new byte[420 8];
                
WriteUInt16(4200buffer);
                
WriteUInt16(22232buffer);
            }
        }

        public 
uint Type
        
{
            
get { return BitConverter.ToUInt32(buffer4); }
            
set WriteUInt32(value4buffer); }
        }

        public 
uint Group
        
{
            
get { return BitConverter.ToUInt32(buffer8); }
            
set WriteUInt32(value8buffer); }
        }

        public 
uint GroupStatus
        
{
            
get { return BitConverter.ToUInt32(buffer12); }
            
set WriteUInt32(value12buffer); }
        }

        public 
uint Count
        
{
            
get { return BitConverter.ToUInt32(buffer16); }
            
set WriteUInt32(value16buffer); }
        }

        public 
uint UID
        
{
            
get { return BitConverter.ToUInt32(buffer20); }
            
set WriteUInt32(value20buffer); }
        }

        private 
int Index 0;
        public 
void Append(ElitePK.FighterStats statsint rank)
        {
            if (
stats == null)
                return;
            
int offset 36 Index 44Index++;
            
WriteInt32(rankoffsetbuffer); offset += 4;
            
WriteString(stats.Nameoffsetbuffer); offset += 16;
            
WriteUInt32(stats.Meshoffsetbuffer); offset += 4;
            
WriteUInt32(0offsetbuffer); offset += 4;
            
WriteUInt32(0offsetbuffer); offset += 4;
            
WriteUInt32(stats.UIDoffsetbuffer);
        }
        public 
byte[] ToArray()
        {
            return 
buffer;
        }

        public 
void Send(Client.GameState client)
        {
            
client.Send(ToArray());
        }


        public 
void Deserialize(byte[] buffer)
        {
            
this.buffer buffer;
        }
    }


بعدها ابحث عن
كود PHP:

public class ElitePKTournament 

امسح كل الي فيها وحوط دول
كود PHP:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using XMeGo.Client;
using XMeGo.Network.GamePackets;

namespace 
XMeGo.Game
{
    public class 
ElitePKTournament
    
{
        public const 
byte
            EPK_Lvl100Minus 
0,
            
EPK_Lvl100To119 1,
            
EPK_Lvl120To129 2,
            
EPK_Lvl130Plus 3;
        public class 
top_typ
        
{
            public const 
byte Elite_PK_Champion__Low_ 12,
            
Elite_PK_2nd_Place_Low_ 13,
            
Elite_PK_3rd_Place_Low_ 14,
            
Elite_PK_Top_8__Low_ 15,
            
Elite_PK_Champion_High_ 16,
            
Elite_PK_2nd_Place_High_ 17,
            
Elite_PK_3rd_Place__High_ 18,
            
Elite_PK_Top_8_High_ 19;
        }
        public 
enum GroupTyp ushort
        
{
            
EPK_Lvl100Minus 0,
            
EPK_Lvl100To119 1,
            
EPK_Lvl120To129 2,
            
EPK_Lvl130Plus 3,
            
Count 4
        
}
        public static 
void ReceiceTitle(ElitePK tournamentbyte RankClient.GameState client)
        {
            if (
tournament.GroupID == (int)GroupTyp.EPK_Lvl130Plus)
            {
                if (
Rank == 1client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePKChamption_High0DateTime.Now.AddDays(1), true);
                else if (
Rank == 2client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePK2ndPlace_High0DateTime.Now.AddDays(1), true);
                else if (
Rank == 3client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePK3ndPlace_High0DateTime.Now.AddDays(1), true);
                else 
client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePK3ndPlace_Low0DateTime.Now.AddDays(1), true);
            }
            else
            {
                if (
Rank == 1client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePKChamption_Low0DateTime.Now.AddDays(1), true);
                else if (
Rank == 2client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePK2ndPlace_Low0DateTime.Now.AddDays(1), true);
                else if (
Rank == 3client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePK3ndPlace_Low0DateTime.Now.AddDays(1), true);
                else 
client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePK3ndPlace_Low0DateTime.Now.AddDays(1), true);
            }
        }
        public static 
bool GetReward(Client.GameState client)
        {
            foreach (var 
tournament in ElitePKTournament.Tournaments)
            {
                
byte Rank 0;
                if (!
client.Inventory.HaveSpace(1))
                {
                    
client.MessageBox("Please Empty Some Space"nullnull);
                    return 
false;
                }
                if (
tournament.GetReward(clientout Rank))
                {
                    if (
tournament.GroupID == (int)GroupTyp.EPK_Lvl130Plus && Rank == 1)
                    {
                        new 
TitleStorage().AddTitle(client600120false);
                    }
                    
tournament.SaveTop8();
                    
ReceiceTitle(tournamentRankclient);
                    
uint ItemID GetItemID(tournamentRank);
                    
Database.ConquerItemBaseInformation DBItem;
                    if (
Database.ConquerItemInformation.BaseInformations.TryGetValue(ItemIDout DBItem))
                    {
                        if (
client.Inventory.HaveSpace(1))
                            
client.Inventory.Add(ItemID01);
                    }
                    if (
tournament.GroupID == (int)GroupTyp.EPK_Lvl130Plus)
                    {
                        if (
Rank == 1)
                        {
                            
client.Entity.ConquerPoints += 250000000;
                            
//client.Entity.BoundCps += ServerRates.BoundCpsElitePk1;
                            
client.MessageBox("You've received a " DBItem.Name " , [" 250000000 "] ConquerPoints wing (WingsofInfernal)");
                            
string MSG "Congratulation to " client.Entity.Name "  he/she get rank " Rank " on Elite PK Tournament and claimed [" 250000000 "] ConquerPoints & wing (WingsofInfernal).";
                            
Kernel.SendWorldMessage(new Message(MSGSystem.Drawing.Color.RedMessage.System));
                            
XMeGo.Kernel.SendWorldMessage(new Message("Congratulation to " client.Entity.Name " ! he/she managed to get rank " Rank " on Elite PK Tournament and claimed [" 250000000 "] ConquerPoints & wing (WingsofInfernal)."System.Drawing.Color.BlackMessage.Center), Program.Values);
                        }
                        else if (
Rank == 2)
                        {
                            
client.Entity.ConquerPoints += 200000000;
                            
//client.Entity.BoundCps += ServerRates.BoundCpsElitePk2;
                            
client.MessageBox("You've received a " DBItem.Name " , [" 200000000 "] ConquerPoints ");
                            
string MSG "Congratulation to " client.Entity.Name " ! he/she managed to get rank " Rank " on Elite PK Tournament and claimed [" 200000000 "] ConquerPoints";
                            
Kernel.SendWorldMessage(new Message(MSGSystem.Drawing.Color.RedMessage.System));
                            
XMeGo.Kernel.SendWorldMessage(new Message("Congratulation to " client.Entity.Name " ! he/she managed to get rank " Rank " on Elite PK Tournament and claimed [" 200000000 "] ConquerPoints "System.Drawing.Color.BlackMessage.Center), Program.Values);
                        }
                        else if (
Rank == 3)
                        {
                            
client.Entity.ConquerPoints += 150000000;
                            
//client.Entity.BoundCps += ServerRates.BoundCpsElitePk3;
                            
client.MessageBox("You've received a " DBItem.Name " , [" 150000000 "] ConquerPoints");
                            
string MSG "Congratulation to " client.Entity.Name " ! he/she managed to get rank " Rank " on Elite PK Tournament and claimed [" 150000000 "] ConquerPoints ";
                            
Kernel.SendWorldMessage(new Message(MSGSystem.Drawing.Color.RedMessage.System));
                            
XMeGo.Kernel.SendWorldMessage(new Message("Congratulation to " client.Entity.Name " ! he/she managed to get rank " Rank " on Elite PK Tournament and claimed [" 150000000 "] ConquerPoints "System.Drawing.Color.BlackMessage.Center), Program.Values);

                        }
                        else
                        {
                            
client.Entity.ConquerPoints += 100000000;
                            
//client.Entity.BoundCps += ServerRates.BoundCpsElitePkOthe;
                            
client.MessageBox("You've received a " DBItem.Name " , [" 100000000 "] ConquerPoints ");
                            
string MSG "Congratulation to " client.Entity.Name " ! he/she managed to get rank " Rank " on Elite PK Tournament and claimed [" 100000000 "] ConquerPoints";
                            
Kernel.SendWorldMessage(new Message(MSGSystem.Drawing.Color.RedMessage.System));
                            
XMeGo.Kernel.SendWorldMessage(new Message("Congratulation to " client.Entity.Name " ! he/she managed to get rank " Rank " on Elite PK Tournament and claimed [" 100000000 "] ConquerPoints "System.Drawing.Color.BlackMessage.Center), Program.Values);
                            
Kernel.SendWorldMessage(new Message(MSGSystem.Drawing.Color.RedMessage.System));
                        }
                    }
                    return 
true;
                }
            }
            return 
false;
        }
        public static 
uint GetItemID(ElitePK tournamentbyte Rank)
        {
            return (
uint)(720714 * (byte)tournament.GroupID Math.Min(3, (Rank 1)) * 4);
        }
        public static 
ElitePK[] Tournaments;
        public const 
ushort WaitingAreaID 2068;
        public static 
bool TimersRegistered;

        public static 
void Create()
        {
            
Tournaments = new ElitePK[4];
            for (
int i 04i++)
                
Tournaments[i] = new ElitePK(i);
            
// ElitePK.LoadTop(ElitePKTournament.Tournaments, "ElitePkTop8");
        
}

        
//public static void GiveClientReward(Client.GameState client)
        //{
        //    DateTime timer = new DateTime();
        //    timer = DateTime.Now.AddDays(1);
        //    bool ReceiveHightRward = false;
        //    //for (int i = 0; i < EPK_Lvl130Plus+1; i++)
        //    //{
        //    //    var Tops = Tournaments[i].Top8;  
        //    //     if (Tops != null)
        //    //     {
        //    //         for (ushort x = 0; x < Tops.Length; x++)
        //    //         {
        //    //             if (Tops[x] != null)
        //    //             {
        //    //                 var obj_client = Tops[x];
        //    //                 if (obj_client.UID == client.Entity.UID)
        //    //                 { 
        //    //                 //الاكونت في التوب

        //    //                 }
        //    //             }
        //    //         }
        //    //     }
        //    //}
        //    var BigRewaurdDictionary = Tournaments[EPK_Lvl130Plus].Top8;
        //    if (BigRewaurdDictionary != null)
        //    {
        //        sbyte client_rank = -1;
        //        for (ushort x = 0; x < BigRewaurdDictionary.Length; x++)
        //        {
        //            if (BigRewaurdDictionary[x] != null)
        //            {
        //                var obj_client = BigRewaurdDictionary[x];
        //                if (obj_client.UID == client.Entity.UID)
        //                    client_rank = (sbyte)x;
        //            }
        //        }
        //        if (client_rank != -1)
        //        {
        //            ReceiveHightRward = true;

        //            if (client_rank == 0)
        //            {
        //                if (!client.Entity.Titles.ContainsKey(Network.GamePackets.TitlePacket.Titles.ElitePKChamption_High))
        //                    client.Entity.AddTopStatus((ulong)Network.GamePackets.TitlePacket.Titles.ElitePKChamption_High, timer, true);

        //                var EliteSecond = Network.GamePackets.TitlePacket.Titles.ElitePK2ndPlace_High;
        //                var EliteThird = Network.GamePackets.TitlePacket.Titles.ElitePK3ndPlace_High;
        //                var EliteEight = Network.GamePackets.TitlePacket.Titles.ElitePKChamption_Low;
        //                if (client.Entity.Titles.ContainsKey(EliteSecond))
        //                    client.Entity.RemoveTopStatus((ulong)EliteSecond);
        //                if (client.Entity.Titles.ContainsKey(EliteThird))
        //                    client.Entity.RemoveTopStatus((ulong)EliteThird);
        //                if (client.Entity.Titles.ContainsKey(EliteEight))
        //                    client.Entity.RemoveTopStatus((ulong)EliteEight);
        //            }
        //            else if (client_rank == 1)
        //            {
        //                if (!client.Entity.Titles.ContainsKey(Network.GamePackets.TitlePacket.Titles.ElitePK2ndPlace_High))
        //                    client.Entity.AddTopStatus((ulong)Network.GamePackets.TitlePacket.Titles.ElitePK2ndPlace_High, timer, true);

        //                var EliteChampion = Network.GamePackets.TitlePacket.Titles.ElitePKChamption_High;
        //                var EliteThird = Network.GamePackets.TitlePacket.Titles.ElitePK3ndPlace_High;
        //                var EliteEight = Network.GamePackets.TitlePacket.Titles.ElitePKChamption_Low;
        //                if (client.Entity.Titles.ContainsKey(EliteChampion))
        //                    client.Entity.RemoveTopStatus((ulong)EliteChampion);
        //                if (client.Entity.Titles.ContainsKey(EliteThird))
        //                    client.Entity.RemoveTopStatus((ulong)EliteThird);
        //                if (client.Entity.Titles.ContainsKey(EliteEight))
        //                    client.Entity.RemoveTopStatus((ulong)EliteEight);
        //            }
        //            else if (client_rank == 2)
        //            {
        //                if (!client.Entity.Titles.ContainsKey(Network.GamePackets.TitlePacket.Titles.ElitePK3ndPlace_High))
        //                    client.Entity.AddTopStatus((ulong)Network.GamePackets.TitlePacket.Titles.ElitePK3ndPlace_High, timer, true);

        //                var EliteChampion = Network.GamePackets.TitlePacket.Titles.ElitePKChamption_High;
        //                var EliteSecond = Network.GamePackets.TitlePacket.Titles.ElitePK2ndPlace_High;
        //                var EliteEight = Network.GamePackets.TitlePacket.Titles.ElitePKChamption_Low;
        //                if (client.Entity.Titles.ContainsKey(EliteChampion))
        //                    client.Entity.RemoveTopStatus((ulong)EliteChampion);
        //                if (client.Entity.Titles.ContainsKey(EliteSecond))
        //                    client.Entity.RemoveTopStatus((ulong)EliteSecond);
        //                if (client.Entity.Titles.ContainsKey(EliteEight))
        //                    client.Entity.RemoveTopStatus((ulong)EliteEight);
        //            }
        //            else
        //            {
        //                if (!client.Entity.Titles.ContainsKey(Network.GamePackets.TitlePacket.Titles.ElitePKTopEight_High))
        //                    client.Entity.AddTopStatus((ulong)Network.GamePackets.TitlePacket.Titles.ElitePKTopEight_High, timer, true);

        //                var EliteChampion = Network.GamePackets.TitlePacket.Titles.ElitePKChamption_High;
        //                var EliteSecond = Network.GamePackets.TitlePacket.Titles.ElitePK2ndPlace_High;
        //                var EliteThird = Network.GamePackets.TitlePacket.Titles.ElitePK3ndPlace_High;
        //                if (client.Entity.Titles.ContainsKey(EliteChampion))
        //                    client.Entity.RemoveTopStatus((ulong)EliteChampion);
        //                if (client.Entity.Titles.ContainsKey(EliteSecond))
        //                    client.Entity.RemoveTopStatus((ulong)EliteSecond);
        //                if (client.Entity.Titles.ContainsKey(EliteThird))
        //                    client.Entity.RemoveTopStatus((ulong)EliteThird);
        //            }
        //        }

        //    }
        //    if (!ReceiveHightRward)
        //    {
        //        sbyte client_rank = -1;
        //        for (byte i = 0; i < EPK_Lvl130Plus; i++)
        //        {
        //            var ditionaryLow = Tournaments[i].Top8;
        //            if (ditionaryLow != null)
        //            {
        //                for (byte x = 0; x < ditionaryLow.Length; x++)
        //                {
        //                    if (ditionaryLow[x] != null)
        //                    {
        //                        var obj = ditionaryLow[x];
        //                        if (obj.UID == client.Entity.UID)
        //                            client_rank = (sbyte)x;
        //                    }
        //                }
        //                if (client_rank != -1)
        //                {

        //                    if (client_rank == 0)
        //                    {
        //                        if (!client.Entity.Titles.ContainsKey(Network.GamePackets.TitlePacket.Titles.ElitePKChamption_Low))
        //                            client.Entity.AddTopStatus((ulong)Network.GamePackets.TitlePacket.Titles.ElitePKChamption_Low, timer, true);

        //                        var EliteEightSecond = Network.GamePackets.TitlePacket.Titles.ElitePK2ndPlace_Low;
        //                        var EliteEightThird = Network.GamePackets.TitlePacket.Titles.ElitePK3ndPlace_Low;
        //                        var EliteEight = Network.GamePackets.TitlePacket.Titles.ElitePKTopEight_Low;
        //                        if (client.Entity.Titles.ContainsKey(EliteEightSecond))
        //                            client.Entity.RemoveTopStatus((ulong)EliteEightSecond);
        //                        if (client.Entity.Titles.ContainsKey(EliteEightThird))
        //                            client.Entity.RemoveTopStatus((ulong)EliteEightThird);
        //                        if (client.Entity.Titles.ContainsKey(EliteEight))
        //                            client.Entity.RemoveTopStatus((ulong)EliteEight);
        //                    }
        //                    else if (client_rank == 1)
        //                    {
        //                        if (!client.Entity.Titles.ContainsKey(Network.GamePackets.TitlePacket.Titles.ElitePK2ndPlace_Low))
        //                            client.Entity.AddTopStatus((ulong)Network.GamePackets.TitlePacket.Titles.ElitePK2ndPlace_Low, timer, true);

        //                        var EliteEightChampion = Network.GamePackets.TitlePacket.Titles.ElitePKChamption_Low;
        //                        var EliteEightThird = Network.GamePackets.TitlePacket.Titles.ElitePK3ndPlace_Low;
        //                        var EliteEight = Network.GamePackets.TitlePacket.Titles.ElitePKTopEight_Low;
        //                        if (client.Entity.Titles.ContainsKey(EliteEightChampion))
        //                            client.Entity.RemoveTopStatus((ulong)EliteEightChampion);
        //                        if (client.Entity.Titles.ContainsKey(EliteEightThird))
        //                            client.Entity.RemoveTopStatus((ulong)EliteEightThird);
        //                        if (client.Entity.Titles.ContainsKey(EliteEight))
        //                            client.Entity.RemoveTopStatus((ulong)EliteEight);
        //                    }
        //                    else if (client_rank == 2)
        //                    {
        //                        if (!client.Entity.Titles.ContainsKey(Network.GamePackets.TitlePacket.Titles.ElitePK3ndPlace_Low))
        //                            client.Entity.AddTopStatus((ulong)Network.GamePackets.TitlePacket.Titles.ElitePK3ndPlace_Low, timer, true);

        //                        var EliteEightChampion = Network.GamePackets.TitlePacket.Titles.ElitePKChamption_Low;
        //                        var EliteEightSecond = Network.GamePackets.TitlePacket.Titles.ElitePK2ndPlace_Low;
        //                        var EliteEight = Network.GamePackets.TitlePacket.Titles.ElitePKTopEight_Low;
        //                        if (client.Entity.Titles.ContainsKey(EliteEightChampion))
        //                            client.Entity.RemoveTopStatus((ulong)EliteEightChampion);
        //                        if (client.Entity.Titles.ContainsKey(EliteEightSecond))
        //                            client.Entity.RemoveTopStatus((ulong)EliteEightSecond);
        //                        if (client.Entity.Titles.ContainsKey(EliteEight))
        //                            client.Entity.RemoveTopStatus((ulong)EliteEight);
        //                    }
        //                    else
        //                    {
        //                        if (!client.Entity.Titles.ContainsKey(Network.GamePackets.TitlePacket.Titles.ElitePKTopEight_Low))
        //                            client.Entity.AddTopStatus((ulong)Network.GamePackets.TitlePacket.Titles.ElitePKTopEight_Low, timer, true);

        //                        var EliteEightChampion = Network.GamePackets.TitlePacket.Titles.ElitePKChamption_Low;
        //                        var EliteEightSecond = Network.GamePackets.TitlePacket.Titles.ElitePK2ndPlace_Low;
        //                        var EliteEightThird = Network.GamePackets.TitlePacket.Titles.ElitePK3ndPlace_Low;
        //                        if (client.Entity.Titles.ContainsKey(EliteEightChampion))
        //                            client.Entity.RemoveTopStatus((ulong)EliteEightChampion);
        //                        if (client.Entity.Titles.ContainsKey(EliteEightSecond))
        //                            client.Entity.RemoveTopStatus((ulong)EliteEightSecond);
        //                        if (client.Entity.Titles.ContainsKey(EliteEightThird))
        //                            client.Entity.RemoveTopStatus((ulong)EliteEightThird);
        //                    } break;
        //                }
        //            }
        //        }
        //    }
        //}
        
public static byte GetEliteGroup(byte p)
        {
            if (
<= 99)
                return 
0;
            if (
>= 100 && <= 119)
                return 
1;
            if (
>= 120 && <= 130)
                return 
2;
            return 
3;
        }
        public static 
bool SignUp(GameState client)
        {
            
DateTime Now DateTime.Now;
            
//if (Now.DayOfWeek != DayOfWeek.Friday) return false;

            
byte tournament 0;
            if (
client.Entity.Level >= 130)
                
tournament EPK_Lvl130Plus;
            else if (
client.Entity.Level >= 120)
                
tournament EPK_Lvl120To129;
            else if (
client.Entity.Level >= 100)
                
tournament EPK_Lvl100To119;
            else
                
tournament EPK_Lvl100Minus;
            
//  tournament = EPK_Lvl130Plus;
            
int extraTime tournament;
            
extraTime *= 2;
            
//if((Now.Hour == 19 && Now.Minute >= 55) || (Now.Hour == 20 && Now.Minute < extraTime))
            
if (((Now.Hour == ElitePK.EventTime) && Now.Minute >= 1) || ((Now.Hour == ElitePK.EventTime 1) && Now.Minute extraTime))
            {
                
Tournaments[tournament].SignUp(client);
                return 
true;
            }
            return 
false;
        }

        public static 
void RegisterTimers()
        {
            if (
Tournaments == null) return;
            
TimersRegistered true;
            foreach (var 
epk in Tournaments)
                if (
epk != null)
                    
epk.SubscribeTimer();
        }
    }


بعدها ابحث عن
كود PHP:

public unsafe class ElitePKWager 

امسح كل الي فيها وضيف دول
كود PHP:

// Project by Avalanche
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using XMeGo.Game;
using XMeGo.Client;

namespace 
XMeGo.Network.GamePackets
{
    public 
unsafe class ElitePKWager WriterInterfaces.IPacket
    
{
        public const 
byte
            SetWager 
2;

        
byte[] Buffer;

        public 
ElitePKWager()
        {
        }

        public 
byte Type
        
{
            
get { return Buffer[4]; }
            
set Buffer[4] = value; }
        }

        public 
uint dwParam
        
{
            
get { return BitConverter.ToUInt32(Buffer8); }
            
set WriteUInt32(value8Buffer); }
        }

        public 
uint WagedUID
        
{
            
get { return BitConverter.ToUInt32(Buffer12); }
            
set WriteUInt32(value12Buffer); }
        }

        public 
uint Wager
        
{
            
get { return BitConverter.ToUInt32(Buffer20); }
            
set WriteUInt32(value20Buffer); }
        }

        public 
void Send(GameState client)
        {
            
client.Send(Buffer);
        }

        public 
byte[] ToArray()
        {
            return 
Buffer;
        }

        public 
void Deserialize(byte[] buffer)
        {
            
Buffer buffer;
        }
    }


بعدها ابحث عن
كود PHP:

 public unsafe class ElitePKWagersList 

امسح كل الي فيها وضيف دول
كود PHP:

// Project by Avalanche
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using XMeGo.Game;
using XMeGo.Client;

namespace 
XMeGo.Network.GamePackets
{
    public 
unsafe class ElitePKWagersList WriterInterfaces.IPacket
    
{
        public const 
byte
            SendList 
3,
            
RequestList 4;

        
byte[] Buffer;

        public 
ElitePKWagersList(bool createint matchcount 0)
        {
            if (
create)
            {
                
Buffer = new byte[12 matchcount 16 8];
                
WriteUInt16((ushort)(Buffer.Length 8), 0Buffer);
                
WriteUInt16(10652Buffer);
            }
        }

        public 
byte Group
        
{
            
get { return Buffer[4]; }
            
set Buffer[4] = value; }
        }

        public 
byte Page //not sure.
        
{
            
get { return Buffer[6]; }
            
set Buffer[6] = value; }
        }

        public 
uint TotalMatches
        
{
            
get { return BitConverter.ToUInt32(Buffer8); }
            
set WriteUInt32(value8Buffer); }
        }

        public 
uint WagedUID
        
{
            
get { return BitConverter.ToUInt32(Buffer12); }
            
set WriteUInt32(value12Buffer); }
        }

        public 
void Append(ElitePK.Match matchint index)
        {
            
int offset 12 index 16;
            var array = 
match.FightersStats;
            if (array.
Length == 2)
            {
                
WriteUInt32(array[0].UIDoffsetBuffer); offset += 4;
                
WriteUInt32(array[1].UIDoffsetBuffer); offset += 4;
                
WriteUInt32(array[0].WageroffsetBuffer); offset += 4;
                
WriteUInt32(array[1].WageroffsetBuffer); offset += 4;
            }
        }

        public 
void Send(GameState client)
        {
            
client.Send(Buffer);
        }

        public 
byte[] ToArray()
        {
            return 
Buffer;
        }

        public 
void Deserialize(byte[] buffer)
        {
            
Buffer buffer;
        }
    }


ابحث عن
كود PHP:

  public class ElitePKWatch 

امسح كل الي فيها وضيف دول
كود PHP:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using XMeGo.Game;
using XMeGo.Client;

namespace 
XMeGo.Network.GamePackets
{
    public class 
ElitePKWatch WriterInterfaces.IPacket
    
{
        public const 
byte
            RequestView 
0,
            
Watchers 2,
            
Leave 3,
            
Fighters 4;

        
byte[] Buffer;
        public 
byte Typ;
        public 
ElitePKWatch(bool createint watchers 0)
        {
            if (
create)
            {
                
Buffer = new byte[30 watchers 36 8];
                
WriteUInt16((ushort)(Buffer.Length 8), 0Buffer);
                
WriteUInt16(22112Buffer);
                
WatcherCount = (uint)watchers;
            }
        }

        public 
byte Type
        
{
            
get { return Buffer[4]; }
            
set Buffer[4] = value; }
        }

        public 
uint dwParam
        
{
            
get { return BitConverter.ToUInt32(Buffer6); }
            
set WriteUInt32(value6Buffer); }
        }

        public 
uint ID
        
{
            
get { return BitConverter.ToUInt32(Buffer10); }
            
set WriteUInt32(value10Buffer); }
        }

        public 
uint WatcherCount
        
{
            
get { return BitConverter.ToUInt32(Buffer14); }
            
set WriteUInt32(value14Buffer); }
        }

        public 
uint dwCheers1
        
{
            
get { return BitConverter.ToUInt32(Buffer18); }
            
set WriteUInt32(value18Buffer); }
        }

        public 
uint dwCheers2
        
{
            
get { return BitConverter.ToUInt32(Buffer22); }
            
set WriteUInt32(value22Buffer); }
        }

        
int index 0;
        public 
void Append(string name)
        {
            
int offset 34 index 32;
            
WriteString(nameoffsetBuffer);
            
index++;
        }
        public 
void Append(uint meshstring name)
        {
            
int offset 26 index 36;
            
//if (Typ == 1)
            // {
            //     offset = 18 + index * 36;
            // }           
            
WriteUInt32(meshoffsetBuffer);
            
offset += 4;
            
WriteString(nameoffsetBuffer);
            
index++;
        }
        public 
void Send(GameState client)
        {
            
client.Send(Buffer);
        }

        public 
byte[] ToArray()
        {
            return 
Buffer;
        }

        public 
void Deserialize(byte[] buffer)
        {
            
Buffer buffer;
        }
    }


بعدها هتروح علي كلاس npc هتروح علي npc بتاع الاليت بكيه هتمسحو وتضيف دا
كود PHP:

                            #region ElitePk
                            
case 448582:
                                {
                                    switch (
npcRequest.OptionID)
                                    {
                                        case 
0:
                                            {
                                                
dialog.Text("Glad to see you! I take it that you haven`t heard of the Elite PK Tournament, have you? No? Aha, please allow me to introduce this exciting event for you! It`s a new PK Tournament that takes place every Friday. You will be divided into four groups, based");
                                                
dialog.Text("~on your level. Not only will the top 3 winners of each group receive nice prizes, you will also receive EXP worth 1 EXP Ball and 1000 Honor points for each match you take part in at the end of that round. Do you want to have a go?");

                                                
dialog.Option("Tell~me~more~about~the~rules."1);
                                                
dialog.Option("Sign~me~up!"3);
                                                
dialog.Option("I~want~to~claim~my~prize!"5);
                                                
dialog.Option("Not~interested."255);
                                                
dialog.Avatar(26);
                                                break;
                                            }
                                        case 
1:
                                            {
                                                
dialog.Text("The Elite PK Tournament begins at 15:55 every day night, and players will be divided into four groups, which are the Under 100 group, the 100-119 group, the 120-129 group, and the 130+ group. You can sign up for it");
                                                
dialog.Text("~between 15:55 and 15:59. No admittance after the tournament begins. Players should first wait in the Waiting Area, and if you leave the area before your round, you will forfeit your chance. There will be a Knockout round before the Final.");
                                                
dialog.Text("~But if there are less than 8 players at the start of the Elite PK Tournament, the Final will be replaced by the Knockout. Each round in the Knockout lasts 3 minutes. At the end of 3 minutes, if no one is killed, the player with a higher score wins.");
                                                
dialog.Text("~After you finish your round, you`ll have to wait for all the other players to finish this round to enter the next round.");

                                                
dialog.Option("There~is~a~Final?"2);
                                                
dialog.Avatar(26);
                                                break;
                                            }
                                        case 
2:
                                            {
                                                
dialog.Text("Sure. When there are less than 8 players left in the field, the Final starts. Each round of the Final lasts for 5 minutes. Though all of the Top 8 players will receive nice prizes, the top 3 will earn special prizes! Claim your reward before the next");
                                                
dialog.Text("~week`s Elite PK Tournament begins, or you won`t get them. We hope everyone will join this tournament, and so not only will the top 3 winners of each group receive nice prizes, you will also receive EXP worth 1 EXP Ball and 1000 Honor");
                                                
dialog.Text("~points for each match you take part in at the end of that match!");

                                                
dialog.Option("Sign~me~up!"3);
                                                
dialog.Option("Not~interested."255);
                                                
dialog.Avatar(26);
                                                break;
                                            }
                                        case 
3:
                                            {
                                                if (!
ElitePKTournament.SignUp(client))//dy test only hmmmm oki 
                                                
{
                                                    
dialog.Text("Please sign up between " ElitePK.EventTime ":55 and " ElitePK.EventTime ":59 every night for the Elite PK Tournament.");

                                                    
dialog.Option("Okay."255);
                                                    
dialog.Avatar(26);
                                                }
                                                break;
                                            }
                                        case 
5:
                                            {
                                                
byte rank 0;
                                                
byte elitestage 0;
                                                if (
ElitePKTournament.GetReward(client))
                                                {
                                                    
uint cpsprice 0;
                                                    if (
rank == 1)
                                                    {
                                                        
cpsprice 150000000;
                                                        if (
elitestage == 3)
                                                            
client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePKChamption_High0DateTime.Now.AddDays(1), true);
                                                        else
                                                            
client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePKChamption_Low0DateTime.Now.AddDays(1), true);

                                                    }
                                                    else if (
rank == 2)
                                                    {
                                                        
cpsprice 100000000;
                                                        if (
elitestage == 3)
                                                            
client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePK2ndPlace_High0DateTime.Now.AddDays(1), true);
                                                        else
                                                            
client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePK2ndPlace_Low0DateTime.Now.AddDays(1), true);

                                                    }
                                                    else if (
rank == 3)
                                                    {
                                                        
cpsprice 50000000;
                                                        if (
elitestage == 3)
                                                            
client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePK3ndPlace_High0DateTime.Now.AddDays(1), true);
                                                        else
                                                            
client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePK3ndPlace_Low0DateTime.Now.AddDays(1), true);

                                                    }
                                                    else
                                                    {
                                                        
cpsprice 50000000;
                                                        if (
elitestage == 3)
                                                            
client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePKTopEight_High0DateTime.Now.AddDays(1), true);
                                                        else
                                                            
client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePKTopEight_Low0DateTime.Now.AddDays(1), true);

                                                    }
                                                    
client.Entity.ConquerPoints += cpsprice;
                                                    
Kernel.SendWorldMessage(new Network.GamePackets.Message("" client.Entity.Name " has receive " cpsprice " for rank " rank " in Elite Pk Tournament"Color.RedNetwork.GamePackets.Message.System).ToArray());
                                                }
                                                else
                                                {

                                                    
dialog.Text("Sorry, just the lider of 8 top teams will receive the reward!");
                                                    
dialog.Option("Ok thx."255);
                                                    
dialog.Send();
                                                }
                                                break;
                                            }
                                    }
                                    break;
                                }
                            
#endregion 

متنساش تغير case بتاعها بي id القديم

بعدها روح علي كلاس World
هتروح علي الرسالة بتاعت الاليت بكيه
هتمسحها وتبدلها بي دي
كود PHP:

            #region Elite PK Tournament
            
if (((Now64.Hour == ElitePK.EventTime) && Now64.Minute >= 55) && !ElitePKTournament.TimersRegistered)
            {
                
ElitePKTournament.RegisterTimers();
                
ElitePKBrackets brackets = new ElitePKBrackets(true0);
                
brackets.Type ElitePKBrackets.EPK_State;
                
brackets.OnGoing true;
                foreach (var 
client in Program.Values)
                {
                    new 
TitleStorage().RemoveTitle(client600120false);
                    
client.Send(brackets);
                    foreach (
Client.GameState Client in Kernel.GamePool.Values)
                    {
                        if (
client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Entity.Dead)
                        {
                            
client.ClaimedElitePk 0;
                            
EventAlert alert = new EventAlert
                            
{
                                
StrResID 10533,
                                
Countdown 60,
                                
UK12 1
                            
};
                            
client.Entity.StrResID 10533;
                            
client.Send(alert);
                        }
                    }
                }
            }
            if ((((
Now64.Hour == ElitePK.EventTime 1)) && Now64.Minute >= 10) && ElitePKTournament.TimersRegistered)
            {
                
bool done true;
                foreach (var 
epk in ElitePKTournament.Tournaments)
                    
//if (epk.Entitys.Count != 0)
                        
done false;
                if (
done)
                {
                    
ElitePKTournament.TimersRegistered false;
                    
ElitePKBrackets brackets = new ElitePKBrackets(true0);
                    
brackets.Type ElitePKBrackets.EPK_State;
                    
brackets.OnGoing false;
                    foreach (var 
client in Program.Values)
                        
client.Send(brackets);
                }
            }
            
#endregion 

علشان تحل الايرورات بقي تعمل اي هتغير XMeGo بي اسم البروجكت بتاعك
ولو جالك ايرور في Entity خليها Player

كدا احنا خلصنه الاليت بكيه انشاء الله مش يجيلك مشاكل فيه

صورة لي التوضيح

عفواً لايمكن عرض الروابط إلا بعد الرد على الموضوع

كدا خلصنه الاليت بكيه
نخوش بقي علي التيم بكيه

ابحث عن
كود PHP:

 public class TeamPkStatus 

امسح كل الي فيه وضيف دول
كود PHP:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.Concurrent;
using XMeGo.Network.GamePackets;
using System.IO;
using XMeGo.Database;
using XMeGo.MaTrix;

namespace 
XMeGo.Game.Features.Tournaments
{
    public class 
TeamPkStatus
    
{
        public static 
int EventTime 18;
        public 
void GetTeamPkReward(Client.GameState clientbyte Rank)
        {
            
uint ITEM_ID 0;
            switch (
Rank)
            {
                case 
0:
                    
ITEM_ID = (uint)(GetTeamGroup(client.Entity.Level));
                    break;
                case 
1:
                    
ITEM_ID = (uint)(720798 GetTeamGroup(client.Entity.Level));
                    break;
                case 
2:
                    
ITEM_ID = (uint)(720802 GetTeamGroup(client.Entity.Level));
                    break;
                default:
                    
ITEM_ID = (uint)(720806 GetTeamGroup(client.Entity.Level));
                    break;

            }
            
client.Inventory.Add(ITEM_ID01);
        }
        public static 
byte[] BlockOpenArena = new byte[] { 20086425587140160187130103021642041700848183101114118101114 };
        public 
byte GetTeamGroup(byte level)
        {
            if (
level >= 130)
                return 
3;
            if (
level >= 120)
                return 
3;
            if (
level >= 100)
                return 
1;
            else
                return 
0;
        }

        public 
enum top_typ
        
{
            
Elite_PK_Champion__Low_ 12,
            
Elite_PK_2nd_Place_Low_ 13,
            
Elite_PK_3rd_Place_Low_ 14,
            
Elite_PK_Top_8__Low_ 15,

            
Elite_PK_Champion_High_ 16,
            
Elite_PK_2nd_Place_High_ 17,
            
Elite_PK_3rd_Place__High_ 18,
            
Elite_PK_Top_8_High_ 19
        
}
        public class 
States
        
{
            public const 
byte
                GUI_Top8Ranking 
0,
                
GUI_Knockout 3,
                
GUI_Top8Qualifier 4,
                
GUI_Top4Qualifier 5,
                
GUI_Top2Qualifier 6,
                
GUI_Top3 7,
                
GUI_Top1 8,
                
GUI_ReconstructTop 9;

            public const 
byte
                T_Organize 
0,
                
T_CreateMatches 1,
                
T_Wait 2,
                
T_Fights 3,
                
T_Finished 4,

                
T_ReOrganize 5;
        }

    }
    public class 
TeamPk TeamPkStatus
    
{
        public 
enum GamePackets ushort
        
{
            
SkillEliteSetTeamName 2260,
            
SkillElitePkTop 2253,
            
SkillElitePkBrackets 2252,
            
SkillElitePKMatchStats 2251,
            
SkillElitePKMatchUI 2250,
            
TeamEliteSetTeamName 2240,
            
TeamPkTop 2233,
            
TeamPkBrackets 2232,
            
TeamPkMatchStats 2231,
            
TeamPkMatchUI 2230,
        }
        public class 
TeamTournament
        
{
            public static 
uint WaitingAreaID 2068;
            public static 
TeamPk[] Tournaments;
            public static 
bool Opened false;
            public static 
void Create()
            {
                try
                {
                    
Tournaments = new TeamPk[4];
                    for (
byte x 0Tournaments.Lengthx++)
                        
Tournaments[x] = new TeamPk(xGamePackets.TeamPkBrackets);

                    
//   LoadTop(Tournaments, "TeamPkTop8");
                
}
                catch (
Exception e)
                {
                    
Console.WriteLine(e.ToString());
                }

            }
            public static 
void Save()
            {
                
// SaveTop(Tournaments, "TeamPkTop8");
            
}
            public static 
bool GetReward(Client.GameState clientout byte rankout byte elitestage)
            {
                if (
Tournaments != null)

                    for (
byte x 0Tournaments.Lengthx++)
                    {
                        if (
Tournaments[x] != null)
                        {
                            if (
Tournaments[x].Top8 != null)
                            {
                                for (
byte i 0Tournaments[x].Top8.Lengthi++)
                                {
                                    if (
Tournaments[x].Top8[i] != null)
                                    {
                                        if (
Tournaments[x].Top8[i].LeaderUID == client.Entity.UID)
                                        {

                                            if (
Tournaments[x].Top8[i].RceiveReward == 0)
                                            {
                                                
rank = (byte)(1);
                                                
elitestage x;
                                                
Tournaments[x].Top8[i].RceiveReward 1;
                                                return 
true;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                
rank 0;
                
elitestage 0;
                return 
false;
            }
            public static 
void Open()
            {
                if (!
Opened)
                {
                    
Opened true;
                    for (
byte x 0Tournaments.Lengthx++)
                    {
                        
Tournaments[x].SubscribeTimer(1);
                        
Tournaments[x].AllowJoin true;
                    }
                    
Kernel.SendWorldMessage(new Message("The Team PK Tournament has start at 19:00. Prepare Yourself And Sign Up For it As a Team."System.Drawing.Color.WhiteMessage.BroadcastMessage), Program.Values);
                    foreach (var 
client in Program.GamePool)
                    {
                        
client.ClaimedTeampk 0;
                        
client.MessageBox("The Team PK Tournament began Would you like to join?",
                        
=> { p.Entity.Teleport(1002294148); }, null60);
                    }

                }
            }
            public static 
bool Join(Client.GameState clientbyte Grope)
            {
                if (
client.Team == null)
                    return 
false;

                if (
Grope <= 3)
                {
                    
client.Team.SetTeamFighterStats(true);
                    return 
Tournaments[Grope].SignUp(client);
                }
                return 
false;
            }
        }
        private 
void SaveTop8(string epk)
        {
            try
            {
                
int len Top8.Count(=> p.LeaderUID != 0);
                var 
stream = new MemoryStream();
                var 
writer = new BinaryWriter(stream);
                
writer.Write(len);
                for (
int i 0leni++)
                {
                    
writer.Write(Top8[i].LeaderUID);
                    
writer.Write(Top8[i].Name);
                    
writer.Write(Top8[i].LeaderMesh);
                    
writer.Write(Top8[i].Rank);
                    
writer.Write(Top8[i].Title);
                    
writer.Write(Top8[i].RceiveReward);
                }

                
string SQL "UPDATE `matrixvariable` SET data=@data where ID = '" epk "' ;";
                
byte[] rawData stream.ToArray();
                
using (var conn DataHolder.MySqlConnection)
                {
                    
conn.Open();
                    
using (var cmd = new MySql.Data.MySqlClient.MySqlCommand())
                    {
                        
cmd.Connection conn;
                        
cmd.CommandText SQL;
                        
cmd.Parameters.AddWithValue("@data"rawData);
                        
cmd.ExecuteNonQuery();
                    }
                }
            }
            catch (
Exception e)
            {
                
Console.WriteLine(e);
            }
        }
        private 
void LoadTop8(string epk)
        {
            try
            {
                
Top8 = new FighterStats[8];
                
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT))
                {
                    
cmd.Select("matrixvariable").Where("ID"epk);
                    
using (MySqlReader rdr = new MySqlReader(cmd))
                    {
                        if (
rdr.Read())
                        {
                            
byte[] data rdr.ReadBlob("data");
                            if (
data.Length 0)
                            {
                                
using (var stream = new MemoryStream(data))
                                
using (var reader = new BinaryReader(stream))
                                {
                                    
int len reader.ReadInt32();
                                    for (
int i 0leni++)
                                    {
                                        
Top8[i] = new FighterStats(reader.ReadUInt32(), reader.ReadString(), reader.ReadUInt32(), null);
                                        
Top8[i].Rank reader.ReadByte();
                                        
Top8[i].Title reader.ReadByte();
                                        
Top8[i].RceiveReward reader.ReadByte();
                                    }
                                }
                            }
                        }
                        else
                        {
                            
using (var command = new MySqlCommand(MySqlCommandType.INSERT))
                            {
                                
command.Insert("matrixvariable").Insert("ID"epk);
                                
command.Execute();
                            }
                        }
                    }
                }
            }
            catch (
Exception e)
            {

                
Console.WriteLine(e);
            }
        }
        public class 
FighterStats
        
{
            public 
enum StatusFlag int
            
{
                
None 0,
                
Fighting 2,
                
Lost 4,
                
Qualified 3,
                
Waiting 1,
            }
            public 
Game.ConquerStructures.Team Team;
            public 
string Name;
            public 
uint LeaderUID;
            public 
uint LeaderMesh;
            public 
bool OnNextMatch false;
            public 
uint Cheers;
            public 
uint Points;
            public 
StatusFlag Flag;
            public 
bool Teleported;
            public 
byte RceiveReward;
            public 
byte Title;
            public 
byte Rank;

            public 
bool Waiting get { return Flag == StatusFlag.Waiting; } }
            public 
bool NoFlag get { return Flag == StatusFlag.None; } }
            public 
bool Fighting get { return Flag == StatusFlag.Fighting; } }
            public 
bool Winner get { return Flag == StatusFlag.Qualified; } }
            public 
bool Lost get { return Flag == StatusFlag.Lost; } }


            public 
FighterStats(uint idstring nameuint meshGame.ConquerStructures.Team temate)
            {
                
LeaderUID id;
                
Name name;
                
LeaderMesh mesh;
                
Team temate;
            }
            public 
void Reset(bool noflag false)
            {
                
Points 0;
                
Cheers 0;
                if (!
noflag)
                {
                    if (!
Lost)
                        
Flag StatusFlag.Waiting;
                }
            }
            public 
FighterStats Clone()
            {
                
FighterStats stats = new FighterStats(LeaderUIDNameLeaderMeshTeam);
                
stats.Points this.Points;
                
stats.Flag this.Flag;

                return 
stats;
            }
            public 
override string ToString()
            {
                if (
Name.Contains('^'))
                    
Name.Replace("^""");
                if (
Name.Contains('#'))
                    
Name.Replace('#'' ');
                
StringBuilder build = new StringBuilder();
                
build.Append(LeaderUID "#" Name "#" LeaderMesh "#" Rank "#" Title "#" RceiveReward "");
                return 
build.ToString();
            }
            public 
void Load(string Line)
            {
                
string[] data Line.Split('#');
                
LeaderUID uint.Parse(data[0]);
                
Name data[1];
                
LeaderMesh uint.Parse(data[2]);
                
Rank byte.Parse(data[3]);
                
Title byte.Parse(data[4]);
                
RceiveReward byte.Parse(data[5]);
            }
        }

        public class 
Match
        
{
            public 
enum StatusFlag int
            
{
                
SwitchOut 0,
                
Watchable 1,
                
Waiting 3,

                
OK 2,
            }
            public 
IEnumerable<Client.GameStatePlayers
            
{
                
get
                
{

                    foreach (var 
team in MatchStats)
                        foreach (var 
player in team.Team.Players)
                            yield return 
player;
                }
            }
            public List<
uintCheerers = new List<uint>();
            public 
FighterStats[] MatchStats;
            public 
bool OnGoing get { return Flag == StatusFlag.Watchable; } }
            public 
int GroupID get { return (int)ID 100000 1; } }
            public 
uint TimeLeft
            
{
                
get
                
{
                    
int val 0;
                    if (
MatchStats.Length == 1)
                        
val 0;
                    else
                        
val = (int)((ImportTime.AddMinutes(10).TotalMilliseconds Time32.Now.TotalMilliseconds) / 1000);
                    if (
val 0)
                        
val 0;
                    return (
uint)val;
                }
            }
            public 
void Commit()
            {
                var 
matchStats = new FighterStats[MatchStats.Length];
                for (
int i 0matchStats.Lengthi++)
                {
                    
matchStats[i] = MatchStats[i].Clone();
                }
                
MatchStats matchStats;
            }
            public 
ConcurrentDictionary<uintClient.GameStateWatchers;

            public 
FighterStats Return(Func<FighterStatsboolfn)
            {
                foreach (var 
stat in MatchStats)
                    if (
stat != null)
                        if (
fn(stat))
                        {
                            return 
TeamTournament.Tournaments[GroupID].Teams[stat.Team.UID].TeamFighterStats;
                        }
                
MatchStats[0].Flag FighterStats.StatusFlag.Qualified;
                return 
MatchStats[0];
            }

            public 
uint ID;

            public 
StatusFlag Flag;
            public 
bool Inside;
            public 
bool Done;
            public 
bool Exported;

            public 
bool Completed;
            public 
ushort Index;

            public 
Time32 ImportTime;
            public 
Map Map;
            private 
Time32 DoneStamp;

            private 
int Imports;


            public 
void AliveMatch()
            {

                if (
Flag != StatusFlag.OK)
                {
                    if (
Inside && !Done)
                    {
                        foreach (var 
dismised in MatchStats)
                        {
                            if (
Flag != StatusFlag.OK)
                            {
                                if (
MatchStats.Length == 2)
                                {
                                    if (
MatchStats[0].Winner)
                                        return;
                                    if (
MatchStats[1].Winner)
                                        return;
                                }
                                if (!
dismised.Team.OnPopulates)
                                {
                                    if (
dismised.Waiting)
                                    {
                                        
dismised.Flag FighterStats.StatusFlag.Lost;
                                        
dismised.Team.TeamFighterStats.Flag FighterStats.StatusFlag.Lost;
                                    }
                                    if (!
dismised.Lost)
                                    {
                                        
Console.WriteLine("team " dismised.Team.TeamFighterStats.Name " has lost");
                                        
this.End(dismised.Team);
                                    }
                                }
                                else
                                {
                                    
CheckAlive(dismised.Team);
                                }
                            }
                        }
                    }
                }
            }

            public 
Match(params FighterStats[] teamates)
            {
                try
                {
                    
Map Kernel.Maps[700].MakeDynamicMap();
                    if (
teamates.Length == 1)
                    {
                        
Flag StatusFlag.OK;
                        
MatchStats = new FighterStats[1];
                        
MatchStats[0] = teamates[0].Team.TeamFighterStats;
                        
MatchStats[0].Team.TeamMatch this;
                        
MatchStats[0].Points 0;
                        
MatchStats[0].Cheers 0;
                        
MatchStats[0].Flag FighterStats.StatusFlag.Qualified;
                        
Flag StatusFlag.OK;
                        
Completed true;
                    }
                    else
                    {
                        
Watchers = new ConcurrentDictionary<uintClient.GameState>();
                        
MatchStats = new FighterStats[teamates.Length];
                        for (
int i 0teamates.Lengthi++)
                        {
                            
MatchStats[i] = teamates[i].Team.TeamFighterStats;
                            
MatchStats[i].Team.TeamMatch this;
                            
MatchStats[i].Flag FighterStats.StatusFlag.Waiting;
                            
MatchStats[i].Points 0;
                            
MatchStats[i].Cheers 0;
                            
MatchStats[i].Teleported false;
                        }
                        if (
MatchStats.Length == 3)
                            
MatchStats[0].Flag FighterStats.StatusFlag.None;

                        
Imports 0;
                        
Flag StatusFlag.Waiting;
                    }
                }
                catch (
Exception e) { Console.WriteLine(e.ToString()); }
            }
            public 
void Import(StatusFlag flag StatusFlag.Watchable)
            {
                try
                {
                    
Imports++;
                    
Exported Done false;
                    
Inside true;
                    
Flag flag;
                    
ImportTime Time32.Now;

                    if (
MatchStats.Length 1)
                    {
                        
Game.ConquerStructures.Team team1 nullteam2 null;
                        for (
int i 0MatchStats.Lengthi++)
                            if (!
MatchStats[i].NoFlag && !MatchStats[i].Lost)
                                if (
team1 == null)
                                    
team1 MatchStats[i].Team;
                                else
                                    
team2 MatchStats[i].Team;
                        if (!
team1.CanFightTeamPK)
                        {
                            
Exported Done true;
                            
Flag StatusFlag.OK;
                            if (
MatchStats.Length == 3)
                                
Flag StatusFlag.SwitchOut;
                            
Completed true;
                            var 
statsArray team2.Teammates;
                            
team1.TeamFighterStats.Flag FighterStats.StatusFlag.Lost;
                            
team2.TeamFighterStats.Flag FighterStats.StatusFlag.Qualified;
                            return;
                        }
                        if (!
team2.CanFightTeamPK)
                        {
                            
Exported Done true;
                            
Flag StatusFlag.OK;
                            if (
MatchStats.Length == 3)
                                
Flag StatusFlag.SwitchOut;
                            
Completed true;
                            var 
statsArray team2.Teammates;
                            
team2.TeamFighterStats.Flag FighterStats.StatusFlag.Lost;
                            
team1.TeamFighterStats.Flag FighterStats.StatusFlag.Qualified;
                            return;
                        }
                        
team1.TeamFighterStats.Flag FighterStats.StatusFlag.Fighting;
                        
team2.TeamFighterStats.Flag FighterStats.StatusFlag.Fighting;
                        
importPlayer(team1team2);
                        
importPlayer(team2team1);
                        
team1.TeamMatch this;
                        
team2.TeamMatch this;
                        
Network.GamePackets.TeamPkBrackets brackets = new Network.GamePackets.TeamPkBrackets(1);
                        {
                            
brackets.Group = (ushort)GroupID;
                            
brackets.GUIType = (ushort)TeamTournament.Tournaments[GroupID].State;
                            
brackets.TotalMatchesOnRoom brackets.MatchCount 1;
                            
brackets.Type Network.GamePackets.TeamPkBrackets.StaticUpdate;
                            
brackets.Append(this);
                            
Kernel.SendWorldMessage(brackets.ToArray());
                        }
                        
MapStatus status = new MapStatus();
                        
status.BaseID 700;
                        
status.ID Map.ID;
                        
status.Statu 768946643047;
                        
SendMapPacket(status.ToArray());
                    }
                    else
                    {
                        
Done true;
                        
Flag StatusFlag.OK;
                        
Exported true;
                        
Completed true;
                        
MatchStats[0].Flag FighterStats.StatusFlag.Qualified;
                    }
                }
                catch (
Exception e)
                {
                    
Console.WriteLine(e);
                }
            }
            public 
void SendMapPacket(byte[] buffer)
            {
                foreach (var 
player in Players)
                    if (
player.Entity.MapID == Map.ID)
                        
player.Send(buffer);
            }
            private 
void importPlayer(Game.ConquerStructures.Team teamoneGame.ConquerStructures.Team opponent)
            {
                if (
MatchStats.Length 1)
                {
                    
teamone.TeamFighterStats.Teleported true;
                    
opponent.TeamFighterStats.Teleported true;
                    
//   ushort x = 0; ushort y = 0;
                    
foreach (var player in teamone.Players)
                    {
                        if (
player.Entity.MapID != TeamPk.TeamTournament.Tournaments[GroupID].WaitingArea.ID)
                            continue;
                        if (
player.Entity.ContainsFlag(Network.GamePackets.Update.Flags.Ride))
                        {
                            
player.Entity.RemoveFlag(Network.GamePackets.Update.Flags.Ride);
                        }
                        var 
coords Map.RandomCoordinates();
                        
player.Entity.Teleport(Map.BaseIDMap.IDcoords.Item1coords.Item2);
                        
player.Entity.BringToLife();
                        
player.Entity.TeamWatchingMatch null;
                        
Network.GamePackets.TeamPkMatchUI ui = new Network.GamePackets.TeamPkMatchUI();
                        {
                            
ui.Append(opponent);
                            
ui.TimeLeft TimeLeft;
                            
ui.Type Network.GamePackets.TeamPkMatchUI.BeginMatch;
                            
player.Send(ui.ToArray());
                        }
                        
player.Send(CreateUpdate().ToArray());
                        
player.CantAttack Time32.Now.AddSeconds(11);
                        
player.Entity.PrevPKMode player.Entity.PKMode;
                        
player.Entity.PKMode Enums.PKMode.Team;
                        
Network.GamePackets.Data dat = new Network.GamePackets.Data(true);
                        {
                            
dat.UID player.Entity.UID;
                            
dat.ID Network.GamePackets.Data.ChangePKMode;
                            
dat.dwParam = (uint)player.Entity.PKMode;
                            
player.Send(dat.ToArray());
                        }
                    }
                }
                else
                {
                    
MatchStats[0].Flag FighterStats.StatusFlag.Qualified;
                    
Done true;
                    
Flag StatusFlag.OK;
                    
Exported true;
                    
Completed true;
                }

            }
            public 
void CheckAlive(Game.ConquerStructures.Team team)
            {
                
bool dead true;
                foreach (var 
players in team.Teammates)
                {
                    if (
players.Entity.MapID == Map.ID)
                    {
                        if (
players.Entity.Hitpoints 0)
                            
dead false;
                    }
                }
                if (
dead)
                    
End(team);
            }
            public 
void End(Game.ConquerStructures.Team team)
            {
                try
                {

                    if (
MatchStats.Length == 1)
                    {
                        
MatchStats[0].Flag FighterStats.StatusFlag.Qualified;
                        
Flag StatusFlag.OK;
                        return;
                    }
                    if (
Done) return;
                    
Done true;
                    
DoneStamp Time32.Now;
                    
Flag StatusFlag.OK;
                    
team.TeamFighterStats.Flag FighterStats.StatusFlag.Lost;
                    
Network.GamePackets.TeamPkMatchUI ui = new Network.GamePackets.TeamPkMatchUI();
                    {
                        
ui.Type Network.GamePackets.TeamPkMatchUI.Effect;
                        
ui.dwParam Network.GamePackets.TeamPkMatchUI.Effect_Lose;
                        
team.SendMesageTeam(ui.ToArray(), 0);

                        var 
team_win targetOfWin(team);
                        if (
team_win != null)
                        {
                            
ui.Append(team_win.Team);
                            
ui.dwParam Network.GamePackets.TeamPkMatchUI.Effect_Win;

                            foreach (var 
target in team_win.Team.Players)
                            {
                                
target.Send(ui.ToArray());
                                
ui.Type Network.GamePackets.TeamPkMatchUI.EndMatch;
                                
team.SendMesageTeam(ui.ToArray(), 0);
                                
target.Send(ui.ToArray());

                                
ui.Type Network.GamePackets.TeamPkMatchUI.Reward;
                                
target.Send(ui.ToArray());

                                if (
Imports == || MatchStats.Length != || MatchStats[0] == null)
                                {
                                    
team_win.Flag FighterStats.StatusFlag.Qualified;
                                }
                                else
                                {
                                    var 
dictionar MatchStats.Where(=> !p.Lost).ToArray();
                                    if (
dictionar.Length == 2)
                                    {
                                        
Flag StatusFlag.SwitchOut;
                                        
team_win.Flag FighterStats.StatusFlag.Waiting;
                                        
team_win.OnNextMatch true;
                                    }
                                    else
                                        
team_win.Flag FighterStats.StatusFlag.Qualified;
                                }
                            }

                        }
                    }
                    
Network.GamePackets.TeamPkBrackets brackets = new Network.GamePackets.TeamPkBrackets(1);
                    {
                        
brackets.Group = (ushort)GroupID;
                        
brackets.GUIType = (ushort)TeamTournament.Tournaments[GroupID].State;
                        
brackets.TotalMatchesOnRoom brackets.MatchCount 1;
                        
brackets.Type Network.GamePackets.TeamPkBrackets.StaticUpdate;
                        
brackets.Append(this);
                        
Kernel.SendWorldMessage(brackets.ToArray());
                    }
                    foreach (var 
clien in Watchers.Values)
                        if (
clien.Entity.MapID == Map.ID)
                            
LeaveWatch(clien);
                }
                catch (
Exception e) { Console.WriteLine(e.ToString()); }
            }
            public 
void Export()
            {
                try
                {
                    if (
Time32.Now DoneStamp.AddSeconds(3) || TimeLeft == 0)
                    {
                        
#region !Done
                        
if (!Done)
                        {
                            if (
MatchStats.Length == 1)
                            {
                                
MatchStats[0].Flag FighterStats.StatusFlag.Qualified;
                                
Flag StatusFlag.OK;
                                
Exported true;

                                
Exported true;
                                
Completed true;
                                return;
                            }
                            else
                            {
                                var 
fighters MatchStats.Where(=> p.Fighting).OrderBy(=> p.Points).ThenBy(=> p.Cheers).ToArray();
                                for (
int i 0fighters.Lengthi++)
                                {
                                    var 
team fighters[i];
                                    
End(team.Team);

                                }
                                
//var fighters = MatchStats.Where(p => p.Fighting).ToArray();
                                //if (fighters.Length > 1)
                                //{
                                //    if (fighters[0].Fighting && fighters[1].Fighting)
                                //    {
                                //        if (fighters[0].Points == fighters[1].Points)
                                //            End(fighters.Last(p => p.Team.UID == fighters[0].Team.UID).Team);
                                //        else
                                //        {
                                //            if (fighters[0].Points > fighters[1].Points)
                                //                End(fighters.Last(p => p.Team.UID == fighters[0].Team.UID).Team);
                                //            else
                                //                End(fighters.Last(p => p.Team.UID == fighters[1].Team.UID).Team);
                                //        }
                                //    }
                                //}
                                //else if (fighters.Length == 1)
                                //    End(fighters.First(p => p.Team.UID == fighters[0].Team.UID).Team);
                            
}
                        }
                        
#endregion
                        
foreach (var teams in MatchStats)
                        {
                            if (
teams != null)
                            {
                                if (!
teams.Waiting && teams.Teleported || teams.OnNextMatch)
                                {
                                    foreach (var 
player in teams.Team.Players)
                                    {

                                        if (
player.Entity.MapID == Map.ID)
                                        {
                                            
player.Entity.BringToLife();
                                            
Data dat = new Data(true);
                                            
dat.UID player.Entity.UID;
                                            
dat.ID Data.ChangePKMode;
                                            
dat.dwParam = (uint)player.Entity.PrevPKMode;
                                            
player.Send(dat);
                                            var 
map TeamTournament.Tournaments[GroupID].WaitingArea;
                                            var 
coords map.RandomCoordinates();
                                            
player.Entity.Teleport(map.IDcoords.Item1coords.Item2);
                                            if (
player.Entity.Hitpoints == 0)
                                                
player.Entity.BringToLife();
                                            
MapStatus status = new MapStatus();
                                            
status.BaseID map.BaseID;
                                            
status.ID map.ID;
                                            
status.Statu 2568946643047;
                                            
player.Send(status);
                                        }
                                    }
                                    
teams.Teleported true;
                                }
                            }
                        }

                        
Exported true;
                        
Completed true;
                    }
                }
                catch (
Exception e) { Console.WriteLine(e.ToString()); }
            }

            public 
void SwitchBetween()
            {
                if (
Imports == && MatchStats.Length == && MatchStats[0] != null && !MatchStats[0].Lost)
                {
                    
MatchStats[0].Flag FighterStats.StatusFlag.Waiting;
                    if (
MatchStats[1].Winner)
                    {
                        
MatchStats[1].Teleported false;
                        
MatchStats[1].Flag FighterStats.StatusFlag.Waiting;

                    }
                    if (
MatchStats[2].Winner)
                    {
                        
MatchStats[2].Teleported false;
                        
MatchStats[2].Flag FighterStats.StatusFlag.Waiting;
                    }
                    
Completed false;
                }
            }
            public 
TeamPk.FighterStats targetOfWin(Game.ConquerStructures.Team team)
            {
                var 
dictionar MatchStats.Where(=> p.Fighting).ToArray();
                for (
int i 0dictionar.Lengthi++)
                    if (
dictionar[i] != null)
                        if (
dictionar[i].Team.UID != team.UID)
                            return 
dictionar[i];
                return 
null;
            }
            public 
TeamPkMatchStats CreateUpdate()
            {
                
Network.GamePackets.TeamPkMatchStats stats = new Network.GamePackets.TeamPkMatchStats();
                
stats.Append(this);
                return 
stats;
            }
            public 
void BeginWatch(Client.GameState client)
            {
                if (
client.Entity.TeamWatchingMatch != null) return;
                if (
Watchers.ContainsKey(client.Entity.UID)) return;
                
Watchers.TryAdd(client.Entity.UIDclient);
                
client.Entity.TeamWatchingMatch this;
                
client.Entity.WatchingArena 1;
                var 
coords Map.RandomCoordinates();
                
client.Entity.Teleport(Map.BaseIDMap.IDcoords.Item1coords.Item2);
                
Network.GamePackets.ElitePKWatch watch = new Network.GamePackets.ElitePKWatch(trueMatchStats.Length);
                
watch.dwParam MatchStats.First().Team.UID;
                
watch.Type Network.GamePackets.ElitePKWatch.RequestView;
                
watch.dwCheers1 MatchStats[0].Cheers;
                
watch.dwCheers2 MatchStats[1].Cheers;
                
client.Send(watch.ToArray());
                
client.Send(CreateUpdate().ToArray());
                
UpdateWatchers();

                
client.Entity.PKMode Enums.PKMode.Capture;
                
client.Entity.Send(new Data(true) { UID client.Entity.UIDID Data.ChangePKModedwParam = (uint)client.Entity.PKMode });
            }
            public 
void Update()
            {
                try
                {
                    var 
update CreateUpdate();
                    foreach (var 
player in Players)
                        if (
player != null)
                            if (
player.Team.TeamFighterStats.Fighting)
                                
player.Send(update.ToArray());
                    foreach (var 
watch in Watchers.Values)
                        if (
watch != null)
                            
watch.Send(update.ToArray());
                }
                catch (
Exception e)
                {
                    
Console.WriteLine(e);
                }
            }
            public 
void UpdateWatchers()
            {
                
Network.GamePackets.ElitePKWatch watch = new Network.GamePackets.ElitePKWatch(trueWatchers.Count);
                {
                    
watch.ID ID;
                    
watch.Type Network.GamePackets.ElitePKWatch.Watchers;
                    
watch.WatcherCount = (uint)Watchers.Count;
                    
watch.dwCheers1 MatchStats[0].Cheers;
                    
watch.dwCheers2 MatchStats[1].Cheers;
                    foreach (var 
pClient in Watchers.Values)
                        
watch.Append(pClient.Entity.MeshpClient.Entity.Name);
                    foreach (var 
pClient in Watchers.Values)
                        
pClient.Send(watch.ToArray());
                    foreach (var 
pClient in Players)
                        if (
pClient != null)
                            
pClient.Send(watch.ToArray());
                }
            }
            public 
void LeaveWatch(Client.GameState client)
            {
                if (
Watchers.TryRemove(client.Entity.UIDout client))
                {
                    if (!
Done)
                        
UpdateWatchers();
                    
client.Entity.TeamWatchingMatch null;
                    
client.Send(new Network.GamePackets.ElitePKWatch(true) { ID IDType Network.GamePackets.ElitePKWatch.Leave }.ToArray());

                    if (
Program.EventsMap.Contains(client.Entity.PreviousMapID))
                        
client.Entity.Teleport(1002300278);
                    else
                        
client.Entity.PreviousTeleport();
                }
            }

            public 
void Cheer(Client.GameState clientuint fighter)
            {
                if (!
this.Cheerers.Contains(client.Entity.UID))
                {
                    
Cheerers.Add(client.Entity.UID);
                    
ElitePKWatch watch = new ElitePKWatch(trueMatchStats.Length);
                    
watch.ID ID;
                    
watch.Type ElitePKWatch.Fighters;
                    
watch.dwCheers1 MatchStats[0].Cheers;
                    
watch.dwCheers2 MatchStats[1].Cheers;
                    if (
MatchStats[0].LeaderUID == fighter)
                    {
                        
watch.Append(0MatchStats[0].Name);
                        
MatchStats[0].Cheers += 1;
                    }
                    else if (
MatchStats[1].LeaderUID == fighter)
                    {
                        
watch.Append(0MatchStats[1].Name);
                        
MatchStats[1].Cheers += 1;
                    }
                    
watch.Append(client.Entity.Name);
                    foreach (var 
watchers in Watchers.Values)
                        
watchers.Send(watch);
                    foreach (var 
fighters in Players)
                        
fighters.Send(watch);
                    
UpdateWatchers();
                    
SendGlobal(CreateUpdate().ToArray());
                }
            }
            public 
void SendGlobal(byte[] buffer)
            {
                foreach (var 
pClient in Watchers.Values)
                    if (
pClient != null)
                        
pClient.Send(buffer);
                foreach (var 
pClient in Players)
                    if (
pClient != null)
                        
pClient.Send(buffer);
            }
        }
        public 
FighterStats[] Top8 = new FighterStats[0];
        public 
ConcurrentDictionary<uintGame.ConquerStructures.TeamTeams;
        public 
ConcurrentDictionary<uintMatchMatches;
        private 
Match[] MatchArray;
        public 
Match[] Top4MatchArray;
        public 
Match[] ExtendedMatchArray;
        private 
Counter MatchCounter;
        private 
ushort MatchIndex;

        public 
bool IsAlive false;
        public 
DateTime ConstructTop8 = new DateTime();
        public 
Map WaitingArea;
        public 
int State;
        private 
int pState States.T_Organize;
        public 
int GroupID;
        private 
bool willAdvance;

        private 
Time32 pStamp;
        public 
GamePackets ID;
        public 
void Remove(uint uid)
        {
            if (!
Teams.ContainsKey(uid))
                return;
            foreach (var 
teamtes in Teams[uid].Teammates)
            {
                
//teamtes.Team.TeamMatch = null;
                
if (teamtes.Entity.MapID == WaitingArea.ID)
                    
teamtes.Entity.Teleport();
                
teamtes.InTeamPK false;
            }
            
Teams.Remove(uid);
        }
        public 
ushort TimeLeft
        
{
            
get
            
{
                
int value = (int)((pStamp.TotalMilliseconds Time32.Now.TotalMilliseconds) / 1000);
                if (
value 0) return 0;
                return (
ushort)value;
            }
        }



        public 
TeamPk(int groupGamePackets T_ID)
        {
            if (!
IsAlive)
            {

                
ID T_ID;
                
IsAlive true;
                
Teams = new ConcurrentDictionary<uintConquerStructures.Team>();
                
Matches = new ConcurrentDictionary<uintMatch>();

                
GroupID group;

                var 
name "TeamPk";

                
LoadTop8(string.Format("{0}{1}"nameGroupID));

                
MatchCounter = new Counter((uint)(GroupID 100000 100000));

                
WaitingArea Kernel.Maps[(ushort)ElitePKTournament.WaitingAreaID].MakeDynamicMap();
                
Constants.PKForbiddenMaps.Add(WaitingArea.ID);
                
Interfaces.INpc npc = new Network.GamePackets.NpcSpawn();
                
npc.UID 7912;
                
npc.Name "TeamPKClerk";
                
npc.Mesh 1340;
                
npc.Type = (Enums.NpcType)2;
                
npc.49;
                
npc.47;
                
npc.MapID WaitingArea.ID;
                
WaitingArea.AddNpc(npc);
                
State States.GUI_Top8Ranking;
                
pState States.T_Organize;
            }
        }
        public 
bool SignUp(Client.GameState client)
        {
            if (
AllowJoin || client.Fake)
            {

                var 
coords WaitingArea.RandomCoordinates();
                
client.Entity.Teleport(WaitingArea.IDcoords.Item1coords.Item2);


                if (!
Teams.ContainsKey(client.Team.UID))
                    
Teams.Add(client.Team.UIDclient.Team);
                
client.InTeamPK true;
                
Network.GamePackets.TeamPkMatchUI ui = new Network.GamePackets.TeamPkMatchUI();
                {
                    
ui.Type Network.GamePackets.TeamPkMatchUI.Information;
                    
ui.Append(client.Team);
                    
client.Send(ui.ToArray());
                    
ui.Type 5;
                    
client.Send(ui.ToArray());
                }
                if (
client.Team.TeamLider(client))
                {
                    
Network.GamePackets.TeamSetName teamname = new Network.GamePackets.TeamSetName();
                    {
                        
teamname.TeamID client.Team.UID;
                        
teamname.TeamName client.Team.TeamFighterStats.Name;
                        
client.Send(teamname.ToArray());
                    }
                }
                return 
true;
            }
            return 
false;
        }

        
DateTime StarTimer = new DateTime();
        private 
bool AllowJoin false;
        private 
IDisposable Subscriber;
        public 
bool Organization false;
        public 
void SubscribeTimer(int minutes)
        {
            
StarTimer DateTime.Now;
            
StarTimer StarTimer.AddMinutes(5);
            
Organization true;
            
AllowJoin true;
            if (
Subscriber == null)
                
Subscriber World.Subscribe(timerCallback1000);
        }
        public 
void Purge()
        {
            foreach (var 
team in Teams.Values)
            {
                if (
State == States.GUI_Top8Qualifier)
                {
                    if (
Teams.Count 8)
                    {
                        if (
team.TeamFighterStats.Lost || !team.OnPopulates)// && player.Entity.MyLocation.DinamicID != WaitingArea)
                        
{
                            
Remove(team.UID);
                        }
                    }
                }
                else if (
team.TeamFighterStats.Lost)
                {
                    if (
Teams.Count 8)
                    {
                        
Remove(team.UID);
                    }
                }
            }
        }
        public static 
Time32 Test;
        public static List<
AIAis = new List<AI>();
        public 
bool Started false;
        private 
void timerCallback(int tim)
        {
            try
            {

                if (!
IsAlive)
                {
                    
TeamTournament.Opened false;
                    
Started false;
                    
Subscriber.Dispose();
                    return;
                }
                
#region ReconstructTop
                
if (State == States.GUI_ReconstructTop)
                {
                    if (
DateTime.Now ConstructTop8.AddMinutes(2))
                    {
                        
State States.GUI_Top8Ranking;
                        
Kernel.SendWorldMessage(new Network.GamePackets.TeamPkBrackets() { Type 6OnGoing false }.ToArray());
                        
IsAlive false;
                    }
                    return;
                }
                
#endregion
                
DateTime Now64 DateTime.Now;
                if (
Now64.Hour == (EventTime 1) && Now64.Minute >= (GroupID) * 2)
                {
                    
TeamTournament.Opened false;
                    
Started true;
                    
#region GetState
                    
if (Organization)
                    {
                        
Organization false;
                        
this.Top8 = new TeamPk.FighterStats[8];
                        for (
int i 0this.Top8.Lengthi++)
                        {
                            
this.Top8[i] = new TeamPk.FighterStats(0u""0unull);
                        }
                        foreach (var 
team in Teams.Values)
                        {
                            foreach (var 
player in team.Players)
                            {
                                if (
player != null)
                                {
                                    if (
player.Team != null)
                                    {
                                        
Network.GamePackets.TeamSetName teamname = new Network.GamePackets.TeamSetName();
                                        {
                                            
teamname.Type Network.GamePackets.TeamSetName.SuccessfulName;
                                            
teamname.TeamID player.Team.UID;
                                            
teamname.TeamName player.Team.TeamFighterStats.Name;
                                            
player.Send(teamname.ToArray());

                                            if (
player.Team.TeamLider(player))
                                            {
                                                
teamname.Type Network.GamePackets.TeamSetName.Remove;
                                                
player.Send(teamname.ToArray());
                                            }
                                        }
                                        
//SkillPk A~prize~for~every~participant~in~the~Team~PK~Tournament.~Right~click~it~to~get~1~hour`s~double~EXP.                                            
                                        
player.Inventory.Add(72079301);
                                    }
                                }
                            }
                        }
                        if (
Teams.Count 1)
                        {
                            foreach (var 
team in Teams.Values)
                                foreach (var 
player in team.Players)
                                    
player.Entity.Teleport();
                            
Teams.Clear();
                            
Started false;
                            
IsAlive false;
                            
Kernel.SendWorldMessage(new Network.GamePackets.SkillPkBrackets() { Type 6OnGoing false }.ToArray());
                            return;
                        }
                    }
                    if (
State == States.GUI_Top8Ranking)
                    {
                        
willAdvance Teams.Count 8;
                        
Kernel.SendWorldMessage(new Network.GamePackets.TeamPkBrackets() { Type 6OnGoing true }.ToArray());
                        if (
Teams.Count == 1)
                        {
                            
Top8[0] = Teams.FirstOrDefault().Value.TeamFighterStats;
                            
ConstructTop8 DateTime.Now;
                            var 
name "TeamPk";
                            
SaveTop8(string.Format("{0}{1}"nameGroupID));
                            foreach (var 
team in Teams.Values)
                                foreach (var 
player in team.Players)
                                    
player.Entity.Teleport();
                            
State States.GUI_ReconstructTop;
                            foreach (var 
client in Kernel.GamePool.Values)
                                
Rankings(client);
                            var 
brackets CreateBrackets(ExtendedMatchArray0Network.GamePackets.TeamPkBrackets.UpdateList);
                            foreach (var 
packet in brackets)
                                
Kernel.SendWorldMessage(packet.ToArray());
                            
Kernel.SendWorldMessage(new Network.GamePackets.TeamPkBrackets() { Type 6OnGoing false }.ToArray());
                        }
                        else if (
Teams.Count == 2)
                        {
                            
State States.GUI_Top1;
                            
pState States.T_Organize;
                        }
                        else if (
Teams.Count && Teams.Count <= 4)
                        {
                            
State States.GUI_Top2Qualifier;
                            
pState States.T_Organize;
                        }
                        else if (
Teams.Count && Teams.Count <= 8)
                        {
                            
State States.GUI_Top4Qualifier;
                            
pState States.T_Organize;
                        }
                        else if (
willAdvance && Teams.Count <= 24)
                            
State States.GUI_Top8Qualifier;
                        else
                            
State States.GUI_Knockout;
                    }
                    
#endregion
                    #region Knockout
                    
if (State == States.GUI_Knockout)
                    {
                        
AllowJoin false;
                        if (
pState == States.T_Organize)
                        {
                            if (
willAdvance && Teams.Count <= 24)
                            {
                                
State States.GUI_Top8Qualifier;
                            }
                            else
                            {
                                
MatchIndex 0;
                                var array = 
Teams.Values.ToArray();
                                
ushort counter 0;
                                
bool NoPar = array.Length == 0;
                                if (
NoPar)
                                {
                                    for (
ushort x 0< array.Lengthx++)
                                    {
                                        
int r counter;
                                        
counter++;
                                        
int t counter;
                                        
counter++;
                                        if (
counter <= array.Length)
                                        {
                                            
Match match = new Match(array[r].TeamFighterStats, array[t].TeamFighterStats);
                                            
match.Index MatchIndex++;
                                            
match.ID MatchCounter.Next;
                                            
Matches.TryAdd(match.IDmatch);
                                        }
                                    }
                                }
                                else
                                {
                                    for (
ushort x 0< array.Length 1x++)
                                    {
                                        
int r counter;
                                        
counter++;
                                        
int t counter;
                                        
counter++;
                                        if (
counter <= array.Length)
                                        {
                                            
Match match = new Match(array[r].TeamFighterStats, array[t].TeamFighterStats);
                                            
match.Index MatchIndex++;
                                            
match.ID MatchCounter.Next;
                                            
Matches.TryAdd(match.IDmatch);
                                        }
                                    }
                                    
Match math_bye = new Match(array[array.Length 1].TeamFighterStats);
                                    
math_bye.Index MatchIndex++;
                                    
math_bye.ID MatchCounter.Next;
                                    
Matches.TryAdd(math_bye.IDmath_bye);
                                }
                                
pStamp Time32.Now.AddSeconds(60);
                                
pState States.T_Wait;
                                
MatchArray = (from match in Matches.Values orderby match.MatchStats.Length descending select match).ToArray();
                                var 
brackets CreateBrackets(MatchArray0);
                                foreach (var 
packet in brackets)
                                {
                                    
Kernel.SendWorldMessage(packet.ToArray());
                                }
                            }
                        }
                        else if (
pState == States.T_Wait)
                        {
                            if (
TimeLeft == 0)
                            {
                                
int doneMatches 0;

                                foreach (var 
match in MatchArray)
                                {
                                    
match.AliveMatch();
                                    if (!
match.Inside)
                                    {
                                        
match.Import(Match.StatusFlag.Watchable);
                                    }
                                    else
                                    {
                                        if (!
match.Exported && (match.Done || match.TimeLeft == 0))
                                        {
                                            
match.Export();
                                        }
                                        if (
match.Exported || match.MatchStats.Length == 1)
                                            
doneMatches++;
                                    }
                                }
                                if (
doneMatches == Matches.Count)
                                {
                                    
Matches.Clear();
                                    
Purge();
                                    
pState States.T_Organize;
                                }
                            }
                        }
                    }
                    
#endregion
                    #region Top8Qualifier
                    
if (State == States.GUI_Top8Qualifier)
                    {

                        if (
pState == States.T_Organize)
                        {
                            if (
Teams.Count == 8)
                            {
                                
State States.GUI_Top4Qualifier;
                            }
                            else
                            {
                                
MatchIndex 0;
                                var array = 
Teams.Values.ToArray();
                                
int[] taken = new int[array.Length];
                                if (array.
Length <= 16)
                                {
                                    
ushort counter 0;
                                    
int t1Group = array.Length 8;
                                    
int lim taken.Length 2;
                                    for (
int i 0t1Groupi++)
                                    {
                                        
int r counter;
                                        
counter++;
                                        
int t counter;
                                        
counter++;
                                        
Match match = new Match(array[r].TeamFighterStats, array[t].TeamFighterStats);
                                        
match.Index MatchIndex++;
                                        
match.ID MatchCounter.Next;
                                        
Matches.TryAdd(match.IDmatch);
                                    }
                                    for (
int i 0t1Groupi++)
                                    {
                                        
ushort r counter;
                                        
counter++;
                                        
Match match = new Match(array[r].TeamFighterStats);
                                        
match.Index MatchIndex++;
                                        
match.ID MatchCounter.Next;
                                        
Matches.TryAdd(match.IDmatch);
                                    }
                                }
                                else
                                {
                                    
ushort counter 0;
                                    
int t3GroupCount = array.Length 16;
                                    for (
int i 0t3GroupCounti++)
                                    {
                                        
int r counter;
                                        
counter++;
                                        
int t counter;
                                        
counter++;
                                        
int y counter;
                                        
counter++;
                                        
Match match = new Match(array[r].TeamFighterStats, array[t].TeamFighterStats, array[y].TeamFighterStats);
                                        
match.Index MatchIndex++;
                                        
match.ID MatchCounter.Next;
                                        
Matches.TryAdd(match.IDmatch);
                                    }
                                    
int t2GroupCount = array.Length counter;
                                    for (
int i 0t2GroupCount 2i++)
                                    {
                                        
int r counter;
                                        
counter++;
                                        
int t counter;
                                        
counter++;
                                        
Match match = new Match(array[r].TeamFighterStats, array[t].TeamFighterStats);
                                        
match.Index MatchIndex++;
                                        
match.ID MatchCounter.Next;
                                        
Matches.TryAdd(match.IDmatch);
                                    }
                                }
                                
pStamp Time32.Now.AddSeconds(60);
                                
pState States.T_Wait;
                                
MatchArray = (from match in Matches.Values orderby match.MatchStats.Length descending select match).ToArray();

                                var 
brackets CreateBrackets(MatchArray0Network.GamePackets.TeamPkBrackets.UpdateList);
                                foreach (var 
packet in brackets)
                                {
                                    
Kernel.SendWorldMessage(packet.ToArray());
                                }
                                
Network.GamePackets.TeamPkBrackets brea = new Network.GamePackets.TeamPkBrackets(0);
                                
brea.Type Network.GamePackets.TeamPkBrackets.EPK_State;
                                
brea.OnGoing true;
                                
Kernel.SendWorldMessage(brea.ToArray());
                            }
                        }
                        else if (
pState == States.T_Wait)
                        {
                            if (
TimeLeft == 0)
                            {
                                
int doneMatches 0;
                                foreach (var 
match in MatchArray)
                                {
                                    
match.AliveMatch();
                                    if (!
match.Inside)
                                    {
                                        if (
match.MatchStats.Length 1)
                                        {
                                            
match.Import(Match.StatusFlag.Watchable);
                                        }
                                        else
                                        {
                                            
match.Inside true;
                                            
match.Completed true;
                                            
match.Done true;
                                            
match.MatchStats
                                                
.First(=> != null).Team
                                                
.TeamFighterStats.Flag FighterStats.StatusFlag.Qualified;
                                        }
                                    }
                                    else
                                    {
                                        if (!
match.Exported && (match.Done || match.TimeLeft == 0))
                                        {
                                            
match.Export();
                                            if (
match.MatchStats.Length == 3)
                                                
match.SwitchBetween();
                                            else
                                                
match.Flag Match.StatusFlag.OK;
                                        }

                                        if (
match.Exported || match.MatchStats.Length == 1)
                                            
doneMatches++;
                                    }
                                }
                                if (
doneMatches == Matches.Count)
                                {
                                    
bool finishedRound true;
                                    foreach (var 
match in MatchArray)
                                    {
                                        if (!
match.Completed)
                                        {
                                            
finishedRound false;
                                            break;
                                        }
                                    }
                                    if (!
finishedRound)
                                    {
                                        foreach (var 
match in MatchArray)
                                        {
                                            if (!
match.Completed)
                                            {
                                                foreach (var 
stats in match.MatchStats)
                                                    
stats.Reset(true);
                                                
match.Inside false;
                                                
match.Done false;
                                                
match.Exported false;
                                                if (
match.MatchStats.Length != 1)
                                                    
match.Flag Match.StatusFlag.Waiting;
                                            }
                                        }
                                        
pStamp Time32.Now.AddSeconds(60);
                                        
pState States.T_Wait;
                                        var 
brakets CreateBrackets(MatchArray0Network.GamePackets.TeamPkBrackets.UpdateList);
                                        foreach (var 
packet in brakets)
                                        {
                                            
Kernel.SendWorldMessage(packet.ToArray());
                                        }

                                    }
                                    else
                                    {
                                        
Matches.Clear();
                                        
Purge();
                                        
pState States.T_Organize;
                                    }
                                }
                            }
                        }
                    }
                    
#endregion
                    #region Top4Qualifier
                    
if (State == States.GUI_Top4Qualifier)
                    {
                        if (
pState == States.T_Organize)
                        {
                            try
                            {
                                
MatchIndex 0;
                                var array = 
Teams.Values.ToArray();
                                
int[] taken = new int[array.Length];
                                
int lim taken.Length 2;
                                for (
int i 0taken.Length+= 2)
                                {
                                    if (array.
Length 1)
                                    {
                                        
Match match = new Match(array[i].TeamFighterStats, array[1].TeamFighterStats);
                                        
match.Index MatchIndex++;
                                        
//match.Flag = Match.StatusFlag.FinalMatch;
                                        
match.ID MatchCounter.Next;
                                        
Matches.TryAdd(match.IDmatch);
                                    }
                                    else
                                    {
                                        
Match match = new Match(array[i].TeamFighterStats);
                                        
match.Index MatchIndex++;
                                        
//match.Flag = Match.StatusFlag.FinalMatch;
                                        
match.ID MatchCounter.Next;
                                        
Matches.TryAdd(match.IDmatch);
                                    }
                                }
                                
pStamp Time32.Now.AddSeconds(60);
                                
pState States.T_Wait;
                                
MatchArray Matches.Values.ToArray();
                                var 
brackets CreateBrackets(MatchArray0TeamPkBrackets.GUIEdit);
                                foreach (var 
packet in brackets)
                                    
Kernel.SendWorldMessage(packet);
                                
brackets CreateBrackets(MatchArray0Network.GamePackets.TeamPkBrackets.UpdateList);
                                foreach (var 
packet in brackets)
                                    
Kernel.SendWorldMessage(packet.ToArray());
                            }
                            catch (
Exception e)
                            {
                                
Console.WriteLine(e.ToString());
                            }

                        }
                        else if (
pState == States.T_Wait)
                        {
                            if (
TimeLeft == 0)
                            {
                                try
                                {
                                    
int doneMatches 0;

                                    foreach (var 
match in MatchArray)
                                    {
                                        
match.AliveMatch();
                                        if (!
match.Inside)
                                        {
                                            
match.Import(Match.StatusFlag.Watchable);
                                        }
                                        else
                                        {
                                            if (!
match.Exported && (match.Done || match.TimeLeft == 0))
                                                
match.Export();
                                            if (
match.Exported)
                                                
doneMatches++;
                                        }
                                    }
                                    if (
doneMatches == MatchArray.Length)
                                    {
                                        
int i 4;
                                        foreach (var 
match in MatchArray)
                                        {
                                            foreach (var 
stats in match.MatchStats)
                                                if (
stats.Flag == FighterStats.StatusFlag.Lost)
                                                {
                                                    
Top8[Math.Min(7i++)] = stats.Clone();
                                                }
                                            
match.Commit();
                                        }
                                        foreach (var list 
in Teams.Values)
                                            if (list.
TeamFighterStats.Lost)
                                            {
                                                
Remove(list.UID);
                                            }
                                        
State States.GUI_Top8Ranking;
                                        
pState States.T_Organize;
                                    }
                                }
                                catch (
Exception e)
                                {
                                    
Console.WriteLine(e.ToString());
                                }
                            }
                        }
                    }
                    
#endregion
                    #region Top2Qualifier
                    
if (State == States.GUI_Top2Qualifier)
                    {
                        if (
pState == States.T_Organize)
                        {
                            try
                            {
                                
MatchIndex 0;
                                
Top4MatchArray = new Match[2];
                                if (
MatchArray == null || MatchArray.Length == 0)
                                {
                                    var array = 
Teams.Values.ToArray();
                                    
int[] taken = new int[array.Length];
                                    
int lim taken.Length 2;
                                    
int matc 0;
                                    for (
int i 0taken.Length+= 2)
                                    {
                                        if (array.
Length 1)
                                        {
                                            
Match match = new Match(array[i].TeamFighterStats, array[1].TeamFighterStats);
                                            
match.Index MatchIndex++;
                                            
match.ID MatchCounter.Next;
                                            
Top4MatchArray[matc] = match;
                                            
matc++;
                                            
Matches.TryAdd(match.IDmatch);

                                        }
                                        else
                                        {
                                            
Match match = new Match(array[i].TeamFighterStats);
                                            
match.Index MatchIndex++;
                                            
match.ID MatchCounter.Next;
                                            
Top4MatchArray[matc] = match;
                                            
Matches.TryAdd(match.IDmatch);
                                        }
                                    }
                                }
                                else
                                {
                                    for (
int i 0Top4MatchArray.Lengthi++)
                                    {
                                        if (
MatchArray.Length 2)
                                        {
                                            
Match match = new Match(//p.winer este
                                                
MatchArray[i].Return(=> p.Team.TeamFighterStats.Winner),//.MatchStats.First(p => p.Team.TeamFighterStats.Winner),
                                                
MatchArray[2].Return(=> p.Team.TeamFighterStats.Winner));//.MatchStats.First(p => p.Team.TeamFighterStats.Winner));
                                            
match.Index MatchIndex++;
                                            
match.ID MatchCounter.Next;
                                            
Top4MatchArray[i] = match;
                                            
Matches.TryAdd(match.IDmatch);
                                        }
                                        else
                                        {
                                            
Match match = new Match(//p.winer este
                                                
MatchArray[i].Return(=> p.Team.TeamFighterStats.Winner));//.MatchStats.First(p => p.Team.TeamFighterStats.Winner));
                                            
match.Index MatchIndex++;
                                            
match.ID MatchCounter.Next;
                                            
Top4MatchArray[i] = match;
                                            
Matches.TryAdd(match.IDmatch);
                                        }
                                    }
                                }
                                
pStamp Time32.Now.AddSeconds(60);
                                
pState States.T_Wait;
                                if (
MatchArray == null)
                                    
MatchArray Matches.Values.ToArray();
                                var 
brackets CreateBrackets(Top4MatchArray0Network.GamePackets.TeamPkBrackets.UpdateList);
                                foreach (var 
packet in brackets)
                                    
Kernel.SendWorldMessage(packet.ToArray());
                            }
                            catch (
Exception e)
                            {
                                
Console.WriteLine(e.ToString());
                            }

                        }
                        else if (
pState == States.T_Wait)
                        {
                            if (
TimeLeft == 0)
                            {
                                try
                                {
                                    
int doneMatches 0;
                                    foreach (var 
match in Top4MatchArray)
                                    {
                                        
match.AliveMatch();
                                        if (!
match.Inside)
                                        {
                                            
match.Import(Match.StatusFlag.Watchable);
                                        }
                                        else
                                        {
                                            if (!
match.Exported && (match.Done || match.TimeLeft == 0))
                                                
match.Export();
                                            if (
match.Exported)
                                                
doneMatches++;
                                        }
                                    }
                                    if (
doneMatches == Top4MatchArray.Length)
                                    {
                                        List<
Game.ConquerStructures.Team> list = new List<Game.ConquerStructures.Team>();
                                        foreach (var 
player in Teams.Values)
                                            if (
player.TeamFighterStats.Lost)
                                                list.
Add(player);
                                        foreach (var 
match in Top4MatchArray)
                                            
match.Commit();

                                        if (list.
Count == 1)
                                        {
                                            foreach (
Game.ConquerStructures.Team current in list)
                                            {
                                                
this.Top8[2] = current.TeamFighterStats;
                                                
Teams.Remove(current.UID);
                                            }
                                            
this.State States.GUI_Top8Ranking;
                                            
this.pState States.T_Organize;
                                        }
                                        else
                                        {
                                            
pState States.T_Organize;
                                            
State States.GUI_Top3;
                                        }
                                    }
                                }
                                catch (
Exception e)
                                {
                                    
Console.WriteLine(e.ToString());
                                }
                            }
                        }
                    }
                    
#endregion
                    #region Top3
                    
if (State == States.GUI_Top3)
                    {
                        if (
pState == States.T_Organize)
                        {
                            try
                            {
                                
MatchIndex 0;

                                
ExtendedMatchArray = new Match[2];
                                
Match match = new Match(
                                    
Top4MatchArray[0].Return(=> !p.Team.TeamFighterStats.Winner),//.MatchStats.First(p => !p.Team.TeamFighterStats.Winner),
                                    
Top4MatchArray[1].Return(=> !p.Team.TeamFighterStats.Winner));//.MatchStats.First(p => !p.Team.TeamFighterStats.Winner));
                                
match.Index MatchIndex++;
                                
match.ID MatchCounter.Next;
                                
ExtendedMatchArray[0] = match;
                                
Matches.TryAdd(match.IDmatch);
                                
pStamp Time32.Now.AddSeconds(60);
                                
pState States.T_Wait;
                                var 
brackets CreateBrackets(ExtendedMatchArray0Network.GamePackets.TeamPkBrackets.UpdateList);
                                foreach (var 
packet in brackets)
                                    
Kernel.SendWorldMessage(packet.ToArray());

                                
Kernel.SendWorldMessage(new Network.GamePackets.TeamPkBrackets() { Type 6OnGoing true }.ToArray());
                            }
                            catch (
Exception e)
                            {
                                
Console.WriteLine(e.ToString());
                            }
                        }
                        else if (
pState == States.T_Wait)
                        {
                            if (
TimeLeft == 0)
                            {
                                try
                                {
                                    var 
match ExtendedMatchArray[0];
                                    
match.AliveMatch();
                                    if (!
match.Inside)
                                    {
                                        
match.Import(Match.StatusFlag.Watchable);
                                    }
                                    else
                                    {
                                        if (!
match.Exported && (match.Done || match.TimeLeft == 0))
                                            
match.Export();
                                        if (
match.Exported)
                                        {

                                            
//var a_math =ExtendedMatchArray[0].MatchStats;
                                            
var top3 ExtendedMatchArray[0].Return(=> p.Team.TeamFighterStats.Winner);
                                            
//.First(p => p.Team.TeamFighterStats.Winner).Team.TeamFighterStats;
                                            
var top4 ExtendedMatchArray[0].Return(=> !p.Team.TeamFighterStats.Winner);
                                            
//ExtendedMatchArray[0].MatchStats
                                            //.First(p => !p.Team.TeamFighterStats.Winner).Team.TeamFighterStats;

                                            
Top8[2] = top3.Clone();
                                            
Top8[3] = top4.Clone();
                                            
Remove(top3.Team.UID);
                                            
Remove(top4.Team.UID);
                                            
pState States.T_Organize;
                                            
State States.GUI_Top8Ranking;

                                        }
                                    }
                                }
                                catch (
Exception e)
                                {
                                    
Console.WriteLine(e.ToString());
                                }

                            }
                        }
                    }
                    
#endregion
                    #region Top1
                    
if (State == States.GUI_Top1)
                    {
                        if (
pState == States.T_Organize)
                        {
                            try
                            {
                                
ExtendedMatchArray = new Match[1];
                                
Match match = new Match(Teams.Values.First().TeamFighterStatsTeams.Values.Last().TeamFighterStats);
                                
match.Index MatchIndex++;
                                
match.ID MatchCounter.Next;
                                
ExtendedMatchArray[0] = match;
                                
Matches.TryAdd(match.IDmatch);
                                
pStamp Time32.Now.AddSeconds(60);
                                
pState States.T_Wait;
                                if (
MatchArray == null)
                                    
MatchArray Matches.Values.ToArray();
                                var 
ackets CreateBrackets(ExtendedMatchArray0Network.GamePackets.TeamPkBrackets.UpdateList);
                                foreach (var 
packet in ackets)
                                    
Kernel.SendWorldMessage(packet.ToArray());

                                
Kernel.SendWorldMessage(new Network.GamePackets.TeamPkBrackets() { Type 6OnGoing true }.ToArray());
                            }
                            catch (
Exception e)
                            {
                                
Console.WriteLine(e.ToString());
                            }
                        }
                        else if (
pState == States.T_Wait)
                        {
                            if (
TimeLeft == 0)
                            {
                                try
                                {
                                    
int doneMatches 0;
                                    foreach (var 
match in ExtendedMatchArray)
                                    {
                                        
match.AliveMatch();
                                        if (!
match.Inside)
                                        {
                                            
match.Import(Match.StatusFlag.Watchable);
                                        }
                                        else
                                        {
                                            if (!
match.Exported && (match.Done || match.TimeLeft == 0))
                                                
match.Export();
                                            if (
match.Exported)
                                                
doneMatches++;
                                        }
                                    }
                                    if (
doneMatches == ExtendedMatchArray.Length)
                                    {
                                        try
                                        {
                                            var 
top1 ExtendedMatchArray[0].MatchStats
                                                
.First(=> p.Team.TeamFighterStats.Winner).Team.TeamFighterStats;
                                            var 
top2 ExtendedMatchArray[0].MatchStats
                                                
.First(=> !p.Team.TeamFighterStats.Winner).Team.TeamFighterStats;
                                            
Top8[0] = top1;
                                            
Top8[1] = top2;
                                            
Started false;
                                            
ConstructTop8 DateTime.Now;
                                            var 
name "TeamPk";
                                            
SaveTop8(string.Format("{0}{1}"nameGroupID));
                                            foreach (var 
team in Teams.Values)
                                                foreach (var 
player in team.Players)
                                                    
player.Entity.Teleport();
                                            
State States.GUI_ReconstructTop;
                                            foreach (var 
client in Kernel.GamePool.Values)
                                                
Rankings(client);
                                            var 
brackets CreateBrackets(ExtendedMatchArray0Network.GamePackets.TeamPkBrackets.UpdateList);
                                            foreach (var 
packet in brackets)
                                                
Kernel.SendWorldMessage(packet.ToArray());
                                            
Kernel.SendWorldMessage(new Network.GamePackets.TeamPkBrackets() { Type 6OnGoing false }.ToArray());
                                        }
                                        catch (
Exception e)
                                        {
                                            
Console.WriteLine(e.ToString());
                                        }
                                    }
                                }
                                catch (
Exception e)
                                {
                                    
Console.WriteLine(e.ToString());
                                }
                            }
                        }
                    }
                    
#endregion
                
}
            }
            catch (
Exception e)
            { 
Console.WriteLine(e.ToString()); }
        }
        public 
void FireArena(bool online false)
        {
            
Kernel.SendWorldMessage(new Network.GamePackets.TeamPkBrackets() { Type 6OnGoing online }.ToArray());
        }
        public 
void Update(Client.GameState clientint page 0)
        {
            try
            {
                if (
State == States.GUI_Top8Ranking)
                {
                    
Rankings(client);
                }
                else
                {
                    if (
State >= States.GUI_Top4Qualifier)
                    {
                        var 
brackets CreateBrackets(MatchArray0Network.GamePackets.SkillPkBrackets.GUIEdit);
                        foreach (var 
packet in brackets)
                            
client.Send(packet.ToArray());
                    }
                    else
                    {
                        var 
brackets CreateBrackets(MatchArraypage);
                        foreach (var 
packet in brackets)
                            
client.Send(packet.ToArray());
                    }
                    if (
State >= States.GUI_Top1)
                        
Rankings(client);
                }
            }
            catch (
Exception e)
            {
                
Console.WriteLine(e.ToString());
            }
        }
        public 
bool GetReward(Client.GameState clientout byte Rank)
        {
            if (
Top8.Length == 8)
            {
                for (
int x 0Top8.Lengthx++)
                {
                    if (
Top8[x] != null)
                    {
                        if (
Top8[x].LeaderUID == client.Entity.UID || Top8[x].Name == client.Entity.Name)
                        {
                            if (
Top8[x].RceiveReward == 0)
                            {
                                
Top8[x].RceiveReward 1;
                                
Rank = (byte)(1);
                                return 
true;
                            }
                            else
                            {
                                
Rank = (byte)(1);
                                return 
false;
                            }
                        }
                    }
                }
            }
            
Rank 0;
            return 
false;
        }
        public static 
bool GetReward(Client.GameState client)
        {
            if (!
client.Inventory.HaveSpace(1))
            {
                
client.MessageBox("Please Empty Some Space First");
                return 
false;
            }
            foreach (var 
tournament in TeamPk.TeamTournament.Tournaments)
            {
                
byte Rank 0;
                if (
tournament.GetReward(clientout Rank))
                {
                    var 
name "TeamPk";
                    
tournament.SaveTop8(string.Format("{0}{1}"nametournament.GroupID));
                    
uint ItemID GetItemID(tournamentRank);

                    if (
client.Entity.Level >= 100 || client.Entity.Level >= 120 || client.Entity.Level >= 130)
                    {
                        if (
Rank == 1)
                        {
                            
client.Entity.ConquerPoints += 250000000;
                            
client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePKChamption_Low0DateTime.Now.AddDays(1), true);
                            
client.MessageBox("You've received [" 250000000 "] ConquerPoints");
                            
string MSG "Congratulation to " client.Entity.Name " ! he/she managed to get rank " Rank " on Team Pk Tournament and claimed [" 250000000 "] ConquerPoints ";
                            
Kernel.SendWorldMessage(new Message(MSGSystem.Drawing.Color.RedMessage.System));
                            
XMeGo.Kernel.SendWorldMessage(new Message("Congratulation to " client.Entity.Name " ! he/she managed to get rank " Rank " on Team Pk Tournament and claimed [" 250000000 "] ConquerPoints "System.Drawing.Color.BlackMessage.Center), Program.Values);

                        }
                        else if (
Rank == 2)
                        {
                            
client.Entity.ConquerPoints += 200000000;
                            
client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePK2ndPlace_Low0DateTime.Now.AddDays(1), true);
                            
client.MessageBox("You've received [" 200000000 "] ConquerPoints");
                            
string MSG "Congratulation to " client.Entity.Name " ! he/she managed to get rank " Rank " on Team Pk Tournament and claimed [" 200000000 "] ConquerPoints ";
                            
Kernel.SendWorldMessage(new Message(MSGSystem.Drawing.Color.RedMessage.System));
                            
XMeGo.Kernel.SendWorldMessage(new Message("Congratulation to " client.Entity.Name " ! he/she managed to get rank " Rank " on Team Pk Tournament and claimed [" 200000000 "] ConquerPoints "System.Drawing.Color.BlackMessage.Center), Program.Values);

                        }
                        else if (
Rank == 3)
                        {
                            
client.Entity.ConquerPoints += 150000000;
                            
client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePK3ndPlace_Low0DateTime.Now.AddDays(1), true);
                            
client.MessageBox("You've received [" 150000000 "] ConquerPoints");
                            
string MSG "Congratulation to " client.Entity.Name " ! he/she managed to get rank " Rank " on Team Pk Tournament and claimed [" 150000000 "] ConquerPoints ";
                            
Kernel.SendWorldMessage(new Message(MSGSystem.Drawing.Color.RedMessage.System));
                            
XMeGo.Kernel.SendWorldMessage(new Message("Congratulation to " client.Entity.Name " ! he/she managed to get rank " Rank " on Team Pk Tournament and claimed [" 150000000 "] ConquerPoints "System.Drawing.Color.BlackMessage.Center), Program.Values);

                        }
                        else
                        {
                            
client.Entity.ConquerPoints += 100000000;
                            
client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePKTopEight_Low0DateTime.Now.AddDays(1), true);
                            
client.MessageBox("You've received [" 100000000 "] ConquerPoints");
                            
string MSG "Congratulation to " client.Entity.Name " ! he/she managed to get rank " Rank " on Team Pk Tournament and claimed [" 100000000 "] ConquerPoints ";
                            
Kernel.SendWorldMessage(new Message(MSGSystem.Drawing.Color.RedMessage.System));
                            
XMeGo.Kernel.SendWorldMessage(new Message("Congratulation to " client.Entity.Name " ! he/she managed to get rank " Rank " on Team Pk Tournament and claimed [" 100000000 "] ConquerPoints "System.Drawing.Color.BlackMessage.Center), Program.Values);
                        }
                    }
                    return 
true;
                }
            }
            return 
false;
        }
        public static 
uint GetItemID(TeamPk tournamentbyte Rank)
        {
            return (
uint)(720794 * (byte)tournament.GroupID Math.Min(3, (Rank 1)) * 4);
        }
        public 
void Rankings(Client.GameState client)
        {
            
Network.GamePackets.TeamPkTop ranks = new Network.GamePackets.TeamPkTop();
            {
                
ranks.Type Network.GamePackets.TeamPkTop.Top8;
                
ranks.Group = (uint)GroupID;
                
ranks.GroupStatus = (uint)State;
                
//ranks.UID = client.Entity.UID;
                
if (State >= States.GUI_Top1)
                {
                    
ranks.Type Network.GamePackets.TeamPkTop.Top3;
                    if (
State == States.GUI_Top1)
                    {
                        
ranks.Count 1;
                        
ranks.AppendTeamPK(Top8[2], 2);
                    }
                    else
                    {
                        
ranks.Count 3;
                        for (
int i 03i++)
                        {
                            
ranks.AppendTeamPK(Top8[i], i);
                        }
                    }
                    
client.Send(ranks.ToArray());
                }
                else
                {
                    
ranks.Count = (uint)Top8.Length;
                    for (
int i 0ranks.Counti++)
                        if (
Top8[i] != null)
                        {
                            
ranks.AppendTeamPK(Top8[i], i);
                        }
                    
client.Send(ranks.ToArray());
                }
            }
        }
        public 
Network.GamePackets.TeamPkBrackets[] CreateBrackets(Match[] matchesint page 0byte type 0)
        {
            try
            {
                
int lim 0count 0;
                if (
matches == null) return new Network.GamePackets.TeamPkBrackets[0];
                if (
State == States.GUI_Knockout)
                {
                    const 
int max 5;
                    
int offset page max;

                    
int Do_count matches.Length page max;

                    if (
page max matches.Length)
                        
Do_count 0;
                    
uint ccount = (uint)Math.Min(maxDo_count);

                    
Network.GamePackets.TeamPkBrackets brackets = new Network.GamePackets.TeamPkBrackets((int)ccount);
                    
brackets.Group = (ushort)GroupID;
                    
brackets.GUIType = (ushort)State;
                    
brackets.TotalMatchesOnRoom = (ushort)ccount;
                    
brackets.Page = (byte)page;
                    
brackets.TimeLeft TimeLeft;
                    
brackets.MatchCount = (ushort)matches.Length;
                    
brackets.Type type;
                    for (
int i 0ccounti++)
                    {
                        var 
element matches[offset];
                        
brackets.Append(element);
                    }
                    
Network.GamePackets.TeamPkBrackets[] buffer = new Network.GamePackets.TeamPkBrackets[1];
                    
buffer[0] = brackets;
                    return 
buffer;
                }
                else if (
State == States.GUI_Top8Qualifier)
                {
                    const 
int max 5;
                    
int offset page max;

                    
int Do_count matches.Length page max;

                    if (
page max matches.Length)
                        
Do_count 0;
                    
uint ccount = (uint)Math.Min(maxDo_count);

                    
Network.GamePackets.TeamPkBrackets[] buffer;
                    if (
matches.Length ccount)
                        
buffer = new Network.GamePackets.TeamPkBrackets[2];
                    else
                        
buffer = new Network.GamePackets.TeamPkBrackets[1];

                    
Network.GamePackets.TeamPkBrackets brackets = new Network.GamePackets.TeamPkBrackets((int)ccount);
                    
brackets.Group = (ushort)GroupID;
                    
brackets.GUIType = (ushort)State;
                    
brackets.TotalMatchesOnRoom = (ushort)ccount;
                    
brackets.Page = (byte)page;
                    
brackets.TimeLeft TimeLeft;
                    
brackets.MatchCount = (ushort)matches.Length;
                    
brackets.Type type;
                    for (
int i 0ccounti++)
                    {
                        var 
element matches[offset];
                        
brackets.Append(element);
                    }
                    
buffer[0] = brackets;
                    if (
matches.Length ccount)
                    {
                        
ushort towcount = (ushort)(matches.Length ccount);
                        
Network.GamePackets.TeamPkBrackets twobrackets = new Network.GamePackets.TeamPkBrackets((int)towcount);
                        
twobrackets.Group = (ushort)GroupID;
                        
twobrackets.GUIType = (ushort)State;
                        
twobrackets.TotalMatchesOnRoom = (ushort)towcount;
                        
twobrackets.Page = (byte)page;
                        
twobrackets.TimeLeft TimeLeft;
                        
twobrackets.ListCount 1;
                        
twobrackets.MatchCount = (ushort)matches.Length;
                        
twobrackets.Type type;
                        for (
int i 0towcounti++)
                        {
                            var 
element matches[ccount];
                            
twobrackets.Append(element);
                        }
                        
buffer[1] = twobrackets;
                        return 
buffer;
                    }
                    return 
buffer;
                }
                
lim matches.Length;
                
count Math.Min(limmatches.Length page lim);
                if (
State >= States.GUI_Top2Qualifier)
                {
                    
Network.GamePackets.TeamPkBrackets[] buffer = new Network.GamePackets.TeamPkBrackets[2];
                    
lim MatchArray.Length;
                    
count Math.Min(limMatchArray.Length page lim);
                    
Network.GamePackets.TeamPkBrackets qbrackets = new Network.GamePackets.TeamPkBrackets(count);
                    {
                        
qbrackets.Group = (ushort)GroupID;
                        
qbrackets.GUIType = (ushort)State;
                        
qbrackets.TotalMatchesOnRoom = (ushort)(count);
                        
qbrackets.Page = (byte)page;
                        
qbrackets.TimeLeft TimeLeft;
                        
qbrackets.MatchCount = (byte)(MatchArray.Length 2);
                        
qbrackets.Type type;
                        for (
int i page limpage lim counti++)
                            
qbrackets.Append(MatchArray[i]);
                        
buffer[0] = qbrackets;
                    }

                    if (
State >= States.GUI_Top3)
                    {
                        
Network.GamePackets.TeamPkBrackets Twoqbrackets = new Network.GamePackets.TeamPkBrackets(count);
                        if (
Top4MatchArray != null)
                        {
                            
lim 4;
                            
count = (byte)(Top4MatchArray.Length ExtendedMatchArray.Length);
                            {
                                
Twoqbrackets.Group = (ushort)GroupID;
                                
Twoqbrackets.GUIType = (ushort)State;
                                
Twoqbrackets.TotalMatchesOnRoom = (ushort)count;
                                
Twoqbrackets.Page = (byte)1;
                                
Twoqbrackets.TimeLeft TimeLeft;
                                
Twoqbrackets.MatchCount = (byte)((Top4MatchArray.Length ExtendedMatchArray.Length) * 2);
                                
Twoqbrackets.Type type;
                                for (
int i 02i++)
                                    
Twoqbrackets.Append(Top4MatchArray[i]);
                                for (
int x 0ExtendedMatchArray.Lengthx++)
                                    
Twoqbrackets.Append(ExtendedMatchArray[x]);
                                
buffer[1] = Twoqbrackets;
                            }
                            
buffer[1] = Twoqbrackets;
                        }
                        else
                        {
                            
lim 4;
                            
count = (byte)(ExtendedMatchArray.Length);
                            {
                                
Twoqbrackets.Group = (ushort)GroupID;
                                
Twoqbrackets.GUIType = (ushort)State;
                                
Twoqbrackets.TotalMatchesOnRoom = (ushort)count;
                                
Twoqbrackets.Page = (byte)1;
                                
Twoqbrackets.TimeLeft TimeLeft;
                                
Twoqbrackets.MatchCount = (byte)((ExtendedMatchArray.Length) * 2);
                                
Twoqbrackets.Type type;
                                for (
int x 0ExtendedMatchArray.Lengthx++)
                                    
Twoqbrackets.Append(ExtendedMatchArray[x]);
                                
buffer[1] = Twoqbrackets;
                            }
                            
buffer[1] = Twoqbrackets;
                        }
                    }
                    else
                    {
                        
lim 2;
                        
count Top4MatchArray.Length;
                        
Network.GamePackets.TeamPkBrackets Twoqbrackets = new Network.GamePackets.TeamPkBrackets(count);
                        {
                            
Twoqbrackets.Group = (ushort)GroupID;
                            
Twoqbrackets.GUIType = (ushort)State;
                            
// Twoqbrackets.ListCount = 1;
                            
Twoqbrackets.TotalMatchesOnRoom = (ushort)count;
                            
Twoqbrackets.Page = (byte)1;
                            
Twoqbrackets.TimeLeft TimeLeft;
                            
Twoqbrackets.MatchCount = (byte)MatchArray.Length;
                            
Twoqbrackets.Type type;
                            for (
int i page limpage lim counti++)
                                
Twoqbrackets.Append(Top4MatchArray[i]);
                            
buffer[1] = Twoqbrackets;
                        }
                    }
                    return 
buffer;
                }

                
Network.GamePackets.TeamPkBrackets aqbrackets = new Network.GamePackets.TeamPkBrackets(count);
                {
                    
aqbrackets.Group = (ushort)GroupID;
                    
aqbrackets.GUIType = (ushort)State;
                    
aqbrackets.TotalMatchesOnRoom = (ushort)count;
                    
aqbrackets.Page = (byte)page;
                    
aqbrackets.TimeLeft TimeLeft;
                    
aqbrackets.MatchCount = (ushort)matches.Length;
                    
aqbrackets.Type type;
                    for (
int i page limpage lim counti++)
                        
aqbrackets.Append(matches[i]);
                    
Network.GamePackets.TeamPkBrackets[] buffer = new Network.GamePackets.TeamPkBrackets[1];
                    
buffer[0] = aqbrackets;
                    return 
buffer;
                }
            }
            catch (
Exception e) { Console.WriteLine(e.ToString()); return new Network.GamePackets.TeamPkBrackets[0]; }
        }

    }


بعدها ابحث عن
كود PHP:

    public class TeamPkBrackets 

امسح كل الي فيه وضيف دول
كود PHP:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using XMeGo.Game;
using XMeGo.Client;
using XMeGo.Game.Features.Tournaments;

namespace 
XMeGo.Network.GamePackets
{
    public class 
TeamPkBrackets WriterInterfaces.IPacket
    
{
        public const 
byte
            InitialList 
0,
            
StaticUpdate 1,
            
GUIEdit 2,
            
UpdateList 3,
            
RequestInformation 4,
            
StopWagers 5,
            
EPK_State 6;

        
byte[] Buffer;

        public 
TeamPkBrackets(int matches 0)
        {
            {
                if (
matches 5)
                    return;
                
Buffer = new byte[198 166 matches];
                
WriteUInt16((ushort)(Buffer.Length 8), 0Buffer);
                
WriteUInt16((ushort)22322Buffer);
            }
        }
        public 
byte Type
        
{
            
get { return Buffer[4]; }
            
set Buffer[4] = value; }
        }

        public 
byte Page
        
{
            
get { return Buffer[6]; }
            
set Buffer[6] = value; }
        }

        public 
byte ListCount
        
{
            
get { return Buffer[8]; }
            
set Buffer[8] = value; }
        }

        public 
uint MatchCount
        
{
            
get { return BitConverter.ToUInt32(Buffer10); }
            
set WriteUInt32(value10Buffer); }
        }

        public 
ushort Group
        
{
            
get { return BitConverter.ToUInt16(Buffer14); }
            
set WriteUInt16(value14Buffer); }
        }

        public 
ushort GUIType
        
{
            
get { return BitConverter.ToUInt16(Buffer16); }
            
set WriteUInt16(value16Buffer); }
        }

        public 
ushort TimeLeft
        
{
            
get { return BitConverter.ToUInt16(Buffer18); }
            
set WriteUInt16(value18Buffer); }
        }

        public 
uint TotalMatchesOnRoom
        
{
            
get { return BitConverter.ToUInt16(Buffer20); }
            
set WriteUInt32(value20Buffer); }
        }

        public 
bool OnGoing
        
{
            
get { return Buffer[20] == 1; }
            
set WriteBoolean(value20Buffer); }
        }

        private 
int offset 24;

        public 
void Append(TeamPk.Match match)
        {
            try
            {
                if (
match == null)
                {
                    return;
                }
                if (
Type != GUIEdit)
                {
                    
WriteUint(match.IDoffsetBuffer);
                }
                
offset += 4;
                
WriteUshort((ushort)match.MatchStats.LengthoffsetBuffer); offset += 2;
                
WriteUshort((ushort)match.IndexoffsetBuffer); offset += 2;
                
WriteUshort((ushort)match.FlagoffsetBuffer);
                
offset += 2;
                for (
int i 0match.MatchStats.Lengthi++)
                {
                    
AppendPlayer(match.MatchStats[i], offset);
                    
offset += 52;
                }
                if (
match.MatchStats.Length == 2offset += 52;
                if (
match.MatchStats.Length == 1offset += 104;
            }
            catch (
Exception e) { Console.WriteLine(e.ToString()); }
        }
        private 
void AppendPlayer(TeamPk.FighterStats statsint _offset)
        {
            
WriteUint(0_offsetBuffer); _offset += 4;
            
WriteUint(stats.Team.UID_offsetBuffer); _offset += 4;
            
WriteUint(stats.LeaderUID_offsetBuffer); _offset += 4;
            
WriteUint(stats.LeaderMesh_offsetBuffer); _offset += 4;
            
WriteString(stats.Name_offsetBuffer); _offset += 32;
            
WriteUint((uint)stats.Flag_offsetBuffer); _offset += 4;

        }

        public 
void Send(GameState client)
        {
            
client.Send(Buffer);
        }

        public 
byte[] ToArray()
        {
            return 
Buffer;
        }

        public 
void Deserialize(byte[] buffer)
        {
            
Buffer buffer;
        }
    }


بعدها ابحث عن
كود PHP:

public class TeamPkTop 

امسح كل الي فيه وضيف دول
كود PHP:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 
XMeGo.Network.GamePackets
{
    public class 
TeamPkTop Writer
    
{
        
byte[] packet;
        public 
byte[] ToArray()
        {
            return 
packet;
        }
        public const 
byte Top3 2Top8 0;
        public 
TeamPkTop()
        {
            
packet = new byte[464];//Old 452
            
WriteUInt16((ushort)(packet.Length 8), 0packet);

            
WriteUInt16(22332packet);
        }


        public 
uint Type get { return BitConverter.ToUInt32(packet4); } set WriteUInt32(value4packet); } }//top 3, top 8
        
public uint Group get { return BitConverter.ToUInt32(packet8); } set WriteUInt32(value8packet); } }//8
        
public uint GroupStatus get { return BitConverter.ToUInt32(packet12); } set WriteUInt32(value12packet); } }
        public 
uint Count get { return BitConverter.ToUInt32(packet16); } set WriteUInt32(value16packet); } }
        public 
uint ClientUID get { return BitConverter.ToUInt32(packet20); } set WriteUInt32(value20packet); } }

        private 
int Index 0;
        public 
void Appendxx(Game.Features.Tournaments.TeamPk.FighterStats statsint rank)
        {
            
ushort offset = (ushort)(20 Index 44); Index++;
            
WriteUInt32(stats.LeaderUIDoffsetpacket); offset += 4;
            
WriteUInt32((uint)rankoffsetpacket); offset += 4;
            
WriteString(stats.Nameoffsetpacket); offset += 32;
            
WriteUInt32(stats.LeaderMeshoffsetpacket); offset += 4;
        }
        public 
void AppendTeamPK(Game.Features.Tournaments.TeamPk.FighterStats statsint rank)
        {
            
rank += 1;
            
ushort offset = (ushort)(24 Index 48); Index++;
            
WriteUInt32(stats.LeaderUIDoffsetpacket); offset += 4;
            
WriteUInt32((uint)rankoffsetpacket); offset += 4;
            
WriteString(stats.Nameoffsetpacket); offset += 32;
            
WriteUInt32(stats.LeaderMeshoffsetpacket); offset += 4;
        }
    }


ابحث عن دي
كود PHP:

public class TeamPkMatchUI 

امسح كل الي فيها وضيف دول
كود PHP:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using XMeGo.Client;
using XMeGo.Game.Features.Tournaments;

namespace 
XMeGo.Network.GamePackets
{
    public class 
TeamPkMatchUI WriterInterfaces.IPacket
    
{
        public const 
byte
             BeginMatch 
2,
             
Effect 3,
             
EndMatch 4,
             
Information 7,
             
Reward 8;

        public const 
uint
            Effect_Win 
1,
            
Effect_Lose 0;

        
byte[] Buffer;

        public 
TeamPkMatchUI()
        {
            {
                
Buffer = new byte[52 8];
                
WriteUInt16(520Buffer);
                
WriteUshort((ushort)22302Buffer);
            }
        }

        public 
uint Type
        
{
            
get { return BitConverter.ToUInt32(Buffer4); }
            
set WriteUInt32(value4Buffer); }
        }

        public 
uint dwParam
        
{
            
get { return BitConverter.ToUInt32(Buffer8); }
            
set WriteUInt32(value8Buffer); }
        }

        public 
uint OpponentUID
        
{
            
get { return BitConverter.ToUInt32(Buffer12); }
            
set WriteUInt32(value12Buffer); }
        }

        public 
string OpponentName
        
{
            
get { return Program.Encoding.GetString(Buffer1616).Trim(); }
            
set WriteString(value16Buffer); }
        }

        public 
uint TimeLeft
        
{
            
get { return BitConverter.ToUInt32(Buffer48); }
            
set WriteUInt32(value48Buffer); }
        }

        public 
void Append(Game.ConquerStructures.Team opponent)
        {
            
OpponentUID opponent.Lider.Entity.UID;
            if (
opponent.TeamFighterStats != null)
                
OpponentName opponent.TeamFighterStats.Name;
        }

        public 
void Send(GameState client)
        {
            
client.Send(Buffer);
        }

        public 
byte[] ToArray()
        {
            return 
Buffer;
        }

        public 
void Deserialize(byte[] buffer)
        {
            
Buffer buffer;
        }
    }


ابحث عن
كود PHP:

public class TeamPkMatchStats 

امسح كل الي فيها وضيف دول
كود PHP:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using XMeGo.Client;
using XMeGo.Game;
using XMeGo.Game.Features.Tournaments;

namespace 
XMeGo.Network.GamePackets
{
    public class 
TeamPkMatchStats WriterInterfaces.IPacket
    
{
        
byte[] Buffer;

        public 
TeamPkMatchStats()
        {
            
Buffer = new byte[136 8];
            
WriteUInt16(1360Buffer);
            
WriteUshort((ushort)22312Buffer);
        }

        public 
void Append(TeamPk.Match match)
        {
            
ushort offset 8;
            var array = 
match.MatchStats.Where(=> p.Fighting).ToArray();
            
AppendPlayer(array[0], offset); offset 72;//60
            
if (array.Length 1)
                
AppendPlayer(array[1], offset);
        }

        public 
uint val1 0;
        public 
uint val2 0;
        public 
uint val3 0;
        public 
uint val4 0;
        private 
void AppendPlayer(TeamPk.FighterStats teamushort offset)
        {
            
WriteUint(team.LeaderUIDoffsetBuffer); offset += 4;
            
WriteUint(team.Team.UIDoffsetBuffer); offset += 4;
            
WriteString(team.Team.Lider.Entity.NameoffsetBuffer); offset += 16;//???   
            
WriteString(team.NameoffsetBuffer); offset += 32;
            
WriteUint(team.PointsoffsetBuffer);
        }
        public 
void Send(GameState client)
        {
            
client.Send(Buffer);
        }

        public 
byte[] ToArray()
        {
            return 
Buffer;
        }

        public 
void Deserialize(byte[] buffer)
        {
            
Buffer buffer;
        }
    }


روح علي كلاس npc هتروح علي npc teampk هتمسحو وتضيف دا
كود PHP:

                            #region Teampk
                            
case 8158:
                                {
                                    switch (
npcRequest.OptionID)
                                    {
                                        case 
0:
                                            {
                                                
dialog.Text("Attention! The Team Pk Tournament will be held every Day at 18.55. The Top 8");
                                                
dialog.Text("  teams will be handsomely rewarded, and each player in the team can");
                                                
dialog.Text(" receive EXP and 1,000 Honor Points affter each match.");
                                                
dialog.Option("What about the rules? "1);
                                                
dialog.Option("Sign up!"2);
                                                
dialog.Option("Claim prize"3);
                                                
dialog.Option("Leave."255);
                                                
dialog.Send();
                                                break;
                                            }
                                        case 
3:
                                            {
                                                if (
client.ClaimedTeampk == 1)
                                                {
                                                    
dialog.Text("You really get your prizes.");
                                                    
dialog.Option("Oh Sorry."255);
                                                    
dialog.Avatar(26);
                                                    
dialog.Send();
                                                    break;
                                                }
                                                else
                                                {
                                                    if (
Game.Features.Tournaments.TeamPk.GetReward(client))
                                                    {
                                                        
client.ClaimedTeampk 1;
                                                    }
                                                    else
                                                    {

                                                        
dialog.Text("Sorry, just the lider of 8 top teams will receive the reward!");
                                                        
dialog.Option("Ok thx."255);
                                                        
dialog.Send();
                                                    }
                                                    break;
                                                }
                                            }
                                        case 
1:
                                            {

                                                
dialog.Text("The Team Pk Tournament start at 18.55 every Day, and teams will be divided");
                                                
dialog.Text("  into four grups: Level 1-99, Level 100-119, level 120-129 and level 130+ ");
                                                
dialog.Text(" Only teams can participate in this Tournament . You can either create a team");
                                                
dialog.Text(" befor signin up, or enter the waiting area and create you team. At the start of the");
                                                
dialog.Text(" Tournament, any player who`s not in team will be removed from the tournament map.");
                                                
dialog.Text(" Where the Tournament ends, only the team leaders of the winning teams can claim the reward.");
                                                
dialog.Option("Ok Thanks you!"255);
                                                
dialog.Send();
                                                break;
                                            }

                                        case 
2:
                                            {
                                                if (
Game.Features.Tournaments.TeamPk.TeamTournament.Opened)
                                                {
                                                    if (
client.Team != null)
                                                    {
                                                        if (
client.Team.RightTeamElite())
                                                        {
                                                            if (!
Game.Features.Tournaments.TeamPk.TeamTournament.Join(clientclient.Team.GetEliteGroup(client.Entity.Level)))
                                                            {

                                                                
dialog.Text("Sorry, but your tournament on grup was staring..");
                                                                
dialog.Option("Ok thx."255);
                                                                
dialog.Send();

                                                            }
                                                        }
                                                        else
                                                        {
                                                            
dialog.Text("I'm sorry, but your Team must have players with the same level and in the same internships.");
                                                            
dialog.Text("Exemple: ( full 100-, or full 100-120, or full 120-130, or full 130+)");
                                                            
dialog.Option("Ok thx."255);
                                                            
dialog.Send();
                                                        }
                                                    }
                                                    else
                                                    {
                                                        
dialog.Text("Please create team");
                                                        
dialog.Option("Ok thx."255);
                                                        
dialog.Send();
                                                    }
                                                }
                                                else
                                                {
                                                    
dialog.Text("Aha! Can`t wait right? The Team Pk Tournament has not started, yet. Come");
                                                    
dialog.Text(" see me at 18:55, this Every Day. I can send you the field before the tournament starts at 19:00");
                                                    
dialog.Option("Ok See, you then!."255);
                                                    
dialog.Send();
                                                }
                                                break;
                                            }


                                    }

                                    break;
                                }
                            
#endregion 

افتح كلاس world روح علي الرسالة بتاعت التيم بكيه امسحها وضيف دي
كود PHP:

            #region TeamPk
            
if (((Now64.Hour == TeamPk.EventTime) && Now64.Minute >= 55) && !TeamPk.TeamTournament.Opened)
                
Game.Features.Tournaments.TeamPk.TeamTournament.Open();
            
#endregion 

علشان تحل الايرورات الي هتجيلك هتبدل XMeGo بي اسم البروجكت بتاعك ولو جالك ايرور في Entity بدلها بي Player

صورة بقي من التيم بكيه من لعبتي

عفواً لايمكن عرض الروابط إلا بعد الرد على الموضوع

كدا التيم بكيه وا الاليت بكيه تمم انشاء الله
نخوش بقي علي اخر حاجا الاسكل تيم بكيه
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ابحث عن
كود PHP:

public class SkillPkStatus 

امسح كل الي فيه وبدلو بي دول
كود PHP:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.Concurrent;
using XMeGo.Network.GamePackets;
using System.IO;
using XMeGo.Database;

namespace 
XMeGo.Game.Features.Tournaments
{
    public class 
SkillPkStatus
    
{
        public static 
int EventTime 21;
        public 
void GetSkillPkReward(Client.GameState clientbyte Rank)
        {
            
uint ITEM_ID 0;
            switch (
Rank)
            {
                case 
0:
                    
ITEM_ID = (uint)(720794 GetTeamGroup(client.Entity.Level));
                    break;
                case 
1:
                    
ITEM_ID = (uint)(720798 GetTeamGroup(client.Entity.Level));
                    break;
                case 
2:
                    
ITEM_ID = (uint)(720802 GetTeamGroup(client.Entity.Level));
                    break;
                default:
                    
ITEM_ID = (uint)(720806 GetTeamGroup(client.Entity.Level));
                    break;

            }
            
client.Inventory.Add(ITEM_ID01);
        }

        public static 
byte[] BlockOpenArena = new byte[] { 20086425587140160187130103021642041700848183101114118101114 };

        public 
byte GetTeamGroup(byte level)
        {
            if (
level >= 130)
                return 
3;
            if (
level >= 120)
                return 
3;
            if (
level >= 100)
                return 
1;
            else
                return 
0;
        }

        public 
enum top_typ
        
{
            
Elite_PK_Champion__Low_ 12,
            
Elite_PK_2nd_Place_Low_ 13,
            
Elite_PK_3rd_Place_Low_ 14,
            
Elite_PK_Top_8__Low_ 15,

            
Elite_PK_Champion_High_ 16,
            
Elite_PK_2nd_Place_High_ 17,
            
Elite_PK_3rd_Place__High_ 18,
            
Elite_PK_Top_8_High_ 19
        
}
        public class 
States
        
{
            public const 
byte
                GUI_Top8Ranking 
0,
                
GUI_Knockout 3,
                
GUI_Top8Qualifier 4,
                
GUI_Top4Qualifier 5,
                
GUI_Top2Qualifier 6,
                
GUI_Top3 7,
                
GUI_Top1 8,
                
GUI_ReconstructTop 9;

            public const 
byte
                T_Organize 
0,
                
T_CreateMatches 1,
                
T_Wait 2,
                
T_Fights 3,
                
T_Finished 4,

                
T_ReOrganize 5;
        }

    }
    public class 
SkillPk SkillPkStatus
    
{
        public 
enum GamePackets ushort
        
{
            
SkillEliteSetTeamName 2260,
            
SkillElitePkTop 2253,
            
SkillElitePkBrackets 2252,
            
SkillElitePKMatchStats 2251,
            
SkillElitePKMatchUI 2250,
            
TeamEliteSetTeamName 2240,
            
SkillPkTop 2233,
            
SkillPkBrackets 2232,
            
SkillPkMatchStats 2231,
            
SkillPkMatchUI 2230,
        }
        public class 
SkillTournament
        
{
            public static 
uint WaitingAreaID 2068;
            public static 
SkillPk[] Tournaments;
            public static 
bool Opened false;
            public static 
void Create()
            {
                try
                {
                    
Tournaments = new SkillPk[4];
                    for (
byte x 0Tournaments.Lengthx++)
                        
Tournaments[x] = new SkillPk(x);

                    
//   LoadTop(Tournaments, "SkillPkTop8");
                
}
                catch (
Exception e)
                {
                    
Console.WriteLine(e.ToString());
                }

            }
            public static 
void Save()
            {
                
// SaveTop(Tournaments, "SkillPkTop8");
            
}
            public static 
bool GetReward(Client.GameState clientout byte rankout byte elitestage)
            {
                if (
Tournaments != null)

                    for (
byte x 0Tournaments.Lengthx++)
                    {
                        if (
Tournaments[x] != null)
                        {
                            if (
Tournaments[x].Top8 != null)
                            {
                                for (
byte i 0Tournaments[x].Top8.Lengthi++)
                                {
                                    if (
Tournaments[x].Top8[i] != null)
                                    {
                                        if (
Tournaments[x].Top8[i].LeaderUID == client.Entity.UID)
                                        {

                                            if (
Tournaments[x].Top8[i].RceiveReward == 0)
                                            {
                                                
rank = (byte)(1);
                                                
elitestage x;
                                                
Tournaments[x].Top8[i].RceiveReward 1;
                                                return 
true;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                
rank 0;
                
elitestage 0;
                return 
false;
            }
            public static 
void Open()
            {
                if (!
Opened)
                {
                    
Opened true;
                    for (
byte x 0Tournaments.Lengthx++)
                    {
                        
Tournaments[x].SubscribeTimer(1);
                        
Tournaments[x].AllowJoin true;
                    }
                    
Kernel.SendWorldMessage(new Message("The Skill Team PK Tournament will start at 22:00. Prepare Yourself And Sign Up For It As a Team."System.Drawing.Color.WhiteMessage.BroadcastMessage), Program.Values);
                    foreach (var 
client in Program.Values)
                    {
                        
client.ClaimedSkillTeam 0;
                        
client.MessageBox("The Skill Team PK Tournament began Would you like to join?",
                        
=> { p.Entity.Teleport(1002308148); }, null60);
                    }

                }
            }
            public static 
bool Join(Client.GameState clientbyte Grope)
            {
                if (
client.Team == null)
                    return 
false;

                if (
Grope <= 3)
                {
                    
client.Team.SetSkillFighterStats(true);
                    return 
Tournaments[Grope].SignUp(client);
                }
                return 
false;
            }
        }
        private 
void SaveTop8(string epk)
        {
            try
            {
                
int len Top8.Count(=> p.LeaderUID != 0);
                var 
stream = new MemoryStream();
                var 
writer = new BinaryWriter(stream);
                
writer.Write(len);
                for (
int i 0leni++)
                {
                    
writer.Write(Top8[i].LeaderUID);
                    
writer.Write(Top8[i].Name);
                    
writer.Write(Top8[i].LeaderMesh);
                    
writer.Write(Top8[i].Rank);
                    
writer.Write(Top8[i].Title);
                    
writer.Write(Top8[i].RceiveReward);
                }

                
string SQL "UPDATE `matrixvariable` SET data=@data where ID = '" epk "' ;";
                
byte[] rawData stream.ToArray();
                
using (var conn DataHolder.MySqlConnection)
                {
                    
conn.Open();
                    
using (var cmd = new MySql.Data.MySqlClient.MySqlCommand())
                    {
                        
cmd.Connection conn;
                        
cmd.CommandText SQL;
                        
cmd.Parameters.AddWithValue("@data"rawData);
                        
cmd.ExecuteNonQuery();
                    }
                }
            }
            catch (
Exception)
            {
                
Console.WriteLine("Error SkillPk.cs");
            }
        }
        private 
void LoadTop8(string epk)
        {
            try
            {
                
Top8 = new FighterStats[8];
                
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT))
                {
                    
cmd.Select("matrixvariable").Where("ID"epk);
                    
using (MySqlReader rdr = new MySqlReader(cmd))
                    {
                        if (
rdr.Read())
                        {
                            
byte[] data rdr.ReadBlob("data");
                            if (
data.Length 0)
                            {
                                
using (var stream = new MemoryStream(data))
                                
using (var reader = new BinaryReader(stream))
                                {
                                    
int len reader.ReadInt32();
                                    for (
int i 0leni++)
                                    {
                                        
Top8[i] = new FighterStats(reader.ReadUInt32(), reader.ReadString(), reader.ReadUInt32(), null);
                                        
Top8[i].Rank reader.ReadByte();
                                        
Top8[i].Title reader.ReadByte();
                                        
Top8[i].RceiveReward reader.ReadByte();
                                    }
                                }
                            }
                        }
                        else
                        {
                            
using (var command = new MySqlCommand(MySqlCommandType.INSERT))
                            {
                                
command.Insert("matrixvariable").Insert("ID"epk);
                                
command.Execute();
                            }
                        }
                    }
                }
            }
            catch (
Exception e)
            {

                
Console.WriteLine(e);
            }
        }
        public class 
FighterStats
        
{
            public 
enum StatusFlag int
            
{
                
None 0,
                
Fighting 2,
                
Lost 4,
                
Qualified 3,
                
Waiting 1,
            }

            public 
Game.ConquerStructures.Team Team;

            public 
string Name;
            public 
uint LeaderUID;
            public 
uint LeaderMesh;

            public 
bool OnNextMatch false;
            public 
uint Cheers;
            public 
uint Points;
            public 
StatusFlag Flag;
            public 
bool Teleported;

            public 
byte RceiveReward;
            public 
byte Title;
            public 
byte Rank;

            public 
bool Waiting get { return Flag == StatusFlag.Waiting; } }
            public 
bool NoFlag get { return Flag == StatusFlag.None; } }
            public 
bool Fighting get { return Flag == StatusFlag.Fighting; } }
            public 
bool Winner get { return Flag == StatusFlag.Qualified; } }
            public 
bool Lost get { return Flag == StatusFlag.Lost; } }


            public 
FighterStats(uint idstring nameuint meshGame.ConquerStructures.Team temate)
            {
                
LeaderUID id;
                
Name name;
                
LeaderMesh mesh;
                
Team temate;
            }
            public 
void Reset(bool noflag false)
            {
                
Points 0;
                
Cheers 0;
                if (!
noflag)
                {
                    if (!
Lost)
                        
Flag StatusFlag.Waiting;
                }
            }
            public 
FighterStats Clone()
            {
                
FighterStats stats = new FighterStats(LeaderUIDNameLeaderMeshTeam);
                
stats.Points this.Points;
                
stats.Flag this.Flag;

                return 
stats;
            }
            public 
override string ToString()
            {
                if (
Name.Contains('^'))
                    
Name.Replace("^""");
                if (
Name.Contains('#'))
                    
Name.Replace('#'' ');
                
StringBuilder build = new StringBuilder();
                
build.Append(LeaderUID "#" Name "#" LeaderMesh "#" Rank "#" Title "#" RceiveReward "");
                return 
build.ToString();
            }
            public 
void Load(string Line)
            {
                
string[] data Line.Split('#');
                
LeaderUID uint.Parse(data[0]);
                
Name data[1];
                
LeaderMesh uint.Parse(data[2]);
                
Rank byte.Parse(data[3]);
                
Title byte.Parse(data[4]);
                
RceiveReward byte.Parse(data[5]);
            }
        }

        public class 
Match
        
{
            public 
enum StatusFlag int
            
{
                
SwitchOut 0,
                
Watchable 1,
                
Waiting 3,
                
OK 2,
            }
            public 
IEnumerable<Client.GameStatePlayers
            
{
                
get
                
{

                    foreach (var 
team in MatchStats)
                        foreach (var 
player in team.Team.Players)
                            yield return 
player;
                }
            }
            public List<
uintCheerers = new List<uint>();
            public 
FighterStats[] MatchStats;
            public 
bool OnGoing get { return Flag == StatusFlag.Watchable; } }
            public 
int GroupID get { return (int)ID 100000 1; } }

            public 
uint TimeLeft
            
{
                
get
                
{
                    
int val 0;
                    if (
MatchStats.Length == 1)
                        
val 0;
                    else
                        
val = (int)((ImportTime.AddMinutes(10).TotalMilliseconds Time32.Now.TotalMilliseconds) / 1000);
                    if (
val 0)
                        
val 0;
                    return (
uint)val;
                }
            }
            public 
void Send(Client.GameState clientint gui_state)
            {
                
SkillPkBrackets brackets = new SkillPkBrackets(1);
                
brackets.Group = (ushort)GroupID;
                
brackets.GUIType = (ushort)gui_state;
                
brackets.TotalMatchesOnRoom brackets.MatchCount 1;
                
brackets.Type ElitePKBrackets.StaticUpdate;
                
brackets.Append(this);
                
client.Send(brackets);
            }
            public 
void Commit()
            {
                var 
matchStats = new FighterStats[MatchStats.Length];
                for (
int i 0matchStats.Lengthi++)
                {
                    
matchStats[i] = MatchStats[i].Clone();
                }
                
MatchStats matchStats;
            }
            public 
ConcurrentDictionary<uintClient.GameStateWatchers;
            public 
FighterStats Return(Func<FighterStatsboolfn)
            {
                try
                {
                    foreach (var 
stat in MatchStats)
                    {
                        if (
stat != null)
                        {
                            if (
fn(stat))
                            {
                                return 
SkillTournament.Tournaments[GroupID].Teams[stat.Team.UID].SkillFighterStats;
                            }
                        }
                    }
                    
MatchStats[0].Flag FighterStats.StatusFlag.Qualified;
                    return 
MatchStats[0];
                }
                catch (
Exception e)
                {
                    
Console.WriteLine(e);
                }
                return 
null;
            }
            public 
uint ID;
            public 
StatusFlag Flag;
            public 
bool Inside;
            public 
bool Done;
            public 
bool Exported;

            public 
bool Completed;
            public 
ushort Index;

            public 
Time32 ImportTime;
            public 
Map Map;
            private 
Time32 DoneStamp;

            private 
int Imports;

            public 
void CheckAlive(Game.ConquerStructures.Team team)
            {
                if (!
Inside)
                    return;
                
bool dead true;
                foreach (var 
players in team.Teammates)
                {
                    if (
players.Entity.MapID == Map.ID)
                    {
                        if (
players.Entity.Hitpoints 0)
                            
dead false;
                    }
                }
                if (
dead)
                    
End(team);
            }
            public 
void CheckForEnd()
            {
                if (
Done) return;
                foreach (var 
team in MatchStats)
                {
                    if (
Inside)
                    {
                        
CheckAlive(team.Team);
                    }
                }
            }
            public 
void AliveMatch()
            {

                if (
Flag != StatusFlag.OK)
                {
                    if (
Inside && !Done)
                    {
                        foreach (var 
dismised in MatchStats)
                        {
                            if (
Flag != StatusFlag.OK)
                            {
                                if (
MatchStats.Length == 2)
                                {
                                    if (
MatchStats[0].Winner)
                                        return;
                                    if (
MatchStats[1].Winner)
                                        return;
                                }
                                if (!
dismised.Team.OnPopulates)
                                {
                                    if (
dismised.Waiting)
                                    {
                                        
dismised.Flag FighterStats.StatusFlag.Lost;
                                        
dismised.Team.SkillFighterStats.Flag FighterStats.StatusFlag.Lost;
                                    }
                                    if (!
dismised.Lost)
                                    {
                                        
Console.WriteLine("team " dismised.Team.SkillFighterStats.Name " has lost");
                                        
this.End(dismised.Team);
                                    }
                                }
                                else
                                {
                                    
CheckAlive(dismised.Team);
                                }
                            }
                        }
                    }
                }
            }
            public static 
SafeConcurrentDictionary<uintMatchThreadMatch = new SafeConcurrentDictionary<uintMatch>();
            public static 
void AddMatch(Game.ConquerStructures.Team team)
            {
                if (
ThreadMatch.ContainsKey(team.UID))
                    
ThreadMatch.Remove(team.UID);
                
ThreadMatch.Add(team.UIDteam.SkillMatch);
            }
            public 
Match(params FighterStats[] teamates)
            {
                try
                {
                    
Map Kernel.Maps[700].MakeDynamicMap();
                    if (
teamates.Length == 1)
                    {
                        
Flag StatusFlag.OK;
                        
MatchStats = new FighterStats[1];
                        
MatchStats[0] = teamates[0].Team.SkillFighterStats;
                        
MatchStats[0].Team.SkillMatch this;
                        
Match.AddMatch(MatchStats[0].Team);
                        
MatchStats[0].Points 0;
                        
MatchStats[0].Cheers 0;
                        
MatchStats[0].Flag FighterStats.StatusFlag.Qualified;
                        
Flag StatusFlag.OK;
                        
Exported true;
                    }
                    else
                    {
                        
Watchers = new ConcurrentDictionary<uintClient.GameState>();
                        
MatchStats = new FighterStats[teamates.Length];
                        for (
int i 0teamates.Lengthi++)
                        {
                            
MatchStats[i] = teamates[i].Team.SkillFighterStats;
                            
MatchStats[i].Team.SkillMatch this;
                            
Match.AddMatch(MatchStats[i].Team);
                            
MatchStats[i].Flag FighterStats.StatusFlag.Waiting;
                            
MatchStats[i].Points 0;
                            
MatchStats[i].Cheers 0;
                            
MatchStats[i].Teleported false;
                        }
                        if (
MatchStats.Length == 3)
                            
MatchStats[0].Flag FighterStats.StatusFlag.None;

                        
Imports 0;
                        
Flag StatusFlag.Waiting;
                    }
                }
                catch (
Exception e) { Console.WriteLine(e.ToString()); }
            }

            public 
void Import(StatusFlag flag StatusFlag.Watchable)
            {
                try
                {

                    
Imports++;
                    
Exported Done false;
                    
Inside true;
                    
Flag StatusFlag.Watchable;
                    
ImportTime Time32.Now;
                    if (
MatchStats.Length 1)
                    {
                        
Game.ConquerStructures.Team team1 nullteam2 null;
                        for (
int i 0MatchStats.Lengthi++)
                            if (!
MatchStats[i].NoFlag && !MatchStats[i].Lost)
                                if (
team1 == null)
                                    
team1 MatchStats[i].Team;
                                else
                                    
team2 MatchStats[i].Team;
                        if (!
team1.CanFightSkillPK)
                        {
                            
Exported Done true;
                            
Flag StatusFlag.OK;
                            if (
MatchStats.Length == 3)
                                
Flag StatusFlag.SwitchOut;
                            
Completed true;
                            var 
statsArray team2.Teammates;
                            
team1.SkillFighterStats.Flag FighterStats.StatusFlag.Lost;
                            
team2.SkillFighterStats.Flag FighterStats.StatusFlag.Qualified;
                            return;
                        }
                        if (!
team2.CanFightSkillPK)
                        {
                            
Exported Done true;
                            
Flag StatusFlag.OK;
                            if (
MatchStats.Length == 3)
                                
Flag StatusFlag.SwitchOut;
                            
Completed true;
                            var 
statsArray team2.Teammates;
                            
team2.SkillFighterStats.Flag FighterStats.StatusFlag.Lost;
                            
team1.SkillFighterStats.Flag FighterStats.StatusFlag.Qualified;
                            return;
                        }
                        
team1.SkillFighterStats.Flag FighterStats.StatusFlag.Fighting;
                        
team2.SkillFighterStats.Flag FighterStats.StatusFlag.Fighting;
                        
importPlayer(team1team2);
                        
importPlayer(team2team1);
                        
team1.SkillMatch this;
                        
team2.SkillMatch this;
                        
Match.AddMatch(team1);
                        
Match.AddMatch(team2);
                        
team1.Lider.Match this;
                        
team2.Lider.Match this;
                        
Network.GamePackets.SkillPkBrackets brackets = new Network.GamePackets.SkillPkBrackets(1);
                        {
                            
brackets.Group = (ushort)GroupID;
                            
brackets.GUIType = (ushort)SkillTournament.Tournaments[GroupID].State;
                            
brackets.TotalMatchesOnRoom brackets.MatchCount 1;
                            
brackets.Type Network.GamePackets.SkillPkBrackets.StaticUpdate;
                            
brackets.Append(this);
                            
Kernel.SendWorldMessage(brackets.ToArray());
                        }
                        
MapStatus status = new MapStatus();
                        
status.BaseID 700;
                        
status.ID Map.ID;
                        
status.Statu 19568946643047;
                        
SendMapPacket(status.ToArray());
                    }
                    else
                    {
                        
Done true;
                        
Flag StatusFlag.OK;
                        
Exported true;
                        
Completed true;
                        
MatchStats[0].Flag FighterStats.StatusFlag.Qualified;
                    }
                }
                catch (
Exception e)
                {
                    
Console.WriteLine(e);
                }
            }
            public 
void SendMapPacket(byte[] buffer)
            {
                foreach (var 
player in Players)
                    if (
player.Entity.MapID == Map.ID)
                        
player.Send(buffer);
            }
            private 
void importPlayer(Game.ConquerStructures.Team teamoneGame.ConquerStructures.Team opponent)
            {
                if (
MatchStats.Length 1)
                {
                    
teamone.SkillFighterStats.Teleported true;
                    
opponent.SkillFighterStats.Teleported true;
                    
//   ushort x = 0; ushort y = 0;
                    
foreach (var player in teamone.Players)
                    {
                        if (
player.Entity.MapID != SkillPk.SkillTournament.Tournaments[GroupID].WaitingArea.ID)
                            continue;
                        
/*if (player.Entity.ContainsFlag((ulong)Update.Flags.Ride))
                        {
                            player.Entity.RemoveFlag(MsgServer.MsgUpdate.Flags.Ride);
                        }*/
                        
player.LoadItemStats();
                        var 
coords Map.RandomCoordinates();
                        
player.Entity.Teleport(Map.BaseIDMap.IDcoords.Item1coords.Item2);
                        
player.Entity.BringToLife();
                        
player.Entity.SkillWatchingMatch null;
                        if (
player.Guild != null)
                            
player.Entity.GuildBattlePower player.Guild.GetSharedBattlepower(player.AsMember.Rank);
                        
Network.GamePackets.SkillPkMatchUI ui = new Network.GamePackets.SkillPkMatchUI();
                        {
                            
ui.Append(opponent);
                            
ui.TimeLeft TimeLeft;
                            
ui.Type Network.GamePackets.SkillPkMatchUI.BeginMatch;
                            
player.Send(ui.ToArray());
                        }
                        
player.Send(BlockOpenArena);
                        
player.Send(CreateUpdate().ToArray());
                        
player.CantAttack Time32.Now.AddSeconds(11);
                        
player.Entity.PrevPKMode player.Entity.PKMode;
                        
player.Entity.PKMode Enums.PKMode.Team;
                        
Network.GamePackets.Data dat = new Network.GamePackets.Data(true);
                        {
                            
dat.UID player.Entity.UID;
                            
dat.ID Network.GamePackets.Data.ChangePKMode;
                            
dat.dwParam = (uint)player.Entity.PKMode;
                            
player.Send(dat.ToArray());
                        }
                    }
                }
                else
                {
                    
MatchStats[0].Flag FighterStats.StatusFlag.Qualified;
                    
Done true;
                    
Flag StatusFlag.OK;
                    
Exported true;
                    
Completed true;
                }
            }
            public 
void End(Game.ConquerStructures.Team team)
            {
                try
                {

                    if (
MatchStats.Length == 1)
                    {
                        
MatchStats[0].Flag FighterStats.StatusFlag.Qualified;
                        
Flag StatusFlag.OK;
                        return;
                    }
                    if (
Done) return;
                    
Done true;
                    
DoneStamp Time32.Now;
                    
Flag StatusFlag.OK;
                    
team.SkillFighterStats.Flag FighterStats.StatusFlag.Lost;
                    
Network.GamePackets.SkillPkMatchUI ui = new Network.GamePackets.SkillPkMatchUI();
                    {
                        
ui.Type Network.GamePackets.SkillPkMatchUI.Effect;
                        
ui.dwParam Network.GamePackets.SkillPkMatchUI.Effect_Lose;
                        
team.SendMesageTeam(ui.ToArray(), 0);
                        var 
team_win targetOfWin(team);
                        if (
team_win != null)
                        {
                            
ui.Append(team_win.Team);
                            
ui.dwParam Network.GamePackets.SkillPkMatchUI.Effect_Win;

                            foreach (var 
target in team_win.Team.Players)
                            {
                                
target.Send(ui.ToArray());
                                
ui.Type Network.GamePackets.SkillPkMatchUI.EndMatch;
                                
team.SendMesageTeam(ui.ToArray(), 0);
                                
target.Send(ui.ToArray());

                                
target.Inventory.Add(72098101);

                                
ui.Type Network.GamePackets.SkillPkMatchUI.Reward;
                                
target.Send(ui.ToArray());

                                if (
Imports == || MatchStats.Length != || MatchStats[0] == null)
                                {
                                    
team_win.Flag FighterStats.StatusFlag.Qualified;
                                }
                                else
                                {
                                    var 
dictionar MatchStats.Where(=> !p.Lost).ToArray();
                                    if (
dictionar.Length == 2)
                                    {
                                        
Flag StatusFlag.SwitchOut;
                                        
team_win.Flag FighterStats.StatusFlag.Waiting;
                                        
team_win.OnNextMatch true;
                                    }
                                    else
                                        
team_win.Flag FighterStats.StatusFlag.Qualified;
                                }
                            }

                        }
                    }
                    
Network.GamePackets.SkillPkBrackets brackets = new Network.GamePackets.SkillPkBrackets(1);
                    {
                        
brackets.Group = (ushort)GroupID;
                        
brackets.GUIType = (ushort)SkillTournament.Tournaments[GroupID].State;
                        
brackets.TotalMatchesOnRoom brackets.MatchCount 1;
                        
brackets.Type Network.GamePackets.SkillPkBrackets.StaticUpdate;
                        
brackets.Append(this);
                        
Kernel.SendWorldMessage(brackets.ToArray());
                    }
                    foreach (var 
clien in Watchers.Values)
                        if (
clien.Entity.MapID == Map.ID)
                            
LeaveWatch(clien);
                }
                catch (
Exception e) { Console.WriteLine(e.ToString()); }
            }
            public 
void Export()
            {
                try
                {
                    if (
Time32.Now DoneStamp.AddSeconds(3) || TimeLeft == 0)
                    {
                        
#region !Done
                        
if (!Done)
                        {
                            if (
MatchStats.Length == 1)
                            {
                                
MatchStats[0].Flag FighterStats.StatusFlag.Qualified;
                                
Flag StatusFlag.OK;
                                
Exported true;
                                
Exported true;
                                
Completed true;
                                return;
                            }
                            else
                            {
                                var 
fighters MatchStats.Where(=> p.Fighting).OrderBy(=> p.Points).ToArray();
                                for (
int i 0fighters.Lengthi++)
                                {
                                    var 
team fighters[i];
                                    
End(team.Team);

                                }
                                
//var fighters = MatchStats.Where(p => p.Fighting).ToArray();
                                //if (fighters.Length > 1)
                                //{
                                //    if (fighters[0].Fighting && fighters[1].Fighting)
                                //    {
                                //        if (fighters[0].Points == fighters[1].Points)
                                //            End(fighters.Last(p => p.Team.UID == fighters[0].Team.UID).Team);
                                //        else
                                //        {
                                //            if (fighters[0].Points > fighters[1].Points)
                                //                End(fighters.Last(p => p.Team.UID == fighters[0].Team.UID).Team);
                                //            else
                                //                End(fighters.Last(p => p.Team.UID == fighters[1].Team.UID).Team);
                                //        }
                                //    }
                                //}
                                //else if (fighters.Length == 1)
                                //    End(fighters.First(p => p.Team.UID == fighters[0].Team.UID).Team);
                            
}
                        }
                        
#endregion
                        
foreach (var teams in MatchStats)
                        {
                            if (
teams != null)
                            {
                                if (!
teams.Waiting && teams.Teleported || teams.OnNextMatch)
                                {
                                    foreach (var 
player in teams.Team.Players)
                                    {

                                        if (
player.Entity.MapID == Map.ID)
                                        {
                                            
player.Entity.InSkillPk false;

                                            var 
map SkillTournament.Tournaments[GroupID].WaitingArea;
                                            var 
coords map.RandomCoordinates();
                                            
Data dat = new Data(true);
                                            
dat.UID player.Entity.UID;
                                            
dat.ID Data.ChangePKMode;
                                            
dat.dwParam = (uint)player.Entity.PrevPKMode;
                                            
player.Send(dat);
                                            
player.Entity.Teleport(map.IDcoords.Item1coords.Item2);
                                            if (
player.Entity.Hitpoints == 0)
                                                
player.Entity.BringToLife();
                                            
MapStatus status = new MapStatus();
                                            
status.BaseID map.BaseID;
                                            
status.ID map.ID;
                                            
status.Statu 2568946643047;
                                            
player.Send(status);
                                        }
                                    }
                                    
teams.Teleported true;
                                }
                            }
                        }

                        
Exported true;
                        
Completed true;
                    }
                }
                catch (
Exception e) { Console.WriteLine(e.ToString()); }
            }

            public 
void SwitchBetween()
            {
                if (
Imports == && MatchStats.Length == && MatchStats[0] != null && !MatchStats[0].Lost)
                {
                    
MatchStats[0].Flag FighterStats.StatusFlag.Waiting;
                    if (
MatchStats[1].Winner)
                    {
                        
MatchStats[1].Teleported false;
                        
MatchStats[1].Flag FighterStats.StatusFlag.Waiting;

                    }
                    if (
MatchStats[2].Winner)
                    {
                        
MatchStats[2].Teleported false;
                        
MatchStats[2].Flag FighterStats.StatusFlag.Waiting;
                    }
                    
Completed false;
                }
            }
            public 
SkillPk.FighterStats targetOfWin(Game.ConquerStructures.Team team)
            {
                var 
dictionar MatchStats.Where(=> p.Fighting).ToArray();
                for (
int i 0dictionar.Lengthi++)
                    if (
dictionar[i] != null)
                        if (
dictionar[i].Team.UID != team.UID)
                            return 
dictionar[i];
                return 
null;
            }
            public 
SkillPkMatchStats CreateUpdate()
            {
                
Network.GamePackets.SkillPkMatchStats stats = new Network.GamePackets.SkillPkMatchStats();
                
stats.Append(this);
                return 
stats;
            }
            public 
void BeginWatch(Client.GameState client)
            {
                if (
client.Entity.SkillWatchingMatch != null) return;
                if (
Watchers.ContainsKey(client.Entity.UID)) return;
                
Watchers.TryAdd(client.Entity.UIDclient);
                
client.Entity.SkillWatchingMatch this;
                
client.Entity.WatchingArena 1;
                var 
coords Map.RandomCoordinates();
                
client.Entity.Teleport(Map.BaseIDMap.IDcoords.Item1coords.Item2);
                
Network.GamePackets.ElitePKWatch watch = new Network.GamePackets.ElitePKWatch(trueMatchStats.Length);
                
watch.dwParam MatchStats.First().Team.UID;
                
watch.Type Network.GamePackets.ElitePKWatch.RequestView;
                
watch.dwCheers1 MatchStats[0].Cheers;
                
watch.dwCheers2 MatchStats[1].Cheers;
                
client.Send(watch.ToArray());
                
client.Send(CreateUpdate().ToArray());
                
UpdateWatchers();
                
MapStatus status = new MapStatus();
                
status.BaseID Map.BaseID;
                
status.ID Map.ID;
                
status.Statu 2568946643047;
                
client.Send(status);

                
client.Entity.PKMode Enums.PKMode.Capture;
                
client.Entity.Send(new Data(true) { UID client.Entity.UIDID Data.ChangePKModedwParam = (uint)client.Entity.PKMode });
            }

            public 
void Update()
            {
                var 
update CreateUpdate();
                foreach (var 
player in Players)
                    if (
player != null)
                        if (
player.Team.SkillFighterStats.Fighting)
                            
player.Send(update.ToArray());
                foreach (var 
watch in Watchers.Values)
                    if (
watch != null)
                        
watch.Send(update.ToArray());
            }
            public 
void UpdateWatchers()
            {
                
Network.GamePackets.ElitePKWatch watch = new Network.GamePackets.ElitePKWatch(trueWatchers.Count);
                {
                    
watch.ID ID;
                    
watch.Type Network.GamePackets.ElitePKWatch.Watchers;
                    
watch.WatcherCount = (uint)Watchers.Count;
                    
watch.dwCheers1 MatchStats[0].Cheers;
                    
watch.dwCheers2 MatchStats[1].Cheers;
                    foreach (var 
pClient in Watchers.Values)
                        
watch.Append(pClient.Entity.MeshpClient.Entity.Name);
                    foreach (var 
pClient in Watchers.Values)
                        
pClient.Send(watch.ToArray());
                    foreach (var 
pClient in Players)
                        if (
pClient != null)
                            
pClient.Send(watch.ToArray());
                }
            }
            public 
void LeaveWatch(Client.GameState client)
            {
                if (
Watchers.TryRemove(client.Entity.UIDout client))
                {
                    if (!
Done)
                        
UpdateWatchers();
                    
client.Entity.SkillWatchingMatch null;
                    
Network.GamePackets.ElitePKWatch watch = new Network.GamePackets.ElitePKWatch(true);
                    {
                        
watch.ID ID;
                        
watch.Type Network.GamePackets.ElitePKWatch.Leave;
                        
client.Send(watch.ToArray());
                    }
                    if (
Program.EventsMap.Contains(client.Entity.PreviousMapID))
                        
client.Entity.Teleport(1002300278);
                    else
                        
client.Entity.PreviousTeleport();
                }
            }

            public 
void Cheer(Client.GameState clientuint fighter)
            {
                if (!
this.Cheerers.Contains(client.Entity.UID))
                {
                    
Cheerers.Add(client.Entity.UID);
                    
ElitePKWatch watch = new ElitePKWatch(trueMatchStats.Length);
                    
watch.ID ID;
                    
watch.Type ElitePKWatch.Fighters;
                    
watch.dwCheers1 MatchStats[0].Cheers;
                    
watch.dwCheers2 MatchStats[1].Cheers;
                    if (
MatchStats[0].LeaderUID == fighter)
                    {
                        
watch.Append(0MatchStats[0].Name);
                        
MatchStats[0].Cheers += 1;
                    }
                    else if (
MatchStats[1].LeaderUID == fighter)
                    {
                        
watch.Append(0MatchStats[1].Name);
                        
MatchStats[1].Cheers += 1;
                    }
                    
watch.Append(client.Entity.Name);
                    foreach (var 
watchers in Watchers.Values)
                        
watchers.Send(watch);
                    foreach (var 
fighters in Players)
                        
fighters.Send(watch);
                    
UpdateWatchers();
                    
SendGlobal(CreateUpdate().ToArray());
                }
            }
            public 
void SendGlobal(byte[] buffer)
            {
                foreach (var 
pClient in Watchers.Values)
                    if (
pClient != null)
                        
pClient.Send(buffer);
                foreach (var 
pClient in Players)
                    if (
pClient != null)
                        
pClient.Send(buffer);
            }
        }
        public 
FighterStats[] Top8 = new FighterStats[0];

        public 
ConcurrentDictionary<uintGame.ConquerStructures.TeamTeams;
        public 
ConcurrentDictionary<uintMatchMatches;
        public 
Match[] MatchArray;
        private 
Match[] Top4MatchArray;
        public 
Match[] ExtendedMatchArray;
        public 
Match FinalMatch;
        private 
Counter MatchCounter;
        private 
ushort MatchIndex;

        public 
bool Alive false;
        public 
DateTime ConstructTop8 = new DateTime();
        public 
Map WaitingArea;
        public 
int State;
        private 
int pState States.T_Organize;
        public 
int GroupID;
        private 
bool willAdvance;

        private 
Time32 pStamp;
        public 
GamePackets ID;
        public 
ushort TimeLeft
        
{
            
get
            
{
                
int value = (int)((pStamp.TotalMilliseconds Time32.Now.TotalMilliseconds) / 1000);
                if (
value 0) return 0;
                return (
ushort)value;
            }
        }



        public 
SkillPk(int group)
        {
            if (!
Alive)
            {

                
Alive true;
                
Teams = new ConcurrentDictionary<uintConquerStructures.Team>();
                
Matches = new ConcurrentDictionary<uintMatch>();

                
GroupID group;

                var 
name "SkillPk";
                
LoadTop8(string.Format("{0}{1}"nameGroupID));

                
MatchCounter = new Counter((uint)(GroupID 100000 100000));

                
WaitingArea Kernel.Maps[(ushort)ElitePKTournament.WaitingAreaID].MakeDynamicMap();
                
Constants.PKForbiddenMaps.Add(WaitingArea.ID);
                
Interfaces.INpc npc = new Network.GamePackets.NpcSpawn();
                
npc.UID 7911;
                
npc.Name "SkillPKClerk";
                
npc.Mesh 1340;
                
npc.Type = (Enums.NpcType)2;
                
npc.49;
                
npc.47;
                
npc.MapID WaitingArea.ID;
                
WaitingArea.AddNpc(npc);
                
State States.GUI_Top8Ranking;
                
pState States.T_Organize;
            }
        }

        public 
bool SignUp(Client.GameState client)
        {
            if (
AllowJoin || client.Fake)
            {
                var 
coords WaitingArea.RandomCoordinates();
                
client.Entity.Teleport(WaitingArea.IDcoords.Item1coords.Item2);


                if (!
Teams.ContainsKey(client.Team.UID))
                    
Teams.Add(client.Team.UIDclient.Team);
                
client.Entity.InSkillPk true;
                
client.LoadItemStats();
                
Network.GamePackets.SkillPkMatchUI ui = new Network.GamePackets.SkillPkMatchUI();
                {
                    
ui.Type 1;
                    
ui.dwParam Network.GamePackets.SkillPkMatchUI.Effect_Win;
                    
ui.Append(client.Team);
                    
client.Send(ui.ToArray());
                    
ui.Type 5;
                    
client.Send(ui.ToArray());
                }
                if (
client.Team.TeamLider(client))
                {
                    
Network.GamePackets.TeamSetName teamname = new Network.GamePackets.TeamSetName();
                    {
                        
teamname.TeamID client.Team.UID;
                        
teamname.TeamName client.Team.SkillFighterStats.Name;
                        
client.Send(teamname.ToArray());
                    }
                }
                
MapStatus status = new MapStatus();
                
status.BaseID WaitingArea.BaseID;
                
status.ID WaitingArea.ID;
                
status.Statu 2568946643047;
                
client.Send(status);
                return 
true;
            }
            return 
false;
        }
        
DateTime StarTimer = new DateTime();
        private 
bool AllowJoin false;
        private 
IDisposable Subscriber;
        public 
bool Organization false;
        public 
void SubscribeTimer(int minutes)
        {
            
StarTimer DateTime.Now;
            
StarTimer StarTimer.AddSeconds(10);
            
AllowJoin true;
            
Organization true;
            if (
Subscriber == null)
                
Subscriber World.Subscribe(timerCallback1000);
        }
        public 
void Purge()
        {
            foreach (var 
team in Teams.Values)
            {
                if (
State == States.GUI_Top8Qualifier)
                {
                    if (
Teams.Count 8)
                    {
                        if (
team.SkillFighterStats.Lost || !team.OnPopulates)// && player.Player.MyLocation.DinamicID != WaitingArea)
                        
{
                            
Remove(team.UID);
                        }
                    }
                }
                else if (
team.SkillFighterStats.Lost)
                {
                    if (
Teams.Count 8)
                    {
                        
Remove(team.UID);
                    }
                }
            }
        }
        public static 
Time32 Test;
        public static List<
MaTrix.AIAis = new List<MaTrix.AI>();
        public 
void Remove(uint uid)
        {
            if (!
Teams.ContainsKey(uid))
                return;
            foreach (var 
teamtes in Teams[uid].Teammates)
            {
                if (
teamtes.Entity.Dead)
                    
teamtes.Entity.BringToLife();
                if (
teamtes.Guild != null)
                    
teamtes.Entity.GuildBattlePower teamtes.Guild.GetSharedBattlepower(teamtes.AsMember.Rank);
                
teamtes.LoadItemStats();
                
teamtes.Entity.Teleport();
                
teamtes.Team.SkillMatch null;
                
teamtes.Entity.InSkillPk false;

            }
            if (
State >= States.GUI_Top4Qualifier)
            {
                for (
int x 08x++)
                {
                    if (
Top8[x] != null && Top8[x].LeaderUID == Teams[uid].Lider.Entity.UID)
                    {
                        var 
Lider Teams[uid].Lider;
                        if (
Lider != null && Kernel.GamePool.ContainsKey(Lider.Entity.UID))
                        {
                            
uint UID = (uint)(721300 * (byte)GroupID Math.Min(3, (x)) * 4);
                            if (
Lider.Inventory.Count <= 39)
                                
Lider.Inventory.Add(UID01);
                        }
                    }
                }
            }
            
Teams.Remove(uid);
        }
        public 
bool Started false;
        public 
bool SendMatches false;
        private 
void timerCallback(int tim)
        {
            try
            {

                if (!
Alive)
                {
                    
SkillTournament.Opened false;
                    
Subscriber.Dispose();
                    return;
                }
                
#region ReconstructTop
                
if (State == States.GUI_ReconstructTop)
                {
                    if (
DateTime.Now ConstructTop8.AddMinutes(2))
                    {
                        
State States.GUI_Top8Ranking;
                        
Kernel.SendWorldMessage(new Network.GamePackets.SkillPkBrackets() { Type 6OnGoing false }.ToArray());
                        
Alive false;
                    }
                    return;
                }
                
#endregion
                
DateTime Now64 DateTime.Now;
                if (
Now64.Hour == (EventTime 1) && Now64.Minute >= (GroupID) * 2)
                {
                    
SkillTournament.Opened false;
                    
Started true;
                    if (
Organization)
                    {
                        
Organization false;
                        
this.Top8 = new SkillPk.FighterStats[8];
                        for (
int i 0this.Top8.Lengthi++)
                        {
                            
this.Top8[i] = new SkillPk.FighterStats(0u""0unull);
                        }
                        foreach (var 
team in Teams.Values)
                        {
                            foreach (var 
player in team.Players)
                            {
                                if (
player != null)
                                {
                                    if (
player.Team != null)
                                    {
                                        
Network.GamePackets.TeamSetName teamname = new Network.GamePackets.TeamSetName();
                                        {
                                            
teamname.Type Network.GamePackets.TeamSetName.SuccessfulName;
                                            
teamname.TeamID player.Team.UID;
                                            
teamname.TeamName player.Team.SkillFighterStats.Name;
                                            
player.Send(teamname.ToArray());

                                            if (
player.Team.TeamLider(player))
                                            {
                                                
teamname.Type Network.GamePackets.TeamSetName.Remove;
                                                
player.Send(teamname.ToArray());
                                            }
                                        }
                                        
//SkillPk A~prize~for~every~participant~in~the~Team~PK~Tournament.~Right~click~it~to~get~1~hour`s~double~EXP.                                            
                                        
player.Inventory.Add(72079301);
                                    }
                                }
                            }
                        }
                        if (
Teams.Count 1)
                        {
                            
// Remove(Teams.First().Value.UID);
                            
Teams.Clear();
                            
Alive false;
                            
Kernel.SendWorldMessage(new Network.GamePackets.SkillPkBrackets() { Type 6OnGoing false }.ToArray());
                            return;
                        }
                    }
                    
#region GetState
                    
if (State == States.GUI_Top8Ranking)
                    {
                        
willAdvance Teams.Count 8;
                        
Kernel.SendWorldMessage(new Network.GamePackets.SkillPkBrackets() { Type 6OnGoing true }.ToArray());
                        if (
Teams.Count == 1)
                        {
                            
Top8[0] = Teams.FirstOrDefault().Value.SkillFighterStats;
                            
ConstructTop8 DateTime.Now;
                            var 
name "SkillPk";
                            
SaveTop8(string.Format("{0}{1}"nameGroupID));
                            foreach (var 
team in Teams.Values)
                                foreach (var 
player in team.Players)
                                    
Remove(player.Team.UID);
                            
State States.GUI_ReconstructTop;
                            foreach (var 
client in Kernel.GamePool.Values)
                                
Rankings(client);
                            var 
brackets CreateBrackets(ExtendedMatchArray0Network.GamePackets.SkillPkBrackets.UpdateList);
                            foreach (var 
packet in brackets)
                                
Kernel.SendWorldMessage(packet.ToArray());
                            
Kernel.SendWorldMessage(new Network.GamePackets.SkillPkBrackets() { Type 6OnGoing false }.ToArray());
                        }
                        else if (
Teams.Count == 2)
                        {
                            
State States.GUI_Top1;
                            
pState States.T_Organize;
                        }
                        else if (
Teams.Count && Teams.Count <= 4)
                        {
                            
State States.GUI_Top2Qualifier;
                            
pState States.T_Organize;
                        }
                        else if (
Teams.Count && Teams.Count <= 8)
                        {
                            
State States.GUI_Top4Qualifier;
                            
pState States.T_Organize;
                        }
                        else if (
willAdvance && Teams.Count <= 24)
                            
State States.GUI_Top8Qualifier;
                        else
                            
State States.GUI_Knockout;
                    }
                    
#endregion
                    #region Knockout
                    
if (State == States.GUI_Knockout)
                    {
                        
AllowJoin false;
                        if (
pState == States.T_Organize)
                        {
                            if (
willAdvance && Teams.Count <= 24)
                            {
                                
State States.GUI_Top8Qualifier;
                            }
                            else
                            {
                                
MatchIndex 0;
                                var array = 
Teams.Values.ToArray();
                                
ushort counter 0;
                                
bool NoPar = array.Length == 0;
                                if (
NoPar)
                                {
                                    for (
ushort x 0< array.Lengthx++)
                                    {
                                        
int r counter;
                                        
counter++;
                                        
int t counter;
                                        
counter++;
                                        if (
counter <= array.Length)
                                        {
                                            
Match match = new Match(array[r].SkillFighterStats, array[t].SkillFighterStats);
                                            
match.Index MatchIndex++;
                                            
match.ID MatchCounter.Next;
                                            
Matches.TryAdd(match.IDmatch);
                                        }
                                    }
                                }
                                else
                                {
                                    for (
ushort x 0< array.Length 1x++)
                                    {
                                        
int r counter;
                                        
counter++;
                                        
int t counter;
                                        
counter++;
                                        if (
counter <= array.Length)
                                        {
                                            
Match match = new Match(array[r].SkillFighterStats, array[t].SkillFighterStats);
                                            
match.Index MatchIndex++;
                                            
match.ID MatchCounter.Next;
                                            
Matches.TryAdd(match.IDmatch);
                                        }
                                    }
                                    
Match math_bye = new Match(array[array.Length 1].SkillFighterStats);
                                    
math_bye.Index MatchIndex++;
                                    
math_bye.ID MatchCounter.Next;
                                    
Matches.TryAdd(math_bye.IDmath_bye);
                                }
                                
pStamp Time32.Now.AddSeconds(60);
                                
pState States.T_Wait;
                                
MatchArray = (from match in Matches.Values orderby match.MatchStats.Length descending select match).ToArray();
                                var 
brackets CreateBrackets(MatchArray0);
                                foreach (var 
packet in brackets)
                                {
                                    
Kernel.SendWorldMessage(packet.ToArray());
                                }
                            }
                        }
                        else if (
pState == States.T_Wait)
                        {
                            if (
TimeLeft == 0)
                            {
                                
int doneMatches 0;

                                foreach (var 
match in MatchArray)
                                {
                                    
match.AliveMatch();
                                    if (!
match.Inside)
                                    {
                                        
match.Import(Match.StatusFlag.Watchable);
                                    }
                                    else
                                    {
                                        if (!
match.Exported && (match.Done || match.TimeLeft == 0))
                                        {
                                            
match.Export();
                                        }
                                        if (
match.Exported || match.MatchStats.Length == 1)
                                            
doneMatches++;
                                    }
                                }
                                if (
doneMatches == Matches.Count)
                                {
                                    
Matches.Clear();
                                    
Purge();
                                    
pState States.T_Organize;
                                }
                            }
                        }
                    }
                    
#endregion
                    #region Top8Qualifier
                    
if (State == States.GUI_Top8Qualifier)
                    {

                        if (
pState == States.T_Organize)
                        {
                            if (
Teams.Count == 8)
                            {
                                
State States.GUI_Top4Qualifier;
                            }
                            else
                            {
                                
MatchIndex 0;
                                var array = 
Teams.Values.ToArray();
                                
int[] taken = new int[array.Length];
                                if (array.
Length <= 16)
                                {
                                    
ushort counter 0;
                                    
int t1Group = array.Length 8;
                                    
int lim taken.Length 2;
                                    for (
int i 0t1Groupi++)
                                    {
                                        
int r counter;
                                        
counter++;
                                        
int t counter;
                                        
counter++;
                                        
Match match = new Match(array[r].SkillFighterStats, array[t].SkillFighterStats);
                                        
match.Index MatchIndex++;
                                        
match.ID MatchCounter.Next;
                                        
Matches.TryAdd(match.IDmatch);
                                    }
                                    for (
int i 0t1Groupi++)
                                    {
                                        
ushort r counter;
                                        
counter++;
                                        
Match match = new Match(array[r].SkillFighterStats);
                                        
match.Index MatchIndex++;
                                        
match.ID MatchCounter.Next;
                                        
Matches.TryAdd(match.IDmatch);
                                    }
                                }
                                else
                                {
                                    
ushort counter 0;
                                    
int t3GroupCount = array.Length 16;
                                    for (
int i 0t3GroupCounti++)
                                    {
                                        
int r counter;
                                        
counter++;
                                        
int t counter;
                                        
counter++;
                                        
int y counter;
                                        
counter++;
                                        
Match match = new Match(array[r].SkillFighterStats, array[t].SkillFighterStats, array[y].SkillFighterStats);
                                        
match.Index MatchIndex++;
                                        
match.ID MatchCounter.Next;
                                        
Matches.TryAdd(match.IDmatch);
                                    }
                                    
int t2GroupCount = array.Length counter;
                                    for (
int i 0t2GroupCount 2i++)
                                    {
                                        
int r counter;
                                        
counter++;
                                        
int t counter;
                                        
counter++;
                                        
Match match = new Match(array[r].SkillFighterStats, array[t].SkillFighterStats);
                                        
match.Index MatchIndex++;
                                        
match.ID MatchCounter.Next;
                                        
Matches.TryAdd(match.IDmatch);
                                    }
                                }
                                
pStamp Time32.Now.AddSeconds(60);
                                
pState States.T_Wait;
                                
MatchArray = (from match in Matches.Values orderby match.MatchStats.Length descending select match).ToArray();

                                var 
brackets CreateBrackets(MatchArray0Network.GamePackets.SkillPkBrackets.UpdateList);
                                foreach (var 
packet in brackets)
                                {
                                    
Kernel.SendWorldMessage(packet.ToArray());
                                }
                                
Network.GamePackets.SkillPkBrackets brea = new Network.GamePackets.SkillPkBrackets(0);
                                
brea.Type Network.GamePackets.SkillPkBrackets.EPK_State;
                                
brea.OnGoing true;
                                
Kernel.SendWorldMessage(brea.ToArray());
                                
SendMatches true;
                            }
                        }
                        else if (
pState == States.T_Wait)
                        {
                            if (
TimeLeft == 0)
                            {
                                
int doneMatches 0;
                                foreach (var 
match in MatchArray)
                                {
                                    
match.AliveMatch();
                                    if (!
match.Inside)
                                    {
                                        if (
match.MatchStats.Length 1)
                                        {
                                            
match.Import(Match.StatusFlag.Watchable);
                                        }
                                        else
                                        {
                                            
match.Inside true;
                                            
match.Completed true;
                                            
match.Done true;
                                            
match.MatchStats
                                                
.First(=> != null).Team
                                                
.SkillFighterStats.Flag FighterStats.StatusFlag.Qualified;
                                        }
                                    }
                                    else
                                    {
                                        if (!
match.Exported && (match.Done || match.TimeLeft == 0))
                                        {
                                            
match.Export();
                                            if (
match.MatchStats.Length == 3)
                                                
match.SwitchBetween();
                                            else
                                                
match.Flag Match.StatusFlag.OK;
                                        }

                                        if (
match.Exported || match.MatchStats.Length == 1)
                                            
doneMatches++;
                                    }
                                }
                                if (
SendMatches)
                                {
                                    
SendMatches false;
                                    var 
brackets CreateBrackets(MatchArray00);
                                    foreach (var 
packet in brackets)
                                    {
                                        
Kernel.SendWorldMessage(packet.ToArray());
                                    }
                                }
                                if (
doneMatches == Matches.Count)
                                {
                                    
bool finishedRound true;
                                    foreach (var 
match in MatchArray)
                                    {
                                        if (!
match.Completed)
                                        {
                                            
finishedRound false;
                                            break;
                                        }
                                    }
                                    if (!
finishedRound)
                                    {
                                        foreach (var 
match in MatchArray)
                                        {
                                            if (!
match.Completed)
                                            {
                                                foreach (var 
stats in match.MatchStats)
                                                    
stats.Reset(true);
                                                
match.Inside false;
                                                
match.Done false;
                                                
match.Exported false;
                                                if (
match.MatchStats.Length != 1)
                                                    
match.Flag Match.StatusFlag.Waiting;
                                            }
                                        }
                                        
pStamp Time32.Now.AddSeconds(60);
                                        
pState States.T_Wait;
                                        var 
brakets CreateBrackets(MatchArray0Network.GamePackets.SkillPkBrackets.UpdateList);
                                        foreach (var 
packet in brakets)
                                        {
                                            
Kernel.SendWorldMessage(packet.ToArray());
                                        }

                                    }
                                    else
                                    {
                                        
Matches.Clear();
                                        
Purge();
                                        
pState States.T_Organize;
                                    }
                                }
                            }
                        }
                    }
                    
#endregion
                    #region Top4Qualifier
                    
if (State == States.GUI_Top4Qualifier)
                    {
                        if (
pState == States.T_Organize)
                        {
                            try
                            {
                                
MatchIndex 0;
                                var array = 
Teams.Values.ToArray();
                                
int[] taken = new int[array.Length];
                                
int lim taken.Length 2;
                                for (
int i 0taken.Length+= 2)
                                {
                                    if (array.
Length 1)
                                    {
                                        
Match match = new Match(array[i].SkillFighterStats, array[1].SkillFighterStats);
                                        
match.Index MatchIndex++;
                                        
match.ID MatchCounter.Next;
                                        
Matches.TryAdd(match.IDmatch);

                                    }
                                    else
                                    {
                                        
Match match = new Match(array[i].SkillFighterStats);
                                        
match.Index MatchIndex++;
                                        
match.ID MatchCounter.Next;
                                        
Matches.TryAdd(match.IDmatch);
                                    }
                                }
                                
pStamp Time32.Now.AddSeconds(60);
                                
pState States.T_Wait;
                                
MatchArray Matches.Values.ToArray();
                                var 
brackets CreateBrackets(MatchArray0Network.GamePackets.SkillPkBrackets.UpdateList);
                                foreach (var 
packet in brackets)
                                    
Kernel.SendWorldMessage(packet.ToArray());
                                
brackets CreateBrackets(MatchArray0Network.GamePackets.SkillPkBrackets.InitialList);
                                foreach (var 
packet in brackets)
                                    
Kernel.SendWorldMessage(packet.ToArray());
                            }
                            catch (
Exception e)
                            {
                                
Console.WriteLine(e.ToString());
                            }

                        }
                        else if (
pState == States.T_Wait)
                        {
                            if (
TimeLeft == 0)
                            {
                                try
                                {
                                    
int doneMatches 0;
                                    foreach (var 
match in MatchArray)
                                    {
                                        
match.AliveMatch();
                                        if (!
match.Inside && !match.Completed)
                                        {
                                            
match.Import(Match.StatusFlag.Watchable);
                                        }
                                        else
                                        {
                                            if (!
match.Exported && (match.Done || match.TimeLeft == 0))
                                                
match.Export();
                                            if (
match.Exported)
                                                
doneMatches++;
                                        }
                                    }
                                    if (
doneMatches == MatchArray.Length)
                                    {
                                        
int i 4;
                                        foreach (var 
match in MatchArray)
                                        {
                                            foreach (var 
stats in match.MatchStats)
                                                if (
stats.Flag == FighterStats.StatusFlag.Lost)
                                                {
                                                    
Top8[Math.Min(7i++)] = stats.Clone();
                                                    
//Remove(stats.Team.UID);
                                                
}
                                            
match.Commit();
                                        }
                                        foreach (var list 
in Teams.Values)
                                            if (list.
SkillFighterStats.Lost)
                                            {
                                                foreach (var 
teama in list.Teammates)
                                                    
Remove(list.UID);
                                            }
                                        
State States.GUI_Top8Ranking;
                                        
pState States.T_Organize;
                                    }
                                }
                                catch (
Exception e)
                                {
                                    
Console.WriteLine(e.ToString());
                                }
                            }
                        }
                    }
                    
#endregion
                    #region Top2Qualifier
                    
if (State == States.GUI_Top2Qualifier)
                    {
                        if (
pState == States.T_Organize)
                        {
                            try
                            {
                                
MatchIndex 0;
                                
Top4MatchArray = new Match[2];
                                if (
MatchArray == null || MatchArray.Length == 0)
                                {
                                    var array = 
Teams.Values.ToArray();
                                    
int[] taken = new int[array.Length];
                                    
int lim taken.Length 2;
                                    
int mat 0;
                                    for (
int i 0taken.Length+= 2)
                                    {
                                        if (array.
Length 1)
                                        {
                                            
Match match = new Match(array[i].SkillFighterStats, array[1].SkillFighterStats);
                                            
match.Index MatchIndex++;
                                            
match.ID MatchCounter.Next;
                                            
Top4MatchArray[mat] = match;
                                            
mat++;
                                            
Matches.TryAdd(match.IDmatch);

                                        }
                                        else
                                        {
                                            
Match match = new Match(array[i].SkillFighterStats);
                                            
match.Index MatchIndex++;
                                            
match.ID MatchCounter.Next;
                                            
Top4MatchArray[mat] = match;
                                            
mat++;
                                            
Matches.TryAdd(match.IDmatch);
                                        }
                                    }
                                }
                                else
                                {
                                    for (
int i 0Top4MatchArray.Lengthi++)
                                    {
                                        if (
MatchArray.Length 2)
                                        {
                                            
Match match = new Match(//p.winer este
                                                
MatchArray[i].Return(=> p.Team.SkillFighterStats.Winner),//.MatchStats.First(p => p.Team.SkillFighterStats.Winner),
                                                
MatchArray[2].Return(=> p.Team.SkillFighterStats.Winner));//.MatchStats.First(p => p.Team.SkillFighterStats.Winner));
                                            
match.Index MatchIndex++;
                                            
match.ID MatchCounter.Next;
                                            
Top4MatchArray[i] = match;
                                            
Matches.TryAdd(match.IDmatch);
                                        }
                                        else
                                        {
                                            
Match match = new Match(//p.winer este
                                                
MatchArray[i].Return(=> p.Team.SkillFighterStats.Winner));//.MatchStats.First(p => p.Team.SkillFighterStats.Winner));
                                            
match.Index MatchIndex++;
                                            
match.ID MatchCounter.Next;
                                            
Top4MatchArray[i] = match;
                                            
Matches.TryAdd(match.IDmatch);
                                        }
                                    }
                                }
                                
pStamp Time32.Now.AddSeconds(60);
                                
pState States.T_Wait;
                                if (
MatchArray == null)
                                    
MatchArray Matches.Values.ToArray();
                                var 
brackets CreateBrackets(Top4MatchArray0Network.GamePackets.SkillPkBrackets.UpdateList);
                                foreach (var 
packet in brackets)
                                    
Kernel.SendWorldMessage(packet.ToArray());
                            }
                            catch (
Exception e)
                            {
                                
Console.WriteLine(e.ToString());
                            }

                        }
                        else if (
pState == States.T_Wait)
                        {
                            if (
TimeLeft == 0)
                            {
                                try
                                {
                                    
int doneMatches 0;
                                    foreach (var 
match in Top4MatchArray)
                                    {
                                        
match.AliveMatch();
                                        if (!
match.Inside && !match.Completed)
                                        {
                                            
match.Import(Match.StatusFlag.Watchable);
                                        }
                                        else
                                        {
                                            if (!
match.Exported && (match.Done || match.TimeLeft == 0))
                                                
match.Export();
                                            if (
match.Exported)
                                                
doneMatches++;
                                        }
                                    }
                                    if (
doneMatches == Top4MatchArray.Length)
                                    {
                                        List<
Game.ConquerStructures.Team> list = new List<Game.ConquerStructures.Team>();
                                        foreach (var 
player in Teams.Values)
                                            if (
player.SkillFighterStats.Lost)
                                                list.
Add(player);
                                        foreach (var 
match in Top4MatchArray)
                                            
match.Commit();
                                        if (list.
Count == 1)
                                        {
                                            foreach (
Game.ConquerStructures.Team current in list)
                                            {
                                                
Remove(current.UID);
                                                
this.Top8[2] = current.SkillFighterStats;
                                            }
                                            
this.State States.GUI_Top8Ranking;
                                            
this.pState States.T_Organize;
                                        }
                                        else
                                        {
                                            
pState States.T_Organize;
                                            
State States.GUI_Top3;
                                        }
                                    }
                                }
                                catch (
Exception e)
                                {
                                    
Console.WriteLine(e.ToString());
                                }
                            }
                        }
                    }
                    
#endregion
                    #region Top3
                    
if (State == States.GUI_Top3)
                    {
                        if (
pState == States.T_Organize)
                        {
                            try
                            {
                                
MatchIndex 0;

                                
ExtendedMatchArray = new Match[2];
                                
Match match = new Match(
                                    
Top4MatchArray[0].Return(=> !p.Team.SkillFighterStats.Winner),//.MatchStats.First(p => !p.Team.SkillFighterStats.Winner),
                                    
Top4MatchArray[1].Return(=> !p.Team.SkillFighterStats.Winner));//.MatchStats.First(p => !p.Team.SkillFighterStats.Winner));
                                
match.Index MatchIndex++;
                                
match.ID MatchCounter.Next;
                                
ExtendedMatchArray[0] = match;
                                
Matches.TryAdd(match.IDmatch);
                                
pStamp Time32.Now.AddSeconds(60);
                                
pState States.T_Wait;
                                var 
brackets CreateBrackets(ExtendedMatchArray0Network.GamePackets.SkillPkBrackets.UpdateList);
                                foreach (var 
packet in brackets)
                                    
Kernel.SendWorldMessage(packet.ToArray());

                                
Kernel.SendWorldMessage(new Network.GamePackets.SkillPkBrackets() { Type 6OnGoing true }.ToArray());
                            }
                            catch (
Exception e)
                            {
                                
Console.WriteLine(e.ToString());
                            }
                        }
                        else if (
pState == States.T_Wait)
                        {
                            if (
TimeLeft == 0)
                            {
                                try
                                {
                                    var 
match ExtendedMatchArray[0];
                                    
match.AliveMatch();
                                    if (!
match.Inside && match.Flag != Match.StatusFlag.OK)
                                    {
                                        
match.Import(Match.StatusFlag.Watchable);
                                    }
                                    else
                                    {
                                        if (!
match.Exported && (match.Done || match.TimeLeft == 0))
                                            
match.Export();
                                        if (
match.Exported)
                                        {

                                            
//var a_math =ExtendedMatchArray[0].MatchStats;
                                            
var top3 ExtendedMatchArray[0].Return(=> p.Team.SkillFighterStats.Winner);
                                            
//.First(p => p.Team.SkillFighterStats.Winner).Team.SkillFighterStats;
                                            
var top4 ExtendedMatchArray[0].Return(=> !p.Team.SkillFighterStats.Winner);
                                            
//ExtendedMatchArray[0].MatchStats
                                            //.First(p => !p.Team.SkillFighterStats.Winner).Team.SkillFighterStats;

                                            
Top8[2] = top3;
                                            
Top8[3] = top4;
                                            
Remove(top3.Team.UID);
                                            
Remove(top4.Team.UID);
                                            
pState States.T_Organize;
                                            
State States.GUI_Top8Ranking;

                                        }
                                    }
                                }
                                catch (
Exception e)
                                {
                                    
Console.WriteLine(e.ToString());
                                }

                            }
                        }
                    }
                    
#endregion
                    #region Top1
                    
if (State == States.GUI_Top1)
                    {
                        if (
pState == States.T_Organize)
                        {
                            try
                            {
                                
MatchIndex 0;
                                
//  var brackets = CreateBrackets(MatchArray, 0, Client.GamePackets.SkillElitePkBrackets.GUIEdit);
                                //  foreach (var packet in brackets)
                                //       CMD.MapPackets.Enqueue(new CMD.MapPackets.Models() { data = packet.ToArray() });
                                
Match match = new Match(Teams.Values.First().SkillFighterStatsTeams.Values.Last().SkillFighterStats);
                                
ExtendedMatchArray = new Match[1];
                                
match.Index MatchIndex++;
                                
match.ID MatchCounter.Next;
                                
ExtendedMatchArray[0] = match;
                                
Matches.TryAdd(match.IDmatch);
                                
pStamp Time32.Now.AddSeconds(60);
                                
pState States.T_Wait;
                                if (
MatchArray == null)
                                    
MatchArray Matches.Values.ToArray();
                                var 
brackets CreateBrackets(MatchArray0Network.GamePackets.SkillPkBrackets.GUIEdit);
                                foreach (var 
packet in brackets)
                                    
Kernel.SendWorldMessage(packet.ToArray());
                                
brackets CreateBrackets(ExtendedMatchArray0Network.GamePackets.SkillPkBrackets.UpdateList);
                                foreach (var 
packet in brackets)
                                    
Kernel.SendWorldMessage(packet.ToArray());

                                
Kernel.SendWorldMessage(new Network.GamePackets.SkillPkBrackets() { Type 6OnGoing true }.ToArray());
                            }
                            catch (
Exception e)
                            {
                                
Console.WriteLine(e.ToString());
                            }
                        }
                        else if (
pState == States.T_Wait)
                        {
                            if (
TimeLeft == 0)
                            {
                                try
                                {
                                    
int doneMatches 0;
                                    foreach (var 
match in ExtendedMatchArray)
                                    {
                                        
match.AliveMatch();
                                        if (!
match.Inside && !match.Completed)
                                        {
                                            
match.Import(Match.StatusFlag.Watchable);
                                        }
                                        else
                                        {
                                            if (!
match.Exported && (match.Done || match.TimeLeft == 0))
                                                
match.Export();
                                            if (
match.Exported)
                                                
doneMatches++;
                                        }
                                    }
                                    if (
doneMatches == ExtendedMatchArray.Length)
                                    {
                                        try
                                        {
                                            var 
top1 ExtendedMatchArray[0].MatchStats
                                                
.First(=> p.Team.SkillFighterStats.Winner).Team.SkillFighterStats;
                                            var 
top2 ExtendedMatchArray[0].MatchStats
                                                
.First(=> !p.Team.SkillFighterStats.Winner).Team.SkillFighterStats;
                                            
Top8[0] = top1;
                                            
Top8[1] = top2;
                                            
ConstructTop8 DateTime.Now;
                                            var 
name "SkillPk";
                                            
SaveTop8(string.Format("{0}{1}"nameGroupID));
                                            foreach (var 
team in Teams.Values)
                                                
Remove(team.UID);
                                            
State States.GUI_ReconstructTop;
                                            foreach (var 
client in Kernel.GamePool.Values)
                                                
Rankings(client);
                                            var 
brackets CreateBrackets(ExtendedMatchArray0Network.GamePackets.SkillPkBrackets.UpdateList);
                                            foreach (var 
packet in brackets)
                                                
Kernel.SendWorldMessage(packet.ToArray());
                                            
Kernel.SendWorldMessage(new Network.GamePackets.SkillPkBrackets() { Type 6OnGoing false }.ToArray());
                                        }
                                        catch (
Exception e)
                                        {
                                            
Console.WriteLine(e.ToString());
                                        }
                                    }
                                }
                                catch (
Exception e)
                                {
                                    
Console.WriteLine(e.ToString());
                                }
                            }
                        }
                    }
                    
#endregion

                
}
            }
            catch (
Exception e)
            { 
Console.WriteLine(e.ToString()); }
        }
        public 
SkillPk.Match[] ArrayMatchesTop3()
        {
            
SkillPk.Match[] array = new SkillPk.Match[((this.Top4MatchArray != null) ? this.Top4MatchArray.Length 0) + ((this.ExtendedMatchArray != null) ? this.ExtendedMatchArray.Length 0)];
            
int num = -1;
            for (
int i 0< ((this.Top4MatchArray != null) ? this.Top4MatchArray.Length 0); i++)
            {
                array[++
num] = this.Top4MatchArray[i];
            }
            for (
int i 0< ((this.ExtendedMatchArray != null) ? this.ExtendedMatchArray.Length 0); i++)
            {
                array[++
num] = this.ExtendedMatchArray[i];
            }
            return array;
        }
        public 
bool GetReward(Client.GameState clientout byte Rank)
        {
            if (
Top8.Length == 8)
            {
                for (
int x 0Top8.Lengthx++)
                {
                    if (
Top8[x] != null)
                    {
                        if (
Top8[x].LeaderUID == client.Entity.UID || Top8[x].Name == client.Entity.Name)
                        {
                            if (
Top8[x].RceiveReward == 0)
                            {
                                
Top8[x].RceiveReward 1;
                                
Rank = (byte)(1);
                                return 
true;
                            }
                            else
                            {
                                
Rank = (byte)(1);
                                return 
false;
                            }
                        }
                    }
                }
            }
            
Rank 0;
            return 
false;
        }
        public static 
bool GetReward(Client.GameState client)
        {
            if (!
client.Inventory.HaveSpace(1))
            {
                
client.MessageBox("Please Empty Some Space First");
                return 
false;
            }
            foreach (var 
tournament in SkillPk.SkillTournament.Tournaments)
            {
                
byte Rank 0;
                if (
tournament.GetReward(clientout Rank))
                {
                    var 
name "SkillPk";
                    
tournament.SaveTop8(string.Format("{0}{1}"nametournament.GroupID));
                    
uint ItemID GetItemID(tournamentRank);
                    if (
client.Entity.Level >= 100 || client.Entity.Level >= 120 || client.Entity.Level >= 130)
                    {
                        if (
Rank == 1)
                        {
                            
client.Entity.ConquerPoints += 150000000;
                            
client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePKChamption_Low0DateTime.Now.AddDays(1), true);
                            
client.MessageBox("You've received [" 150000000 "] ConquerPoints ");
                            
string MSG "Congratulation to " client.Entity.Name " ! he/she managed to get rank " Rank " on SkillPK Tournament and claimed [" 150000000 "] ConquerPoints ";
                            
Kernel.SendWorldMessage(new Message(MSGSystem.Drawing.Color.RedMessage.System));
                            
XMeGo.Kernel.SendWorldMessage(new Message("Congratulation to " client.Entity.Name " ! he/she managed to get rank " Rank " on SkillPK Tournament and claimed [" 150000000 "] ConquerPoints "System.Drawing.Color.BlackMessage.Center), Program.Values);

                        }
                        else if (
Rank == 2)
                        {
                            
client.Entity.ConquerPoints += 100000000;
                            
client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePK2ndPlace_Low0DateTime.Now.AddDays(1), true);
                            
client.MessageBox("You've received [" 100000000 "] ConquerPoints ");
                            
string MSG "Congratulation to " client.Entity.Name " ! he/she managed to get rank " Rank " on SkillPK Tournament and claimed [" 100000000 "] ConquerPoints ";
                            
Kernel.SendWorldMessage(new Message(MSGSystem.Drawing.Color.RedMessage.System));
                            
XMeGo.Kernel.SendWorldMessage(new Message("Congratulation to " client.Entity.Name " ! he/she managed to get rank " Rank " on SkillPK Tournament and claimed [" 100000000 "] ConquerPoints "System.Drawing.Color.BlackMessage.Center), Program.Values);

                        }
                        else if (
Rank == 3)
                        {
                            
client.Entity.ConquerPoints += 50000000;
                            
client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePK3ndPlace_Low0DateTime.Now.AddDays(1), true);
                            
client.MessageBox("You've received [" 50000000 "] ConquerPoints ");
                            
string MSG "Congratulation to " client.Entity.Name " ! he/she managed to get rank " Rank " on SkillPK Tournament and claimed [" 50000000 "] ConquerPoints ";
                            
Kernel.SendWorldMessage(new Message(MSGSystem.Drawing.Color.RedMessage.System));
                            
XMeGo.Kernel.SendWorldMessage(new Message("Congratulation to " client.Entity.Name " ! he/she managed to get rank " Rank " on SkillPK Tournament and claimed [" 50000000 "] ConquerPoints "System.Drawing.Color.BlackMessage.Center), Program.Values);

                        }
                        else
                        {
                            
client.Entity.ConquerPoints += 50000000;
                            
client.Entity.AddTopStatus((ulong)XMeGo.Network.GamePackets.TitlePacket.Titles.ElitePKTopEight_Low0DateTime.Now.AddDays(1), true);
                            
client.MessageBox("You've received [" 50000000 "] ConquerPoints ");
                            
string MSG "Congratulation to " client.Entity.Name " ! he/she managed to get rank " Rank " on SkillPK Tournament and claimed [" 50000000 "] ConquerPoints ";
                            
Kernel.SendWorldMessage(new Message(MSGSystem.Drawing.Color.RedMessage.System));
                            
XMeGo.Kernel.SendWorldMessage(new Message("Congratulation to " client.Entity.Name " ! he/she managed to get rank " Rank " on SkillPK Tournament and claimed [" 50000000 "] ConquerPoints "System.Drawing.Color.BlackMessage.Center), Program.Values);
                        }
                    }
                    return 
true;
                }
            }
            return 
false;
        }
        public static 
uint GetItemID(SkillPk tournamentbyte Rank)
        {
            return (
uint)(721300 * (byte)tournament.GroupID Math.Min(3, (Rank 1)) * 4);
        }
        public 
void Update(Client.GameState clientint page 0)
        {
            try
            {
                if (
State == States.GUI_Top8Ranking)
                {
                    
Rankings(client);
                }
                else
                {
                    if (
State >= States.GUI_Top4Qualifier)
                    {
                        var 
brackets CreateBrackets(MatchArray0Network.GamePackets.SkillPkBrackets.GUIEdit);
                        foreach (var 
packet in brackets)
                            
client.Send(packet.ToArray());
                    }
                    else
                    {
                        var 
brackets CreateBrackets(MatchArraypage);
                        foreach (var 
packet in brackets)
                            
client.Send(packet.ToArray());
                    }
                    if (
State >= States.GUI_Top1)
                        
Rankings(client);
                }
            }
            catch (
Exception e) { Console.WriteLine(e.ToString()); }
        }
        public 
void Rankings(Client.GameState client)
        {
            
Network.GamePackets.SkillPkTop ranks = new Network.GamePackets.SkillPkTop();
            {
                
ranks.Type Network.GamePackets.SkillPkTop.Top8;
                
ranks.Group = (uint)GroupID;
                
ranks.GroupStatus = (uint)State;
                
//ranks.UID = client.Player.UID;
                
if (State >= States.GUI_Top1)
                {
                    
ranks.Type Network.GamePackets.SkillPkTop.Top3;
                    if (
State == States.GUI_Top1)
                    {
                        
ranks.Count 1;
                        
ranks.Append(Top8[2], 3);
                    }
                    else
                    {
                        
ranks.Count 3;
                        for (
int i 03i++)
                        {
                            
ranks.Append(Top8[i], 1);
                        }
                    }
                    
client.Send(ranks.ToArray());
                }
                else
                {
                    
ranks.Count = (uint)Top8.Length;
                    for (
int i 0ranks.Counti++)
                        if (
Top8[i] != null)
                        {
                            
ranks.Append(Top8[i], 1);
                        }
                    
client.Send(ranks.ToArray());
                }
            }
        }
        public 
Network.GamePackets.SkillPkBrackets[] CreateBrackets(Match[] matchesint page 0byte type 0)
        {
            try
            {
                
int lim 0count 0;
                if (
matches == null) return new Network.GamePackets.SkillPkBrackets[0];
                if (
State == States.GUI_Knockout)
                {
                    const 
int max 5;
                    
int offset page max;

                    
int Do_count matches.Length page max;

                    if (
page max matches.Length)
                        
Do_count 0;
                    
uint ccount = (uint)Math.Min(maxDo_count);

                    
Network.GamePackets.SkillPkBrackets brackets = new Network.GamePackets.SkillPkBrackets((int)ccount);
                    
brackets.Group = (ushort)GroupID;
                    
brackets.GUIType = (ushort)State;
                    
brackets.TotalMatchesOnRoom = (ushort)ccount;
                    
brackets.Page = (byte)page;
                    
brackets.TimeLeft TimeLeft;
                    
brackets.MatchCount = (ushort)matches.Length;
                    
brackets.Type type;
                    for (
int i 0ccounti++)
                    {
                        var 
element matches[offset];
                        
brackets.Append(element);
                    }
                    
Network.GamePackets.SkillPkBrackets[] buffer = new Network.GamePackets.SkillPkBrackets[1];
                    
buffer[0] = brackets;
                    return 
buffer;
                }
                else if (
State == States.GUI_Top8Qualifier)
                {
                    const 
int max 5;
                    
int offset page max;

                    
int Do_count matches.Length page max;

                    if (
page max matches.Length)
                        
Do_count 0;
                    
uint ccount = (uint)Math.Min(maxDo_count);

                    
Network.GamePackets.SkillPkBrackets[] buffer;
                    if (
matches.Length ccount)
                        
buffer = new Network.GamePackets.SkillPkBrackets[2];
                    else
                        
buffer = new Network.GamePackets.SkillPkBrackets[1];

                    
Network.GamePackets.SkillPkBrackets brackets = new Network.GamePackets.SkillPkBrackets((int)ccount);
                    
brackets.Group = (ushort)GroupID;
                    
brackets.GUIType = (ushort)State;
                    
brackets.TotalMatchesOnRoom = (ushort)ccount;
                    
brackets.Page = (byte)page;
                    
brackets.TimeLeft TimeLeft;
                    
brackets.MatchCount = (ushort)matches.Length;
                    
brackets.Type type;
                    for (
int i 0ccounti++)
                    {
                        var 
element matches[offset];
                        
brackets.Append(element);
                    }
                    
buffer[0] = brackets;
                    if (
matches.Length ccount)
                    {
                        
ushort towcount = (ushort)(matches.Length ccount);
                        
Network.GamePackets.SkillPkBrackets twobrackets = new Network.GamePackets.SkillPkBrackets((int)towcount);
                        
twobrackets.Group = (ushort)GroupID;
                        
twobrackets.GUIType = (ushort)State;
                        
twobrackets.TotalMatchesOnRoom = (ushort)towcount;
                        
twobrackets.Page = (byte)page;
                        
twobrackets.TimeLeft TimeLeft;
                        
twobrackets.ListCount 1;
                        
twobrackets.MatchCount = (ushort)matches.Length;
                        
twobrackets.Type type;
                        for (
int i 0towcounti++)
                        {
                            var 
element matches[ccount];
                            
twobrackets.Append(element);
                        }
                        
buffer[1] = twobrackets;
                        return 
buffer;
                    }
                    return 
buffer;
                }
                
lim matches.Length;
                
count Math.Min(limmatches.Length page lim);
                if (
State >= States.GUI_Top2Qualifier)
                {
                    
lim MatchArray.Length;
                    
count Math.Min(limMatchArray.Length page lim);
                    
Network.GamePackets.SkillPkBrackets[] buffer = new Network.GamePackets.SkillPkBrackets[2];
                    
Network.GamePackets.SkillPkBrackets qbrackets = new Network.GamePackets.SkillPkBrackets(count);
                    {
                        
qbrackets.Group = (ushort)GroupID;
                        
qbrackets.GUIType = (ushort)State;
                        
qbrackets.TotalMatchesOnRoom = (ushort)(count);
                        
qbrackets.Page = (byte)page;
                        
qbrackets.TimeLeft TimeLeft;
                        
qbrackets.MatchCount = (byte)(MatchArray.Length 2);
                        
qbrackets.Type type;
                        for (
int i page limpage lim counti++)
                            
qbrackets.Append(MatchArray[i]);
                        
buffer[0] = qbrackets;
                    }
                    if (
State >= States.GUI_Top3)
                    {
                        
lim 4;
                        
Network.GamePackets.SkillPkBrackets Twoqbrackets = new Network.GamePackets.SkillPkBrackets(count);
                        if (
Top4MatchArray != null)
                        {
                            
count = (byte)(Top4MatchArray.Length ExtendedMatchArray.Length);
                            {
                                
Twoqbrackets.Group = (ushort)GroupID;
                                
Twoqbrackets.GUIType = (ushort)State;
                                
Twoqbrackets.TotalMatchesOnRoom = (ushort)count;
                                
Twoqbrackets.Page = (byte)1;
                                
Twoqbrackets.TimeLeft TimeLeft;
                                
Twoqbrackets.MatchCount = (byte)((Top4MatchArray.Length ExtendedMatchArray.Length) * 2);
                                
Twoqbrackets.Type type;
                                for (
int i 02i++)
                                    
Twoqbrackets.Append(Top4MatchArray[i]);
                                for (
int x 0ExtendedMatchArray.Lengthx++)
                                    
Twoqbrackets.Append(ExtendedMatchArray[x]);
                                
buffer[1] = Twoqbrackets;
                            }
                            
buffer[1] = Twoqbrackets;
                        }
                        else
                        {
                            
lim 4;
                            
count = (byte)(ExtendedMatchArray.Length);
                            {
                                
Twoqbrackets.Group = (ushort)GroupID;
                                
Twoqbrackets.GUIType = (ushort)State;
                                
Twoqbrackets.TotalMatchesOnRoom = (ushort)count;
                                
Twoqbrackets.Page = (byte)1;
                                
Twoqbrackets.TimeLeft TimeLeft;
                                
Twoqbrackets.MatchCount = (byte)((ExtendedMatchArray.Length) * 2);
                                
Twoqbrackets.Type type;
                                for (
int x 0ExtendedMatchArray.Lengthx++)
                                    
Twoqbrackets.Append(ExtendedMatchArray[x]);
                                
buffer[1] = Twoqbrackets;
                            }
                            
buffer[1] = Twoqbrackets;
                        }
                    }
                    else
                    {
                        
lim 2;
                        
count Top4MatchArray.Length;
                        
Network.GamePackets.SkillPkBrackets Twoqbrackets = new Network.GamePackets.SkillPkBrackets(count);
                        {
                            
Twoqbrackets.Group = (ushort)GroupID;
                            
Twoqbrackets.GUIType = (ushort)State;
                            
// Twoqbrackets.ListCount = 1;
                            
Twoqbrackets.TotalMatchesOnRoom = (ushort)count;
                            
Twoqbrackets.Page = (byte)1;
                            
Twoqbrackets.TimeLeft TimeLeft;
                            
Twoqbrackets.MatchCount = (byte)MatchArray.Length;
                            
Twoqbrackets.Type type;
                            for (
int i page limpage lim counti++)
                                
Twoqbrackets.Append(Top4MatchArray[i]);
                            
buffer[1] = Twoqbrackets;
                        }
                    }
                    return 
buffer;
                }

                
Network.GamePackets.SkillPkBrackets aqbrackets = new Network.GamePackets.SkillPkBrackets(count);
                {
                    
aqbrackets.Group = (ushort)GroupID;
                    
aqbrackets.GUIType = (ushort)State;
                    
aqbrackets.TotalMatchesOnRoom = (ushort)count;
                    
aqbrackets.Page = (byte)page;
                    
aqbrackets.TimeLeft TimeLeft;
                    
aqbrackets.MatchCount = (ushort)matches.Length;
                    
aqbrackets.Type type;
                    for (
int i page limpage lim counti++)
                        
aqbrackets.Append(matches[i]);
                    
Network.GamePackets.SkillPkBrackets[] buffer = new Network.GamePackets.SkillPkBrackets[1];
                    
buffer[0] = aqbrackets;
                    return 
buffer;
                }
            }
            catch (
Exception e) { Console.WriteLine(e.ToString()); return new Network.GamePackets.SkillPkBrackets[0]; }
        }
    }


ابحث عن
كود PHP:

public class SkillPkBrackets 

امسح كل الي فيه وبدلو بي دول
كود PHP:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using XMeGo.Game;
using XMeGo.Client;
using XMeGo.Game.Features.Tournaments;

namespace 
XMeGo.Network.GamePackets
{
    public class 
SkillPkBrackets WriterInterfaces.IPacket
    
{
        public const 
byte
            InitialList 
0,
            
StaticUpdate 1,
            
GUIEdit 2,
            
UpdateList 3,
            
RequestInformation 4,
            
StopWagers 5,
            
EPK_State 6;

        
byte[] Buffer;
        public 
SkillPkBrackets(int matches 0)
        {
            {
                
Buffer = new byte[190 154 matches];
                
WriteUInt16((ushort)(Buffer.Length 8), 0Buffer);
                
WriteUInt16((ushort)22522Buffer);
            }
        }
        public 
byte Type
        
{
            
get { return Buffer[4]; }
            
set Buffer[4] = value; }
        }

        public 
byte Page
        
{
            
get { return Buffer[6]; }
            
set Buffer[6] = value; }
        }

        public 
byte ListCount
        
{
            
get { return Buffer[8]; }
            
set Buffer[8] = value; }
        }

        public 
uint MatchCount
        
{
            
get { return BitConverter.ToUInt32(Buffer10); }
            
set WriteUInt32(value10Buffer); }
        }

        public 
ushort Group
        
{
            
get { return BitConverter.ToUInt16(Buffer14); }
            
set WriteUInt16(value14Buffer); }
        }

        public 
ushort GUIType
        
{
            
get { return BitConverter.ToUInt16(Buffer16); }
            
set WriteUInt16(value16Buffer); }
        }

        public 
ushort TimeLeft
        
{
            
get { return BitConverter.ToUInt16(Buffer18); }
            
set WriteUInt16(value18Buffer); }
        }

        public 
uint TotalMatchesOnRoom
        
{
            
get { return BitConverter.ToUInt16(Buffer20); }
            
set WriteUInt32(value20Buffer); }
        }

        public 
bool OnGoing
        
{
            
get { return Buffer[20] == 1; }
            
set WriteBoolean(value20Buffer); }
        }

        private 
int offset 24;

        public 
void Append(SkillPk.Match match)
        {
            try
            {
                if (
match == null)
                    return;
                if (
GUIType != GUIEdit)
                    
WriteUint(match.IDoffsetBuffer);
                
offset += 4;
                
WriteUshort((ushort)match.MatchStats.LengthoffsetBuffer); offset += 2;
                
WriteUshort((ushort)match.IndexoffsetBuffer); offset += 2;
                
WriteUshort((ushort)match.FlagoffsetBuffer);
                
offset += 2;

                for (
int i 0match.MatchStats.Lengthi++)
                {
                    
AppendPlayer(match.MatchStats[i], offset);
                    
offset += 48;
                }
                if (
match.MatchStats.Length == 2offset += 48;
                if (
match.MatchStats.Length == 1offset += 96;
                
//if (match.MatchStats.Length == 0) offset += 144;               
            
}
            catch (
Exception e) { Console.WriteLine(e.ToString()); }
        }
        private 
void AppendPlayer(SkillPk.FighterStats statsint _offset)
        {
            
//if (stats == null)
            //{
            //    offset += 48;
            //    return;
            //}
            // WriteUint(0, _offset, Buffer); _offset += 4; 
            
WriteUint(stats.Team.UID_offsetBuffer); _offset += 4;
            
WriteUint(stats.LeaderUID_offsetBuffer); _offset += 4;//                       
            
WriteUint(stats.LeaderMesh_offsetBuffer); _offset += 4;
            
WriteString(stats.Name_offsetBuffer); _offset += 32;
            
WriteUint((uint)stats.Flag_offsetBuffer); _offset += 4;
        }
        
//794 8 Matches 
        
public void Send(GameState client)
        {
            
client.Send(Buffer);
        }

        public 
byte[] ToArray()
        {
            return 
Buffer;
        }

        public 
void Deserialize(byte[] buffer)
        {
            
Buffer buffer;
        }
    }


ابحث عن
كود PHP:

public class SkillPkMatchStats 

امسح كل الي فيها وبدلو بي دول
كود PHP:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using XMeGo.Client;
using XMeGo.Game;
using XMeGo.Game.Features.Tournaments;

namespace 
XMeGo.Network.GamePackets
{
    public class 
SkillPkMatchStats WriterInterfaces.IPacket
    
{
        
byte[] Buffer;
        public 
SkillPkMatchStats()
        {
            
Buffer = new byte[128 8];
            
WriteUInt16(1280Buffer);
            
WriteUshort((ushort)22512Buffer);
        }
        public 
void Append(SkillPk.Match match)
        {
            
ushort offset 4;
            var array = 
match.MatchStats.Where(=> p.Fighting).ToArray();
            
AppendPlayer(array[0], offset);
            
offset 64;//60
            
if (array.Length 1)
                
AppendPlayer(array[1], offset);
        }
        public 
uint val1 1;
        public 
uint val2 0;
        public 
uint val3 0;//120
        
public uint val4 0;
        private 
void AppendPlayer(SkillPk.FighterStats teamushort offset)
        {
            
WriteUint(team.LeaderUIDoffsetBuffer); offset += 4// 16+16+32 64
            
WriteUint(team.Team.UIDoffsetBuffer); offset += 4;
            
WriteString(team.Team.Lider.Entity.NameoffsetBuffer); offset += 16;//???
            
WriteString(team.NameoffsetBuffer); offset += 32;
            
WriteUint(team.PointsoffsetBuffer); offset += 4;
        }
        public 
void Send(GameState client)
        {
            
client.Send(Buffer);
        }

        public 
byte[] ToArray()
        {
            return 
Buffer;
        }

        public 
void Deserialize(byte[] buffer)
        {
            
Buffer buffer;
        }
    }


ابحث عن
كود PHP:

public class SkillPkMatchUI 

بدل كل الي فيها وبدلو بي دول
كود PHP:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using XMeGo.Client;
using XMeGo.Game.Features.Tournaments;

namespace 
XMeGo.Network.GamePackets
{
    public class 
SkillPkMatchUI WriterInterfaces.IPacket
    
{
        public const 
byte
             BeginMatch 
2,
             
Effect 3,
             
EndMatch 4,
             
Information 7,
             
Reward 8;

        public const 
uint
            Effect_Win 
1,
            
Effect_Lose 0;

        
byte[] Buffer;

        public 
SkillPkMatchUI()
        {
            {
                
Buffer = new byte[52 8];
                
WriteUInt16(520Buffer);
                
WriteUshort(22502Buffer);
            }
        }
        public 
uint Type
        
{
            
get { return BitConverter.ToUInt32(Buffer4); }
            
set WriteUInt32(value4Buffer); }
        }

        public 
uint dwParam
        
{
            
get { return BitConverter.ToUInt32(Buffer8); }
            
set WriteUInt32(value8Buffer); }
        }

        public 
uint OpponentUID
        
{
            
get { return BitConverter.ToUInt32(Buffer12); }
            
set WriteUInt32(value12Buffer); }
        }

        public 
string OpponentName
        
{
            
get { return Program.Encoding.GetString(Buffer1616).Trim(); }
            
set WriteString(value16Buffer); }
        }

        public 
uint TimeLeft
        
{
            
get { return BitConverter.ToUInt32(Buffer44); }
            
set WriteUInt32(value44Buffer); }
        }

        public 
void Append(Game.ConquerStructures.Team opponent)
        {
            
OpponentUID opponent.Lider.Entity.UID;
            if (
opponent.SkillFighterStats != null)
                
OpponentName opponent.SkillFighterStats.Name;
        }

        public 
void Send(GameState client)
        {
            
client.Send(Buffer);
        }

        public 
byte[] ToArray()
        {
            return 
Buffer;
        }

        public 
void Deserialize(byte[] buffer)
        {
            
Buffer buffer;
        }
    }


ابحث عن
كود PHP:

public class SkillPkSetTeamName 

امسح كل الي فيها وحوط دول
كود PHP:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 
XMeGo.Network.GamePackets
{
    public class 
SkillPkSetTeamName Writer
    
{
        
byte[] packet;
        public 
byte[] ToArray() { return packet; }
        public const 
byte Apprend 0SuccessfulName 1RenameWasSuccessfulName 2Remove 3;
        public 
SkillPkSetTeamName()
        {
            
packet = new byte[56];
            
WriteUInt16(480packet);

            
WriteUInt16(22602packet);

        }

        public 
uint Type get { return BitConverter.ToUInt32(packet4); } set WriteUInt32(value4packet); } }
        public 
uint TeamID get { return BitConverter.ToUInt32(packet8); } set WriteUInt32(value8packet); } }
        public 
string TeamName //BastA`s.team
        
{
            
get { return PacketHandler.ReadString(packet1232); }
            
set WriteString(value12packet); }
        }
    }


ابحث عن
كود PHP:

public class SkillPkTop 

امسح كل الي فيها وبدلو بي دول
كود PHP:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 
XMeGo.Network.GamePackets
{
    public class 
SkillPkTop Writer
    
{
        
byte[] packet;
        public 
byte[] ToArray()
        {
            return 
packet;
        }
        public const 
byte Top3 2Top8 0;
        public 
SkillPkTop()
        {
            
packet = new byte[428];
            
WriteUInt16((ushort)(packet.Length 8), 0packet);

            
WriteUInt16(22532packet);
        }


        public 
uint Type get { return BitConverter.ToUInt32(packet4); } set WriteUInt32(value4packet); } }//top 3, top 8
        
public uint Group get { return BitConverter.ToUInt32(packet8); } set WriteUInt32(value8packet); } }//8
        
public uint GroupStatus get { return BitConverter.ToUInt32(packet12); } set WriteUInt32(value12packet); } }
        public 
uint Count get { return BitConverter.ToUInt32(packet16); } set WriteUInt32(value16packet); } }
        public 
uint ClientUID get { return BitConverter.ToUInt32(packet20); } set WriteUInt32(value20packet); } }

        private 
int Index 0;
        public 
void Append(Game.Features.Tournaments.SkillPk.FighterStats statsint rank)
        {
            if (
stats == null)
            {
                
Console.WriteLine("Rank Null");
                return;
            }
            
ushort offset = (ushort)(20 Index 44); Index++;
            
WriteUInt32(stats.LeaderUIDoffsetpacket); offset += 4;
            
WriteUInt32((uint)rankoffsetpacket); offset += 4;
            
WriteString(stats.Nameoffsetpacket); offset += 32;
            
WriteUInt32(stats.LeaderMeshoffsetpacket); offset += 4;
        }
    }


ابحث عن
كود PHP:

 public class SkillPKWager 

امسح كل الي فيها وبدلو بي دول
كود PHP:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using XMeGo.Game;
using XMeGo.Client;

namespace 
XMeGo.Network.GamePackets
{
    public class 
SkillPKWager WriterInterfaces.IPacket
    
{
        public const 
byte
            SetWager 
2;

        
byte[] Buffer;

        public 
SkillPKWager()
        {
        }

        public 
byte Type
        
{
            
get { return Buffer[4]; }
            
set Buffer[4] = value; }
        }

        public 
uint dwParam
        
{
            
get { return BitConverter.ToUInt32(Buffer8); }
            
set WriteUInt32(value8Buffer); }
        }

        public 
uint WagedUID
        
{
            
get { return BitConverter.ToUInt32(Buffer12); }
            
set WriteUInt32(value12Buffer); }
        }

        public 
uint Wager
        
{
            
get { return BitConverter.ToUInt32(Buffer20); }
            
set WriteUInt32(value20Buffer); }
        }

        public 
void Send(GameState client)
        {
            
client.Send(Buffer);
        }

        public 
byte[] ToArray()
        {
            return 
Buffer;
        }

        public 
void Deserialize(byte[] buffer)
        {
            
Buffer buffer;
        }
    }


هتروح علي كلاس npc هتروح علي npc بتاع الاسكل تيم بكيه وتمسحو وتبدلو بي دا

كود PHP:

                            #region SkillTeam Tournament
                            
case 8592:
                                {
                                    switch (
npcRequest.OptionID)
                                    {
                                        case 
0:
                                            {
                                                
dialog.Text("The new Skill Team PK Tournament is open! It is held at 21:55, every Day.");
                                                
dialog.Text("~The contestants will receive EXP worth 1 EXP Ball and 1,000 Honor Points for each round!");
                                                
dialog.Text("~The top 8 teams will receive extra prizes!");
                                                
dialog.Option("What about the rules? "1);
                                                
dialog.Option("Sign up!"2);
                                                
dialog.Option("Claim~prize."3);
                                                
dialog.Option("Leave."255);
                                                
dialog.Avatar(40);
                                                
dialog.Send();
                                                break;
                                            }
                                        case 
3:
                                            {
                                                if (
client.ClaimedSkillTeam == 1)
                                                {
                                                    
dialog.Text("You really get your prizes.");
                                                    
dialog.Option("Oh Sorry."255);
                                                    
dialog.Avatar(26);
                                                    
dialog.Send();
                                                    break;
                                                }
                                                else
                                                {
                                                    if (
Game.Features.Tournaments.SkillPk.GetReward(client))
                                                    {
                                                        
client.ClaimedSkillTeam 1;
                                                    }
                                                    else
                                                    {

                                                        
dialog.Text("I`m sorry, but only the leaders from the top 8 teams are able to claim the prizes.");
                                                        
dialog.Option("Oh."255);
                                                        
dialog.Avatar(40);
                                                        
dialog.Send();
                                                    }
                                                    break;
                                                }
                                            }
                                        case 
1:
                                            {

                                                
dialog.Text("There are limits on the Equipment Level and Rank. Moreover, there are restrictions on Equipment Quality, Bonus Level, Sockets, Gems and Blessing effects.");
                                                
dialog.Text("~Besides, the effects of the Sub-classes are adjusted, too. (Except for Apothecary.)");
                                                
dialog.Text("~By the way, the Battle Power shared from your Clan, Mentor, and Guild won`t count.");
                                                
dialog.Option("Go~ahead."4);
                                                
dialog.Avatar(40);
                                                
dialog.Send();
                                                break;
                                            }
                                        case 
4:
                                            {

                                                
dialog.Text("The Skill Team PK Tournament is held at 21:55, every Wednesday. You need to team up with others to take part in it. Only the team leaders are capable of claiming the rewards.");
                                                
dialog.Text("~You can team up with your friends in advance, or while in the waiting area. People who don`t team up will be kicked out, when the contest starts.");
                                                
dialog.Text("~There are 4 groups: Level 130+, level 120-129, level 100-119 and level 1-99.");
                                                
dialog.Option("What~else?"5);
                                                
dialog.Avatar(40);
                                                
dialog.Send();
                                                break;
                                            }
                                        case 
5:
                                            {

                                                
dialog.Text("You can talk to me to enter the waiting area at 21:55. No teams will be allowed to enter after the contest starts.");
                                                
dialog.Text("~The contest for level 130+ starts at 22:00, level 120-129: 22:02, level 100-119: 22:04 and level 1-99: 22:06.");
                                                
dialog.Text("~Disbanding/creating a team during the contest will lead to disqualification. In the knockout stage, each round lasts for 10 minutes.");
                                                
dialog.Option("Is~that~all?"6);
                                                
dialog.Avatar(40);
                                                
dialog.Send();
                                                break;
                                            }
                                        case 
6:
                                            {

                                                
dialog.Text("If there are no more than 8 teams, it will enter the final stage directly and each round lasts for 15 minutes.");
                                                
dialog.Text("~The top 3 teams will be announced. The leaders from the top 8 teams should claim the prize before the next Skill Team PK Tournament starts.");
                                                
dialog.Text("~The contestants will receive EXP worth 1 EXP Ball and 1,000 Honor Points, for each round.");
                                                
dialog.Option("Sign~up~now!"2);
                                                
dialog.Option("I~see."255);
                                                
dialog.Avatar(40);
                                                
dialog.Send();
                                                break;
                                            }
                                        case 
2:
                                            {
                                                if (
Game.Features.Tournaments.SkillPk.SkillTournament.Opened)
                                                {
                                                    if (
client.Team != null)
                                                    {
                                                        if (
client.Team.RightTeamElite())
                                                        {
                                                            if (!
Game.Features.Tournaments.SkillPk.SkillTournament.Join(clientclient.Team.GetEliteGroup(client.Entity.Level)))
                                                            {

                                                                
dialog.Text("Sorry, but your tournament on grup was staring..");
                                                                
dialog.Option("Ok thx."255);
                                                                
dialog.Avatar(40);
                                                                
dialog.Send();

                                                            }
                                                        }
                                                        else
                                                        {
                                                            
dialog.Text("I'm sorry, but your Team must have players with the same level and in the same internships.");
                                                            
dialog.Text("Exemple: ( full 100-, or full 100-120, or full 120-130, or full 130+)");
                                                            
dialog.Option("Ok thx."255);
                                                            
dialog.Avatar(40);
                                                            
dialog.Send();
                                                        }
                                                    }
                                                    else
                                                    {
                                                        
dialog.Text("Please create team");
                                                        
dialog.Option("Ok thx."255);
                                                        
dialog.Avatar(40);
                                                        
dialog.Send();
                                                    }
                                                }
                                                else
                                                {
                                                    
dialog.Text("The Skill Team PK Tournament is held every Day. Please come back on Wed. at 21:55.");
                                                    
dialog.Option("Alright."255);
                                                    
dialog.Avatar(40);
                                                    
dialog.Send();
                                                }
                                                break;
                                            }
                                    }
                                    break;
                                }
                            
#endregion 

بعدها روح علي كلاس World هتروح علي الرسالة بتاعت الاسكل تيم بكيه وتبدلها بي دي
كود PHP:

            #region SkillTeamPk
            
if (((Now64.Hour == SkillPk.EventTime) && Now64.Minute >= 55) && !SkillPk.SkillTournament.Opened)
                
Game.Features.Tournaments.SkillPk.SkillTournament.Open();
            
#endregion 

صورة من الاسكل تيم بكيه
عفواً لايمكن عرض الروابط إلا بعد الرد على الموضوع
الاسكل النهردا مكنشي شغال لا السيرفر كان مقفول النهردا ساعت الاسكل
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
هتغير XMeGo بي اسم البروجكت بتاعك
ولو جالك ايرور في Entity بدلها بي Player

انشاء الله مفيش مشاكل
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
التيم بكيه >>> الاليت بكيه >>> الاسكل تيم بكيه >>> انشاء الله مش فيهم مشاكل

طيب واحد يجي يقولي ازاي اعدل علي الجوايز
هتبحث عن الفويد دا
كود PHP:

public static bool GetReward(Client.GameState client

التعديل في الفويد دا
هتلاقي الفويد دا موجود في التيم بكيه وا الاسكل وا الاليت
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ياريت دعوه حلوه بقي لي الناس الطيبه دي

ميدو عزوز
احمد محمد [rider]
محمد ياسر [Hazem]
ايمن السيد [مستر ريزو]
احمد فتحي
محمد حسين [MoElSaher]
حسن هاني [HassanEmprator]

كل سنه وحضرتكم طيبين

عايز طلب من الادارة
ياريت الموضوع يتثبت

SourceBuilder 2020-04-25 06:10 AM

رد: التيم الاسكل الاليت الي عندو مشاكل فيهم يخوش هنااا
 
اخويا العلق الي خاااربها

ElSaher 2020-04-25 06:19 AM

رد: التيم الاسكل الاليت الي عندو مشاكل فيهم يخوش هنااا
 
اقتباس:

المشاركة الأصلية كتبت بواسطة sourcebuilder (المشاركة 39335)
اخويا العلق الي خاااربها

اخويا الي مش من امي وابويا تسلم يا علق

محمد ياسر 2020-04-25 10:41 AM

رد: التيم الاسكل الاليت الي عندو مشاكل فيهم يخوش هنااا
 
عاش ياحمو تسلم ايدك

ElSaher 2020-04-25 11:28 AM

رد: التيم الاسكل الاليت الي عندو مشاكل فيهم يخوش هنااا
 
اقتباس:

المشاركة الأصلية كتبت بواسطة Hazem (المشاركة 39350)
عاش ياحمو تسلم ايدك

مثبتهاش لي ياض

ahmedfathy 2020-04-25 12:23 PM

رد: التيم الاسكل الاليت الي عندو مشاكل فيهم يخوش هنااا
 
الاضافة نقصا يا محمد موضوع الايليت بكي مش صعب سهل بس كل فايل لي مهمة معينة

ElSaher 2020-04-25 12:30 PM

رد: التيم الاسكل الاليت الي عندو مشاكل فيهم يخوش هنااا
 
انا فاهمك يحمد بس انا مش حاطط اضافت كاملة انا حاطط الكلاسات الي انا معدل عليها والي كان فيها مشاكل واتحلت وغيره يبدلها بلي عندو واي ايرور او مشكلة هحلهولو

SourceBuilder 2020-04-25 08:19 PM

رد: التيم الاسكل الاليت الي عندو مشاكل فيهم يخوش هنااا
 
اقتباس:

المشاركة الأصلية كتبت بواسطة elsaher (المشاركة 39358)
انا فاهمك يحمد بس انا مش حاطط اضافت كاملة انا حاطط الكلاسات الي انا معدل عليها والي كان فيها مشاكل واتحلت وغيره يبدلها بلي عندو واي ايرور او مشكلة هحلهولو

ظرات يااه :d

Tarek Roshdi 2020-04-26 12:37 AM

رد: التيم الاسكل الاليت الي عندو مشاكل فيهم يخوش هنااا
 
انا هندي الايلت والاسكل والتيم. لم يبداوا اللعبة بتهنج عند الكل
دة حل للمشكلة دي؟

ElSaher 2020-04-26 07:32 AM

رد: التيم الاسكل الاليت الي عندو مشاكل فيهم يخوش هنااا
 
دا حل مشكلة انو بيوزع الرنكات لوحدو الايرورات الي بتيجي في القنصل
مشكلة ان مش بيخوش الجوله وكدا يعني


الساعة الآن 02:40 AM

مرحبا بكم في منتدي اكواد لتطوير الالعاب