* set up "go to the time machine" button working
* warping to the past now sets PayZoneFlag and removes all active missions
* added gumballs functionality
* added nano potions functionality
* formatting fix
* implemented saving BatteryN and BatteryW
* implemented saving mentor
* moved int64->blob parsing to a separate function
* moved parsing blob->int64 to a separate function
* added functions for parsing int32->blob and vice versa
* added functions for parsing int16->blob and vice versa
* WIP saving quest items and active tasks
* Quest items are stored in inventory table instead of blob
* added sanity check for missionId
* saving active missions works
* removed unneccesary include
* implemented saving warplocationflag, skywaylocationflag and currentmissionid in database
* INFO DB message now shows how many accounts and player characters are in the database
* fixed dbsaveinterval being in [login] instead of [shard]
* fixed mission quit:
- fixed wrong json name, causing qitems not deleting properly
- quitting mission now resets npc kill count
* adjusted saving active missions
* removed blob parsing functions that ended up being unused
* removed accidentaly added include
* removed sending PCStyle2 on Player Enter
* added a sanity check in itemMoveHandler
* removed MapNum from PCLoad, as client doesn't even read it
* set BuddyWarpCooldown to 60s on PCLoad
* fixed a bug causing EXIT DUPLICATE not working
* added creation and last login timestamps to accounts and players
* added a sanity check for P_CL2LS_REQ_PC_EXIT_DUPLICATE
* implemented web api support, toggled by new setting (off by default)
* add usewebapi to config
Co-authored-by: Gent <gentsemaj@live.com>
* Clean up spacing/indentation
* Proper enum formatting
* Fix nano dismissal (for real this time)
* Do not copy Player struct when a pointer is right there
* Stop looking after the trade partner has been found
* Make sure we're shifting unsigned values (and 64-bit when they need to be)
* Look for JSONs in tdata/
* Add a dbsaveinterval to the example config.ini, in the login category
This is an insignificant optimization now, but will be necessary when we
start switching around the the algorithms and datastructures used in
proximity detection.
Added basic shopkeeper functions, a player can buy the preset 3 items (cannonbolt set), all shopkeepers have the same items atm (need to check the shopkeeper tabledata), setting itemprice is something I didn't figure out.
Added set nano skill command
Implemented a switch for certain commands like health/taros/fusionmatter etc to be handled on the serverside aswell
Co-authored-by: dongresource <dongresource@protonmail.com>
This commit (and the next one) exist to document the first approach I
took to storing mission data. It's only here for posterity. This comment
was added while rebasing.
* Sanity checks + Starting level changes
- Item movement handler checks to make sure items aren't moved from equipment slot to equipment slot.
- Item give command checks to make sure an out of bounds item is not spawned (Below iType 0 or above iType 8)
- Players now begin at level 36, consequently the item give command does not level you up now.
* Initial Trade Implementation
* Sanity Check
- Prevents out of bounds item movement by comparing it to AINVEN_COUNT.
* Taros and Trading
* Update ItemManager.cpp
* Update ItemManager.cpp
* working trading system
* Trading system code pointerified
- It works with the recent pointer changes needed.
* Vehicles and Trading bugfixes
* Sanity checks + Starting level changes
- Item movement handler checks to make sure items aren't moved from equipment slot to equipment slot.
- Item give command checks to make sure an out of bounds item is not spawned (Below iType 0 or above iType 8)
- Players now begin at level 36, consequently the item give command does not level you up now.
* Initial Trade Implementation
* Taros and Trading
* working trading system
* Trading system code pointerified
- It works with the recent pointer changes needed.
This way we're not always passing it around by value.
Note that the Player structs in CNSharedData are still
pass-by-reference. Will probably change this later.
* Sanity checks + Starting level changes
- Item movement handler checks to make sure items aren't moved from equipment slot to equipment slot.
- Item give command checks to make sure an out of bounds item is not spawned (Below iType 0 or above iType 8)
- Players now begin at level 36, consequently the item give command does not level you up now.
* Sanity Check
- Prevents out of bounds item movement by comparing it to AINVEN_COUNT.
* Cleaned up protocol selection.
* cmake now works even if protocol option is omitted
* make now supports protocol selection
* removed PACKET_VERSION/CNPROTO_VERSION* redundancy
* ubuntu appveyor script has yet to be written
* cleaned up some trailing spaces
* Add some test items.
Ironically, this change is untested.
* [bugfix] Transmit MOTD when entering the game, not when loading screen fades.
This fixes unnecessary retransmission when /warping.