PlaneShift

  • Status Closed
  • Percent Complete
    100%
  • Task Type Feature Request
  • Category
  • Assigned To No-one
  • Operating System
  • Severity Low
  • Priority
  • Reported Version
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: PlaneShift
Opened by Elvors Amenoras - 04.10.2008
Last edited by Talad - 01.01.2022

FS#2343 - Shelves with items in them should not allow picking up

Reason 1: Items in the shelf remain where they are, which looks silly.
Reason 2: You simply don’t pick up a shelf while there’s stuff in it, do you?
Reason 3: It’s hard enough to place a shelf so it’s aligned with the house wall. It’s easy to accidentally pick up the shelf instead of, say, the blade in it. This combination is making those unhappy who placed the shelf (and earns the bumbling idiot who picked up the shelf a serious telling off).

Possible implementation strategy: whenever an item is placed so that it is supported by another item (by placing it on top, or in the case of shelves, on a board), put the id of the supporting item in a “supporter” field of the newly placed item.
When picking up an item, the server could find out what items would lose support, and respond appropriately:
1. If the player picks up just that item, the items that rest on it fall down. (This would also make the old fly exploit impossible, so crates could be allowed as makeshift tables again.) Falling down could be handled just like a character who’s falling from a cliff.
1a. If a dev is feeling lucky, he can add fragility factors to all items in game and let stuff break if it falls too far. (That would make players unhappy. Adding fragility factors to every movable item would also be a lot of work.)
2. If the item plus the stuff resting it is more than the character can carry, the item won’t budge. Player would get message “You can’t move this item out from under all the stuff that is resting on it.”

You need to limit how much can be stacked on each other, otherwise people will start building Towers of Babylon with crates.
Either limit the number of items that can be stacked on top of each other. (Limited, unrealistic, but relatively simple to implement.)
Or place a weight limit that each item can be loaded with, and have it break if that limit is exceeded. (Realistic, plus it will give new interesting scenario possibilities, such as the bridge that will break if the character carries more than leather armor and two weapons. On the minus side, implementing all the ramifications will add several weeks of developer work.)

Closed by  Talad
01.01.2022 21:19
Reason for closing:  Will not fix
Additional comments about closing:  

too complex to implement for the gain.

Caarrie commented on 05.10.2008 18:08

this is a feature request as the engine does not currently support this.

weltall commented on 05.10.2008 18:23

well there are various problems involving such an implementation as the server doesn't have enough clues to manage such a thing as a collision detection on stacked items in the 3d world, actually the work is done by the client for all the cd. a possibility would be managing the thing on the client (i remove the item ⇒ i update with physics the status of other items) but it must be considered that this could be easily "disabled" with a custom client in theory.
as for "dependencies" they could be quite complex and not really a clean implementation, and fragility would require a new column in db (but this is the least of the problems) the real problem would be adding numbers for all the items in the server and theorycally items should have also a "break" mesh (or they would disappear magically)

Elvors Amenoras commented on 16.03.2010 21:40

I see where that's going, and agree it's a bit over the top just to implement shelves that won't be picked up by accident.

Here's another idea:
If a piece of furniture is not guarded by another player, add an icon to lock that furniture.
Locked furniture can't be picked up, and it can be unlocked unless guarded by somebody else.

Can that work?

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing