minetest.register_chatcommand("addcraft", {
privs = {interact = true},
func = function(playername)
minetest.register_craft({
output = "default:dirt_with_grass",
recipe = { {"default:dirt", "default:dirt"},}
})
end})
-- Sys4 : load craft recipes
local playern = 'singleplayer'
if awards.player(playern) ~= nil then
local data = awards.players[playern]
for _, str in pairs(data.unlocked) do
local def = awards.def[str]
if def and def.crafts then
local crafts = def.crafts
for i=1, #crafts do
minetest.register_craft(crafts[i])
end
end
end
end
-- Sys4 : Add crafting recipes
if awards.def[award].crafts then
local crafts = awards.def[award].crafts
if crafts~=nil then
for i=1, #crafts do
minetest.register_craft(crafts[i])
end
end
end
-- Lumberjack begins
awards.register_achievement("award_lumberjack_begins", {
title = S("Lumberjack Begins"),
description = S("Dig 3 tree blocks."),
icon = "default_tree.png",
trigger = {
type = "dig",
node = "default:tree",
target = 3
},
crafts = {
{
output = 'default:axe_wood',
recipe = {
{'group:wood', 'group:wood'},
{'group:wood', 'group:stick'},
{'', 'group:stick'}
}
},
{
output = 'default:pick_wood',
recipe = {
{'group:wood', 'group:wood', 'group:wood'},
{'', 'group:stick', ''},
{'', 'group:stick', ''}
}
},
},
-- prizes = {'default:axe_wood', 'default:pick_wood'}
})
local my_register_craft = minetest.register_craft
minetest.register_craft = function (options)
... ajouter le craft dans une liste ...
end
local on_award = function()
... un peu de code quand le joueur reçoit l'award pour retrouver le craft...
my_register_craft(craft)
end
oleastre wrote:Je viens de tomber là-dessus en lisant la doc, il existe une fonction "register_on_craft" qui est appelée quand un joueur vient de créer quelque chose.
Si il n'a pas encore débloqué le craft, tu pourrais utiliser cette fonction pour remplacer ce qui est construit par un tas de déchets (style le joueur a tenté de faire quelque chose, mais il n'a réussi qu'à tout réduire en poussière)
Users browsing this forum: No registered users and 28 guests