dongresource
02c5df5c1b
Ours is not to decide the value of pi.
...
Ours is only to live by it.
2020-12-06 02:45:20 +01:00
dongresource
dd6fbfb683
Tweak terminate() slightly
...
* Gave it a default argument, since we never actually care about it, but
it needs to have it to conform to the signal handler prototype
* Constricted the area locked by activeCrit to only the block that deals
with the connections vector, to lower the chance of a future badly
placed call to terminate() deadlocking the server instead
2020-12-06 02:20:46 +01:00
dongresource
92307063fc
Integrate the monitor's listener socket into the shard's poll()
...
This removes the need for a separate monitor thread.
2020-12-06 01:44:37 +01:00
dongresource
53d8cb67ba
Set monitor connections to non-blocking
...
Better to just drop monitor connections when the quality is bad than to
risk blocking the shard thread.
2020-12-05 23:16:09 +01:00
dongresource
6b257887b7
Use an std::vector for PollFDs instead of handling it manually
...
Lowered poll() timeout to 50, to fix (work around?) slider stutter.
2020-12-05 22:51:17 +01:00
dongresource
ec7cba644c
Clean up polling logic
...
* Extracted PollFD manipulation and nonblocking socket configuration
into helper functions
* Replaced the connections list with an unordered_map
* Dynamically grow the number of PollFD structures with realloc()
With these changes done, the server's CPU usage is completely diminished
from its old average of ~47% to ~0.07%, with occasional spikes up to ~14%.
2020-12-05 22:47:50 +01:00
dongresource
269315ca09
Support for poll() (ie. WSAPoll()) on Windows
2020-12-05 22:47:50 +01:00
dongresource
661061b4eb
Switch to non-blocking sockets + poll(); prepare for Windows logic
2020-12-05 22:47:50 +01:00
dongresource
3a2b488f33
[WIP] fixed a million bugs and one potential one
2020-12-05 22:47:50 +01:00
dongresource
721b3f440f
[WIP] Switched to poll(), but only on Unix
2020-12-05 22:47:50 +01:00
Gent S
b04c377d7c
Properly implement item types.
2020-12-04 16:42:58 -05:00
Gent S
794856a63c
Clean up item loading from XDT.
2020-12-04 13:57:08 -05:00
Gent S
856a90abcf
Fix nano logic in goo damage running without a nano out
2020-12-04 11:59:53 -05:00
dongresource
88d904e302
Fix FM patches not dealing damage unless invulnerable
2020-12-04 17:48:12 +01:00
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
6e7129bf6f
Update tdata ref 12/3
2020-12-04 06:51:30 -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
840cba6a9e
Removed obsolete ASAN suppressions
...
Also added a missing suppression for doDamageNDebuff().
2020-12-01 23:32:20 +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
CakeLancelot
128aad89d3
Update tdata ref to include all overworld mobs
2020-11-29 19:31:50 -06: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