There is now an option to utilize shared memory for some CDClient tables by adding `CD_PROVIDER_MEMORY=1` to the CMakeVariables.txt file.
Allows masterconfig.ini to specify another run command for the world server, to allow for easier debugging through `valgrind`.
* Update CMake configuration for easier maintenance
* Incorrect casing fix
* Move package requirement
* Update CTest linking
* Add logs to the CMake
* Add linking for common libraries
Added linking for common libraries in tests subdirectory.
* Move test subdirectory higher up for some reason
* Whitespace a log removal
Missed new line
* Add dCommon to dChatFilter
* Update library output dir
* Correct libBcrypt
* Further refactor CMake behaviour
* Repair bad comments and update library defines
* Revert to old include directory method
* Implement platform defines
* Add missing include
Mac needs a specific include for defining platform. Does not compile without this.
Co-authored-by: EmosewaMC <39972741+EmosewaMC@users.noreply.github.com>
* Add friends list migration
* Change friends to use charID
Update friends table to use charID and not LWOOBJID variant.
* Fix remove friend
Fix remove friend and make the query more readable at a glance.
* Add and remove friends in the container
Properly add and remove friends in the player container
* add enums
* Add best friends and basic GM support V1
* Add more features
* not online / doesnt exist implementation
Implements the not online and invalid character response codes
* Address players not being removed
Fix an issue where players would not be marked as offline in the friends list due to the message not being sent in all circumstances.
Tested changes on 3 clients, switching characters, logging out from character select, switching characters, world transfer and my friends list looked as it was supposed to.
* Implement proper friends system
Remove debug logs
Track count of best friends
Add best friends list cap of 5
Add config option and best friend update
Add a config option and implement the last missing best friend serialization
Added comments and fixed remove best friend bug
Added some comments and addressed an issue where removing best friends would not remove them from your internal count of friends.
properties and logs fixes
whoops, had an issue
send reply if already BFFs
Send the correct objectID
I really need to rename these
Fix white space
goon
* Replace queries with unique ptrs
* remove user from player container on deletion
Remove the user from the player container when they delete their character.
* Bump patch version
* Improvements to PlayerContainer
Resolved a memory leak in the player container, removed commented out code and resolved a warning in Behavior.cpp
* Make it a unique ptr
* Improvements to PlayerContainer
Resolved a memory leak in the player container, removed commented out code and resolved a warning in Behavior.cpp
Make it a unique ptr
* Update PlayerContainer.cpp
Utilizes `boost::interprocess` to share a map between worlds.
The master server loads the table into memory, and the worlds hook into it when they want to get an entry.
This solves the issue of skill delay, but introduces the third-party library Boost.
There should be a conversation about the introduction of Boost — it is a large library and adds extra steps to the installation.
Add the Venture Vision behavior and associated functionality. Pet digs still do not show up however.
The Kit bonus for factions have been tested and properly grant and take away the buff when it is casted and uncasted. Tested as well using multiple Venture Vision behaviors at once and the vision only went away when there were zero equipped at once.
Remove extra includes
Convert to Tabs
Remove extra forward declaration
Added functions and methods to support the pickup radius. Functionality includes:
Corrected serialization for ControllablePhysicsComponent which correctly serializes the pickup radius to the client.
A method to add the pickup radius to the list of active pickup radii the component has.
A method to remove and re-calculate the largest active radii the component currently has.
Tested equipping all variations of the LootBuff behavior (passive skills, items, item skills) and all functioned as intended. Tested equipping multiple items with a loot buff and then unequipping them in different orders. Tested adding pickup radii of different values and the server correctly adjusted the pickup radius to the largest one currently equipped.
Addressed an issue where the Spinjitzu Initiate achievement would not progress. This also allows mission tasks that specify that the player must get a kill on an enemy with a skill to progress. Tested mission 1935 and 1139 and both missions progressed and completed as intended.
Remove the CDClientDatabase::ExecuteQueryWithArgs() function and replace
it with CDClientDatabase::CreatePreppedStmt().
This prevents a developer from accidently using %s, or incorrectly
passing std::string, and causing a silent error.
Adds function `ExecuteQueryWithArgs(query, ...)` to allow for queries
with user input.
There is a known issue, that the funciton does not work with
std::string. All strings must be converted to c strings.
Adds the ability for the buccaneer valiant to spawn a ship that rams
enemies and smashes them. Next to a script that triggers the ship skill
a few other changes had to be made:
- Force movement behavior server side calculation and sync
- The ship has no physics volume so the FindValidTargets for behaviors
had to be altered to allow ControllablePhysics entities to find entities
within their area. The "target_self" AOE flag has been used to replicate
the old behavior.