f9c2587557
[refactor] Extract BuiltinCommands.cpp from PlayerManager.cpp
...
And move itemGMGiveHandler() from ItemManager.
2021-03-13 02:59:18 +01:00
2d7129111a
[refactor] Refactor ChatManager
...
* Extracted all commands into CustomCommands.cpp
* Moved all chat-related packet handlers into ChatManger.cpp
* Cleaned up redundant includes
* Unified handler naming scheme
* Made all command handlers in CustomCommands.cpp static
2021-03-13 02:59:18 +01:00
4cd3a3dabd
[refactor] src/contrib, src/mingw -> vendor
2021-03-13 02:58:57 +01:00
f7e9cc2cea
Disallow attaching the same item to an email twice
...
Also fix vendor buying validation not allowing crates to be bought,
since apparently their maximum stack size is 0 in TableData.
2021-03-10 00:13:46 +01:00
89eb0b140b
Use the right packet for when a player falls out of the world
...
SUDDEN_DEAD is more appropriate than goo damage for this.
Also made it so other players can see when someone does a /health 0, for
comedic effect.
2021-03-09 21:23:57 +01:00
f5a34b9a3d
Reject completion packets for missions that aren't in progress
...
Also reject players requesting more than 6 missions.
This is just a minimal measure to prevent replaying mission completion
packets. This part of the codebase will be largely refactored soon, so
more through changes can wait.
2021-03-09 18:30:58 +01:00
ffe5947925
Keep track of sold items so we can validate buyback packets
2021-03-09 16:45:38 +01:00
0fbdb1dad2
Improve sanity checks when opening crates and combining items
...
And ignore ITEM_MOVE packets while trading.
2021-03-08 22:31:25 +01:00
d781fae3ba
Merge-in the general changes that were on the injusticefoe branch
2021-03-07 15:56:11 +01:00
3445c0bbc3
Tweaked mob and nano skills
2021-03-07 15:56:02 +01:00
540c37a523
Aggro is now affected by level
2021-03-07 15:56:02 +01:00
33a26cda7c
Split mob heal types
2021-03-07 15:56:02 +01:00
dc6de46a1f
Added ON_COMBAT trigger
2021-03-07 15:55:51 +01:00
c5e08b81da
Implement /ban command
2021-03-07 00:38:24 +01:00
5e569d4324
Disallow selling Croc-Potted items
...
Also, make sure to explicitly terminate the connection when a player is
kicked, and align a few fields in tables.sql.
2021-03-07 00:38:24 +01:00
f2b1a84ef4
Fix segfault when redeeming more than four items at once
2021-03-06 02:09:21 +01:00
d5fe1cc513
Work around not being able to reach the shard from a local connection
...
In certain circumstances, like when running a private server through
Hamachi, the shard IP will be set to an address the local machine can't
reach itself from, preventing only the local player from getting past
character selection. This workaround detects local connections and
sends a loopback address for the shard instead of the configured one.
This makes those use cases feasible.
2021-03-05 19:00:13 +01:00
81c2a2a8b3
Mob Leech and Freedom
2021-03-05 14:34:08 +00:00
f7c84c62ed
Possibly fixed item duping via trading
2021-03-05 14:18:36 +00:00
da8dde9818
Do not dynamically allocate memory in CNSocket::sendPacket()
...
Also reorder the rapid fire check in MobManager::pcAttackNpcs(), so the
output packet validation happens immediately before the buffer is
initialized, for clarity.
2021-03-04 19:51:43 +01:00
Gent
29dbe83a0b
Skip item stacking logic if items not found in XDT
2021-03-04 11:22:01 -05:00
5fdef50f0f
Fix failure to summon the highest NPC_ID
...
And update tdata.
2021-03-03 23:17:36 +01:00
Gent
b04c66dea7
Switch AppVeyor Linux builds to Ubuntu2004
2021-03-01 11:42:23 -05:00
CakeLancelot
f0f3eaf749
README Revisions
2021-02-24 12:35:04 -06:00
217168fe50
Improve DB and Nano sanity checks
...
I'm aware that the DB checks still allow ID 0 items and Nanos, but the
point of those is primarily to prevent invalid memory access.
2021-01-27 02:27:08 +01:00
CakeLancelot
04a17ed862
Record claimed code items, and other misc DB fixes
...
* Create new table to store redeemed codes
* Check if a player already used a code when using /redeem
* Change Coordinate columns to non-plural form
* Fixed EmailItems unique constraint not being specific enough
* Bumped DB version to 3
2021-01-19 14:05:54 -06:00
74af1ad173
Set iOpt to 1 for mission rewards and disallow trading iOpt 0 items
...
Co-authored-by: Jade <jadeshrinemaiden@gmail.com>
2021-01-17 22:57:07 +01:00
CakeLancelot
b0697f12a3
Update README with link to commands on the wiki
2021-01-08 11:23:44 -06:00
34bd7c102f
Validate emails as they're being sent
2021-01-06 14:30:25 +01:00
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
CakeLancelot
89e4b2be22
Re-add descriptive artifact names
2021-01-02 10:22:35 -05:00
Gent S
28543641bb
Properly parallelize Windows builds
2021-01-02 10:22:35 -05:00
Gent S
888f0e77f9
Use GCP instead of default cloud for AppVeyor builds
2021-01-02 10:22:35 -05: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
52e3c3bcd7
Comment out the spawn coords in config.ini
...
They're not often changed, and keeping two sets of them in the config
file is messy when the right set is automatially chosen by the ifdef in
the server itself.
2020-12-31 14:13:14 +01: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