• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Lua Function [TFS 1.2/1.3] player:setAttackSpeed(ms) | player:getAttackSpeed()

Works on TFS 1.5 - Nekiro (8.6).
The only thing I had to change was delete/comment out the declaration for getattackspeed in player.cpp
 
Works on TFS 1.5 - Nekiro (8.6).
The only thing I had to change was delete/comment out the declaration for getattackspeed in player.cpp
I could not make it work and I do not get any error to know where the problem is
 
Is this method still supported in TFS 1.4.2? Trying to make a list of stuff to add on my next rebuild 😅
 
Got these erros when compiling:

C++:
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(386,18): error C2084: function 'uint32_t Player::getAttackSpeed(void) const' already has a body
1>C:\Gaarlia\Backups\forgottenserver\src\player.h(1357): message : see previous definition of 'getAttackSpeed'
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(409,63): error C2065: 'getAttackSpeed': undeclared identifier
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(409,80): error C3867: 'Player::getAttackSpeed': non-standard syntax; use '&' to create a pointer to member
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(409,80): error C2446: '<': no conversion from 'uint32_t (__cdecl Player::* )(void) const' to 'uint64_t'
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(409): message : There is no context in which this conversion is possible
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(410,65): error C2065: 'getAttackSpeed': undeclared identifier
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(410,82): error C3867: 'Player::getAttackSpeed': non-standard syntax; use '&' to create a pointer to member
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(410,82): error C2446: '<': no conversion from 'uint32_t (__cdecl Player::* )(void) const' to 'uint64_t'
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(410): message : There is no context in which this conversion is possible
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(3259,31): error C2065: 'getAttackSpeed': undeclared identifier
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(3259,48): error C3867: 'Player::getAttackSpeed': non-standard syntax; use '&' to create a pointer to member
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(3259,29): error C2297: '-': not valid as right operand has type 'uint32_t (__cdecl Player::* )(void) const'
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(3266,37): error C2065: 'getAttackSpeed': undeclared identifier
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(3266,53): error C3867: 'Player::getAttackSpeed': non-standard syntax; use '&' to create a pointer to member
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(3266,53): error C2446: '>=': no conversion from 'uint32_t (__cdecl Player::* )(void) const' to 'uint64_t'
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(3266): message : There is no context in which this conversion is possible
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(3271,20): error C2065: 'getAttackSpeed': undeclared identifier
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(3271,36): error C2440: 'initializing': cannot convert from 'uint32_t (__cdecl Player::* )(void) const' to 'uint32_t'
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(3271,18): message : There is no context in which this conversion is possible

Using tfs 1.4.1, btw. Can anyone help me with that?
Post automatically merged:

Got these erros when compiling:

C++:
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(386,18): error C2084: function 'uint32_t Player::getAttackSpeed(void) const' already has a body
1>C:\Gaarlia\Backups\forgottenserver\src\player.h(1357): message : see previous definition of 'getAttackSpeed'
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(409,63): error C2065: 'getAttackSpeed': undeclared identifier
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(409,80): error C3867: 'Player::getAttackSpeed': non-standard syntax; use '&' to create a pointer to member
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(409,80): error C2446: '<': no conversion from 'uint32_t (__cdecl Player::* )(void) const' to 'uint64_t'
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(409): message : There is no context in which this conversion is possible
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(410,65): error C2065: 'getAttackSpeed': undeclared identifier
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(410,82): error C3867: 'Player::getAttackSpeed': non-standard syntax; use '&' to create a pointer to member
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(410,82): error C2446: '<': no conversion from 'uint32_t (__cdecl Player::* )(void) const' to 'uint64_t'
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(410): message : There is no context in which this conversion is possible
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(3259,31): error C2065: 'getAttackSpeed': undeclared identifier
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(3259,48): error C3867: 'Player::getAttackSpeed': non-standard syntax; use '&' to create a pointer to member
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(3259,29): error C2297: '-': not valid as right operand has type 'uint32_t (__cdecl Player::* )(void) const'
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(3266,37): error C2065: 'getAttackSpeed': undeclared identifier
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(3266,53): error C3867: 'Player::getAttackSpeed': non-standard syntax; use '&' to create a pointer to member
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(3266,53): error C2446: '>=': no conversion from 'uint32_t (__cdecl Player::* )(void) const' to 'uint64_t'
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(3266): message : There is no context in which this conversion is possible
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(3271,20): error C2065: 'getAttackSpeed': undeclared identifier
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(3271,36): error C2440: 'initializing': cannot convert from 'uint32_t (__cdecl Player::* )(void) const' to 'uint32_t'
1>C:\Gaarlia\Backups\forgottenserver\src\player.cpp(3271,18): message : There is no context in which this conversion is possible

Using tfs 1.4.1, btw. Can anyone help me with that?
Ok, working properly, just had to make a few adjustments :)
Thanks for the function, 10/10
 
Last edited:
Thats how it works because the value is being stored on the player object (memory) and once you relogin, a new object is created
You can update the attack speed everytime a player logins tho
 
On tfs 1.4.2 how can I use these functions to get +10% attack speed when wearing an item for example
 
On tfs 1.4.2 how can I use these functions to get +10% attack speed when wearing an item for example
player:setAttackSpeed(player:getAttackSpeed() * 0.9)

You'll have to create a movement script, check the folder "...data/movements"
 
Back
Top