I feel the following idea would greatly benefit us by bringing a new aspect and sense of realism into the game. This should not be hard to implement. Most of the coding would be in the AI of guard class NPCs. A few new checks would need to be added to the server code.
Server determines type of fight, based on challenge code, if fight is within sight of an NPC or reported by player alerting guards manually, otherwise fight is not reported.
Server determines distance from fight to guards, utilizing x, y, z coordinate system already in game. (this is the easy way, or this would generate a path the guards would take and then calculate that distance)
Guards despawn or start running. (Running would be the prefered method)
If despawned: Server waits period of time based off distance and type of fight.
If guards run: Server waits period of time based off distance and type of fight, then sends the guards running towards the fight. (delay to simulate the amount of time it takes for a npc or player to tell the guards)
Guards spawn or arrive near fight and break up fight. If the fight began due to both players wanting or deciding to fight, both get punished. If fight began due to provocation, skill used that if failed auto challenges person, then the person responsible for starting the fight gets punished. IE: Failing to pickpocket auto challenges the person you tried to steal from.
Types of pickpocket outcomes:
Item Stolen, no notification.
Item Stolen, with notification of player and guards.
Item Stolen, with notification and thief auto challenges person, person accepts or declines, if accepted guards summoned, if declined guards notified.
Theft Failed, no notification.
Theft Failed, with notification of player and guards.
Theft Failed, with notification and thief auto challenges person, person accepts or declines, if accepted guards summoned, if declined guards notified.
If provoker goes near Notified guards, then they punish provoker.