أهلا وسهلا بك زائرنا الكريم في فوكس تهيس، لكي تتمكن من المشاركة ومشاهدة جميع أقسام المنتدى وكافة الميزات ، يجب عليك إنشاء حساب جديد بالتسجيل بالضغط هنا أو تسجيل الدخول اضغط هنا إذا كنت عضواً .

Pineapple


Pineapple








دمج السرفرات وعمل حروب بينهم ServerTransferOfficer

السلام عليكم ورحمه الله وبركاته :) موضعنا عن دمج السرفرات والحروب لو عامل سرفرات في لعبتك فا ده اكيد هينفعك اول الاكواد ..



08-12-2019 07:15 صباحا
معلومات الكاتب ▼
تاريخ الإنضمام : 18-10-2019
رقم العضوية : 1807
المشاركات : 21
الجنس : ذكر
تاريخ الميلاد : 19-3-1990
الدعوات : 1
قوة السمعة : 10
offline

Pineapple


Pineapple


السلام عليكم ورحمه الله وبركاته :)

موضعنا عن دمج السرفرات والحروب لو عامل سرفرات في لعبتك فا ده اكيد هينفعك اول الاكواد دي ترجع لي رايدر وشكر خاص طبعا :emoji19::emoji40::emoji21::emoji21:

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

هنعمل كلاس جديد باسم ServerTransferOfficer وهنضيف الاكواد دي جوه


public unsafe class CMsgPlayerTransfer 
    { 
        public uint ConquerPoints = 2999; 
        public class Mode 
        { 
            public static uint 
                IsOnline, 
                cantrans, 
                WrathOfEmperor, 
                WarLord, 
                Perfection, 
                EpicWarrior, 
                Backfire_EU, 
                SkyFlame, 
                EveOfWar_EU, 
                AuroraLotus, 
                Conquer13_EU, 
                TempestWings_EU, 
                Dark, 
                Mercury, 
                Saturn, 
                KingOfKings, 
                NetDraogn; 
        } 
        public static bool DTrans = false; 
        public static void CheckServer(string server, GamePlayer client) 
        { 
            using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("accounts").Where("EntityID", client.Player.UID)) 
            using (var reader = new MySqlReader(cmd)) 
            { 
                if (reader.Read()) 


لرؤية الروابط والمرفقات عليك الرد على الموضوع




                { 
                    Mode.cantrans = reader.ReadUInt32("CanTrans"); 
                } 
            } 
            if (Mode.cantrans >= 99999) 
            { 
                client.MessageBox("Oooh o.o ! you already transfered (100) times so you can`t transfer more for times.", null, null, 0); 
                return; 
            } 
            else if (Constants.ServerName == server) 
            { 
                client.MessageBox("Ooops O.o ! you already in Server " + server + ".", null, null, 0); 
                return; 
            } 
            else 
            { 
                client.MessageBox("Are you sure you want to transfer to " + server + " Server you have [" + (100 - Mode.cantrans) + "] times to transfer", 
                 (p) => 
                 { 
                     if (!client.WarehouseOpen && client.WarehousePW != 0) 
                     { 
                         client.MessageBox("  Make sure you have entered a correct secondary password in the warehouse!", null, null, 0); 
                         return; 
                     } 
                     else 
                     { 
                         if (client.Player.ConquerPoints > 2999) 
                         { 
                             using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", server)) 
                             using (var reader = new MySqlReader(cmd)) 
                             { 
                                 if (reader.Read()) 
                                 { 
                                     Mode.IsOnline = reader.ReadUInt32("Online"); 
                                 } 
                             } 
                             if (Mode.IsOnline == 1) 
                             { 
                                 using (MySqlCommand cmd = new MySqlCommand(MySqlCommandType.UPDATE)) 
                                     cmd.Update("accounts").Set("server", server) 
                                         .Where("EntityID", client.Player.UID).Execute(); 
                                 Mode.cantrans++; 
                                 using (MySqlCommand cmd = new MySqlCommand(MySqlCommandType.UPDATE)) 
                                     cmd.Update("accounts").Set("CanTrans", Mode.cantrans) 
                                         .Where("EntityID", client.Player.UID).Execute(); 
                                 client.Player.ConquerPoints -= 2999; 
                                 client.MessageBox("transfer to server " + server + " [Successfully].", null, null, 0); 
                                 DTrans = true; 
                             } 
                             else 
                             { 
                                 client.MessageBox("Sorry Server Connection Failed Try Again Later.", null, null, 0); 
                                 return; 
                             } 
                         } 
                         else 
                         { 
                             client.MessageBox("You don't have " + 2999 + " CPs.", null, null, 0); 
                             return; 
                         } 
                     } 
                 }); 
            } 
        } 
        public static void StatusServers() 
        { 
            #region KingOfKings 
            using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "KingOfKings")) 
            using (var reader = new MySqlReader(cmd)) 
            { 
                if (reader.Read()) 
                { 
                    Mode.KingOfKings = reader.ReadUInt32("Online"); 
                } 
            } 
            #endregion 
            #region Dark 
            using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "Dark")) 
            using (var reader = new MySqlReader(cmd)) 
            { 
                if (reader.Read()) 
                { 
                    Mode.Dark = reader.ReadUInt32("Online"); 
                } 
            } 
            #endregion 
            #region Mercury 
            using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "Mercury")) 
            using (var reader = new MySqlReader(cmd)) 
            { 
                if (reader.Read()) 
                { 
                    Mode.Mercury = reader.ReadUInt32("Online"); 
                } 
            } 
            #endregion 
            #region Saturn 
            using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "Saturn")) 
            using (var reader = new MySqlReader(cmd)) 
            { 
                if (reader.Read()) 
                { 
                    Mode.Saturn = reader.ReadUInt32("Online"); 
                } 
            } 
            #endregion 
            #region Conquer13_EU 
            using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "Conquer13_EU")) 
            using (var reader = new MySqlReader(cmd)) 
            { 
                if (reader.Read()) 
                { 
                    Mode.Conquer13_EU = reader.ReadUInt32("Online"); 
                } 
            } 
            #endregion 
            #region TempestWings_EU 
            using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "TempestWings_EU")) 
            using (var reader = new MySqlReader(cmd)) 
            { 
                if (reader.Read()) 
                { 
                    Mode.TempestWings_EU = reader.ReadUInt32("Online"); 
                } 
            } 
            #endregion 
            #region WrathOfEmperor 
            using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "WrathOfEmperor")) 
            using (var reader = new MySqlReader(cmd)) 
            { 
                if (reader.Read()) 
                { 
                    Mode.WrathOfEmperor = reader.ReadUInt32("Online"); 
                } 
            } 
            #endregion 
            #region SkyFlame 
            using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "SkyFlame")) 
            using (var reader = new MySqlReader(cmd)) 
            { 
                if (reader.Read()) 
                { 
                    Mode.SkyFlame = reader.ReadUInt32("Online"); 
                } 
            } 
            #endregion SkyFlame 
            #region AuroraLotus 
            using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "AuroraLotus")) 
            using (var reader = new MySqlReader(cmd)) 
            { 
                if (reader.Read()) 
                { 
                    Mode.AuroraLotus = reader.ReadUInt32("Online"); 
                } 
            } 
            #endregion AuroraLotus 
            #region Conquer13_EU 
            using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "Conquer13_EU")) 
            using (var reader = new MySqlReader(cmd)) 
            { 
                if (reader.Read()) 
                { 
                    Mode.Conquer13_EU = reader.ReadUInt32("Online"); 
                } 
            } 
            #endregion WrathOfEmperor 
            #region Perfection 
            using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "Perfection")) 
            using (var reader = new MySqlReader(cmd)) 
            { 
                if (reader.Read()) 
                { 
                    Mode.Perfection = reader.ReadUInt32("Online"); 
                } 
            } 
            #endregion Perfection 
            #region EpicWarrior 
            using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "EpicWarrior")) 
            using (var reader = new MySqlReader(cmd)) 
            { 
                if (reader.Read()) 
                { 
                    Mode.EpicWarrior = reader.ReadUInt32("Online"); 
                } 
            } 
            #endregion EpicWarrior 
            #region Backfire_EU 
            using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "Backfire_EU")) 
            using (var reader = new MySqlReader(cmd)) 
            { 
                if (reader.Read()) 
                { 
                    Mode.Backfire_EU = reader.ReadUInt32("Online"); 
                } 
            } 
            #endregion Backfire_EU 
            #region EveOfWar_EU 
            using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "EveOfWar_EU")) 
            using (var reader = new MySqlReader(cmd)) 
            { 
                if (reader.Read()) 
                { 
                    Mode.EveOfWar_EU = reader.ReadUInt32("Online"); 
                } 
            } 
            #endregion EveOfWar_EU 
            #region WarLord 
            using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "WarLord")) 
            using (var reader = new MySqlReader(cmd)) 
            { 
                if (reader.Read()) 
                { 
                    Mode.WarLord = reader.ReadUInt32("Online"); 
                } 
            } 
            #endregion WarLord 
        } 
    }

نرجع تاااني هتروح ع فايل Datab*ase هتلقي عندك كلاس اسمه

: DataHolder  


هتبحث علي

public static MYSQLCONNECTION MySqlConnection  


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


public static string ConnectionString2; 
        public static void CreateConnection_ACC_SERVER() 
        { 
            var list = System.Configuration.ConfigurationManager.ConnectionStrings; 
            ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings[list.Count - 1].ConnectionString; 


لرؤية الروابط والمرفقات عليك الرد على الموضوع




        } 
        public static MYSQLCONNECTION MySqlConnection 
        { 
            get 
            { 
                MYSQLCONNECTION conn = new MYSQLCONNECTION(); 
                conn.ConnectionString = ConnectionString2; 
                return conn; 
            } 
        } 
        public static CONNECTION_ACC_SERVER ACC_SERVER 
        { 
            get 
            { 
                CONNECTION_ACC_SERVER conn = new CONNECTION_ACC_SERVER(); 
                conn.ConnectionString = ConnectionString; 
                return conn; 
            } 
        }

عشان الايرور اللي هيطلع معاك هضيف ده عندل ف اول الكلاس. [/CENTER

using CONNECTION_ACC_SERVER = MySql.Data.MySqlClient.MySqlConnection; 


[CENTER]كدة فاضل موقوع الاك سيرفر 
ف Datab*ase ضيف الفايل دة عندك

لرؤية الروابط والمرفقات عليك الرد على الموضوع

AccServer 
تحميل الاك سيرفر قاعدة من هنا :

لرؤية الروابط والمرفقات عليك الرد على الموضوع

لقاعده بتاعت الAccServer اهم حاجة في الموضوع كله 
دلوقتي انت هتلقي ف الاك سيرفر الTable في القاعدة القديم هتسمحه من الاك سيرفر وبعدين هتنقل اللي ف الاقاعدة القديمة ف الاك سيرفر وهتمسحه من القديمة تمام 

مثلا في الاك سيرفر Table اكوانت ! وفي القديمه نفس الTable 

هتمسحها من الاك سيرفر وهضيف القديمه بدل اللي كانت في الاك سيرفر تمام.. 

لو بحثت علي كل تيبول في السورس هتلقي فيها السطر دة!


using (var cmd = new MySqlCommand(MySqlCommandType.UPDATE)) 


وبعدين هتغير


AccServer.Database.MySqlCommandType  

يعني بدل MySqlCommand
هتعملها

AccServer.Database.MySqlCommand  


مثلا زي كدة.


using (var cmd = new AccServer.Database.MySqlCommand(AccServer.Database.MySqlCommandType.SELECT).Select("claimitems").Where("GainerUID", client.Player.UID)) 
            using (var reader = new AccServer.Database.MySqlReader(cmd))


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

اهم حاجة هتروح ع كلاس Program وهتبحث عن :


GameServer.Enable(GamePort, "0.0.0.0"); 


وضيف تحتها السطر دة.
new AccServer.Database.MySqlCommand(AccServer.Database .MySqlCommandType.UPDATE).Update("servers").Set("O nline", 1)
.Where("Name", Constants.ServerName)

بعد كدة هتبحث ع void دة


void AppendConnect 


وبدله بي دة


 public static void AppendConnect(MsgConnect appendConnect, GamePlayer client) 
        { 
            if (client.LoggedIn) 
            { 
                client.Disconnect(true); 
                return; 
            } 
            bool doLogin = false; 
            lock (LoginSyncRoot) 
            { 
                Database.AccountTable Account = new Database.AccountTable(null); 
                { 
                    TransferCipher.Key = Encoding.ASCII.GetBytes("6D1B73DA0250473496C2845F91FA2A42"); 
                    TransferCipher.Salt = Encoding.ASCII.GetBytes("DDA177642131459FBFBD17D9003678A8"); 
                    TransferCipher transferCipher = new TransferCipher("127.0.0.1"); 
                    uint[] decrypted = transferCipher.Decrypt(new uint[] { appendConnect.Identifier, appendConnect.Identifier }); 

                    client.Account = Account; 
                    client.Account.EntityID = appendConnect.Identifier = decrypted[0]; 
                    client.Account.State = (Database.AccountTable.AccountState)(appendConnect.Identifier = decrypted[1]); 
                    client.Account.IP = client.Socket.IP; 
                    using (var cmd = new AccServer.Database.MySqlCommand(AccServer.Database.MySqlCommandType.SELECT).Select("entities") 
                     .Where("UID", client.Account.EntityID)) 
                    using (var reader = new AccServer.Database.MySqlReader(cmd)) 
                    { 
                        if (!reader.Read()) 
                        { 
                            client.Socket.OverrideTiming = true; 
                            client.Send(new Message("NEW_ROLE", "ALLUSERS", System.Drawing.Color.Orange, 
                                GamePackets.Message.Dialog)); 
                            return; 

                        } 
                    } 
                    if (Kernel.DisconnectPool.ContainsKey(Account.EntityID)) 
                    { 
                        client.Send(new Message("Please try again after a minute!", "ALLUSERS", System.Drawing.Color.Orange, GamePackets.Message.Dialog)); 
                        return; 
                    } 
                    VariableVault variables; 
                    Database.EntityVariableTable.Load(client.Account.EntityID, out variables); 
                    client.Variables = variables; 
                    if (client["banhours"] == 0) 
                    { 
                        client["banhours"] = -1; 
                        client["banreason"] = "Infinite time."; 
                        client["banstamp"] = DateTime.Now.AddYears(100); 
                    } 
                    if (Account.State == Database.AccountTable.AccountState.Banned) 
                    { 
                        if (client["banhours"] != -1) 
                        { 
                            DateTime banStamp = client["banstamp"]; 
                            if (DateTime.Now > banStamp.AddDays(((int)client["banhours"]) / 24).AddHours(((int)client["banhours"]) % 24)) 
                                Account.State = Database.AccountTable.AccountState.Player; 
                        } 
                    } 
                    string Message = ""; 
                    if (Account.State == Database.AccountTable.AccountState.Banned) 
                    { 
                        DateTime banStamp = client["banstamp"]; 
                        banStamp = banStamp.AddHours(client["banhours"]); 
                        Message = "You are banned for " + client["banhours"] + " hours [until " + banStamp.ToString("HH:mm MM/dd/yyyy") + "]. Reason: " + client["banreason"]; 
                    } 
                    else if (Account.State == Database.AccountTable.AccountState.NotActivated) 
                        Message = "You cannot login until your account is activated."; 

                    if (Message == string.Empty) 
                    { 
                        GamePlayer aClient = null; 
                        if (Kernel.GamePool.TryGetValue(Account.EntityID, out aClient)) 
                            aClient.Disconnect(); 
                        Kernel.GamePool.Remove(Account.EntityID); 
                        client.Player = new Player(PlayerFlag.Monster, false); 
                        Kernel.GamePool.Add(Account.EntityID, client); 
                        doLogin = true; 
                    } 
                    else 
                    { 
                        client.Send(new Message(Message, "ALLUSERS", System.Drawing.Color.Orange, GamePackets.Message.Dialog)); 
                        Thread.Execute<GamePlayer>((pClient, time) => { pClient.Disconnect(); }, client, 100); 
                    } 
                } 
                if (doLogin) 
                { 
                    DoLogin(client); 
                } 
            } 

        }


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


#region Transfer
DataHolder.CreateConnection_ACC_SERVER();
TransferCipher.Key = Encoding.ASCII.GetBytes("6D1B73DA0250473496C2845F9 1FA2A42");
TransferCipher.Salt = Encoding.ASCII.GetBytes("DDA177642131459FBFBD17D90 03678A8");
#endregion


وهتعمل كلاس جديد اسمه

TransferCipher

وضيف فية دول.


 Last updated on: 2017 From before Ranko */ 
/* Last updated in Project CMsgConquer */ 
/* Copyright © 2015 - 2017 by Ranko */ 

using System; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Collections.Generic; 
using System.Security.Cryptography; 
using System.Runtime.CompilerServices; 

namespace COServer.Network 

    public unsafe sealed class TigerHashAlgorithm 
    { 
        private const int BLOCKSIZE = 64; 
        #region Substitution Boxes 
        public static ulong[] SBOX1 = new ulong[0x100] { 
            0x02AAB17CF7E90C5EUL, 0xAC424B03E243A8ECUL, 0x72CD5BE30DD5FCD3UL, 0x6D019B93F6F97F3AUL,  
            0xCD9978FFD21F9193UL, 0x7573A1C9708029E2UL, 0xB164326B922A83C3UL, 0x46883EEE04915870UL,  
            0xEAACE3057103ECE6UL, 0xC54169B808A3535CUL, 0x4CE754918DDEC47CUL, 0x0AA2F4DFDC0DF40CUL,  
            0x10B76F18A74DBEFAUL, 0xC6CCB6235AD1AB6AUL, 0x13726121572FE2FFUL, 0x1A488C6F199D921EUL,  
            0x4BC9F9F4DA0007CAUL, 0x26F5E6F6E85241C7UL, 0x859079DBEA5947B6UL, 0x4F1885C5C99E8C92UL,  
            0xD78E761EA96F864BUL, 0x8E36428C52B5C17DUL, 0x69CF6827373063C1UL, 0xB607C93D9BB4C56EUL,  
            0x7D820E760E76B5EAUL, 0x645C9CC6F07FDC42UL, 0xBF38A078243342E0UL, 0x5F6B343C9D2E7D04UL,  
            0xF2C28AEB600B0EC6UL, 0x6C0ED85F7254BCACUL, 0x71592281A4DB4FE5UL, 0x1967FA69CE0FED9FUL,  
            0xFD5293F8B96545DBUL, 0xC879E9D7F2A7600BUL, 0x860248920193194EUL, 0xA4F9533B2D9CC0B3UL,  
            0x9053836C15957613UL, 0xDB6DCF8AFC357BF1UL, 0x18BEEA7A7A370F57UL, 0x037117CA50B99066UL,  
            0x6AB30A9774424A35UL, 0xF4E92F02E325249BUL, 0x7739DB07061CCAE1UL, 0xD8F3B49CECA42A05UL,  
            0xBD56BE3F51382F73UL, 0x45FAED5843B0BB28UL, 0x1C813D5C11BF1F83UL, 0x8AF0E4B6D75FA169UL,  
            0x33EE18A487AD9999UL, 0x3C26E8EAB1C94410UL, 0xB510102BC0A822F9UL, 0x141EEF310CE6123BUL,  
            0xFC65B90059DDB154UL, 0xE0158640C5E0E607UL, 0x884E079826C3A3CFUL, 0x930D0D9523C535FDUL,  
            0x35638D754E9A2B00UL, 0x4085FCCF40469DD5UL, 0xC4B17AD28BE23A4CUL, 0xCAB2F0FC6A3E6A2EUL,  
            0x2860971A6B943FCDUL, 0x3DDE6EE212E30446UL, 0x6222F32AE01765AEUL, 0x5D550BB5478308FEUL,  
            0xA9EFA98DA0EDA22AUL, 0xC351A71686C40DA7UL, 0x1105586D9C867C84UL, 0xDCFFEE85FDA22853UL,  
            0xCCFBD0262C5EEF76UL, 0xBAF294CB8990D201UL, 0xE69464F52AFAD975UL, 0x94B013AFDF133E14UL,  
            0x06A7D1A32823C958UL, 0x6F95FE5130F61119UL, 0xD92AB34E462C06C0UL, 0xED7BDE33887C71D2UL,  
            0x79746D6E6518393EUL, 0x5BA419385D713329UL, 0x7C1BA6B948A97564UL, 0x31987C197BFDAC67UL,  
            0xDE6C23C44B053D02UL, 0x581C49FED002D64DUL, 0xDD474D6338261571UL, 0xAA4546C3E473D062UL,  
            0x928FCE349455F860UL, 0x48161BBACAAB94D9UL, 0x63912430770E6F68UL, 0x6EC8A5E602C6641CUL,  
            0x87282515337DDD2BUL, 0x2CDA6B42034B701BUL, 0xB03D37C181CB096DUL, 0xE108438266C71C6FUL,  
            0x2B3180C7EB51B255UL, 0xDF92B82F96C08BBCUL, 0x5C68C8C0A632F3BAUL, 0x5504CC861C3D0556UL,  
            0xABBFA4E55FB26B8FUL, 0x41848B0AB3BACEB4UL, 0xB334A273AA445D32UL, 0xBCA696F0A85AD881UL,  
            0x24F6EC65B528D56CUL, 0x0CE1512E90F4524AUL, 0x4E9DD79D5506D35AUL, 0x258905FAC6CE9779UL,  
            0x2019295B3E109B33UL, 0xF8A9478B73A054CCUL, 0x2924F2F934417EB0UL, 0x3993357D536D1BC4UL,  
            0x38A81AC21DB6FF8BUL, 0x47C4FBF17D6016BFUL, 0x1E0FAADD7667E3F5UL, 0x7ABCFF62938BEB96UL,  
            0xA78DAD948FC179C9UL, 0x8F1F98B72911E50DUL, 0x61E48EAE27121A91UL, 0x4D62F7AD31859808UL,  
            0xECEBA345EF5CEAEBUL, 0xF5CEB25EBC9684CEUL, 0xF633E20CB7F76221UL, 0xA32CDF06AB8293E4UL,  
            0x985A202CA5EE2CA4UL, 0xCF0B8447CC8A8FB1UL, 0x9F765244979859A3UL, 0xA8D516B1A1240017UL,  
            0x0BD7BA3EBB5DC726UL, 0xE54BCA55B86ADB39UL, 0x1D7A3AFD6C478063UL, 0x519EC608E7669EDDUL,  
            0x0E5715A2D149AA23UL, 0x177D4571848FF194UL, 0xEEB55F3241014C22UL, 0x0F5E5CA13A6E2EC2UL,  
            0x8029927B75F5C361UL, 0xAD139FABC3D6E436UL, 0x0D5DF1A94CCF402FUL, 0x3E8BD948BEA5DFC8UL,  
            0xA5A0D357BD3FF77EUL, 0xA2D12E251F74F645UL, 0x66FD9E525E81A082UL, 0x2E0C90CE7F687A49UL,  
            0xC2E8BCBEBA973BC5UL, 0x000001BCE509745FUL, 0x423777BBE6DAB3D6UL, 0xD1661C7EAEF06EB5UL,  
            0xA1781F354DAACFD8UL, 0x2D11284A2B16AFFCUL, 0xF1FC4F67FA891D1FUL, 0x73ECC25DCB920ADAUL,  
            0xAE610C22C2A12651UL, 0x96E0A810D356B78AUL, 0x5A9A381F2FE7870FUL, 0xD5AD62EDE94E5530UL,  
            0xD225E5E8368D1427UL, 0x65977B70C7AF4631UL, 0x99F889B2DE39D74FUL, 0x233F30BF54E1D143UL,  
            0x9A9675D3D9A63C97UL, 0x5470554FF334F9A8UL, 0x166ACB744A4F5688UL, 0x70C74CAAB2E4AEADUL,  
            0xF0D091646F294D12UL, 0x57B82A89684031D1UL, 0xEFD95A5A61BE0B6BUL, 0x2FBD12E969F2F29AUL,  
            0x9BD37013FEFF9FE8UL, 0x3F9B0404D6085A06UL, 0x4940C1F3166CFE15UL, 0x09542C4DCDF3DEFBUL,  
            0xB4C5218385CD5CE3UL, 0xC935B7DC4462A641UL, 0x3417F8A68ED3B63FUL, 0xB80959295B215B40UL,  
            0xF99CDAEF3B8C8572UL, 0x018C0614F8FCB95DUL, 0x1B14ACCD1A3ACDF3UL, 0x84D471F200BB732DUL,  
            0xC1A3110E95E8DA16UL, 0x430A7220BF1A82B8UL, 0xB77E090D39DF210EUL, 0x5EF4BD9F3CD05E9DUL,  
            0x9D4FF6DA7E57A444UL, 0xDA1D60E183D4A5F8UL, 0xB287C38417998E47UL, 0xFE3EDC121BB31886UL,  
            0xC7FE3CCC980CCBEFUL, 0xE46FB590189BFD03UL, 0x3732FD469A4C57DCUL, 0x7EF700A07CF1AD65UL,  
            0x59C64468A31D8859UL, 0x762FB0B4D45B61F6UL, 0x155BAED099047718UL, 0x68755E4C3D50BAA6UL,  
            0xE9214E7F22D8B4DFUL, 0x2ADDBF532EAC95F4UL, 0x32AE3909B4BD0109UL, 0x834DF537B08E3450UL,  
            0xFA209DA84220728DUL, 0x9E691D9B9EFE23F7UL, 0x0446D288C4AE8D7FUL, 0x7B4CC524E169785BUL,  
            0x21D87F0135CA1385UL, 0xCEBB400F137B8AA5UL, 0x272E2B66580796BEUL, 0x3612264125C2B0DEUL,  
            0x057702BDAD1EFBB2UL, 0xD4BABB8EACF84BE9UL, 0x91583139641BC67BUL, 0x8BDC2DE08036E024UL,  
            0x603C8156F49F68EDUL, 0xF7D236F7DBEF5111UL, 0x9727C4598AD21E80UL, 0xA08A0896670A5FD7UL,  
            0xCB4A8F4309EBA9CBUL, 0x81AF564B0F7036A1UL, 0xC0B99AA778199ABDUL, 0x959F1EC83FC8E952UL,  
            0x8C505077794A81B9UL, 0x3ACAAF8F056338F0UL, 0x07B43F50627A6778UL, 0x4A44AB49F5ECCC77UL,  
            0x3BC3D6E4B679EE98UL, 0x9CC0D4D1CF14108CUL, 0x4406C00B206BC8A0UL, 0x82A18854C8D72D89UL,  
            0x67E366B35C3C432CUL, 0xB923DD61102B37F2UL, 0x56AB2779D884271DUL, 0xBE83E1B0FF1525AFUL,  
            0xFB7C65D4217E49A9UL, 0x6BDBE0E76D48E7D4UL, 0x08DF828745D9179EUL, 0x22EA6A9ADD53BD34UL,  
            0xE36E141C5622200AUL, 0x7F805D1B8CB750EEUL, 0xAFE5C7A59F58E837UL, 0xE27F996A4FB1C23CUL,  
            0xD3867DFB0775F0D0UL, 0xD0E673DE6E88891AUL, 0x123AEB9EAFB86C25UL, 0x30F1D5D5C145B895UL,  
            0xBB434A2DEE7269E7UL, 0x78CB67ECF931FA38UL, 0xF33B0372323BBF9CUL, 0x52D66336FB279C74UL,  
            0x505F33AC0AFB4EAAUL, 0xE8A5CD99A2CCE187UL, 0x534974801E2D30BBUL, 0x8D2D5711D5876D90UL,  
            0x1F1A412891BC038EUL, 0xD6E2E71D82E56648UL, 0x74036C3A497732B7UL, 0x89B67ED96361F5ABUL,  
            0xFFED95D8F1EA02A2UL, 0xE72B3BD61464D43DUL, 0xA6300F170BDC4820UL, 0xEBC18760ED78A77AUL }; 

        public static ulong[] SBOX2 = new ulong[0x100] { 
            0xE6A6BE5A05A12138UL, 0xB5A122A5B4F87C98UL, 0x563C6089140B6990UL, 0x4C46CB2E391F5DD5UL,  
            0xD932ADDBC9B79434UL, 0x08EA70E42015AFF5UL, 0xD765A6673E478CF1UL, 0xC4FB757EAB278D99UL,  
            0xDF11C6862D6E0692UL, 0xDDEB84F10D7F3B16UL, 0x6F2EF604A665EA04UL, 0x4A8E0F0FF0E0DFB3UL,  
            0xA5EDEEF83DBCBA51UL, 0xFC4F0A2A0EA4371EUL, 0xE83E1DA85CB38429UL, 0xDC8FF882BA1B1CE2UL,  
            0xCD45505E8353E80DUL, 0x18D19A00D4DB0717UL, 0x34A0CFEDA5F38101UL, 0x0BE77E518887CAF2UL,  
            0x1E341438B3C45136UL, 0xE05797F49089CCF9UL, 0xFFD23F9DF2591D14UL, 0x543DDA228595C5CDUL,  
            0x661F81FD99052A33UL, 0x8736E641DB0F7B76UL, 0x15227725418E5307UL, 0xE25F7F46162EB2FAUL,  
            0x48A8B2126C13D9FEUL, 0xAFDC541792E76EEAUL, 0x03D912BFC6D1898FUL, 0x31B1AAFA1B83F51BUL,  
            0xF1AC2796E42AB7D9UL, 0x40A3A7D7FCD2EBACUL, 0x1056136D0AFBBCC5UL, 0x7889E1DD9A6D0C85UL,  
            0xD33525782A7974AAUL, 0xA7E25D09078AC09BUL, 0xBD4138B3EAC6EDD0UL, 0x920ABFBE71EB9E70UL,  
            0xA2A5D0F54FC2625CUL, 0xC054E36B0B1290A3UL, 0xF6DD59FF62FE932BUL, 0x3537354511A8AC7DUL,  
            0xCA845E9172FADCD4UL, 0x84F82B60329D20DCUL, 0x79C62CE1CD672F18UL, 0x8B09A2ADD124642CUL,  
            0xD0C1E96A19D9E726UL, 0x5A786A9B4BA9500CUL, 0x0E020336634C43F3UL, 0xC17B474AEB66D822UL,  
            0x6A731AE3EC9BAAC2UL, 0x8226667AE0840258UL, 0x67D4567691CAECA5UL, 0x1D94155C4875ADB5UL,  
            0x6D00FD985B813FDFUL, 0x51286EFCB774CD06UL, 0x5E8834471FA744AFUL, 0xF72CA0AEE761AE2EUL,  
            0xBE40E4CDAEE8E09AUL, 0xE9970BBB5118F665UL, 0x726E4BEB33DF1964UL, 0x703B000729199762UL,  
            0x4631D816F5EF30A7UL, 0xB880B5B51504A6BEUL, 0x641793C37ED84B6CUL, 0x7B21ED77F6E97D96UL,  
            0x776306312EF96B73UL, 0xAE528948E86FF3F4UL, 0x53DBD7F286A3F8F8UL, 0x16CADCE74CFC1063UL,  
            0x005C19BDFA52C6DDUL, 0x68868F5D64D46AD3UL, 0x3A9D512CCF1E186AUL, 0x367E62C2385660AEUL,  
            0xE359E7EA77DCB1D7UL, 0x526C0773749ABE6EUL, 0x735AE5F9D09F734BUL, 0x493FC7CC8A558BA8UL,  
            0xB0B9C1533041AB45UL, 0x321958BA470A59BDUL, 0x852DB00B5F46C393UL, 0x91209B2BD336B0E5UL,  
            0x6E604F7D659EF19FUL, 0xB99A8AE2782CCB24UL, 0xCCF52AB6C814C4C7UL, 0x4727D9AFBE11727BUL,  
            0x7E950D0C0121B34DUL, 0x756F435670AD471FUL, 0xF5ADD442615A6849UL, 0x4E87E09980B9957AUL,  
            0x2ACFA1DF50AEE355UL, 0xD898263AFD2FD556UL, 0xC8F4924DD80C8FD6UL, 0xCF99CA3D754A173AUL,  
            0xFE477BACAF91BF3CUL, 0xED5371F6D690C12DUL, 0x831A5C285E687094UL, 0xC5D3C90A3708A0A4UL,  
            0x0F7F903717D06580UL, 0x19F9BB13B8FDF27FUL, 0xB1BD6F1B4D502843UL, 0x1C761BA38FFF4012UL,  
            0x0D1530C4E2E21F3BUL, 0x8943CE69A7372C8AUL, 0xE5184E11FEB5CE66UL, 0x618BDB80BD736621UL,  
            0x7D29BAD68B574D0BUL, 0x81BB613E25E6FE5BUL, 0x071C9C10BC07913FUL, 0xC7BEEB7909AC2D97UL,  
            0xC3E58D353BC5D757UL, 0xEB017892F38F61E8UL, 0xD4EFFB9C9B1CC21AUL, 0x99727D26F494F7ABUL,  
            0xA3E063A2956B3E03UL, 0x9D4A8B9A4AA09C30UL, 0x3F6AB7D500090FB4UL, 0x9CC0F2A057268AC0UL,  
            0x3DEE9D2DEDBF42D1UL, 0x330F49C87960A972UL, 0xC6B2720287421B41UL, 0x0AC59EC07C00369CUL,  
            0xEF4EAC49CB353425UL, 0xF450244EEF0129D8UL, 0x8ACC46E5CAF4DEB6UL, 0x2FFEAB63989263F7UL,  
            0x8F7CB9FE5D7A4578UL, 0x5BD8F7644E634635UL, 0x427A7315BF2DC900UL, 0x17D0C4AA2125261CUL,  
            0x3992486C93518E50UL, 0xB4CBFEE0A2D7D4C3UL, 0x7C75D6202C5DDD8DUL, 0xDBC295D8E35B6C61UL,  
            0x60B369D302032B19UL, 0xCE42685FDCE44132UL, 0x06F3DDB9DDF65610UL, 0x8EA4D21DB5E148F0UL,  
            0x20B0FCE62FCD496FUL, 0x2C1B912358B0EE31UL, 0xB28317B818F5A308UL, 0xA89C1E189CA6D2CFUL,  
            0x0C6B18576AAADBC8UL, 0xB65DEAA91299FAE3UL, 0xFB2B794B7F1027E7UL, 0x04E4317F443B5BEBUL,  
            0x4B852D325939D0A6UL, 0xD5AE6BEEFB207FFCUL, 0x309682B281C7D374UL, 0xBAE309A194C3B475UL,  
            0x8CC3F97B13B49F05UL, 0x98A9422FF8293967UL, 0x244B16B01076FF7CUL, 0xF8BF571C663D67EEUL,  
            0x1F0D6758EEE30DA1UL, 0xC9B611D97ADEB9B7UL, 0xB7AFD5887B6C57A2UL, 0x6290AE846B984FE1UL,  
            0x94DF4CDEACC1A5FDUL, 0x058A5BD1C5483AFFUL, 0x63166CC142BA3C37UL, 0x8DB8526EB2F76F40UL,  
            0xE10880036F0D6D4EUL, 0x9E0523C9971D311DUL, 0x45EC2824CC7CD691UL, 0x575B8359E62382C9UL,  
            0xFA9E400DC4889995UL, 0xD1823ECB45721568UL, 0xDAFD983B8206082FUL, 0xAA7D29082386A8CBUL,  
            0x269FCD4403B87588UL, 0x1B91F5F728BDD1E0UL, 0xE4669F39040201F6UL, 0x7A1D7C218CF04ADEUL,  
            0x65623C29D79CE5CEUL, 0x2368449096C00BB1UL, 0xAB9BF1879DA503BAUL, 0xBC23ECB1A458058EUL,  
            0x9A58DF01BB401ECCUL, 0xA070E868A85F143DUL, 0x4FF188307DF2239EUL, 0x14D565B41A641183UL,  
            0xEE13337452701602UL, 0x950E3DCF3F285E09UL, 0x59930254B9C80953UL, 0x3BF299408930DA6DUL,  
            0xA955943F53691387UL, 0xA15EDECAA9CB8784UL, 0x29142127352BE9A0UL, 0x76F0371FFF4E7AFBUL,  
            0x0239F450274F2228UL, 0xBB073AF01D5E868BUL, 0xBFC80571C10E96C1UL, 0xD267088568222E23UL,  
            0x9671A3D48E80B5B0UL, 0x55B5D38AE193BB81UL, 0x693AE2D0A18B04B8UL, 0x5C48B4ECADD5335FUL,  
            0xFD743B194916A1CAUL, 0x2577018134BE98C4UL, 0xE77987E83C54A4ADUL, 0x28E11014DA33E1B9UL,  
            0x270CC59E226AA213UL, 0x71495F756D1A5F60UL, 0x9BE853FB60AFEF77UL, 0xADC786A7F7443DBFUL,  
            0x0904456173B29A82UL, 0x58BC7A66C232BD5EUL, 0xF306558C673AC8B2UL, 0x41F639C6B6C9772AUL,  
            0x216DEFE99FDA35DAUL, 0x11640CC71C7BE615UL, 0x93C43694565C5527UL, 0xEA038E6246777839UL,  
            0xF9ABF3CE5A3E2469UL, 0x741E768D0FD312D2UL, 0x0144B883CED652C6UL, 0xC20B5A5BA33F8552UL,  
            0x1AE69633C3435A9DUL, 0x97A28CA4088CFDECUL, 0x8824A43C1E96F420UL, 0x37612FA66EEEA746UL,  
            0x6B4CB165F9CF0E5AUL, 0x43AA1C06A0ABFB4AUL, 0x7F4DC26FF162796BUL, 0x6CBACC8E54ED9B0FUL,  
            0xA6B7FFEFD2BB253EUL, 0x2E25BC95B0A29D4FUL, 0x86D6A58BDEF1388CUL, 0xDED74AC576B6F054UL,  
            0x8030BDBC2B45805DUL, 0x3C81AF70E94D9289UL, 0x3EFF6DDA9E3100DBUL, 0xB38DC39FDFCC8847UL,  
            0x123885528D17B87EUL, 0xF2DA0ED240B1B642UL, 0x44CEFADCD54BF9A9UL, 0x1312200E433C7EE6UL,  
            0x9FFCC84F3A78C748UL, 0xF0CD1F72248576BBUL, 0xEC6974053638CFE4UL, 0x2BA7B67C0CEC4E4CUL,  
            0xAC2F4DF3E5CE32EDUL, 0xCB33D14326EA4C11UL, 0xA4E9044CC77E58BCUL, 0x5F513293D934FCEFUL,  
            0x5DC9645506E55444UL, 0x50DE418F317DE40AUL, 0x388CB31A69DDE259UL, 0x2DB4A83455820A86UL,  
            0x9010A91E84711AE9UL, 0x4DF7F0B7B1498371UL, 0xD62A2EABC0977179UL, 0x22FAC097AA8D5C0EUL }; 

        public static ulong[] SBOX3 = new ulong[0x100] { 
            0xF49FCC2FF1DAF39BUL, 0x487FD5C66FF29281UL, 0xE8A30667FCDCA83FUL, 0x2C9B4BE3D2FCCE63UL,  
            0xDA3FF74B93FBBBC2UL, 0x2FA165D2FE70BA66UL, 0xA103E279970E93D4UL, 0xBECDEC77B0E45E71UL,  
            0xCFB41E723985E497UL, 0xB70AAA025EF75017UL, 0xD42309F03840B8E0UL, 0x8EFC1AD035898579UL,  
            0x96C6920BE2B2ABC5UL, 0x66AF4163375A9172UL, 0x2174ABDCCA7127FBUL, 0xB33CCEA64A72FF41UL,  
            0xF04A4933083066A5UL, 0x8D970ACDD7289AF5UL, 0x8F96E8E031C8C25EUL, 0xF3FEC02276875D47UL,  
            0xEC7BF310056190DDUL, 0xF5ADB0AEBB0F1491UL, 0x9B50F8850FD58892UL, 0x4975488358B74DE8UL,  
            0xA3354FF691531C61UL, 0x0702BBE481D2C6EEUL, 0x89FB24057DEDED98UL, 0xAC3075138596E902UL,  
            0x1D2D3580172772EDUL, 0xEB738FC28E6BC30DUL, 0x5854EF8F63044326UL, 0x9E5C52325ADD3BBEUL,  
            0x90AA53CF325C4623UL, 0xC1D24D51349DD067UL, 0x2051CFEEA69EA624UL, 0x13220F0A862E7E4FUL,  
            0xCE39399404E04864UL, 0xD9C42CA47086FCB7UL, 0x685AD2238A03E7CCUL, 0x066484B2AB2FF1DBUL,  
            0xFE9D5D70EFBF79ECUL, 0x5B13B9DD9C481854UL, 0x15F0D475ED1509ADUL, 0x0BEBCD060EC79851UL,  
            0xD58C6791183AB7F8UL, 0xD1187C5052F3EEE4UL, 0xC95D1192E54E82FFUL, 0x86EEA14CB9AC6CA2UL,  
            0x3485BEB153677D5DUL, 0xDD191D781F8C492AUL, 0xF60866BAA784EBF9UL, 0x518F643BA2D08C74UL,  
            0x8852E956E1087C22UL, 0xA768CB8DC410AE8DUL, 0x38047726BFEC8E1AUL, 0xA67738B4CD3B45AAUL,  
            0xAD16691CEC0DDE19UL, 0xC6D4319380462E07UL, 0xC5A5876D0BA61938UL, 0x16B9FA1FA58FD840UL,  
            0x188AB1173CA74F18UL, 0xABDA2F98C99C021FUL, 0x3E0580AB134AE816UL, 0x5F3B05B773645ABBUL,  
            0x2501A2BE5575F2F6UL, 0x1B2F74004E7E8BA9UL, 0x1CD7580371E8D953UL, 0x7F6ED89562764E30UL,  
            0xB15926FF596F003DUL, 0x9F65293DA8C5D6B9UL, 0x6ECEF04DD690F84CUL, 0x4782275FFF33AF88UL,  
            0xE41433083F820801UL, 0xFD0DFE409A1AF9B5UL, 0x4325A3342CDB396BUL, 0x8AE77E62B301B252UL,  
            0xC36F9E9F6655615AUL, 0x85455A2D92D32C09UL, 0xF2C7DEA949477485UL, 0x63CFB4C133A39EBAUL,  
            0x83B040CC6EBC5462UL, 0x3B9454C8FDB326B0UL, 0x56F56A9E87FFD78CUL, 0x2DC2940D99F42BC6UL,  
            0x98F7DF096B096E2DUL, 0x19A6E01E3AD852BFUL, 0x42A99CCBDBD4B40BUL, 0xA59998AF45E9C559UL,  
            0x366295E807D93186UL, 0x6B48181BFAA1F773UL, 0x1FEC57E2157A0A1DUL, 0x4667446AF6201AD5UL,  
            0xE615EBCACFB0F075UL, 0xB8F31F4F68290778UL, 0x22713ED6CE22D11EUL, 0x3057C1A72EC3C93BUL,  
            0xCB46ACC37C3F1F2FUL, 0xDBB893FD02AAF50EUL, 0x331FD92E600B9FCFUL, 0xA498F96148EA3AD6UL,  
            0xA8D8426E8B6A83EAUL, 0xA089B274B7735CDCUL, 0x87F6B3731E524A11UL, 0x118808E5CBC96749UL,  
            0x9906E4C7B19BD394UL, 0xAFED7F7E9B24A20CUL, 0x6509EADEEB3644A7UL, 0x6C1EF1D3E8EF0EDEUL,  
            0xB9C97D43E9798FB4UL, 0xA2F2D784740C28A3UL, 0x7B8496476197566FUL, 0x7A5BE3E6B65F069DUL,  
            0xF96330ED78BE6F10UL, 0xEEE60DE77A076A15UL, 0x2B4BEE4AA08B9BD0UL, 0x6A56A63EC7B8894EUL,  
            0x02121359BA34FEF4UL, 0x4CBF99F8283703FCUL, 0x398071350CAF30C8UL, 0xD0A77A89F017687AUL,  
            0xF1C1A9EB9E423569UL, 0x8C7976282DEE8199UL, 0x5D1737A5DD1F7ABDUL, 0x4F53433C09A9FA80UL,  
            0xFA8B0C53DF7CA1D9UL, 0x3FD9DCBC886CCB77UL, 0xC040917CA91B4720UL, 0x7DD00142F9D1DCDFUL,  
            0x8476FC1D4F387B58UL, 0x23F8E7C5F3316503UL, 0x032A2244E7E37339UL, 0x5C87A5D750F5A74BUL,  
            0x082B4CC43698992EUL, 0xDF917BECB858F63CUL, 0x3270B8FC5BF86DDAUL, 0x10AE72BB29B5DD76UL,  
            0x576AC94E7700362BUL, 0x1AD112DAC61EFB8FUL, 0x691BC30EC5FAA427UL, 0xFF246311CC327143UL,  
            0x3142368E30E53206UL, 0x71380E31E02CA396UL, 0x958D5C960AAD76F1UL, 0xF8D6F430C16DA536UL,  
            0xC8FFD13F1BE7E1D2UL, 0x7578AE66004DDBE1UL, 0x05833F01067BE646UL, 0xBB34B5AD3BFE586DUL,  
            0x095F34C9A12B97F0UL, 0x247AB64525D60CA8UL, 0xDCDBC6F3017477D1UL, 0x4A2E14D4DECAD24DUL,  
            0xBDB5E6D9BE0A1EEBUL, 0x2A7E70F7794301ABUL, 0xDEF42D8A270540FDUL, 0x01078EC0A34C22C1UL,  
            0xE5DE511AF4C16387UL, 0x7EBB3A52BD9A330AUL, 0x77697857AA7D6435UL, 0x004E831603AE4C32UL,  
            0xE7A21020AD78E312UL, 0x9D41A70C6AB420F2UL, 0x28E06C18EA1141E6UL, 0xD2B28CBD984F6B28UL,  
            0x26B75F6C446E9D83UL, 0xBA47568C4D418D7FUL, 0xD80BADBFE6183D8EUL, 0x0E206D7F5F166044UL,  
            0xE258A43911CBCA3EUL, 0x723A1746B21DC0BCUL, 0xC7CAA854F5D7CDD3UL, 0x7CAC32883D261D9CUL,  
            0x7690C26423BA942CUL, 0x17E55524478042B8UL, 0xE0BE477656A2389FUL, 0x4D289B5E67AB2DA0UL,  
            0x44862B9C8FBBFD31UL, 0xB47CC8049D141365UL, 0x822C1B362B91C793UL, 0x4EB14655FB13DFD8UL,  
            0x1ECBBA0714E2A97BUL, 0x6143459D5CDE5F14UL, 0x53A8FBF1D5F0AC89UL, 0x97EA04D81C5E5B00UL,  
            0x622181A8D4FDB3F3UL, 0xE9BCD341572A1208UL, 0x1411258643CCE58AUL, 0x9144C5FEA4C6E0A4UL,  
            0x0D33D06565CF620FUL, 0x54A48D489F219CA1UL, 0xC43E5EAC6D63C821UL, 0xA9728B3A72770DAFUL,  
            0xD7934E7B20DF87EFUL, 0xE35503B61A3E86E5UL, 0xCAE321FBC819D504UL, 0x129A50B3AC60BFA6UL,  
            0xCD5E68EA7E9FB6C3UL, 0xB01C90199483B1C7UL, 0x3DE93CD5C295376CUL, 0xAED52EDF2AB9AD13UL,  
            0x2E60F512C0A07884UL, 0xBC3D86A3E36210C9UL, 0x35269D9B163951CEUL, 0x0C7D6E2AD0CDB5FAUL,  
            0x59E86297D87F5733UL, 0x298EF221898DB0E7UL, 0x55000029D1A5AA7EUL, 0x8BC08AE1B5061B45UL,  
            0xC2C31C2B6C92703AUL, 0x94CC596BAF25EF42UL, 0x0A1D73DB22540456UL, 0x04B6A0F9D9C4179AUL,  
            0xEFFDAFA2AE3D3C60UL, 0xF7C8075BB49496C4UL, 0x9CC5C7141D1CD4E3UL, 0x78BD1638218E5534UL,  
            0xB2F11568F850246AUL, 0xEDFABCFA9502BC29UL, 0x796CE5F2DA23051BUL, 0xAAE128B0DC93537CUL,  
            0x3A493DA0EE4B29AEUL, 0xB5DF6B2C416895D7UL, 0xFCABBD25122D7F37UL, 0x70810B58105DC4B1UL,  
            0xE10FDD37F7882A90UL, 0x524DCAB5518A3F5CUL, 0x3C9E85878451255BUL, 0x4029828119BD34E2UL,  
            0x74A05B6F5D3CECCBUL, 0xB610021542E13ECAUL, 0x0FF979D12F59E2ACUL, 0x6037DA27E4F9CC50UL,  
            0x5E92975A0DF1847DUL, 0xD66DE190D3E623FEUL, 0x5032D6B87B568048UL, 0x9A36B7CE8235216EUL,  
            0x80272A7A24F64B4AUL, 0x93EFED8B8C6916F7UL, 0x37DDBFF44CCE1555UL, 0x4B95DB5D4B99BD25UL,  
            0x92D3FDA169812FC0UL, 0xFB1A4A9A90660BB6UL, 0x730C196946A4B9B2UL, 0x81E289AA7F49DA68UL,  
            0x64669A0F83B1A05FUL, 0x27B3FF7D9644F48BUL, 0xCC6B615C8DB675B3UL, 0x674F20B9BCEBBE95UL,  
            0x6F31238275655982UL, 0x5AE488713E45CF05UL, 0xBF619F9954C21157UL, 0xEABAC46040A8EAE9UL,  
            0x454C6FE9F2C0C1CDUL, 0x419CF6496412691CUL, 0xD3DC3BEF265B0F70UL, 0x6D0E60F5C3578A9EUL }; 

        public static ulong[] SBOX4 = new ulong[0x100] { 
            0x5B0E608526323C55UL, 0x1A46C1A9FA1B59F5UL, 0xA9E245A17C4C8FFAUL, 0x65CA5159DB2955D7UL,  
            0x05DB0A76CE35AFC2UL, 0x81EAC77EA9113D45UL, 0x528EF88AB6AC0A0DUL, 0xA09EA253597BE3FFUL,  
            0x430DDFB3AC48CD56UL, 0xC4B3A67AF45CE46FUL, 0x4ECECFD8FBE2D05EUL, 0x3EF56F10B39935F0UL,  
            0x0B22D6829CD619C6UL, 0x17FD460A74DF2069UL, 0x6CF8CC8E8510ED40UL, 0xD6C824BF3A6ECAA7UL,  
            0x61243D581A817049UL, 0x048BACB6BBC163A2UL, 0xD9A38AC27D44CC32UL, 0x7FDDFF5BAAF410ABUL,  
            0xAD6D495AA804824BUL, 0xE1A6A74F2D8C9F94UL, 0xD4F7851235DEE8E3UL, 0xFD4B7F886540D893UL,  
            0x247C20042AA4BFDAUL, 0x096EA1C517D1327CUL, 0xD56966B4361A6685UL, 0x277DA5C31221057DUL,  
            0x94D59893A43ACFF7UL, 0x64F0C51CCDC02281UL, 0x3D33BCC4FF6189DBUL, 0xE005CB184CE66AF1UL,  
            0xFF5CCD1D1DB99BEAUL, 0xB0B854A7FE42980FUL, 0x7BD46A6A718D4B9FUL, 0xD10FA8CC22A5FD8CUL,  
            0xD31484952BE4BD31UL, 0xC7FA975FCB243847UL, 0x4886ED1E5846C407UL, 0x28CDDB791EB70B04UL,  
            0xC2B00BE2F573417FUL, 0x5C9590452180F877UL, 0x7A6BDDFFF370EB00UL, 0xCE509E38D6D9D6A4UL,  
            0xEBEB0F00647FA702UL, 0x1DCC06CF76606F06UL, 0xE4D9F28BA286FF0AUL, 0xD85A305DC918C262UL,  
            0x475B1D8732225F54UL, 0x2D4FB51668CCB5FEUL, 0xA679B9D9D72BBA20UL, 0x53841C0D912D43A5UL,  
            0x3B7EAA48BF12A4E8UL, 0x781E0E47F22F1DDFUL, 0xEFF20CE60AB50973UL, 0x20D261D19DFFB742UL,  
            0x16A12B03062A2E39UL, 0x1960EB2239650495UL, 0x251C16FED50EB8B8UL, 0x9AC0C330F826016EUL,  
            0xED152665953E7671UL, 0x02D63194A6369570UL, 0x5074F08394B1C987UL, 0x70BA598C90B25CE1UL,  
            0x794A15810B9742F6UL, 0x0D5925E9FCAF8C6CUL, 0x3067716CD868744EUL, 0x910AB077E8D7731BUL,  
            0x6A61BBDB5AC42F61UL, 0x93513EFBF0851567UL, 0xF494724B9E83E9D5UL, 0xE887E1985C09648DUL,  
            0x34B1D3C675370CFDUL, 0xDC35E433BC0D255DUL, 0xD0AAB84234131BE0UL, 0x08042A50B48B7EAFUL,  
            0x9997C4EE44A3AB35UL, 0x829A7B49201799D0UL, 0x263B8307B7C54441UL, 0x752F95F4FD6A6CA6UL,  
            0x927217402C08C6E5UL, 0x2A8AB754A795D9EEUL, 0xA442F7552F72943DUL, 0x2C31334E19781208UL,  
            0x4FA98D7CEAEE6291UL, 0x55C3862F665DB309UL, 0xBD0610175D53B1F3UL, 0x46FE6CB840413F27UL,  
            0x3FE03792DF0CFA59UL, 0xCFE700372EB85E8FUL, 0xA7BE29E7ADBCE118UL, 0xE544EE5CDE8431DDUL,  
            0x8A781B1B41F1873EUL, 0xA5C94C78A0D2F0E7UL, 0x39412E2877B60728UL, 0xA1265EF3AFC9A62CUL,  
            0xBCC2770C6A2506C5UL, 0x3AB66DD5DCE1CE12UL, 0xE65499D04A675B37UL, 0x7D8F523481BFD216UL,  
            0x0F6F64FCEC15F389UL, 0x74EFBE618B5B13C8UL, 0xACDC82B714273E1DUL, 0xDD40BFE003199D17UL,  
            0x37E99257E7E061F8UL, 0xFA52626904775AAAUL, 0x8BBBF63A463D56F9UL, 0xF0013F1543A26E64UL,  
            0xA8307E9F879EC898UL, 0xCC4C27A4150177CCUL, 0x1B432F2CCA1D3348UL, 0xDE1D1F8F9F6FA013UL,  
            0x606602A047A7DDD6UL, 0xD237AB64CC1CB2C7UL, 0x9B938E7225FCD1D3UL, 0xEC4E03708E0FF476UL,  
            0xFEB2FBDA3D03C12DUL, 0xAE0BCED2EE43889AUL, 0x22CB8923EBFB4F43UL, 0x69360D013CF7396DUL,  
            0x855E3602D2D4E022UL, 0x073805BAD01F784CUL, 0x33E17A133852F546UL, 0xDF4874058AC7B638UL,  
            0xBA92B29C678AA14AUL, 0x0CE89FC76CFAADCDUL, 0x5F9D4E0908339E34UL, 0xF1AFE9291F5923B9UL,  
            0x6E3480F60F4A265FUL, 0xEEBF3A2AB29B841CUL, 0xE21938A88F91B4ADUL, 0x57DFEFF845C6D3C3UL,  
            0x2F006B0BF62CAAF2UL, 0x62F479EF6F75EE78UL, 0x11A55AD41C8916A9UL, 0xF229D29084FED453UL,  
            0x42F1C27B16B000E6UL, 0x2B1F76749823C074UL, 0x4B76ECA3C2745360UL, 0x8C98F463B91691BDUL,  
            0x14BCC93CF1ADE66AUL, 0x8885213E6D458397UL, 0x8E177DF0274D4711UL, 0xB49B73B5503F2951UL,  
            0x10168168C3F96B6BUL, 0x0E3D963B63CAB0AEUL, 0x8DFC4B5655A1DB14UL, 0xF789F1356E14DE5CUL,  
            0x683E68AF4E51DAC1UL, 0xC9A84F9D8D4B0FD9UL, 0x3691E03F52A0F9D1UL, 0x5ED86E46E1878E80UL,  
            0x3C711A0E99D07150UL, 0x5A0865B20C4E9310UL, 0x56FBFC1FE4F0682EUL, 0xEA8D5DE3105EDF9BUL,  
            0x71ABFDB12379187AUL, 0x2EB99DE1BEE77B9CUL, 0x21ECC0EA33CF4523UL, 0x59A4D7521805C7A1UL,  
            0x3896F5EB56AE7C72UL, 0xAA638F3DB18F75DCUL, 0x9F39358DABE9808EUL, 0xB7DEFA91C00B72ACUL,  
            0x6B5541FD62492D92UL, 0x6DC6DEE8F92E4D5BUL, 0x353F57ABC4BEEA7EUL, 0x735769D6DA5690CEUL,  
            0x0A234AA642391484UL, 0xF6F9508028F80D9DUL, 0xB8E319A27AB3F215UL, 0x31AD9C1151341A4DUL,  
            0x773C22A57BEF5805UL, 0x45C7561A07968633UL, 0xF913DA9E249DBE36UL, 0xDA652D9B78A64C68UL,  
            0x4C27A97F3BC334EFUL, 0x76621220E66B17F4UL, 0x967743899ACD7D0BUL, 0xF3EE5BCAE0ED6782UL,  
            0x409F753600C879FCUL, 0x06D09A39B5926DB6UL, 0x6F83AEB0317AC588UL, 0x01E6CA4A86381F21UL,  
            0x66FF3462D19F3025UL, 0x72207C24DDFD3BFBUL, 0x4AF6B6D3E2ECE2EBUL, 0x9C994DBEC7EA08DEUL,  
            0x49ACE597B09A8BC4UL, 0xB38C4766CF0797BAUL, 0x131B9373C57C2A75UL, 0xB1822CCE61931E58UL,  
            0x9D7555B909BA1C0CUL, 0x127FAFDD937D11D2UL, 0x29DA3BADC66D92E4UL, 0xA2C1D57154C2ECBCUL,  
            0x58C5134D82F6FE24UL, 0x1C3AE3515B62274FUL, 0xE907C82E01CB8126UL, 0xF8ED091913E37FCBUL,  
            0x3249D8F9C80046C9UL, 0x80CF9BEDE388FB63UL, 0x1881539A116CF19EUL, 0x5103F3F76BD52457UL,  
            0x15B7E6F5AE47F7A8UL, 0xDBD7C6DED47E9CCFUL, 0x44E55C410228BB1AUL, 0xB647D4255EDB4E99UL,  
            0x5D11882BB8AAFC30UL, 0xF5098BBB29D3212AUL, 0x8FB5EA14E90296B3UL, 0x677B942157DD025AUL,  
            0xFB58E7C0A390ACB5UL, 0x89D3674C83BD4A01UL, 0x9E2DA4DF4BF3B93BUL, 0xFCC41E328CAB4829UL,  
            0x03F38C96BA582C52UL, 0xCAD1BDBD7FD85DB2UL, 0xBBB442C16082AE83UL, 0xB95FE86BA5DA9AB0UL,  
            0xB22E04673771A93FUL, 0x845358C9493152D8UL, 0xBE2A488697B4541EUL, 0x95A2DC2DD38E6966UL,  
            0xC02C11AC923C852BUL, 0x2388B1990DF2A87BUL, 0x7C8008FA1B4F37BEUL, 0x1F70D0C84D54E503UL,  
            0x5490ADEC7ECE57D4UL, 0x002B3C27D9063A3AUL, 0x7EAEA3848030A2BFUL, 0xC602326DED2003C0UL,  
            0x83A7287D69A94086UL, 0xC57A5FCB30F57A8AUL, 0xB56844E479EBE779UL, 0xA373B40F05DCBCE9UL,  
            0xD71A786E88570EE2UL, 0x879CBACDBDE8F6A0UL, 0x976AD1BCC164A32FUL, 0xAB21E25E9666D78BUL,  
            0x901063AAE5E5C33CUL, 0x9818B34448698D90UL, 0xE36487AE3E1E8ABBUL, 0xAFBDF931893BDCB4UL,  
            0x6345A0DC5FBBD519UL, 0x8628FE269B9465CAUL, 0x1E5D01603F9C51ECUL, 0x4DE44006A15049B7UL,  
            0xBF6C70E5F776CBB1UL, 0x411218F2EF552BEDUL, 0xCB0C0708705A36A3UL, 0xE74D14754F986044UL,  
            0xCD56D9430EA8280EUL, 0xC12591D7535F5065UL, 0xC83223F1720AEF96UL, 0xC3A0396F7363A51FUL }; 
        #endregion 
        private ulong[] _x = new ulong[8]; 
        private ulong[] _digest = new ulong[3]; 
        private byte[] _buffer = new byte[BLOCKSIZE]; 
        private ulong _count = 0; 
        public TigerHashAlgorithm() 
        { 
            _digest[0] = 0x0123456789ABCDEFUL; 
            _digest[1] = 0xFEDCBA9876543210UL; 
            _digest[2] = 0xF096A5B4C3B2E187UL; 
        } 
        public void Hash(byte[] input) 
        { 
            if (input.Length % 8 != 0) 
            { 
                byte[] buffer = new byte[input.Length + (8 - input.Length % 8)]; 
                System.Buffer.BlockCopy(input, 0, buffer, 0, input.Length); 
                input = buffer; 
            } 
            for (int j = 0; j < input.Length / 8; j++) 
                _x[j] = ((ulong)input[8 * j + 7] << 56) | ((ulong)input[8 * j + 6] << 48) | 
                        ((ulong)input[8 * j + 5] << 40) | ((ulong)input[8 * j + 4] << 32) | 
                        ((ulong)input[8 * j + 3] << 24) | ((ulong)input[8 * j + 2] << 16) | 
                        ((ulong)input[8 * j + 1] << 8) | ((ulong)input[8 * j]); 
            ulong A = _digest[0], B = _digest[1], C = _digest[2]; 
            Round(ref A, ref B, ref C, _x[0], 5); Round(ref B, ref C, ref A, _x[1], 5); Round(ref C, ref A, ref B, _x[2], 5); 
            Round(ref A, ref B, ref C, _x[3], 5); Round(ref B, ref C, ref A, _x[4], 5); Round(ref C, ref A, ref B, _x[5], 5); 
            Round(ref A, ref B, ref C, _x[6], 5); Round(ref B, ref C, ref A, _x[7], 5); 
            _x[0] -= _x[7] ^ 0xA5A5A5A5A5A5A5A5UL; _x[1] ^= _x[0]; 
            _x[2] += _x[1]; _x[3] -= _x[2] ^ ((~_x[1]) << 19); _x[4] ^= _x[3]; 
            _x[5] += _x[4]; _x[6] -= _x[5] ^ ((~_x[4]) >> 23); _x[7] ^= _x[6]; 
            _x[0] += _x[7]; _x[1] -= _x[0] ^ ((~_x[7]) << 19); _x[2] ^= _x[1]; 
            _x[3] += _x[2]; _x[4] -= _x[3] ^ ((~_x[2]) >> 23); _x[5] ^= _x[4]; 
            _x[6] += _x[5]; _x[7] -= _x[6] ^ 0x0123456789ABCDEFUL; 
            Round(ref C, ref A, ref B, _x[0], 7); Round(ref A, ref B, ref C, _x[1], 7); Round(ref B, ref C, ref A, _x[2], 7); 
            Round(ref C, ref A, ref B, _x[3], 7); Round(ref A, ref B, ref C, _x[4], 7); Round(ref B, ref C, ref A, _x[5], 7); 
            Round(ref C, ref A, ref B, _x[6], 7); Round(ref A, ref B, ref C, _x[7], 7); 
            _x[0] -= _x[7] ^ 0xA5A5A5A5A5A5A5A5UL; _x[1] ^= _x[0]; 
            _x[2] += _x[1]; _x[3] -= _x[2] ^ ((~_x[1]) << 19); _x[4] ^= _x[3]; 
            _x[5] += _x[4]; _x[6] -= _x[5] ^ ((~_x[4]) >> 23); _x[7] ^= _x[6]; 
            _x[0] += _x[7]; _x[1] -= _x[0] ^ ((~_x[7]) << 19); _x[2] ^= _x[1]; 
            _x[3] += _x[2]; _x[4] -= _x[3] ^ ((~_x[2]) >> 23); _x[5] ^= _x[4]; 
            _x[6] += _x[5]; _x[7] -= _x[6] ^ 0x0123456789ABCDEFUL; 
            Round(ref B, ref C, ref A, _x[0], 9); Round(ref C, ref A, ref B, _x[1], 9); Round(ref A, ref B, ref C, _x[2], 9); 
            Round(ref B, ref C, ref A, _x[3], 9); Round(ref C, ref A, ref B, _x[4], 9); Round(ref A, ref B, ref C, _x[5], 9); 
            Round(ref B, ref C, ref A, _x[6], 9); Round(ref C, ref A, ref B, _x[7], 9); 
            _digest[0] ^= A; _digest[1] = B - _digest[1]; _digest[2] += C; 
        } 
        [MethodImpl(MethodImplOptions.AggressiveInlining)] 
        private void Round(ref ulong A, ref ulong B, ref ulong C, ulong msg, ulong mult) 
        { 
            C ^= msg; 
            A -= SBOX1[GetByte(7, C)] ^ SBOX2[GetByte(5, C)] ^ 
                 SBOX3[GetByte(3, C)] ^ SBOX4[GetByte(1, C)]; 
            B -= SBOX1[GetByte(0, C)] ^ SBOX2[GetByte(2, C)] ^ 
                 SBOX3[GetByte(4, C)] ^ SBOX4[GetByte(6, C)]; 
            B *= mult; 
        } 
        public byte[] Final(int hashLength) 
        { 
            byte[] result = new byte[hashLength]; 
            _buffer[0] = 0x01; 
            for (int j = BLOCKSIZE - 8; j < BLOCKSIZE; j++) 
                _buffer[j] = GetByte(7 - (j % 8), _count); 
            Hash(_buffer); 
            for (int j = 0; j < hashLength; j++) 
                result[j] = GetByte(7 - (j % 8), _digest[(j / 8) % 3]); 
            return result; 
        } 
        private static byte GetByte(int byteNum, ulong input) 
        { 
            return (byte)(input >> ((sizeof(ulong) - 1 - (byteNum & (sizeof(ulong) - 1))) << 3)); 
        } 
    } 
    public unsafe sealed class TransferCipher 
    { 
        public static byte[] Key; 
        public static byte[] Salt; 
        private RivestCipher5 _rivest; 
        public TransferCipher(string unique) 
        { 
            TigerHashAlgorithm tigerHash = new TigerHashAlgorithm(); 
            tigerHash.Hash(Encoding.ASCII.GetBytes(unique)); 
            tigerHash.Hash(Key); 
            PasswordDeriveBytes password = new PasswordDeriveBytes(tigerHash.Final(0x10), Salt); 
            _rivest = new RivestCipher5(); 
            _rivest.GenerateKeys(password.GetBytes(16)); 
        } 
        public TransferCipher(string key, string salt, string unique) 
        { 
            TigerHashAlgorithm tigerHash = new TigerHashAlgorithm(); 
            tigerHash.Hash(Encoding.ASCII.GetBytes(unique)); 
            tigerHash.Hash(Encoding.ASCII.GetBytes(key)); 
            PasswordDeriveBytes password = new PasswordDeriveBytes(tigerHash.Final(0x10), Encoding.ASCII.GetBytes(salt)); 
            _rivest = new RivestCipher5(); 
            _rivest.GenerateKeys(password.GetBytes(16)); 
        } 
        public uint[] Encrypt(uint[] input) 
        { 
            byte[] buffer = new byte[8]; 
            fixed (byte* ptr = buffer) 
            { 
                *(uint*)(ptr) = input[0]; 
                *(uint*)(ptr + 4) = input[1]; 
            } 
            _rivest.Encrypt(buffer); 
            return new uint[2] { BitConverter.ToUInt32(buffer, 0), BitConverter.ToUInt32(buffer, 4) }; 
        } 
        public uint[] Decrypt(uint[] input) 
        { 
            byte[] buffer = new byte[8]; 
            fixed (byte* ptr = buffer) 
            { 
                *(uint*)(ptr + 0) = input[0]; 
                *(uint*)(ptr + 4) = input[1]; 
            } 
            _rivest.Decrypt(buffer); 
            return new uint[2] { BitConverter.ToUInt32(buffer, 0), BitConverter.ToUInt32(buffer, 4) }; 
        } 
    } 
}


اخر حاجه اضافه الانبسي نضيف دول


#region ServerTransferOfficer 
                                case 15702: 
                                    { 
                                        dialog.Avatar(186); 
                                        switch (CMsgTaskDialog.OptionID) 
                                        { 
                                            case 0: 
                                                { 
                                                    dialog.Text("Guys, I`m responsible for transferring servers. If you don`t wanna stay here anymore, I can help anytime except 07:00 - 09:30 and 15:00 - 17:30. Anything?"); 
                                                    dialog.Text("Yeah,~tell~me~more~about~it."); 
                                                    dialog.Option("Yeah,~tell~me~more~about~it.", 1); 
                                                    dialog.Option("I~wanna~transfer~now.", 2); 
                                                    dialog.Option("Nothing.", 255); 
                                                    dialog.Send(); 
                                                    break; 
                                                } 
                                            case 1: 
                                                { 
                                                    dialog.Text("I like curious people, seriously. There`re something you need to do before transferring:"); 
                                                    dialog.Text("~1. Cancel all your relationships with this server, including guild, clan, mentor, trade partner and marriage."); 
                                                    dialog.Text("~2. Make sure you aren`t detaining other players` equipment, or your equipment is being detained by others."); 
                                                    dialog.Text("~3. Retrieve all items from your itemboxes in your house."); 
                                                    dialog.Text("~4. Claim all your TQ Point Cards. 5. View all your unread messages. 6. Claim your mentor exp."); 
                                                    dialog.Text("~After that, give me 150000 CPs, done!"); 
                                                    dialog.Option("I~got~it.", 255); 
                                                    dialog.Send(); 
                                                    break; 
                                                } 
                                            case 2: 
                                                { 
                                                    CMsgPlayerTransfer.StatusServers(); 
                                                    dialog.Text("Now select a server group."); 
                                                    if (CMsgPlayerTransfer.Mode.EveOfWar_EU == 1) 
                                                        dialog.Option("EveOfWar_EU [Online]", 4); 
                                                    else 
                                                        dialog.Option("EveOfWar_EU [Offline]", 4); 
                                                    if (CMsgPlayerTransfer.Mode.WarLord == 1) 
                                                        dialog.Option("WarLord [Online]", 5); 
                                                    else 
                                                        dialog.Option("WarLord [Offline]", 5); 
                                                    dialog.Option("Nothing.", 255); 
                                                    dialog.Send(); 
                                                    break; 
                                                } 
                                            case 4: 
                                                { 
                                                    CMsgPlayerTransfer.CheckServer("WarLord", client); 
                                                    break; 
                                                } 

                                        } 
                                        break; 
                                    } 
                                #endregion

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

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


منقول من منتدانا التانى اكواد للافاده


Pineapple


Pineapple






الأعضاء الذين شاهدوا الموضوع: 11
ابو ريتاج ، ElSaher ، A_H_M_E_D ، sergyusrg ، adham1551 ، midoayman ، HBESA ، amir22 ، HardConquer ، batanony ، MrZone ،

الكلمات الدلالية
لا يوجد كلمات دلالية ..


 







Pineapple


الساعة الآن 11:06 صباحا