Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Conquer Online 2 > CO2 Private Server
You last visited: Today at 16:54

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[4267] Jump/Spawn Rollback/Bug

Discussion on [4267] Jump/Spawn Rollback/Bug within the CO2 Private Server forum part of the Conquer Online 2 category.

Reply
 
Old   #1
 
killersub's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 884
Received Thanks: 211
[4267] Jump/Spawn Rollback/Bug

Okay so I've been working with a 4267 source lately and it's been working exceedingly fine, however, I jump around IN the game and it somehow rolls the character back 1 pace and the spawns around do not update meaning when I attack a mob, it shows me that i attacked it but I cant attack it again unless I run towards it/jump in/out back into the same area (you get me?).

here is the official AppendJump from my source:

Code:
private void AppendJump(GameClient Client, DataPacket* DPacket, byte[] Packet)
        {
            if (!Client.Entity.Dead)
            {
                #region Disable Mining
                if (Client.Mining)
                    Client.Mining = false;
                #endregion
                uint Time = Native.timeGetTime();
                if (Kernel.GetDistance(DPacket->dwParam_Lo, DPacket->dwParam_Hi, Client.Entity.X, Client.Entity.Y) <= 16)
                {
                    #region Speeder Check(s)
                    if (Math.Abs(DPacket->TimeStamp - Client.Entity.Stamps.LastClientMovement) <= 500
                        || DPacket->TimeStamp == 0)
                    {
                        Client.DynamicTeleport(Client.Entity.MapID, Client.Entity.X, Client.Entity.Y, Client.Entity.MapID.DynamicID);
                        Client.Speak(Color.Red, ChatType.Center, "Pullback possible speed hacking!");
                        return;
                    }
                    if (Time - Client.Entity.Stamps.LastClientMovement <= 500)
                    {
                        Client.DynamicTeleport(Client.Entity.MapID, Client.Entity.X, Client.Entity.Y, Client.Entity.MapID.DynamicID);
                        Client.Speak(Color.Red, ChatType.Center, "Pullback possible speed hacking!");
                        return;
                    }
                    else
                    {
                        if (Time - Client.Entity.Stamps.LastServerMovement <= 300)
                        {
                            Client.DynamicTeleport(Client.Entity.MapID, Client.Entity.X, Client.Entity.Y, Client.Entity.MapID.DynamicID);
                            Client.Speak(Color.Red, ChatType.Center, "Pullback possible speed hacking!");
                            return;
                        }
                    }
                    #endregion
                    Client.SendScreen(Packet, true);

                    Client.Entity.Facing = Kernel.AngleEntity(DPacket->dwParam_Lo, DPacket->dwParam_Hi, Client.Entity.X, Client.Entity.Y);

                    if (Client.Entity.MapID == 1038)
                    {
                        if (!GuildWar.ValidJump(Client.TileColor, out Client.TileColor, DPacket->dwParam_Lo, DPacket->dwParam_Hi))
                        {
                            Client.DynamicTeleport(Client.Entity.MapID, Client.Entity.X, Client.Entity.Y, Client.Entity.MapID.DynamicID);
                            Client.Speak(Color.Red, ChatType.Center, "Please only walk to this area!");
                            return;
                        }
                    }
                    if (Kernel.ValidCordinate(Client.Entity.MapID, DPacket->dwParam_Lo, DPacket->dwParam_Hi))
                    {
                        Client.Entity.X = DPacket->dwParam_Lo;
                        Client.Entity.Y = DPacket->dwParam_Hi;
                        Client.Screen.Reload(false, null);
                    }
                    else
                        Client.Teleport(Client.Entity.MapID, Client.Entity.X, Client.Entity.Y);
                }
                else
                {
                    Client.Speak(Color.Red, ChatType.Center, "Pullback jump to far!");
                    return;
                }
            }
        }
could it be cause of the "pullback" mentioned in the code?

Much help will sure be appreciated, sorry for this new thread but this was the only bug preventing my source to be "bug-free" (metaphorically speaking).
killersub is offline  
Old 02/09/2012, 00:33   #2
 
Spirited's Avatar
 
elite*gold: 12
Join Date: Jul 2011
Posts: 8,282
Received Thanks: 4,191
Your speed check is bugged. Players should be able to move faster than that.
Comment it out and see if that works. Then have the source output the difference so you can see what the lowest time really is. Don't forget to check ALL of the possible angles.
Spirited is offline  
Old 02/09/2012, 00:35   #3
 
killersub's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 884
Received Thanks: 211
Quote:
Originally Posted by Fаng View Post
Your speed check is bugged. Players should be able to move faster than that.
Comment it out and see if that works. Then have the source output the difference so you can see what the lowest time really is. Don't forget to check ALL of the possible angles.
for example?
killersub is offline  
Old 02/09/2012, 00:52   #4
 
Spirited's Avatar
 
elite*gold: 12
Join Date: Jul 2011
Posts: 8,282
Received Thanks: 4,191
Quote:
Originally Posted by killersub View Post
for example?
Well, surround the speed check region with comments ( \* comment *\ ). See if it works, then... if it does... output the difference of Time - Client.Entity.Stamps.LastClientMovement and on a new line, the difference between Time - Client.Entity.Stamps.LastServerMovement. Once you get that, change the code to reflect the new values. As it stands... your code checks 500 milliseconds for client movement and 300 milliseconds for server movement.
Spirited is offline  
Old 02/09/2012, 00:56   #5
 
killersub's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 884
Received Thanks: 211
Quote:
Originally Posted by Fаng View Post
Well, surround the speed check region with comments ( \* comment *\ ). See if it works, then... if it does... output the difference of Time - Client.Entity.Stamps.LastClientMovement and on a new line, the difference between Time - Client.Entity.Stamps.LastServerMovement. Once you get that, change the code to reflect the new values. As it stands... your code checks 500 milliseconds for client movement and 300 milliseconds for server movement.
I have quoted those lines, still I tested and yet the same thing happens.
killersub is offline  
Old 02/09/2012, 01:03   #6
 
Spirited's Avatar
 
elite*gold: 12
Join Date: Jul 2011
Posts: 8,282
Received Thanks: 4,191
Ok, so if you commented out the entire section like so:
Code:
private void AppendJump(GameClient Client, DataPacket* DPacket, byte[] Packet)
        {
            if (!Client.Entity.Dead)
            {
                #region Disable Mining
                if (Client.Mining)
                    Client.Mining = false;
                #endregion
                uint Time = Native.timeGetTime();
                if (Kernel.GetDistance(DPacket->dwParam_Lo, DPacket->dwParam_Hi, Client.Entity.X, Client.Entity.Y) <= 16)
                {
/* COMMENTED OUT -------------------------------------------------------------------------------------------------------
                    #region Speeder Check(s)
                    if (Math.Abs(DPacket->TimeStamp - Client.Entity.Stamps.LastClientMovement) <= 500
                        || DPacket->TimeStamp == 0)
                    {
                        Client.DynamicTeleport(Client.Entity.MapID, Client.Entity.X, Client.Entity.Y, Client.Entity.MapID.DynamicID);
                        Client.Speak(Color.Red, ChatType.Center, "Pullback possible speed hacking!");
                        return;
                    }
                    if (Time - Client.Entity.Stamps.LastClientMovement <= 500)
                    {
                        Client.DynamicTeleport(Client.Entity.MapID, Client.Entity.X, Client.Entity.Y, Client.Entity.MapID.DynamicID);
                        Client.Speak(Color.Red, ChatType.Center, "Pullback possible speed hacking!");
                        return;
                    }
                    else
                    {
                        if (Time - Client.Entity.Stamps.LastServerMovement <= 300)
                        {
                            Client.DynamicTeleport(Client.Entity.MapID, Client.Entity.X, Client.Entity.Y, Client.Entity.MapID.DynamicID);
                            Client.Speak(Color.Red, ChatType.Center, "Pullback possible speed hacking!");
                            return;
                        }
                    }
                    #endregion
----------------------------------------------------------------------------------------------------------------------------*/
                    Client.SendScreen(Packet, true);

                    Client.Entity.Facing = Kernel.AngleEntity(DPacket->dwParam_Lo, DPacket->dwParam_Hi, Client.Entity.X, Client.Entity.Y);

                    if (Client.Entity.MapID == 1038)
                    {
                        if (!GuildWar.ValidJump(Client.TileColor, out Client.TileColor, DPacket->dwParam_Lo, DPacket->dwParam_Hi))
                        {
                            // Console.WriteLine("Valid Jump!");
                            Client.DynamicTeleport(Client.Entity.MapID, Client.Entity.X, Client.Entity.Y, Client.Entity.MapID.DynamicID);
                            Client.Speak(Color.Red, ChatType.Center, "Please only walk to this area!");
                            return;
                        }
                    }
                    if (Kernel.ValidCordinate(Client.Entity.MapID, DPacket->dwParam_Lo, DPacket->dwParam_Hi))
                    {
                        // Console.WriteLine("Valid Jump!");
                        Client.Entity.X = DPacket->dwParam_Lo;
                        Client.Entity.Y = DPacket->dwParam_Hi;
                        Client.Screen.Reload(false, null);
                    }
                    else
                    // {
                        // Console.WriteLine("Invalid Jump!");
                        Client.Teleport(Client.Entity.MapID, Client.Entity.X, Client.Entity.Y);
                    // }
                }
                else
                {
                    // Console.WriteLine("Invalid Jump!");
                    Client.Speak(Color.Red, ChatType.Center, "Pullback jump to far!");
                    return;
                }
            }
        }
then there's a possibility that the jump isn't valid. If you know how to breakpoint, put breakpoints in and follow the code... else, do what I used to do back in the days of NewestCoServer. Make outputs such as the ones that I commented into the code above. Also, the distance should be 18 and based on a square, not a circle. If you're not sure if it's checking it as a square or circle, check the method.

Edit: I'm going to class. I'll bbl.
Spirited is offline  
Old 02/09/2012, 01:17   #7
 
killersub's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 884
Received Thanks: 211
Quote:
Originally Posted by Fаng View Post
Ok, so if you commented out the entire section like so:
Code:
private void AppendJump(GameClient Client, DataPacket* DPacket, byte[] Packet)
        {
            if (!Client.Entity.Dead)
            {
                #region Disable Mining
                if (Client.Mining)
                    Client.Mining = false;
                #endregion
                uint Time = Native.timeGetTime();
                if (Kernel.GetDistance(DPacket->dwParam_Lo, DPacket->dwParam_Hi, Client.Entity.X, Client.Entity.Y) <= 16)
                {
/* COMMENTED OUT -------------------------------------------------------------------------------------------------------
                    #region Speeder Check(s)
                    if (Math.Abs(DPacket->TimeStamp - Client.Entity.Stamps.LastClientMovement) <= 500
                        || DPacket->TimeStamp == 0)
                    {
                        Client.DynamicTeleport(Client.Entity.MapID, Client.Entity.X, Client.Entity.Y, Client.Entity.MapID.DynamicID);
                        Client.Speak(Color.Red, ChatType.Center, "Pullback possible speed hacking!");
                        return;
                    }
                    if (Time - Client.Entity.Stamps.LastClientMovement <= 500)
                    {
                        Client.DynamicTeleport(Client.Entity.MapID, Client.Entity.X, Client.Entity.Y, Client.Entity.MapID.DynamicID);
                        Client.Speak(Color.Red, ChatType.Center, "Pullback possible speed hacking!");
                        return;
                    }
                    else
                    {
                        if (Time - Client.Entity.Stamps.LastServerMovement <= 300)
                        {
                            Client.DynamicTeleport(Client.Entity.MapID, Client.Entity.X, Client.Entity.Y, Client.Entity.MapID.DynamicID);
                            Client.Speak(Color.Red, ChatType.Center, "Pullback possible speed hacking!");
                            return;
                        }
                    }
                    #endregion
----------------------------------------------------------------------------------------------------------------------------*/
                    Client.SendScreen(Packet, true);

                    Client.Entity.Facing = Kernel.AngleEntity(DPacket->dwParam_Lo, DPacket->dwParam_Hi, Client.Entity.X, Client.Entity.Y);

                    if (Client.Entity.MapID == 1038)
                    {
                        if (!GuildWar.ValidJump(Client.TileColor, out Client.TileColor, DPacket->dwParam_Lo, DPacket->dwParam_Hi))
                        {
                            // Console.WriteLine("Valid Jump!");
                            Client.DynamicTeleport(Client.Entity.MapID, Client.Entity.X, Client.Entity.Y, Client.Entity.MapID.DynamicID);
                            Client.Speak(Color.Red, ChatType.Center, "Please only walk to this area!");
                            return;
                        }
                    }
                    if (Kernel.ValidCordinate(Client.Entity.MapID, DPacket->dwParam_Lo, DPacket->dwParam_Hi))
                    {
                        // Console.WriteLine("Valid Jump!");
                        Client.Entity.X = DPacket->dwParam_Lo;
                        Client.Entity.Y = DPacket->dwParam_Hi;
                        Client.Screen.Reload(false, null);
                    }
                    else
                    // {
                        // Console.WriteLine("Invalid Jump!");
                        Client.Teleport(Client.Entity.MapID, Client.Entity.X, Client.Entity.Y);
                    // }
                }
                else
                {
                    // Console.WriteLine("Invalid Jump!");
                    Client.Speak(Color.Red, ChatType.Center, "Pullback jump to far!");
                    return;
                }
            }
        }
then there's a possibility that the jump isn't valid. If you know how to breakpoint, put breakpoints in and follow the code... else, do what I used to do back in the days of NewestCoServer. Make outputs such as the ones that I commented into the code above. Also, the distance should be 18 and based on a square, not a circle. If you're not sure if it's checking it as a square or circle, check the method.

Edit: I'm going to class. I'll bbl.
yessir, just like you did.

here is how it checks valid coordinates:

Code:
public static bool ValidCordinate(ushort MapID, ushort X, ushort Y)
        {
            if (ConquerDMap.Maps[MapID].Invalid(X, Y))
                return false;
            return true;
        }
here is the Invalid void behind the DMap file:
Code:
public ushort MapID;
        public byte[,] Coordinates;
        public short MaxHeight, MaxWidth;

        public bool Invalid(ushort X, ushort Y)
        {
            if (X > MaxWidth || Y > MaxHeight)
                return false;
            return Coordinates[X, Y] == 1;
        }
killersub is offline  
Old 02/09/2012, 02:38   #8
 
Spirited's Avatar
 
elite*gold: 12
Join Date: Jul 2011
Posts: 8,282
Received Thanks: 4,191
Quote:
Originally Posted by killersub View Post
yessir, just like you did.

here is how it checks valid coordinates:

Code:
public static bool ValidCordinate(ushort MapID, ushort X, ushort Y)
        {
            if (ConquerDMap.Maps[MapID].Invalid(X, Y))
                return false;
            return true;
        }
here is the Invalid void behind the DMap file:
Code:
public ushort MapID;
        public byte[,] Coordinates;
        public short MaxHeight, MaxWidth;

        public bool Invalid(ushort X, ushort Y)
        {
            if (X > MaxWidth || Y > MaxHeight)
                return false;
            return Coordinates[X, Y] == 1;
        }
I meant the method that checks for distance. Anyways, make the outputs to check out what's going wrong. If you copy my code and uncomment the output codes, you should get an answer.
Spirited is offline  
Old 02/09/2012, 04:17   #9
 
killersub's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 884
Received Thanks: 211
Quote:
Originally Posted by Fаng View Post
I meant the method that checks for distance. Anyways, make the outputs to check out what's going wrong. If you copy my code and uncomment the output codes, you should get an answer.
when I did that, in the console it says, "Valid Jump!" but my character jumps without moving now.
killersub is offline  
Old 02/09/2012, 05:04   #10
 
Spirited's Avatar
 
elite*gold: 12
Join Date: Jul 2011
Posts: 8,282
Received Thanks: 4,191
Quote:
Originally Posted by killersub View Post
when I did that, in the console it says, "Valid Jump!" but my character jumps without moving now.
Do you mean that it jumps in place... or do you mean that it jumps without being teleported back?
Spirited is offline  
Old 02/09/2012, 20:51   #11
 
killersub's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 884
Received Thanks: 211
Quote:
Originally Posted by Fаng View Post
Do you mean that it jumps in place... or do you mean that it jumps without being teleported back?
it jumps in place.

Like I jump and stays in the same place with a rollback everytime so basically I can only walk/run.
killersub is offline  
Reply


Similar Threads Similar Threads
[Guide] Unique spawn Area & Multi-spawn! & hints to Add New Uniqes ! [Vsro]
02/17/2013 - SRO PServer Guides & Releases - 31 Replies
Please Follow this thread, this topic OUTDATE and it have alot of wrong information http://www.elitepvpers.com/forum/private-sro-expl oits-hacks-bots-guides/2339110-epic-release-us-uni que-spot.html Well as you can read from the topic title lets start USE
Bios-Settings D3D v1.6 - Chams, Anti AFK, Super Jump, Quick Spawn, Slot, Speed & More
10/07/2011 - WarRock Hacks, Bots, Cheats & Exploits - 25 Replies
http://i55.tinypic.com/ffb700.png Download: Bios-Settings D3D v1.6.rar Virustotal: VirusTotal - Free Online Virus, Malware and URL Scanner ENJOY!
[Release]Imba Jump Hack or High Jump
09/26/2010 - Soldier Front Hacks, Bots, Cheats & Exploits - 127 Replies
Hello there anyways I am here again just for me to release this nice .cfg file to make your jumping more higher and better even though you are just using the space bar and I will say this unto you all things has a Pros and Cons even though it is very nice. ============================= : This file makes things easier for you to jump, it will make you look like a Pro like that video that I have posted below. ============================= : You will not enhance your skills because you are...
[Exploit] Jump through the ground and move whereever you want then jump back
06/28/2008 - General Gaming Releases - 7 Replies
Hai, in my effort to try and contribute to this amazing place =) This can work like a teleport in getting you almost any place you want to go. It requires no addons/bots/programs, its built in nicly in age of conan Here is how you do it : Simply type : /minion_falling_down Voila you fall through and can move wherever you want to go
Any jump gate, jump wall tool for 5028
06/23/2008 - Conquer Online 2 - 0 Replies
I've searched the whole site looking for a tool for the above mentioned. Anyone know any tools still work for 5028 patch with the above mentioned feature?



All times are GMT +1. The time now is 16:54.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.