Xavier
Account Terminated
[SVN 579] *PRIORITY* Aggressor lists / targetting / murder counts
This patch fixes murder exploit (properly), deflagging on death, guard wack exploits, flagging from "attack" command to followers, retargetting.
playermobile.cs
-----------------------------
- changed player targetting to re-target while in warmode. This will target the closest aggressor when current combatant is null/dead/deleted. This will much better emulate OSI's targetting.
reportmurdergump.cs
-----------------------------
- remove ill-conceived clearing of aggressor list.
- refactor various "victum" to "victim".
server/aggressorinfo.cs
------------------------------
- make last time public writable (needed below)
server/mobile.cs
------------------------------
- consolidate two damn near identical piece of code
- properly end murder count exploit by not using AggressorInfo.Refresh(). This was the cause of the murder count exploit, where each time an aggressive action took place, Refesh() was called which clears "reported" flags, hence allowing the "victim" to clear the reported flag for the murderer without the murderer committing any new aggression whatsoever. So instead of clearing it on new aggressions, Im just leaving the aggressorinfo to expire before he can be counted again. You cannot give murder counts on OSI for repeatedly res-killing anyway.
YES, this is a core patch. The core has the problem, the core is where its fixed best. There is no point in doing the same thing in an override in Scripts/Mobile.cs, when 99% of the time Ill have to pass the ball to base anyway. Its a waste of time in such a heavily used part of the code.
BaseCreature.cs
------------------------------
- on aggression check if aggressor is in our controlmaster/summonmaster's aggressors list. If so, its not a new criminal action.
- Also on aggressions, check real notoriety .
This will prevent the guardzone/summon exploit, and incorrectly flagging people criminal for attacking red/grey player's pets.
BaseAI.cs
------------------------------
- DoHarmful() upon "all kill", et al, to properly flag combatants. This will also provide "attacking you" and "you are attacking" messages to pet attack commands, and proper flagging of both players and monsters.
...
Re-uploaded to fix a minor bug I found myself.............................
Reuploaded again. it is at latest version.
.
This patch fixes murder exploit (properly), deflagging on death, guard wack exploits, flagging from "attack" command to followers, retargetting.
playermobile.cs
-----------------------------
- changed player targetting to re-target while in warmode. This will target the closest aggressor when current combatant is null/dead/deleted. This will much better emulate OSI's targetting.
reportmurdergump.cs
-----------------------------
- remove ill-conceived clearing of aggressor list.
- refactor various "victum" to "victim".
server/aggressorinfo.cs
------------------------------
- make last time public writable (needed below)
server/mobile.cs
------------------------------
- consolidate two damn near identical piece of code
- properly end murder count exploit by not using AggressorInfo.Refresh(). This was the cause of the murder count exploit, where each time an aggressive action took place, Refesh() was called which clears "reported" flags, hence allowing the "victim" to clear the reported flag for the murderer without the murderer committing any new aggression whatsoever. So instead of clearing it on new aggressions, Im just leaving the aggressorinfo to expire before he can be counted again. You cannot give murder counts on OSI for repeatedly res-killing anyway.
YES, this is a core patch. The core has the problem, the core is where its fixed best. There is no point in doing the same thing in an override in Scripts/Mobile.cs, when 99% of the time Ill have to pass the ball to base anyway. Its a waste of time in such a heavily used part of the code.
BaseCreature.cs
------------------------------
- on aggression check if aggressor is in our controlmaster/summonmaster's aggressors list. If so, its not a new criminal action.
- Also on aggressions, check real notoriety .
This will prevent the guardzone/summon exploit, and incorrectly flagging people criminal for attacking red/grey player's pets.
BaseAI.cs
------------------------------
- DoHarmful() upon "all kill", et al, to properly flag combatants. This will also provide "attacking you" and "you are attacking" messages to pet attack commands, and proper flagging of both players and monsters.
...
Re-uploaded to fix a minor bug I found myself.............................
Reuploaded again. it is at latest version.
.