التخطي إلى المحتوى الرئيسي
السلام عليكم ورحمه الله وبركاته 

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

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

هنعمل كلاس جديد باسم 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 serverGamePlayer 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."nullnull0);
                return;
            }
            else if (
Constants.ServerName == server)
            {
                
client.MessageBox("Ooops O.o ! you already in Server " server "."nullnull0);
                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!"nullnull0);
                         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]."nullnull0);
                                 
DTrans true;
                             }
                             else
                             {
                                 
client.MessageBox("Sorry Server Connection Failed Try Again Later."nullnull0);
                                 return;
                             }
                         }
                         else
                         {
                             
client.MessageBox("You don't have " 2999 " CPs."nullnull0);
                             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
        
}
    } 

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

كود:
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]عشان الايرور اللي هيطلع معاك هضيف ده عندل ف اول الكلاس. [/CENTER


كود:
using CONNECTION_ACC_SERVER MySql.Data.MySqlClient.MySqlConnection

كدة فاضل موقوع الاك سيرفر
ف Database ضيف الفايل دة عندك
https://up.top4top.net/downloadf-611amqag1-rar.html

AccServer
تحميل الاك سيرفر قاعدة من هنا :
https://up.top4top.net/downloadf-611wybck1-rar.html

لقاعده بتاعت ال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 appendConnectGamePlayer 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.IdentifierappendConnect.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.OrangeGamePackets.Message.Dialog));
                        return;
                    }
                    
VariableVault variables;
                    
Database.EntityVariableTable.Load(client.Account.EntityIDout 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.EntityIDout aClient))
                            
aClient.Disconnect();
                        
Kernel.GamePool.Remove(Account.EntityID);
                        
client.Player = new Player(PlayerFlag.Monsterfalse);
                        
Kernel.GamePool.Add(Account.EntityIDclient);
                        
doLogin true;
                    }
                    else
                    {
                        
client.Send(new Message(Message"ALLUSERS"System.Drawing.Color.OrangeGamePackets.Message.Dialog));
                        
Thread.Execute<GamePlayer>((pClienttime) => { pClient.Disconnect(); }, client100);
                    }
                }
                if (
doLogin)
                {
                    
DoLogin(client);
                }
            }

        } 

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


كود:
#region TransferDataHolder.CreateConnection_ACC_SERVER();TransferCipher.Key Encoding.ASCII.GetBytes("6D1B73DA0250473496C2845F9 1FA2A42");TransferCipher.Salt Encoding.ASCII.GetBytes("DDA177642131459FBFBD17D90 03678A8");#endregion 

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

TransferCipher

وضيف فية دول.


كود:
 Last updated on2017 From before Ranko */ /* Last updated in Project CMsgConquer */
/* Copyright © 2015 - 2017 by Ranko */
using Systemusing System.Linqusing System.Textusing System.Threading.Tasksusing System.Collections.Genericusing System.Security.Cryptographyusing 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] {
            
0x02AAB17CF7E90C5EUL0xAC424B03E243A8ECUL0x72CD5BE30DD5FCD3UL0x6D019B93F6F97F3AUL
            
0xCD9978FFD21F9193UL0x7573A1C9708029E2UL0xB164326B922A83C3UL0x46883EEE04915870UL
            
0xEAACE3057103ECE6UL0xC54169B808A3535CUL0x4CE754918DDEC47CUL0x0AA2F4DFDC0DF40CUL
            
0x10B76F18A74DBEFAUL0xC6CCB6235AD1AB6AUL0x13726121572FE2FFUL0x1A488C6F199D921EUL
            
0x4BC9F9F4DA0007CAUL0x26F5E6F6E85241C7UL0x859079DBEA5947B6UL0x4F1885C5C99E8C92UL
            
0xD78E761EA96F864BUL0x8E36428C52B5C17DUL0x69CF6827373063C1UL0xB607C93D9BB4C56EUL
            
0x7D820E760E76B5EAUL0x645C9CC6F07FDC42UL0xBF38A078243342E0UL0x5F6B343C9D2E7D04UL
            
0xF2C28AEB600B0EC6UL0x6C0ED85F7254BCACUL0x71592281A4DB4FE5UL0x1967FA69CE0FED9FUL
            
0xFD5293F8B96545DBUL0xC879E9D7F2A7600BUL0x860248920193194EUL0xA4F9533B2D9CC0B3UL
            
0x9053836C15957613UL0xDB6DCF8AFC357BF1UL0x18BEEA7A7A370F57UL0x037117CA50B99066UL
            
0x6AB30A9774424A35UL0xF4E92F02E325249BUL0x7739DB07061CCAE1UL0xD8F3B49CECA42A05UL
            
0xBD56BE3F51382F73UL0x45FAED5843B0BB28UL0x1C813D5C11BF1F83UL0x8AF0E4B6D75FA169UL
            
0x33EE18A487AD9999UL0x3C26E8EAB1C94410UL0xB510102BC0A822F9UL0x141EEF310CE6123BUL
            
0xFC65B90059DDB154UL0xE0158640C5E0E607UL0x884E079826C3A3CFUL0x930D0D9523C535FDUL
            
0x35638D754E9A2B00UL0x4085FCCF40469DD5UL0xC4B17AD28BE23A4CUL0xCAB2F0FC6A3E6A2EUL
            
0x2860971A6B943FCDUL0x3DDE6EE212E30446UL0x6222F32AE01765AEUL0x5D550BB5478308FEUL
            
0xA9EFA98DA0EDA22AUL0xC351A71686C40DA7UL0x1105586D9C867C84UL0xDCFFEE85FDA22853UL
            
0xCCFBD0262C5EEF76UL0xBAF294CB8990D201UL0xE69464F52AFAD975UL0x94B013AFDF133E14UL
            
0x06A7D1A32823C958UL0x6F95FE5130F61119UL0xD92AB34E462C06C0UL0xED7BDE33887C71D2UL
            
0x79746D6E6518393EUL0x5BA419385D713329UL0x7C1BA6B948A97564UL0x31987C197BFDAC67UL
            
0xDE6C23C44B053D02UL0x581C49FED002D64DUL0xDD474D6338261571UL0xAA4546C3E473D062UL
            
0x928FCE349455F860UL0x48161BBACAAB94D9UL0x63912430770E6F68UL0x6EC8A5E602C6641CUL
            
0x87282515337DDD2BUL0x2CDA6B42034B701BUL0xB03D37C181CB096DUL0xE108438266C71C6FUL
            
0x2B3180C7EB51B255UL0xDF92B82F96C08BBCUL0x5C68C8C0A632F3BAUL0x5504CC861C3D0556UL
            
0xABBFA4E55FB26B8FUL0x41848B0AB3BACEB4UL0xB334A273AA445D32UL0xBCA696F0A85AD881UL
            
0x24F6EC65B528D56CUL0x0CE1512E90F4524AUL0x4E9DD79D5506D35AUL0x258905FAC6CE9779UL
            
0x2019295B3E109B33UL0xF8A9478B73A054CCUL0x2924F2F934417EB0UL0x3993357D536D1BC4UL
            
0x38A81AC21DB6FF8BUL0x47C4FBF17D6016BFUL0x1E0FAADD7667E3F5UL0x7ABCFF62938BEB96UL
            
0xA78DAD948FC179C9UL0x8F1F98B72911E50DUL0x61E48EAE27121A91UL0x4D62F7AD31859808UL
            
0xECEBA345EF5CEAEBUL0xF5CEB25EBC9684CEUL0xF633E20CB7F76221UL0xA32CDF06AB8293E4UL
            
0x985A202CA5EE2CA4UL0xCF0B8447CC8A8FB1UL0x9F765244979859A3UL0xA8D516B1A1240017UL
            
0x0BD7BA3EBB5DC726UL0xE54BCA55B86ADB39UL0x1D7A3AFD6C478063UL0x519EC608E7669EDDUL
            
0x0E5715A2D149AA23UL0x177D4571848FF194UL0xEEB55F3241014C22UL0x0F5E5CA13A6E2EC2UL
            
0x8029927B75F5C361UL0xAD139FABC3D6E436UL0x0D5DF1A94CCF402FUL0x3E8BD948BEA5DFC8UL
            
0xA5A0D357BD3FF77EUL0xA2D12E251F74F645UL0x66FD9E525E81A082UL0x2E0C90CE7F687A49UL
            
0xC2E8BCBEBA973BC5UL0x000001BCE509745FUL0x423777BBE6DAB3D6UL0xD1661C7EAEF06EB5UL
            
0xA1781F354DAACFD8UL0x2D11284A2B16AFFCUL0xF1FC4F67FA891D1FUL0x73ECC25DCB920ADAUL
            
0xAE610C22C2A12651UL0x96E0A810D356B78AUL0x5A9A381F2FE7870FUL0xD5AD62EDE94E5530UL
            
0xD225E5E8368D1427UL0x65977B70C7AF4631UL0x99F889B2DE39D74FUL0x233F30BF54E1D143UL
            
0x9A9675D3D9A63C97UL0x5470554FF334F9A8UL0x166ACB744A4F5688UL0x70C74CAAB2E4AEADUL
            
0xF0D091646F294D12UL0x57B82A89684031D1UL0xEFD95A5A61BE0B6BUL0x2FBD12E969F2F29AUL
            
0x9BD37013FEFF9FE8UL0x3F9B0404D6085A06UL0x4940C1F3166CFE15UL0x09542C4DCDF3DEFBUL
            
0xB4C5218385CD5CE3UL0xC935B7DC4462A641UL0x3417F8A68ED3B63FUL0xB80959295B215B40UL
            
0xF99CDAEF3B8C8572UL0x018C0614F8FCB95DUL0x1B14ACCD1A3ACDF3UL0x84D471F200BB732DUL
            
0xC1A3110E95E8DA16UL0x430A7220BF1A82B8UL0xB77E090D39DF210EUL0x5EF4BD9F3CD05E9DUL
            
0x9D4FF6DA7E57A444UL0xDA1D60E183D4A5F8UL0xB287C38417998E47UL0xFE3EDC121BB31886UL
            
0xC7FE3CCC980CCBEFUL0xE46FB590189BFD03UL0x3732FD469A4C57DCUL0x7EF700A07CF1AD65UL
            
0x59C64468A31D8859UL0x762FB0B4D45B61F6UL0x155BAED099047718UL0x68755E4C3D50BAA6UL
            
0xE9214E7F22D8B4DFUL0x2ADDBF532EAC95F4UL0x32AE3909B4BD0109UL0x834DF537B08E3450UL
            
0xFA209DA84220728DUL0x9E691D9B9EFE23F7UL0x0446D288C4AE8D7FUL0x7B4CC524E169785BUL
            
0x21D87F0135CA1385UL0xCEBB400F137B8AA5UL0x272E2B66580796BEUL0x3612264125C2B0DEUL
            
0x057702BDAD1EFBB2UL0xD4BABB8EACF84BE9UL0x91583139641BC67BUL0x8BDC2DE08036E024UL
            
0x603C8156F49F68EDUL0xF7D236F7DBEF5111UL0x9727C4598AD21E80UL0xA08A0896670A5FD7UL
            
0xCB4A8F4309EBA9CBUL0x81AF564B0F7036A1UL0xC0B99AA778199ABDUL0x959F1EC83FC8E952UL
            
0x8C505077794A81B9UL0x3ACAAF8F056338F0UL0x07B43F50627A6778UL0x4A44AB49F5ECCC77UL
            
0x3BC3D6E4B679EE98UL0x9CC0D4D1CF14108CUL0x4406C00B206BC8A0UL0x82A18854C8D72D89UL
            
0x67E366B35C3C432CUL0xB923DD61102B37F2UL0x56AB2779D884271DUL0xBE83E1B0FF1525AFUL
            
0xFB7C65D4217E49A9UL0x6BDBE0E76D48E7D4UL0x08DF828745D9179EUL0x22EA6A9ADD53BD34UL
            
0xE36E141C5622200AUL0x7F805D1B8CB750EEUL0xAFE5C7A59F58E837UL0xE27F996A4FB1C23CUL
            
0xD3867DFB0775F0D0UL0xD0E673DE6E88891AUL0x123AEB9EAFB86C25UL0x30F1D5D5C145B895UL
            
0xBB434A2DEE7269E7UL0x78CB67ECF931FA38UL0xF33B0372323BBF9CUL0x52D66336FB279C74UL
            
0x505F33AC0AFB4EAAUL0xE8A5CD99A2CCE187UL0x534974801E2D30BBUL0x8D2D5711D5876D90UL
            
0x1F1A412891BC038EUL0xD6E2E71D82E56648UL0x74036C3A497732B7UL0x89B67ED96361F5ABUL
            
0xFFED95D8F1EA02A2UL0xE72B3BD61464D43DUL0xA6300F170BDC4820UL0xEBC18760ED78A77AUL };

        public static 
ulong[] SBOX2 = new ulong[0x100] {
            
0xE6A6BE5A05A12138UL0xB5A122A5B4F87C98UL0x563C6089140B6990UL0x4C46CB2E391F5DD5UL
            
0xD932ADDBC9B79434UL0x08EA70E42015AFF5UL0xD765A6673E478CF1UL0xC4FB757EAB278D99UL
            
0xDF11C6862D6E0692UL0xDDEB84F10D7F3B16UL0x6F2EF604A665EA04UL0x4A8E0F0FF0E0DFB3UL
            
0xA5EDEEF83DBCBA51UL0xFC4F0A2A0EA4371EUL0xE83E1DA85CB38429UL0xDC8FF882BA1B1CE2UL
            
0xCD45505E8353E80DUL0x18D19A00D4DB0717UL0x34A0CFEDA5F38101UL0x0BE77E518887CAF2UL
            
0x1E341438B3C45136UL0xE05797F49089CCF9UL0xFFD23F9DF2591D14UL0x543DDA228595C5CDUL
            
0x661F81FD99052A33UL0x8736E641DB0F7B76UL0x15227725418E5307UL0xE25F7F46162EB2FAUL
            
0x48A8B2126C13D9FEUL0xAFDC541792E76EEAUL0x03D912BFC6D1898FUL0x31B1AAFA1B83F51BUL
            
0xF1AC2796E42AB7D9UL0x40A3A7D7FCD2EBACUL0x1056136D0AFBBCC5UL0x7889E1DD9A6D0C85UL
            
0xD33525782A7974AAUL0xA7E25D09078AC09BUL0xBD4138B3EAC6EDD0UL0x920ABFBE71EB9E70UL
            
0xA2A5D0F54FC2625CUL0xC054E36B0B1290A3UL0xF6DD59FF62FE932BUL0x3537354511A8AC7DUL
            
0xCA845E9172FADCD4UL0x84F82B60329D20DCUL0x79C62CE1CD672F18UL0x8B09A2ADD124642CUL
            
0xD0C1E96A19D9E726UL0x5A786A9B4BA9500CUL0x0E020336634C43F3UL0xC17B474AEB66D822UL
            
0x6A731AE3EC9BAAC2UL0x8226667AE0840258UL0x67D4567691CAECA5UL0x1D94155C4875ADB5UL
            
0x6D00FD985B813FDFUL0x51286EFCB774CD06UL0x5E8834471FA744AFUL0xF72CA0AEE761AE2EUL
            
0xBE40E4CDAEE8E09AUL0xE9970BBB5118F665UL0x726E4BEB33DF1964UL0x703B000729199762UL
            
0x4631D816F5EF30A7UL0xB880B5B51504A6BEUL0x641793C37ED84B6CUL0x7B21ED77F6E97D96UL
            
0x776306312EF96B73UL0xAE528948E86FF3F4UL0x53DBD7F286A3F8F8UL0x16CADCE74CFC1063UL
            
0x005C19BDFA52C6DDUL0x68868F5D64D46AD3UL0x3A9D512CCF1E186AUL0x367E62C2385660AEUL
            
0xE359E7EA77DCB1D7UL0x526C0773749ABE6EUL0x735AE5F9D09F734BUL0x493FC7CC8A558BA8UL
            
0xB0B9C1533041AB45UL0x321958BA470A59BDUL0x852DB00B5F46C393UL0x91209B2BD336B0E5UL
            
0x6E604F7D659EF19FUL0xB99A8AE2782CCB24UL0xCCF52AB6C814C4C7UL0x4727D9AFBE11727BUL
            
0x7E950D0C0121B34DUL0x756F435670AD471FUL0xF5ADD442615A6849UL0x4E87E09980B9957AUL
            
0x2ACFA1DF50AEE355UL0xD898263AFD2FD556UL0xC8F4924DD80C8FD6UL0xCF99CA3D754A173AUL
            
0xFE477BACAF91BF3CUL0xED5371F6D690C12DUL0x831A5C285E687094UL0xC5D3C90A3708A0A4UL
            
0x0F7F903717D06580UL0x19F9BB13B8FDF27FUL0xB1BD6F1B4D502843UL0x1C761BA38FFF4012UL
            
0x0D1530C4E2E21F3BUL0x8943CE69A7372C8AUL0xE5184E11FEB5CE66UL0x618BDB80BD736621UL
            
0x7D29BAD68B574D0BUL0x81BB613E25E6FE5BUL0x071C9C10BC07913FUL0xC7BEEB7909AC2D97UL
            
0xC3E58D353BC5D757UL0xEB017892F38F61E8UL0xD4EFFB9C9B1CC21AUL0x99727D26F494F7ABUL
            
0xA3E063A2956B3E03UL0x9D4A8B9A4AA09C30UL0x3F6AB7D500090FB4UL0x9CC0F2A057268AC0UL
            
0x3DEE9D2DEDBF42D1UL0x330F49C87960A972UL0xC6B2720287421B41UL0x0AC59EC07C00369CUL
            
0xEF4EAC49CB353425UL0xF450244EEF0129D8UL0x8ACC46E5CAF4DEB6UL0x2FFEAB63989263F7UL
            
0x8F7CB9FE5D7A4578UL0x5BD8F7644E634635UL0x427A7315BF2DC900UL0x17D0C4AA2125261CUL
            
0x3992486C93518E50UL0xB4CBFEE0A2D7D4C3UL0x7C75D6202C5DDD8DUL0xDBC295D8E35B6C61UL
            
0x60B369D302032B19UL0xCE42685FDCE44132UL0x06F3DDB9DDF65610UL0x8EA4D21DB5E148F0UL
            
0x20B0FCE62FCD496FUL0x2C1B912358B0EE31UL0xB28317B818F5A308UL0xA89C1E189CA6D2CFUL
            
0x0C6B18576AAADBC8UL0xB65DEAA91299FAE3UL0xFB2B794B7F1027E7UL0x04E4317F443B5BEBUL
            
0x4B852D325939D0A6UL0xD5AE6BEEFB207FFCUL0x309682B281C7D374UL0xBAE309A194C3B475UL
            
0x8CC3F97B13B49F05UL0x98A9422FF8293967UL0x244B16B01076FF7CUL0xF8BF571C663D67EEUL
            
0x1F0D6758EEE30DA1UL0xC9B611D97ADEB9B7UL0xB7AFD5887B6C57A2UL0x6290AE846B984FE1UL
            
0x94DF4CDEACC1A5FDUL0x058A5BD1C5483AFFUL0x63166CC142BA3C37UL0x8DB8526EB2F76F40UL
            
0xE10880036F0D6D4EUL0x9E0523C9971D311DUL0x45EC2824CC7CD691UL0x575B8359E62382C9UL
            
0xFA9E400DC4889995UL0xD1823ECB45721568UL0xDAFD983B8206082FUL0xAA7D29082386A8CBUL
            
0x269FCD4403B87588UL0x1B91F5F728BDD1E0UL0xE4669F39040201F6UL0x7A1D7C218CF04ADEUL
            
0x65623C29D79CE5CEUL0x2368449096C00BB1UL0xAB9BF1879DA503BAUL0xBC23ECB1A458058EUL
            
0x9A58DF01BB401ECCUL0xA070E868A85F143DUL0x4FF188307DF2239EUL0x14D565B41A641183UL
            
0xEE13337452701602UL0x950E3DCF3F285E09UL0x59930254B9C80953UL0x3BF299408930DA6DUL
            
0xA955943F53691387UL0xA15EDECAA9CB8784UL0x29142127352BE9A0UL0x76F0371FFF4E7AFBUL
            
0x0239F450274F2228UL0xBB073AF01D5E868BUL0xBFC80571C10E96C1UL0xD267088568222E23UL
            
0x9671A3D48E80B5B0UL0x55B5D38AE193BB81UL0x693AE2D0A18B04B8UL0x5C48B4ECADD5335FUL
            
0xFD743B194916A1CAUL0x2577018134BE98C4UL0xE77987E83C54A4ADUL0x28E11014DA33E1B9UL
            
0x270CC59E226AA213UL0x71495F756D1A5F60UL0x9BE853FB60AFEF77UL0xADC786A7F7443DBFUL
            
0x0904456173B29A82UL0x58BC7A66C232BD5EUL0xF306558C673AC8B2UL0x41F639C6B6C9772AUL
            
0x216DEFE99FDA35DAUL0x11640CC71C7BE615UL0x93C43694565C5527UL0xEA038E6246777839UL
            
0xF9ABF3CE5A3E2469UL0x741E768D0FD312D2UL0x0144B883CED652C6UL0xC20B5A5BA33F8552UL
            
0x1AE69633C3435A9DUL0x97A28CA4088CFDECUL0x8824A43C1E96F420UL0x37612FA66EEEA746UL
            
0x6B4CB165F9CF0E5AUL0x43AA1C06A0ABFB4AUL0x7F4DC26FF162796BUL0x6CBACC8E54ED9B0FUL
            
0xA6B7FFEFD2BB253EUL0x2E25BC95B0A29D4FUL0x86D6A58BDEF1388CUL0xDED74AC576B6F054UL
            
0x8030BDBC2B45805DUL0x3C81AF70E94D9289UL0x3EFF6DDA9E3100DBUL0xB38DC39FDFCC8847UL
            
0x123885528D17B87EUL0xF2DA0ED240B1B642UL0x44CEFADCD54BF9A9UL0x1312200E433C7EE6UL
            
0x9FFCC84F3A78C748UL0xF0CD1F72248576BBUL0xEC6974053638CFE4UL0x2BA7B67C0CEC4E4CUL
            
0xAC2F4DF3E5CE32EDUL0xCB33D14326EA4C11UL0xA4E9044CC77E58BCUL0x5F513293D934FCEFUL
            
0x5DC9645506E55444UL0x50DE418F317DE40AUL0x388CB31A69DDE259UL0x2DB4A83455820A86UL
            
0x9010A91E84711AE9UL0x4DF7F0B7B1498371UL0xD62A2EABC0977179UL0x22FAC097AA8D5C0EUL };

        public static 
ulong[] SBOX3 = new ulong[0x100] {
            
0xF49FCC2FF1DAF39BUL0x487FD5C66FF29281UL0xE8A30667FCDCA83FUL0x2C9B4BE3D2FCCE63UL
            
0xDA3FF74B93FBBBC2UL0x2FA165D2FE70BA66UL0xA103E279970E93D4UL0xBECDEC77B0E45E71UL
            
0xCFB41E723985E497UL0xB70AAA025EF75017UL0xD42309F03840B8E0UL0x8EFC1AD035898579UL
            
0x96C6920BE2B2ABC5UL0x66AF4163375A9172UL0x2174ABDCCA7127FBUL0xB33CCEA64A72FF41UL
            
0xF04A4933083066A5UL0x8D970ACDD7289AF5UL0x8F96E8E031C8C25EUL0xF3FEC02276875D47UL
            
0xEC7BF310056190DDUL0xF5ADB0AEBB0F1491UL0x9B50F8850FD58892UL0x4975488358B74DE8UL
            
0xA3354FF691531C61UL0x0702BBE481D2C6EEUL0x89FB24057DEDED98UL0xAC3075138596E902UL
            
0x1D2D3580172772EDUL0xEB738FC28E6BC30DUL0x5854EF8F63044326UL0x9E5C52325ADD3BBEUL
            
0x90AA53CF325C4623UL0xC1D24D51349DD067UL0x2051CFEEA69EA624UL0x13220F0A862E7E4FUL
            
0xCE39399404E04864UL0xD9C42CA47086FCB7UL0x685AD2238A03E7CCUL0x066484B2AB2FF1DBUL
            
0xFE9D5D70EFBF79ECUL0x5B13B9DD9C481854UL0x15F0D475ED1509ADUL0x0BEBCD060EC79851UL
            
0xD58C6791183AB7F8UL0xD1187C5052F3EEE4UL0xC95D1192E54E82FFUL0x86EEA14CB9AC6CA2UL
            
0x3485BEB153677D5DUL0xDD191D781F8C492AUL0xF60866BAA784EBF9UL0x518F643BA2D08C74UL
            
0x8852E956E1087C22UL0xA768CB8DC410AE8DUL0x38047726BFEC8E1AUL0xA67738B4CD3B45AAUL
            
0xAD16691CEC0DDE19UL0xC6D4319380462E07UL0xC5A5876D0BA61938UL0x16B9FA1FA58FD840UL
            
0x188AB1173CA74F18UL0xABDA2F98C99C021FUL0x3E0580AB134AE816UL0x5F3B05B773645ABBUL
            
0x2501A2BE5575F2F6UL0x1B2F74004E7E8BA9UL0x1CD7580371E8D953UL0x7F6ED89562764E30UL
            
0xB15926FF596F003DUL0x9F65293DA8C5D6B9UL0x6ECEF04DD690F84CUL0x4782275FFF33AF88UL
            
0xE41433083F820801UL0xFD0DFE409A1AF9B5UL0x4325A3342CDB396BUL0x8AE77E62B301B252UL
            
0xC36F9E9F6655615AUL0x85455A2D92D32C09UL0xF2C7DEA949477485UL0x63CFB4C133A39EBAUL
            
0x83B040CC6EBC5462UL0x3B9454C8FDB326B0UL0x56F56A9E87FFD78CUL0x2DC2940D99F42BC6UL
            
0x98F7DF096B096E2DUL0x19A6E01E3AD852BFUL0x42A99CCBDBD4B40BUL0xA59998AF45E9C559UL
            
0x366295E807D93186UL0x6B48181BFAA1F773UL0x1FEC57E2157A0A1DUL0x4667446AF6201AD5UL
            
0xE615EBCACFB0F075UL0xB8F31F4F68290778UL0x22713ED6CE22D11EUL0x3057C1A72EC3C93BUL
            
0xCB46ACC37C3F1F2FUL0xDBB893FD02AAF50EUL0x331FD92E600B9FCFUL0xA498F96148EA3AD6UL
            
0xA8D8426E8B6A83EAUL0xA089B274B7735CDCUL0x87F6B3731E524A11UL0x118808E5CBC96749UL
            
0x9906E4C7B19BD394UL0xAFED7F7E9B24A20CUL0x6509EADEEB3644A7UL0x6C1EF1D3E8EF0EDEUL
            
0xB9C97D43E9798FB4UL0xA2F2D784740C28A3UL0x7B8496476197566FUL0x7A5BE3E6B65F069DUL
            
0xF96330ED78BE6F10UL0xEEE60DE77A076A15UL0x2B4BEE4AA08B9BD0UL0x6A56A63EC7B8894EUL
            
0x02121359BA34FEF4UL0x4CBF99F8283703FCUL0x398071350CAF30C8UL0xD0A77A89F017687AUL
            
0xF1C1A9EB9E423569UL0x8C7976282DEE8199UL0x5D1737A5DD1F7ABDUL0x4F53433C09A9FA80UL
            
0xFA8B0C53DF7CA1D9UL0x3FD9DCBC886CCB77UL0xC040917CA91B4720UL0x7DD00142F9D1DCDFUL
            
0x8476FC1D4F387B58UL0x23F8E7C5F3316503UL0x032A2244E7E37339UL0x5C87A5D750F5A74BUL
            
0x082B4CC43698992EUL0xDF917BECB858F63CUL0x3270B8FC5BF86DDAUL0x10AE72BB29B5DD76UL
            
0x576AC94E7700362BUL0x1AD112DAC61EFB8FUL0x691BC30EC5FAA427UL0xFF246311CC327143UL
            
0x3142368E30E53206UL0x71380E31E02CA396UL0x958D5C960AAD76F1UL0xF8D6F430C16DA536UL
            
0xC8FFD13F1BE7E1D2UL0x7578AE66004DDBE1UL0x05833F01067BE646UL0xBB34B5AD3BFE586DUL
            
0x095F34C9A12B97F0UL0x247AB64525D60CA8UL0xDCDBC6F3017477D1UL0x4A2E14D4DECAD24DUL
            
0xBDB5E6D9BE0A1EEBUL0x2A7E70F7794301ABUL0xDEF42D8A270540FDUL0x01078EC0A34C22C1UL
            
0xE5DE511AF4C16387UL0x7EBB3A52BD9A330AUL0x77697857AA7D6435UL0x004E831603AE4C32UL
            
0xE7A21020AD78E312UL0x9D41A70C6AB420F2UL0x28E06C18EA1141E6UL0xD2B28CBD984F6B28UL
            
0x26B75F6C446E9D83UL0xBA47568C4D418D7FUL0xD80BADBFE6183D8EUL0x0E206D7F5F166044UL
            
0xE258A43911CBCA3EUL0x723A1746B21DC0BCUL0xC7CAA854F5D7CDD3UL0x7CAC32883D261D9CUL
            
0x7690C26423BA942CUL0x17E55524478042B8UL0xE0BE477656A2389FUL0x4D289B5E67AB2DA0UL
            
0x44862B9C8FBBFD31UL0xB47CC8049D141365UL0x822C1B362B91C793UL0x4EB14655FB13DFD8UL
            
0x1ECBBA0714E2A97BUL0x6143459D5CDE5F14UL0x53A8FBF1D5F0AC89UL0x97EA04D81C5E5B00UL
            
0x622181A8D4FDB3F3UL0xE9BCD341572A1208UL0x1411258643CCE58AUL0x9144C5FEA4C6E0A4UL
            
0x0D33D06565CF620FUL0x54A48D489F219CA1UL0xC43E5EAC6D63C821UL0xA9728B3A72770DAFUL
            
0xD7934E7B20DF87EFUL0xE35503B61A3E86E5UL0xCAE321FBC819D504UL0x129A50B3AC60BFA6UL
            
0xCD5E68EA7E9FB6C3UL0xB01C90199483B1C7UL0x3DE93CD5C295376CUL0xAED52EDF2AB9AD13UL
            
0x2E60F512C0A07884UL0xBC3D86A3E36210C9UL0x35269D9B163951CEUL0x0C7D6E2AD0CDB5FAUL
            
0x59E86297D87F5733UL0x298EF221898DB0E7UL0x55000029D1A5AA7EUL0x8BC08AE1B5061B45UL
            
0xC2C31C2B6C92703AUL0x94CC596BAF25EF42UL0x0A1D73DB22540456UL0x04B6A0F9D9C4179AUL
            
0xEFFDAFA2AE3D3C60UL0xF7C8075BB49496C4UL0x9CC5C7141D1CD4E3UL0x78BD1638218E5534UL
            
0xB2F11568F850246AUL0xEDFABCFA9502BC29UL0x796CE5F2DA23051BUL0xAAE128B0DC93537CUL
            
0x3A493DA0EE4B29AEUL0xB5DF6B2C416895D7UL0xFCABBD25122D7F37UL0x70810B58105DC4B1UL
            
0xE10FDD37F7882A90UL0x524DCAB5518A3F5CUL0x3C9E85878451255BUL0x4029828119BD34E2UL
            
0x74A05B6F5D3CECCBUL0xB610021542E13ECAUL0x0FF979D12F59E2ACUL0x6037DA27E4F9CC50UL
            
0x5E92975A0DF1847DUL0xD66DE190D3E623FEUL0x5032D6B87B568048UL0x9A36B7CE8235216EUL
            
0x80272A7A24F64B4AUL0x93EFED8B8C6916F7UL0x37DDBFF44CCE1555UL0x4B95DB5D4B99BD25UL
            
0x92D3FDA169812FC0UL0xFB1A4A9A90660BB6UL0x730C196946A4B9B2UL0x81E289AA7F49DA68UL
            
0x64669A0F83B1A05FUL0x27B3FF7D9644F48BUL0xCC6B615C8DB675B3UL0x674F20B9BCEBBE95UL
            
0x6F31238275655982UL0x5AE488713E45CF05UL0xBF619F9954C21157UL0xEABAC46040A8EAE9UL
            
0x454C6FE9F2C0C1CDUL0x419CF6496412691CUL0xD3DC3BEF265B0F70UL0x6D0E60F5C3578A9EUL };

        public static 
ulong[] SBOX4 = new ulong[0x100] {
            
0x5B0E608526323C55UL0x1A46C1A9FA1B59F5UL0xA9E245A17C4C8FFAUL0x65CA5159DB2955D7UL
            
0x05DB0A76CE35AFC2UL0x81EAC77EA9113D45UL0x528EF88AB6AC0A0DUL0xA09EA253597BE3FFUL
            
0x430DDFB3AC48CD56UL0xC4B3A67AF45CE46FUL0x4ECECFD8FBE2D05EUL0x3EF56F10B39935F0UL
            
0x0B22D6829CD619C6UL0x17FD460A74DF2069UL0x6CF8CC8E8510ED40UL0xD6C824BF3A6ECAA7UL
            
0x61243D581A817049UL0x048BACB6BBC163A2UL0xD9A38AC27D44CC32UL0x7FDDFF5BAAF410ABUL
            
0xAD6D495AA804824BUL0xE1A6A74F2D8C9F94UL0xD4F7851235DEE8E3UL0xFD4B7F886540D893UL
            
0x247C20042AA4BFDAUL0x096EA1C517D1327CUL0xD56966B4361A6685UL0x277DA5C31221057DUL
            
0x94D59893A43ACFF7UL0x64F0C51CCDC02281UL0x3D33BCC4FF6189DBUL0xE005CB184CE66AF1UL
            
0xFF5CCD1D1DB99BEAUL0xB0B854A7FE42980FUL0x7BD46A6A718D4B9FUL0xD10FA8CC22A5FD8CUL
            
0xD31484952BE4BD31UL0xC7FA975FCB243847UL0x4886ED1E5846C407UL0x28CDDB791EB70B04UL
            
0xC2B00BE2F573417FUL0x5C9590452180F877UL0x7A6BDDFFF370EB00UL0xCE509E38D6D9D6A4UL
            
0xEBEB0F00647FA702UL0x1DCC06CF76606F06UL0xE4D9F28BA286FF0AUL0xD85A305DC918C262UL
            
0x475B1D8732225F54UL0x2D4FB51668CCB5FEUL0xA679B9D9D72BBA20UL0x53841C0D912D43A5UL
            
0x3B7EAA48BF12A4E8UL0x781E0E47F22F1DDFUL0xEFF20CE60AB50973UL0x20D261D19DFFB742UL
            
0x16A12B03062A2E39UL0x1960EB2239650495UL0x251C16FED50EB8B8UL0x9AC0C330F826016EUL
            
0xED152665953E7671UL0x02D63194A6369570UL0x5074F08394B1C987UL0x70BA598C90B25CE1UL
            
0x794A15810B9742F6UL0x0D5925E9FCAF8C6CUL0x3067716CD868744EUL0x910AB077E8D7731BUL
            
0x6A61BBDB5AC42F61UL0x93513EFBF0851567UL0xF494724B9E83E9D5UL0xE887E1985C09648DUL
            
0x34B1D3C675370CFDUL0xDC35E433BC0D255DUL0xD0AAB84234131BE0UL0x08042A50B48B7EAFUL
            
0x9997C4EE44A3AB35UL0x829A7B49201799D0UL0x263B8307B7C54441UL0x752F95F4FD6A6CA6UL
            
0x927217402C08C6E5UL0x2A8AB754A795D9EEUL0xA442F7552F72943DUL0x2C31334E19781208UL
            
0x4FA98D7CEAEE6291UL0x55C3862F665DB309UL0xBD0610175D53B1F3UL0x46FE6CB840413F27UL
            
0x3FE03792DF0CFA59UL0xCFE700372EB85E8FUL0xA7BE29E7ADBCE118UL0xE544EE5CDE8431DDUL
            
0x8A781B1B41F1873EUL0xA5C94C78A0D2F0E7UL0x39412E2877B60728UL0xA1265EF3AFC9A62CUL
            
0xBCC2770C6A2506C5UL0x3AB66DD5DCE1CE12UL0xE65499D04A675B37UL0x7D8F523481BFD216UL
            
0x0F6F64FCEC15F389UL0x74EFBE618B5B13C8UL0xACDC82B714273E1DUL0xDD40BFE003199D17UL
            
0x37E99257E7E061F8UL0xFA52626904775AAAUL0x8BBBF63A463D56F9UL0xF0013F1543A26E64UL
            
0xA8307E9F879EC898UL0xCC4C27A4150177CCUL0x1B432F2CCA1D3348UL0xDE1D1F8F9F6FA013UL
            
0x606602A047A7DDD6UL0xD237AB64CC1CB2C7UL0x9B938E7225FCD1D3UL0xEC4E03708E0FF476UL
            
0xFEB2FBDA3D03C12DUL0xAE0BCED2EE43889AUL0x22CB8923EBFB4F43UL0x69360D013CF7396DUL
            
0x855E3602D2D4E022UL0x073805BAD01F784CUL0x33E17A133852F546UL0xDF4874058AC7B638UL
            
0xBA92B29C678AA14AUL0x0CE89FC76CFAADCDUL0x5F9D4E0908339E34UL0xF1AFE9291F5923B9UL
            
0x6E3480F60F4A265FUL0xEEBF3A2AB29B841CUL0xE21938A88F91B4ADUL0x57DFEFF845C6D3C3UL
            
0x2F006B0BF62CAAF2UL0x62F479EF6F75EE78UL0x11A55AD41C8916A9UL0xF229D29084FED453UL
            
0x42F1C27B16B000E6UL0x2B1F76749823C074UL0x4B76ECA3C2745360UL0x8C98F463B91691BDUL
            
0x14BCC93CF1ADE66AUL0x8885213E6D458397UL0x8E177DF0274D4711UL0xB49B73B5503F2951UL
            
0x10168168C3F96B6BUL0x0E3D963B63CAB0AEUL0x8DFC4B5655A1DB14UL0xF789F1356E14DE5CUL
            
0x683E68AF4E51DAC1UL0xC9A84F9D8D4B0FD9UL0x3691E03F52A0F9D1UL0x5ED86E46E1878E80UL
            
0x3C711A0E99D07150UL0x5A0865B20C4E9310UL0x56FBFC1FE4F0682EUL0xEA8D5DE3105EDF9BUL
            
0x71ABFDB12379187AUL0x2EB99DE1BEE77B9CUL0x21ECC0EA33CF4523UL0x59A4D7521805C7A1UL
            
0x3896F5EB56AE7C72UL0xAA638F3DB18F75DCUL0x9F39358DABE9808EUL0xB7DEFA91C00B72ACUL
            
0x6B5541FD62492D92UL0x6DC6DEE8F92E4D5BUL0x353F57ABC4BEEA7EUL0x735769D6DA5690CEUL
            
0x0A234AA642391484UL0xF6F9508028F80D9DUL0xB8E319A27AB3F215UL0x31AD9C1151341A4DUL
            
0x773C22A57BEF5805UL0x45C7561A07968633UL0xF913DA9E249DBE36UL0xDA652D9B78A64C68UL
            
0x4C27A97F3BC334EFUL0x76621220E66B17F4UL0x967743899ACD7D0BUL0xF3EE5BCAE0ED6782UL
            
0x409F753600C879FCUL0x06D09A39B5926DB6UL0x6F83AEB0317AC588UL0x01E6CA4A86381F21UL
            
0x66FF3462D19F3025UL0x72207C24DDFD3BFBUL0x4AF6B6D3E2ECE2EBUL0x9C994DBEC7EA08DEUL
            
0x49ACE597B09A8BC4UL0xB38C4766CF0797BAUL0x131B9373C57C2A75UL0xB1822CCE61931E58UL
            
0x9D7555B909BA1C0CUL0x127FAFDD937D11D2UL0x29DA3BADC66D92E4UL0xA2C1D57154C2ECBCUL
            
0x58C5134D82F6FE24UL0x1C3AE3515B62274FUL0xE907C82E01CB8126UL0xF8ED091913E37FCBUL
            
0x3249D8F9C80046C9UL0x80CF9BEDE388FB63UL0x1881539A116CF19EUL0x5103F3F76BD52457UL
            
0x15B7E6F5AE47F7A8UL0xDBD7C6DED47E9CCFUL0x44E55C410228BB1AUL0xB647D4255EDB4E99UL
            
0x5D11882BB8AAFC30UL0xF5098BBB29D3212AUL0x8FB5EA14E90296B3UL0x677B942157DD025AUL
            
0xFB58E7C0A390ACB5UL0x89D3674C83BD4A01UL0x9E2DA4DF4BF3B93BUL0xFCC41E328CAB4829UL
            
0x03F38C96BA582C52UL0xCAD1BDBD7FD85DB2UL0xBBB442C16082AE83UL0xB95FE86BA5DA9AB0UL
            
0xB22E04673771A93FUL0x845358C9493152D8UL0xBE2A488697B4541EUL0x95A2DC2DD38E6966UL
            
0xC02C11AC923C852BUL0x2388B1990DF2A87BUL0x7C8008FA1B4F37BEUL0x1F70D0C84D54E503UL
            
0x5490ADEC7ECE57D4UL0x002B3C27D9063A3AUL0x7EAEA3848030A2BFUL0xC602326DED2003C0UL
            
0x83A7287D69A94086UL0xC57A5FCB30F57A8AUL0xB56844E479EBE779UL0xA373B40F05DCBCE9UL
            
0xD71A786E88570EE2UL0x879CBACDBDE8F6A0UL0x976AD1BCC164A32FUL0xAB21E25E9666D78BUL
            
0x901063AAE5E5C33CUL0x9818B34448698D90UL0xE36487AE3E1E8ABBUL0xAFBDF931893BDCB4UL
            
0x6345A0DC5FBBD519UL0x8628FE269B9465CAUL0x1E5D01603F9C51ECUL0x4DE44006A15049B7UL
            
0xBF6C70E5F776CBB1UL0x411218F2EF552BEDUL0xCB0C0708705A36A3UL0xE74D14754F986044UL
            
0xCD56D9430EA8280EUL0xC12591D7535F5065UL0xC83223F1720AEF96UL0xC3A0396F7363A51FUL };
        
#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 != 0)
            {
                
byte[] buffer = new byte[input.Length + (input.Length 8)];
                
System.Buffer.BlockCopy(input0buffer0input.Length);
                
input buffer;
            }
            for (
int j 0input.Length 8j++)
                
_x[j] = ((ulong)input[7] << 56) | ((ulong)input[6] << 48) |
                        ((
ulong)input[5] << 40) | ((ulong)input[4] << 32) |
                        ((
ulong)input[3] << 24) | ((ulong)input[2] << 16) |
                        ((
ulong)input[1] << 8) | ((ulong)input[j]);
            
ulong A _digest[0], _digest[1], _digest[2];
            
Round(ref Aref Bref C_x[0], 5); Round(ref Bref Cref A_x[1], 5); Round(ref Cref Aref B_x[2], 5);
            
Round(ref Aref Bref C_x[3], 5); Round(ref Bref Cref A_x[4], 5); Round(ref Cref Aref B_x[5], 5);
            
Round(ref Aref Bref C_x[6], 5); Round(ref Bref Cref 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 Cref Aref B_x[0], 7); Round(ref Aref Bref C_x[1], 7); Round(ref Bref Cref A_x[2], 7);
            
Round(ref Cref Aref B_x[3], 7); Round(ref Aref Bref C_x[4], 7); Round(ref Bref Cref A_x[5], 7);
            
Round(ref Cref Aref B_x[6], 7); Round(ref Aref Bref 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 Bref Cref A_x[0], 9); Round(ref Cref Aref B_x[1], 9); Round(ref Aref Bref C_x[2], 9);
            
Round(ref Bref Cref A_x[3], 9); Round(ref Cref Aref B_x[4], 9); Round(ref Aref Bref C_x[5], 9);
            
Round(ref Bref Cref A_x[6], 9); Round(ref Cref Aref B_x[7], 9);
            
_digest[0] ^= A_digest[1] = _digest[1]; _digest[2] += C;
        }
        [
MethodImpl(MethodImplOptions.AggressiveInlining)]
        private 
void Round(ref ulong Aref ulong Bref ulong Culong msgulong mult)
        {
            
^= msg;
            
-= SBOX1[GetByte(7C)] ^ SBOX2[GetByte(5C)] ^
                 
SBOX3[GetByte(3C)] ^ SBOX4[GetByte(1C)];
            
-= SBOX1[GetByte(0C)] ^ SBOX2[GetByte(2C)] ^
                 
SBOX3[GetByte(4C)] ^ SBOX4[GetByte(6C)];
            
*= mult;
        }
        public 
byte[] Final(int hashLength)
        {
            
byte[] result = new byte[hashLength];
            
_buffer[0] = 0x01;
            for (
int j BLOCKSIZE 8BLOCKSIZEj++)
                
_buffer[j] = GetByte(- (8), _count);
            
Hash(_buffer);
            for (
int j 0hashLengthj++)
                
result[j] = GetByte(- (8), _digest[(8) % 3]);
            return 
result;
        }
        private static 
byte GetByte(int byteNumulong input)
        {
            return (
byte)(input >> ((sizeof(ulong) - - (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 keystring saltstring 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 (byteptr buffer)
            {
                *(
uint*)(ptr) = input[0];
                *(
uint*)(ptr 4) = input[1];
            }
            
_rivest.Encrypt(buffer);
            return new 
uint[2] { BitConverter.ToUInt32(buffer0), BitConverter.ToUInt32(buffer4) };
        }
        public 
uint[] Decrypt(uint[] input)
        {
            
byte[] buffer = new byte[8];
            
fixed (byteptr buffer)
            {
                *(
uint*)(ptr 0) = input[0];
                *(
uint*)(ptr 4) = input[1];
            }
            
_rivest.Decrypt(buffer);
            return new 
uint[2] { BitConverter.ToUInt32(buffer0), BitConverter.ToUInt32(buffer4) };
        }
    }

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


كود:
#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 

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

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

تعليقات