UOGamers Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

  • To obtain new Razor updates, please reinstall Razor from our new website.

[SVN 579] *PRIORITY* Aggressor lists / targetting / murder counts

Status
Not open for further replies.

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.

.
 

Xavier

Account Terminated
Re: [TESTING-TC] *PRIORITY* Aggressor lists / targetting / murder counts

bump, updated to flag combatants when using controlled pets/summons to attack. Its live on TC, give it a go!
 

Xavier

Account Terminated
Re: [TESTING-TC] *PRIORITY* Aggressor lists / targetting / murder counts

last update, hopefully.
 

ASayre

Retired RunUO Developer
Re: [TESTING-TC] *PRIORITY* Aggressor lists / targetting / murder counts

I'm bumping this to get people to test it.
 

Athena

Account Terminated
Re: [TESTING-TC] *PRIORITY* Aggressor lists / targetting / murder counts

"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."

I've tested this on the TC, you re-target the next aggressor on killing the current target, so this part works great, it's MUCH closer to OSI's targetting behaviour.

"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."

I've tested this part too, if you tell your pet to kill a mobile you will get flagged by that mobile and the target (if they are a player) see's the "insertname is attacking you" message and you see the "you are attacking insertname". This works as it does on OSI.

I can't test the PvP side of these fixes as I don't know enough about how the targetting / flagging works, so all you PvPers out there please get on the TC and start testing!
 

Xavier

Account Terminated
Re: [TESTING-TC] *PRIORITY* Aggressor lists / targetting / murder counts

bump, reuploaded
 

Kraz

AssistUO Developer
Re: [TESTING-TC] *PRIORITY* Aggressor lists / targetting / murder counts

Tested with Xavier:
- kill report exploit fixed
- attacking a criminal target with a pet and get criminal fixed
- attacking under gzone a grey target using necro/spellweaving summons need fix
 

Xavier

Account Terminated
Re: [TESTING-TC] *PRIORITY* Aggressor lists / targetting / murder counts (ME)

ok, one more DoHarmful() and all these major targetting problems should be fixed.

Things to check:

"all kill" on a red/grey from GZ getting them guardwacked -> fixed
clearing combat lists on res -> fixed
murder count exploit of old -> fixed
"all guard" summons/pets from GZ getting red/grey guardwacked -> fixed
retargetting when combatant mobile is dead -> fixed
"all kill" issues "DoHarmful" from controller to target, giving proper flagging and "attacking" messages -> fixed
pet notoriety being properly recognised -> fixed.
 

Athena

Account Terminated
Re: [TESTING-TC] *PRIORITY* Aggressor lists / targetting / murder counts (ME)

TC updated.
 

EvilChild

Knight
Re: [TESTING-TC] [Xavier] *PRIORITY* Aggressor lists / targetting / murder counts

aggressor attacks and kills player blue.

blue dies and can give aggressor a murder count.

Upon being rezzed aggressor is still grey to blue. Aggressor however can kill blue again without blue having a chance to give a murder count to aggressor. (broken) AKA you can rez kill someone as much as you like after killing them once so long as the original flag is still intact. However you will still flag as criminal when you attack them (can be guardwhacked) but you just won't receive a murder count for subsequent killings.


guardwhack bug is still in affect. You can summon a pet and spam all guard in the guardzone to instant whack someone that previously flagged you. Even with the updates. As I somewhat suspected the problems relating to the guardwhack bug WERE NOT part of the flagging system changes but were rather part of the PET notority changes. Basically what happens is that because the aggressors flag wears out on the defender but the blues flag does not wear out on the aggressor (due to refreshing the flag by attacking the aggressor), the aggressor effectively "tabs out" against the defender (dont have a better way of saying it). So the system now thinks that the aggressor is no longer in combat with the defender, but the defender is free to perform harmful actions on the aggressor. So what happens when a defender summons a pet? The pet is a new entity but is tied to the defenders color status. So when the defender orders the pet to guard them, the pet attacks the aggressor. Because the way flagging works when something attacks you, you automatically go into war mode with them. Because going into war mode with a blue in guardzone is a criminal action you will get guardwhacked for defending yourself against the pet.

Basically the problem is that pets are both tied with their owners notority color but also should be able to flag seperatly than their owner.


Hopefully that helps alittle bit.


edit: attacking someones pet turns you criminal. When the pets owner attacks you they do not turn grey. Killing them results in a murder count.

edit2: the bug is still there regarding attacking a criminal -> when the criminal goes blue to the world but is still grey to you -> if you summon a pet on them after this point you turn criminal and are guard whackable.


i think im done testing it for now. It's pretty safe to say that this needs to go back into development.
 

Xavier

Account Terminated
Re: [TESTING-TC] [Xavier] *PRIORITY* Aggressor lists / targetting / murder counts

EvilChild;692330 said:
aggressor attacks and kills player blue.

blue dies and can give aggressor a murder count.

Upon being rezzed aggressor is still grey to blue. Aggressor however can kill blue again without blue having a chance to give a murder count to aggressor. (broken) AKA you can rez kill someone as much as you like after killing them once so long as the original flag is still intact. However you will still flag as criminal when you attack them (can be guardwhacked) but you just won't receive a murder count for subsequent killings.


guardwhack bug is still in affect. You can summon a pet and spam all guard in the guardzone to instant whack someone that previously flagged you. Even with the updates. As I somewhat suspected the problems relating to the guardwhack bug WERE NOT part of the flagging system changes but were rather part of the PET notority changes. Basically what happens is that because the aggressors flag wears out on the defender but the blues flag does not wear out on the aggressor (due to refreshing the flag by attacking the aggressor), the aggressor effectively "tabs out" against the defender (dont have a better way of saying it). So the system now thinks that the aggressor is no longer in combat with the defender, but the defender is free to perform harmful actions on the aggressor. So what happens when a defender summons a pet? The pet is a new entity but is tied to the defenders color status. So when the defender orders the pet to guard them, the pet attacks the aggressor. Because the way flagging works when something attacks you, you automatically go into war mode with them. Because going into war mode with a blue in guardzone is a criminal action you will get guardwhacked for defending yourself against the pet.

Basically the problem is that pets are both tied with their owners notority color but also should be able to flag seperatly than their owner.


Hopefully that helps alittle bit.


The res-killing with no counts is how it is on OSI. Thats not broken.

The pet thing tho, I had that fixed - and tested it several ways. The TC has been rebuilt since then, so Ill need to check and make sure the right patch made it on.

Ill post back about that tomorrow. tired.
 

EvilChild

Knight
Re: [TESTING-TC] [Xavier] *PRIORITY* Aggressor lists / targetting / murder counts

hm thats weird

then the rez killing thing is working as intended.

Everything else is still broken though :(
 

Xavier

Account Terminated
Re: [TESTING-TC] [Xavier] *PRIORITY* Aggressor lists / targetting / murder counts

EvilChild;692343 said:
hm thats weird

then the rez killing thing is working as intended.

Everything else is still broken though :(

If thats even remotely true, then this didnt get repatched properly...

Ill check out whats on the TC tomorrow.
 

Athena

Account Terminated
Re: [CODER NEEDED] *PRIORITY* Aggressor lists / targetting / murder counts

As per Xavier's instructions, this thread is now back in coder needed with all patches removed.
 

EvilChild

Knight
Re: [CODER NEEDED] *PRIORITY* Aggressor lists / targetting / murder counts

my theory is still that it has something to do with the pet color changes in regards to their owners

and not the murder count exploit.


let me know when we have something ready for the TC
 

Xavier

Account Terminated
Re: [CODER NEEDED] *PRIORITY* Aggressor lists / targetting / murder counts

I was going to try to avoid this, but Im going to comment anyway.

Somehow, that stupid change i made to clear flagging when you count someone has been blamed for every targetting problem to come down the pipes: as evilchild just stated, this is not even possible. Pets and summons combatant lists never even come near the counting code I changed.

I posted a proposed fix, which I was more than willing to change/edit/whatever to make it fly... I seriously wanted to fix it for you guys. NO ONE had the time to spare to help see if it works ok. Eventually someone got tired of the problem and decided to test it... and found a problem, but not till after I got into a couple other SHORT TERM commitments on demise.

WHEN I AM DONE THESE, I can return to coding it... IF I even still feel motivated to do so after the massive bitching and complaining (and completely wrong) about it.

So, I asked athena to kick it back.

if its still here when I have time I WILL get on it ASAP, but for the time being...


whatever.
 

EvilChild

Knight
Re: [CODER NEEDED] *PRIORITY* Aggressor lists / targetting / murder counts

Basically the code needs to be re written to something along the lines of:

The pet needs to mirror the owners status. IE: If the owner has gone grey or red the pet needs to go grey or red. Currently the pet only changes color to look grey or red but does not gain any of the consequences of going red or grey. So if you were to attack a grey pet that had not gone criminal on its own but was only grey because its owner went grey, you would become a criminal because the system still thinks that the pet is blue. So the pet needs the exact same flagging status as the owner has as far as to determine if it is innocent, criminal, or a murderer.

Secondly, pets need to be seperated from their owners as far as aggressive actions are concerned. So if someone were to attack an innocent pet in guards they would be guardwhacked. But if someone were to all kill someone with their pet the pet would go grey to the person it was sicked on (unless the person had attacked the pet recently). Basically it needs to work exactly like it works for players except each individual pet has its own aggressor list and they are counted seperatly from their owners. Issuing an all kill command for instance will count as an aggressive action from the pets owner, and then a seperate aggressive action from the pet itself.
 
Re: [CODER NEEDED] *PRIORITY* Aggressor lists / targetting / murder counts

Hopefully this is the proper thread and I was testing the proper thing. Heres what I did:

1) Placed Red CharA in Fel Brit guard zone
2) Placed Blue CharB just outside of guard zone.
3) CharB summoned pixies and sent them onto CharA.
40 CharA got guard-whacked immediately.
 
Re: [CODER NEEDED] *PRIORITY* Aggressor lists / targetting / murder counts

are we waiting Xavier to post his patch again, or can we proceed to code this from scratch?
 

psz

Administrator
Re: [CODER NEEDED] *PRIORITY* Aggressor lists / targetting / murder counts

He's working on it.

Vendors then this (since he's now nose deed in the Vendor stuff)
 
Status
Not open for further replies.
Top