كونكر عرب

كونكر عرب (https://conquer-arab.com/index.php)
-   البرامج والودرات (https://conquer-arab.com/forumdisplay.php?f=39)
-   -   بكيتات دخول البورتو 6858 + لودر مينا لسورس ثور (https://conquer-arab.com/showthread.php?t=146)

M.H.B[X-Coder]X 2019-04-23 04:43 PM

بكيتات دخول البورتو 6858 + لودر مينا لسورس ثور
 



بسم الله
ملحوظه متنساش تغير اسم بروجيكت لاسم بروجيكت بتاعك
انا رجعت تاني : )
طيب سورس ال نزل امبارح من اخونا احمد الاسيوطي فيه مشكلة لودر طيب وحلها ايه
حلها هنا خليك معايا
اعمل كل الخطوات دي وانشاء الله هيبق معك السورس متكامل
هبدا بي بكيتات البورتو + اللودر
هندخل علي Forward.cs و نبدله ب ده
كود PHP:


using System
;
using System.Text;
using New_Thor_S_B_Mohamed_Hossam.Interfaces;
using New_Thor_S_B_Mohamed_Hossam.Client;
namespace 
New_Thor_S_B_Mohamed_Hossam.Network.AuthPackets
{
    public class 
Forward : IPacket
    
{
        private 
byte[] Buffer;

        public 
Forward()
        {
            
this.Buffer = new byte[48];
            
Writer.WriteUInt16((ushort)40, 0, this.Buffer);
            
Writer.WriteUInt16((ushort)1637, 2, this.Buffer);
        }

        public 
uint Identifier
        
{
            
get
            
{
                return 
BitConverter.ToUInt32(this.Buffer, 4);
            }
            
set
            
{
                
Writer.WriteUInt32(value, 4, this.Buffer);
            }
        }

        public 
Forward.ForwardType Type
        
{
            
get
            
{
                return (
Forward.ForwardType)BitConverter.ToUInt32(this.Buffer, 12);
            }
            
set
            
{
                
Writer.WriteUInt32((uint)value, 12, this.Buffer);
            }
        }

        public 
ushort Port
        
{
            
get
            
{
                return 
BitConverter.ToUInt16(this.Buffer, 16);
            }
            
set
            
{
                
Writer.WriteUInt16(value, 16, this.Buffer);
            }
        }

        public 
string IP
        
{
            
get
            
{
                return 
Encoding.Default.GetString(this.Buffer, 24, 16);
            }
            
set
            
{
                
Writer.WriteString(value, 24, this.Buffer);
            }
        }

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

        public 
void Deserialize(byte[] buffer)
        {
        }

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

        public 
enum ForwardType : byte
        
{
            
InvalidInfo = 1,
            
Ready = 2,
            
Banned = 25,
            
WrongAccount = 57,
        }
    }
} 

بعدها هندخل علي Program.cs
هنبحث عن
كود PHP:

OnClientReceive 

هيكون بالشكل ده
كود PHP:

 static void AuthServer_OnClientReceive(byte[] buffer, int length, ClientWrapper arg3) 

او ممكن تلاقي publicف اوله المهم هتلاقي علامة - جنبه دوس عليها و بعد كده حدده و امسحه و حط ده مكانه
كود PHP:

 static void AuthServer_OnClientReceive(byte[] buffer, int length, ClientWrapper arg3)
        {
            var 
player = arg3.Connector as Client.AuthClient;
            
player.Cryptographer.Decrypt(buffer, length);
            
player.Queue.Enqueue(buffer, length);
            while (
player.Queue.CanDequeue())
            {
                
byte[] packet = player.Queue.Dequeue();
                
ushort len = BitConverter.ToUInt16(packet, 0);
                
ushort id = BitConverter.ToUInt16(packet, 2);
                if (
len == 312)
                {
                    
player.Info = new Authentication();
                    
player.Info.Deserialize(packet);
                    
player.Account = new AccountTable(player.Info.Username);
                    
string passdone = "";
                    
msvcrt.msvcrt.srand(player.PasswordSeed);
                    
Forward Fw = new Forward();
                    if (!
player.Account.exists)
                    {
                        
Fw.Type = Forward.ForwardType.InvalidInfo;
                        
player.Send(Fw);
                    }
                    if (
player.Account.Password == player.Info.Password && player.Account.exists)
                    {
                        
Fw.Type = Forward.ForwardType.Ready;
                    }
                    else
                    {
                        
Fw.Type = Forward.ForwardType.InvalidInfo;
                    }

                    if (
IPBan.IsBanned(arg3.IP))
                    {
                        
Fw.Type = Forward.ForwardType.Banned;
                        
player.Send(Fw);
                        return;
                    }
                    if (
Fw.Type == Network.AuthPackets.Forward.ForwardType.Ready)
                    {

                            
                      
/*  if (player.Info.Server != Constants.ServerName)
                        {
                         Console.WriteLine("User==>[" + player.Info.Username + "] Change Name Server To [" + player.Info.Server + "] UID=[" + player.Account.EntityID + "]", ConsoleColor.Blue);
                           // return;
                      } */
                        
Client.GameState aClient;
                        if (
Kernel.GamePool.TryGetValue(Fw.Identifier, out aClient))
                        {
                            
Fw.Type = Forward.ForwardType.InvalidInfo;
                            
aClient.Disconnect();
                            
player.Send(Fw);
                            return;
                        }
                        
Fw.Identifier = player.Account.GenerateKey();
                        
Kernel.AwaitingPool[Fw.Identifier] = player.Account;
                        
Fw.IP = GameIP;
                        
Fw.Port = GamePort;
                    }
                    
player.Send(Fw);
                }
            }
        } 

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

void GameServer_OnClientReceive 

و بدله ب ده
كود PHP:

static void GameServer_OnClientReceive(byte[] buffer, int length, ClientWrapper obj)
        {
            if (
obj.Connector == null)
            {
                
obj.Disconnect();
                return;
            }
            
Client.GameState Client = obj.Connector as Client.GameState;
            if (
Client.Exchange)
            {
                
Client.Exchange = false;
                
Client.Action = 1;
                var 
crypto = new GameCryptography(Program.Encoding.GetBytes(Constants.GameCryptographyKey));
                
byte[] otherData = new byte[length];
                Array.
Copy(buffer, otherData, length);
                
crypto.Decrypt(otherData, length);

                
bool extra = false;
                
int pos = 0;
                if (
BitConverter.ToInt32(otherData, length - 140) == 128)//no extra packet
                
{
                    
pos = length - 140;
                    
Client.Cryptography.Decrypt(buffer, length);
                }
                else if (
BitConverter.ToInt32(otherData, length - 180) == 128)//extra packet + 4 3d
                
{
                    
pos = length - 180;
                    
extra = true;
                    
Client.Cryptography.Decrypt(buffer, length - 40);
                }
                
int len = BitConverter.ToInt32(buffer, pos); pos += 4;
                if (
len != 128)
                {
                    
Client.Disconnect();
                    return;
                }
                
byte[] pubKey = new byte[128];
                for (
int x = 0; x < len; x++, pos++) pubKey[x] = buffer[pos];

                
string PubKey = Program.Encoding.GetString(pubKey);
                
Client.Cryptography = Client.DHKeyExchange.HandleClientKeyPacket(PubKey, Client.Cryptography);

                if (
extra)
                {
                    
byte[] data = new byte[40];
                    
Buffer.BlockCopy(buffer, length - 40, data, 0, 40);
                    
processData(data, 40, Client);
                }
            }
            else
            {
                
processData(buffer, length, Client);
            }
        } 

بعدها ادخل علي Authentication.cs ملقتهوش هيبقي اسمه auth.cs
و بدله ب ده
كود PHP:

using System;
using System.IO;
using System.Text;
using New_Thor_S_B_Mohamed_Hossam.Network.Cryptography;

namespace 
New_Thor_S_B_Mohamed_Hossam.Network.AuthPackets
{
    public class 
Authentication : Interfaces.IPacket
    
{
        public 
string Username, Password, Server;
        public 
Authentication() { }
        public 
void Deserialize(byte[] buffer)
        {
            
Username = Program.Encoding.GetString(buffer, 8, 32).Replace("\0", "");
            
Password = Program.Encoding.GetString(buffer, 100, 32).Replace("\0", "");
            
Server = Program.Encoding.GetString(buffer, 136, 16).Replace("\0", "");
        }
        public 
byte[] ToArray() { throw new NotImplementedException(); }
        public 
void Send(Client.GameState client) { }
    }
} 

بعدها هتخدل علي Constants.cs
و تبحث عن GameCryptographyKey
و تبدل مفتاح اللودر الي بعد كلمة يساوي ب ده
كود PHP:

C238xs65pjy7HU9Q 

سطر كله اهوه عشان لو ف ناس بتتلخبط
كود PHP:

GameCryptographyKey = "C238xs65pjy7HU9Q", 

لو جاب ايرور معاك حط ده مكانه
كود PHP:

GameCryptographyKey = "C238xs65pjy7HU9Q"; 

بعدها ادخل علي PacketHandler.cs

ابحث عن
كود PHP:

 case 10010: 

و بدلها ب دي

كود PHP:

 #region Data (10010)
                
case 10010:
                    {
                        if (
client.Action != 2)
                            return;
                        var 
pkt = new MsgAction_TATA();
                        
pkt.Handle(client, packet);
                        break;
                    }
                
#endregion 

بعدها افتح كلاس
MsgAction_TATA.cs
و بدله ب ده
كود PHP:

      using System;
using System.IO;
using System.Text;
using New_Thor_S_B_Mohamed_Hossam.Network.Cryptography;

namespace 
New_Thor_S_B_Mohamed_Hossam.Network.AuthPackets
{
    public class 
Authentication : Interfaces.IPacket
    
{
        public 
string Username, Password, Server;
        public 
Authentication() { }
        public 
void Deserialize(byte[] buffer)
        {
            
Username = Program.Encoding.GetString(buffer, 8, 32).Replace("\0", "");
            
Password = Program.Encoding.GetString(buffer, 100, 32).Replace("\0", "");
            
Server = Program.Encoding.GetString(buffer, 136, 16).Replace("\0", "");
        }
        public 
byte[] ToArray() { throw new NotImplementedException(); }
        public 
void Send(Client.GameState client) { }
    }
}

class 
Constants
GameCryptographyKey 
= "C238xs65pjy7HU9Q",
CLASS 
PacketHandler
                
#region Data (10010)
                
case 10010:
                    {
                        if (
client.Action != 2)
                            return;
                        var 
pkt = new MsgAction_TATA();
                        
pkt.Handle(client, packet);
                        break;
                    }
                
#endregion

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using ProtoBuf;
using New_Thor_S_B_Mohamed_Hossam.Network;
using New_Thor_S_B_Mohamed_Hossam.Network.GamePackets;
using New_Thor_S_B_Mohamed_Hossam.Game.Features;
using New_Thor_S_B_Mohamed_Hossam.Game.MsgServer;
using New_Thor_S_B_Mohamed_Hossam.Interfaces;
using New_Thor_S_B_Mohamed_Hossam.Game;
using System.Drawing;
using New_Thor_S_B_Mohamed_Hossam.Client;

namespace 
New_Thor_S_B_Mohamed_Hossam
{
    class 
MsgAction_TATA
    
{
        public class 
CustomCommands
        
{
            public const 
ushort
                ExitQuestion 
= 1,
                
Minimize = 2,
                
ShowReviveButton = 1053,
                
FlowerPointer = 1067,
                
Enchant = 1091,
                
LoginScreen = 1153,
                
SelectRecipiet = 30,
                
JoinGuild = 34,
                
MakeFriend = 38,
                
ChatWhisper = 40,
                
CloseClient = 43,
                
HotKey = 53,
                
Furniture = 54,
                
TQForum = 79,
                
PathFind = 97,
                
LockItem = 102,
                
ShowRevive = 1053,
                
HideRevive = 1054,
                
StatueMaker = 1066,
                
GambleOpen = 1077,
                
GambleClose = 1078,
                
Compose = 1086,
                
Craft1 = 1088,
                
Craft2 = 1089,
                
Warehouse = 1090,
                
ShoppingMallShow = 1100,
                
ShoppingMallHide = 1101,
                
NoOfflineTraining = 1117,
                
CenterClient = 1155,
                
ClaimCP = 1197,
                
ClaimAmount = 1198,
                
Advertise = 3274,
                
MerchantApply = 1201,
                
MerchantDone = 1202,
                
RedeemEquipment = 1233,
                
ClaimPrize = 1234,
                
RepairAll = 1239,
                
FlowerIcon = 1244,
                
SendFlower = 1246,
                
ReciveFlower = 1248,
                
WarehouseVIP = 1272,
                
UseExpBall = 1288,
                
HackProtection = 1298,
                
HideGUI = 1307,
                
Inscribe = 3059,
                
BuyPrayStone = 3069,
                
HonorStore = 3104,
                
Opponent = 3107,
                
CountDownQualifier = 3109,
                
QualifierStart = 3111,
                
ItemsReturnedShow = 3117,
                
ItemsReturnedWindow = 3118,
                
ItemsReturnedHide = 3119,
                
QuestFinished = 3147,
                
QuestPoint = 3148,
                
QuestPointSparkle = 3164,
                
StudyPointsUp = 3192,
                
PKTeamName = 3209,
                
CTFFlag = 3211,
                
Updates = 3218,
                
IncreaseLineage = 3227,
                
HorseRacingStore = 3245,
                
GuildPKTourny = 3249,
                
QuitPK = 3251,
                
Spectators = 3252,
                
CardPlayOpen = 3270,
                
CardPlayClost = 3271,
                
ArtifactPurification = 3344,
                
SafeguardConvoyShow = 3389,
                
SafeguardConvoyHide = 3390,
                
RefineryStabilization = 3392,
                
ArtifactStabilization = 3398,
                
SmallChat = 3406,
                
NormalChat = 3407,
                
Reincarnation = 3439,
                
CTFEnd = 3549,
                
CTFScores = 3359;

        }
        public class 
WindowCommands
        
{
            public const 
ushort
                Compose 
= 1,
                
Craft = 2,
                
Warehouse = 4,
                
DetainRedeem = 336,
                
DetainClaim = 337,
                
VIPWarehouse = 341,
                
Breeding = 368,
                
PurificationWindow = 455,
                
StabilizationWindow = 459,
                
TalismanUpgrade = 347,
                
GemComposing = 422,
                
OpenSockets = 425,
                
Blessing = 426,
                
TortoiseGemComposing = 438,
                
RefineryStabilization = 448,
                
HorseRacingStore = 464,
                
JiangHuSetName = 617,
                
Reincarnation = 485;

        }
        public const 
ushort
            DragonBallDropped 
= 165,
             
JumpOutEffect = 134,
                
ObserveKnownPerson = 54,
                
SetLocation = 74,
                
Hotkeys = 75,
                
ConfirmFriends = 76,
                
ConfirmProficiencies = 77,
                
ConfirmSpells = 78,
                
ChangeDirection = 79,
                
ChangeAction = 81,
                
UsePortal = 85,
                
Teleport = 86,
                
Leveled = 92,
                
XPListEnd = 93,
                
Revive = 94,
                
DeleteCharacter = 95,
                
ChangePKMode = 96,
                
ConfirmGuild = 97,
                
SwingPickaxe = 99,
                
TeamMemberPos = 101,
                
UnknownEntity = 102,

                
TeamSearchForMember = 106,
                
RemoveSpell = 109,
                
NewCoordonates = 108,
                
OwnBooth = 111,
                
GetSurroundings = 114,
                
OpenCustom = 116,
                
ObserveEquipment = 117,
                
EndTransformation = 118,
                
EndFly = 120,
                
ViewEnemyInfo = 123,
                
OpenWindow = 126,
                
JiangHu0 = 126,
                
CompleteLogin = 251,
                
RemoveEntity = 135,
                
AddEntity = 134,
                
Jump = 137,
                Die = 
145,
                
EndTeleport = 146,
                
ViewFriendInfo = 148,
                
ChangeFace = 151,
                
ViewPartnerInfo = 152,
                
Confiscator = 153,
                
OpenShop = 0xA0,
                
FlashStep = 156,
                
CountDown = 159,
                
Away = 161,
                
AutoPatcher = 162,
                 
HideGui = 158,
                
AppearanceType = 178,
                
SpawnEffect = 134,
                
LevelUpSpell = 252,
                
RemoveTrap = 434,
                
LevelUpProficiency = 253,
                
ObserveEquipment2 = 310,
                
BeginSteedRace = 401,
                
FinishSteedRace = 402,

                
DetainWindowRequest = 153;
        public 
void MsgAction(Client.GameState client, MsgActionProto action, bool SendScreen = false)
        {
            
MsgActionProto Action = new MsgActionProto();
            
Action = action;
            if (
SendScreen == true)
            {
                if (
client.Entity.EntityFlag == EntityFlag.Entity)
                {
                    
client.SendScreen(SendPacket(Action));
                }
                else if (
client.Entity.EntityFlag == EntityFlag.Monster)
                {
                    
client.Entity.MonsterInfo.SendScreen(SendPacket(Action));
                }
            }
            else
            {
                if (
client.Entity.EntityFlag == EntityFlag.Entity)
                {
                    
client.Send(SendPacket(Action));
                }
            }
        }
        public 
MsgActionProto Info;
        public 
void Handle(Client.GameState client, byte[] packet)
        {
            
Info = new MsgActionProto();
            var 
myPacket = new byte[packet.Length - 8];
            for (
int i = 0; i < myPacket.Length; i++)
            {
                
myPacket[i] = packet[i];
            }
            
using (var memoryStream = new MemoryStream(myPacket))
            {
                
Info = Serializer.DeserializeWithLengthPrefix<MsgActionProto>(memoryStream, PrefixStyle.Fixed32);
            }
            switch (
Info.ID)
            {
                case 
SetLocation:
                    if (
client._setlocation)
                    {
                        if (
client.Entity.MyJiang != null)
                        {
                            
JiangHu.AttributesToArray(client);
                            if (
client.Entity.MyJiang.SecondsEnd != 0)
                            {

                                
client.Entity.MyJiang.SendOnline(client, true);
                                
client.Entity.MyJiang.OnShutDown = true;
                                
client.Entity.MyJiang.StartJiang = Time32.Now;
                                
client.LoadItemStats();
                            }
                            else
                            {
                                
client.Entity.MyJiang.SendToArray(client, false);
                            }
                        }
                        else if (
client.Entity.Reborn == 2)
                        {
                            
TalentStatus tal = new TalentStatus(client.Entity.UID);
                            
tal.Mode = "0";
                            
tal.Type = 0;
                            
client.Send(tal);
                        }
                        
SendFlower sendFlower = new SendFlower();
                        
sendFlower.Typing = (Flowers.IsBoy((uint)client.Entity.Body) ? 3u : 2u);
                        
//   sendFlower.Apprend(client.Entity.MyFlowers);
                        
client.Send(sendFlower.ToArray());

                        
client.Send(client.Entity.MyAchievement.ToArray());
                        
// ElitePKTournament.GiveClientReward(client);
                        
if (client.Guild != null)
                        {
                            
client.Guild.SendGuild(client);
                            
GuildMinDonations guildMinDonations = new GuildMinDonations(31);
                            
guildMinDonations.AprendGuild(client.Guild);
                            
client.Send(guildMinDonations.ToArray());
                        }
                        
Clan clan = client.Entity.GetClan;
                        if (
clan != null)
                        {
                            
clan.Build(client, Clan.Types.Info);
                            
client.Send(clan);

                            
client.Entity.ClanName = clan.Name;

                            
client.Send(new ClanRelations(clan, ClanRelations.RelationTypes.Allies));
                            
client.Send(new ClanRelations(clan, ClanRelations.RelationTypes.Enemies));
                        }

                        foreach (
Game.ConquerStructures.Society.Guild guild in Kernel.Guilds.Values)
                        {
                            
guild.SendName(client);
                            
guild.SendName(client);
                        }

                        if (
client.Entity.EnlightmentTime > 0)
                        {
                            
Enlight enlight = new Enlight(true);
                            
enlight.Enlighted = client.Entity.UID;
                            
enlight.Enlighter = 0;

                            if (
client.Entity.EnlightmentTime > 80)
                                
client.Entity.EnlightmentTime = 100;
                            else if (
client.Entity.EnlightmentTime > 60)
                                
client.Entity.EnlightmentTime = 80;
                            else if (
client.Entity.EnlightmentTime > 40)
                                
client.Entity.EnlightmentTime = 60;
                            else if (
client.Entity.EnlightmentTime > 20)
                                
client.Entity.EnlightmentTime = 40;
                            else if (
client.Entity.EnlightmentTime > 0)
                                
client.Entity.EnlightmentTime = 20;
                            for (
int count = 0; count < client.Entity.EnlightmentTime; count += 20)
                            {
                                
client.Send(enlight);
                            }
                        }

                        if (
client.Entity.Hitpoints != 0)
                        {
                            if (
client.Map.ID == 1036 || client.Map.ID == 1039)
                            {
                                if (
client.Entity.PreviousMapID == 0)
                                    
client.Entity.SetLocation(1002, 410, 354);
                                else
                                {
                                    switch (
client.Entity.PreviousMapID)
                                    {
                                        default:
                                            {
                                                
client.Entity.SetLocation(1002, 410, 354);
                                                break;
                                            }
                                        case 
1000:
                                            {
                                                
client.Entity.SetLocation(1000, 500, 650);
                                                break;
                                            }
                                        case 
1020:
                                            {
                                                
client.Entity.SetLocation(1020, 565, 562);
                                                break;
                                            }
                                        case 
1011:
                                            {
                                                
client.Entity.SetLocation(1011, 188, 264);
                                                break;
                                            }
                                        case 
1015:
                                            {
                                                
client.Entity.SetLocation(1015, 717, 571);
                                                break;
                                            }
                                    }
                                }
                            }
                        }
                        else
                        {
                            if (
client.Entity.MapID == 1038 && New_Thor_S_B_Mohamed_Hossam.Game.GuildWar.IsWar)
                            {
                                
client.Entity.SetLocation(6001, 31, 74);
                            }
                            else
                            {
                                
ushort[] Point = Database.DataHolder.FindReviveSpot(client.Map.ID);
                                
client.Entity.SetLocation(Point[0], Point[1], Point[2]);
                            }
                        }
                        
Info.dwParam = client.Map.BaseID;
                        
Info.wParam1 = client.Entity.X;
                        
Info.wParam2 = client.Entity.Y;
                        
client.Send(SendPacket(Info));
                        
client.Screen.Reload(null);//Done
                        
client.Screen.FullWipe();
                        
client.SendScreenSpawn(client.Entity, true);
                        
client.Screen.Reload(null);
                    }
                    break;
                case 
256:
                    {
                        if (
client.SashSlots < 200)
                        {
                            if (
client.Entity.ConquerPoints >= 90)
                            {
                                
client.Entity.ConquerPoints -= 90;
                                
client.SashSlots += 1;
                            }
                            else
                            {
                                
client.Entity.SendSysMesage("make sure you Have 90 CPs");
                            }
                        }
                        else
                        {
                            
client.Entity.SendSysMesage("you already opened max number of slots");
                        }
                        break;
                    }
                case 
255:
                    {
                        
//PrintPacket(packet);
                        
Info.UID = client.Entity.UID;
                        
Info.ID = 257;
                        
client.Send(SendPacket(Info));
                        break;
                    }
                case 
DetainWindowRequest:
                    {
                        if (!
client.JustOpenedDetain)
                        {
                            if (
client.DeatinedItem.Count != 0)
                            {


                                
MsgActionProto Action = new MsgActionProto();
                                
Action.ID = MsgAction_TATA.OpenWindow;
                                
Action.UID = client.Entity.UID;
                                
Action.dwParam = (uint)WindowCommands.DetainRedeem;
                                
Action.TimeStamp = (uint)Time32.Now.GetHashCode();
                                
client.Send(MsgAction_TATA.SendPacket(Action));

                            }
                            if (
client.ClaimableItem.Count != 0)
                            {
                                
MsgActionProto Action = new MsgActionProto();
                                
Action.ID = MsgAction_TATA.OpenWindow;
                                
Action.UID = client.Entity.UID;
                                
Action.dwParam = (uint)WindowCommands.DetainClaim;
                                
Action.TimeStamp = (uint)Time32.Now.GetHashCode();
                                
client.Send(MsgAction_TATA.SendPacket(Action));
                            }
                        }

                        
client.JustOpenedDetain = !client.JustOpenedDetain;
                        break;
                    }
                case 
408:
                    {
                        if (!
client.JustOpenedDetain)
                        {
                            if (
client.ClaimableItem.Count != 0)
                            {

                                
MsgActionProto Action = new MsgActionProto();
                                
Action.ID = MsgAction_TATA.OpenWindow;
                                
Action.UID = client.Entity.UID;
                                
Action.dwParam = (uint)MsgAction_TATA.WindowCommands.DetainClaim;
                                
Action.TimeStamp = (uint)Time32.Now.GetHashCode();
                                
Action.wParam1 = client.Entity.X;
                                
Action.wParam2 = client.Entity.Y;
                                
client.Send(MsgAction_TATA.SendPacket(Action));
                            }
                        }
                        
client.JustOpenedDetain = !client.JustOpenedDetain;
                        break;
                    }
                case 
132:
                    {
                        
Console.WriteLine("Dis? " + client.Entity.Name);
                        
client.Disconnect();
                        break;
                    }
                case 
AppearanceType:
                    {
                        if (
client.Entity.Tournament_Signed)
                            return;
                        
Info.UID = client.Entity.UID;
                        
client.Entity.Appearance = (Game.AppearanceType)Info.dwParam;
                        
client.Appearance = (uint)client.Entity.Appearance;
                        
client.SendScreen(SendPacket(Info), true);
                        break;
                    }
                case 
CompleteLogin:
                    {
                        
MsgSignIn.Show(client);
                        
PacketHandler.LoginMessages(client);
                        
client.Send(packet);
                        break;
                    }
                case 
LevelUpSpell:
                    {
                        if (
client.Trade.InTrade)
                            return;
                        
MsgSpell Spell;
                        if (
client.MySpells.ClientSpells.TryGetValue((ushort)Info.dwParam, out Spell))
                        {
                            
Dictionary<ushort, Database.MagicType.Magic> DbSpells;
                            if (
Kernel.Magic.TryGetValue(Spell.ID, out DbSpells))
                            {
                                if (
Spell.Level < DbSpells.Count - 1)
                                {

                                    
decimal cpCost = DbSpells[Spell.Level].CpsCost;
                                    
cpCost = ((cpCost / 2) - (cpCost / 2 / 10)) / 10;

                                    
int max = Math.Max((int)Spell.Experience, 1);
                                    
int percentage = (int)Math.Ceiling((decimal)(100 - (int)(max / Math.Max((DbSpells[Spell.Level].Experience / 100), 1))));
                                    
cpCost = Math.Ceiling((decimal)(cpCost * percentage / 100));

                                    if (
client.Entity.ConquerPoints >= cpCost)
                                    {
                                        
client.Entity.ConquerPoints -= (ulong)cpCost;

                                        
client.MySpells.Add(packet, Spell.ID, (ushort)(Spell.Level + 1), Spell.SoulLevel, Spell.PreviousLevel, 0);
                                    }
                                }
                            }
                        }
                        break;
                    }
                case 
LevelUpProficiency:
                    {
                        
ushort proficiencyID = (ushort)Info.dwParam;
                        
IProf proficiency = null;
                        if (
client.Proficiencies.TryGetValue(proficiencyID, out proficiency))
                        {
                            if (
proficiency.Level != 20)
                            {
                                if (
client.Trade.InTrade) return;
                                
uint cpCost = 0;
                                
#region Costs
                                
switch (proficiency.Level)
                                {
                                    case 
1: cpCost = 28; break;
                                    case 
2: cpCost = 28; break;
                                    case 
3: cpCost = 28; break;
                                    case 
4: cpCost = 28; break;
                                    case 
5: cpCost = 28; break;
                                    case 
6: cpCost = 55; break;
                                    case 
7: cpCost = 81; break;
                                    case 
8: cpCost = 135; break;
                                    case 
9: cpCost = 162; break;
                                    case 
10: cpCost = 270; break;
                                    case 
11: cpCost = 324; break;
                                    case 
12: cpCost = 324; break;
                                    case 
13: cpCost = 324; break;
                                    case 
14: cpCost = 324; break;
                                    case 
15: cpCost = 375; break;
                                    case 
16: cpCost = 548; break;
                                    case 
17: cpCost = 799; break;
                                    case 
18: cpCost = 1154; break;
                                    case 
19: cpCost = 1420; break;
                                }
                                
#endregion
                                
uint needExperience = Database.DataHolder.ProficiencyLevelExperience(proficiency.Level);
                                
int max = Math.Max((int)proficiency.Experience, 1);
                                
int percentage = 100 - (int)(max / (needExperience / 100));
                                
cpCost = (uint)(cpCost * percentage / 100);
                                if (
client.Entity.ConquerPoints >= cpCost)
                                {
                                    
client.Entity.ConquerPoints -= cpCost;
                                    
proficiency.Level++;
                                    if (
proficiency.Level == proficiency.PreviousLevel / 2)
                                    {
                                        
proficiency.Level = proficiency.PreviousLevel;
                                        
Database.DataHolder.ProficiencyLevelExperience((byte)(proficiency.Level + 1));
                                    }
                                    
proficiency.Experience = 0;
                                    
proficiency.Send(client);
                                }
                            }
                        }
                        break;
                    }
                case 
SwingPickaxe:
                    
client.Mining = true;
                    break;
                case 
Revive:
                    {
                        if (
client.Entity.ContainFlag(MsgUpdate.Flags.SoulShackle))
                            return;

                        if (
client.InTeamQualifier())
                            return;
                        
client.Entity.OnDeath = null;
                        
bool ReviveHere = Info.dwParam == 1;
                        
bool Rev = Info.dwParam == 0;
                        if (
client.Entity.StraightLife && !ReviveHere && !Rev)
                        {
                            
client.Entity.BringToLife();
                            
client.Entity.Teleport(client.Entity.MapID, client.Entity.X, client.Entity.Y, false);
                            var 
spell = Database.SpellTable.GetSpell(1095, 4);
                            
client.Entity.AddFlag(MsgUpdate.Flags.Stigma, (int)spell.Duration, true);
                            var 
spell1 = Database.SpellTable.GetSpell(1090, 4);
                            
client.Entity.AddFlag(MsgUpdate.Flags.MagicShield, (int)spell1.Duration, true);
                            
client.Entity.StraightLife = false;
                        }
                        else
                        {
                            if (
Time32.Now >= client.Entity.DeathStamp.AddSeconds(18))
                            {
                                
//
                                
client.Entity.Action = New_Thor_S_B_Mohamed_Hossam.Game.Enums.ConquerAction.None;
                                
client.ReviveStamp = Time32.Now;
                                
client.Attackable = false;
                                
client.Entity.TransformationID = 0;
                                
client.Entity.RemoveFlag(MsgUpdate.Flags.Dead);
                                
client.Entity.RemoveFlag(MsgUpdate.Flags.Ghost);
                                
client.Entity.Hitpoints = client.Entity.MaxHitpoints;
                                if (
client.Entity.MapID == 1507 || client.Entity.MapID == 1508 || client.Entity.MapID == 1509)
                                {
                                    
client.Entity.Teleport(1002, 410, 354);
                                    return;
                                }
                                if (
client.Entity.MapID == 1518)
                                {
                                    
client.Entity.Teleport(1002, 410, 354);
                                    return;
                                }
                                if (
ReviveHere && (client.Entity.HeavenBlessing > 0))
                                {
                                    if (
client.Entity.MapID == 10137)
                                    {
                                        
client.Entity.Teleport(client.Map.BaseID, client.Entity.X, client.Entity.Y, false);
                                        return;
                                    }
                                }

                                if (
client.Entity.MapID == 700)
                                {
                                    
client.Entity.Teleport(700, 51, 51);
                                }
                                if (
client.Entity.MapID == 3868)
                                {
                                    
client.Entity.Teleport(3868, 227, 240);
                                }
                                if (
client.Entity.MapID == 1038 && DateTime.Now.DayOfWeek == DayOfWeek.Friday)
                                {
                                    
client.Entity.Teleport(6001, 31, 74);
                                }
                                else if (
client.Entity.MapID == 10380 && DateTime.Now.Day >= 27 && DateTime.Now.Day <= 29)
                                {
                                    
client.Entity.Teleport(1002, 410, 354);
                                }
                                else if (
client.Entity.MapID == 1509)
                                {
                                    
client.Entity.Teleport(1509, 103, 43);
                                }
                                else if (
client.Entity.MapID == 11024)
                                {
                                    
client.Entity.Teleport(11024, 303, 147);
                                }
                                else if (
client.Entity.MapID == 11032)
                                {
                                    
client.Entity.Teleport(11032, 226, 227);
                                }
                                else if (
client.Entity.MapID == 2014)
                                {
                                    
client.Entity.Teleport(2014, 150, 162);
                                }
                                else if (
client.Entity.MapID == 10137)
                                {
                                    
client.Entity.Teleport(10137, 96, 411);
                                }
                                else if (
client.Entity.MapID == GuildScoreWar.Map.ID)
                                {
                                    
client.Entity.Teleport(GuildScoreWar.Map.ID, 226, 229);
                                }
                                else if (
client.Entity.MapID == 2071 || client.Entity.MapID == 11022)
                                {
                                    
client.Entity.Teleport(client.Entity.MapID, 43, 129);
                                }
                                else if (
client.Entity.MapID == 1730)
                                {
                                    
client.Entity.Teleport(1731, 59, 69);
                                }
                                else if (
client.Entity.MapID == 1731)
                                {
                                    
client.Entity.Teleport(1732, 59, 69);
                                }
                                else if (
client.Entity.MapID == 1732)
                                {
                                    
client.Entity.Teleport(1733, 59, 69);
                                }
                                else if (
client.Entity.MapID == 1733)
                                {
                                    
client.Entity.Teleport(1734, 59, 69);
                                }
                                else if (
client.Entity.MapID == 1734)
                                {
                                    
client.Entity.Teleport(1735, 59, 69);
                                }
                                else if (
client.Entity.MapID == 1735)
                                {
                                }
                                else if (
client.Entity.MapID == 2071)
                                {
                                    
client.Entity.Teleport(2071, 44, 130);
                                }
                                else if (
client.Entity.MapID == 11017)
                                {
                                    
client.Entity.Teleport(11017, 302, 147);
                                }
                                else if (
client.Entity.MapID == 1510)
                                {
                                    
client.Entity.Teleport(1510, 103, 44);
                                }
                                else if (
client.Entity.MapID == 3693)
                                {
                                    
client.Entity.Teleport(1002, 410, 354);
                                }
                                else if (
client.Entity.MapID == 7777)
                                {
                                    
client.Entity.Teleport(7777, 150, 164);
                                }
                                else if (
client.Entity.MapID == 8883)
                                {
                                    if (
client.Entity.TeamDeathMatch_BlackTeam == true)
                                    {
                                        
client.Entity.Teleport(8883, 042, 051);
                                    }
                                    if (
client.Entity.TeamDeathMatch_BlueTeam == true)
                                    {
                                        
client.Entity.Teleport(8883, 060, 042);
                                    }
                                    if (
client.Entity.TeamDeathMatch_WhiteTeam == true)
                                    {
                                        
client.Entity.Teleport(8883, 066, 064);

                                        if (
client.Entity.TeamDeathMatch_RedTeam == true)
                                        {
                                            
client.Entity.Teleport(8883, 039, 036);
                                        }
                                    }
                                }
                                else
                                {
                                    if (
ReviveHere && (client.Entity.HeavenBlessing > 0 || client.Entity.PKMode == Enums.PKMode.Jiang || client.Entity.JiangActive == true))
                                    {
                                        if (
client.Entity.MapID == 1762)
                                        {
                                            
client.Entity.Teleport(1762, 290, 72);
                                        }
                                        else
                                            
client.Entity.Teleport(client.Entity.MapID, client.Entity.X, client.Entity.Y, false);

                                    }

                                    else
                                    {
                                        
ushort[] Point = Database.DataHolder.FindReviveSpot(client.Map.ID);
                                        
client.Entity.Teleport(Point[0], Point[1], Point[2], false);
                                    }
                                }

                            }
                        }
                        break;
                    }
                case 
UsePortal:
                    {
                        
client.Entity.Action = New_Thor_S_B_Mohamed_Hossam.Game.Enums.ConquerAction.None;
                        
client.ReviveStamp = Time32.Now;
                        
client.Attackable = false;
                        
ushort portal_X = (ushort)(Info.dwParam & 0xFFFF);
                        
ushort portal_Y = (ushort)(Info.dwParam >> 16);

                        
string portal_ID = portal_X.ToString() + ":" + portal_Y.ToString() + ":" + client.Map.ID.ToString();
                        if (
client.Account.State == Database.AccountTable.AccountState.ProjectManager)
                            
client.Send(new Message("Portal ID: " + portal_ID, System.Drawing.Color.Red, Network.GamePackets.Message.TopLeft));

                        foreach (
Game.Portal portal in client.Map.Portals)
                        {
                            
int P = Kernel.GetDistance(portal.CurrentX, portal.CurrentY, client.Entity.X, client.Entity.Y);
                            if (
P <= 20)
                            {
                                
client.Entity.Teleport(portal.DestinationMapID, portal.DestinationX, portal.DestinationY);
                                return;
                            }
                        }
                        
client.Entity.Teleport(1002, 410, 354);
                        break;
                    }
                case 
ChangePKMode:
                    {
                        if (
client.Entity.TeamWatchingMatch != null || client.Entity.SkillWatchingMatch != null || client.WatchingElitePKMatch != null || client.WatchingGroup != null || client.TeamWatchingGroup != null)
                        {
                            
client.Send("You can not change your pk mode while you are watching.");
                            return;
                        }

                        if (
client.Team != null && (client.Team.TeamMatch != null || client.Team.SkillMatch != null))
                            return;
                        if (
client.InTeamQualifier()) return;
                        if (
client.Entity.PKMode == Game.Enums.PKMode.Jiang)
                        {
                            if ((
Game.Enums.PKMode)(byte)Info.dwParam != Game.Enums.PKMode.Jiang)
                            {
                                if (
client.Entity.MyJiang != null && client.Entity.JiangActive)
                                {
                                    
client.Entity.MyJiang.StartJiang = Time32.Now;
                                    
client.Entity.MyJiang.SecondsEnd = 60;
                                    
client.Entity.MyJiang.OnShutDown = true;
                                }
                            }
                        }
                        
client.Entity.AttackPacket = null;
                        
client.Entity.PKMode = (Game.Enums.PKMode)(byte)Info.dwParam;
                        
Info.dwParam2 = Info.dwParam;
                        
client.Send(SendPacket(Info));
                        if (
client.Entity.PKMode == Enums.PKMode.PK)
                        {
                            
client.Send(new New_Thor_S_B_Mohamed_Hossam.Network.GamePackets.Message("Free PK mode. You can attack monster and all Entitys.", System.Drawing.Color.Red, 0x7d0));
                        }
                        else if (
client.Entity.PKMode == Enums.PKMode.Capture)
                        {
                            
client.Send(new New_Thor_S_B_Mohamed_Hossam.Network.GamePackets.Message("Capture PK mode. You can only attack monsters, black-name and blue-name Entitys.", System.Drawing.Color.Red, 0x7d0));
                        }
                        else if (
client.Entity.PKMode == Enums.PKMode.Peace)
                        {
                            
client.Send(new New_Thor_S_B_Mohamed_Hossam.Network.GamePackets.Message("Peace mode. You can only attack monsters.", System.Drawing.Color.Red, 0x7d0));
                        }
                        else if (
client.Entity.PKMode == Enums.PKMode.Team)
                        {
                            
client.Send(new New_Thor_S_B_Mohamed_Hossam.Network.GamePackets.Message("Team PK mode. You can attack monster and all Entitys except your teammates.", System.Drawing.Color.Red, 0x7d0));
                        }
                        else if (
client.Entity.PKMode == Enums.PKMode.Revenge)
                        {
                            
client.Send(new New_Thor_S_B_Mohamed_Hossam.Network.GamePackets.Message("Revenge PK mode. You can attack monster and all Your Enemy List Entitys.", System.Drawing.Color.Red, 0x7d0));
                        }
                        else if (
client.Entity.PKMode == Enums.PKMode.Guild)
                        {
                            
client.Send(new New_Thor_S_B_Mohamed_Hossam.Network.GamePackets.Message("Guild PK mode. You can attack monster and all Your Guild's Enemies", System.Drawing.Color.Red, 0x7d0));
                        }
                        else if (
client.Entity.PKMode == Game.Enums.PKMode.Jiang)
                        {
                            
client.Entity.MyJiang.SendOnline(client, true);
                        }
                        break;
                    }
                case 
ChangeAction:
                    {
                        if (
client.ProgressBar != null)
                            
client.ProgressBar.End(client);
                        
client.Entity.Action = (ushort)Info.dwParam;
                        if (
client.Entity.ContainFlag(MsgUpdate.Flags.CastPray))
                        {
                            foreach (var 
Client in client.Prayers)
                            {
                                
Info.UID = Client.Entity.UID;
                                
Info.dwParam = (uint)client.Entity.Action;
                                
Info.wParam1 = Client.Entity.X;
                                
Info.wParam2 = Client.Entity.Y;
                                
Client.Entity.Action = client.Entity.Action;
                                if (
Time32.Now >= Client.CoolStamp.AddMilliseconds(1500))
                                {
                                    if (
Client.Equipment.IsAllSuper())
                                        
Info.dwParam = (uint)(Info.dwParam | (uint)(Client.Entity.Class * 0x10000 + 0x1000000));
                                    else if (
Client.Equipment.IsArmorSuper())
                                        
Info.dwParam = (uint)(Info.dwParam | (uint)(Client.Entity.Class * 0x10000));
                                    
Client.SendScreen(SendPacket(Info), true);
                                    
Client.CoolStamp = Time32.Now;
                                }
                                else
                                    
Client.SendScreen(SendPacket(Info), false);
                            }
                        }
                        
Info.UID = client.Entity.UID;
                        
Info.dwParam = (uint)client.Entity.Action;
                        if (
client.Entity.Action == New_Thor_S_B_Mohamed_Hossam.Game.Enums.ConquerAction.Cool)
                        {
                            if (
Time32.Now >= client.CoolStamp.AddMilliseconds(1500))
                            {
                                if (
client.Equipment.IsAllSuper())
                                    
Info.dwParam = (uint)(Info.dwParam | (uint)(client.Entity.Class * 0x10000 + 0x1000000));
                                else if (
client.Equipment.IsArmorSuper())
                                    
Info.dwParam = (uint)(Info.dwParam | (uint)(client.Entity.Class * 0x10000));
                                
client.SendScreen(SendPacket(Info), true);
                                
client.CoolStamp = Time32.Now;
                            }
                            else
                                
client.SendScreen(SendPacket(Info), false);
                        }
                        else
                            
client.SendScreen(SendPacket(Info), false);
                        break;
                    }
                case 
ChangeDirection:
                    {
                        
client.Entity.Facing = (Game.Enums.ConquerAngle)Info.Facing;
                        
client.SendScreen(SendPacket(Info), false);
                        break;
                    }
                case 
Hotkeys:
                    
client.Send(packet);
                    break;
                case 
ConfirmSpells:
                    if (
client.MySpells.ClientSpells != null)
                    {
                        
client.MySpells.SendAll(packet);
                    }
                    
client.Send(packet);
                    break;
                case 
ConfirmProficiencies:
                    if (
client.Proficiencies != null)
                        foreach (
Interfaces.IProf proficiency in client.Proficiencies.Values)
                            
proficiency.Send(client);
                    
client.Send(packet);
                    break;
                case 
ConfirmGuild:
                    
client.Send(packet);
                    break;
                case 
ConfirmFriends:
                    
#region Friends/Enemy/TradePartners/Apprentices
                    
Message msg2 = new Message("Your friend, " + client.Entity.Name + ", has logged on.", System.Drawing.Color.Red, Message.TopLeft);

                    foreach (
Game.ConquerStructures.Society.Friend friend in client.Friends.Values)
                    {
                        if (
friend.IsOnline)
                        {
                            var 
pckt = new KnownPersons(true)
                            {
                                
UID = client.Entity.UID,
                                
Type = KnownPersons.RemovePerson,
                                
Name = client.Entity.Name,
                                
NobilityRank = client.Entity.NobilityRank,
                                
IsBoy = Game.Features.Flowers.IsBoy(client.Entity.Body),
                                
Online = true
                            
};
                            
friend.Client.Send(pckt);
                            
pckt.Type = KnownPersons.AddFriend;
                            
friend.Client.Send(pckt);
                            
friend.Client.Send(msg2);
                        }
                        
client.Send(new KnownPersons(true)
                        {
                            
UID = friend.ID,
                            
Type = KnownPersons.AddFriend,
                            
Name = friend.Name,
                            
NobilityRank = friend.NobilityRank,
                            
IsBoy = friend.IsBoy,
                            
Online = friend.IsOnline
                        
});
                        if (
friend.Message != "")
                        {
                            
client.Send(new Message(friend.Message, client.Entity.Name, friend.Name, System.Drawing.Color.Red, Message.Whisper));
                            
Database.KnownPersons.UpdateMessageOnFriend(friend.ID, client.Entity.UID, "");
                        }
                    }

                    foreach (
Game.ConquerStructures.Society.Enemy enemy in client.Enemy.Values)
                    {
                        
client.Send(new KnownPersons(true)
                        {
                            
UID = enemy.ID,
                            
Type = KnownPersons.AddEnemy,
                            
Name = enemy.Name,
                            
NobilityRank = enemy.NobilityRank,
                            
//   IsBoy = enemy.IsBoy,
                            
Online = enemy.IsOnline
                        
});
                    }
                    
Message msg3 = new Message("Your partner, " + client.Entity.Name + ", has logged in.", System.Drawing.Color.Red, Message.TopLeft);

                    foreach (
Game.ConquerStructures.Society.TradePartner partner in client.Partners.Values)
                    {
                        if (
partner.IsOnline)
                        {
                            var 
packet3 = new TradePartner(true)
                            {
                                
UID = client.Entity.UID,
                                
Type = TradePartner.BreakPartnership,
                                
Name = client.Entity.Name,
                                
HoursLeft = (int)(new TimeSpan(partner.ProbationStartedOn.AddDays(3).Ticks).TotalHours - new TimeSpan(DateTime.Now.Ticks).TotalHours),
                                
Online = true
                            
};
                            
partner.Client.Send(packet3);
                            
packet3.Type = TradePartner.AddPartner;
                            
partner.Client.Send(packet3);
                            
partner.Client.Send(msg3);
                        }
                        var 
packet4 = new TradePartner(true)
                        {
                            
UID = partner.ID,
                            
Type = TradePartner.AddPartner,
                            
Name = partner.Name,
                            
HoursLeft = (int)(new TimeSpan(partner.ProbationStartedOn.AddDays(3).Ticks).TotalHours - new TimeSpan(DateTime.Now.Ticks).TotalHours),
                            
Online = partner.IsOnline
                        
};
                        
client.Send(packet4);
                    }

                    foreach (
Game.ConquerStructures.Society.Apprentice appr in client.Apprentices.Values)
                    {
                        if (
appr.IsOnline)
                        {
                            
ApprenticeInformation AppInfo = new ApprenticeInformation();
                            
AppInfo.Apprentice_ID = appr.ID;
                            
AppInfo.Apprentice_Level = appr.Client.Entity.Level;
                            
AppInfo.Apprentice_Class = appr.Client.Entity.Class;
                            
AppInfo.Apprentice_PkPoints = appr.Client.Entity.PKPoints;
                            
AppInfo.Apprentice_Experience = appr.Actual_Experience;
                            
AppInfo.Apprentice_Composing = appr.Actual_Plus;
                            
AppInfo.Apprentice_Blessing = appr.Actual_HeavenBlessing;
                            
AppInfo.Apprentice_Name = appr.Name;
                            
AppInfo.Apprentice_Online = true;
                            
AppInfo.Apprentice_Spouse_Name = appr.Client.Entity.Spouse;
                            
AppInfo.Enrole_date = appr.EnroleDate;
                            
AppInfo.Mentor_ID = client.Entity.UID;
                            
AppInfo.Mentor_Mesh = client.Entity.Mesh;
                            
AppInfo.Mentor_Name = client.Entity.Name;
                            
AppInfo.Type = 2;
                            
client.Send(AppInfo);

                            
MentorInformation Information = new MentorInformation(true);
                            
Information.Mentor_Type = 1;
                            
Information.Mentor_ID = client.Entity.UID;
                            
Information.Apprentice_ID = appr.ID;
                            
Information.Enrole_Date = appr.EnroleDate;
                            
Information.Mentor_Level = client.Entity.Level;
                            
Information.Mentor_Class = client.Entity.Class;
                            
Information.Mentor_PkPoints = client.Entity.PKPoints;
                            
Information.Mentor_Mesh = client.Entity.Mesh;
                            
Information.Mentor_Online = true;
                            
Information.Shared_Battle_Power = appr.Client.Entity.BattlePowerFrom(client.Entity);
                            
Information.String_Count = 3;
                            
Information.Mentor_Name = client.Entity.Name;
                            
Information.Apprentice_Name = appr.Name;
                            
Information.Mentor_Spouse_Name = client.Entity.Spouse;
                            
appr.Client.ReviewMentor();
                            
appr.Client.Send(Information);
                        }
                        else
                        {
                            
ApprenticeInformation AppInfo = new ApprenticeInformation();
                            
AppInfo.Apprentice_ID = appr.ID;
                            
AppInfo.Apprentice_Name = appr.Name;
                            
AppInfo.Apprentice_Online = false;
                            
AppInfo.Enrole_date = appr.EnroleDate;
                            
AppInfo.Mentor_ID = client.Entity.UID;
                            
AppInfo.Mentor_Mesh = client.Entity.Mesh;
                            
AppInfo.Mentor_Name = client.Entity.Name;
                            
AppInfo.Type = 2;
                            
client.Send(AppInfo);
                        }
                    }
                    
#endregion
                    
client.Send(packet);
                    break;
                case 
EndTeleport:
                    break;
                case 
GetSurroundings:
                    {
                        if (
client.Booth != null)
                        {
                            
client.Entity.TransformationID = 0;
                            
client.Booth.Remove();
                            
client.Booth = null;
                        }
                        
client.Screen.FullWipe();
                        
client.Screen.Reload(null);
                        
Game.Weather.CurrentWeatherBase.Send(client);
                        
client.Send(packet);
                        break;
                    }
                case 
Jump:
                    {
                        
using (var rec = new ServerSockets.RecycledPacket())
                        {
                            var 
stream = rec.GetStream();
                            
client.Entity.RemoveBuffersMovements(stream);
                        }
                        
client.OnAutoAttack = false;
                        
client.Entity.SetAway(false);
                        
client.LastMove = Time32.Now;
                        if (
client.Entity.Dead || client.Entity.ContainFlag((MsgUpdate.Flags.Dead)) || client.Entity.ContainFlag(MsgUpdate.Flags.Ghost))
                        {
                            return;
                        }
                        
client.Entity.KillCount2 = 0;
                        
client.Entity.SpiritFocus = false;
                        
ushort oldX = client.Entity.X;
                        
ushort oldY = client.Entity.Y;

                        if (
client.Entity.OnCheckGuard)
                        {
                            
client.Entity.OnCheckGuard = false;
                            
client.MessageBox("Unable~to~check!", null, null, 0);
                            
DialyQuestsEffect.CheckCancelGuard(client);
                            
client.Entity.CheckGuardSec = 0;
                        }

                        if (
client.Team == null)
                        {
                            if (
client.Entity.SpookMap != null && client.Entity.MapID == client.Entity.SpookMap.ID && Kernel.GetDistance(client.Entity.X, client.Entity.Y, 36, 24) < 25)
                            {
                                ((
INpc)new NpcSpawn
                                
{
                                    
UID = 8798,
                                    
Mesh = 7610,
                                    
Type = Enums.NpcType.Talker,
                                    
X = 36,
                                    
Y = 24,
                                    
MapID = client.Entity.MapID
                                
}).SendSpawn(client);

                                ((
INpc)new NpcSpawn
                                
{
                                    
UID = 8308,
                                    
Mesh = 2507,
                                    
Type = Enums.NpcType.Talker,
                                    
X = 25,
                                    
Y = 30,
                                    
MapID = client.Entity.MapID
                                
}).SendSpawn(client);
                            }
                        }
                        else
                        {
                            if (
client.Team.SpookMap != null && client.Entity.MapID == client.Team.SpookMap.ID && Kernel.GetDistance(client.Entity.X, client.Entity.Y, 36, 24) < 25)
                            {
                                ((
INpc)new NpcSpawn
                                
{
                                    
UID = 8798,
                                    
Mesh = 7610,
                                    
Type = Enums.NpcType.Talker,
                                    
X = 36,
                                    
Y = 24,
                                    
MapID = client.Entity.MapID
                                
}).SendSpawn(client);

                                ((
INpc)new NpcSpawn
                                
{
                                    
UID = 8308,
                                    
Mesh = 2507,
                                    
Type = Enums.NpcType.Talker,
                                    
X = 25,
                                    
Y = 30,
                                    
MapID = client.Entity.MapID
                                
}).SendSpawn(client);
                            }
                        }
                        if (
client.Entity.MapID == 3846 && Kernel.SpawnNemesis2)
                        {
                            foreach (
INpc Npc in client.Map.Npcs.Values)
                            {
                                if (
Npc.MapID == 3846 && (Npc.UID == 3080) && Kernel.GetDistance(client.Entity.X, client.Entity.Y, Npc.X, Npc.Y) < 17)
                                {
                                    
Npc.SendSpawn(client);
                                }
                            }
                        }
                        if (
client.Entity.MapID == 1927 && Kernel.SpawnBanshee2)
                        {
                            foreach (
INpc Npc in client.Map.Npcs.Values)
                            {
                                if (
Npc.MapID == 1927 && (Npc.UID == 2999) && Kernel.GetDistance(client.Entity.X, client.Entity.Y, Npc.X, Npc.Y) < 17)
                                {
                                    
Npc.SendSpawn(client);
                                }
                            }
                        }
                        
client.Entity.Action = Enums.ConquerAction.None;
                        
client.Mining = false;
                        if (
client.Entity.ContainFlag(MsgUpdate.Flags.CastPray))
                        {
                            
client.Entity.RemoveFlag(MsgUpdate.Flags.CastPray);
                            foreach (var 
Client in client.Prayers)
                            {
                                if (
Client.Entity.ContainFlag(MsgUpdate.Flags.Praying))
                                {
                                    
Client.Entity.RemoveFlag(MsgUpdate.Flags.Praying);
                                }
                            }
                            
client.Prayers.Clear();
                        }
                        if (
client.Entity.ContainFlag(MsgUpdate.Flags.Praying))
                        {
                            
client.Entity.RemoveFlag(MsgUpdate.Flags.Praying);
                            
client.PrayLead = null;
                        }
                        
Time32 Now = Time32.Now;
                        
client.Attackable = true;
                        if (
client.Entity.AttackPacket != null)
                        {
                            
client.Entity.AttackPacket = null;
                        }
                        if (
client.Entity.Dead)
                        {
                            if (
Now > client.Entity.DeathStamp.AddSeconds(4))
                            {
                                
Console.WriteLine("Disconnected Jump");
                                
client.Disconnect();
                                return;
                            }
                        }
                        
ushort new_X = (ushort)Info.NewX;
                        
ushort new_Y = (ushort)Info.NewY;
                        if (
client.lastJumpDistance == 0) goto Jump;
                        if (
client.Entity.ContainFlag(MsgUpdate.Flags.Ride))
                        {
                            
int distance = Kernel.GetDistance(new_X, new_Y, client.Entity.X, client.Entity.Y);
                            
ushort take = (ushort)(1.5F * (distance / 2));
                            if (
client.Entity.Vigor >= take)
                            {
                                
client.Entity.Vigor -= take;
                                
ServerTime time = new ServerTime();
                                
time.Type = (uint)2;
                                
time.Year = (uint)client.Entity.Vigor;
                                
client.Send(Kernel.FinalizeProtoBuf(time, Game.GamePackets.ServerInfo));
                            }
                        }
                        
client.LastJumpTime = (int)Kernel.maxJumpTime(client.lastJumpDistance);
                        
int a1 = Now.GetHashCode() - client.lastJumpTime.GetHashCode();
                        
int a2 = Info.TimeStamp.GetHashCode() - client.lastClientJumpTime.GetHashCode();
                        
bool DOO = false;
                        if (
a2 - a1 > 1000) DOO = true;
                        if (
Now < client.lastJumpTime.AddMilliseconds(client.LastJumpTime))
                        {
                            
bool doDisconnect = false;
                            if (
client.Entity.Transformed)
                                if (
client.Entity.TransformationID != 207 && client.Entity.TransformationID != 267)
                                    
doDisconnect = true;
                            if (
client.Entity.Transformed && doDisconnect)
                            {
                                
//client.Entity.Shift(client.Entity.X, client.Entity.Y);
                                //return;
                            
}
                            if (
client.Entity.Transformed && !doDisconnect)
                            {
                                goto 
Jump;
                            }
                            if (!
client.Entity.OnCyclone() && !client.Entity.ContainFlag(MsgUpdate.Flags.Ride) && !DOO)
                            {
                                
//Speedhack detected
                                //client.Entity.Shift(client.Entity.X, client.Entity.Y);
                                //client.Send(new Message("You have been shifted back . speed hack detected or just lag.", Message.Tip));
                                //return;

                            
}
                            else if (
client.Entity.ContainFlag(MsgUpdate.Flags.Ride))
                            {
                                
int time = (int)Kernel.maxJumpTime(client.lastJumpDistance);
                                
int speedprc = Database.DataHolder.SteedSpeed(client.Equipment.TryGetItem(ConquerItem.Steed).Plus);
                                if (
speedprc != 0)
                                {
                                    if (
Now < client.lastJumpTime.AddMilliseconds(time - (time * speedprc / 100)))
                                    {
                                        
//client.Entity.Shift(client.Entity.X, client.Entity.Y);
                                        //return;
                                    
}
                                }
                                else
                                {
                                    
//client.Entity.Shift(client.Entity.X, client.Entity.Y);
                                    //return;
                                
}
                            }
                        }
                    
Jump:
                        
client.lastJumpDistance = Kernel.GetDistance(new_X, new_Y, client.Entity.X, client.Entity.Y);
                        
client.lastClientJumpTime = Time32.Now;
                        
client.lastJumpTime = Now;
                        
Game.Map Map = client.Map;
                        if (
Map != null)
                        {
                            if (
Map.Floor[new_X, new_Y, Game.MapObjectType.Entity, null])
                            {
                                if (
Kernel.GetDistance(new_X, new_Y, client.Entity.X, client.Entity.Y) <= 20)
                                {
                                    
client.Entity.Action = Game.Enums.ConquerAction.Jump;
                                    
client.Entity.Facing = Kernel.GetAngle((ushort)Info.wParam1, (ushort)Info.wParam2, (ushort)new_X, (ushort)new_Y);
                                    
client.Entity.PX = client.Entity.X;
                                    
client.Entity.PY = client.Entity.Y;
                                    
client.Entity.X = new_X;
                                    
client.Entity.Y = new_Y;
                                    if (
client.Entity.MapID == MsgCaptureTheFlag.MapID)
                                        
PacketHandler.CheckForFlag(client);
                                    foreach (
Interfaces.IMapObject obj in client.Screen.Objects)
                                    {
                                        if (
obj == null) continue;
                                        if (
obj.UID != client.Entity.UID)
                                        {
                                            if (
obj.MapObjType == Game.MapObjectType.Entity)
                                            {
                                                
GameState client2 = obj.Owner as GameState;
                                                
client2.Send(SendPacket(Info));
                                            }
                                        }
                                    }
                                    
client.Send(SendPacket(Info));
                                    
client.Screen.Reload(SendPacket(Info));
                                    
//if (client.Entity.InteractionInProgress && client.Entity.InteractionSet)
                                    //{
                                    //    if (client.Entity.Body == 1005 || client.Entity.Body == 1006)
                                    //    {
                                    //        if (Kernel.GamePool.ContainsKey(client.Entity.InteractionWith))
                                    //        {
                                    //            Client.GameState ch = Kernel.GamePool[client.Entity.InteractionWith];
                                    //            New_Thor_S_B_Mohamed_Hossam.Network.GamePackets.Data general = new New_Thor_S_B_Mohamed_Hossam.Network.GamePackets.Data(true);
                                    //            general.UID = ch.Entity.UID;
                                    //            general.wParam1 = new_X;
                                    //            general.wParam2 = new_Y;
                                    //            general.ID = 0x9c;
                                    //            ch.Send(general.ToArray());
                                    //            ch.Entity.Action = Game.Enums.ConquerAction.Jump;
                                    //            ch.Entity.X = new_X;
                                    //            ch.Entity.Y = new_Y;
                                    //            ch.Entity.Facing = Kernel.GetAngle(ch.Entity.X, ch.Entity.Y, new_X, new_Y);
                                    //            ch.SendScreen(generalData, true);
                                    //            ch.Screen.Reload(general);
                                    //            client.SendScreen(generalData, true);
                                    //            client.Screen.Reload(general);
                                    //        }
                                    //    }
                                    //}
                                
}
                                else
                                {
                                    
client.Disconnect();
                                }
                            }
                            else
                            {
                                if (
client.Entity.Mode == Game.Enums.Mode.None)
                                {
                                    
client.Entity.Teleport(client.Map.ID, client.Entity.X, client.Entity.Y);
                                }
                            }
                        }
                        else
                        {
                            if (
Kernel.GetDistance(new_X, new_Y, client.Entity.X, client.Entity.Y) <= 20)
                            {
                                
client.Entity.Action = Game.Enums.ConquerAction.Jump;
                                
client.Entity.Facing = Kernel.GetAngle((ushort)Info.wParam1, (ushort)Info.wParam2, (ushort)new_X, (ushort)new_Y);
                                
client.Entity.X = new_X;
                                
client.Entity.Y = new_Y;
                                foreach (
Interfaces.IMapObject obj in client.Screen.Objects)
                                {
                                    if (
obj == null) continue;
                                    if (
obj.UID != client.Entity.UID)
                                    {
                                        if (
obj.MapObjType == Game.MapObjectType.Entity)
                                        {
                                            
GameState client2 = obj.Owner as GameState;
                                            
client2.Send(SendPacket(Info));
                                        }
                                    }
                                }
                                
client.Send(SendPacket(Info));
                                
client.Screen.Reload(SendPacket(Info));
                            }
                            else
                            {
                                
client.Disconnect();
                            }
                        }
                        if (
client.Map.BaseID == 1038 && (New_Thor_S_B_Mohamed_Hossam.Game.GuildWar.IsWar || New_Thor_S_B_Mohamed_Hossam.Game.SuperGuildWar.IsWar))
                        {

                            
New_Thor_S_B_Mohamed_Hossam.Game.Calculations.IsBreaking(client, oldX, oldY);
                        }
                        if (!
client.Entity.HasMagicDefender)
                        {
                            if (
client.Team != null)
                            {
                                var 
owners = client.Team.Teammates.Where(x => x.Entity.MagicDefenderOwner);
                                if (
owners != null)
                                {
                                    foreach (var 
owner in owners)
                                    {
                                        if (
Kernel.GetDistance(client.Entity.X, client.Entity.Y, owner.Entity.X, owner.Entity.Y) <= 4)
                                        {
                                            
client.Entity.HasMagicDefender = true;
                                            
client.Entity.MagicDefenderStamp = Time32.Now;
                                            
client.Entity.MagicDefenderSecs = (byte)(owner.Entity.MagicDefenderStamp.AddSeconds(owner.Entity.MagicDefenderSecs) - owner.Entity.MagicDefenderStamp).AllSeconds();
                                            
client.Entity.AddFlag(Game.MsgServer.MsgUpdate.Flags.MagicDefender, 60, true);
                                            
using (var rec = new ServerSockets.RecycledPacket())
                                            {
                                                var 
stream = rec.GetStream();
                                                
Game.MsgServer.MsgUpdate upgrade = new Game.MsgServer.MsgUpdate(stream, client.Entity.UID, 1);
                                                
//upgrade.UID = client.Entity.UID;
                                                
upgrade.Append(stream, Game.MsgServer.MsgUpdate.DataType.AzureShield, 128, client.Entity.MagicDefenderSecs, 0, 0);
                                                
client.Send(stream);
                                                
//client.Send(upgrade.ToArray());
                                            
}
                                            break;
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            
client.Entity.RemoveMagicDefender();
                        }
                        
Database.EntityTable.UpdateCored(client);
                        
client.Entity.SpellStamp = Time32.Now.AddSeconds(-1);

                        break;
                    }
                case 
UnknownEntity:
                    {
                        
#region UnknownEntity
                        
Client.GameState pClient = null;
                        if (
Kernel.GamePool.TryGetValue(Info.dwParam, out pClient))
                        {
                            if (
Kernel.GetDistance(pClient.Entity.X, pClient.Entity.Y, client.Entity.X, client.Entity.Y) <= Constants.pScreenDistance && client.Map.ID == pClient.Map.ID)
                            {
                                if (
pClient.Guild != null)
                                    
pClient.Guild.SendName(client);
                                if (
client.Guild != null)
                                    
client.Guild.SendName(pClient);
                                if (
pClient.Entity.UID != client.Entity.UID)
                                {
                                    if (
pClient.Map.ID == client.Map.ID)
                                    {
                                        if (
pClient.Map.BaseID == 700 && pClient.Map.ID != 700)
                                        {
                                            if (
client.InQualifier())
                                            {
                                                if (
pClient.InQualifier())
                                                {
                                                    
client.Entity.SendSpawn(pClient);
                                                    
pClient.Entity.SendSpawn(client);
                                                    if (
pClient.Guild != null)
                                                        
client.Entity.SendSpawn(pClient, false);
                                                    if (
client.Guild != null)
                                                        
pClient.Entity.SendSpawn(client, false);
                                                }
                                                else
                                                {
                                                    
client.Entity.SendSpawn(pClient);

                                                    if (
pClient.Guild != null)
                                                        
client.Entity.SendSpawn(pClient, false);
                                                    
client.Screen.Add(pClient.Entity);
                                                }
                                            }
                                            else
                                            {
                                                if (
pClient.InQualifier())
                                                {
                                                    
pClient.Entity.SendSpawn(client);
                                                    if (
client.Guild != null)
                                                        
pClient.Entity.SendSpawn(client, false);
                                                    
pClient.Screen.Add(client.Entity);
                                                }
                                                else
                                                {
                                                    
client.Entity.SendSpawn(pClient, false);
                                                    
pClient.Entity.SendSpawn(client, false);
                                                }
                                            }
                                        }
                                        else
                                        {
                                            
client.Entity.SendSpawn(pClient, false);
                                            
pClient.Entity.SendSpawn(client, false);
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            
Game.Entity monster = null;
                            if (
client.Map.Entities.TryGetValue(Info.dwParam, out monster))
                            {
                                if (
Kernel.GetDistance(monster.X, monster.Y, client.Entity.X, client.Entity.Y) <= Constants.pScreenDistance)
                                {
                                    
monster.SendSpawn(client, false);
                                }
                            }
                            
//if (client.Map.Companions.TryGetValue(gdwParam, out monster))
                            //{
                            //    if (Kernel.GetDistance(monster.X, monster.Y, client.Entity.X, client.Entity.Y) <= Constants.pScreenDistance)
                            //    {
                            //        monster.SendSpawn(client, false);
                            //    }
                            //}
                        
}
                        
#endregion
                        
break;
                    }
                case 
ChangeFace:
                    {
                        if (
client.Entity.Money >= 500)
                        {
                            
uint newface = Info.dwParam;
                            if (
client.Entity.Body > 2000)
                            {
                                
newface = newface < 200 ? newface + 200 : newface;
                                
client.Entity.Face = (ushort)newface;
                            }
                            else
                            {
                                
newface = newface > 200 ? newface - 200 : newface;
                                
client.Entity.Face = (ushort)newface;
                            }
                        }
                        break;
                    }
                case 
ObserveEquipment:
                case 
ObserveEquipment2:
                case 
ObserveKnownPerson:
                    {
                        if (!
client.Entity.InSkillMatch())
                        {
                            
double power = 1.5;
                            
client.Entity.EquipmentColor = (uint)power;
                            
//  client.Entity.BattlePower /= 2;


                            
if (PacketHandler.NulledClient(client))
                                return;

                            
GameState Observer, Observee;
                            if (
Kernel.GamePool.TryGetValue(Info.UID, out Observer) && Kernel.GamePool.TryGetValue(Info.dwParam, out Observee))
                            {
                                if (
Info.ID != 117)
                                {
                                    
Observee.Entity.Class = Observee.Entity.Class;
                                    
Observer.Send(Observee.Entity.PlayerProto(Observee.Entity, 1));
                                    
WindowsStats WS = new WindowsStats(Observee);
                                    
WS.Send(Observer);
                                }
                                for (
byte Position = 1; (int)Position <= 29; ++Position)
                                {
                                    
ConquerItem i = Observee.Equipment.TryGetItem(Position);
                                    if (
i != null && i.IsWorn)
                                    {
                                        
BoothItem boothItem = new BoothItem();
                                        
boothItem.CostType = (ushort)BoothItem.CostTypes.ViewEquip;
                                        
boothItem.Identifier = Observee.Entity.UID;
                                        
boothItem.Position = (PacketHandler.Positions)((uint)Position);
                                        
boothItem.ParseItem(i);
                                        
Observer.Send((IPacket)boothItem);
                                        
i.SendExtras(client);
                                    }
                                }
                                foreach (var 
it in Observee.Entity.RuneItem.Values.Where(x => x.Position == 101 || x.Position == 102 || x.Position == 103 || x.Position == 104 || x.Position == 105))
                                {
                                    
BoothItem boothItem = new BoothItem();
                                    
boothItem.CostType = (ushort)(BoothItem.CostTypes)7;
                                    
boothItem.Identifier = Observee.Entity.UID;
                                    
boothItem.Position = (New_Thor_S_B_Mohamed_Hossam.Network.PacketHandler.Positions)it.Position;
                                    
boothItem.ParseItem(it);
                                    
Observer.Send((IPacket)boothItem);
                                }
                                
_String packet2 = new _String(true);
                                
packet2.Type = 16;
                                
packet2.UID = client.Entity.UID;
                                
packet2.TextsCount = 1;
                                
packet2.Texts = new List<string>() { Observee.Entity.Spouse };
                                
Observer.Send(packet2);
                                if (
Info.ID == 117)
                                {
                                    
packet2.Type = 10;
                                    
Observer.Send(packet);
                                }
                                
Observer.Send(SendPacket(Info));
                                
Observee.Entity.Class = Observee.Entity.Class;
                                
Observee.Send(new Message(Observer.Entity.Name + " is checking your equipment.", Color.Red, Message.Whisper));
                            }
                        }
                        break;
                    }
                case 
ViewEnemyInfo:
                    {
                        if (
client.Enemy.ContainsKey(Info.dwParam))
                        {
                            if (
client.Enemy[Info.dwParam].IsOnline)
                            {
                                
KnownPersonInfo info = new KnownPersonInfo(true);
                                
info.Fill(client.Enemy[Info.dwParam], true, false);
                                if (
client.Enemy[Info.dwParam].Client.Guild != null)
                                    
client.Enemy[Info.dwParam].Client.Guild.SendName(client);
                                
client.Send(info);
                            }
                        }
                        break;
                    }
                case 
ViewFriendInfo:
                    {
                        if (
client.Friends.ContainsKey(Info.dwParam))
                        {
                            if (
client.Friends[Info.dwParam].IsOnline)
                            {
                                
KnownPersonInfo info = new KnownPersonInfo(true);
                                
info.Fill(client.Friends[Info.dwParam], false, false);
                                if (
client.Friends[Info.dwParam].Client.Guild != null)
                                    
client.Friends[Info.dwParam].Client.Guild.SendName(client);
                                
client.Send(info);
                            }
                        }
                        break;
                    }
                case 
ViewPartnerInfo:
                    {
                        if (
client.Partners.ContainsKey(Info.dwParam))
                        {
                            if (
client.Partners[Info.dwParam].IsOnline)
                            {
                                
TradePartnerInfo info = new TradePartnerInfo(true);
                                
info.Fill(client.Partners[Info.dwParam]);
                                if (
client.Partners[Info.dwParam].Client.Guild != null)
                                    
client.Partners[Info.dwParam].Client.Guild.SendName(client);
                                
client.Send(info);
                            }
                        }
                        break;
                    }
                case 
EndFly:
                    
client.Entity.RemoveFlag(MsgUpdate.Flags.Fly);
                    
client.Entity.RemoveFlag(MsgUpdate.Flags.Infinity);
                    break;
                case 
EndTransformation:
                    
client.Entity.Untransform();
                    break;
                case 
XPListEnd:
                case Die:
                    break;
                case 
OwnBooth:
                    {
                        
client.Booth = new Game.ConquerStructures.Booth(client);
                        
client.Send(new MapStatus() { BaseID = client.Map.BaseID, ID = client.Map.ID, Status = Database.MapsTable.MapInformations[1036].Status });
                        break;
                    }
                case 
Away:
                    {
                        
//  client.Entity.SetAway(packet[8] == 1);
                        //  client.SendScreen(gData, true);
                        
if (client.Entity.Away == 0)
                        {
                            
client.Entity.Away = 1;
                        }
                        else
                        {
                            
client.Entity.Away = 0;
                        }
                        
client.SendScreenSpawn(client.Entity, false);
                        break;
                    }
                case 
DeleteCharacter:
                    {
                        if ((
client.WarehousePW == 0 || client.WarehousePW == 0 && Info.dwParam == 0) || (client.WarehousePW == Info.dwParam))
                        {
                            
Database.MySqlCommand cmd = new Database.MySqlCommand(Database.MySqlCommandType.SELECT).Select("entities").Where("UID", client.Entity.UID);//debug and test!
                            
Database.MySqlReader reader = new Database.MySqlReader(cmd);
                            if (!
reader.Read())//wait
                            
{
                                
Database.MySqlCommand cmd2 = new Database.MySqlCommand(Database.MySqlCommandType.DELETE);
                                
cmd2.Delete("entities", "Name", client.Entity.Name).Where("UID", client.Entity.UID).Execute();
                            }
                            
client.Account.EntityID = 0;
                            
client.Account.Save();
                            
client.Disconnect();
                        }
                        break;
                    }
                case 
TeamSearchForMember:
                    {
                        if (
client.Team != null)
                        {
                            
Client.GameState Client = null;
                            if (!
client.Team.IsTeammate(Info.UID))
                                return;
                            if (
Kernel.GamePool.TryGetValue(Info.UID, out Client))
                            {
                                
Info.wParam1 = Client.Entity.X;
                                
Info.wParam2 = Client.Entity.Y;
                                
client.Send(SendPacket(Info));
                            }
                        }
                        break;
                    }

                default:
                    
client.Send(packet);
                    break;
            }
        }
        public static 
byte[] SendPacket(MsgActionProto obj)
        {
            
using (var memoryStream = new System.IO.MemoryStream())
            {
                
Serializer.SerializeWithLengthPrefix(memoryStream, obj, PrefixStyle.Fixed32);
                var 
pkt = new byte[8 + memoryStream.Length];
                
memoryStream.ToArray().CopyTo(pkt, 0);
                
Writer.Write((ushort)memoryStream.Length, 0, pkt);
                
Writer.Write((ushort)10010, 2, pkt);
                return 
pkt;
            }
        }
    }
} 

بعدها ادخل عليAuthClient.cs
و بدله بده
كود PHP:

using System;
using Real_Conquer.Network;
using System.Net.Sockets;
using Real_Conquer.Network.Sockets;
using Real_Conquer.Network.Cryptography;

namespace 
Real_Conquer.Client
{
    public class 
AuthClient
    
{
        private 
ClientWrapper _socket;
        public 
Network.AuthPackets.Authentication Info;
        public 
Database.AccountTable Account;
        public 
Network.Cryptography.AuthCryptography Cryptographer;
        public 
int PasswordSeed;
        public 
ConcurrentPacketQueue Queue;
        public static 
uint nextID = 0;
        public 
AuthClient(ClientWrapper socket)
        {
            
Queue = new ConcurrentPacketQueue(0);
            
_socket = socket;
        }
        public 
void Send(byte[] buffer)
        {
            
byte[] _buffer = new byte[buffer.Length];
            
Buffer.BlockCopy(buffer, 0, _buffer, 0, buffer.Length);
            
Cryptographer.Encrypt(_buffer);
            
_socket.Send(_buffer);
        }
        public 
void Send(Interfaces.IPacket buffer)
        {
            
Send(buffer.ToArray());
        }
        
// public static uint nextID = 0;

    
}
} 

و ادخل علي
LoaderEncryption.cs
و بدله ب ده

كود PHP:

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

namespace 
Real_Conquer.Network.Cryptography
{
    public class 
LoaderEncryption
    
{
        private static 
byte[] Key = { 12, 12, 215, 10, 20, 11, 60, 193, 11, 96, 53, 157, 71, 37, 150, 225, 86, 224, 178, 184, 230, 147, 79, 194, 160, 0, 99, 239, 218, 134, 179, 13, 247, 155, 237, 245, 165, 245, 128, 144 };
        public static 
void Encrypt(byte[] arr)
        {

            
int length = Key.Length;
            for (
int i = 0; i < arr.Length; i++)
            {

                
arr[i] ^= Key[i % length];
                
arr[i] ^= Key[(i + 1) % length];

            }

        }
        public static 
void Decrypt(byte[] arr, int size)
        {
            
int length = Key.Length;
            for (
int i = 0; i < size; i++)
            {

                
arr[i] ^= Key[(i + 1) % length];
                
arr[i] ^= Key[i % length];

            }
        }
    }
} 

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

ودا فيدي توضيحي علي اليوتيوب






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








Kemoz 2019-04-23 04:59 PM

بكتات البروتو ولا باكتات الدخول بس

nova 2019-04-23 05:45 PM

شكرا جدا عاااااااش
 
رشكرا جدا عاااااااش

kaka1az 2019-04-23 06:05 PM

عاااااااااااااااااااااااا ااااااااااااااش

محمد رجب (سداح) 2019-04-23 06:10 PM

عاش يسطي و نزل السورس بالمره

SHARO5AN 2019-04-23 06:33 PM

بكيتات الدخول الاصدار 6858 ال هو كلينت سورس ثور ال نزلو احمد الاسيوطي يعني البكيتات دي تشغلك السورس تمام

zonfor 2019-04-23 10:26 PM

عاااش جدااااا

SHARO5AN 2019-04-24 09:09 AM

اقتباس:

المشاركة الأصلية كتبت بواسطة محمد رجب (سداح) (المشاركة 268)
عاش يسطي و نزل السورس بالمره

هينزل بس كمان شويه يا محمد رجب

SHARO5AN 2019-04-25 10:21 AM

وبالتوفيق للجميع

ALz3em 2019-04-25 10:00 PM

تسلم
أستمر


الساعة الآن 08:42 PM

مرحبا بكم في منتدي اكواد لتطوير الالعاب
new notificatio by 9adq_ala7sas