Hey guys,

Alright, so the server I work on as an admin is having some problems. As I'm sure you're all familiar with, Evolution Mercenaries are/were a fairly common thing to have on servers.
Now, because of conflicts with the Shrink System and our server, we had to yank it, instead adding in Stable Stones to fill that gap.

Now, players are left unable to do anything with their mercs because you cannot stable a human. It seems the problem is only based on Body but none of us can figure out a solution.

Basically, we need to make it so that humans are no longer excluded from stabling. If anyone has any suggestions, fixes, or an alternative, please do let me know. As a sidenote, if there is a working Shrink System, please point me in that direction instead.
Thanks!
 
in AnimalTrainer look for this

private class StableTarget : Target
or just search StableTarget til you find it in that script

here's the code, I'm guessing the issue is a Merc isn't coded at a BaseCreature so you'll need to make a new else if statement to verify if targeted is Mercenary


Code:
protected override void OnTarget(Mobile from, object targeted)
559             {
560                 if (targeted is BaseCreature)
561                 {
562                     m_Trainer.EndStable(from, (BaseCreature)targeted);
563                 }
564                 else if (targeted == from)
565                 {
566                     m_Trainer.SayTo(from, 502672); // HA HA HA! Sorry, I am not an inn.
567                 }
568                 else
569                 {
570                     m_Trainer.SayTo(from, 1048053); // You can't stable that!
571                 }
572             }
 
this is Xanthos I have it working but beyond that not sure I can help much since We have massives mods and such for different pets this 1 is a clean copy no mods By Me
 

Attachments

  • Shrink System 2.1.zip
    28 KB · Views: 4
actually what you'll want to do is look for the method EndStable

@Andronama
Edit:
this has been tested and works:
change the line commented out to the one below it in EndStable method
I don't have mercs installed so i used hirable fighters for testing; so naturally change HireFighter to Mercenary or whatever

Code:
public void EndStable(Mobile from, BaseCreature pet)
        {
            if (Deleted || !from.CheckAlive())
            {
                return;
            }

            //if (pet.Body.IsHuman)
            if (pet.Body.IsHuman && !(pet is HireFighter))
            {
                SayTo(from, 502672); // HA HA HA! Sorry, I am not an inn.
            }
 
Last edited:
Alright, thanks both of you.

We are currently trying out Neshoba's copy of Xanthos' program. If that doesn't end up working fine, we are going to try out your idea instead, Zero. Really appreciate the info, will respond once a fix is not only identified but implemented.
[doublepost=1476851847][/doublepost]
actually what you'll want to do is look for the method EndStable

@Andronama
Edit:
this has been tested and works:
change the line commented out to the one below it in EndStable method
I don't have mercs installed so i used hirable fighters for testing; so naturally change HireFighter to Mercenary or whatever

This worked perfectly, thanks a ton Zero. We ended up having to make one more modification elsewhere but this did the trick. Thanks a ton!
 
Alright, thanks both of you.

We are currently trying out Neshoba's copy of Xanthos' program. If that doesn't end up working fine, we are going to try out your idea instead, Zero. Really appreciate the info, will respond once a fix is not only identified but implemented.
[doublepost=1476851847][/doublepost]

This worked perfectly, thanks a ton Zero. We ended up having to make one more modification elsewhere but this did the trick. Thanks a ton!
Np
What additional change was required?
 
Np
What additional change was required?

We have a Stable Stone available on the server and something between the Mercenary's BodyValue and the StableStone script were conflicting. I actually don't know what the issue was but the owner resolved the problem in maybe 30 seconds.

As far as your fix went, we didn't have to change anything about it, just plug it in and voila, it worked.
 
Back