Hello,

Say a player does the following:

1. Peaces a White Wyrm.
2. Attempts to tame the White Wyrm.
3. "You seem to anger the beast" pops up (this is proper).
4. The White Wyrm then goes to attack the player (it was peaced, it should not do this).

I know it "seems" like this should happen because you "angered the beast" but I do not believe this is proper. It "should" be like this:

To view this content we will need your consent to set third party cookies.
For more detailed information, see our cookies page.

As you see, in this video the White Wyrm does not break peacemaking, even though it is angered.

Looking at the code, it seems to me that the modification needs to be done here in animaltaming.cs:

Code:
else if (creature.CanAngerOnTame && 0.95 >= Utility.RandomDouble())
{
    creature.PrivateOverheadMessage(MessageType.Regular, 0x3B2, 502805, from.NetState);
        // You seem to anger the beast!
    creature.PlaySound(creature.GetAngerSound());
    creature.Direction = creature.GetDirectionTo(from);

    if (creature.BardPacified && Utility.RandomDouble() > .24)
    {
        Timer.DelayCall(TimeSpan.FromSeconds(2.0), new TimerStateCallback(ResetPacify), creature);
    }
    else
    {
        creature.BardEndTime = DateTime.UtcNow;
    }

    creature.BardPacified = false;

    if (creature.AIObject != null)
    {
        creature.AIObject.DoMove(creature.Direction);
    }

    if (from is PlayerMobile &&
        !(((PlayerMobile)from).HonorActive ||
          TransformationSpellHelper.UnderTransformation(from, typeof(EtherealVoyageSpell))))
    {
        creature.Combatant = from;
    }
}

Does anyone have any suggestions or thoughts on how to remediate?
 
A failed tame absolutely does break peacemaking, and always has.

If you look around 1:85, you can see the failed tame trigger the calmed WW, and again when the player runs down the hall away from the troll.

Watching the messages in the corner, you can see the player using a macro to attempt taming, then immediately peace to avoid getting attacked, as every tamer has from the beginning.
 
If you go to :53 seconds in the video, how does the player tame over and over without the animal lunging? It's because the animal is peaced...

There is a "chance" the animal will break peace, but on my server, the animal is "always" breaking peace.
 
Because that time the taming was successful. On a failed tame it will always break peace.

Did you watch the video? I see no successful tames at :53. I'm not trying to be argumentative... I just want to ensure that my server is accurate...
 
Pretty sure by 'successful' he means 'successful at attempting', not 'successful at taming'. IE, it does not anger the beast, so an attempt to tame can begin.
 
The code states that there is a 76% chance the peace is reapplied.

I just tested this on an EA server:

1. I peace the WW
2. I go to tame the WW and I "anger" the animal, it takes one step towards me.
3. Animal is still peaced.

This absolutely does not happen on my server. Can you help me troubleshoot why this would be the case?
 
How many times did you test it?

I have been testing on my server off and on, all morning (dont' have an exact number of how many times I tried, but a lot) The behavior on my server is:

1. Peace the animal
2. Attempt to tame
3. "You seem to anger the beast" and peacemaking is lost, animal now attacks until peaced again.

On EA:

1. Peace the animal
2. Attempt to tame
3. "You seem to anger the beast" and peace making is reapplied after the animal takes a single step.

On my server, I never see the peace reapplied. On EA, it is.

EDIT - This post was in error, I should have stated, "On my server, I see the animal re-peaced after two seconds (not 'never').
 
Last edited:
I tend to use ParalyzeField when ever I can :) lasts longer then peace usually

I think I see the problem. The code says "after two seconds" it will re-peace... This is not accurate to EA.

Changing this line:

Code:
Timer.DelayCall(TimeSpan.FromSeconds(2.0), new TimerStateCallback(ResetPacify), creature);

To:

Code:
Timer.DelayCall(TimeSpan.FromSeconds(.1), new TimerStateCallback(ResetPacify), creature);

This provides a more accurate reflection of EA, as the animal being tamed will quickly face the tamer, take a step (attack if close enough) and then re-peace itself. The two second delay was way too long, and the 1/10th of a second feels just like EA.
 
Last edited:
Does the creature hit you when it steps towards you?

On my server, it does... On EA, I don't think it does... I went to test but someone on my server is playing in that area so I need to wait for them to leave to re-test.
 
Last edited:
I have been testing on my server off and on, all morning (dont' have an exact number of how many times I tried, but a lot) The behavior on my server is:

1. Peace the animal
2. Attempt to tame
3. "You seem to anger the beast" and peacemaking is lost, animal now attacks until peaced again.

On EA:

1. Peace the animal
2. Attempt to tame
3. "You seem to anger the beast" and peace making is reapplied after the animal takes a single step.

On my server, I never see the peace reapplied. On EA, it is.

EDIT - This post was in error, I should have stated, "On my server, I see the animal re-peaced after two seconds (not 'never').

When you say "takes a single step." What is your next course of action? Are you trying to peace it at that moment (when you know the animal is angry at you)? Or are you actually waiting to see how the action plays out?
 
When you say "takes a single step." What is your next course of action? Are you trying to peace it at that moment (when you know the animal is angry at you)? Or are you actually waiting to see how the action plays out?

My next course of action doesn't have to be anything.... Literally, this is what happens on EA:

1. I peace a WW. (peace successful)
2. I attempt to tame (WW gets angry, takes a step towards me and is re-peaced automatically).
3. At this point it's peaced... I can attempt to re-tame or simply walk away...

This is how it works on EA.

In ServUO, this is the behavior I've noticed:

1. I peace a WW. (peace successful)
2. I attempt to tame (WW gets angry, walks around for two seconds attacking the player), and re-peaces itself.
3. At this point it's peaced.... I can attempt to re-tame or simply walk away.

@Dexter_Lexia wants me to evaluate if the WW will attack me in that "instant" it takes a single step before the animal re-peaces itself. I will do this and repost here soon.
[doublepost=1496275734][/doublepost]
Does the creature hit you when it steps towards you?

No, the WW will NOT attack you on an EA server. I've just confirmed this and if you like I can post a video to prove it. The only damage that is exchanged is that I may hit the WW for 1 point of damage due to wrestling and standing close to the WW. I can state with absolute certainty, that on an EA server, when peace taming a WW, it will take a step towards you like it "wants" to attack you, but it will not cause any damage whatsoever.

Let me know if you need anything else tested?

Thanks!

-Syn
[doublepost=1496276202][/doublepost]Here's a video I just recorded showing EA behavior.

To view this content we will need your consent to set third party cookies.
For more detailed information, see our cookies page.
 
Ok, so the peace isn't broke at all. Then there is no need for the timer or to ever break the peace for that matter. When the WW hit you, I wonder if peace wore off or if there is a slight chance the peace breaks on anger.
 
Ok, so the peace isn't broke at all. Then there is no need for the timer or to ever break the peace for that matter. When the WW hit you, I wonder if peace wore off or if there is a slight chance the peace breaks on anger.

I think the peace just wore off... I can test more, but the timing regularly feels like the peace just wears off. Either way, the code that comes out of the box with ServUO does not reflect that of EA... I wonder if I should change:

Code:
Timer.DelayCall(TimeSpan.FromSeconds(2.0), new TimerStateCallback(ResetPacify), creature);

To

Code:
Timer.DelayCall(TimeSpan.FromSeconds(0), new TimerStateCallback(ResetPacify), creature);
[doublepost=1496280255][/doublepost]
I think the peace just wore off... I can test more, but the timing regularly feels like the peace just wears off. Either way, the code that comes out of the box with ServUO does not reflect that of EA... I wonder if I should change:

Code:
Timer.DelayCall(TimeSpan.FromSeconds(2.0), new TimerStateCallback(ResetPacify), creature);

To

Code:
Timer.DelayCall(TimeSpan.FromSeconds(0), new TimerStateCallback(ResetPacify), creature);

Tested, that's not gonna work. Still researching code for a true fix to prevent attacking on a failed tame.
 
My EA vs ServUO experience in this has been on EA it takes 1 step towards and stops on servuo it moves to your location even if you are say 4 steps away. It will stop at that point so easy to avoid long as you understand thats whats happening.
 
Back