[Mod] Bones [bones]

User avatar
PilzAdam
Member
Posts: 4026
Joined: Fri Jul 20, 2012 16:19
GitHub: PilzAdam
IRC: PilzAdam
Location: Germany

by PilzAdam » Post

0gb.us wrote:Okay, further testing showed some issues.

First, anything in the crafting grid is lost when you die. In the code, it looks like things in your crafting grid are supposed to be added to the bones' inventory, but for whatever reason, it doesn't work as expected.
Fixed.
0gb.us wrote:Second, it turns out using bones for vandalism is viable after all. Try to break someone's locked chest, and stand where the chest is, before the server responds saying the chest is still there. Next, dump lava on your head. The chest keeps you safe if you stand still, but with short jumps, you can get the lava to kill you while you are considered to be in the chest, and the victim's locked chest and gear are destroyed. I tested this, and it CAN be done. I imaging something similar can be done with steel doors, but have not tested.

As you said, taking out large portions of buildings this way would take forever, but taking out large amounts of stored items is actually quite easy.
Okay, seems like it needs some work.
What should happen if the player dies in an not buildable_to node? Should all items just be lost?

User avatar
Dopium
Member
Posts: 233
Joined: Sat Jun 09, 2012 15:43
Location: Australia

by Dopium » Post

If i remember correctly bad_command only updated the bones mod once, and yes the lava was an issue. One thing they did on gameboom server was had protected areas where you could only place lava or water in your protected area, i think redcrab has this aswell. However im not sure if many people want to run that feature on their server but it does work, either that or a update of the mod, awesome mod tho
Last edited by Dopium on Wed Jan 02, 2013 13:46, edited 1 time in total.
Running @1.19 MHz, 128 bytes of RAM and interchangeable 4kb ROM carts!

User avatar
0gb.us
Member
Posts: 841
Joined: Sun Sep 16, 2012 01:55
Location: 0gb.us:30000
Contact:

by 0gb.us » Post

PilzAdam wrote:Okay, seems like it needs some work.
What should happen if the player dies in an not buildable_to node? Should all items just be lost?
I've given this a lot of thought, and I'm not sure what should happen. Having the items completely disappear would be unacceptable, in my opinion.

One option might be to allow items to remain in the inventory in such cases, as the original bones plugin does. It's not a perfect solution, but it works until we find a better one. Most of the time, people won't be dying inside nodes unless the server is being laggy, so it shouldn't come up much. And when the server IS being laggy, perhaps that is what caused the death in the first place, and the player should be cut a break anyway.

I've also been thinking about items in the crafting grid. Perhaps the bones inventory should be expanded by nine to accommodate them? It could even be set up as a second inventory in the bones, and displayed as a centred row of nine, as nine does not divide by the width of the other rows, eight. Lately, I've found myself stashing things in my crafting grid so I can continue mining a bit longer, and with the current setup, most of the things in my crafting grid would be lost if I struck lava or an unexpected cave.

Iqualfragile
Member
Posts: 160
Joined: Tue Sep 18, 2012 22:11

by Iqualfragile » Post

i think a nodebox looking like a skull would be great
Gr8 b8, m8. I rel8, str8 appreci8, and congratul8. I r8 this b8 an 8/8. Plz no h8, I'm str8 ir8. Cr8 more, can't w8. We should convers8, I won't ber8, my number is 8888888, ask for N8. No calls l8 or out of st8. If on a d8, ask K8 to loc8. Even with a full pl8, I always have time to communic8 so don't hesit8.

User avatar
PilzAdam
Member
Posts: 4026
Joined: Fri Jul 20, 2012 16:19
GitHub: PilzAdam
IRC: PilzAdam
Location: Germany

by PilzAdam » Post

Iqualfragile wrote:i think a nodebox looking like a skull would be great
c55 likes the textures.

User avatar
0gb.us
Member
Posts: 841
Joined: Sun Sep 16, 2012 01:55
Location: 0gb.us:30000
Contact:

by 0gb.us » Post

Also, at least for now, the less nodeboxes we have, the better.

I'm not sure if anyone else is having this issue, but when I enter an area that has a lot of nodebox-using nodes, the client slows way down. Computers with more power than mine probably don't have this issue, but one of the great things about Minetest is that it runs well, even on weaker machines.

rarkenin
Member
Posts: 668
Joined: Tue Nov 20, 2012 20:48

by rarkenin » Post

0gb.us wrote:Okay, further testing showed some issues.

First, anything in the crafting grid is lost when you die. In the code, it looks like things in your crafting grid are supposed to be added to the bones' inventory, but for whatever reason, it doesn't work as expected.

Second, it turns out using bones for vandalism is viable after all. Try to break someone's locked chest, and stand where the chest is, before the server responds saying the chest is still there. Next, dump lava on your head. The chest keeps you safe if you stand still, but with short jumps, you can get the lava to kill you while you are considered to be in the chest, and the victim's locked chest and gear are destroyed. I tested this, and it CAN be done. I imaging something similar can be done with steel doors, but have not tested.

As you said, taking out large portions of buildings this way would take forever, but taking out large amounts of stored items is actually quite easy.
I think that this can also be done if you clear the area below the chest and burn your feet in lava. No awkward jumping.
Admin pro tempore on 0gb.us:30000. Ask me if you have a problem, or just want help.
This is a signature virus. Add me to your signature so that I can multiply.
Now working on my own clone, Mosstest.
I guess I'm back for some time.

User avatar
0gb.us
Member
Posts: 841
Joined: Sun Sep 16, 2012 01:55
Location: 0gb.us:30000
Contact:

by 0gb.us » Post

Fixed several issues

* Increased bones inventory to accommodate full player main inventory and full player crafting grid, preventing lost items
* Altered bones formspec to accommodate this change
* Fixed error where bones would replace half a door, but the other half would remain in place
* Fixed issue where owned objects (locked chests and steel doors) could be removed by bones
* Fixed issue where nodes with inventories could be replaced by bones, which previously allowed chest inventories to be lost
* Added node drops for replaced node (excluding nodes that are buildable_to) to bones inventory, preventing lost nodes

Pull request: https://github.com/PilzAdam/bones/pull/1

User avatar
PilzAdam
Member
Posts: 4026
Joined: Fri Jul 20, 2012 16:19
GitHub: PilzAdam
IRC: PilzAdam
Location: Germany

by PilzAdam » Post

0gb.us wrote:Fixed several issues

* Increased bones inventory to accommodate full player main inventory and full player crafting grid, preventing lost items
* Altered bones formspec to accommodate this change
* Fixed error where bones would replace half a door, but the other half would remain in place
* Fixed issue where owned objects (locked chests and steel doors) could be removed by bones
* Fixed issue where nodes with inventories could be replaced by bones, which previously allowed chest inventories to be lost
* Added node drops for replaced node (excluding nodes that are buildable_to) to bones inventory, preventing lost nodes

Pull request: https://github.com/PilzAdam/bones/pull/1
I dont like the checking for chests or owned nodes, because just some random meta strings are tested.
I have talked to VanessaE about the crafting grid. People shouldnt use crafting grid as transport space so we decided to try to add the content but when there is not enough space its simply lost.
I also dont like to add the replaced nodes to the bones inventory because it should only contain the players items. Otherwise it would be possible to dig mese without any tools.
Changing minetest.env:remove_node() to dig_node() is a nice idea and I will maybe add it. But a problem here is (mesecons has this problem too) that this calls minetest.handle_node_drops(). If item_drop mod is used this causes the node to be dropped there, so mining mese without tools is possible.

User avatar
0gb.us
Member
Posts: 841
Joined: Sun Sep 16, 2012 01:55
Location: 0gb.us:30000
Contact:

by 0gb.us » Post

PilzAdam wrote:I dont like the checking for chests or owned nodes, because just some random meta strings are tested.
True. I don't like the implementation either. I wanted to test for meta data in general, but I'm not sure that can be done with the current API.
PilzAdam wrote:I have talked to VanessaE about the crafting grid. People shouldnt use crafting grid as transport space so we decided to try to add the content but when there is not enough space its simply lost.
Then the ability to store things there should be removed before bones is added to minetest_game. The fact is, people DO store things there, and it's not fair for those items to be lost. People are just making use of the tools provided by the game.
PilzAdam wrote:I also dont like to add the replaced nodes to the bones inventory because it should only contain the players items. Otherwise it would be possible to dig mese without any tools.
True, but replacing the mese with the bones node and completely losing the mese forever is worse. Just the inconvenience of finding a way to die in mese just to avoid having to use a tool paired with being warped back to the spawn point so you have to walk all the way back down into the mine to find the mese/bones will deter people from using bones as a way of mining without tools. Not to mention the fact that you can only find your way into the mese to die if you already had a strong enough tool to break the mese in the first place, but lag caused the server to not respond to your digging. Or course, another solution is to just not spawn bones if the player is inside ANY node, and let them keep their stuff in that case.
PilzAdam wrote:Changing minetest.env:remove_node() to dig_node() is a nice idea and I will maybe add it. But a problem here is (mesecons has this problem too) that this calls minetest.handle_node_drops(). If item_drop mod is used this causes the node to be dropped there, so mining mese without tools is possible.
It is the responsibility of plugin developers to make sure their plugins are fixed to be compatible with minetest_game. In fact, that fix to bones is incompatible with my Full Inventory plugin, which is something I will need to fix if bones is added. Actually, I need to fix it either way, because an incompatibility is an incompatibility. If whoever is developing item_drop has a problem with the way bones is interacting with nodes, they need to add a check to see if the digger is an actual player.

Speaking of incompatibility, NOT using node_dig() is incompatible with some plugins as well. For example, in minetest_game, doors.

-=-=-=-

Maybe my method of dealing with these problems wasn't the best way. However, until theses problems are fixed, be it my fix or a different fix, adding bones to minetest_game seems like a very bad idea. If bones is to be added by default, it should at least be functioning well.

User avatar
0gb.us
Member
Posts: 841
Joined: Sun Sep 16, 2012 01:55
Location: 0gb.us:30000
Contact:

by 0gb.us » Post

0gb.us wrote:
PilzAdam wrote:I dont like the checking for chests or owned nodes, because just some random meta strings are tested.
True. I don't like the implementation either. I wanted to test for meta data in general, but I'm not sure that can be done with the current API.
Fixed. Now the node's own can_dig() function is used. This takes care of chests, furnaces, and steel doors, without using arbitrary meta data. This will also allow user-defined nodes to take care of themselves as well.
0gb.us wrote:
PilzAdam wrote:I also dont like to add the replaced nodes to the bones inventory because it should only contain the players items. Otherwise it would be possible to dig mese without any tools.
True, but replacing the mese with the bones node and completely losing the mese forever is worse. Just the inconvenience of finding a way to die in mese just to avoid having to use a tool paired with being warped back to the spawn point so you have to walk all the way back down into the mine to find the mese/bones will deter people from using bones as a way of mining without tools. Not to mention the fact that you can only find your way into the mese to die if you already had a strong enough tool to break the mese in the first place, but lag caused the server to not respond to your digging. Or course, another solution is to just not spawn bones if the player is inside ANY node, and let them keep their stuff in that case.
node_dig() is now used, so the user's tool will be worn out. Since the player can't get into the node without the proper tool, this should fix the problem.

-=-=-=-

Pull request updated.

User avatar
0gb.us
Member
Posts: 841
Joined: Sun Sep 16, 2012 01:55
Location: 0gb.us:30000
Contact:

by 0gb.us » Post

The server crashes with your latest update. This patch should fix it: https://github.com/PilzAdam/bones/pull/3

For the record, I don't like this setup, but it should do as you want it to, while also not crashing the server.

4aiman
Member
Posts: 1208
Joined: Mon Jul 30, 2012 05:47

by 4aiman » Post

Is it possible to makebones as a CAO? So they would be client-side, visible only to their owner and on pick-up event player's stuff would come back to him. (I'm not sure about that "on pick-up" part, though)

User avatar
0gb.us
Member
Posts: 841
Joined: Sun Sep 16, 2012 01:55
Location: 0gb.us:30000
Contact:

by 0gb.us » Post

4aiman wrote:Is it possible to makebones as a CAO? So they would be client-side, visible only to their owner and on pick-up event player's stuff would come back to him. (I'm not sure about that "on pick-up" part, though)
I thought about suggesting bones be a CAO entity as well, but a number of problems arise. For starters, if the server administrator ends up needing to call /clearobjects, all bones would be lost.

In addition, last time I was working with entities, some of them kept disappearing on me. I don't know if this was an error for sure, and I don't know how hard it would be to prevent, but if your bones disappeared, all your stuff would be lost forever.

Having a bones node also gives you something new to build with. Graveyards would be fun. Also, one thing that Minetest is sorely lacking is sources of renewable nodes. In the current stable version of minetest_game, the only renewable nodes are liquids, tree parts (all flammable), things build from wood (most are flammable), and fire (good luck building things out of fire). Bones would be our first renewable solid non-wooden node.

4aiman
Member
Posts: 1208
Joined: Mon Jul 30, 2012 05:47

by 4aiman » Post

@0gb.us
Well, maybe you're right after all.
Also: Why not search for a closest to the deathspot "air" node? 'Cause player somehow managed to get to that spot, so there should be some "air" "nearby". Besides, if the reason of death was falling into lava and burning in flames, that would save player from having some lava-bath. The search would require some time, but I doubt there would be mass-self-killing incidents ;)

Also I got a little lost reading your conversation here and looking at the commits history, so...
Is that problem with storing items in the craft area still exists? (I think that craft area should be cleared once inventory is closed and the nodes in it should be transferred into the "main" list or dropped if there are no place for that. But that would be a different mod I guess)

User avatar
0gb.us
Member
Posts: 841
Joined: Sun Sep 16, 2012 01:55
Location: 0gb.us:30000
Contact:

by 0gb.us » Post

4aiman wrote:@0gb.us
Well, maybe you're right after all.
Also: Why not search for a closest to the deathspot "air" node? 'Cause player somehow managed to get to that spot, so there should be some "air" "nearby". Besides, if the reason of death was falling into lava and burning in flames, that would save player from having some lava-bath. The search would require some time, but I doubt there would be mass-self-killing incidents ;)
I wouldn't even mind if the bones were under the lava. It's the destruction of finite materials I'm concerned about. If everything was renewable, I also wouldn't have an issue with the current bones implementation, where bones replace nodes. You can always use gravel to clear lava, if your bones contain something worth retrieving.
4aiman wrote:Also I got a little lost reading your conversation here and looking at the commits history, so...
Is that problem with storing items in the craft area still exists? (I think that craft area should be cleared once inventory is closed and the nodes in it should be transferred into the "main" list or dropped if there are no place for that. But that would be a different mod I guess)
Yes, that problem still exists, and yes, that would fix it. However, the current API does not allow that to happen, as there is no way for the server to know when the user has closed their menu.

The other problem, is that the node you die in is lost forever.

To everyone:

I've been doing some thinking about bones, and its inclusion in minetest_game. I think a lot of us are voting based on whether or not we want it installed on our favourite servers. But consider this: fire is included by default, yet it isn't used on most servers. The real question, is whether there should be a penalty for death a default game. I think there should be. As it is, the only penalty is that you get sent back to the start, and lose your place. But sometimes you WANT to get sent back to the start, if you've mined real deep, and your inventory is full. You might go jump in a lava pit for the sole purpose of respawning at the top. You should have to climb your way back out, or lose the stuff you gathered on your way down. Bones accomplishes this.

The other thing we need by default is a /die command. Sometimes you get trapped underground, and have no way out. /die would get you out, so you wouldn't have to wait for an administrator to rescue you (I left one server because I got trapped, and there was no /die, /spawn, or /home commands), however, if bones was installed, it would come at the price of your gear.

4aiman
Member
Posts: 1208
Joined: Mon Jul 30, 2012 05:47

by 4aiman » Post

The other problem, is that the node you die in is lost forever.
That's one of the reasons I suggested searching for an nearby "air" node...
Maybe lava and water should do as well as the "fire" (if that's not the only one node of it).

Also /home would make bones almost useless. I know people who store their position not at home, but at the deepest mine.

User avatar
0gb.us
Member
Posts: 841
Joined: Sun Sep 16, 2012 01:55
Location: 0gb.us:30000
Contact:

by 0gb.us » Post

Yeah, but if we check to see if a node is buildable_to, is should cover all those bases. In the default game, water, lava, air, and depending on how recent your minetest_game is, fire, are all buildable_to.

/home is not in the default game though. All sorts of added plugins can make all sorts of other plugins useless. If /home makes bones useless, then people who install /home can remove bones.

Post Reply

Who is online

Users browsing this forum: No registered users and 14 guests