The Autovalidation System
Posted: Sun Jan 24, 2021 3:03 am
The logs in the game tell of the damage one player does to another player. Instead of using the logs which would technically be easier, though have some issues, I had a better idea. The autovalidation system uses a damage pie which attributes all types of damage to different players based on who did any amount of damage. The way this works is very strait forward. players are put on a table where the rows are players and columns are players who are the source of damage. This table doesn't update unless damage occurs, in which it assigns the damage to a location on the table where it adds damage over time. It doesn't remove damage when a player is healed and it doesn't count stamina damage or other non-lethal forms of damage. When a player dies, the row is processed in which the entire list of all players is checked to see who did the most damage. When a player is revived from the death, their row is reset back to 0 on all the players until they get damaged and die again.
The table grabs the highest source of player damage and excludes non-player damage, takes the name of the player who did the most damage, and checks their alignment. If they're not an antagonist of any sort, then a message shows up on the players chat bar which says "Nonvalid" which flags the kill for the player to inquire of bothering to ask for admin support. If they're an antagonist, then a message shows up that says "valid" which flags the kill for the player to know that an antagonist murdered them and so they don't have to bother the admins about getting shot with an autorifle from cargonians.
Very simple feature. Doesn't have to be implemented with a table. Could use other methods that save even more memory space. I know byond is buggy. Still worth a look into. Won't always be reliable obviously as someone can shoot someone with a syringe and put chemicals in a persons system which would clearly count as damage not attributed to a player because you can't assign specific chemicals to players separately. That would be a lot of processing.
The table grabs the highest source of player damage and excludes non-player damage, takes the name of the player who did the most damage, and checks their alignment. If they're not an antagonist of any sort, then a message shows up on the players chat bar which says "Nonvalid" which flags the kill for the player to inquire of bothering to ask for admin support. If they're an antagonist, then a message shows up that says "valid" which flags the kill for the player to know that an antagonist murdered them and so they don't have to bother the admins about getting shot with an autorifle from cargonians.
Very simple feature. Doesn't have to be implemented with a table. Could use other methods that save even more memory space. I know byond is buggy. Still worth a look into. Won't always be reliable obviously as someone can shoot someone with a syringe and put chemicals in a persons system which would clearly count as damage not attributed to a player because you can't assign specific chemicals to players separately. That would be a lot of processing.