ModernUO/Projects/UOContent/Engines
Kamron Batman 26f784f45d
fix: Overhauls murder system (#1419)
## MAJOR CHANGE (API BREAKING)

Added a player murder system to facilitate reporting murders. This should make it easier to extend to create a bounty system or  other related game content. Player murders will be saved in a folder called _PlayerMurders_.

### Motivation

The motivation was two-fold, performance, and bug fixes.

First, murders are one of two systems that do a pre-world-save check on _every mobile in the game_ to decay kills and set their expiring murders. This is taxing since it freezes the world and makes world saves take longer. Every mobile has ShortTermMurders even though it is a player concept. And next, 90%+ of players are not murderers but had an ever increasing MurderElapse time that was being tracked against GameTime. These properties were also serialized unnecessarily for all mobs.

Second, when I tried to optimize/refactor the code, it was obvious that the system has bugs.

### Major API Changes
- [X] Created a player murder system and moved `ShortTermMurders`, `ShortTermElapse`, and `LongTermElapse` to the system.
- [X] Added convenience property `PlayerMobile.ShortTermMurders`.
- [X] Added convenience properties `PlayerMobile.ShortTermMurderExpiration` and `PlayerMobile.LongTermMurderExpiration`
- [X] Moved ReportMurdererGump.cs
- [X] Adds an `EventSink.PlayerDeleted` event.

### Notes
The system currently does not support NPCs. To support expiring murders on NPCs I highly recommend a different architecture for large servers (500k+ mobs including players). Specifically switching from looping through all MurderContext to a time-order link list.
2023-07-15 22:42:49 -07:00
..
Bulk Orders fix: Updates messages with clilocs (#1381) 2023-03-26 00:54:09 -07:00
CannedEvil fix: Fixes random bias & Adds back champion arties for UOML (#1235) 2022-11-09 16:33:27 -08:00
Chat fix: Cleans up core code (#1187) 2022-10-10 21:47:08 -07:00
ConPVP fix: Fixes NPE crash from "i wish to duel" (#1410) 2023-06-05 22:50:15 +02:00
Craft fix: Ambiguous AddRes signatures causing bad necro regs display (#1395) 2023-04-18 14:42:01 -07:00
Doom fix: Fixes doors as decorations & optimizes them (#1392) 2023-04-18 19:28:54 -07:00
Ethics fix: Updates messages with clilocs (#1381) 2023-03-26 00:54:09 -07:00
Events fix(core): Caches DateTime.NowUtc (#548) 2021-03-13 01:32:04 -08:00
Factions fix: Fixes crafter deserialize, cleans up bandages, and codegens misc items (#1350) 2023-02-25 00:54:12 -08:00
Harvest fix: Fixes the limitation on static tiles for harvesting (#1396) 2023-04-22 09:14:42 -07:00
Help fix: Fixes tick count calculcations (#1366) 2023-03-09 21:00:17 -08:00
Khaldun fix: Fixes crafter deserialize, cleans up bandages, and codegens misc items (#1350) 2023-02-25 00:54:12 -08:00
ML Quests fix: Updates disguises and codegens tinkering items (#1353) 2023-02-25 12:01:06 -08:00
Party fix: Fixes ignoring mobs, champions, party crash, slayer rarity, boat speedhack, etc (#1222) 2022-10-31 22:16:50 -07:00
Pathing fix: Removes run flag from NPC movement (#1357) 2023-03-02 10:58:17 -08:00
Plants fix: Fixes the limitation on static tiles for harvesting (#1396) 2023-04-22 09:14:42 -07:00
Player Murder System fix: Overhauls murder system (#1419) 2023-07-15 22:42:49 -07:00
Quests fix: Fixes crafter deserialize, cleans up bandages, and codegens misc items (#1350) 2023-02-25 00:54:12 -08:00
Spawners fix: Fixes provocation for pre-pub 16 (#1335) 2023-02-07 23:33:45 -08:00
Stealables fix: Fixes factions and makes it static (#993) 2022-05-10 11:57:37 -07:00
Treasures of Tokuno feat: Adds TextDefinition serialization support. (#1217) 2022-10-30 01:42:48 -07:00
UltimaStore fix: Replaces throttlers and packet callbacks with function pointers (#1063) 2022-06-15 12:48:43 -07:00
Veteran Rewards fix: Fixes veteran rewards (#1374) 2023-03-12 17:28:51 -07:00
Virtues fix: Fixes crafter deserialize, cleans up bandages, and codegens misc items (#1350) 2023-02-25 00:54:12 -08:00