Hallo,
ich würde gerne Items umbennen können, wie geht das mit lua, also mit lua programmieren und In game neue Items erstellen.
Ich weiß das es irgendwie geht vom laptops Mod, dort kann man usb sticks umbennen und beschreiben, allerdings ist der Code sehr kompliziert (zu kompliziert für mich :-) ). Weiß jemand wie das geht?
Viele Grüße, Niwla23
Items umbennen
Re: Items umbennen
Du kannst in der Meta (itemstack:get_meta())
Die description ändern meta:set_string(“description”, “Der neue item Name”)
https://dev.minetest.net/MetaDataRef
Die description ändern meta:set_string(“description”, “Der neue item Name”)
https://dev.minetest.net/MetaDataRef
Re: Items umbennen
Ok, ich kenne mich noch nicht so gut aus mit Lua, das Beispiel aus dem Developer Wiki funktioniert bei mir nicht: "attempt to index local meta (a nil value)" außerdem verstehe ich auch nicht was das Skript macht. Aus dem Minetest Modding Book werde ich auch nicht schlauer. Kann mir jemand ein funktionierendes Beispiel gebe?
Re: Items umbennen
Das Beispiel funktioniert deshalb nicht weil du für pos keine Varriable deklariert hast.
Du kannst vor das Beispiel das hier schreiben:
local pos = {x=0, y=0, z=0}
Wenn du jetzt an dieser Position eine Kiste hast funktioniert es.
Du kannst vor das Beispiel das hier schreiben:
local pos = {x=0, y=0, z=0}
Wenn du jetzt an dieser Position eine Kiste hast funktioniert es.
- Desour
- Member
- Posts: 1473
- Joined: Thu Jun 19, 2014 19:49
- GitHub: Desour
- IRC: Desour
- In-game: DS
- Location: I'm scared that if this is too exact, I will be unable to use my keyboard.
Re: Items umbennen
lua_api.txt ist eine besser Quelle: https://github.com/minetest/minetest/bl ... L1767L1787
Zu lua: http://www.lua.org/manual/5.1/
Vergiss nicht, das Umbenennen in einem callback zu machen.
Schlechtes, ungetestetes Beispiel:
Zu lua: http://www.lua.org/manual/5.1/
Vergiss nicht, das Umbenennen in einem callback zu machen.
Schlechtes, ungetestetes Beispiel:
Code: Select all
minetest.register_on_punchnode(function(pos, node, puncher, pointed_thing)
local itemstack = puncher:get_wielded_item()
local meta = itemstack:get_meta()
meta:set_string("description", node.name .. " bei " .. minetest.pos_to_string(pos))
puncher:set_wielded_item(itemstack)
end)
he/him; Codeberg; GitHub; ContentDB; public personal TODO list; "DS" is preferred (but often too short)
Re: Items umbennen
Danke für die Antworten, jetzt hat es funktioniert, ich erstelle gerade ein rename mod, hier eine kleine Vorschau:
Viele Grüße, Niwla23
Code: Select all
minetest.register_craftitem("rename:seal", {
description = "A seal",
inventory_image = "seal.png",
})
minetest.register_privilege("rename", {
description = "Can rename Items and Nodes",
give_to_singleplayer = false
})
minetest.register_chatcommand("rename", {
func = function(name, param)
minetest.show_formspec(name, "renamer:renameform",
"size[4,3]" ..
"label[0,0;Renamer]" ..
"field[1,1.5;3,1;name;New Node/Item name;]" ..
"button_exit[1,2;2,1;exit;Rename Now!]")
end
})
minetest.register_on_player_receive_fields(function(player,
formname, fields)
if formname ~= "renamer:renameform" then
return false
end
----------------------------------------------
local has, missing = minetest.check_player_privs(player:get_player_name(), {
rename = true})
if has then
local itemstack = player:get_wielded_item()
local meta = itemstack:get_meta()
meta:set_string("description", fields.name)
player:set_wielded_item(itemstack)
return true
else
minetest.chat_send_player(player:get_player_name(), "You have no privilige to rename things :( ")
end
end)
Who is online
Users browsing this forum: No registered users and 2 guests