• 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!
  • If you're using Gesior 2012 or MyAAC, please review this thread for information about a serious security vulnerability and a fix.

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

Rugged Mage

Lua Scripter
Joined
Mar 8, 2010
Messages
1,182
Solutions
2
Reaction score
73
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
 

old

New Member
Joined
Aug 19, 2018
Messages
10
Reaction score
1
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
 

Dayon

New Member
Joined
Nov 12, 2012
Messages
15
Reaction score
1
Is this method still supported in TFS 1.4.2? Trying to make a list of stuff to add on my next rebuild 😅
 

oserc

Well-Known Member
Joined
Mar 5, 2022
Messages
105
Solutions
1
Reaction score
90
Location
Brazil
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:

Roddet

Premium User
Support Team
Joined
May 1, 2013
Messages
808
Solutions
86
Reaction score
593
Location
Mex
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
 

Fairytail

New Member
Joined
Jul 18, 2021
Messages
26
Reaction score
1
On tfs 1.4.2 how can I use these functions to get +10% attack speed when wearing an item for example
 

oserc

Well-Known Member
Joined
Mar 5, 2022
Messages
105
Solutions
1
Reaction score
90
Location
Brazil
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"
 
Top