CakeLancelot
9e30e55669
eggBuffPlayer now takes duration, and buff duration is read from EggType
2021-01-06 05:56:54 -06:00
46b6d9fcc7
Include CNStructs.hpp in settings.cpp for the ACADEMY define
...
This fixes the spawn point being wrong.
2021-01-06 12:30:33 +01:00
2bf3fd0975
Further sanity checks for shops
2021-01-06 11:47:07 +01:00
442f85c7a6
Make paths.json academy-specific
2021-01-05 14:07:41 +01:00
b87229aa65
Reject requests to equip items into the wrong slot
...
This is important because the client can genuinely send such an invalid
packet by mistake during normal gameplay.
If a sanity check fails, we don't need to send any sort of "move it but
keep it where it is" packet, since simply ignoring the invalid request
doesn't softlock the client.
Also improved validation of inventory slot indexes.
2021-01-05 13:17:59 +01:00
deca220d43
Do not auto-register all fast travel destinations for GMs
...
Instead, players with access level 50 or higher can use /registerall and
/unregisterall.
2021-01-05 12:44:38 +01:00
74e06f1084
Trading Refactor
...
- Its no longer possible to dupe items by stacking inventory slots in a trade.
- Stacked items work correctly now.
2021-01-04 23:57:50 +01:00
ddc7caf959
Basic Anti rapidfire
2021-01-04 23:57:50 +01:00
6baa0c5b07
Group related fixes
...
- Group adding is not leader only now
- Group buffs work now
2021-01-04 23:57:50 +01:00
d4eaf83354
Fixed Instancing Bugs
2021-01-04 23:53:44 +01:00
47d13ce39e
Fixed Group Mob Retreat
2021-01-04 23:53:38 +01:00
2b95bc660c
Fixed Quest Item Bug
2021-01-04 23:52:15 +01:00
0e3fac4d34
Updated tdata and changed how the default JSON paths are resolved
2021-01-04 17:08:44 +01:00
4516227a7b
Fix a few GM issues
...
* Invert access check when kicking players
* Add validation to ensure only GMs can PVP
* Account for instance in /teleport2me
2021-01-01 21:38:03 +01:00
Gent S
954cfabde5
Add ID gaps for missing NPCs in Academy
2020-12-31 11:26:17 -05:00
966bd3edd2
Group members share the same mob drops
...
This includes quest items.
2020-12-31 14:13:14 +01:00
dab204ddaf
If compiled for Academy, do not spawn NPCs in the Future zone
2020-12-31 14:13:08 +01:00
bad8ef1d10
Kill players that fall out of the map
2020-12-31 12:51:36 +01:00
a12acbb68f
Implement most of the remaining client-side GM commands
...
* Muting a player's freechat
* Kicking players
* Querying info about a player
* Teleporting yourself to a player
* Teleporting a player to yourself
* Teleporting a player to another player
* Teleporting a player to arbitrary coords
* Teleporting a player to arbitrary coords in an arbitrary mapnum
* /unstick
Also:
* Renamed misleading setSpecialPlayer() to setValuePlayer()
* Revamped monitor logic
* Added server-side checks to account level 50 commands
* Made sure even trade chat is run through sanitizeText()
* Moved setSpecialState() closer to its calling functions
* Interpret client commands even in Buddy and Group chat (but not in
Trade chat)
2020-12-31 12:51:31 +01:00
c78b3ca69f
Do not cancel the ongoing race on recall
...
Also do not remove the player's vehicle if the player isn't on a
vehicle.
2020-12-31 03:00:54 +01:00
55431362a7
Make sure the current race is cleared when leaving an IZ
2020-12-28 18:40:26 +01:00
07a930fe1c
Fix vehicles in IZs for real this time
2020-12-28 18:40:26 +01:00
4060bf25b0
Fix recall removing FM pods if racing
2020-12-28 16:55:13 +01:00
9a79ab3927
Reduce mob range when racing as if the player were sneaking
2020-12-28 16:41:29 +01:00
fc45775666
Add /unwarpable command
...
GMs should use this before going to weird places where their non-GM
buddies might warp to them and get stuck.
2020-12-28 16:24:24 +01:00
81d0964971
Disallow warping to players using the MSS
2020-12-28 16:13:38 +01:00
868dc8485e
Allow GMs to enter private instances
2020-12-28 16:12:57 +01:00
26f4767082
Add additional validation to the recall power
2020-12-28 16:12:23 +01:00
d97444cca5
Remove each group member's vehicle when warping into an instance
2020-12-28 00:50:58 +01:00
ee978e8bc9
Limit group member drops based on proximity
2020-12-27 21:14:16 +01:00
Gent S
bdf283ae4f
Make heal nanos heal for the correct amount
2020-12-27 09:23:43 -05:00
f8129b91cb
Zero both players' moneyInTrade when initiating a trade
2020-12-26 20:13:23 +01:00
afea9f436f
Check if otherPlr is null in nanoRecallHandler()
2020-12-26 20:09:33 +01:00
7985fc475b
Fix regression with spawning in an invalid Nano #37
2020-12-24 07:41:22 +01:00
959a708176
Return to the overworld instance when warping to a buddy
2020-12-24 06:05:05 +01:00
44fbb8e81f
Fix other group members not respawning properly in Lairs
2020-12-24 05:22:46 +01:00
Gent S
7fe0e19bb0
Fix IZ races rewarding invalid items
2020-12-23 18:31:42 -05:00
Gent S
82d5455da6
Ignore race rewards for EPs that aren't found
2020-12-23 14:53:56 -05:00
Gent S
52389c2c69
Make code redemption case-insensitive
2020-12-23 13:50:12 -05:00
Gent S
ae75324153
Fix duplicate tasks on instanced mission failure
2020-12-23 13:50:12 -05:00
Gent S
a1a5815f1f
Fix academy nano missions not going into the 0th slot
2020-12-23 13:50:12 -05:00
Gent S
772f80188e
Prevent duplicate running tasks from loading into the Player struct
2020-12-23 13:50:12 -05:00
kamilprzyb
f28c643b48
Allow permanent vehicles
2020-12-23 13:50:12 -05:00
Kamil
5f82658c8d
adjusted item codes logic to handle multiple items per code
2020-12-23 13:50:12 -05:00
50b2bdcb16
Fixed Nano Style Issues
2020-12-23 13:50:12 -05:00
Kamil
34dbb59fb1
Implement redeem codes
2020-12-23 13:50:12 -05:00
Kamil
a74c9be2ff
Implement Nano capsules
2020-12-23 13:50:12 -05:00
fcdea2e723
Implement multiple-choice mission rewards
2020-12-23 13:50:12 -05:00
90191fd494
Add academy.json loading to TableData
...
This is where the permanent Academy-exclusive NPCs and mobs will be
loaded from. Resurrect 'Ems work now.
2020-12-23 13:50:12 -05:00
Gent S
effbbd9a5e
Fix level-up not triggering and using wrong packets
2020-12-23 13:50:12 -05:00
bc7f4883a2
Add Academy defaults to the config file
2020-12-23 13:50:12 -05:00
e0808ffcbd
Read the NPC ID limit from the XDT
2020-12-23 13:50:12 -05:00
9057f31bff
Implement Academy level-up
2020-12-23 13:50:12 -05:00
0a9f637123
Do not give the Lightning Gun and Buttercup Nano to new Academy players
...
And do not mark the two missions from the old Tutorial as completed.
2020-12-23 13:50:12 -05:00
027f513a23
Save Academy Nanos to DB
2020-12-23 13:50:12 -05:00
a99f95d15f
Initial Academy support
...
Support for the Academy's Nano system is complete, but they're not being
saved to the DB yet.
2020-12-23 13:50:12 -05:00
0104bc9329
Enemy ability tweaks
...
- Battery drain does not set your battery below 0.
- Debuffs cast by enemies take into account intensity now. (Snare will work)
- Used int_max to replace arbitrary 20000, added more comments.
2020-12-22 12:12:02 -05:00
4fc5c092f8
Attack logic and various balance changes
...
- combatStep was altered, the mob can attack and give chase at the same time. Kiting melee mobs around is much harder.
- Mobs in general are more harder, closer to how it was in retro.
- Nanos styles are less detrimental to battle.
2020-12-22 11:30:57 -05:00
8d1bc94b7e
Mission Handling Fixes
...
- Q. Item count glitches are dealt with
- Warping out now correctly rewinds missions.
2020-12-22 11:30:57 -05:00
322e354f5b
Fix indentation in RacingManager.cpp and compilation on Linux
2020-12-22 14:46:09 +01:00
Gent S
8a2073d081
Fix racing timestamps
2020-12-22 01:04:46 -05:00
Gent S
e915c54ed0
Correctly set time limit, rank, and reward
2020-12-22 00:37:04 -05:00
Gent S
e953b51229
Add reward tables for racing
2020-12-22 00:36:39 -05:00
Gent S
b9013149f3
Racing cleanup
2020-12-21 21:02:19 -05:00
Gent S
e6da454c73
Finish racing DB integration
2020-12-21 16:18:08 -05:00
Gent S
598c7ce1d0
Add racing-related DB functions
2020-12-21 16:18:08 -05:00
Gent S
ea47f67b2b
Properly utilize instance data in map info packet
2020-12-21 16:18:08 -05:00
Gent S
91ea8be72e
Implement basic race handling
2020-12-21 16:18:08 -05:00
Gent S
b81a3761b6
Load instance data from XDT
2020-12-21 16:18:08 -05:00
Gent S
45b8f8f581
Add RacingManager
2020-12-21 16:18:08 -05:00
c3d9883ddb
Fix migration on Linux
2020-12-20 23:09:10 +01:00
Gent S
ea12ec9607
Use binary streams to make DB backups, since filesystem has low compat
2020-12-20 15:52:34 -05:00
Gent S
2e173df2ca
DB v2 Tweaks
2020-12-19 21:17:07 -05:00
Kamil
1fb48536c2
created external sql file for tables and 1st migration
2020-12-19 20:00:47 -05:00
Kamil
002bfffb62
implemented db migration system
2020-12-19 19:15:14 -05:00
Kamil
140227406c
implemented custom error messages in login screen for regex fail or banned account
2020-12-19 19:15:14 -05:00
26d0623d07
Fix Database::sendEmail()
...
* Do not define an sqlite_stmt* named stmt in a loop such that it shadows
an outer variable of the same name.
* Do not re-prepare a statement that has been reset.
2020-12-19 05:51:06 +01:00
f8a359dfe9
Do not truncate emails to 127 characters
...
And assert that we never supply a string long enough for
sanitizeText() to truncate.
2020-12-19 05:51:06 +01:00
Gent S
2f44243abb
Please.... please take the slider....
2020-12-18 20:48:09 -05:00
e3561e9d15
Change the default ports to match OG and Retro
...
The default monitor port can stay on 8003 for now.
2020-12-18 00:24:24 +01:00
80dabf4406
Finalize ALL the statements
...
* Fixed not being able to modify the DB externally while the script is
running
* Made most DB-related errors print the appropriate error string
* Fixed the settings looking for dbsaveinterval in the shard category
instead of the login category
* Added -shr and -wal to .gitignore (even though we're not actually
using WAL mode)
Hopefully the DB code is now free of resource leaks and undefined
behaviour.
2020-12-18 00:17:35 +01:00
Gent S
d3e5b9c485
Potentially fix slider collisions
...
- Lerp circuit once instead of on a per-slider basis to avoid FPE differences
- Spawn sliders every k points instead of once per stop
2020-12-16 20:37:12 -05:00
f7a6615379
Tweak mob roaming logic and a few other values
...
This fixes the crash with mobs with a very small m_iIdleRange and avoids
unnecessary looping.
Co-authored-by: JadeShrineMaiden <69916714+JadeShrineMaiden@users.noreply.github.com>
2020-12-17 02:35:55 +01:00
Gent S
618a8d0a9f
Reimplement NPC barking
2020-12-15 19:16:05 -05:00
d25e7ca4fc
Implement rudimentary NPC scripting framework and Lord Fuse boss fight
2020-12-15 23:19:29 +01:00
3359ca0c3e
Moved common NPC summoning logic into a helper function
2020-12-15 23:19:29 +01:00
0dd478b9f0
Tweak Lair respawns slightly
...
* Respawn the player in the air, not on the ground
* Do save the player's current instance, just to lessen the chance of
validation not catching stale recall coords.
2020-12-15 23:19:29 +01:00
Gent S
d03c4f109f
Add chat dump to monitor
2020-12-15 09:58:11 -05:00
Gent S
792a317b48
Indicate high account level in logged player name
2020-12-15 09:53:45 -05:00
f74c40cf69
Prevent division by zero by also checking iWalkSpeed for 0
2020-12-15 02:11:18 +01:00
442d7853a5
In the absence of a Resurrect 'Em in a Lair, respawn at the entrance
2020-12-15 00:26:29 +01:00
fcd9b55ea7
Clean up formatting in Database.cpp
...
* Single quotes for strings
* Semicolons at the end of all commands
* No double colons around identifiers
* Spaces for alignment
* Some parts indented for readability
Not everything is perfectly consistent, but it should all be pretty
readable now.
Non-SQL changes:
* Opening braces shouldn't be on their own line
* Removed trailing spaces
* exit(1) should be used instead of terminate(0) during server init
2020-12-14 22:41:28 +01:00
Gent S
f1a2723274
Don't write mob HP to gruntwork
2020-12-14 10:00:07 -05:00
Gent S
5431d21d27
Always grab mob HP from XDT
2020-12-14 00:26:17 -05:00
454e0284af
Remove vendored libsqlite from the repository
...
We now link to the system's library.
Windows implementation pending. MSVC build will be broken for a short
while.
2020-12-14 03:44:58 +01:00
Gent S
94b7864b02
Shut up warnings
2020-12-13 20:52:59 -05:00
Gent S
166bfdfc4f
Terminate if existing DB doesn't have meta table
2020-12-13 20:43:24 -05:00
Gent S
156e9bf902
Fix newline characters being stripped from emails
2020-12-13 20:18:36 -05:00
Gent S
c8ff130b78
Update buddy warp to new DB
2020-12-13 19:54:09 -05:00
Gent S
ec23e72215
Notify client of email send failure
2020-12-13 19:51:31 -05:00