RunUO 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!

ACC Yard and Garden

M_0_h

Page
test444;822778 said:
Yeah....... :) This is another way... i got this idea too just right before i readed your post... ;)

Now i see, i cant place the leaves? Somebody can place the leaves???

Do you have the felucca look enabled on your map? It disables all kind of tree leaves ;)
 

smeghead

Wanderer
I got a wierd problem where in some places I cant see leaves on trees either.

If I place a christmas tree in Brit all I see is the trunk and branches! very wierd
 

Tresdni

Squire
That is more than likely a problem that lies within Felucca, with the seasons setting in your mapdefinitions.cs.

Try it in Trammel and see if you still have the same problem.
 

A_Li_N

Knight
Wow, no notifications of replies since I last posted and I come and see all of these...lol

Lord_Greywolf;822742 said:
an other way to maybe make it so less abuse, is to have it so only can place "in front" of house
most people place their houses back a ways from others, so they can see in front of their house
this way they can place in front in that area only and not to the side, etc into other houses

also this would stop people from blocking most cave/mine/other area entrances by put up a small house and then building a yard to block off the area infront of the cave, etc
As for the script package itself, I will be leaving it at 10 around...shard owners can limit as they see fit.

oiii88;822748 said:
The largest abuse I found and never found a fix for was making the items decay once the home was dropped. On my original shard ages ago I allowed 6 homes ( boy what a mistake ) to get around the 5 tile range I limited them with they would place 18x18 after 18x18 add fence or shrubs etc then delete the home and the items stayed. Not complaining just making another glitch players use known in case anyone has a fix for that.
Lord_Greywolf;822756 said:
i have simular problem with items placed around houses that way to after deleted house from lost account
normaly have to wait for some one to say - hey there is a what not in the middle of where i like to place my house lol

would be nice if the yard stuff got linked to the house some how so it would decay as well
I will put that on the list to implement with the next update. I'll probably have it check if the house exists at save and if not, remove the item. (I'll serialize the house in the item as well as the player)


As for blocking entrances...put it in the rules that if they do, the item will be removed when found and no refund given. If they keep blocking the entrance, delete the house and all items...Yes, I have no sympathy for rule breakers like that ;)

I'd guess an update within this week.
 

smeghead

Wanderer
I think its great as-is man, really awesome script.

Its just going to take some GM policing to make sure nobodys exploiting it and some cleanup when the house drops which is inevitable anyway when you do a little Gm Decoing
 

A_Li_N

Knight
I just found a bug while working on updating these scripts...The YardStair.cs does not assign the mobile who placed it in the constructor. The problem with this is that stairs will not have owners and can cause problems with the load of the server. If you already have players that have stairs, I'd inform them that they should be removed and update the scripts. The update will be available in the next day or so.
 

A_Li_N

Knight
Update 2010-01-06

2010-01-06
  • Fixed major bug with the YardStairs. This update will cause any stairs to be deleted...but considering the bug and lack of people informing me of it, I doubt many will have problems with that.
  • Yard items are now linked to the player's house as well as the player. When a house is removed, it will cause the items to be refunded...in time (described below).
  • Setting to allow or disallow placing items in other player's houses. This does not have any effect on other player's 'Yard' areas. It simply makes it so players cannot place inside other player's houses.
  • Updated YardGates to be a single class instead of a separate class for each gate. This causes old gates to become obsolete, but I have included code to automatically update the old gates to the new ones. If, for some reason, you want to make sure they updated, run the [UpdateOldGates command to manually update all gates. More on this in the notes section below.

Files Changed
Almost all.

To Update
Extract files in rar, overwriting your current files.
Loading the server that contains YardStairs will ask you to delete them, as the update changes things structurally in this class.
Loading the server that contains Yard Gates (YardIronGate, YardShortIronGate, etc) will give you a message for each gate, informing you that the server is updating the gate to the new version.

Notes
YardSettings.cs contains 2 more variables...SecondsToCleanup and AllowOtherHouses. The first has to do with cleanup of items that do not have houses (the house has been removed), the second has to do with placing items.
The new Cleanup feature is ran after a world save. Each Yard Item that does not have a current House will add itself to the cleanup array. <SecondsToCleanup> seconds after the save, the cleanup function runs. This loops through all items in the array and tries to find a house owned by the placer of that item within 20 spaces of the item; if a house is found, it assigns the House to that item and moves on. If no house is found, it refunds the item. <SecondsToCleanup> should be more than it takes for your world to save.
The system looks at <AllowOtherHouses> to see if it will allow players to place in other houses. Any access level greater than player can place regardless. I am aware that this method will not work well with a Save and Shut Down/Restart, but it's the best I could think of at this point in time (without modifying distro files, which is what I'm all about). I have ideas on fixing this further, but I wanted to get a working, tested update out for people.
The update code for yard gates is not exact, partly due to old code and partly due to how the new code works. It adds the correct gates, but they may be facing or open the wrong direction.
The reason I have not worried about changing the YardStairs and causing you to delete all of them is because I have not heard anyone bring the bug to my attention, which means not many stairs have been created...with the old code, I neglected to assign the player to the stair but, more importantly, I neglected to move the item to where the player targeted. So, deleting any stairs will simply delete stairs that are currently un-owned as well as on the internal map, not in the real world.
 

oiii88

Sorceror
Thank you very much for this update. It will save a lot of hassle with the items now attacked to house and player. Used to spend a better part of my day on a shard I GM for running around deleting old fences and stairs. And no more exploiting it to fence off whole plots and making shard lagging ginormous yards. Once again man thanks for all the time you took to update this useful script.
 

Tresdni

Squire
Shard crash, using latest SVN. Any way to fix this?

Code:
Exception:
System.NullReferenceException: Object reference not set to an instance of an object.
   at Server.ACC.YS.YardGump.OnResponse(NetState state, RelayInfo info)
   at Server.Network.PacketHandlers.DisplayGumpResponse(NetState state, PacketReader pvSrc)
   at Server.Network.MessagePump.HandleReceive(NetState ns)
   at Server.Network.MessagePump.Slice()
   at Server.Core.Main(String[] args)
 

Tresdni

Squire
I should tie my hands and read before I post a crash. Sorry, I just installed your update, and will see how it rolls. Thanks for the great system :)
 

A_Li_N

Knight
Tresdni;824371 said:
I should tie my hands and read before I post a crash. Sorry, I just installed your update, and will see how it rolls. Thanks for the great system :)

If it crashes again, please reproduce the crash in debug mode and post the log as well as the steps you took to create the crash.

If it doesn't crash again, let me know as well :)
Thanks!
 

tommenquar

Sorceror
hrmm. for some reason the yard decorator is named interior decorator. that can get kind of confusing to other players.

NOTE: [add yarddecorator add the item. The actual item itself is interior decorator
 

Gorelord13

Wanderer
Hi, i use your great system :D it is very usefull ad i use it constantly as i build my homes, but how would i go about adding skeletons and gore to this system? i want the bodies and skeletons and bone piles ad such to be able to be placed on the shovel, how would i go about this? any suggestions or has anyone done this before?
 

M_0_h

Page
Gorelord13;831687 said:
i dont think that is possible, i think the only way is to delete by hand srry ;(

Of course that is possible! I'll have a look into the code later and show you ;)
 

M_0_h

Page
Code:
        public static void CleanYards()
        {
            if (OrphanedYardItems == null || OrphanedYardItems.Count <= 0)
            {
                return;
            }

            Console.WriteLine();
            Console.WriteLine(String.Format("Cleaning {0} Orphaned Yard Items...", OrphanedYardItems.Count));
            for (int i = 0; i < OrphanedYardItems.Count; i++)
            {
                if (OrphanedYardItems[i] is YardItem)
                {
                    YardItem item = (YardItem)OrphanedYardItems[i];
                    if (item == null)
                    {
                        continue;
                    }
                    item.FindHouseOfPlacer();
                    if (item.House == null)
                    {
                        item.Refund();
                    }
                }
                else if (OrphanedYardItems[i] is YardGate)
                {
                    YardGate item = (YardGate)OrphanedYardItems[i];
                    if (item == null)
                    {
                        continue;
                    }
                    item.FindHouseOfPlacer();
                    if (item.House == null)
                    {
                        item.Refund();
                    }
                }
            }

            OrphanedYardItems.Clear();
        }

Looks like this is already implemented, with the only difference that you get the refund not until the world save. If you would like to change that, you have to do an edit in the BaseHouse, which is against A_Li_N's intension of completely custom systems... ;)
 
Top