Page 1 of 2
Instant Hit is broken?
Posted: Thu Sep 23, 2010 10:49 am
by Mikel123
As I understand it... if I've got a katana armed... and I am moving... I need to wait around 1.25 to 1.5 seconds to be ready to swing.
In order to go from the state of "swing timer" to "swing ready", I need to pause for .25 seconds.
From that point, next time I am adjacent to a combatant, I should get an instant swing, correct? This definitely appears to be broken if that's the intended functionality.
Re: Instant Hit is broken?
Posted: Fri Sep 24, 2010 12:27 am
by nightshark
It happens like this in nearly all cases, however, remember the global tick only happens every .25s. If you move into range of someone for a fraction of a second, and they move out of range before the next tick happens, you won't swing. It can also make the hit look "non instant".
Re: Instant Hit is broken?
Posted: Fri Sep 24, 2010 8:52 am
by Derrick
To expand on this, when two players are moving it's extremely hard to determine from your client if you are ever actually next to the player or not. If you have two PCs try running two characters next to each other, you will see that the shard lags the client somewhat, in that the client shows you where it told the server it wanted your character to be, and the other character is shown to be where they last were; so if two characters are "really" running side by side, each player always sees his own character as a couple steps ahead.
I don't know if this speaks to your observations, but it's a phenomenon worth pointing out.
Re: Instant Hit is broken?
Posted: Fri Sep 24, 2010 11:59 am
by Mikel123
nightshark wrote:It happens like this in nearly all cases, however, remember the global tick only happens every .25s. If you move into range of someone for a fraction of a second, and they move out of range before the next tick happens, you won't swing. It can also make the hit look "non instant".
Wait wait wait - so in order to hit someone I'm adjacent to, I have to be adjacent to them for a full .25?
Derrick, interesting... so imagine we are "jousting", I.E I am running South and my enemy is running North, and we're on adjacent lanes of tile. At some point during the run, I will be directly next to the other person. Are you saying that no matter how fast we're running, I should be able to hit them (because we definitely 100% know we will be next to each other at some point)? That was my understanding. Nightshark's explanation makes it sound like if we're running full speed on horses, I have no chance of swinging at them since we're not next to each other for .25 seconds.
Re: Instant Hit is broken?
Posted: Fri Sep 24, 2010 12:51 pm
by Psilo
Derrick wrote:To expand on this, when two players are moving it's extremely hard to determine from your client if you are ever actually next to the player or not. If you have two PCs try running two characters next to each other, you will see that the shard lags the client somewhat, in that the client shows you where it told the server it wanted your character to be, and the other character is shown to be where they last were; so if two characters are "really" running side by side, each player always sees his own character as a couple steps ahead.
I don't know if this speaks to your observations, but it's a phenomenon worth pointing out.
hmmmm
Re: Instant Hit is broken?
Posted: Fri Sep 24, 2010 1:15 pm
by Faust
The timer being based on ticks is accurate without a doubt Psilo.
The weapon delay is calculated in 'ticks' inside of the original code. Actually, the weapon delays are still calculated in 'ticks' to this very day and can be seen
here.
The only portion of the code that was written by Derrick for insta hit was the prep time that states
"Equipping a weapon now causes a short 'prep time' before you can start swinging." - Patch, February 2nd 1999. The rest of the code is the original timer and implementing insta hit is one simple change with the original timer. The difference as stated above is the prep time feature that came with insta hit in '99.
The way the timer ticks is precise without a doubt along with many other documented features that uses the globalized timer.
Re: Instant Hit is broken?
Posted: Fri Sep 24, 2010 1:27 pm
by Derrick
Mikel123 wrote:Wait wait wait - so in order to hit someone I'm adjacent to, I have to be adjacent to them for a full .25?
It's actually quite different than this. It's not possible to be in any position for less than 0.25 seconds; Everything is processed based on a single location for your character each tick.
Re: Instant Hit is broken?
Posted: Fri Sep 24, 2010 2:05 pm
by Mikel123
OK, so back to my question... if I am "jousting" with someone, I should absolutely swing at them 100% of the time we pass each other, because at some point on each of our paths, we would have to be either directly next to each other, or diagonal from each other.
I ask because someone was fighting me the other day with the "walk in random circles" tactic to completely avoid being hit. This was the strategy a couple months ago, when you needed your .25 pause to go from "swing timer completed" to "ready to swing" to be when you actually wanted to swing. I thought now, however, we were back to how it used to be here, assuming you took your .25 pause well ahead of time and could thus swing whenever you got next to someone, regardless of how either of you were moving.
Furthermore... if at every tick, I am in a single location... isn't that a .25 second pause in and of itself?
http://en.wikipedia.org/wiki/Zeno's_par ... ow_paradox
Re: Instant Hit is broken?
Posted: Fri Sep 24, 2010 10:20 pm
by Mirage
Faust wrote:The timer being based on ticks is accurate without a doubt Psilo.
The weapon delay is calculated in 'ticks' inside of the original code. Actually, the weapon delays are still calculated in 'ticks' to this very day and can be seen
here.
The only portion of the code that was written by Derrick for insta hit was the prep time that states
"Equipping a weapon now causes a short 'prep time' before you can start swinging." - Patch, February 2nd 1999. The rest of the code is the original timer and implementing insta hit is one simple change with the original timer. The difference as stated above is the prep time feature that came with insta hit in '99.
The way the timer ticks is precise without a doubt along with many other documented features that uses the globalized timer.
I love when Faust uses phrases like "is accurate without a doubt" or "is precise without a doubt".
Re: Instant Hit is broken?
Posted: Sat Sep 25, 2010 12:34 am
by Iced Earth
I personally have come to the conclusion that he really isn't sure.
Re: Instant Hit is broken?
Posted: Sat Sep 25, 2010 3:45 am
by malice-tg
Mikel123 wrote:nightshark wrote:It happens like this in nearly all cases, however, remember the global tick only happens every .25s. If you move into range of someone for a fraction of a second, and they move out of range before the next tick happens, you won't swing. It can also make the hit look "non instant".
Wait wait wait - so in order to hit someone I'm adjacent to, I have to be adjacent to them for a full .25?
Derrick, interesting... so imagine we are "jousting", I.E I am running South and my enemy is running North, and we're on adjacent lanes of tile. At some point during the run, I will be directly next to the other person. Are you saying that no matter how fast we're running, I should be able to hit them (because we definitely 100% know we will be next to each other at some point)? That was my understanding. Nightshark's explanation makes it sound like if we're running full speed on horses, I have no chance of swinging at them since we're not next to each other for .25 seconds.
if you do this it wont swing.. thats one of my major issues with the patch because its not an insta hit as i remember it. all the other calculations seem fine besides this .25 thing.
Re: Instant Hit is broken?
Posted: Sat Sep 25, 2010 7:00 am
by nightshark
Mikel123 wrote:OK, so back to my question... if I am "jousting" with someone, I should absolutely swing at them 100% of the time we pass each other, because at some point on each of our paths, we would have to be either directly next to each other, or diagonal from each other.
I ask because someone was fighting me the other day with the "walk in random circles" tactic to completely avoid being hit. This was the strategy a couple months ago, when you needed your .25 pause to go from "swing timer completed" to "ready to swing" to be when you actually wanted to swing. I thought now, however, we were back to how it used to be here, assuming you took your .25 pause well ahead of time and could thus swing whenever you got next to someone, regardless of how either of you were moving.
Furthermore... if at every tick, I am in a single location... isn't that a .25 second pause in and of itself?
http://en.wikipedia.org/wiki/Zeno's_par ... ow_paradox
i think the point is that at any point in time you may not actually be where you appear to be on your client. you are at any given location every 0.25s. if you moved 3 tiles in .25s, you'd be on tile 1 and tile 3, you were never really on tile 2 due to the fact things only happen in ticks. in another case, in that 0.25s you might only ever have actually been on tile 2.
Re: Instant Hit is broken?
Posted: Sat Sep 25, 2010 7:09 am
by Mikel123
Nightshark, Derrick is saying that's not the case though. He's saying you can only move 4 tiles per second, so at every tick you are on a specific tile.
I'm utterly confused about all of this. All I know is, the only way to actually hit a person is if they stop to cast or they let you. Otherwise, they can escape damage by simply walking, and making small turns just in case you're smart enough to run ahead of them and turn around try to have them accidentally come to you.
Re: Instant Hit is broken?
Posted: Sat Sep 25, 2010 1:05 pm
by Iced Earth
Well if you can't handle T2A LIKE IT REALLY WAS then maybe you should find another shard.
Ain't that right Faust?
Re: Instant Hit is broken?
Posted: Sat Sep 25, 2010 2:50 pm
by Faust
Mirage wrote:I love when Faust uses phrases like "is accurate without a doubt" or "is precise without a doubt".
You don't say son?
Batlin - http://forum.joinuo.com/viewtopic.php?f=32&t=328 wrote:
// EIP = 0x00445901
int PLAYER::GetPlayerWeaponSpeed(void)
{
// part 1: determine speed
WEAPON weapon = this->GetWeaponInHand();
int WeaponSpeed = 50; // wrestling speed
if(weapon != NULL)
weaponSpeed = weapon->GetSpeed();
// part 2: math
int dividor = weaponSpeed;
dividor = dividor * (GetRealDexterity() + 100);
if(dividor < 2000)
return 20;
return 40000 / dividor;
}
Straight from the original code itself using the weapon speed that is calculated in ticks.
I love to see ignorance blissfully shine like no other, thanks.