Koncord
860897fbd7
[Server] Fix issues after rebase
2019-02-12 05:32:28 +08:00
Koncord
c550697443
[Server] Add true/false defines
2019-02-12 05:29:57 +08:00
Koncord
042a7fa51b
[Server] Use __genffi__ predefined macro
...
Fix aarch64 RetType size
2019-02-12 05:29:57 +08:00
Koncord
eee9fc1ad1
Use typedef instead define for bool
2019-02-12 05:29:57 +08:00
Koncord
4ca5da5666
[Server] Rework Plugin API, move Lua system to external library
...
Use LibFFI for Public & Timer APIs
Use "PlayerId" type instead "unsigned short"
Add GetPluginDir() function
2019-02-12 05:29:57 +08:00
Koncord
a9701028a2
Make API headers C compatible
2019-02-12 05:23:02 +08:00
Koncord
bd3c974ea1
[Server] Trait all API functions as "extern C"
2019-02-12 05:21:01 +08:00
Koncord
a9aecd09d2
[Server] Fix wrong class tagging
2019-02-12 05:20:27 +08:00
Koncord
6caed5d47e
[General] Add comments to false-positive PVS messages
2019-02-12 05:20:27 +08:00
Koncord
ddd370b61b
[General] Add ENABLE_PVS option to CMake
2019-02-12 05:20:27 +08:00
Koncord
5519572b22
[General] Fix warnings and errors found by PVS Studio in Server
2019-02-12 05:20:27 +08:00
Koncord
7ab7c4c9c2
[General] Add PVS Studio macros
2019-02-12 05:19:03 +08:00
Koncord
2f75ecabcb
[General] Update LuaBridge to 3154e94487dedc84f038c5787985ddc01a95d126
2019-02-12 05:19:03 +08:00
Koncord
dca7e1ec45
[Server] Fix GCC 8 build
2019-02-12 05:19:03 +08:00
Koncord
add6b02b79
[Server] Do not export all symbols
2019-02-12 05:18:25 +08:00
Koncord
e7e374f7c5
[Server] Fix order of CDECL
2019-02-12 05:18:25 +08:00
Koncord
f24b8b8738
[Server] Fix rebase conflicts
2019-02-12 05:18:25 +08:00
Koncord
6a2878820c
[Server] Trait all API functions as "extern C"
...
Move Timer & Public functions to Script/Functions
2019-02-12 05:18:25 +08:00
David Cernat
1df1515c7e
[Client] Add logging for invalid enchantmentIds in RecordHelper
2019-01-23 01:04:59 +02:00
David Cernat
999ce857c7
[Client] Add logging for records ignored due to their invalid baseIds
2019-01-23 00:48:06 +02:00
David Cernat
db7e09f441
[Client] Use more consistent logging when reading dynamic record packets
2019-01-23 00:38:05 +02:00
David Cernat
0fa116b47d
[Client] Remove useless lines in RecordHelper
2019-01-23 00:20:51 +02:00
Koncord
0df32accca
[Server] Fix ARM build
2019-01-21 12:02:02 +08:00
David Cernat
fd40e8c971
[Client] Prevent ObjectState spam by not resending an already sent state
2019-01-15 14:26:00 +02:00
David Cernat
6e47b65205
[Client] Set attribute increases & level progress after correct packets
...
Originally, the PlayerSkill packet contained skills, attribute increases and level progress. In 78441c769a
, the attribute increases were moved to the PlayerAttribute packet and the level progress was moved to the PlayerLevel packet, but – due to an oversight – attribute increases and level progress were still being applied to the local player only when a PlayerSkill packet was received, based on whatever values were stored from the last PlayerAttribute and PlayerLevel packets.
2019-01-11 14:26:13 +02:00
David Cernat
f481c85e07
[Client] Use ADD before REMOVE for PlayerInventory in repair/recharge
...
Previously, when recharging or repairing an item, the client sent a PlayerInventory packet to the server with the old version of the item that was supposed to be removed and then it sent a PlayerInventory packet with the new version of the item that was supposed to be added.
Unfortunately, the current CoreScripts make it so custom items using generated IDs have their records deleted when they are completely removed from the world, however briefly, even if they are added back immediately afterwards. In practice, this meant that – before this commit – recharging or repairing a custom item led to its removal from the player inventory stored on the server, followed by the deletion of its record, followed by its readdition to the inventory (but with the record staying deleted). Logging out and logging back in immediately prevented the player from receiving the item anymore because of its now non-existent record.
2019-01-11 13:08:26 +02:00
David Cernat
8a99f215f6
[Client] Add LocalPlayer::sendItemChange() variant with mwmp::Item arg
2019-01-11 12:54:47 +02:00
David Cernat
db9c1b9882
[Client] Add MechanicsHelper::getItem() for getting mwmp::Item from Ptr
2019-01-11 12:53:26 +02:00
David Cernat
799241e8c6
[Client] Use informative error message for RefData::setCount() issue
2019-01-11 08:16:29 +02:00
David Cernat
43f195f0c7
[Client] Use clearer debug for actor initializations
2019-01-05 23:27:35 +02:00
David Cernat
2e1d4a9449
[Server] Fix non-Windows builds
2019-01-05 22:11:58 +02:00
David Cernat
81e2e48561
[Client] Fix item magic casting synchronization for spell scrolls
...
Previously, spell scrolls were used up before their IDs could be included in attacks packets supposed to be sent for them.
2018-12-31 13:24:32 +02:00
David Cernat
d83160523f
[Client] Add items required for item magic casting when they are missing
2018-12-31 06:55:35 +02:00
David Cernat
433a69a588
[Client] Send all data for newly initialized LocalActors at least once
2018-12-31 04:36:59 +02:00
David Cernat
e70fd2cf3a
[Server] Accept clients with wrong password on servers with no password
2018-12-31 03:52:25 +02:00
David Cernat
eb52babf29
[Server] Print IP instead of name or PID for players unable to connect
...
The player name was always blank in such situations, providing no useful information. The PID was not useful in any way either.
2018-12-30 18:02:26 +02:00
David Cernat
e96091fd6b
[General] Use more consistent variable names for password, address, etc.
2018-12-30 17:23:12 +02:00
David Cernat
906d2a837d
[Client] Send PlayerInventory packets when recharging items w/ soulgems
2018-12-30 11:58:33 +02:00
David Cernat
71679934a1
[Client] Send PlayerInventory packets when repairing items
2018-12-30 09:39:46 +02:00
David Cernat
5d9893ee92
[Client] Set actor killer correctly for spells that do damage over time
...
Additionally, clean up comments related to other code that sets actor killers.
2018-12-30 07:40:11 +02:00
David Cernat
6e1504f0a1
[Server] Use clearer variable & function names in TimerAPI
2018-12-30 04:15:53 +02:00
David Cernat
42b5a8054f
[Server] Remove unusable position functions for players
2018-12-30 03:17:37 +02:00
Koncord
4ce0331f1b
[Server] Fix GCC build
2018-12-29 15:54:08 +08:00
Koncord
9343b8af2f
[Server] Remove unused function
2018-12-29 14:02:08 +08:00
Koncord
c2230a8a21
[Server] Add MP flag to the server if enabled
2018-12-29 12:03:01 +08:00
Koncord
55cea491ca
[Server] Introduce MS VC++ 2017 support
2018-12-29 11:57:26 +08:00
Koncord
6af2400752
[Server] Remove usages of get/set env. Add GetModDir function
2018-12-29 11:40:31 +08:00
Koncord
b3456a8841
[Server] Fix invalidation of iterators
2018-12-29 11:10:20 +08:00
David Cernat
343dd8b5ea
[Client] Fix addition of items to player inventories
...
Previously, multiple stacks of the same item ID could overwrite data in each other because of how the logic in ContainerStore::add() works. For example, a stack of 5 grand soul gems with no souls would get added to the player, then the attempt to add a grand soul gem with a particular soul would retrieve the previous stack first before setting all of it to that soul, resulting in 6 grand soul gems with that soul.
2018-12-26 13:41:19 +02:00
David Cernat
76ac905efc
[Client] Send PlayerInventory packets when trapping souls in soulgems
2018-12-26 12:25:00 +02:00