Egy4U
اسم العضو كلمة المرور حفظ البيانات؟ إنشاء حساب








أخر مواضيع ايجى4يو

ايجى4يو || Egy4u > أقسام كونكر برفيت > تطوير سيرفرات كـــونـــكر تـــهيس
Transfer System


المشاركات: 314 [+]
المخالفات: [+]
Senior.Egy4U غير متواجد حالياً
Senior.Egy4U
( ( عضو جديد ) )
Transfer System
: 07-15-2017 فى تمام الساعة 01:21 AM| المشاركة رقم: 1| من قسم: تطوير سيرفرات كـــونـــكر تـــهيس

New Update in ConquerOnline [JiangHuUpdate] in Packet 2702.

Html

Source Eslam Reda 
Solve the problem JiangHu

Html

using System;
using COServer.Network;
 
السلام عليكم
طبعا الناس اللي الكانت عايزة شرح تركيب للسيستيم انا هنزلوا 
بس فـ الاول دا لسورس Emulator عشان فيه اكونت سيرفر طبعا
المهم ركز معايا كده وامشي واحده واحدة 

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

هنعمل كلاس
/class جديد في الMsgServer
[IMG]http://i.imgur.com/gV6sZne.png?1[/IMG]


نسميه Transfer
ونحط الاكواد دي فيه
[PHP]/* 
* Source Has been fixed by LeGoOo 
* we are not afraid from any one 
* this just for ppl, and the ****ing babys ! bitchs O.o 
* so when you will work with this source leave mysterious coder(MohamedAgag<< LeGoOo :D) copyright 
* because this my work so leave it xD ^_^ * here LeGoOo so have fun
* Mohamed Medhat >> https://www.facebook.com/m.m.aggag
*/
using AccServer.Database;
using COServer.Client;
namespace 
COServer
{
    public 
unsafe class Transfer
    
{
        public static 
uint 
            Times 
3,
            
Cost 2999;
        public static 
uint IsOnlinecantransEveOfWar_EUWarLord;
        public static 
bool StartStatusDTrans false;
        public static 
void CheckServer(string serverGameState client)
        {

            
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("accounts").Where("EntityID"client.Entity.UID))
            
using (var reader = new MySqlReader(cmd))
            {
                if (
reader.Read())
                {
                    
cantrans reader.ReadUInt32("CanTrans");
                }
            }
            if (
cantrans >= Times)
            {
                
client.MessageBox("Oooh o.o ! you already transfered (3) 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 [" + (Times 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.Entity.ConquerPoints Cost)
                         {
                             
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name"server))
                             
using (var reader = new MySqlReader(cmd))
                             {
                                 if (
reader.Read())
                                 {
                                     
IsOnline reader.ReadUInt32("Online");
                                 }
                             }
                             if (
IsOnline == 1)
                             {
                                 
using (MySqlCommand cmd = new MySqlCommand(MySqlCommandType.UPDATE))
                                     
cmd.Update("accounts").Set("server"server)
                                         .
Where("EntityID"client.Entity.UID).Execute();
                                 
cantrans++;
                                 
using (MySqlCommand cmd = new MySqlCommand(MySqlCommandType.UPDATE))
                                     
cmd.Update("accounts").Set("CanTrans"cantrans)
                                         .
Where("EntityID"client.Entity.UID).Execute();
                                 
client.Entity.ConquerPoints -= Cost;
                                 
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 " Cost " CPs."nullnull0);
                             return;
                         }
                     }
                 });
            }
        }
        public static 
void StatusServers()
        {
            
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name""EveOfWar_EU"))
            
using (var reader = new MySqlReader(cmd))
            {
                if (
reader.Read())
                {
                    
EveOfWar_EU reader.ReadUInt32("Online");
                }
            }
            
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name""WarLord"))
            
using (var reader = new MySqlReader(cmd))
            {
                if (
reader.Read())
                {
                    
WarLord reader.ReadUInt32("Online");
                }
            }
        }
    }

لحد دلوقتي اظن ان مفيش مشكله

هنفتح كلاس/class اسمه DataHolderTable.cs في ملف Database

هتلاقي في فويد اسمه

Html

public static MYSQLCONNECTION MySqlConnection 
اقفله من السالب وامسحو

وحط الاكواد بدل اللي مسحتو

Html

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;
            }
        } 
هيجيلك ايرور فـ CONNECTION_ACC_SERVER

هتطلع فوق خالص هتلاقي الusing دا

Html

using MYSQLCONNECTION MySql.Data.MySqlClient.MySqlConnection
هنحط تحتيه دا

Html

using CONNECTION_ACC_SERVER MySql.Data.MySqlClient.MySqlConnection
تمام كده و بعدين حمل الملف ده
MySql%20Acc طھط*ظ…ظٹظ„ â—ڈ ظ…ط±ظƒط² ط§ظ„ط®ظ„ظٹط¬ | ط±ظپط¹ ط§ظ„طµظˆط± | ظˆ ط±ظپط¹ ط§ظ„ظ…ظ„ظپط§طھ | ط§ظ„ط®ظ„ظٹط¬ | ظ…ط±ظƒط² طھط*ظ…ظٹظ„ ط§ظ„طµظˆط± gulfup| mrkzgulf طھط*ظ…ظٹظ„ ط§ظ„طµظˆط± | gulf4up ط±ظپط¹ طµظˆط±|ظ…ط±ظƒط² ط±ظپط¹|ظ…ط±ظƒط² طھط*ظ…ظٹظ„ ط§ظ„ط®ظ

وفك الضغط اسحب اللملف اللي طلع جوة Database


تعالوا بقا لاهم نقطه وهيا القاعده انا هوفر عليك وهديك القاعده بتاعت الAccServer
اما القاعده بتاعت MsgServer امسح اللى موجود فـ Accserver
طب مش فاهم هبسطهالك
دلوقتي انت نزلت القاعده بتاعتي اللى هيا AccServer هتلاقي فيها Table اسمو maps
انت هتروح على قاعده الـMsgServer وتمسح الTable اللى اسمو maps
وهكذا كل حاجه موجوده فى الاكونت سيرفر امسحها من MsgServer تمام كدة

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




تروح على السي شارب وتدوس ctrl+f
هيطلعلك مربع البحث ركز يا بطل بقا تروح على القاعده وتاخد اسم اسم من الموجودين وتبحث عنه في السورس

توضيح

ابحث عن الاسامي اللى انا محدد عليها بس
ومتنساش وانت بتبحث تحط الاسم بين " " يعني كدة "entites" او "items"



انا مثلا هشرح على "entites"
هنروح على البروجيكت (السورس #C) وندوس ctrl+f ونكتب "entites"
وندوس انتر هيطلع في كذا واحده زي كده



تمام شايف انت السطر اللى فوقيه اللى هو دا

Html

using (var cmd = new MySqlCommand(MySqlCommandType.UPDATE)) 
هنضيف فيه AccServer.Database

توضيح


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

وادخل على app.config وغير اسم database لـAccServer

توضيح


اخر حاجه

دا ال npcs

Html

#region ServerTransferOfficer
                                
case 15702:
                                    {
                                        
dialog.Avatar(186);
                                        switch (
npcRequest.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 2999 CPs, done!");
                                                    
dialog.Option("I~got~it."255);
                                                    
dialog.Send();
                                                    break;
                                                }
                                            case 
2:
                                                {
                                                    
Transfer.StatusServers();
                                                    
dialog.Text("Now select a server group.");
                                                    if (
Transfer.EveOfWar_EU == 1)
                                                    
dialog.Option("EveOfWar_EU [Online]"4);
                                                    else
                                                        
dialog.Option("EveOfWar_EU [Offline]"4);
                                                    
                                                    if(
Transfer.WarLord == 1)
                                                    
dialog.Option("WarLord [Online]"5);
                                                    else
                                                        
dialog.Option("WarLord [Offline]"5);

                                                    
dialog.Option("Nothing."255);
                                                    
dialog.Send();
                                                    break;
                                                }
                                            case 
4:
                                                {
                                                    
Transfer.CheckServer("EveOfWar_EU"client);
                                                    break;
                                                }
                                            case 
5:
                                                {
                                                    
Transfer.CheckServer("WarLord"client);
                                                    break;
                                                }
                                        }
                                        break;
                                    }
                                
#endregion 
طبعا هتغير اسامي السيرفرات علي اللي انت عايزو
يس يكون موجود في الكلينت بتاع كونكر شوف الفيديو عشان تعرف تستعملوا

ابحث عن

Html

GameServer.Enable(GamePort"0.0.0.0"); 
وحط تحتيه الكود دا

Html

new AccServer.Database.MySqlCommand(AccServer.Database.MySqlCommandType.UPDATE).Update("servers").Set("Online"1
                   .
Where("Name"Constants.ServerName
وده ال AccServer
AccServer | طھط*ظ…ظٹظ„

بالتوفيق للجميع
ارجو التقييم
namespace COServer.Network.GamePackets
{
public unsafe class JiangHuUpdate : Writer
{
private byte[] packet = new byte[28];
public JiangHuUpdate()
{
packet = new byte[28];
WriteUInt16(20, 0, packet);
WriteUInt16(2702, 2, packet);
}
public uint FreeCourse
{
get { return BitConverter.ToUInt32(packet, 4); }
set { WriteUInt32(value, 4, packet); }
}
public byte Star
{
get { return packet[10]; }
set { WriteByte(value, 10, packet); }
}
public byte Stage
{
get { return packet[11]; }
set { WriteByte(value, 11, packet); }
}
public ushort Atribute
{
get { return BitConverter.ToUInt16(packet, 13); }
set { WriteUInt16(value, 13, packet); }
}
public byte FreeTimeTodeyUsed
{
get { return packet[15]; }
set { WriteByte(value, 15, packet); }
}
public uint RoundBuyPoints
{
get { return BitConverter.ToUInt32(packet, 16); }
set { WriteUInt32(value, 16, packet); }
}
public byte[] ToArray()
{
return packet;
}
}
}[/PHP]



المشاركات: 10 [+]
المخالفات: [+]
abdalah غير متواجد حالياً
abdalah
( ( عضو جديد ) )
رد: Transfer System
موعد كتابة الموضوع: 07-15-2017 فى تمام الساعة 11:47 AM| رقم المشاركة: 2| من قسم: تطوير سيرفرات كـــونـــكر تـــهيس

هو انا ينفع اركب سيستم الترانسيفر ده علي سورس عادي غير بتاع اسلام واعمل فيه AccServer ؟

  إضافة رد

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