[Release]5018+ Source

07/30/2010 21:09 CptSky#16
Quote:
Originally Posted by Basser View Post
Wrong.
Send a HTTP request to a server.
(Connect to it via e.g. Firefox, or any other internet browser using [Only registered and activated users can see links. Click Here To Register...])
Depends on how the server handle the packets :) My auth server just said that a packet with an unknow type has been sent. My game server throw an exception because he can't read after the end of the stream. The first packet should be the DH Key answer. If it's not, you will get an error because most of the packets aren't big as the DH Key packets. And you need to decrypt it correctly.
07/30/2010 21:29 Basser#17
Quote:
Originally Posted by CptSky View Post
Depends on how the server handle the packets :) My auth server just said that a packet with an unknow type has been sent. My game server throw an exception because he can't read after the end of the stream. The first packet should be the DH Key answer. If it's not, you will get an error because most of the packets aren't big as the DH Key packets. And you need to decrypt it correctly.
That proves you incorrect.
Just try it, btw, send the HTTP to the game server, it will throw an exception, which is my point, it could be a wrong packet, doesn't have to be a wrong decryption key, it can be a completely random packet. :)
07/30/2010 21:38 CptSky#18
Quote:
Originally Posted by Basser View Post
That proves you incorrect.
Just try it, btw, send the HTTP to the game server, it will throw an exception, which is my point, it could be a wrong packet, doesn't have to be a wrong decryption key, it can be a completely random packet. :)
Sure, but if you use a wrong decryption key, you will read the value of the length of the P and G key, and you will get something unreal. You will probably read more than the stream.
07/30/2010 22:06 Basser#19
Quote:
Originally Posted by CptSky View Post
Sure, but if you use a wrong decryption key, you will read the value of the length of the P and G key, and you will get something unreal. You will probably read more than the stream.
Or in some cases it is shorter.
That's why you should check the length it is going to read, and always finish with reading the seal and check if this one is TQServer, if it is, it is correct, if its not, it isn't, so forget about that connection. (You could save the IP and when it happens too many times, ban him, because he might be trying to crash the server, using a horrible method)
07/30/2010 23:08 Fish*#20
Awsome release Arco :)
Goodluck
07/31/2010 05:16 arab4life#21
Quote:
Originally Posted by .Arco View Post
Hello all, I want to present to you a 5018+ BASE.
It is a base and only a base, it is Hybrid's rev3 upgraded with blowfish and using the dhkeyexchange. I am currently working on my own that is 5065 and I will not update this source for you at all. It is for those of you who would like a 5018 and can update packets. The database is included.
To change the IP to your IP it is in the AuthReceive void in program.cs.
Credits;
InFlamedCOD for releasing the socket system he used.

Me for putting it to use, which I know most of you wouldn't have been able to done so its done for you^^ :)
Thank you, i haven't been around lately, i just got back and SEEN THIS! WOOTS!
07/31/2010 09:46 Arcо#22
So any more input people? What do you guys think of it?
07/31/2010 10:41 NukingFuts#23
great job buddy :) keep up da good work
08/01/2010 05:12 Fish*#24
I thought I would share one thing I did (Is converted from the 5165).
It is the additem.
Go to GameClient.cs
find:
Code:
        private void CreateInventoryInstance()
under that void put:
Code:
#region AddItem
        //public ArrayList InvCount;
        public void AddItem(uint ID, byte Plus, byte Bless, byte Enchant, byte ISocket1, byte ISocket2)
        {
            IConquerItem item = new ItemDataPacket(true);
            item.UID = ItemDataPacket.NextItemUID;
            item.ID = ID;
                item.Plus = Plus;
                    item.Bless = Bless;
                        item.Enchant = Enchant;
                            item.SocketOne = ISocket1;
                                item.SocketTwo = ISocket2;

            AddInventory(item);
        }
        public void AddItem(uint ID, byte Plus, byte Bless, byte Enchant, byte ISocket1)
        {
            IConquerItem item = new ItemDataPacket(true);
            item.UID = ItemDataPacket.NextItemUID;
            item.ID = ID;
            item.Plus = Plus;
            item.Bless = Bless;
            item.Enchant = Enchant;
            item.SocketOne = ISocket1;

            AddInventory(item);
        }
        public void AddItem(uint ID, byte Plus, byte Bless, byte Enchant)
        {
            IConquerItem item = new ItemDataPacket(true);
            item.UID = ItemDataPacket.NextItemUID;
            item.ID = ID;
            item.Plus = Plus;
            item.Bless = Bless;
            item.Enchant = Enchant;

            AddInventory(item);
        }
        public void AddItem(uint ID, byte Plus, byte Bless)
        {
            IConquerItem item = new ItemDataPacket(true);
            item.UID = ItemDataPacket.NextItemUID;
            item.ID = ID;
            item.Plus = Plus;
            item.Bless = Bless;

            AddInventory(item);
        }
        public void AddItem(uint ID, byte Plus)
        {
            IConquerItem item = new ItemDataPacket(true);
            item.UID = ItemDataPacket.NextItemUID;
            item.ID = ID;
            item.Plus = Plus;

            AddInventory(item);
        }
        public void AddItem(uint ID)
        {
            IConquerItem item = new ItemDataPacket(true);
            item.UID = ItemDataPacket.NextItemUID;
            item.ID = ID;

            AddInventory(item);
        }
        #endregion
Now you can add items with +,bless,hp,soc1,soc2.
ex. for 130blade:
Code:
AddItem(410339, 12, 7, 255, 13, 13);
08/01/2010 10:19 Basser#25
Use object initializers.
08/01/2010 10:42 Arcо#26
@grillmad
The hell?
Code:
        public void AddItem(uint ID, byte Plus, byte Bless, byte Enchant, byte ISocket1, byte ISocket2)
        {
            IConquerItem item = new ItemDataPacket(true);
            item.UID = ItemDataPacket.NextItemUID;
            item.ID = ID;
                item.Plus = Plus;
                    item.Bless = Bless;
                        item.Enchant = Enchant;
                            item.SocketOne = ISocket1;
                                item.SocketTwo = ISocket2;

            AddInventory(item);
        }
        public void AddItem(uint ID, byte Plus, byte Bless, byte Enchant, byte ISocket1)
        {
            IConquerItem item = new ItemDataPacket(true);
            item.UID = ItemDataPacket.NextItemUID;
            item.ID = ID;
            item.Plus = Plus;
            item.Bless = Bless;
            item.Enchant = Enchant;
            item.SocketOne = ISocket1;

            AddInventory(item);
        }
Why 2 voids?
Pointless.
08/01/2010 20:07 Fish*#27
so u can do: anyways, is just converted from the 5165 :P
AddItem(ID);
AddItem(ID, +);
AddItem(ID, +, Bless);
AddItem(ID, +, Bless, Enchant);
AddItem(ID, +, Bless, Enchant, Soc1);
AddItem(ID, +, Bless, Enchant, Soc1, Soc2);
08/02/2010 00:22 Arcо#28
Quote:
Originally Posted by grillmad View Post
so u can do: anyways, is just converted from the 5165 :P
AddItem(ID, +, Bless, Enchant);
AddItem(ID);
AddItem(ID, +);
AddItem(ID, +, Bless);
AddItem(ID, +, Bless, Enchant, Soc1);
AddItem(ID, +, Bless, Enchant, Soc1, Soc2);
All you need is AddItem(ID, +, Bless, Enchant, Soc1, Soc2);
That'll be enough.
If all you want is the item then do, AddItem(410339, 0, 0, 0 , 255, 255);
If all you want is 1soc then do AddItem(410339, 0, 0, 0 13, 255);

Having those other methods is kinda pointless.
08/02/2010 00:47 Korvacs#29
Code:
        public void AddItem(uint ID, byte Plus = 0, byte Bless = 0, byte Enchant = 0, byte ISocket1 = 0, byte ISocket2 = 0)
        {
            IConquerItem item = new ItemDataPacket(true);
            item.UID = ItemDataPacket.NextItemUID;
            item.ID = ID;
            item.Plus = Plus;
            item.Bless = Bless;
            item.Enchant = Enchant;
            item.SocketOne = ISocket1;
            item.SocketTwo = ISocket2;

            AddInventory(item);
        }
Win.
08/02/2010 00:58 Arcо#30
Quote:
Originally Posted by Korvacs View Post
Code:
        public void AddItem(uint ID, byte Plus = 0, byte Bless = 0, byte Enchant = 0, byte ISocket1 = 0, byte ISocket2 = 0)
        {
            IConquerItem item = new ItemDataPacket(true);
            item.UID = ItemDataPacket.NextItemUID;
            item.ID = ID;
            item.Plus = Plus;
            item.Bless = Bless;
            item.Enchant = Enchant;
            item.SocketOne = ISocket1;
            item.SocketTwo = ISocket2;

            AddInventory(item);
        }
Win.
Exactly what I was trying to say!!!!