Commit Graph

22138 Commits (a9701028a26d792da58a1aaf740bce5ec36d7030)
 

Author SHA1 Message Date
Koncord a9701028a2 Make API headers C compatible 6 years ago
Koncord bd3c974ea1 [Server] Trait all API functions as "extern C" 6 years ago
Koncord a9aecd09d2 [Server] Fix wrong class tagging 6 years ago
Koncord 6caed5d47e [General] Add comments to false-positive PVS messages 6 years ago
Koncord ddd370b61b [General] Add ENABLE_PVS option to CMake 6 years ago
Koncord 34be44f012 [General] Fix minor warnings found by PVS 6 years ago
Koncord 5519572b22 [General] Fix warnings and errors found by PVS Studio in Server 6 years ago
Koncord 7ab7c4c9c2 [General] Add PVS Studio macros 6 years ago
Koncord 2f75ecabcb [General] Update LuaBridge to 3154e94487dedc84f038c5787985ddc01a95d126 6 years ago
Koncord dca7e1ec45 [Server] Fix GCC 8 build 6 years ago
Koncord add6b02b79 [Server] Do not export all symbols 6 years ago
Koncord e7e374f7c5 [Server] Fix order of CDECL 6 years ago
Koncord f24b8b8738 [Server] Fix rebase conflicts 6 years ago
Koncord 6a2878820c [Server] Trait all API functions as "extern C"
Move Timer & Public functions to Script/Functions
6 years ago
David Cernat c058dce346 [General] Clarify meaning of commit hash displayed on start 6 years ago
David Cernat 1df1515c7e [Client] Add logging for invalid enchantmentIds in RecordHelper 6 years ago
David Cernat 999ce857c7 [Client] Add logging for records ignored due to their invalid baseIds 6 years ago
David Cernat db7e09f441 [Client] Use more consistent logging when reading dynamic record packets 6 years ago
David Cernat 0fa116b47d [Client] Remove useless lines in RecordHelper 6 years ago
Koncord 0df32accca [Server] Fix ARM build 6 years ago
David Cernat fd40e8c971 [Client] Prevent ObjectState spam by not resending an already sent state 6 years ago
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.
6 years ago
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.
6 years ago
David Cernat 8a99f215f6 [Client] Add LocalPlayer::sendItemChange() variant with mwmp::Item arg 6 years ago
David Cernat db9c1b9882 [Client] Add MechanicsHelper::getItem() for getting mwmp::Item from Ptr 6 years ago
David Cernat 799241e8c6 [Client] Use informative error message for RefData::setCount() issue 6 years ago
David Cernat 43f195f0c7 [Client] Use clearer debug for actor initializations 6 years ago
David Cernat 2e1d4a9449 [Server] Fix non-Windows builds 6 years ago
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.
6 years ago
David Cernat d83160523f [Client] Add items required for item magic casting when they are missing 6 years ago
David Cernat 433a69a588 [Client] Send all data for newly initialized LocalActors at least once 6 years ago
David Cernat e70fd2cf3a [Server] Accept clients with wrong password on servers with no password 6 years ago
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.
6 years ago
David Cernat e96091fd6b [General] Use more consistent variable names for password, address, etc. 6 years ago
David Cernat 906d2a837d [Client] Send PlayerInventory packets when recharging items w/ soulgems 6 years ago
David Cernat 71679934a1 [Client] Send PlayerInventory packets when repairing items 6 years ago
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.
6 years ago
David Cernat 6e1504f0a1 [Server] Use clearer variable & function names in TimerAPI 6 years ago
David Cernat 42b5a8054f [Server] Remove unusable position functions for players 6 years ago
Koncord 4ce0331f1b [Server] Fix GCC build 6 years ago
Koncord 9343b8af2f [Server] Remove unused function 6 years ago
Koncord c2230a8a21 [Server] Add MP flag to the server if enabled 6 years ago
Koncord a0e89208a0 [General] Fix standalone server build 6 years ago
Koncord 55cea491ca [Server] Introduce MS VC++ 2017 support 6 years ago
Koncord 6af2400752 [Server] Remove usages of get/set env. Add GetModDir function 6 years ago
Koncord b3456a8841 [Server] Fix invalidation of iterators 6 years ago
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.
6 years ago
David Cernat 76ac905efc [Client] Send PlayerInventory packets when trapping souls in soulgems 6 years ago
David Cernat f853368641 [Client] Fix loss of player items in ContainerStore::unstack()
Previously, unstacking items for a player led to a PlayerInventory packet being sent about the items' removal.

This change makes it so both a packet about their re-addition and their removal are sent instead, cancelling each other out, which is inelegant, but arguably preferable to complicating the sending of PlayerInventory packets again.
6 years ago
David Cernat 5e38e8abdb [Server] Add GetArchitectureType() script function
Additionally, bring GetOperatingSystem() up-to-date by making it use the renamed function in Utils.
6 years ago