0
الشى سيستم كامل

الشى سيستم  كامل
 
 
.اولا خش على
Network\PacketHandler.cs
وضيف دا فى ,
كود PHP:
                                case 0x9e5:
                                    
ChiSystem2.Handle(packetclient);
                                    return;
                                case 
0x9e6:
                                    
client.Send(packet);
                                    return; 
10.ثانيا خش على .
Network\GamePackets
واعمل Class ,وسميه
Chi.cs وضيف دا فى
كود PHP:
using System; using System.Collections.Generic; using System.Text;

namespace 
Conquer_Online_Server.Network.GamePackets {

    public class 
ChiInfo WriterInterfaces.IPacket
    
{
        public 
enum ChiAction
        
{
            
Unlock 0,
            
QueryInfo 1,
            
Study 2,
            
BuyStrength 3,
        }

        public 
enum ChiPowerType
        
{
            
None 0,
            
Dragon 1,
            
Phoenix 2,
            
Tiger 3,
            
Turtle 4
        
}

        public 
enum ChiAttribute
        
{
            
None 0,
            
CriticalRate,
            
MagicCriticalRate,
            
AntiMagicCriticalRate,
            
CrashAttack,
            
CrashDefense,
            
MaxLife,
            
AddAttack,
            
AddMagicAttack,
            
AddMagicDefense,
            
FinalAttack,
            
FinalMagicAttack,
            
FinalDefense,
            
FinalMagicDefense
        
}

        
byte[] Buffer;

        public 
ChiInfo(bool Create)
        {
            if (
Create)
            {
                
Buffer = new byte[168 8];
                
WriteUInt16(1680Buffer);
                
WriteUInt16(25332Buffer);
            }
            
Strings = new List<string>();
        }

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

        public 
ulong dwParam
        
{
            
get { return BitConverter.ToUInt64(Buffer8); }
            
set WriteUInt64(value8Buffer); }
        }

        public 
ushort wParam1
        
{
            
get { return BitConverter.ToUInt16(Buffer8); }
            
set WriteUInt16(value8Buffer); }
        }

        public 
ushort wParam2
        
{
            
get { return BitConverter.ToUInt16(Buffer10); }
            
set WriteUInt16(value10Buffer); }
        }

        public 
uint dwParam2
        
{
            
get { return BitConverter.ToUInt32(Buffer16); }
            
set WriteUInt32(value16Buffer); }
        }

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

        public 
uint dwParam4
        
{
            
get { return BitConverter.ToUInt32(Buffer24); }
            
set WriteUInt32(value24Buffer); }
        }

        
//Thanks to ImmuneOne, who fixed the strings offsets, I managed to get nobility done.
        
public byte StringCount
        
{
            
get { return Buffer[32]; }
            
set Buffer[32] = value; }
        }

        public List<
stringDecodedStrings
        
{
            
get
            
{
                List<
string> list = new List<string>(StringCount);
                
int offset 33;
                for (
int count 0count StringCountcount++)
                {
                    
byte stringLength Buffer[offset]; offset++;
                    
string String Encoding.ASCII.GetString(BufferoffsetstringLength);
                    
offset += stringLength;
                    list.
Add(String);
                }
                return list;
            }
        }

        public List<
stringStrings;

        public 
void UpdateString(Game.ConquerStructures.NobilityInformation info)
        {
            
string buildString info.EntityUID " " info.Donation " " + (byte)info.Rank " " info.Position;
            
buildString = (char)buildString.Length buildString;
            
Strings.Add(buildString);
        }

        public 
void ListString(Game.ConquerStructures.NobilityInformation info)
        {
            
string buildString info.EntityUID " " info.Gender " 0 " info.Name " " info.Donation " " + (byte)info.Rank " " info.Position;
            
buildString = (char)buildString.Length buildString;
            
Strings.Add(buildString);
        }

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

        public 
byte[] ToArray()
        {
            if (
Strings.Count == 0)
                return 
Buffer;
            
string theString "";
            for (
int count 0count Strings.Countcount++)
            {
                
theString += Strings[count];
            }
            
byte[] newBuffer = new byte[168 theString.Length];
            
Buffer.CopyTo(newBuffer0);
            
WriteUInt16((ushort)(newBuffer.Length 8), 0newBuffer);
            
newBuffer[34] = (byte)Strings.Count;
            
WriteString(theString35newBuffer);
            return 
newBuffer;
        }

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

,واعملا كمان class وسميه
ChiGate.cs

وضيف دا فى
كود PHP:
using System; using System.Collections.Generic; using System.Linq; using System.Text;

namespace 
Conquer_Online_Server.Network.GamePackets {

    public 
enum ChiGate // byte
    
{
        
Dragon 1,
        
Tiger 2,
        
Phoneix 3,
        
Turtle //build
    
}
.
12.واعمل كمان
Class وسميه ChiStats.cs
وحط فى دا
كود PHP:
using System; using System.Collections.Generic; using System.Linq; using System.Text;

namespace 
Conquer_Online_Server.Network.GamePackets {
    public class 
ChiStats WriterInterfaces.IPacket
    
{
        
byte[] mData;
        public 
ChiGate ChiGate
        
{
            
get
            
{
                return (
ChiGate)mData[22];
            }
            
set
            
{
                
mData[22] = (byte)value;
            }
        }
        public 
uint ChiPoints
        
{
            
get
            
{
                return 
BitConverter.ToUInt32(mData10);
            }
            
set
            
{
                
WriteUInt32(value10mData);
            }
        }
        public 
uint Identifier
        
{
            
get
            
{
                return 
BitConverter.ToUInt32(mData6);
            }
            
set
            
{
                
WriteUInt32(value6mData);
            }
        }
        public 
ushort Unknown1
        
{
            
get
            
{
                return 
BitConverter.ToUInt16(mData4);
            }
            
set
            
{
                
WriteUInt16(value4mData);
            }
        }
        public 
uint Unknown2
        
{
            
get
            
{
                return 
BitConverter.ToUInt32(mData14);
            }
            
set
            
{
                
WriteUInt32(value14mData);
            }
        }
        public 
uint Unknown3
        
{
            
get
            
{
                return 
BitConverter.ToUInt32(mData18);
            }
            
set
            
{
                
WriteUInt32(value18mData);
            }
        }
        public 
uint Val1
        
{
            
get
            
{
                return 
BitConverter.ToUInt32(mData24);
            }
            
set
            
{
                
WriteUInt32(value24mData);
            }
        }
        public 
uint Val2
        
{
            
get
            
{
                return 
BitConverter.ToUInt32(mData28);
            }
            
set
            
{
                
WriteUInt32(value28mData);
            }
        }
        public 
uint Val3
        
{
            
get
            
{
                return 
BitConverter.ToUInt32(mData32);
            }
            
set
            
{
                
WriteUInt32(value32mData);
            }
        }
        public 
uint Val4
        
{
            
get
            
{
                return 
BitConverter.ToUInt32(mData36);
            }
            
set
            
{
                
WriteUInt32(value36mData);
            }
        }
        
/* public static implicit operator byte[](ChiStats d)
        {
        return d.mData;
        }*/
        
public ChiStats()
        {
            
mData = new byte[39 8];
            
WriteUInt16(390mData);
            
WriteUInt16(25342mData);
        }
        public static 
ChiStats ChiStats22(byte[] d)
        {
            var 
packet = new ChiStats();
            
packet.mData d;
            return 
packet;
        }
        public 
byte[] ToArray()
        {
            return 
mData;
        }
        public 
void Send(Client.GameState client)
        {
            
client.Send(mData);
        }
        public 
void Deserialize(byte[] buffer)
        {
            
mData buffer;
        }
    } 
// class ChiStats
13.واعمل Class ,وسميه
ChiSystem.cs
وضيف دا فى
كود PHP:
using System; using System.Collections.Generic; using System.Linq; using System.Text;

namespace 
Conquer_Online_Server.Network.GamePackets {
    public class 
ChiSystem WriterInterfaces.IPacket
    
{

        
byte[] mData;

        public 
ChiSystem()
        {

            
mData = new byte[16];
            
WriteUInt16((ushort)mData.Length0mData);
            
WriteUInt16(25332mData);

        }

        public 
uint Identifier
        
{
            
get
            
{
                return 
BitConverter.ToUInt32(mData4);
            }
            
set
            
{
                
Writer.WriteUInt32(value4mData);
            }
        }

        public 
byte StudyFlag
        
{
            
get
            
{
                return 
mData[11];
            }
            
set
            
{
                
mData[11] = value;
            }
        }
        public 
enum ChiSystemType ushort
        
{
            
Unlock 0,
            
Open 1,
            
Study 2,
            
CPFillChi 3
        
}
        public 
ChiSystemType Type
        
{
            
get
            
{
                return (
ChiSystemType)BitConverter.ToUInt16(mData8);
            }
            
set
            
{
                
Writer.WriteUInt32((ushort)value8mData);
            }
        }

        public 
byte Unknown1
        
{
            
get
            
{
                return 
mData[10];
            }
            
set
            
{
                
mData[10] = value;
            }
        }

        public 
uint Unknown2
        
{
            
get
            
{
                return 
BitConverter.ToUInt32(mData12);
            }
            
set
            
{
                
Writer.WriteUInt32(value12mData);
            }
        }

        
/* public static implicit operator byte[](ChiSystem d)
         {
             return d.mData;
         }*/



        
public ChiSystem(byte[] d)
        {
            
mData = new byte[d.Length];
            
d.CopyTo(mData0);
        }
        public 
byte[] ToArray()
        {
            return 
mData;
        }

        public 
void Send(Client.GameState client)
        {
            
client.Send(mData);
        }
        public 
void Deserialize(byte[] buffer)
        {
            
mData buffer;
        }

    } 
// class ChiSystem

واعمل Class
بى اسم ChiSystem2.cs
وضيف فى دا
كود PHP:
using System; using System.Collections.Generic; using System.Linq; using System.Text;

namespace 
Conquer_Online_Server.Network.GamePackets {
    public class 
ChiSystem2
    
{

        public 
ChiSystem2()
        {
        }

        public static 
void Handle(byte[] DataClient.GameState Client)
        {

            
ChiSystem chiSystem = new ChiSystem(Data);
            
Console.WriteLine(chiSystem.Identifier);
            
Console.WriteLine(chiSystem.Unknown1);
            
Console.WriteLine(chiSystem.Type);
            
Console.WriteLine(chiSystem.StudyFlag);
            
Console.WriteLine(chiSystem.Unknown2);
            
chiSystem.Unknown1 1;
            
chiSystem.StudyFlag 1;
            
chiSystem.Unknown2 1;
            switch (
chiSystem.Type)
            {
                case 
Conquer_Online_Server.Network.GamePackets.ChiSystem.ChiSystemType.Open:
                    
ChiStats chiStats = new ChiStats()
                    {
                        
Identifier Client.Entity.UID,
                        
ChiPoints Client.Entity.ChiPoints,
                        
Unknown2 13,
                        
Unknown3 1,
                        
ChiGate ChiGate.Dragon,
                        
Val1 1000,
                        
Val2 2000,
                        
Val3 3000,
                        
Val4 4000
                    
};
                    
ChiStats chiStats2 = new ChiStats()
                    {
                        
Identifier Client.Entity.UID,
                        
ChiPoints Client.Entity.ChiPoints,
                        
Unknown2 13,
                        
Unknown3 1,
                        
ChiGate ChiGate.Phoneix,
                        
Val1 1000,
                        
Val2 2000,
                        
Val3 3000,
                        
Val4 4000
                    
};
                    
ChiStats chiStats3 = new ChiStats()
                    {
                        
Identifier Client.Entity.UID,
                        
ChiPoints Client.Entity.ChiPoints,
                        
Unknown2 13,
                        
Unknown3 1,
                        
ChiGate ChiGate.Tiger,
                        
Val1 1000,
                        
Val2 2000,
                        
Val3 3000,
                        
Val4 4000
                    
};
                    
ChiStats chiStats4 = new ChiStats()
                    {
                        
Identifier Client.Entity.UID,
                        
ChiPoints Client.Entity.ChiPoints,
                        
Unknown2 13,
                        
Unknown3 1,
                        
ChiGate ChiGate.Turtle,
                        
Val1 1000,
                        
Val2 2000,
                        
Val3 3000,
                        
Val4 4000
                    
};
                    
Client.Send(chiStats);
                    
Client.Send(chiStats2);
                    
Client.Send(chiStats3);
                    
Client.Send(chiStats4);
                    break;

                case 
Conquer_Online_Server.Network.GamePackets.ChiSystem.ChiSystemType.CPFillChi:
                    
uint ui1 2000;
                    
uint ui2 = (uint)Math.Floor((double)(1000.0F - (1000.0F * ((float)ui1 4000.0F))));
                    
Client.Entity.ChiPoints += 50;
                    
Client.Entity.ConquerPoints -= ui2;
                    
Console.WriteLine("qq " ui2 "");
                    
Console.WriteLine("pp " chiSystem.Unknown1 " ");
                    break;

                default:
                    
Console.WriteLine(String.Concat("Unhandled ChiSystem Type: "chiSystem.Type));
                    break;
            }
        }

    } 
// class ChiSystem
14.وهوا لسه مش TQ بس هيبقا معاك زى كدا

بئذن الله لما نكمله هينزل .

والسلام عليكم ورحمه الله وبركاته
,,
●●▬▬▬▬▬▬▬▬▬▬▬▬●●
وهـنـضيف دا هنـآ

Packet.cs

كود PHP:
using System; using System.Collections.Generic; using System.Linq; using System.Text


كود PHP:
namespace Conquer_Online_Server.Network.GamePackets {
    class 
Packet
    
{
        
internal void InitWriter()
        {
            throw new 
NotImplementedException();
        }

        
internal void Write(ushort p)
        {
            throw new 
NotImplementedException();
        }

        
internal void Write(int id)
        {
            throw new 
NotImplementedException();
        }

        
internal void Write(string pint p_2)
        {
            throw new 
NotImplementedException();
        }

        
internal void Chi(out int idout ChiAction actionout ChiPowerType typeout int data)
        {
            throw new 
NotImplementedException();
        }
    }

وكود اللى هيضاف فى entity.cs اللى قولت عليه هيضاف دور على دى


كود PHP:
public uint LiliesDonation getset; } 

وضيفو تحتها

كود PHP:
public uint ChiPoints getset; } 

0 التعليقات:

إرسال تعليق

 
تعريب وتطوير mandoo
مدونة conquer Pvp لشروحات السيرفرات الشخصيه © 2010 | عودة الى الاعلى
Designed by mandoo