Unbegrenzter Attackspeed

04/05/2014 12:58 Mognakor#1
Ich versuche derzeit u.a. die Begrenzung für den Attackspeed zu entfernen, jedoch funktionieren die Angriffe ab einer bestimmten Grenze nichtmehr (bei YoYos ca. 200% AtkSpd).

Mein Ansatz zum entfernen der Begrenzung ist das auskommentieren dieser zwei Zeilen:
Code:
if( fSpeed > 2.0f )
fSpeed = 2.0f;
in GetAttackspeed(MoverAttack.cpp) und GetVirtualATKSpeed(WndField.cpp)

Hatte jemand schon ähnliche Probleme oder weiß eine Lösung?


P.S.: Die Angriffe funktionieren insofern nichtmehr dass die Animation zwar ausgeführt jedoch kein Schaden angerichtet bzw. kein Pfeil abgeschossen wird.
04/06/2014 09:41 Avalion#2
Here's something I found
Code:
#ifdef __HACK_1023
									ItemProp* pHandItemProp		= pMover->GetActiveHandItemProp();
									FLOAT fVal	= pHandItemProp? pHandItemProp->fAttackSpeed: 0.0F;
									g_DPlay.SendMeleeAttack ( dwNextMsg, m_objidHit, MAKELONG( 0, 0 ), MAKELONG( 0, (WORD)nError ), fVal );
Also, did you completely remove the limiters or did you keep the number at 2.0f thinking it was 200%?
04/06/2014 13:21 Mognakor#3
I commented the 2 lines.

From my understanding the 2.0f corresponds to 100% and with 100% attackspeed the attack animations are played at 2x their original speed.

To give you a proper english translation of my problem:
Quote:
I am trying to remove the upper limit for attackspeeds, but upon reaching a certain attackspeed, attacks won't function properly or at all (for YoYos this is around 200% AtkSpd).

My way to remove the limit was simply commenting these 2 lines
Code:
if( fSpeed > 2.0f )
fSpeed = 2.0f;
in GetAttackspeed(MoverAttack.cpp) and GetVirtualATKSpeed(WndField.cpp)
However the code you discovered is only defined in the client and used to detect a hack which seems to resolve around modifying the attackspeed of your weapon in the client.


I allready tried to track this problem some time ago and for ranged attacks (bow/crossbow) it seems to lie somewhere within the function:
CActionMover::ProcessStateAttackRange(ActionMoverS tate.cpp)
To me it seems as if when to attack is determined by a polling algorithm and having high attackspeed leads to the sampling frequency being to small/long and therefore 'jumping' over the point where the attack is supposed to be launched.
04/06/2014 13:22 Hype#4
Quote:
Originally Posted by Mognakor View Post
Ich versuche derzeit u.a. die Begrenzung für den Attackspeed zu entfernen, jedoch funktionieren die Angriffe ab einer bestimmten Grenze nichtmehr (bei YoYos ca. 200% AtkSpd).

Mein Ansatz zum entfernen der Begrenzung ist das auskommentieren dieser zwei Zeilen:
Code:
if( fSpeed > 9999.0f )
fSpeed = 2.0f;
in GetAttackspeed(MoverAttack.cpp) und GetVirtualATKSpeed(WndField.cpp)

Hatte jemand schon ähnliche Probleme oder weiß eine Lösung?
Dann setzt er sie doch nichtmehr runter, oder?
04/06/2014 15:30 Mognakor#5
Quote:
Originally Posted by SiiMPle View Post
Dann setzt er sie doch nichtmehr runter, oder?
Ich hab geschrieben dass ich das auskommentiert habe bei mir im Code sieht ess also so aus:

[code]
//if( fSpeed > 2.0f )
//fSpeed = 2.0f;
[code]

Wenn du gelesen hättest was ich geschrieben habe würdest du wissen dass ich ein völlig anderes Problem habe.

P.S.:
Hab eine genaue Beschreibung des Problems im ersten Post hinzugefügt.