Commit Graph

619 Commits

Author SHA1 Message Date
dongresource 46552307cd Disable monitor by default in config file 2020-12-04 17:30:21 +01:00
dongresource 26024de866 Support the monitor interface on Windows as well
This change required sacrificing both code cleanliness and the specific
error reports from perror(). Those could have been kept with a portable
wrapper, but that's too much work. We'll do it if unforseen errors
arise.
2020-12-04 17:25:32 +01:00
Gent S 85dcdd4cc5 Added /hide command to exclude players from monitor output 2020-12-04 07:24:33 -05:00
Gent S 1ca8094628 Fix regression with disconnected player on Skyway agent. 2020-12-03 15:33:14 -05:00
Gent S 543d0a7afd Fix edge case for nano mission acquisition
This caused players to only get nano missions after exceeding the required FM instead of meeting it.
2020-12-03 00:05:14 -05:00
Gent S 4c398895aa Make /lair fit convention. 2020-12-02 18:41:09 -05:00
dongresource e899928928 Do not try to compile the monitor on windows 2020-12-03 00:15:06 +01:00
dongresource c8b011913a Make monitor parameters configurable 2020-12-02 23:42:33 +01:00
dongresource 15b63f3cbd Fix regression with a disconnect check in MobManager::combatStep() 2020-12-02 23:32:38 +01:00
dongresource ce1a5a7664 Handle partial transmissions of the buffer to the monitor 2020-12-02 20:19:34 +01:00
dongresource c6112d04da Implemented player position monitor interface 2020-12-02 20:19:34 +01:00
Gent S 73f8179836 Make aggro space spheroidal on Z
By doubling the z difference used in distance calculation, mobs above or below the player will aggro less often.
2020-12-02 09:20:33 -05:00
Gent Semaj 86f17b6525
Show announcements in server log 2020-12-01 19:59:18 -05:00
dongresource fed3eca378 Display area announcement to invoking player as well
Also clarified that shard- and world-level announcements will not be
implemented as they are not applicable to our single-shard server.
2020-12-01 23:32:45 +01:00
dongresource fb9c4140b6 Remove redundant namespace specifiers in PlayerManager::init() 2020-12-01 22:24:18 +01:00
dongresource 657061083e Lose aggro and do not take damage if invulnerable 2020-12-01 21:37:34 +01:00
dongresource 8a86c75747 Make sure each group member is alive before healing/buffing them 2020-12-01 21:37:34 +01:00
dongresource 046e7bb6f1 Do not aggro on players with /invulnerable 2020-12-01 21:37:34 +01:00
dongresource 1e822f7a6c Removed redundant checks for a nullptr from PlayerManager::getPlayer()
These were written in desparation and never should have been there in
the first place.
2020-12-01 21:37:34 +01:00
dongresource c43a3d64fb Removed the Player pointer from CNSocket
It was a leak in the abstraction that we weren't even using that much.
This is technically a de-optimization, but it's okay since it's not a
hot code path.
2020-12-01 21:37:34 +01:00
Titan 7c5d7a70cc Fix enter key sending '\n' in passwords 2020-12-01 14:29:21 -05:00
Titan c1941654b6 Basic Implementation of a lair unlock command 2020-12-01 14:19:16 -05:00
Gent S d2d6171d04 Fix gumballs only lasting 1 minute instead of 10 2020-12-01 13:47:54 -05:00
Jade 58952be47e Added silent unsummoning
- summonNano now supports an optional "silent" argument
- gumballs now last 10 minutes.
- fixed comments
2020-12-01 13:16:14 -05:00
Jade 5771cd014a Various bugfixes and tweaks
- timed missions of all types should work.
- nanos now transmit an unsummon on 0 stamina.
- dying bumps your nanos down to half stamina now.
- enemies use abilities less frequently.
- group recall now works at any distance.
- passive nanos are tweaked to guzzle less stamina.
- cleared out some redundant stuff at the nanoPower handler.
2020-12-01 13:16:14 -05:00
Gent S c9754902b9 Instance fusion lair NPCs, remove non-mob fusions, stub non-mob paths 2020-12-01 06:07:10 -05:00
Gent S c508016ca3 Play nano mission animation for nearby players 2020-11-30 20:36:20 -05:00
Gent S 4863d29590 Fix /unsummonW crash on non-mob NPCs 2020-11-30 10:53:34 -05:00
dongresource 858fbf40be Do not strip newlines from email bodies 2020-11-29 21:31:54 +01:00
Gent S 1d7f8bd133 Mob abilities cleanup 2020-11-28 12:41:00 -05:00
Jade a9ad399bc2 Various Tweaks to Mob skill behavior
- Fixed enemy abilities playing after death
- Nerfed frequency further
- Heal on retreat correctly
- Nerfed damage and corruption skill damage
2020-11-28 11:41:32 -05:00
Jade 963205fad6 Added Nullptr check + Made mob abilities less frequent 2020-11-28 11:41:21 -05:00
Jade b836952356 Restructured Arrays to Vectors 2020-11-27 19:02:54 -05:00
Jade 6fb652f642 Corruption reflection + Extra adjustments 2020-11-27 16:33:22 -05:00
Jade 2cde3e34f6 Active skills, Corruption and Eruption 2020-11-27 16:33:18 -05:00
Jade 1371a6da77 Base Variadic MobPowers Handler 2020-11-27 16:32:59 -05:00
Jade d2e89851d6 Non-group buffs do not misbehave + Revive nano stamina fix 2020-11-27 15:40:49 -05:00
Gent S 7cc0a0fc82 Fix group recall and temporarily lift range restriction 2020-11-27 15:31:56 -05:00
Jade c343092bd5 Gumball times out for slots 2 & 3 + Tweaks 2020-11-27 12:01:28 -05:00
Gent S 36d6231da4 Nano refactor cleanup
sanity checks and int[] -> vector<int>
2020-11-27 00:07:31 -05:00
Gent S 7851866d13 Fix nanos making sound when they run out of stamina 2020-11-26 23:01:19 -05:00
Gent S c2ab5c9d02 Fix case where resplen wasn't being initialized 2020-11-26 23:01:19 -05:00
Jade 166eb5125f Group Heal Range Limit 2020-11-26 23:01:19 -05:00
Jade 26ca4d8671 New Powers, Tweaked Eggs further + Cleanup
* Scavenge and Bonus nanos work.
* Eggs now damage and heal more cleanly.
2020-11-26 23:01:19 -05:00
Jade 28276d2229 Reverting back some changes + Tweaks 2020-11-26 23:01:19 -05:00
Jade 2b25b17bd8 Gumball Handling and Bugfixes
* Gumballs now run out of timer.
* Reverted a regression, (gumballs with 0 iOpt do not get emptied).
* Nano matchups now work correctly.
2020-11-26 23:01:19 -05:00
Jade f7c0596a4c Adapted Egg Buffing to Nano powers
* Adapted eggs to nano power data.
* Tweaked nano abilities.
2020-11-26 23:01:19 -05:00
Jade fe7ec44554 Restructuring, Cleaning up and Bugfixes
* Added findTargets, a new helper function that reads out the packet for targets.
* Restructured and removed leftover redundant code.
2020-11-26 23:01:19 -05:00
Jade 299fc1b461 Refactored Nano Powers
* All nano power functions have been merged into one goliath of a function.
* Nano powers consume the correct amount of stamina.
* Bugfixed gumball issues, gumballed nanos now perform better.
* Revive powers now work correctly.
* Recall powers both self and group are functional.
* Removed nanoBuff.
* Added a new applyBuff function, this allows for quick and easy application of nano skills.
* Numerous other bugfixes.
2020-11-26 23:01:19 -05:00
Jade 2acb90f2d2 Initial tabledata implementation 2020-11-26 23:01:19 -05:00
Gent S 75d33aff3e Fix S.C.A.M.P.E.R. chunk desync... again 2020-11-26 22:58:56 -05:00
Gent S 8073c68bd5 Make /fusionmatter properly update fusion matter 2020-11-26 22:33:43 -05:00
Gent S 15dd0a2fc3 Add missing sanity checks to BuddyManager 2020-11-26 22:30:30 -05:00
Gent S 71d1212877 Fix All Characters always failing validation 2020-11-26 11:04:56 -05:00
Gent S 57060e9b6f Fix spawning in the unknown when no Resurrect 'Ems are nearby 2020-11-26 11:03:42 -05:00
Gent S faf2a0ee7d Fix freefalling after MSS DC 2020-11-26 10:01:48 -05:00
Gent S fa7b6e6145 Properly set default NPC class 2020-11-26 09:05:44 -05:00
Gent S 478bcd5338 Use vendorID instead of NPC_ID to index into vendor tables 2020-11-26 09:00:30 -05:00
Gent S c7d3870a60 Add /whois command 2020-11-26 08:59:16 -05:00
Gent S 8351596763 Fix /help using accoutnId instead of accountLevel 2020-11-26 08:30:19 -05:00
Gent S e3568ea506 Fix viewableChunks memory leaks 2020-11-25 22:49:37 -05:00
CakeLancelot a9a8d96321
Fix Female Characters always failing validation 2020-11-25 20:37:24 -06:00
Gent S b0aea27418 Fix player revive packet carrying wrong values
Oops
2020-11-25 20:38:48 -05:00
Gent S 872425640d Prevent DB players from occupying same slot 2020-11-25 19:25:20 -05:00
Gent S ea5b7104be moved name checks to name save and name change packets
added a TODO

Formatting + sizeof in login server
2020-11-25 19:25:20 -05:00
Kamil d85d9d4b12 added character creation validation
added a comment
2020-11-25 19:25:20 -05:00
Kamil 7e08bc60ce added character validation for SAVE_CHAR_TUTOR and CHANGE_CHAR_NAME
fixed ugly sizeofs
2020-11-25 19:25:20 -05:00
Kamil 86e6937342 added character validation to delete packet 2020-11-25 19:25:20 -05:00
Kamil ec8abfa004 moved sending character selection fail to a helper function 2020-11-25 19:25:20 -05:00
Kamil 51a687c7db hugely simplified managing player characters in login server 2020-11-25 19:25:20 -05:00
Kamil 657306e0a1 added missing debug print outs 2020-11-25 19:25:20 -05:00
Kamil eee8aab888 refactored and cleaned up login function 2020-11-25 19:25:20 -05:00
Kamil 5c6d7d6055 added a sanity check for entering invalid characters 2020-11-25 19:25:20 -05:00
Kamil 4760d91ccd refactored giant switch to smaller functions 2020-11-25 19:25:20 -05:00
Gent S db98af9775 Fix chunk desync on revive 2020-11-25 17:50:57 -05:00
Gent S f91f9786d1 Fix chunk desync on S.C.A.M.P.E.R. warp 2020-11-25 17:46:16 -05:00
Gent S 71d9cab72e Fix chunk desync on NPC warp 2020-11-25 17:42:46 -05:00
Gent S 717e5eb78f Remove bad warning for multikills 2020-11-25 13:33:12 -05:00
Gent S e7301f46ef Properly copy mob groups to instances 2020-11-25 11:49:40 -05:00
Gent S 85113a667f Update unsummonW to handle new group gruntwork format 2020-11-25 11:45:34 -05:00
Gent S 98ae236c08 Load gruntwork group mobs hierarchically 2020-11-25 11:09:05 -05:00
Gent S 6ff762ba57 Save gruntwork group mobs hierarchically 2020-11-25 10:41:10 -05:00
Gent S 73ef5fa5ff Load mob groups hierarchically 2020-11-23 19:28:22 -05:00
Gent S 8a0d0e0e4c Restructure tdata 2020-11-23 18:45:28 -05:00
Gent S 0f1d9cdf1c Add sanity check for nano ID in nano equip handler 2020-11-23 17:03:08 -05:00
Gent S 07a1927b9f Force chunk update in sendPlayerTo 2020-11-22 19:22:33 -05:00
Gent S e0858a42b2 Fix getNearestNPC w/ uses 2020-11-22 19:14:46 -05:00
Gent S dab536cb6a Grouped mobs adjustment 2020-11-22 19:14:22 -05:00
Jade f1d04cec01 UnsummonW Implementation + Tweaks
* UnsummonW can be used to remove the mob from existence.
* Mob groups now aggro together.
* Mobs space a little bit when chasing the player.
* Combat balance tweaked a bit, you can take out an entire boss group of scoria cephalopod with good nano usage with common tier weapons.
2020-11-22 16:53:19 -05:00
Jade 5e8b6eec6e Grouped Mobs are gruntworkable
* Using /summonGroupW
2020-11-22 16:53:03 -05:00
Jade 883a1c17e6 Group Mobs Initial Implementation
* For now only mob.json is read for grouped mobs.
* Grouped mobs are fully functional granted the mobs.json is prepared correctly.
* Removed redundant move packet.
2020-11-22 16:53:03 -05:00
Gent S e9ffbe6148 Make /refresh work again 2020-11-22 16:48:29 -05:00
Gent S d1baa0d9f9 Replace inPopulatedChunks with player counter for NPCs 2020-11-22 16:48:29 -05:00
Gent S 71d4f331b5 Fix egg type warning message 2020-11-22 16:46:09 -05:00
Gent S 665f28313a Clean up redundant forced chunk updates for NPCs 2020-11-21 11:53:48 -05:00
Gent S c5fa397724 Fix player entering chunks twice on load 2020-11-21 11:46:56 -05:00
Gent S 95b385dee1 Reimplement chunk data caching 2020-11-19 19:16:51 -05:00
Gent S 82b505a737 Fix buddy warp causing softlock 2020-11-19 18:16:35 -05:00
Gent S dae3b24093 Reimplement chunk position caching 2020-11-19 17:37:07 -05:00
Gent S e50a4c2edd Experimental chunk refactor. 2020-11-19 17:37:02 -05:00
Gent S 5cbb8538c0 Get rid of PlayerView. For good. 2020-11-19 17:36:49 -05:00
Gent S d2e776b672 Fix mission rewards stacking on top of each other 2020-11-19 14:07:29 -05:00
Titan b08fb52272 Implement /announce 2020-11-19 14:05:34 -05:00
Gent S 0075457f81 Temporarily remove sanity check for egg pickup distance 2020-11-17 13:51:35 -05:00
Gent S 12baece1b2 Fix opening C.R.A.T.E.S. resetting your boost counters 2020-11-17 13:48:20 -05:00
Kamil c77f99e849 moved bullets removal call 2020-11-16 21:38:49 -05:00
Kamil d17890af68 cleanup 2020-11-16 21:38:49 -05:00
Kamil 6c1d8c3527 updated comment 2020-11-16 21:38:49 -05:00
Kamil 59ab81d3c6 fixed weapon boosts being used with 0 batteryW 2020-11-16 21:38:49 -05:00
Kamil 9cee8f2c87 added cleaning up player's bullets on exit 2020-11-16 21:38:49 -05:00
Kamil a483b0fb44 fully implemented rockets and grenades 2020-11-16 21:38:49 -05:00
Gent S 8ad3f3aabd CHUNKPOS macro -> ChunkPos typedef 2020-11-16 09:59:53 -05:00
Gent S b22ba781c8 Possible fix for chunking desyncs + CHUNKPOS macro 2020-11-15 14:41:56 -05:00
Gent 4d1d77ceaf Switch to getTime() for egg and buff ticking 2020-11-11 23:50:39 -05:00
Gent 7135767cc4 Egg checks, fixes, and cleanup
fixed not taking egg buff flag into consideration in mob manager

fixed stamina bug and improved sanity check

Egg cleanups
2020-11-11 23:19:07 -05:00
Kamil 0ecf76c5ec moved egg summoning to a custom ChatManager command 2020-11-11 23:19:07 -05:00
Kamil 9087baae3c Polished reading egg json data 2020-11-11 23:19:07 -05:00
Kamil 95b5da8932 temp chunk issue fix 2020-11-11 23:19:07 -05:00
Kamil f733aa60f0 added a chunk sanity check
removed unneccesary include
2020-11-11 23:19:07 -05:00
Kamil d102fabc2f set up gruntwork 2020-11-11 23:19:07 -05:00
Kamil 6d4afd0c6a fixed goo damage not taking all flags into account 2020-11-11 23:19:07 -05:00
Kamil 8003518e18 made particles for picking up eggs work, made damage and heal eggs work 2020-11-11 23:19:07 -05:00
Kamil 859b24229a added a condition to not send mob/egg _ENTER packet when it's HP is 0 2020-11-11 23:19:07 -05:00
Kamil 674d5112f3 implemented basic eggs functionality 2020-11-11 23:19:07 -05:00
kamilprzyb de99522340 added removing buffs on player exit 2020-11-11 23:19:07 -05:00
kamilprzyb c7006b46ed EggBuffs now stores debuff timestamp instead of remaining time 2020-11-11 23:19:07 -05:00
kamilprzyb 45ed99ae35 implemented player debuff 2020-11-11 23:19:07 -05:00
kamilprzyb f2ff4c7f4d added basic player buffs implementation 2020-11-11 23:19:07 -05:00
dongresource 2744ed64e3 Fix a bug where the server would crash if Drain killed a mob. 2020-11-11 23:35:00 +01:00
Gent 90754665a0 Refactor buddy request-by-name 2020-11-11 09:06:41 -05:00
Gent 4454faffc3 Add garbage collection for non-existent players 2020-11-10 18:16:06 -05:00
Gent 34f2aef248 Fix seg fault in buddy data for deleted player 2020-11-10 18:00:34 -05:00
Gent 121c65d7ea Fix not being able to attach weapons to emails 2020-11-09 21:33:02 -05:00
Gent f53de8d521 Explicitly update buddy records in DB
this should fix the bug where removing a buddy while they're offline won't take you off their list until you disconnect
2020-11-09 05:04:06 -05:00
Gent 8a68958ed4 Fix players being able to become buddies twice 2020-11-09 04:41:20 -05:00
Gent d7a8d2d453 Sanitize email subject + body 2020-11-08 15:37:17 -05:00
darkredtitan 5293573116
Allow period and numbers in firstname/lastname regex check (#144)
* Remove unnecessary whitespace check in regex
* Allow dot characters in names (except at the beginning of a name)
* Allow numbers in names
2020-11-08 14:34:02 -06:00
Gent d505b09e98 Email bugfixes
- Fix item flag not getting updated
- Fix attachments getting written to the same slot
2020-11-08 14:58:51 -05:00
Gent 8f90fdaac4 Integrate email handlers with DB 2020-11-08 14:39:17 -05:00
Gent 3a55a9b66f Add email structs and functions to DB
Mutex locks included
2020-11-08 14:37:33 -05:00
Gent 36e9370ff4 Add email packet handlers w/ sample data 2020-11-08 14:26:03 -05:00
Gent 3f5a9c8811 Fix buddy list not syncing properly
I couldn't reproduce this on my public server, but the list would show up empty sometimes on initial login on my local server, so I threw it in for good measure.
2020-11-08 13:58:44 -05:00
Gent 30de5c1734 Sanitize buddy chat strings 2020-11-08 13:31:10 -05:00
Gent c7591c6ce2 Implement buddy warp 2020-11-08 12:54:05 -05:00
Gent 7be79010fc Buddy DB integration 2020-11-08 12:42:27 -05:00
Gent 803f1a246a Buddy code cleanup
- Get rid of buddyCnt, self-nullptr checks, and redundant playermap loops in chat handlers
- Add helper function to find available buddy slot
- Reorganize a bit
2020-11-08 00:08:43 -05:00
SengokuNadeko 262dca7dd6 Buddy rework, adjustments, and fixes
I cleaned up the code a bit (I'll clean it up more as I make more progress) and fixed a bug with buddy slots. Now buddies aren't overwritten!
A few reworks and adjustments

I reworked the buddyIDs array to store only player UIDs instead of IDs. I also reworked buddy deleting so that it deletes buddies from the array.
Code cleanup

Cleaned up some of the code. I mainly just removed useless helper methods.
2020-11-07 23:39:41 -05:00
Gent 26460c0167 Add battery caps for combat rewards & commands 2020-11-07 21:51:16 -05:00
Jade 83c378c9c2 Added /notify and /players admin commands
Co-authored-by: dongresource <dongresource@protonmail.com>
2020-11-03 21:07:59 +01:00
dongresource a1145aced4 Chat strings are now sanitized.
* Only plain, printable ASCII is allowed for now.
* Local chat is now printed to the server console, but group chat is
still private
* Added a helper function to print character names and IDs
2020-10-31 21:31:25 +01:00