Compare commits

...

5 Commits

Author SHA1 Message Date
amadin 0404170e9b player:set_eye_offset and player:set_physics_override
Fix for players which teleport while sitting or lying position
2016-01-26 21:20:02 +00:00
amadin 4d445e1fd2 Update README.md 2015-12-29 10:43:32 +03:00
amadin 5b6e1fcc70 Update README.md 2015-12-29 10:42:34 +03:00
amadin d53b27e3e5 Update README.md 2015-12-25 07:38:15 +00:00
amadin 1da4fd19cb Update README.md 2015-12-25 07:37:05 +00:00
2 changed files with 41 additions and 3 deletions

View File

@ -1,46 +1,82 @@
# sethome
Minetest sethome mod for beds.
Minetest sethome mod for beds (teleport for beds).
Teleporting player to bed if he slept on it after writing in chat /home.
Tested on default beds from minetest_game.
https://forum.minetest.net/viewtopic.php?f=9&t=13788&sid=afe75228c98f38ad6847c82f86fbfe46
http://forum.minetest.net/viewtopic.php?f=9&t=13788
If you want use PilzAdam's beds mod you must replace all code in init.lua by this:
minetest.register_on_chat_message(function(name, message, playername, player)
local player_spawns = {}
local file = io.open(minetest.get_worldpath().."/beds_player_spawns", "r")
if file then
player_spawns = minetest.deserialize(file:read("*all"))
file:close()
end
local cmd = "/home"
local player = minetest.get_player_by_name(name)
if message:sub(0, #cmd) == cmd then
if message == '/home' then
if (player_spawns[name]) then
minetest.chat_send_player(player:get_player_name(), "Teleporting to bed...")
player:setpos(player_spawns[name])
return true
else
minetest.chat_send_player(player:get_player_name(), "You haven't slept in a bed yet.")
return true
end
end
end
end)
minetest.register_chatcommand("sethome", {
--params = "",
description = "Information about set your home point",
func = function(name)
local player = minetest.get_player_by_name(name)
if player == nil then
-- just a check to prevent the server crashing
return false
end
minetest.chat_send_player(player:get_player_name(), "You must sleep in a bed for this.")
return true
end,
})
})

View File

@ -34,6 +34,8 @@ minetest.register_chatcommand("home", {
loadhomes()
if homepos[name] then
player:setpos(homepos[name])
player:set_eye_offset({x=0,y=0,z=0}, {x=0,y=0,z=0})
player:set_physics_override(1, 1, 1)
--minetest.chat_send_player(name, "Teleported to home!")
else
minetest.chat_send_player(name, "You haven't slept in a bed yet.")