Regnum 3.6.0 upload
parent
74854d3b57
commit
cc0f4519a0
|
@ -21,5 +21,4 @@ See README.txt in each mod for more information
|
|||
Every code written by me is LGPLv2.1
|
||||
|
||||
Notes:
|
||||
sfinv mod changed
|
||||
mtg_craftguide mod deleted
|
|
@ -7,13 +7,6 @@ minetest.register_tool("3d_armor:helmet_admin", {
|
|||
wield_image = "3d_armor_inv_helmet_admin.png",
|
||||
groups = {armor_head=20, armor_heal=20, armor_use=0, armor_fire=1, armor_water=0.2},
|
||||
wear = 0,
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:helmet_admin2")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:helmet_admin2", {
|
||||
|
@ -22,13 +15,6 @@ minetest.register_tool("3d_armor:helmet_admin2", {
|
|||
wield_image = "3d_armor_inv_helmet_admin.png",
|
||||
groups = {armor_head=20, armor_heal=20, armor_use=0, armor_fire=1, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:helmet_admin3")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:helmet_admin3", {
|
||||
|
@ -37,13 +23,6 @@ minetest.register_tool("3d_armor:helmet_admin3", {
|
|||
wield_image = "3d_armor_inv_helmet_admin.png",
|
||||
groups = {armor_head=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:helmet_admin4")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:helmet_admin4", {
|
||||
|
@ -52,13 +31,6 @@ minetest.register_tool("3d_armor:helmet_admin4", {
|
|||
wield_image = "3d_armor_inv_helmet_admin.png",
|
||||
groups = {armor_head=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:helmet_admin")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:chestplate_admin", {
|
||||
|
@ -67,13 +39,6 @@ minetest.register_tool("3d_armor:chestplate_admin", {
|
|||
wield_image = "3d_armor_inv_chestplate_admin.png",
|
||||
groups = {armor_torso=20, armor_heal=20, armor_use=0, armor_fire=1, armor_water=0.2},
|
||||
wear = 0,
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:chestplate_admin2")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:chestplate_admin2", {
|
||||
|
@ -82,55 +47,30 @@ minetest.register_tool("3d_armor:chestplate_admin2", {
|
|||
wield_image = "3d_armor_inv_chestplate_admin.png",
|
||||
groups = {armor_torso=20, armor_heal=20, armor_use=0, armor_fire=1, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:chestplate_admin3")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:chestplate_admin3", {
|
||||
description = "Admin Chestplate Mode 3 (no speed and jump)",
|
||||
inventory_image = "3d_armor_inv_chestplate_admin.png^technic_tool_mode3.png",
|
||||
wield_image = "3d_armor_inv_chestplate_admin.png",
|
||||
groups = {armor_torso=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:chestplate_admin4")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:chestplate_admin4", {
|
||||
description = "Admin Chestplate Mode 4 (speed and jump)",
|
||||
inventory_image = "3d_armor_inv_chestplate_admin.png^technic_tool_mode4.png",
|
||||
wield_image = "3d_armor_inv_chestplate_admin.png",
|
||||
groups = {armor_torso=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:chestplate_admin")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:leggings_admin", {
|
||||
description = "Admin Leggings Mode 1 (no speed and no jump)",
|
||||
wield_image = "3d_armor_inv_leggings_admin.png",
|
||||
inventory_image = "3d_armor_inv_leggings_admin.png^technic_tool_mode1.png",
|
||||
groups = {armor_legs=20, armor_heal=20, armor_use=0, armor_fire=1, armor_water=0.2},
|
||||
wear = 0,
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:leggings_admin2")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:leggings_admin2", {
|
||||
|
@ -139,13 +79,6 @@ minetest.register_tool("3d_armor:leggings_admin2", {
|
|||
inventory_image = "3d_armor_inv_leggings_admin.png^technic_tool_mode2.png",
|
||||
groups = {armor_legs=20, armor_heal=20, armor_use=0, armor_fire=1, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:leggings_admin3")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:leggings_admin3", {
|
||||
|
@ -154,13 +87,6 @@ minetest.register_tool("3d_armor:leggings_admin3", {
|
|||
inventory_image = "3d_armor_inv_leggings_admin.png^technic_tool_mode3.png",
|
||||
groups = {armor_legs=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:leggings_admin4")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:leggings_admin4", {
|
||||
|
@ -169,30 +95,14 @@ minetest.register_tool("3d_armor:leggings_admin4", {
|
|||
wield_image = "3d_armor_inv_leggings_admin.png",
|
||||
groups = {armor_legs=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:leggings_admin")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
|
||||
|
||||
minetest.register_tool("3d_armor:boots_admin", {
|
||||
description = "Admin Boots Mode 1 (no speed and no jump)",
|
||||
inventory_image = "3d_armor_inv_boots_admin.png^technic_tool_mode1.png",
|
||||
wield_image = "3d_armor_inv_boots_admin.png",
|
||||
groups = {armor_feet=20, armor_heal=20, armor_use=0, armor_fire=1, armor_water=0.2},
|
||||
wear = 0,
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:boots_admin2")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:boots_admin2", {
|
||||
|
@ -201,13 +111,6 @@ minetest.register_tool("3d_armor:boots_admin2", {
|
|||
wield_image = "3d_armor_inv_boots_admin.png",
|
||||
groups = {armor_feet=20, armor_heal=20, armor_use=0, armor_fire=1, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:boots_admin3")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:boots_admin3", {
|
||||
|
@ -216,13 +119,6 @@ minetest.register_tool("3d_armor:boots_admin3", {
|
|||
wield_image = "3d_armor_inv_boots_admin.png",
|
||||
groups = {armor_feet=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:boots_admin4")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:boots_admin4", {
|
||||
|
@ -231,11 +127,4 @@ minetest.register_tool("3d_armor:boots_admin4", {
|
|||
wield_image = "3d_armor_inv_boots_admin.png",
|
||||
groups = {armor_feet=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:boots_admin")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
|
|
@ -342,13 +342,6 @@ minetest.register_tool("3d_armor:superlegendenboots", {
|
|||
groups = {armor_feet=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_superlegendenboots.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:superlegendenboots2")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:superlegendenboots2", {
|
||||
description = "Superlegendboots Mode 2 (speed and no jump)\nBoots-lv.122",
|
||||
|
@ -356,13 +349,6 @@ minetest.register_tool("3d_armor:superlegendenboots2", {
|
|||
groups = {armor_feet=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_superlegendenboots.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:superlegendenboots3")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:superlegendenboots3", {
|
||||
description = "Superlegendboots Mode 3 (no speed and jump)\nBoots-lv.122",
|
||||
|
@ -370,13 +356,6 @@ minetest.register_tool("3d_armor:superlegendenboots3", {
|
|||
groups = {armor_feet=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_superlegendenboots.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:superlegendenboots4")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:superlegendenboots4", {
|
||||
description = "Superlegendboots Mode 4 (speed and jump)\nBoots-lv.122",
|
||||
|
@ -384,13 +363,6 @@ minetest.register_tool("3d_armor:superlegendenboots4", {
|
|||
groups = {armor_feet=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_superlegendenboots.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:superlegendenboots")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:superlegendenchestplate", {
|
||||
|
@ -399,13 +371,6 @@ minetest.register_tool("3d_armor:superlegendenchestplate", {
|
|||
groups = {armor_torso=12.2, armor_heal=12, armor_use=0, armor_fire=0.61, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_superlegendenchestplate.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:superlegendenchestplate2")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:superlegendenchestplate2", {
|
||||
description = "Superlegendchestplate Mode 2 (speed and no jump)\nChestplate-lv.122",
|
||||
|
@ -413,13 +378,6 @@ minetest.register_tool("3d_armor:superlegendenchestplate2", {
|
|||
groups = {armor_torso=12.2, armor_heal=12, armor_use=0, armor_fire=0.61, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_superlegendenchestplate.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:superlegendenchestplate3")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:superlegendenchestplate3", {
|
||||
description = "Superlegendchestplate Mode 3 (no speed and jump)\nChestplate-lv.122",
|
||||
|
@ -427,13 +385,6 @@ minetest.register_tool("3d_armor:superlegendenchestplate3", {
|
|||
groups = {armor_torso=12.2, armor_heal=12, armor_use=0, armor_fire=0.61, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_superlegendenchestplate.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:superlegendenchestplate4")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:superlegendenchestplate4", {
|
||||
description = "Superlegendchestplate Mode 4 (speed and jump)\nChestplate-lv.122",
|
||||
|
@ -441,13 +392,6 @@ minetest.register_tool("3d_armor:superlegendenchestplate4", {
|
|||
groups = {armor_torso=12.2, armor_heal=12, armor_use=0, armor_fire=0.61, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_superlegendenchestplate.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:superlegendenchestplate")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:superlegendenhelmet", {
|
||||
|
@ -456,13 +400,6 @@ minetest.register_tool("3d_armor:superlegendenhelmet", {
|
|||
groups = {armor_head=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_superlegendenhelmet.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:superlegendenhelmet2")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:superlegendenhelmet2", {
|
||||
description = "Superlegendhelmet Mode 2 (speed and no jump)\nHelmet-lv.122",
|
||||
|
@ -470,13 +407,6 @@ minetest.register_tool("3d_armor:superlegendenhelmet2", {
|
|||
groups = {armor_head=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_superlegendenhelmet.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:superlegendenhelmet3")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:superlegendenhelmet3", {
|
||||
description = "Superlegendhelmet Mode 3 (no speed and jump)\nHelmet-lv.122",
|
||||
|
@ -484,13 +414,6 @@ minetest.register_tool("3d_armor:superlegendenhelmet3", {
|
|||
groups = {armor_head=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_superlegendenhelmet.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:superlegendenhelmet4")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:superlegendenhelmet4", {
|
||||
description = "Superlegendhelmet Mode 4 (speed and jump)\nHelmet-lv.122",
|
||||
|
@ -498,13 +421,6 @@ minetest.register_tool("3d_armor:superlegendenhelmet4", {
|
|||
groups = {armor_head=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_superlegendenhelmet.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:superlegendenhelmet")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:superlegendenleggings", {
|
||||
|
@ -513,13 +429,6 @@ minetest.register_tool("3d_armor:superlegendenleggings", {
|
|||
groups = {armor_legs=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_superlegendenleggings.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:superlegendenleggings2")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:superlegendenleggings2", {
|
||||
description = "Superlegendleggings Mode 2 (speed and no jump)\nLeggings-lv.122",
|
||||
|
@ -527,13 +436,6 @@ minetest.register_tool("3d_armor:superlegendenleggings2", {
|
|||
groups = {armor_legs=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_superlegendenleggings.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:superlegendenleggings3")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:superlegendenleggings3", {
|
||||
description = "Superlegendleggings Mode 3 (no speed and jump)\nLeggings-lv.122",
|
||||
|
@ -541,13 +443,6 @@ minetest.register_tool("3d_armor:superlegendenleggings3", {
|
|||
groups = {armor_legs=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_superlegendenleggings.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:superlegendenleggings4")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:superlegendenleggings4", {
|
||||
description = "Superlegendleggings Mode 4 (speed and jump)\nLeggings-lv.122",
|
||||
|
@ -555,13 +450,6 @@ minetest.register_tool("3d_armor:superlegendenleggings4", {
|
|||
groups = {armor_legs=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_superlegendenleggings.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:superlegendenleggings")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
|
||||
|
@ -571,13 +459,6 @@ minetest.register_tool("3d_armor:regnumboots", {
|
|||
groups = {armor_feet=15.0, armor_heal=13, armor_use=0,armor_fire=1, armor_water=0.2},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_regnumboots.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:regnumboots2")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:regnumboots2", {
|
||||
description = "Regnumboots Mode 2 (speed and no jump)\nBoots-lv.MAX",
|
||||
|
@ -585,13 +466,6 @@ minetest.register_tool("3d_armor:regnumboots2", {
|
|||
groups = {armor_feet=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_regnumboots.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:regnumboots3")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:regnumboots3", {
|
||||
description = "Regnumboots Mode 3 (no speed and jump)\nBoots-lv.MAX",
|
||||
|
@ -599,13 +473,6 @@ minetest.register_tool("3d_armor:regnumboots3", {
|
|||
groups = {armor_feet=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_regnumboots.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:regnumboots4")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:regnumboots4", {
|
||||
description = "Regnumboots Mode 4 (speed and jump)\nBoots-lv.MAX",
|
||||
|
@ -613,13 +480,6 @@ minetest.register_tool("3d_armor:regnumboots4", {
|
|||
groups = {armor_feet=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_regnumboots.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:regnumboots")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:regnumchestplate", {
|
||||
|
@ -628,13 +488,6 @@ minetest.register_tool("3d_armor:regnumchestplate", {
|
|||
groups = {armor_torso=15.0, armor_heal=13, armor_use=0, armor_fire=1, armor_water=0.2},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_regnumchestplate.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:regnumchestplate2")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:regnumchestplate2", {
|
||||
description = "Regnumchestplate Mode 2 (speed and no jump)\nChestplate-lv.MAX",
|
||||
|
@ -642,13 +495,6 @@ minetest.register_tool("3d_armor:regnumchestplate2", {
|
|||
groups = {armor_torso=15.0, armor_heal=13, armor_use=0, armor_fire=1, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_regnumchestplate.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:regnumchestplate3")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:regnumchestplate3", {
|
||||
description = "Regnumchestplate Mode 3 (no speed and jump)\nChestplate-lv.MAX",
|
||||
|
@ -656,13 +502,6 @@ minetest.register_tool("3d_armor:regnumchestplate3", {
|
|||
groups = {armor_torso=15.0, armor_heal=13, armor_use=0, armor_fire=1, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_regnumchestplate.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:regnumchestplate4")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:regnumchestplate4", {
|
||||
description = "Regnumchestplate Mode 4 (speed and jump)\nChestplate-lv.MAX",
|
||||
|
@ -670,13 +509,6 @@ minetest.register_tool("3d_armor:regnumchestplate4", {
|
|||
groups = {armor_torso=15.0, armor_heal=13, armor_use=0, armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_regnumchestplate.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:regnumchestplate")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:regnumhelmet", {
|
||||
|
@ -685,13 +517,6 @@ minetest.register_tool("3d_armor:regnumhelmet", {
|
|||
groups = {armor_head=15.0, armor_heal=13, armor_use=0,armor_fire=1, armor_water=0.2},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_regnumhelmet.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:regnumhelmet2")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:regnumhelmet2", {
|
||||
description = "Regnumhelmet Mode 2 (speed and no jump)\nHelmet-lv.MAX",
|
||||
|
@ -699,13 +524,6 @@ minetest.register_tool("3d_armor:regnumhelmet2", {
|
|||
groups = {armor_head=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_regnumhelmet.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:regnumhelmet3")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:regnumhelmet3", {
|
||||
description = "Regnumhelmet Mode 3 (no speed and jump)\nHelmet-lv.MAX",
|
||||
|
@ -713,13 +531,6 @@ minetest.register_tool("3d_armor:regnumhelmet3", {
|
|||
groups = {armor_head=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_regnumhelmet.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:regnumhelmet4")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:regnumhelmet4", {
|
||||
description = "Regnumhelmet Mode 4 (speed and jump)\nHelmet-lv.MAX",
|
||||
|
@ -727,13 +538,6 @@ minetest.register_tool("3d_armor:regnumhelmet4", {
|
|||
groups = {armor_head=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_regnumhelmet.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:regnumhelmet")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("3d_armor:regnumleggings", {
|
||||
|
@ -742,13 +546,6 @@ minetest.register_tool("3d_armor:regnumleggings", {
|
|||
groups = {armor_legs=15.0, armor_heal=13, armor_use=0,armor_fire=1, armor_water=0.2},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_regnumleggings.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:regnumleggings2")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:regnumleggings2", {
|
||||
description = "Regnumleggings Mode 2 (speed and no jump)\nLeggings-lv.MAX",
|
||||
|
@ -756,13 +553,6 @@ minetest.register_tool("3d_armor:regnumleggings2", {
|
|||
groups = {armor_legs=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_regnumleggings.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:regnumleggings3")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:regnumleggings3", {
|
||||
description = "Regnumleggings Mode 3 (no speed and jump)\nLeggings-lv.MAX",
|
||||
|
@ -770,13 +560,6 @@ minetest.register_tool("3d_armor:regnumleggings3", {
|
|||
groups = {armor_legs=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_regnumleggings.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:regnumleggings4")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("3d_armor:regnumleggings4", {
|
||||
description = "Regnumleggings Mode 4 (speed and jump)\nLeggings-lv.MAX",
|
||||
|
@ -784,11 +567,4 @@ minetest.register_tool("3d_armor:regnumleggings4", {
|
|||
groups = {armor_legs=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "3d_armor_inv_regnumleggings.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("3d_armor:regnumleggings")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
|
@ -31,13 +31,6 @@ minetest.register_tool("shields:shield_admin", {
|
|||
wield_image = "shields_inv_shield_admin.png",
|
||||
groups = {armor_shield=20, armor_heal=20, armor_use=0, armor_fire=1, armor_water=0.2},
|
||||
wear = 0,
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("shields:shield_admin2")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("shields:shield_admin2", {
|
||||
|
@ -46,13 +39,6 @@ minetest.register_tool("shields:shield_admin2", {
|
|||
wield_image = "shields_inv_shield_admin.png",
|
||||
groups = {armor_shield=20, armor_heal=20, armor_use=0, armor_fire=1, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("shields:shield_admin3")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("shields:shield_admin3", {
|
||||
|
@ -61,13 +47,6 @@ minetest.register_tool("shields:shield_admin3", {
|
|||
wield_image = "shields_inv_shield_admin.png",
|
||||
groups = {armor_shield=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("shields:shield_admin4")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("shields:shield_admin4", {
|
||||
|
@ -76,11 +55,4 @@ minetest.register_tool("shields:shield_admin4", {
|
|||
wield_image = "shields_inv_shield_admin.png",
|
||||
groups = {armor_shield=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("shields:shield_admin")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
|
|
@ -104,13 +104,6 @@ minetest.register_tool("shields:superlegendenshield", {
|
|||
groups = {armor_shield=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "shields_inv_superlegendenshield.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("shields:superlegendenshield2")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("shields:superlegendenshield2", {
|
||||
description = "Superlegendshield Mode 2 (speed and no jump)\nShield-lv.122",
|
||||
|
@ -118,13 +111,6 @@ minetest.register_tool("shields:superlegendenshield2", {
|
|||
groups = {armor_shield=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "shields_inv_superlegendenshield.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("shields:superlegendenshield3")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("shields:superlegendenshield3", {
|
||||
description = "Superlegendshield Mode 3 (no speed and jump)\nShield-lv.122",
|
||||
|
@ -132,13 +118,6 @@ minetest.register_tool("shields:superlegendenshield3", {
|
|||
groups = {armor_shield=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "shields_inv_superlegendenshield.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("shields:superlegendenshield4")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("shields:superlegendenshield4", {
|
||||
description = "Superlegendshield Mode 4 (speed and jump)\nShield-lv.122",
|
||||
|
@ -146,13 +125,6 @@ minetest.register_tool("shields:superlegendenshield4", {
|
|||
groups = {armor_shield=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "shields_inv_superlegendenshield.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("shields:superlegendenshield")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_tool("shields:regnumshield", {
|
||||
|
@ -161,13 +133,6 @@ minetest.register_tool("shields:regnumshield", {
|
|||
groups = {armor_shield=15.0, armor_heal=13, armor_use=0,armor_fire=1, armor_water=0.2},
|
||||
wear = 0,
|
||||
wield_image = "shields_inv_regnumshield.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("shields:regnumshield2")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("shields:regnumshield2", {
|
||||
description = "Regnumshield Mode 2 (speed and no jump)\nShield-lv.MAX",
|
||||
|
@ -175,13 +140,6 @@ minetest.register_tool("shields:regnumshield2", {
|
|||
groups = {armor_shield=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "shields_inv_regnumshield.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("shields:regnumshield3")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("shields:regnumshield3", {
|
||||
description = "Regnumshield Mode 3 (no speed and jump)\nShield-lv.MAX",
|
||||
|
@ -189,13 +147,6 @@ minetest.register_tool("shields:regnumshield3", {
|
|||
groups = {armor_shield=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "shields_inv_regnumshield.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("shields:regnumshield4")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_tool("shields:regnumshield4", {
|
||||
description = "Regnumshield Mode 4 (speed and jump)\nShield-lv.MAX",
|
||||
|
@ -203,13 +154,4 @@ minetest.register_tool("shields:regnumshield4", {
|
|||
groups = {armor_shield=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
|
||||
wear = 0,
|
||||
wield_image = "shields_inv_regnumshield.png",
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
local keys = user:get_player_control()
|
||||
if keys["sneak"] == true then
|
||||
itemstack:set_name("shields:regnumshield")
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
unused_args = false
|
||||
allow_defined_top = true
|
||||
|
||||
globals = {
|
||||
"minetest", "awards",
|
||||
}
|
||||
|
||||
read_globals = {
|
||||
string = {fields = {"split"}},
|
||||
table = {fields = {"copy", "getn"}},
|
||||
"vector", "default", "ItemStack",
|
||||
"dump", "sfinv", "intllib",
|
||||
"unified_inventory",
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
language: generic
|
||||
sudo: false
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- luarocks
|
||||
before_install:
|
||||
- luarocks install --local luacheck
|
||||
script:
|
||||
- $HOME/.luarocks/bin/luacheck --no-color .
|
||||
notifications:
|
||||
email: false
|
|
@ -0,0 +1,19 @@
|
|||
Copyright (c) 2013-8 rubenwardy
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
of the Software, and to permit persons to whom the Software is furnished to do
|
||||
so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
|
@ -1,499 +0,0 @@
|
|||
-- AWARDS
|
||||
-- by Rubenwardy
|
||||
-------------------------------------------------------
|
||||
-- this is api function file
|
||||
-------------------------------------------------------
|
||||
|
||||
-- The global award namespace
|
||||
awards = {
|
||||
show_mode = "hud"
|
||||
}
|
||||
|
||||
-- Table Save Load Functions
|
||||
function awards.save()
|
||||
local file = io.open(minetest.get_worldpath().."/awards.txt", "w")
|
||||
if file then
|
||||
file:write(minetest.serialize(awards.players))
|
||||
file:close()
|
||||
end
|
||||
end
|
||||
|
||||
function awards.load()
|
||||
local file = io.open(minetest.get_worldpath().."/awards.txt", "r")
|
||||
if file then
|
||||
local table = minetest.deserialize(file:read("*all"))
|
||||
if type(table) == "table" then
|
||||
return table
|
||||
end
|
||||
end
|
||||
return {}
|
||||
end
|
||||
|
||||
awards.players = awards.load()
|
||||
function awards.player(name)
|
||||
return awards.players[name]
|
||||
end
|
||||
|
||||
-- A table of award definitions
|
||||
awards.def = {}
|
||||
|
||||
function awards.tbv(tb,value,default)
|
||||
if not default then
|
||||
default = {}
|
||||
end
|
||||
if not tb or type(tb) ~= "table" then
|
||||
if not value then
|
||||
value = "[NULL]"
|
||||
end
|
||||
minetest.log("error", "awards.tbv - table "..dump(value).." is null, or not a table! Dump: "..dump(tb))
|
||||
return
|
||||
end
|
||||
if not value then
|
||||
error("[ERROR] awards.tbv was not used correctly!\n"..
|
||||
"Value: '"..dump(value).."'\n"..
|
||||
"Dump:"..dump(tb))
|
||||
return
|
||||
end
|
||||
if not tb[value] then
|
||||
tb[value] = default
|
||||
end
|
||||
end
|
||||
|
||||
function awards.assertPlayer(playern)
|
||||
awards.tbv(awards.players, playern)
|
||||
awards.tbv(awards.players[playern], "name", playern)
|
||||
awards.tbv(awards.players[playern], "unlocked")
|
||||
awards.tbv(awards.players[playern], "place")
|
||||
awards.tbv(awards.players[playern], "count")
|
||||
awards.tbv(awards.players[playern], "craft")
|
||||
awards.tbv(awards.players[playern], "deaths", 0)
|
||||
awards.tbv(awards.players[playern], "joins", 0)
|
||||
awards.tbv(awards.players[playern], "chats", 0)
|
||||
end
|
||||
|
||||
-- Load files
|
||||
dofile(minetest.get_modpath("awards").."/triggers.lua")
|
||||
|
||||
-- API Functions
|
||||
function awards._additional_triggers(name, data_table)
|
||||
-- To add triggers in another mod, you should override this function
|
||||
-- If the code can't handle the trigger passed, then call the last value of _additional_triggers
|
||||
--[[
|
||||
local add_trig = awards._additional_triggers
|
||||
awards._additional_triggers = function(name, data_table)
|
||||
if data_table.trigger.type == "trigger" then
|
||||
local tmp = {
|
||||
award = name,
|
||||
node = data_table.trigger.node,
|
||||
target = data_table.trigger.target,
|
||||
}
|
||||
table.insert(awards.onTrigger,tmp)
|
||||
elseif data_table.trigger.type == "trigger2" then
|
||||
local tmp = {
|
||||
award = name,
|
||||
node = data_table.trigger.node,
|
||||
target = data_table.trigger.target,
|
||||
}
|
||||
table.insert(awards.onTrigger2,tmp)
|
||||
else
|
||||
add_trig(name, data_table)
|
||||
end
|
||||
end
|
||||
]]--
|
||||
end
|
||||
function awards.register_achievement(name,data_table)
|
||||
-- see if a trigger is defined in the achievement definition
|
||||
if data_table.trigger and data_table.trigger.type then
|
||||
if data_table.trigger.type == "dig" then
|
||||
local tmp = {
|
||||
award = name,
|
||||
node = data_table.trigger.node,
|
||||
target = data_table.trigger.target,
|
||||
}
|
||||
table.insert(awards.onDig,tmp)
|
||||
elseif data_table.trigger.type == "place" then
|
||||
local tmp = {
|
||||
award = name,
|
||||
node = data_table.trigger.node,
|
||||
target = data_table.trigger.target,
|
||||
}
|
||||
table.insert(awards.onPlace,tmp)
|
||||
elseif data_table.trigger.type == "craft" then
|
||||
local tmp = {
|
||||
award = name,
|
||||
item = data_table.trigger.item,
|
||||
target = data_table.trigger.target,
|
||||
}
|
||||
table.insert(awards.onCraft,tmp)
|
||||
elseif data_table.trigger.type == "death" then
|
||||
local tmp = {
|
||||
award = name,
|
||||
target = data_table.trigger.target,
|
||||
}
|
||||
table.insert(awards.onDeath,tmp)
|
||||
elseif data_table.trigger.type == "chat" then
|
||||
local tmp = {
|
||||
award = name,
|
||||
target = data_table.trigger.target,
|
||||
}
|
||||
table.insert(awards.onChat,tmp)
|
||||
elseif data_table.trigger.type == "join" then
|
||||
local tmp = {
|
||||
award = name,
|
||||
target = data_table.trigger.target,
|
||||
}
|
||||
table.insert(awards.onJoin,tmp)
|
||||
else
|
||||
awards._additional_triggers(name, data_table)
|
||||
end
|
||||
end
|
||||
|
||||
-- check icon, background and custom_announce data
|
||||
if data_table.icon == nil or data_table.icon == "" then
|
||||
data_table.icon = "unknown.png"
|
||||
end
|
||||
if data_table.background == nil or data_table.background == "" then
|
||||
data_table.background = "bg_default.png"
|
||||
end
|
||||
if data_table.custom_announce == nil or data_table.custom_announce == "" then
|
||||
data_table.custom_announce = "Achievement Unlocked:"
|
||||
end
|
||||
|
||||
-- add the achievement to the definition table
|
||||
data_table.name = name
|
||||
awards.def[name] = data_table
|
||||
end
|
||||
|
||||
-- run a function when a node is dug
|
||||
function awards.register_onDig(func)
|
||||
table.insert(awards.onDig,func)
|
||||
end
|
||||
|
||||
-- run a function when a node is placed
|
||||
function awards.register_onPlace(func)
|
||||
table.insert(awards.onPlace,func)
|
||||
end
|
||||
|
||||
-- run a function when a player dies
|
||||
function awards.register_onDeath(func)
|
||||
table.insert(awards.onDeath,func)
|
||||
end
|
||||
|
||||
-- run a function when a player chats
|
||||
function awards.register_onChat(func)
|
||||
table.insert(awards.onChat,func)
|
||||
end
|
||||
|
||||
-- run a function when a player joins
|
||||
function awards.register_onJoin(func)
|
||||
table.insert(awards.onJoin,func)
|
||||
end
|
||||
|
||||
-- run a function when an item is crafted
|
||||
function awards.register_onCraft(func)
|
||||
table.insert(awards.onCraft,func)
|
||||
end
|
||||
|
||||
-- This function is called whenever a target condition is met.
|
||||
-- It checks if a player already has that achievement, and if they do not,
|
||||
-- it gives it to them
|
||||
----------------------------------------------
|
||||
--awards.give_achievement(name,award)
|
||||
-- name - the name of the player
|
||||
-- award - the name of the award to give
|
||||
function awards.give_achievement(name, award)
|
||||
-- Access Player Data
|
||||
local data = awards.players[name]
|
||||
|
||||
-- Perform checks
|
||||
if not data then
|
||||
return
|
||||
end
|
||||
if not awards.def[award] then
|
||||
return
|
||||
end
|
||||
awards.tbv(data,"unlocked")
|
||||
|
||||
-- check to see if the player does not already have that achievement
|
||||
if not data.unlocked[award] or data.unlocked[award]~=award then
|
||||
-- Set award flag
|
||||
data.unlocked[award]=award
|
||||
|
||||
-- Give Prizes
|
||||
if awards.def[award] and awards.def[award].prizes then
|
||||
for i = 1, #awards.def[award].prizes do
|
||||
local itemstack = ItemStack(awards.def[award].prizes[i])
|
||||
if itemstack:is_empty() or not itemstack:is_known() then
|
||||
return
|
||||
end
|
||||
local receiverref = core.get_player_by_name(name)
|
||||
if receiverref == nil then
|
||||
return
|
||||
end
|
||||
receiverref:get_inventory():add_item("main", itemstack)
|
||||
end
|
||||
end
|
||||
|
||||
-- Get data from definition tables
|
||||
local title = award
|
||||
local desc = ""
|
||||
local background = ""
|
||||
local icon = ""
|
||||
local custom_announce = ""
|
||||
if awards.def[award].title then
|
||||
title = awards.def[award].title
|
||||
end
|
||||
if awards.def[award].custom_announce then
|
||||
custom_announce = awards.def[award].custom_announce
|
||||
end
|
||||
if awards.def[award].background then
|
||||
background = awards.def[award].background
|
||||
end
|
||||
if awards.def[award].icon then
|
||||
icon = awards.def[award].icon
|
||||
end
|
||||
if awards.def[award] and awards.def[award].description then
|
||||
desc = awards.def[award].description
|
||||
end
|
||||
|
||||
-- send the won award message to the player
|
||||
if awards.show_mode == "formspec" then
|
||||
-- use a formspec to send it
|
||||
minetest.show_formspec(name, "achievements:unlocked", "size[4,2]"
|
||||
.."image_button_exit[0,0;4,2;"..background..";close1; ]"
|
||||
.."image_button_exit[0.2,0.8;1,1;"..icon..";close2; ]"
|
||||
.."label[1.1,1;"..title.."]"
|
||||
.."label[0.3,0.1;"..custom_announce.."]")
|
||||
elseif awards.show_mode == "chat" then
|
||||
-- use the chat console to send it
|
||||
minetest.chat_send_player(name, "Achievement Unlocked: "..title)
|
||||
if desc~="" then
|
||||
minetest.chat_send_player(name, desc)
|
||||
end
|
||||
else
|
||||
local player = minetest.get_player_by_name(name)
|
||||
local one = player:hud_add({
|
||||
hud_elem_type = "image",
|
||||
name = "award_bg",
|
||||
scale = {x = 1, y = 1},
|
||||
text = background,
|
||||
position = {x = 0.5, y = 0},
|
||||
offset = {x = 0, y = 138},
|
||||
alignment = {x = 0, y = -1}
|
||||
})
|
||||
local two = player:hud_add({
|
||||
hud_elem_type = "text",
|
||||
name = "award_au",
|
||||
number = 0xFFFFFF,
|
||||
scale = {x = 100, y = 20},
|
||||
text = "Achievement Unlocked!",
|
||||
position = {x = 0.5, y = 0},
|
||||
offset = {x = 0, y = 40},
|
||||
alignment = {x = 0, y = -1}
|
||||
})
|
||||
local three = player:hud_add({
|
||||
hud_elem_type = "text",
|
||||
name = "award_title",
|
||||
number = 0xFFFFFF,
|
||||
scale = {x = 100, y = 20},
|
||||
text = title,
|
||||
position = {x = 0.5, y = 0},
|
||||
offset = {x = 30, y = 100},
|
||||
alignment = {x = 0, y = -1}
|
||||
})
|
||||
local four = player:hud_add({
|
||||
hud_elem_type = "image",
|
||||
name = "award_icon",
|
||||
scale = {x = 4, y = 4},
|
||||
text = icon,
|
||||
position = {x = 0.5, y = 0},
|
||||
offset = {x = -81.5, y = 126},
|
||||
alignment = {x = 0, y = -1}
|
||||
})
|
||||
minetest.after(3, function()
|
||||
player:hud_remove(one)
|
||||
player:hud_remove(two)
|
||||
player:hud_remove(three)
|
||||
player:hud_remove(four)
|
||||
end)
|
||||
end
|
||||
|
||||
-- record this in the log
|
||||
minetest.log("action", name.." has unlocked award "..title)
|
||||
|
||||
-- save playertable
|
||||
awards.save()
|
||||
end
|
||||
end
|
||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||
local name = player:get_player_name()
|
||||
if fields.aw then
|
||||
awards.showto(name, name, nil, false)
|
||||
end
|
||||
if fields.awards then
|
||||
local event = minetest.explode_textlist_event(fields.awards)
|
||||
if event.type == "CHG" then
|
||||
awards.showto(name,name,event.index,false)
|
||||
end
|
||||
end
|
||||
|
||||
end)
|
||||
|
||||
-- List a player's achievements
|
||||
|
||||
--[[minetest.register_chatcommand("gawd", {
|
||||
params = "award name",
|
||||
description = "gawd: give award to self",
|
||||
func = function(name, param)
|
||||
awards.give_achievement(name,param)
|
||||
end
|
||||
})]]--
|
||||
|
||||
function awards._order_awards(name)
|
||||
local done = {}
|
||||
local retval = {}
|
||||
local player = awards.player(name)
|
||||
if player and player.unlocked then
|
||||
for _,got in pairs(player.unlocked) do
|
||||
if awards.def[got] then
|
||||
done[got] = true
|
||||
table.insert(retval,{name=got,got=true})
|
||||
end
|
||||
end
|
||||
end
|
||||
for _,def in pairs(awards.def) do
|
||||
if not done[def.name] then
|
||||
table.insert(retval,{name=def.name,got=false})
|
||||
end
|
||||
end
|
||||
return retval
|
||||
end
|
||||
|
||||
function awards.showto(name, to, sid, text)
|
||||
if name == "" or name == nil then
|
||||
name = to
|
||||
end
|
||||
if text then
|
||||
if not awards.players[name] or not awards.players[name].unlocked then
|
||||
minetest.chat_send_player(to, "You have not unlocked any awards")
|
||||
return
|
||||
end
|
||||
minetest.chat_send_player(to, name.."'s awards:")
|
||||
|
||||
for _, str in pairs(awards.players[name].unlocked) do
|
||||
local def = awards.def[str]
|
||||
if def then
|
||||
if def.title then
|
||||
if def.description then
|
||||
minetest.chat_send_player(to, def.title..": "..def.description)
|
||||
else
|
||||
minetest.chat_send_player(to, def.title)
|
||||
end
|
||||
else
|
||||
minetest.chat_send_player(to, str)
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
if sid == nil or sid < 1 then
|
||||
sid = 1
|
||||
end
|
||||
local formspec = "size[11,6]"
|
||||
.."button[0,0;2,0.5;inven;Back]"
|
||||
.."button[2,0;2,0.5;main;Main]"
|
||||
.."background[11,6;1,1;gui_formbg.png;true]"
|
||||
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
|
||||
.."bgcolor[#080808BB;true]"
|
||||
local listofawards = awards._order_awards(name)
|
||||
|
||||
-- Sidebar
|
||||
if sid then
|
||||
local item = listofawards[sid+0]
|
||||
local def = awards.def[item.name]
|
||||
if def and def.secret and not item.got then
|
||||
formspec = formspec .. "label[1,3.75;Secret Award]"..
|
||||
"image[1,1;3,3;unknown.png]"
|
||||
if def and def.description then
|
||||
formspec = formspec .. "label[0,4.25;Unlock this award to find out what it is]"
|
||||
end
|
||||
else
|
||||
local title = item.name
|
||||
if def and def.title then
|
||||
title = def.title
|
||||
end
|
||||
local status = ""
|
||||
if item.got then
|
||||
status = " (got)"
|
||||
end
|
||||
local icon = ""
|
||||
if def and def.icon then
|
||||
icon = def.icon
|
||||
end
|
||||
formspec = formspec .. "label[1,3.75;"..title..status.."]"..
|
||||
"image[1,1;3,3;"..icon.."]"
|
||||
if def and def.description then
|
||||
formspec = formspec .. "label[0,4.25;"..def.description.."]"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Create list box
|
||||
formspec = formspec .. "textlist[4.75,1;6,5;awards;"
|
||||
local first = true
|
||||
local all = 0
|
||||
local gotaw = 0
|
||||
for _,award in pairs(listofawards) do
|
||||
local def = awards.def[award.name]
|
||||
if def then
|
||||
if not first then
|
||||
formspec = formspec .. ","
|
||||
end
|
||||
first = false
|
||||
|
||||
if def.secret and not award.got then
|
||||
formspec = formspec .. "#ACACACSecret Award"
|
||||
else
|
||||
local title = award.name
|
||||
if def and def.title then
|
||||
title = def.title
|
||||
end
|
||||
if award.got then
|
||||
gotaw = gotaw+1
|
||||
formspec = formspec .. minetest.formspec_escape(title)
|
||||
else
|
||||
formspec = formspec .. "#ACACAC".. minetest.formspec_escape(title)
|
||||
end
|
||||
all = all+1
|
||||
end
|
||||
end
|
||||
end
|
||||
formspec = formspec .. ";"..sid.."]"
|
||||
if all == gotaw then
|
||||
local player_inv = minetest.get_player_by_name(name):get_inventory()
|
||||
player_inv:set_size("a20", 1)
|
||||
player_inv:set_stack("a20", 1, "default:dirt")
|
||||
else
|
||||
local player_inv = minetest.get_player_by_name(name):get_inventory()
|
||||
player_inv:set_size("a20", 1)
|
||||
player_inv:set_stack("a20", 1, "")
|
||||
end
|
||||
formspec = formspec .. "label[4,0;"..gotaw.."/"..all.."]"
|
||||
|
||||
-- Show formspec to user
|
||||
minetest.get_player_by_name(to):set_inventory_formspec(formspec)
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||
if formname~="awards:awards" then
|
||||
return false
|
||||
end
|
||||
if fields.quit then
|
||||
return true
|
||||
end
|
||||
local name = player:get_player_name()
|
||||
|
||||
|
||||
return true
|
||||
end)
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
intllib?
|
||||
sfinv?
|
||||
unified_inventory?
|
||||
default?
|
||||
stairs?
|
||||
farming?
|
||||
dye?
|
||||
beds?
|
||||
wool?
|
||||
vessels?
|
||||
moreblocks?
|
||||
fire?
|
||||
flowers?
|
||||
nyancat?
|
|
@ -1,465 +1,39 @@
|
|||
-- AWARDS
|
||||
-- by Rubenwardy changed by 1248
|
||||
-------------------------------------------------------
|
||||
-- this is the init file for the award mod
|
||||
-------------------------------------------------------
|
||||
local intllib = nil
|
||||
local S
|
||||
if (intllib) then
|
||||
dofile(minetest.get_modpath("intllib").."/intllib.lua")
|
||||
S = intllib.Getter(minetest.get_current_modname())
|
||||
else
|
||||
S = function ( s ) return s end
|
||||
end
|
||||
|
||||
dofile(minetest.get_modpath("awards").."/api.lua")
|
||||
|
||||
awards.register_achievement("award_ruby_bronze",{
|
||||
title = S("Ruby (Bronze)"),
|
||||
description = S("Dig 25 Ruby Ore."),
|
||||
icon = "ruby_ruby_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:ruby_ore",
|
||||
target = 25
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_ruby_silber",{
|
||||
title = S("Ruby (Silber)"),
|
||||
description = S("Dig 50 Ruby Ore."),
|
||||
icon = "ruby_ruby_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:ruby_ore",
|
||||
target = 50
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_ruby_gold",{
|
||||
title = S("Ruby (Gold)"),
|
||||
description = S("Dig 100 Ruby Ore."),
|
||||
icon = "ruby_ruby_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:ruby_ore",
|
||||
target = 100
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_ruby_platin",{
|
||||
title = S("Ruby (Platin)"),
|
||||
description = S("Dig 200 Ruby Ore."),
|
||||
icon = "ruby_ruby_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:ruby_ore",
|
||||
target = 200
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_sapphire_bronze",{
|
||||
title = S("Sapphire (Bronze)"),
|
||||
description = S("Dig 25 Sapphire Ore."),
|
||||
icon = "gems_sapphire_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:sapphire_ore",
|
||||
target = 25
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_sapphire_silber",{
|
||||
title = S("Sapphire (Silber)"),
|
||||
description = S("Dig 50 Sapphire Ore."),
|
||||
icon = "gems_sapphire_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:sapphire_ore",
|
||||
target = 50
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_sapphire_gold",{
|
||||
title = S("Sapphire (Gold)"),
|
||||
description = S("Dig 100 Sapphire Ore."),
|
||||
icon = "gems_sapphire_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:sapphire_ore",
|
||||
target = 100
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_sapphire_platin",{
|
||||
title = S("Sapphire (Platin)"),
|
||||
description = S("Dig 200 Sapphire Ore."),
|
||||
icon = "gems_sapphire_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:sapphire_ore",
|
||||
target = 200
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_amethyst_bronze",{
|
||||
title = S("Amethyst (Bronze)"),
|
||||
description = S("Dig 25 Amethyst Ore."),
|
||||
icon = "gems_amethyst_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:amethyst_ore",
|
||||
target = 25
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_amethyst_silber",{
|
||||
title = S("Amethyst (Silber)"),
|
||||
description = S("Dig 50 Amethyst Ore."),
|
||||
icon = "gems_amethyst_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:amethyst_ore",
|
||||
target = 50
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_amethyst_Gold",{
|
||||
title = S("Amethyst (Gold)"),
|
||||
description = S("Dig 100 Amethyst Ore."),
|
||||
icon = "gems_amethyst_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:amethyst_ore",
|
||||
target = 100
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_amethyst_platin",{
|
||||
title = S("Amethyst (Platin)"),
|
||||
description = S("Dig 200 Amethyst Ore."),
|
||||
icon = "gems_amethyst_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:amethyst_ore",
|
||||
target = 200
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_shadow_bronze",{
|
||||
title = S("Shadow (Bronze)"),
|
||||
description = S("Dig 25 Shadow Ore."),
|
||||
icon = "shadow_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:shadow_ore",
|
||||
target = 25
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_shadow_silber",{
|
||||
title = S("Shadow (Silber)"),
|
||||
description = S("Dig 50 Shadow Ore."),
|
||||
icon = "shadow_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:shadow_ore",
|
||||
target = 50
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_shadow_gold",{
|
||||
title = S("Shadow (Gold)"),
|
||||
description = S("Dig 100 Shadow Ore."),
|
||||
icon = "shadow_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:shadow_ore",
|
||||
target = 100
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_shadow_platin",{
|
||||
title = S("Shadow (Platin)"),
|
||||
description = S("Dig 200 Shadow Ore."),
|
||||
icon = "shadow_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:shadow_ore",
|
||||
target = 200
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_pearl_bronze",{
|
||||
title = S("Pearl (Bronze)"),
|
||||
description = S("Dig 25 Pearl Ore."),
|
||||
icon = "gems_pearl_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:pearl_ore",
|
||||
target = 25
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_pearl_silber",{
|
||||
title = S("Pearl (Silber)"),
|
||||
description = S("Dig 50 Pearl Ore."),
|
||||
icon = "gems_pearl_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:pearl_ore",
|
||||
target = 50
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_pearl_gold",{
|
||||
title = S("Pearl (Gold)"),
|
||||
description = S("Dig 100 Pearl Ore."),
|
||||
icon = "gems_pearl_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:pearl_ore",
|
||||
target = 100
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_pearl_platin",{
|
||||
title = S("Pearl (Platin)"),
|
||||
description = S("Dig 200 Pearl Ore."),
|
||||
icon = "gems_pearl_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:pearl_ore",
|
||||
target = 200
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_emerald_bronze",{
|
||||
title = S("Emerald (Bronze)"),
|
||||
description = S("Dig 25 Emerald Ore."),
|
||||
icon = "gems_emerald_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:emerald_ore",
|
||||
target = 25
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_emerald_silber",{
|
||||
title = S("Emerald (Silber)"),
|
||||
description = S("Dig 50 Emerald Ore."),
|
||||
icon = "gems_emerald_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:emerald_ore",
|
||||
target = 50
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_emerald_gold",{
|
||||
title = S("Emerald (Gold)"),
|
||||
description = S("Dig 100 Emerald Ore."),
|
||||
icon = "gems_emerald_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:emerald_ore",
|
||||
target = 100
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_emerald_platin",{
|
||||
title = S("Emerald (Platin)"),
|
||||
description = S("Dig 200 Emerald Ore."),
|
||||
icon = "gems_emerald_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:emerald_ore",
|
||||
target = 200
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_admin_ore_bronze",{
|
||||
title = S("Admin Ore (Bronze)"),
|
||||
description = S("Dig 5 Admin Ore."),
|
||||
icon = "default_stone.png^tutorial_admin_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_admin",
|
||||
target = 5
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_admin_ore_silber",{
|
||||
title = S("Admin Ore (Silber)"),
|
||||
description = S("Dig 10 Admin Ore."),
|
||||
icon = "default_stone.png^tutorial_admin_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_admin",
|
||||
target = 10
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_admin_ore_gold",{
|
||||
title = S("Admin Ore (Gold)"),
|
||||
description = S("Dig 20 Admin Ore."),
|
||||
icon = "default_stone.png^tutorial_admin_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_admin",
|
||||
target = 20
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_admin_ore_platin",{
|
||||
title = S("Admin Ore (Platin)"),
|
||||
description = S("Dig 40 Admin Ore."),
|
||||
icon = "default_stone.png^tutorial_admin_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_admin",
|
||||
target = 40
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_achievement("award_titan_ore_bronze",{
|
||||
title = S("Titan Ore (Bronze)"),
|
||||
description = S("Dig 10 Titan Ore."),
|
||||
icon = "tutorial_titan_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_titan",
|
||||
target = 10
|
||||
}
|
||||
})
|
||||
awards.register_achievement("award_titan_ore_silber",{
|
||||
title = S("Titan Ore (Silber)"),
|
||||
description = S("Dig 20 Titan Ore."),
|
||||
icon = "tutorial_titan_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_titan",
|
||||
target = 20
|
||||
}
|
||||
})
|
||||
awards.register_achievement("award_titan_ore_gold",{
|
||||
title = S("Titan Ore (Gold)"),
|
||||
description = S("Dig 40 Titan Ore."),
|
||||
icon = "tutorial_titan_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_titan",
|
||||
target = 40
|
||||
}
|
||||
})
|
||||
awards.register_achievement("award_titan_ore_platin",{
|
||||
title = S("Titan Ore (Platin)"),
|
||||
description = S("Dig 80 Titan Ore."),
|
||||
icon = "tutorial_titan_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_titan",
|
||||
target = 80
|
||||
}
|
||||
})
|
||||
awards.register_achievement("award_regnum_ore_bronze",{
|
||||
title = S("Regnum Ore (Bronze)"),
|
||||
description = S("Dig 2 Regnum Ore."),
|
||||
icon = "default_stone.png^tutorial_regnum_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_regnum",
|
||||
target = 2
|
||||
}
|
||||
})
|
||||
awards.register_achievement("award_regnum_ore_silber",{
|
||||
title = S("Regnum Ore (Silber)"),
|
||||
description = S("Dig 5 Regnum Ore."),
|
||||
icon = "default_stone.png^tutorial_regnum_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_regnum",
|
||||
target = 5
|
||||
}
|
||||
})
|
||||
awards.register_achievement("award_regnum_ore_gold",{
|
||||
title = S("Regnum Ore (Gold)"),
|
||||
description = S("Dig 10 Regnum Ore."),
|
||||
icon = "default_stone.png^tutorial_regnum_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_regnum",
|
||||
target = 10
|
||||
}
|
||||
})
|
||||
awards.register_achievement("award_regnum_ore_platin",{
|
||||
title = S("Regnum Ore (Platin)"),
|
||||
description = S("Dig 20 Regnum Ore."),
|
||||
icon = "default_stone.png^tutorial_regnum_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_regnum",
|
||||
target = 20
|
||||
}
|
||||
})
|
||||
awards.register_achievement("award_???_bronze",{
|
||||
title = S("??? (Bronze)"),
|
||||
description = S("?")
|
||||
})
|
||||
awards.register_onDeath(function(player,data)
|
||||
local pos = player:getpos()
|
||||
if pos and minetest.find_node_near(pos, 5, "default:mese") ~= nil then
|
||||
return "award_???_bronze"
|
||||
end
|
||||
return nil
|
||||
end)
|
||||
|
||||
|
||||
awards.register_achievement("award_???_silber",{
|
||||
title = S("??? (Silber)"),
|
||||
description = S("?")
|
||||
})
|
||||
awards.register_onDeath(function(player,data)
|
||||
local pos = player:getpos()
|
||||
if pos and minetest.find_node_near(pos, 5, "moreores:mineral_mithril") ~= nil then
|
||||
return "award_???_silber"
|
||||
end
|
||||
return nil
|
||||
end)
|
||||
|
||||
|
||||
awards.register_achievement("award_???_gold",{
|
||||
title = S("??? (Gold)"),
|
||||
description = S("?")
|
||||
})
|
||||
awards.register_onDeath(function(player,data)
|
||||
local pos = player:getpos()
|
||||
if pos and minetest.find_node_near(pos, 5, "tutorial:stone_with_titan") ~= nil then
|
||||
return "award_???_gold"
|
||||
end
|
||||
return nil
|
||||
end)
|
||||
|
||||
awards.register_achievement("award_???_platin",{
|
||||
title = S("??? (Platin)"),
|
||||
description = S("?")
|
||||
})
|
||||
awards.register_onDeath(function(player,data)
|
||||
local pos = player:getpos()
|
||||
if pos and minetest.find_node_near(pos, 5, "tutorial:stone_with_admin") ~= nil then
|
||||
return "award_???_platin"
|
||||
end
|
||||
return nil
|
||||
end)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-- Copyright (c) 2013-18 rubenwardy. MIT.
|
||||
|
||||
-- The global award namespace
|
||||
awards = {
|
||||
show_mode = "hud",
|
||||
registered_awards = {},
|
||||
registered_triggers = {},
|
||||
on_unlock = {},
|
||||
}
|
||||
|
||||
-- Internationalization support.
|
||||
awards.gettext, awards.ngettext = dofile(minetest.get_modpath("awards").."/src/intllib.lua")
|
||||
|
||||
-- Load files
|
||||
dofile(minetest.get_modpath("awards").."/src/data.lua")
|
||||
dofile(minetest.get_modpath("awards").."/src/api_awards.lua")
|
||||
dofile(minetest.get_modpath("awards").."/src/api_triggers.lua")
|
||||
--dofile(minetest.get_modpath("awards").."/src/chat_commands.lua")
|
||||
dofile(minetest.get_modpath("awards").."/src/gui.lua")
|
||||
dofile(minetest.get_modpath("awards").."/src/triggers.lua")
|
||||
dofile(minetest.get_modpath("awards").."/src/awards.lua")
|
||||
|
||||
|
||||
awards.load()
|
||||
minetest.register_on_shutdown(awards.save)
|
||||
|
||||
|
||||
-- Backwards compatibility
|
||||
awards.give_achievement = awards.unlock
|
||||
awards.getFormspec = awards.get_formspec
|
||||
awards.showto = awards.show_to
|
||||
awards.register_onDig = awards.register_on_dig
|
||||
awards.register_onPlace = awards.register_on_place
|
||||
awards.register_onDeath = awards.register_on_death
|
||||
awards.register_onChat = awards.register_on_chat
|
||||
awards.register_onJoin = awards.register_on_join
|
||||
awards.register_onCraft = awards.register_on_craft
|
||||
awards.def = awards.registered_awards
|
||||
awards.register_achievement = awards.register_award
|
||||
|
|
|
@ -0,0 +1,824 @@
|
|||
# German translations for PACKAGE package.
|
||||
# Copyright (C) 2017 THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# Wuzzy2, 2017.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-02-21 05:35-0300\n"
|
||||
"PO-Revision-Date: 2017-02-21 04:19-0300\n"
|
||||
"Last-Translator: Wuzzy2\n"
|
||||
"Language-Team: German\n"
|
||||
"Language: de\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: api.lua
|
||||
msgid "Secret Achievement Unlocked:"
|
||||
msgstr "Geheime Auszeichnung erhalten:"
|
||||
|
||||
#: api.lua
|
||||
msgid "Achievement Unlocked:"
|
||||
msgstr "Auszeichnung erhalten:"
|
||||
|
||||
#: api.lua
|
||||
#, lua-format
|
||||
msgid "Secret Achievement Unlocked: %s"
|
||||
msgstr "Geheime Auszeichnung erhalten: %s"
|
||||
|
||||
#: api.lua
|
||||
#, lua-format
|
||||
msgid "Achievement Unlocked: %s"
|
||||
msgstr "Auszeichnung erhalten: %s"
|
||||
|
||||
#: api.lua
|
||||
msgid "Secret Achievement Unlocked!"
|
||||
msgstr "Geheime Auszeichnung erhalten!"
|
||||
|
||||
#: api.lua
|
||||
msgid "Achievement Unlocked!"
|
||||
msgstr "Auszeichnung erhalten:"
|
||||
|
||||
#: api.lua
|
||||
msgid "Error: No awards available."
|
||||
msgstr "Fehler: Keine Auszeichnungen vorhanden."
|
||||
|
||||
#: api.lua
|
||||
msgid "OK"
|
||||
msgstr "OK"
|
||||
|
||||
#: api.lua
|
||||
msgid "(Secret Award)"
|
||||
msgstr "(Geheime Auszeichnung)"
|
||||
|
||||
#: api.lua
|
||||
msgid "Unlock this award to find out what it is."
|
||||
msgstr "Verdienen Sie sich diese Auszeichnung, um herauszufinden, was sie ist."
|
||||
|
||||
#: api.lua
|
||||
#, lua-format
|
||||
msgid "%s (got)"
|
||||
msgstr "%s (erhalten)"
|
||||
|
||||
#: api.lua
|
||||
msgid "You've disabled awards. Type /awards enable to reenable."
|
||||
msgstr ""
|
||||
"Sie haben die Auszeichnungen deaktiviert. Geben Sie »/awards enable« ein, um "
|
||||
"sie wieder zu aktivieren."
|
||||
|
||||
#: api.lua
|
||||
msgid "You have not unlocked any awards."
|
||||
msgstr "Sie haben noch keine Auszeichnungen."
|
||||
|
||||
#: api.lua
|
||||
#, lua-format
|
||||
msgid "%s’s awards:"
|
||||
msgstr "%ss Auszeichnungen:"
|
||||
|
||||
#: api.lua chat_commands.lua
|
||||
#, lua-format
|
||||
msgid "%s: %s"
|
||||
msgstr "%s: %s"
|
||||
|
||||
#: sfinv.lua unified_inventory.lua
|
||||
msgid "Awards"
|
||||
msgstr "Auszeichnungen"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 dug"
|
||||
msgstr "@1/@2 abgebaut"
|
||||
|
||||
#. Translators: @1 is count, @2 is description.
|
||||
#: triggers.lua
|
||||
msgid "Mine: @2"
|
||||
msgid_plural "Mine: @1×@2"
|
||||
msgstr[0] "Bauen Sie einen Block ab: @2"
|
||||
msgstr[1] "Bauen Sie Blöcke ab: @1×@2"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Mine @1 block."
|
||||
msgid_plural "Mine @1 blocks."
|
||||
msgstr[0] "Bauen Sie einen @1 Block ab."
|
||||
msgstr[1] "Bauen Sie @1 Blöcke ab."
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 placed"
|
||||
msgstr "@1/@2 platziert"
|
||||
|
||||
#. Translators: @1 is count, @2 is description.
|
||||
#: triggers.lua
|
||||
msgid "Place: @2"
|
||||
msgid_plural "Place: @1×@2"
|
||||
msgstr[0] "Platzieren Sie einen Block: @2"
|
||||
msgstr[1] "Platzieren Sie Blöcke: @1×@2"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Place a block."
|
||||
msgid_plural "Place @1 blocks."
|
||||
msgstr[0] "Platzieren Sie einen Block."
|
||||
msgstr[1] "Platzieren Sie @1 Blöcke."
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 eaten"
|
||||
msgstr "@1/@2 gegessen"
|
||||
|
||||
#. Translators: @1 is count, @2 is description.
|
||||
#: triggers.lua
|
||||
msgid "Eat: @2"
|
||||
msgid_plural "Eat: @1×@2"
|
||||
msgstr[0] "Essen Sie: @2"
|
||||
msgstr[1] "Essen Sie: @1×@2"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Eat an item."
|
||||
msgid_plural "Eat @1 items."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 deaths"
|
||||
msgstr "@1/@2 Tode"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Die."
|
||||
msgid_plural "Die @1 times."
|
||||
msgstr[0] "Sterben Sie."
|
||||
msgstr[1] "Sterben Sie @1 mal."
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 chat messages"
|
||||
msgstr "@1/@2 Chatnachrichten"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Write something in chat."
|
||||
msgid_plural "Write @1 chat messages."
|
||||
msgstr[0] "Schreiben Sie etwas im Chat."
|
||||
msgstr[1] "Schreiben Sie @1 Chatnachrichten."
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 game joins"
|
||||
msgstr "@1/@2 Spielen beigetreten"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Join the game."
|
||||
msgid_plural "Join the game @1 times."
|
||||
msgstr[0] "Treten Sie dem Spiel bei."
|
||||
msgstr[1] "Treten Sie dem Spiel @1 mal bei."
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 crafted"
|
||||
msgstr "@1/@2 gefertigt"
|
||||
|
||||
#. Translators: @1 is count, @2 is description.
|
||||
#: triggers.lua
|
||||
msgid "Craft: @2"
|
||||
msgid_plural "Craft: @1×@2"
|
||||
msgstr[0] "Fertigen Sie an: @2"
|
||||
msgstr[1] "Fertigen Sie an: @1×@2"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Craft an item."
|
||||
msgid_plural "Craft @1 items."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Saint-Maclou"
|
||||
msgstr "Saint-Maclou"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 20 coal checkers."
|
||||
msgstr "Platzieren Sie 20 Kohlenschachbrettmuster."
|
||||
|
||||
#: init.lua
|
||||
msgid "Castorama"
|
||||
msgstr "Gießmeister"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 20 iron checkers."
|
||||
msgstr "Platzieren Sie 20 Eisenschachbrettmuster."
|
||||
|
||||
#: init.lua
|
||||
msgid "Sam the Trapper"
|
||||
msgstr "Sam der Fallensteller"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 2 trap stones."
|
||||
msgstr "Platzieren Sie 2 Fallensteine."
|
||||
|
||||
#: init.lua
|
||||
msgid "Backpacker"
|
||||
msgstr "Rucksacktourist"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 4 large bags."
|
||||
msgstr "Fertigen Sie 4 große Taschen."
|
||||
|
||||
#: init.lua
|
||||
msgid "Pyromaniac"
|
||||
msgstr "Pyromane"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 8 times flint and steel."
|
||||
msgstr "Fertigen Sie 8 mal einen Feuerstein und Stahl an."
|
||||
|
||||
#: init.lua
|
||||
msgid "Firefighter"
|
||||
msgstr "Feuerwehr"
|
||||
|
||||
#: init.lua
|
||||
msgid "Put out 1000 fires."
|
||||
msgstr "Löschen Sie 1000 Flammen."
|
||||
|
||||
#: init.lua
|
||||
msgid "Light It Up"
|
||||
msgstr "Licht an!"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 100 torches."
|
||||
msgstr "Platzieren Sie 100 Fackeln."
|
||||
|
||||
#: init.lua
|
||||
msgid "Well Lit"
|
||||
msgstr "Gut ausgeleuchtet"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 1,000 torches."
|
||||
msgstr "Platzieren Sie 1000 Fackeln."
|
||||
|
||||
#: init.lua
|
||||
msgid "Really Well Lit"
|
||||
msgstr "Sehr gute Beleuchtung"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 10 mese lamps."
|
||||
msgstr "Fertigen Sie 10 Meselampen."
|
||||
|
||||
#: init.lua
|
||||
msgid "Outpost"
|
||||
msgstr "Außenposten"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 200 stone bricks."
|
||||
msgstr "Fertigen Sie 200 Steinziegel."
|
||||
|
||||
#: init.lua
|
||||
msgid "Watchtower"
|
||||
msgstr "Wachturm"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 800 stone bricks."
|
||||
msgstr "Fertigen Sie 800 Steinziegel an."
|
||||
|
||||
#: init.lua
|
||||
msgid "Fortress"
|
||||
msgstr "Burg"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 3,200 stone bricks."
|
||||
msgstr "Fertigen Sie 3200 Steinziegel."
|
||||
|
||||
#: init.lua
|
||||
msgid "Desert Dweller"
|
||||
msgstr "Wüstenbewohner"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 400 desert stone bricks."
|
||||
msgstr "Fertigen Sie 400 Wüstensteinziegel."
|
||||
|
||||
#: init.lua
|
||||
msgid "Pharaoh"
|
||||
msgstr "Pharao"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 100 sandstone bricks."
|
||||
msgstr "Fertigen Sie 100 Sandsteinziegel."
|
||||
|
||||
#: init.lua
|
||||
msgid "Little Library"
|
||||
msgstr "Kleine Bücherei"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 7 bookshelves."
|
||||
msgstr "Fertigen Sie 7 Bücherregale."
|
||||
|
||||
#: init.lua
|
||||
msgid "Lava and Water"
|
||||
msgstr "Lava und Wasser"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first obsidian."
|
||||
msgstr "Bauen Sie Ihr erstes Obsidian ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Obsessed with Obsidian"
|
||||
msgstr "Von Obsidian besessen"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine 50 obsidian."
|
||||
msgstr "Bauen Sie 50 Obsidian ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Lava Miner"
|
||||
msgstr "Lavagräber"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine any block while being very close to lava."
|
||||
msgstr ""
|
||||
"Bauen Sie einen beliebigen Block ab, während Sie sehr nahe an der Lava "
|
||||
"stehen."
|
||||
|
||||
#: init.lua
|
||||
msgid "On The Way"
|
||||
msgstr "Auf dem Weg"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 100 rails."
|
||||
msgstr "Platzieren Sie 100 Gleise."
|
||||
|
||||
#: init.lua
|
||||
msgid "First Day in the Woods"
|
||||
msgstr "Erster Tag im Wald"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 6 tree blocks."
|
||||
msgstr "Bauen Sie 6 Baumblöcke ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Lumberjack"
|
||||
msgstr "Holzfäller"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 36 tree blocks."
|
||||
msgstr "Bauen Sie 36 Baumblöcke ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Semi-pro Lumberjack"
|
||||
msgstr "Fortgeschrittener Holzfäller"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 216 tree blocks."
|
||||
msgstr "Bauen Sie 216 Baumblöcke ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Professional Lumberjack"
|
||||
msgstr "Profiholzfäller"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,296 tree blocks."
|
||||
msgstr "Bauen Sie 1296 Baumblöcke ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Junglebaby"
|
||||
msgstr "Dschungelbaby"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 100 jungle tree blocks."
|
||||
msgstr "Bauen Sie 100 Dschungelbaumblöcke ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Jungleman"
|
||||
msgstr "Dschungelmann"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,000 jungle tree blocks."
|
||||
msgstr "Bauen Sie 1000 Dschungelbaumblöcke ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "First Mese Find"
|
||||
msgstr "Erster Mesefund"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first mese ore."
|
||||
msgstr "Bauen Sie Ihr erstes Meseerz ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Mese Mastery"
|
||||
msgstr "Mesemeister"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine a mese block."
|
||||
msgstr "Bauen Sie einen Meseblock ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "You’re a copper"
|
||||
msgstr "Du Kupfer!"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,000 copper ores."
|
||||
msgstr "Bauen Sie 1000 Kupfererze ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "A Cat in a Pop-Tart?!"
|
||||
msgstr "Eine Katze im Pop-Tart?!"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine a nyan cat."
|
||||
msgstr "Bauen Sie eine Nyan Cat ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Mini Miner"
|
||||
msgstr "Berganfänger"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 100 stone blocks."
|
||||
msgstr "Bauen Sie 100 Steinblöcke ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Hardened Miner"
|
||||
msgstr "Abhehärteter Bergarbeiter"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,000 stone blocks."
|
||||
msgstr "Bauen Sie 1000 Steine ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Master Miner"
|
||||
msgstr "Profibergarbeiter"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 10,000 stone blocks."
|
||||
msgstr "Bauen Sie 10000 Steine ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Marchand De Sable"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,000 sand."
|
||||
msgstr "Bauen Sie 1000 Sand ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Crafter of Sticks"
|
||||
msgstr "Stockmacher"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 100 sticks."
|
||||
msgstr "Fertigen Sie 100 Stöcke."
|
||||
|
||||
#: init.lua
|
||||
msgid "Jungle Discoverer"
|
||||
msgstr "Dschungelerkunder"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first jungle grass."
|
||||
msgstr "Bauen Sie Ihr erstes Dschungelgras ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Grasslands Discoverer"
|
||||
msgstr "Prärieerkunder"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine some grass."
|
||||
msgstr "Bauen Sie etwas Gras ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Savannah Discoverer"
|
||||
msgstr "Savannenerkunder"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine some dry grass."
|
||||
msgstr "Bauen Sie etwas trockenes Gras ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Desert Discoverer"
|
||||
msgstr "Wüstenerkunder"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first cactus."
|
||||
msgstr "Bauen Sie Ihren ersten Kaktus ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Far Lands"
|
||||
msgstr "Ferne Lande"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first dry shrub."
|
||||
msgstr "Bauen Sie Ihren ersten vertrockneten Strauch ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Glacier Discoverer"
|
||||
msgstr "Gletschererkunder"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first ice."
|
||||
msgstr "Bauen Sie Ihr erstes Eis ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Very Simple Snow Man"
|
||||
msgstr "Sehr simpler Schneemann"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place two snow blocks."
|
||||
msgstr "Platzieren Sie zwei Schneeblöcke."
|
||||
|
||||
#: init.lua
|
||||
msgid "First Gold Find"
|
||||
msgstr "Erster Goldfund"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first gold ore."
|
||||
msgstr "Bauen Sie Ihr erstes Golderz ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Gold Rush"
|
||||
msgstr "Goldrausch"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine 45 gold ores."
|
||||
msgstr "Bauen Sie 18 Diamanterze ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Wow, I am Diamonds!"
|
||||
msgstr "Wow, ich bin Diamanten!"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first diamond ore."
|
||||
msgstr "Bauen Sie Ihr erstes Diamanterz ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Girl's Best Friend"
|
||||
msgstr "Bester Freund der Mädchen"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine 18 diamond ores."
|
||||
msgstr "Bauen Sie 18 Diamanterze ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Hardest Block on Earth"
|
||||
msgstr "Härtester Block der Welt"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft a diamond block."
|
||||
msgstr "Fertigen Sie einen Diamantblock an."
|
||||
|
||||
#: init.lua
|
||||
msgid "In the Dungeon"
|
||||
msgstr "Im Verlies"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine a mossy cobblestone."
|
||||
msgstr "Bauen Sie ein bemoostes Kopfsteinpflaster ab."
|
||||
|
||||
#: init.lua
|
||||
msgid "Smelter"
|
||||
msgstr "Schmelzer"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 10 furnaces."
|
||||
msgstr "Fertigen Sie 10 Öfen."
|
||||
|
||||
#: init.lua
|
||||
msgid "Treasurer"
|
||||
msgstr "Schatzmeister"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 15 chests."
|
||||
msgstr "Fertigen Sie 15 Truhen."
|
||||
|
||||
#: init.lua
|
||||
msgid "Bankier"
|
||||
msgstr "Bankier"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 30 locked chests."
|
||||
msgstr "Fertigen Sie 30 abgeschlossene Truhen."
|
||||
|
||||
#: init.lua
|
||||
msgid "Bricker"
|
||||
msgstr "Ziegler"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 200 brick blocks."
|
||||
msgstr "Fertigen Sie 200 Ziegelblöcke."
|
||||
|
||||
#: init.lua
|
||||
msgid "House of Obsidian"
|
||||
msgstr "Haus aus Obsidian"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 100 obsidian bricks."
|
||||
msgstr "Fertigen Sie 100 Obsidianziegel."
|
||||
|
||||
#: init.lua
|
||||
msgid "Build a Cave"
|
||||
msgstr "Höhlenbauer"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 100 stone."
|
||||
msgstr "Platzieren Sie 100 Steine."
|
||||
|
||||
#: init.lua
|
||||
msgid "Long Ladder"
|
||||
msgstr "Lange Leiter"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 400 wooden ladders."
|
||||
msgstr "Platzieren Sie 400 Holzleitern."
|
||||
|
||||
#: init.lua
|
||||
msgid "Industrial Age"
|
||||
msgstr "Industriezeitalter"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 40 steel ladders."
|
||||
msgstr "Platzieren Sie 40 Stahlleitern."
|
||||
|
||||
#: init.lua
|
||||
msgid "Yummy!"
|
||||
msgstr "Lecker!"
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 80 apples."
|
||||
msgstr "Essen Sie 80 Äpfel."
|
||||
|
||||
#: init.lua
|
||||
msgid "Glasser"
|
||||
msgstr "Glasmacher"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 14 vessels shelves."
|
||||
msgstr "Fertigen Sie 14 Gefäßregale."
|
||||
|
||||
#: init.lua
|
||||
msgid "Farming Skills Acquired"
|
||||
msgstr "Landwirtschaft erlernt"
|
||||
|
||||
#: init.lua
|
||||
msgid "Harvest a fully grown wheat plant."
|
||||
msgstr "Ernten Sie eine voll ausgewachsene Getreidepflanze."
|
||||
|
||||
#: init.lua
|
||||
msgid "Field Worker"
|
||||
msgstr "Feldarbeiter"
|
||||
|
||||
#: init.lua
|
||||
msgid "Harvest 25 fully grown wheat plants."
|
||||
msgstr "Ernten Sie 25 voll ausgewachsene Getreidepflanzen."
|
||||
|
||||
#: init.lua
|
||||
msgid "Aspiring Farmer"
|
||||
msgstr "Aufstrebender Bauer"
|
||||
|
||||
#: init.lua
|
||||
msgid "Harvest 125 fully grown wheat plants."
|
||||
msgstr "Ernten Sie 125 voll ausgewachsene Getreidepflanzen."
|
||||
|
||||
#: init.lua
|
||||
msgid "Wheat Magnate"
|
||||
msgstr "Getreidemagnat"
|
||||
|
||||
#: init.lua
|
||||
msgid "Harvest 625 fully grown wheat plants."
|
||||
msgstr "Ernten Sie 625 voll ausgewachsene Getreidepflanzen."
|
||||
|
||||
#: init.lua
|
||||
msgid "Baker"
|
||||
msgstr "Bäcker"
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 10 loaves of bread."
|
||||
msgstr "Essen Sie 10 Brote."
|
||||
|
||||
#: init.lua
|
||||
msgid "Wool Over Your Eyes"
|
||||
msgstr "Wollige Augen"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 250 white wool."
|
||||
msgstr "Fertigen Sie 250 weiße Wolle."
|
||||
|
||||
#: init.lua
|
||||
msgid "Hotelier"
|
||||
msgstr "Hotelier"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 15 fancy beds."
|
||||
msgstr "Fertigen Sie 15 schicke Betten."
|
||||
|
||||
#: init.lua
|
||||
msgid "Filthy Rich"
|
||||
msgstr "Stinkreich"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 24 gold block stairs."
|
||||
msgstr "Fertigen Sie 24 Goldblockstufen."
|
||||
|
||||
#: init.lua
|
||||
msgid "Roses Are Red"
|
||||
msgstr "Rosen sind rot"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 400 red dyes."
|
||||
msgstr "Fertigen Sie 400 rote Farbstoffe."
|
||||
|
||||
#: init.lua
|
||||
msgid "Dandelions are Yellow"
|
||||
msgstr "Löwenzahn ist gelb"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 400 yellow dyes."
|
||||
msgstr "Fertigen Sie 400 gelbe Farbstoffe."
|
||||
|
||||
#: init.lua
|
||||
msgid "Geraniums are Blue"
|
||||
msgstr "Geranien sind blau"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 400 blue dyes."
|
||||
msgstr "Fertigen Sie 400 blaue Farbstoffe."
|
||||
|
||||
#: init.lua
|
||||
msgid "White Color Stock"
|
||||
msgstr "Weißer Farbstoffvorrat"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 100 white dyes."
|
||||
msgstr "Fertigen Sie 100 weiße Farbstoffe."
|
||||
|
||||
#: init.lua
|
||||
msgid "Tasty Mushrooms"
|
||||
msgstr "Leckere Pilze"
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 3 brown mushrooms."
|
||||
msgstr "Essen Sie 3 braune Pilze."
|
||||
|
||||
#: init.lua
|
||||
msgid "Mushroom Lover"
|
||||
msgstr "Pilzfreund"
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 33 brown mushrooms."
|
||||
msgstr "Essen Sie 33 braune Pilze."
|
||||
|
||||
#: init.lua
|
||||
msgid "Underground Mushroom Farmer"
|
||||
msgstr "Unterirdischer Pilzbauer"
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 333 brown mushrooms."
|
||||
msgstr "Essen Sie 333 braune Pilze."
|
||||
|
||||
#: init.lua
|
||||
msgid "Builder"
|
||||
msgstr "Bauarbeiter"
|
||||
|
||||
#: init.lua
|
||||
msgid "Constructor"
|
||||
msgstr "Konstrukteur"
|
||||
|
||||
#: init.lua
|
||||
msgid "Architect"
|
||||
msgstr "Architekt"
|
||||
|
||||
#: init.lua
|
||||
msgid "Master Architect"
|
||||
msgstr "Meisterarchitekt"
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "[c|clear|disable|enable]"
|
||||
msgstr "[c|clear|disable|enable]"
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "Show, clear, disable or enable your achievements"
|
||||
msgstr "Zeigen, löschen, deaktivieren oder aktivieren Sie Ihre Auszeichnungen"
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid ""
|
||||
"All your awards and statistics have been cleared. You can now start again."
|
||||
msgstr ""
|
||||
"All Ihre Auszeichnugen und Statistiken wurden zurückgesetzt. Sie können nun "
|
||||
"von vorne anfangen."
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "You have disabled your achievements."
|
||||
msgstr "Sie haben Ihre Auszeichnungen deaktiviert."
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "You have enabled your achievements."
|
||||
msgstr "Sie haben Ihre Auszeichnungen aktiviert."
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "<achievement ID>"
|
||||
msgstr "<Auszeichnungs-ID>"
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "Show details of an achievement"
|
||||
msgstr "Details einer Auszeichnung anzeigen"
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "Achievement not found."
|
||||
msgstr "Auszeichnung nicht gefunden."
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "<name>"
|
||||
msgstr "<Name>"
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "Get the achievements statistics for the given player or yourself"
|
||||
msgstr "Die Statistik der Auszeichnungen eines Spielers zeigen"
|
|
@ -0,0 +1,825 @@
|
|||
# Spanish translations for PACKAGE package
|
||||
# Traducciones al español para el paquete PACKAGE.
|
||||
# Copyright (C) 2017 THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# Diego Martínez <kaeza@users.noreply.github.com>, 2017.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-02-21 05:35-0300\n"
|
||||
"PO-Revision-Date: 2017-02-20 22:17-0300\n"
|
||||
"Last-Translator: Diego Martínez <kaeza@users.noreply.github.com>\n"
|
||||
"Language-Team: Spanish\n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: api.lua
|
||||
msgid "Secret Achievement Unlocked:"
|
||||
msgstr "Logro secreto desbloqueado:"
|
||||
|
||||
#: api.lua
|
||||
msgid "Achievement Unlocked:"
|
||||
msgstr "Logro desbloqueado:"
|
||||
|
||||
#: api.lua
|
||||
#, lua-format
|
||||
msgid "Secret Achievement Unlocked: %s"
|
||||
msgstr "Logro secreto desbloqueado: %s"
|
||||
|
||||
#: api.lua
|
||||
#, lua-format
|
||||
msgid "Achievement Unlocked: %s"
|
||||
msgstr "Logro desbloqueado: %s"
|
||||
|
||||
#: api.lua
|
||||
msgid "Secret Achievement Unlocked!"
|
||||
msgstr "Logro secreto desbloqueado!"
|
||||
|
||||
#: api.lua
|
||||
msgid "Achievement Unlocked!"
|
||||
msgstr "Logro desbloqueado!"
|
||||
|
||||
#: api.lua
|
||||
msgid "Error: No awards available."
|
||||
msgstr "Error: No hay logros disponibles."
|
||||
|
||||
#: api.lua
|
||||
msgid "OK"
|
||||
msgstr "Aceptar"
|
||||
|
||||
#: api.lua
|
||||
msgid "(Secret Award)"
|
||||
msgstr "(Logro secreto)"
|
||||
|
||||
#: api.lua
|
||||
msgid "Unlock this award to find out what it is."
|
||||
msgstr "Desbloquea éste logro para saber qué es."
|
||||
|
||||
#: api.lua
|
||||
#, lua-format
|
||||
msgid "%s (got)"
|
||||
msgstr "%s (obtenido)"
|
||||
|
||||
#: api.lua
|
||||
msgid "You've disabled awards. Type /awards enable to reenable."
|
||||
msgstr ""
|
||||
"Has deshabilitado los logros. Escribe \"/awards enable\" para reactivar."
|
||||
|
||||
#: api.lua
|
||||
msgid "You have not unlocked any awards."
|
||||
msgstr "No has desbloqueado ningún logro."
|
||||
|
||||
#: api.lua
|
||||
#, lua-format
|
||||
msgid "%s’s awards:"
|
||||
msgstr "Logros de %s:"
|
||||
|
||||
#: api.lua chat_commands.lua
|
||||
#, lua-format
|
||||
msgid "%s: %s"
|
||||
msgstr "%s: %s"
|
||||
|
||||
#: sfinv.lua unified_inventory.lua
|
||||
msgid "Awards"
|
||||
msgstr "Logros"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 dug"
|
||||
msgstr "@1/@2 excavados"
|
||||
|
||||
#. Translators: @1 is count, @2 is description.
|
||||
#: triggers.lua
|
||||
msgid "Mine: @2"
|
||||
msgid_plural "Mine: @1×@2"
|
||||
msgstr[0] "Excavar: @2"
|
||||
msgstr[1] "Excavar: @1×@2"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Mine @1 block."
|
||||
msgid_plural "Mine @1 blocks."
|
||||
msgstr[0] "Excavar un bloque."
|
||||
msgstr[1] "Excavar @1 bloques."
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 placed"
|
||||
msgstr "@1/@2 colocados"
|
||||
|
||||
#. Translators: @1 is count, @2 is description.
|
||||
#: triggers.lua
|
||||
msgid "Place: @2"
|
||||
msgid_plural "Place: @1×@2"
|
||||
msgstr[0] "Colocar: @2"
|
||||
msgstr[1] "Colocar: @1×@2"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Place a block."
|
||||
msgid_plural "Place @1 blocks."
|
||||
msgstr[0] "Colocar un bloque."
|
||||
msgstr[1] "Colocar @1 bloques."
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 eaten"
|
||||
msgstr "@1/@2 comidos"
|
||||
|
||||
#. Translators: @1 is count, @2 is description.
|
||||
#: triggers.lua
|
||||
msgid "Eat: @2"
|
||||
msgid_plural "Eat: @1×@2"
|
||||
msgstr[0] "Comer: @2"
|
||||
msgstr[1] "Comer: @1×@2"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Eat an item."
|
||||
msgid_plural "Eat @1 items."
|
||||
msgstr[0] "Comer un objeto."
|
||||
msgstr[1] "Comer @1 objetos."
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 deaths"
|
||||
msgstr "@1/@2 muertes"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Die."
|
||||
msgid_plural "Die @1 times."
|
||||
msgstr[0] "Morir."
|
||||
msgstr[1] "Morir @1 veces."
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 chat messages"
|
||||
msgstr "@1/@2 conversaciones"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Write something in chat."
|
||||
msgid_plural "Write @1 chat messages."
|
||||
msgstr[0] "Escribir algo."
|
||||
msgstr[1] "Escribir @1 mensajes."
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 game joins"
|
||||
msgstr "@1/@2 veces unido"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Join the game."
|
||||
msgid_plural "Join the game @1 times."
|
||||
msgstr[0] "Unirse al juego."
|
||||
msgstr[1] "Unirse al juego @1 veces."
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 crafted"
|
||||
msgstr "@1/@2 elaborado"
|
||||
|
||||
#. Translators: @1 is count, @2 is description.
|
||||
#: triggers.lua
|
||||
msgid "Craft: @2"
|
||||
msgid_plural "Craft: @1×@2"
|
||||
msgstr[0] "Elaborar: @2"
|
||||
msgstr[1] "Elaborar: %1×@2"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Craft an item."
|
||||
msgid_plural "Craft @1 items."
|
||||
msgstr[0] "Elaborar un objeto."
|
||||
msgstr[1] "Elaborar @1 objetos."
|
||||
|
||||
#: init.lua
|
||||
msgid "Saint-Maclou"
|
||||
msgstr "Saint-Maclou"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 20 coal checkers."
|
||||
msgstr "Colocar 20 baldosas de ajedrez de carbón."
|
||||
|
||||
#: init.lua
|
||||
msgid "Castorama"
|
||||
msgstr "Castorama"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 20 iron checkers."
|
||||
msgstr "Colocar 20 baldosas de ajedrez de hierro."
|
||||
|
||||
#: init.lua
|
||||
msgid "Sam the Trapper"
|
||||
msgstr "Sam el Atrapador"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 2 trap stones."
|
||||
msgstr "Colocar 2 piedras trampa."
|
||||
|
||||
#: init.lua
|
||||
msgid "Backpacker"
|
||||
msgstr "Mochilero"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 4 large bags."
|
||||
msgstr "Elaborar 4 bolsas grandes."
|
||||
|
||||
#: init.lua
|
||||
msgid "Pyromaniac"
|
||||
msgstr "Piromaníaco"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 8 times flint and steel."
|
||||
msgstr "Elaborar pedernal y hierro 8 veces."
|
||||
|
||||
#: init.lua
|
||||
msgid "Firefighter"
|
||||
msgstr "Bombero"
|
||||
|
||||
#: init.lua
|
||||
msgid "Put out 1000 fires."
|
||||
msgstr "Apagar 1000 incendios."
|
||||
|
||||
#: init.lua
|
||||
msgid "Light It Up"
|
||||
msgstr "Ilumínalo"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 100 torches."
|
||||
msgstr "Colocar 100 antorchas."
|
||||
|
||||
#: init.lua
|
||||
msgid "Well Lit"
|
||||
msgstr "Bien Iluminado"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 1,000 torches."
|
||||
msgstr "Colocar 1.000 antorchas."
|
||||
|
||||
#: init.lua
|
||||
msgid "Really Well Lit"
|
||||
msgstr "Realmente Bien Iluminado"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 10 mese lamps."
|
||||
msgstr "Elaborar 10 lámparas de MESE."
|
||||
|
||||
#: init.lua
|
||||
msgid "Outpost"
|
||||
msgstr "Puesto de avanzada"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 200 stone bricks."
|
||||
msgstr "Elaborar 200 ladrillos de piedra."
|
||||
|
||||
#: init.lua
|
||||
msgid "Watchtower"
|
||||
msgstr "Torre del vigía"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 800 stone bricks."
|
||||
msgstr "Elaborar 800 ladrillos de piedra."
|
||||
|
||||
#: init.lua
|
||||
msgid "Fortress"
|
||||
msgstr "Fortaleza"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 3,200 stone bricks."
|
||||
msgstr "Elaborar 3.200 ladrillos de piedra."
|
||||
|
||||
#: init.lua
|
||||
msgid "Desert Dweller"
|
||||
msgstr "Morador Desértico"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 400 desert stone bricks."
|
||||
msgstr "Elaborar 400 ladrillos de piedra desértica."
|
||||
|
||||
#: init.lua
|
||||
msgid "Pharaoh"
|
||||
msgstr "Faraón"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 100 sandstone bricks."
|
||||
msgstr "Elaborar 200 ladrillos de arenisca."
|
||||
|
||||
#: init.lua
|
||||
msgid "Little Library"
|
||||
msgstr "Pequeña Biblioteca"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 7 bookshelves."
|
||||
msgstr "Elaborar 7 libreros."
|
||||
|
||||
#: init.lua
|
||||
msgid "Lava and Water"
|
||||
msgstr "Lava y Agua"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first obsidian."
|
||||
msgstr "Excavar tu primera obsidiana."
|
||||
|
||||
#: init.lua
|
||||
msgid "Obsessed with Obsidian"
|
||||
msgstr "Obsesionado con la Obsidiana"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine 50 obsidian."
|
||||
msgstr "Excavar 50 obsidianas."
|
||||
|
||||
#: init.lua
|
||||
msgid "Lava Miner"
|
||||
msgstr "Minero de Lava"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine any block while being very close to lava."
|
||||
msgstr "Excavar un bloque cerca de lava."
|
||||
|
||||
#: init.lua
|
||||
msgid "On The Way"
|
||||
msgstr "En Camino"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 100 rails."
|
||||
msgstr "Colocar 100 rieles."
|
||||
|
||||
#: init.lua
|
||||
msgid "First Day in the Woods"
|
||||
msgstr "Primer Día en el Bosque"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 6 tree blocks."
|
||||
msgstr "Cortar 6 árboles."
|
||||
|
||||
#: init.lua
|
||||
msgid "Lumberjack"
|
||||
msgstr "Leñador"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 36 tree blocks."
|
||||
msgstr "Cortar 36 árboles."
|
||||
|
||||
#: init.lua
|
||||
msgid "Semi-pro Lumberjack"
|
||||
msgstr "Leñador semi-profesional"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 216 tree blocks."
|
||||
msgstr "Cortar 216 árboles."
|
||||
|
||||
#: init.lua
|
||||
msgid "Professional Lumberjack"
|
||||
msgstr "Leñador profesional"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,296 tree blocks."
|
||||
msgstr "Cortar 1.296 árboles."
|
||||
|
||||
#: init.lua
|
||||
msgid "Junglebaby"
|
||||
msgstr "Bebé de la Selva"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 100 jungle tree blocks."
|
||||
msgstr "Cortar 100 árboles selváticos."
|
||||
|
||||
#: init.lua
|
||||
msgid "Jungleman"
|
||||
msgstr "Hombre de la Selva"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,000 jungle tree blocks."
|
||||
msgstr "Cortar 1.000 árboles selváticos."
|
||||
|
||||
#: init.lua
|
||||
msgid "First Mese Find"
|
||||
msgstr "Primer Encuentro de MESE"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first mese ore."
|
||||
msgstr "Excava tu primer mineral de MESE."
|
||||
|
||||
#: init.lua
|
||||
msgid "Mese Mastery"
|
||||
msgstr "Maestría de MESE"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine a mese block."
|
||||
msgstr "Excava tu primer bloque de MESE."
|
||||
|
||||
#: init.lua
|
||||
msgid "You’re a copper"
|
||||
msgstr "Eres un cobre"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,000 copper ores."
|
||||
msgstr "Excavar 1.000 minerales de cobre"
|
||||
|
||||
#: init.lua
|
||||
msgid "A Cat in a Pop-Tart?!"
|
||||
msgstr "¡¿Un Gato en un Pop-Tart?!"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine a nyan cat."
|
||||
msgstr "Excavar un Gato Nyan."
|
||||
|
||||
#: init.lua
|
||||
msgid "Mini Miner"
|
||||
msgstr "Mini Minero"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 100 stone blocks."
|
||||
msgstr "Excavar 100 bloques de piedra."
|
||||
|
||||
#: init.lua
|
||||
msgid "Hardened Miner"
|
||||
msgstr "Minero Curtido"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,000 stone blocks."
|
||||
msgstr "Excavar 1.000 bloques de piedra."
|
||||
|
||||
#: init.lua
|
||||
msgid "Master Miner"
|
||||
msgstr "Minero Maestro"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 10,000 stone blocks."
|
||||
msgstr "Excavar 10.000 bloques de piedra."
|
||||
|
||||
#: init.lua
|
||||
msgid "Marchand De Sable"
|
||||
msgstr "Marchand De Sable"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,000 sand."
|
||||
msgstr "Cavar 1.000 bloques de arena."
|
||||
|
||||
#: init.lua
|
||||
msgid "Crafter of Sticks"
|
||||
msgstr "Elaborador de Varitas"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 100 sticks."
|
||||
msgstr "Elaborar 100 varitas."
|
||||
|
||||
#: init.lua
|
||||
msgid "Jungle Discoverer"
|
||||
msgstr "Descubridor de Selva"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first jungle grass."
|
||||
msgstr "Cortar tu primer pasto de selva."
|
||||
|
||||
#: init.lua
|
||||
msgid "Grasslands Discoverer"
|
||||
msgstr "Descubridor de Praderas"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine some grass."
|
||||
msgstr "Cortar un poco de pasto."
|
||||
|
||||
#: init.lua
|
||||
msgid "Savannah Discoverer"
|
||||
msgstr "Descubridor de Savana"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine some dry grass."
|
||||
msgstr "Cortar un poco de pasto seco."
|
||||
|
||||
#: init.lua
|
||||
msgid "Desert Discoverer"
|
||||
msgstr "Descubridor del Desierto"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first cactus."
|
||||
msgstr "Cortar tu primer cácto."
|
||||
|
||||
#: init.lua
|
||||
msgid "Far Lands"
|
||||
msgstr "Tierras Lejanas"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first dry shrub."
|
||||
msgstr "Cortar tu primer arbusto seco"
|
||||
|
||||
#: init.lua
|
||||
msgid "Glacier Discoverer"
|
||||
msgstr "Descubridor del Glaciar"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first ice."
|
||||
msgstr "Romper tu primer bloque de hielo."
|
||||
|
||||
#: init.lua
|
||||
msgid "Very Simple Snow Man"
|
||||
msgstr "Muñeco de Nieve Muy Simple"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place two snow blocks."
|
||||
msgstr "Colocar dos bloques de nieve."
|
||||
|
||||
#: init.lua
|
||||
msgid "First Gold Find"
|
||||
msgstr "Primer Encuentro de Oro"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first gold ore."
|
||||
msgstr "Excavar tu primer pepita de oro."
|
||||
|
||||
#: init.lua
|
||||
msgid "Gold Rush"
|
||||
msgstr "Fiebre del Oro"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine 45 gold ores."
|
||||
msgstr "Excavar 45 pepitas de oro."
|
||||
|
||||
#: init.lua
|
||||
msgid "Wow, I am Diamonds!"
|
||||
msgstr "¡Guau, Soy Diamantes!"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first diamond ore."
|
||||
msgstr "Excava tu primer diamante."
|
||||
|
||||
#: init.lua
|
||||
msgid "Girl's Best Friend"
|
||||
msgstr "El Mejor Amigo de Las Mujeres"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine 18 diamond ores."
|
||||
msgstr "Excava 10 diamantes."
|
||||
|
||||
#: init.lua
|
||||
msgid "Hardest Block on Earth"
|
||||
msgstr "El Bloque Más Duro Sobre La Tierra"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft a diamond block."
|
||||
msgstr "Elaborar un bloque de diamante."
|
||||
|
||||
#: init.lua
|
||||
msgid "In the Dungeon"
|
||||
msgstr "En Las Mazmorras"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine a mossy cobblestone."
|
||||
msgstr "Excavar unos adoquines musgosos."
|
||||
|
||||
#: init.lua
|
||||
msgid "Smelter"
|
||||
msgstr "Fundidor"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 10 furnaces."
|
||||
msgstr "Elaborar 10 hornos."
|
||||
|
||||
#: init.lua
|
||||
msgid "Treasurer"
|
||||
msgstr "Tesorero"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 15 chests."
|
||||
msgstr "Elaborar 15 cofres."
|
||||
|
||||
#: init.lua
|
||||
msgid "Bankier"
|
||||
msgstr "Banquero"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 30 locked chests."
|
||||
msgstr "Elaborar 30 bloques cerrados."
|
||||
|
||||
#: init.lua
|
||||
msgid "Bricker"
|
||||
msgstr "Ladrillero"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 200 brick blocks."
|
||||
msgstr "Elaborar 200 bloques de ladrillo."
|
||||
|
||||
#: init.lua
|
||||
msgid "House of Obsidian"
|
||||
msgstr "Casa de Obsidiana"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 100 obsidian bricks."
|
||||
msgstr "Elaborar 100 ladrillos de obsidiana."
|
||||
|
||||
#: init.lua
|
||||
msgid "Build a Cave"
|
||||
msgstr "Construye Una Cueva"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 100 stone."
|
||||
msgstr "Coloca 100 piedras."
|
||||
|
||||
#: init.lua
|
||||
msgid "Long Ladder"
|
||||
msgstr "Escalerilla Larga"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 400 wooden ladders."
|
||||
msgstr "Coloca 400 escalerillas de madera."
|
||||
|
||||
#: init.lua
|
||||
msgid "Industrial Age"
|
||||
msgstr "Era Industrial"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 40 steel ladders."
|
||||
msgstr "Coloca 40 escalerillas de acero."
|
||||
|
||||
#: init.lua
|
||||
msgid "Yummy!"
|
||||
msgstr "¡Qué Rico!"
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 80 apples."
|
||||
msgstr "Come 80 manzanas."
|
||||
|
||||
# Intentionally marked as fuzzy.
|
||||
#: init.lua
|
||||
#, fuzzy
|
||||
msgid "Glasser"
|
||||
msgstr "Vidriero"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 14 vessels shelves."
|
||||
msgstr "Elabora 14 estanterías para botellas."
|
||||
|
||||
#: init.lua
|
||||
msgid "Farming Skills Acquired"
|
||||
msgstr "Habilidades de Granja Adquiridas"
|
||||
|
||||
#: init.lua
|
||||
msgid "Harvest a fully grown wheat plant."
|
||||
msgstr "Cosecha una plantas de trigo madura."
|
||||
|
||||
#: init.lua
|
||||
msgid "Field Worker"
|
||||
msgstr "Trabajador de Campo"
|
||||
|
||||
#: init.lua
|
||||
msgid "Harvest 25 fully grown wheat plants."
|
||||
msgstr "Cosecha 25 plantas de trigo maduras."
|
||||
|
||||
#: init.lua
|
||||
msgid "Aspiring Farmer"
|
||||
msgstr "Aspirante a Granjero"
|
||||
|
||||
#: init.lua
|
||||
msgid "Harvest 125 fully grown wheat plants."
|
||||
msgstr "Cosecha 125 plantas de trigo maduras."
|
||||
|
||||
#: init.lua
|
||||
msgid "Wheat Magnate"
|
||||
msgstr "Magnate del Maíz"
|
||||
|
||||
#: init.lua
|
||||
msgid "Harvest 625 fully grown wheat plants."
|
||||
msgstr "Cosecha 625 plantas de trigo maduras."
|
||||
|
||||
#: init.lua
|
||||
msgid "Baker"
|
||||
msgstr "Panadero"
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 10 loaves of bread."
|
||||
msgstr "Come 10 rebanadas de pan."
|
||||
|
||||
#: init.lua
|
||||
msgid "Wool Over Your Eyes"
|
||||
msgstr "Lana Sobre Tus Ojos"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 250 white wool."
|
||||
msgstr "Elabora 250 bloques de lana blanca."
|
||||
|
||||
#: init.lua
|
||||
msgid "Hotelier"
|
||||
msgstr "Hotelero"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 15 fancy beds."
|
||||
msgstr "Elabora 15 camas de lujo."
|
||||
|
||||
#: init.lua
|
||||
msgid "Filthy Rich"
|
||||
msgstr "Sucio Rico"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 24 gold block stairs."
|
||||
msgstr "Elabora 24 escaleras de bloque de oro."
|
||||
|
||||
#: init.lua
|
||||
msgid "Roses Are Red"
|
||||
msgstr "Las Rosas Son Rojas"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 400 red dyes."
|
||||
msgstr "Elabora 400 colorantes rojos."
|
||||
|
||||
#: init.lua
|
||||
msgid "Dandelions are Yellow"
|
||||
msgstr "Los Dientes de León Son Amarillos"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 400 yellow dyes."
|
||||
msgstr "Elabora 400 colorantes amarillos."
|
||||
|
||||
#: init.lua
|
||||
msgid "Geraniums are Blue"
|
||||
msgstr "Los Geranios Son Azules"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 400 blue dyes."
|
||||
msgstr "Elabora 400 colorantes azules."
|
||||
|
||||
#: init.lua
|
||||
msgid "White Color Stock"
|
||||
msgstr "Reserva de Color Blanco"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 100 white dyes."
|
||||
msgstr "Elabora 100 colorantes blancos."
|
||||
|
||||
#: init.lua
|
||||
msgid "Tasty Mushrooms"
|
||||
msgstr "Ricos Hongos"
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 3 brown mushrooms."
|
||||
msgstr "Come 3 hongos marrones."
|
||||
|
||||
#: init.lua
|
||||
msgid "Mushroom Lover"
|
||||
msgstr "Amante de los Hongos"
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 33 brown mushrooms."
|
||||
msgstr "Come 33 hongos marrones."
|
||||
|
||||
#: init.lua
|
||||
msgid "Underground Mushroom Farmer"
|
||||
msgstr "Granjero de Hongos Subterráneo"
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 333 brown mushrooms."
|
||||
msgstr "Come 333 hongos marrones."
|
||||
|
||||
# Nota: "Builder" y "Constructor" se traducen a "Constructor",
|
||||
# así que lo traduje de ésta manera para diferenciar.
|
||||
#: init.lua
|
||||
msgid "Builder"
|
||||
msgstr "Hacedor"
|
||||
|
||||
#: init.lua
|
||||
msgid "Constructor"
|
||||
msgstr "Constructor"
|
||||
|
||||
#: init.lua
|
||||
msgid "Architect"
|
||||
msgstr "Arquitecto"
|
||||
|
||||
#: init.lua
|
||||
msgid "Master Architect"
|
||||
msgstr "Maestro Arquitecto"
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "[c|clear|disable|enable]"
|
||||
msgstr "[c|clear|disable|enable]"
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "Show, clear, disable or enable your achievements"
|
||||
msgstr "Mostrar, limpiar, deshabilitar o habilitar tus logros"
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid ""
|
||||
"All your awards and statistics have been cleared. You can now start again."
|
||||
msgstr ""
|
||||
"Todos tus logros y estadísticas han sido borrados. Puedes iniciar nuevamente."
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "You have disabled your achievements."
|
||||
msgstr "Has deshabilitado tus logros."
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "You have enabled your achievements."
|
||||
msgstr "Has habilitado tus logros."
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "<achievement ID>"
|
||||
msgstr "<ID logro>"
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "Show details of an achievement"
|
||||
msgstr "Muestra los detalles de un logro"
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "Achievement not found."
|
||||
msgstr "Logro no encontrado."
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "<name>"
|
||||
msgstr "<nombre>"
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "Get the achievements statistics for the given player or yourself"
|
||||
msgstr "Obtener las estadísticas y logros del jugador dado"
|
|
@ -0,0 +1,818 @@
|
|||
# French translations for PACKAGE package.
|
||||
# Copyright (C) 2017 THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# xisd, 2017.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-02-21 05:50-0300\n"
|
||||
"PO-Revision-Date: 2017-02-21 05:50-0300\n"
|
||||
"Last-Translator: xisd\n"
|
||||
"Language-Team: French\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: api.lua
|
||||
msgid "Secret Achievement Unlocked:"
|
||||
msgstr "Réussite Secrète Débloquée :"
|
||||
|
||||
#: api.lua
|
||||
msgid "Achievement Unlocked:"
|
||||
msgstr "Réussite Débloquée :"
|
||||
|
||||
#: api.lua
|
||||
#, lua-format
|
||||
msgid "Secret Achievement Unlocked: %s"
|
||||
msgstr "Réussite Secrète Débloquée : %s"
|
||||
|
||||
#: api.lua
|
||||
#, lua-format
|
||||
msgid "Achievement Unlocked: %s"
|
||||
msgstr "Réussite Débloquée : %s"
|
||||
|
||||
#: api.lua
|
||||
msgid "Secret Achievement Unlocked!"
|
||||
msgstr "Réussite Secrète Débloquée !"
|
||||
|
||||
#: api.lua
|
||||
msgid "Achievement Unlocked!"
|
||||
msgstr "Réussite Débloquée !"
|
||||
|
||||
#: api.lua
|
||||
msgid "Error: No awards available."
|
||||
msgstr "Erreur : Aucun trophée disponible"
|
||||
|
||||
#: api.lua
|
||||
msgid "OK"
|
||||
msgstr "OK"
|
||||
|
||||
#: api.lua
|
||||
msgid "(Secret Award)"
|
||||
msgstr "(Trophée Secret)"
|
||||
|
||||
#: api.lua
|
||||
msgid "Unlock this award to find out what it is."
|
||||
msgstr "Débloque ce trophée pour découvrir ce que c'est."
|
||||
|
||||
#: api.lua
|
||||
#, lua-format
|
||||
msgid "%s (got)"
|
||||
msgstr "%s (obtenu)"
|
||||
|
||||
#: api.lua
|
||||
msgid "You've disabled awards. Type /awards enable to reenable."
|
||||
msgstr "Vous avez désactivé les trophées. Tapez '/awards enable' pour les réactiver."
|
||||
|
||||
#: api.lua
|
||||
msgid "You have not unlocked any awards."
|
||||
msgstr "Vous n'avez encore débloqué aucun trophée."
|
||||
|
||||
#: api.lua
|
||||
#, lua-format
|
||||
msgid "%s’s awards:"
|
||||
msgstr "Les trophées de %s :"
|
||||
|
||||
#: api.lua chat_commands.lua
|
||||
#, lua-format
|
||||
msgid "%s: %s"
|
||||
msgstr "%s : %s"
|
||||
|
||||
#: sfinv.lua unified_inventory.lua
|
||||
msgid "Awards"
|
||||
msgstr "Trophées"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 dug"
|
||||
msgstr "@1/@2 creusés"
|
||||
|
||||
#. Translators: @1 is count, @2 is description.
|
||||
#: triggers.lua
|
||||
msgid "Mine: @2"
|
||||
msgid_plural "Mine: @1×@2"
|
||||
msgstr[0] "Mine : @2"
|
||||
msgstr[1] "Mine : @1×@2"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Mine @1 block."
|
||||
msgid_plural "Mine @1 blocks."
|
||||
msgstr[0] "Creuse @1 bloc."
|
||||
msgstr[1] "Creuse @1 blocs."
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 placed"
|
||||
msgstr "@1/@2 placés"
|
||||
|
||||
#. Translators: @1 is count, @2 is description.
|
||||
#: triggers.lua
|
||||
msgid "Place: @2"
|
||||
msgid_plural "Place: @1×@2"
|
||||
msgstr[0] "Place : @2"
|
||||
msgstr[1] "Place : @1×@2"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Place a block."
|
||||
msgid_plural "Place @1 blocks."
|
||||
msgstr[0] "Place un bloc."
|
||||
msgstr[1] "Place @1 blocs."
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 eaten"
|
||||
msgstr "@1/@2 Mangés"
|
||||
|
||||
#. Translators: @1 is count, @2 is description.
|
||||
#: triggers.lua
|
||||
msgid "Eat: @2"
|
||||
msgid_plural "Eat: @1×@2"
|
||||
msgstr[0] "Mange : @2"
|
||||
msgstr[1] "Mange : @1×@2"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Eat an item."
|
||||
msgid_plural "Eat @1 items."
|
||||
msgstr[0] "Mange quelque chose."
|
||||
msgstr[1] "Mange @1 aliments."
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 deaths"
|
||||
msgstr "@1/@2 morts"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Die."
|
||||
msgid_plural "Die @1 times."
|
||||
msgstr[0] "Mort·e."
|
||||
msgstr[1] "Mort·e %d fois."
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 chat messages"
|
||||
msgstr "@1/@2 messages du chat"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Write something in chat."
|
||||
msgid_plural "Write @1 chat messages."
|
||||
msgstr[0] "Écrit quelque chose dans le chat."
|
||||
msgstr[1] "Écrit @1 messages dans le chat."
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 game joins"
|
||||
msgstr "@1/@2 connexions"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Join the game."
|
||||
msgid_plural "Join the game @1 times."
|
||||
msgstr[0] "Connecte toi au jeu."
|
||||
msgstr[1] "Connecte toi au jeu @1 fois."
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 crafted"
|
||||
msgstr "@1/@2 craftés"
|
||||
|
||||
#. Translators: @1 is count, @2 is description.
|
||||
#: triggers.lua
|
||||
msgid "Craft: @2"
|
||||
msgid_plural "Craft: @1×@2"
|
||||
msgstr[0] "Fabrique : @2"
|
||||
msgstr[1] "Fabrique : @1×@2"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Craft an item."
|
||||
msgid_plural "Craft @1 items."
|
||||
msgstr[0] "Confectionne un objet."
|
||||
msgstr[1] "Confectionne @1 objets."
|
||||
|
||||
#: init.lua
|
||||
msgid "Saint-Maclou"
|
||||
msgstr "Saint-Maclou"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 20 coal checkers."
|
||||
msgstr "Place 20 damiers de charbon."
|
||||
|
||||
#: init.lua
|
||||
msgid "Castorama"
|
||||
msgstr "Castorama"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 20 iron checkers."
|
||||
msgstr "Place 20 damiers de fer."
|
||||
|
||||
#: init.lua
|
||||
msgid "Sam the Trapper"
|
||||
msgstr "Sam le Trappeur"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 2 trap stones."
|
||||
msgstr "Place 2 pièges de pierre."
|
||||
|
||||
#: init.lua
|
||||
msgid "Backpacker"
|
||||
msgstr "Randonneu·r·se"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 4 large bags."
|
||||
msgstr "Confectionne 4 grands sacs"
|
||||
|
||||
#: init.lua
|
||||
msgid "Pyromaniac"
|
||||
msgstr "Pyromane"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 8 times flint and steel."
|
||||
msgstr "Fabrique 8 silex et aciers."
|
||||
|
||||
#: init.lua
|
||||
msgid "Firefighter"
|
||||
msgstr "Pompier"
|
||||
|
||||
#: init.lua
|
||||
msgid "Put out 1000 fires."
|
||||
msgstr "Éteint 1000 feux."
|
||||
|
||||
#: init.lua
|
||||
msgid "Light It Up"
|
||||
msgstr "Eclairé·e"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 100 torches."
|
||||
msgstr "Place 100 torches."
|
||||
|
||||
#: init.lua
|
||||
msgid "Well Lit"
|
||||
msgstr "Bien Éclairé"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 1,000 torches."
|
||||
msgstr "Place 1000 torches."
|
||||
|
||||
#: init.lua
|
||||
msgid "Really Well Lit"
|
||||
msgstr "Vraiment Bien Éclairé"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 10 mese lamps."
|
||||
msgstr "Fabrique 10 lampes de mese."
|
||||
|
||||
#: init.lua
|
||||
msgid "Outpost"
|
||||
msgstr "Poste Avancé"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 200 stone bricks."
|
||||
msgstr "Confectionne 200 briques de pierre."
|
||||
|
||||
#: init.lua
|
||||
msgid "Watchtower"
|
||||
msgstr "Tour de Garde"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 800 stone bricks."
|
||||
msgstr "Confectionne 800 briques de pierre."
|
||||
|
||||
#: init.lua
|
||||
msgid "Fortress"
|
||||
msgstr "Forteresse"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 3,200 stone bricks."
|
||||
msgstr "Confectionne 3200 briques de pierre."
|
||||
|
||||
#: init.lua
|
||||
msgid "Desert Dweller"
|
||||
msgstr "Habitant·e du Désert"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 400 desert stone bricks."
|
||||
msgstr "Confectionne 400 briques de pierre du désert."
|
||||
|
||||
#: init.lua
|
||||
msgid "Pharaoh"
|
||||
msgstr "Pharaon"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 100 sandstone bricks."
|
||||
msgstr "Confectionne 100 briques de roche de sable."
|
||||
|
||||
#: init.lua
|
||||
msgid "Little Library"
|
||||
msgstr "Petite Bibliothèque"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 7 bookshelves."
|
||||
msgstr "Fabrique 7 bibliothèques."
|
||||
|
||||
#: init.lua
|
||||
msgid "Lava and Water"
|
||||
msgstr "La Lave et l'Eau"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first obsidian."
|
||||
msgstr "Mine ton premier bloc d'obsidienne."
|
||||
|
||||
#: init.lua
|
||||
msgid "Obsessed with Obsidian"
|
||||
msgstr "Obsédé·e par l'obsidienne"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine 50 obsidian."
|
||||
msgstr "Mine 50 pierres d'obsidienne."
|
||||
|
||||
#: init.lua
|
||||
msgid "Lava Miner"
|
||||
msgstr "Mineu·r·se de lave"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine any block while being very close to lava."
|
||||
msgstr "Mine n'importe quel bloc à proximité de la lave."
|
||||
|
||||
#: init.lua
|
||||
msgid "On The Way"
|
||||
msgstr "Sur La Voie"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 100 rails."
|
||||
msgstr "Place 100 rails."
|
||||
|
||||
#: init.lua
|
||||
msgid "First Day in the Woods"
|
||||
msgstr "Premier Jour dans les Bois"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 6 tree blocks."
|
||||
msgstr "Creuse 6 blocs d'arbre."
|
||||
|
||||
#: init.lua
|
||||
msgid "Lumberjack"
|
||||
msgstr "Bûcheron·ne"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 36 tree blocks."
|
||||
msgstr "Creuse 36 blocs d'arbre."
|
||||
|
||||
#: init.lua
|
||||
msgid "Semi-pro Lumberjack"
|
||||
msgstr "Bûcheron.ne. Semi-Professionnel.le."
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 216 tree blocks."
|
||||
msgstr "Creuse 216 blocs d'arbre."
|
||||
|
||||
#: init.lua
|
||||
msgid "Professional Lumberjack"
|
||||
msgstr "Bûcheron·ne Professionnel·le"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,296 tree blocks."
|
||||
msgstr "Creuse 1296 blocs d'arbre."
|
||||
|
||||
#: init.lua
|
||||
msgid "Junglebaby"
|
||||
msgstr "Enfant de la Jungle"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 100 jungle tree blocks."
|
||||
msgstr "Creuse 100 blocs d'arbres de jungle."
|
||||
|
||||
#: init.lua
|
||||
msgid "Jungleman"
|
||||
msgstr "Personne de la Jungle"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,000 jungle tree blocks."
|
||||
msgstr "Creuse 1000 blocs d'arbre de jungle."
|
||||
|
||||
#: init.lua
|
||||
msgid "First Mese Find"
|
||||
msgstr "Première Pépite : Mese"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first mese ore."
|
||||
msgstr "Mine ton premier minerai de mese."
|
||||
|
||||
#: init.lua
|
||||
msgid "Mese Mastery"
|
||||
msgstr "Maîtrise de Mese"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine a mese block."
|
||||
msgstr "Mine un bloc de mese."
|
||||
|
||||
#: init.lua
|
||||
msgid "You’re a copper"
|
||||
msgstr "Faîtes Jouer les Cuivres"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,000 copper ores."
|
||||
msgstr "Creuse 1000 minerais de cuivre."
|
||||
|
||||
#: init.lua
|
||||
msgid "A Cat in a Pop-Tart?!"
|
||||
msgstr "Un Chat dans un Pop-Tart ?!"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine a nyan cat."
|
||||
msgstr "Mine un nyan cat."
|
||||
|
||||
#: init.lua
|
||||
msgid "Mini Miner"
|
||||
msgstr "Mini Mineu·r·se"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 100 stone blocks."
|
||||
msgstr "Creuse 100 blocs de pierre."
|
||||
|
||||
#: init.lua
|
||||
msgid "Hardened Miner"
|
||||
msgstr "Mineu·r·se Endurci·e"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,000 stone blocks."
|
||||
msgstr "Creuse 1000 blocs de pierre."
|
||||
|
||||
#: init.lua
|
||||
msgid "Master Miner"
|
||||
msgstr "Maître·sse Mineu·r·se"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 10,000 stone blocks."
|
||||
msgstr "Creuse 10000 blocs de pierre."
|
||||
|
||||
#: init.lua
|
||||
msgid "Marchand De Sable"
|
||||
msgstr "Marchand·e De Sable"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,000 sand."
|
||||
msgstr "Creuse 1000 blocs de sable."
|
||||
|
||||
#: init.lua
|
||||
msgid "Crafter of Sticks"
|
||||
msgstr "Fabriquant·e de Bâtons."
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 100 sticks."
|
||||
msgstr "Confectionne 100 bâtons."
|
||||
|
||||
#: init.lua
|
||||
msgid "Jungle Discoverer"
|
||||
msgstr "Explorat·eur·rice de la Jungle"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first jungle grass."
|
||||
msgstr "Ramasse ta première herbe de jungle."
|
||||
|
||||
#: init.lua
|
||||
msgid "Grasslands Discoverer"
|
||||
msgstr "Découvreu·r·se de prairies"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine some grass."
|
||||
msgstr "Ramasse de l'herbe."
|
||||
|
||||
#: init.lua
|
||||
msgid "Savannah Discoverer"
|
||||
msgstr "Explorat·eur·rice de la Savanne"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine some dry grass."
|
||||
msgstr "Ramasse de l'herbe sèche."
|
||||
|
||||
#: init.lua
|
||||
msgid "Desert Discoverer"
|
||||
msgstr "Expolrat·eur·rice du Désert."
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first cactus."
|
||||
msgstr "Mine ton premier catus."
|
||||
|
||||
#: init.lua
|
||||
msgid "Far Lands"
|
||||
msgstr "Terres Lointaines"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first dry shrub."
|
||||
msgstr "Coupe ton premier arbuste sec."
|
||||
|
||||
#: init.lua
|
||||
msgid "Glacier Discoverer"
|
||||
msgstr "Découvreu·r·se de glacier"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first ice."
|
||||
msgstr "Creuse ton premier bloc de glace."
|
||||
|
||||
#: init.lua
|
||||
msgid "Very Simple Snow Man"
|
||||
msgstr "Bonhomme de Neige Rudimentaire"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place two snow blocks."
|
||||
msgstr "Place deux blocs de neige."
|
||||
|
||||
#: init.lua
|
||||
msgid "First Gold Find"
|
||||
msgstr "Première Pépite : Or"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first gold ore."
|
||||
msgstr "Mine ton premier minerai d'or."
|
||||
|
||||
#: init.lua
|
||||
msgid "Gold Rush"
|
||||
msgstr "Ruée vers l'Or"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine 45 gold ores."
|
||||
msgstr "Mine 45 minerais d'or."
|
||||
|
||||
#: init.lua
|
||||
msgid "Wow, I am Diamonds!"
|
||||
msgstr "Wow, Je suis Diamants!"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first diamond ore."
|
||||
msgstr "Mine ton premier diamant."
|
||||
|
||||
#: init.lua
|
||||
#, fuzzy
|
||||
msgid "Girl's Best Friend"
|
||||
msgstr "Girl's Best Friend"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine 18 diamond ores."
|
||||
msgstr "Mine 18 diamants."
|
||||
|
||||
#: init.lua
|
||||
msgid "Hardest Block on Earth"
|
||||
msgstr "Le Bloc le Plus Dur du Monde"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft a diamond block."
|
||||
msgstr "Confectionne un bloc de diamant."
|
||||
|
||||
#: init.lua
|
||||
msgid "In the Dungeon"
|
||||
msgstr "Dans le Donjon"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine a mossy cobblestone."
|
||||
msgstr "Mine un bloc de pavés moussus."
|
||||
|
||||
#: init.lua
|
||||
msgid "Smelter"
|
||||
msgstr "Fondeu·r·se"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 10 furnaces."
|
||||
msgstr "Construis 10 fours."
|
||||
|
||||
#: init.lua
|
||||
msgid "Treasurer"
|
||||
msgstr "Trésori·er·ère"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 15 chests."
|
||||
msgstr "Fabrique 15 coffres."
|
||||
|
||||
#: init.lua
|
||||
msgid "Bankier"
|
||||
msgstr "Banqui·er·ère"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 30 locked chests."
|
||||
msgstr "Fabrique 30 coffres Verrouillés."
|
||||
|
||||
#: init.lua
|
||||
msgid "Bricker"
|
||||
msgstr "Briqueu·r·se"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 200 brick blocks."
|
||||
msgstr "Confectionne 200 blocs de brique."
|
||||
|
||||
#: init.lua
|
||||
msgid "House of Obsidian"
|
||||
msgstr "La Maison de L'Obsidienne"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 100 obsidian bricks."
|
||||
msgstr "Confectionne 100 briques d'obsidienne."
|
||||
|
||||
#: init.lua
|
||||
msgid "Build a Cave"
|
||||
msgstr "Construis une grotte"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 100 stone."
|
||||
msgstr "Place 100 pierres."
|
||||
|
||||
#: init.lua
|
||||
msgid "Long Ladder"
|
||||
msgstr "Longue Echelle"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 400 wooden ladders."
|
||||
msgstr "Place 400 échelles en bois."
|
||||
|
||||
#: init.lua
|
||||
msgid "Industrial Age"
|
||||
msgstr "Âge Industriel"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 40 steel ladders."
|
||||
msgstr "Place 40 échelles métalliques."
|
||||
|
||||
#: init.lua
|
||||
msgid "Yummy!"
|
||||
msgstr "Miam !"
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 80 apples."
|
||||
msgstr "Mange 80 pommes."
|
||||
|
||||
#: init.lua
|
||||
msgid "Glasser"
|
||||
msgstr "Verri·er·ère"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 14 vessels shelves."
|
||||
msgstr "Fabrique 14 vaisseliers."
|
||||
|
||||
#: init.lua
|
||||
msgid "Farming Skills Acquired"
|
||||
msgstr "Compétences Paysannes Acquises"
|
||||
|
||||
#: init.lua
|
||||
msgid "Harvest a fully grown wheat plant."
|
||||
msgstr "Récolte un plant de blé à maturité."
|
||||
|
||||
#: init.lua
|
||||
msgid "Field Worker"
|
||||
msgstr "Travailleu·r·se Agricole"
|
||||
|
||||
#: init.lua
|
||||
msgid "Harvest 25 fully grown wheat plants."
|
||||
msgstr "Récolte 25 plants de blé à maturité."
|
||||
|
||||
#: init.lua
|
||||
msgid "Aspiring Farmer"
|
||||
msgstr "Apprenti·e Fermi·er·ère"
|
||||
|
||||
#: init.lua
|
||||
msgid "Harvest 125 fully grown wheat plants."
|
||||
msgstr "Récolte 125 plants de blé à maturité."
|
||||
|
||||
#: init.lua
|
||||
msgid "Wheat Magnate"
|
||||
msgstr "Magnat·e du Blé"
|
||||
|
||||
#: init.lua
|
||||
msgid "Harvest 625 fully grown wheat plants."
|
||||
msgstr "Récolte 625 plants de blé à maturité."
|
||||
|
||||
#: init.lua
|
||||
msgid "Baker"
|
||||
msgstr "Boulang·er·ère"
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 10 loaves of bread."
|
||||
msgstr "Mange 10 miches de pain."
|
||||
|
||||
#: init.lua
|
||||
msgid "Wool Over Your Eyes"
|
||||
msgstr "De la Laines dans Tes Yeux"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 250 white wool."
|
||||
msgstr "Confectionne 250 blocs de laine blanche."
|
||||
|
||||
#: init.lua
|
||||
msgid "Hotelier"
|
||||
msgstr "Hoteli·er·ère"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 15 fancy beds."
|
||||
msgstr "Construis 15 lits chics."
|
||||
|
||||
#: init.lua
|
||||
msgid "Filthy Rich"
|
||||
msgstr "Richissime"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 24 gold block stairs."
|
||||
msgstr "Construis 24 escaliers en or."
|
||||
|
||||
#: init.lua
|
||||
msgid "Roses Are Red"
|
||||
msgstr "Les Roses Sont Rouges"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 400 red dyes."
|
||||
msgstr "Prépare 400 teintures rouges."
|
||||
|
||||
#: init.lua
|
||||
msgid "Dandelions are Yellow"
|
||||
msgstr "Les Pissenlits sont Jaunes."
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 400 yellow dyes."
|
||||
msgstr "Prépare 400 teintures jaunes."
|
||||
|
||||
#: init.lua
|
||||
msgid "Geraniums are Blue"
|
||||
msgstr "Les Geraniums Sont Bleus"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 400 blue dyes."
|
||||
msgstr "Prépare 400 teintures bleues."
|
||||
|
||||
#: init.lua
|
||||
msgid "White Color Stock"
|
||||
msgstr "Chaussettes Blanches"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 100 white dyes."
|
||||
msgstr "Prépare 100 teintures blanches."
|
||||
|
||||
#: init.lua
|
||||
msgid "Tasty Mushrooms"
|
||||
msgstr "Délicieux Champignons"
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 3 brown mushrooms."
|
||||
msgstr "Mange 3 champignons marrons."
|
||||
|
||||
#: init.lua
|
||||
msgid "Mushroom Lover"
|
||||
msgstr "Adorat·eur·rice de Champignons"
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 33 brown mushrooms."
|
||||
msgstr "Mange 33 champignons marrons."
|
||||
|
||||
#: init.lua
|
||||
msgid "Underground Mushroom Farmer"
|
||||
msgstr "Culture de Champignons en Cave"
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 333 brown mushrooms."
|
||||
msgstr "Mange 333 champignons marrons."
|
||||
|
||||
#: init.lua
|
||||
msgid "Builder"
|
||||
msgstr "Bâtisseu·r·se"
|
||||
|
||||
#: init.lua
|
||||
msgid "Constructor"
|
||||
msgstr "Construct·eur·rice"
|
||||
|
||||
#: init.lua
|
||||
msgid "Architect"
|
||||
msgstr "Architecte"
|
||||
|
||||
#: init.lua
|
||||
msgid "Master Architect"
|
||||
msgstr "Maître·sse Architecte"
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "[c|clear|disable|enable]"
|
||||
msgstr "[c|clear|disable|enable]"
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "Show, clear, disable or enable your achievements"
|
||||
msgstr "Affiche, réinitialise, désactive ou active vos réussites."
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "All your awards and statistics have been cleared. You can now start again."
|
||||
msgstr "Tous vos trophées et statistiques ont été réinitialisés. Vous pouvez recommencer à nouveau."
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "You have disabled your achievements."
|
||||
msgstr "Vous avez désactivé vos réussites."
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "You have enabled your achievements."
|
||||
msgstr "Vous avez activé vos réussites."
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "<achievement ID>"
|
||||
msgstr "<réussite ID>"
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "Show details of an achievement"
|
||||
msgstr "Afficher les détails d'une réussite"
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "Achievement not found."
|
||||
msgstr "Réussite non trouvée."
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "<name>"
|
||||
msgstr "<nom>"
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "Get the achievements statistics for the given player or yourself"
|
||||
msgstr "Obtenez les statistiques des réussites d'un joueur donné ou de vous-même"
|
|
@ -0,0 +1,819 @@
|
|||
# Portuguese translations for Awards package.
|
||||
# Copyright (C) 2018
|
||||
# This file is distributed under the same license as the Awards package.
|
||||
# FIRST AUTHOR borgesdossantosbruno@gmail.com, 2018.
|
||||
# BrunoMine, 2018
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-02-21 05:50-0300\n"
|
||||
"PO-Revision-Date: 2018-08-01 16:16-0300\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 2.0.6\n"
|
||||
"Last-Translator: BrunoMine\n"
|
||||
"Language: pt\n"
|
||||
|
||||
#: api.lua
|
||||
msgid "Secret Achievement Unlocked:"
|
||||
msgstr "Conquista Secreta Desbloqueada:"
|
||||
|
||||
#: api.lua
|
||||
msgid "Achievement Unlocked:"
|
||||
msgstr "Conquista Desbloqueada:"
|
||||
|
||||
#: api.lua
|
||||
#, lua-format
|
||||
msgid "Secret Achievement Unlocked: %s"
|
||||
msgstr "Conquista Secreta Desbloqueada: %s"
|
||||
|
||||
#: api.lua
|
||||
#, lua-format
|
||||
msgid "Achievement Unlocked: %s"
|
||||
msgstr "Conquista Desbloqueada: %s"
|
||||
|
||||
#: api.lua
|
||||
msgid "Secret Achievement Unlocked!"
|
||||
msgstr "Conquista Secreta Desbloqueada!"
|
||||
|
||||
#: api.lua
|
||||
msgid "Achievement Unlocked!"
|
||||
msgstr "Conquista Desbloqueada!"
|
||||
|
||||
#: api.lua
|
||||
msgid "Error: No awards available."
|
||||
msgstr "Erro: Nenhuma conquista encontrada."
|
||||
|
||||
#: api.lua
|
||||
msgid "OK"
|
||||
msgstr "OK"
|
||||
|
||||
#: api.lua
|
||||
msgid "(Secret Award)"
|
||||
msgstr "(Conquista Secreta)"
|
||||
|
||||
#: api.lua
|
||||
msgid "Unlock this award to find out what it is."
|
||||
msgstr "Desbloqueie essa conquista para descobrir o que significa."
|
||||
|
||||
#: api.lua
|
||||
#, lua-format
|
||||
msgid "%s (got)"
|
||||
msgstr "%s (obtido)"
|
||||
|
||||
#: api.lua
|
||||
msgid "You've disabled awards. Type /awards enable to reenable."
|
||||
msgstr "Desabilitaste as conquistas. Digite /awards enable para reabilitar."
|
||||
|
||||
#: api.lua
|
||||
msgid "You have not unlocked any awards."
|
||||
msgstr "Nenhuma conquista desbloqueada ainda."
|
||||
|
||||
#: api.lua
|
||||
#, lua-format
|
||||
msgid "%s’s awards:"
|
||||
msgstr "%s das conquistas:"
|
||||
|
||||
#: api.lua chat_commands.lua
|
||||
#, lua-format
|
||||
msgid "%s: %s"
|
||||
msgstr "%s: %s"
|
||||
|
||||
#: sfinv.lua unified_inventory.lua
|
||||
msgid "Awards"
|
||||
msgstr "Conquistas"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 dug"
|
||||
msgstr "@1 de @2 obtidos"
|
||||
|
||||
#. Translators: @1 is count, @2 is description.
|
||||
#: triggers.lua
|
||||
msgid "Mine: @2"
|
||||
msgid_plural "Mine: @1×@2"
|
||||
msgstr[0] "Cavar: @2"
|
||||
msgstr[1] "Minar: @1×@2"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Mine @1 block."
|
||||
msgid_plural "Mine @1 blocks."
|
||||
msgstr[0] "Cavar um bloco."
|
||||
msgstr[1] "Cavar @1 blocos."
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 placed"
|
||||
msgstr "@1 de @2 colocados"
|
||||
|
||||
#. Translators: @1 is count, @2 is description.
|
||||
#: triggers.lua
|
||||
msgid "Place: @2"
|
||||
msgid_plural "Place: @1×@2"
|
||||
msgstr[0] "Colocar: @2"
|
||||
msgstr[1] "Place: @1×@2"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Place a block."
|
||||
msgid_plural "Place @1 blocks."
|
||||
msgstr[0] "Colocar um bloco."
|
||||
msgstr[1] "Colocar @1 blocos."
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 eaten"
|
||||
msgstr "@1 de @2 consumidos"
|
||||
|
||||
#. Translators: @1 is count, @2 is description.
|
||||
#: triggers.lua
|
||||
msgid "Eat: @2"
|
||||
msgid_plural "Eat: @1×@2"
|
||||
msgstr[0] "Consumir: @2"
|
||||
msgstr[1] "Consumir: @1×@2"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Eat an item."
|
||||
msgid_plural "Eat @1 items."
|
||||
msgstr[0] "Consumir um item."
|
||||
msgstr[1] "Consumir @1 itens."
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 deaths"
|
||||
msgstr "@1 de @2 mortes"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Die."
|
||||
msgid_plural "Die @1 times."
|
||||
msgstr[0] "Morrer."
|
||||
msgstr[1] "Morrer @1 vezes."
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 chat messages"
|
||||
msgstr "@1 de @2"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Write something in chat."
|
||||
msgid_plural "Write @1 chat messages."
|
||||
msgstr[0] "Escrever algo no bate papo."
|
||||
msgstr[1] "Escrever @1 mensagens no bate papo."
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 game joins"
|
||||
msgstr "@1 de @2"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Join the game."
|
||||
msgid_plural "Join the game @1 times."
|
||||
msgstr[0] "Entre no jogo."
|
||||
msgstr[1] "Entre no jogo @1 vezes."
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 crafted"
|
||||
msgstr "@1 de @2 feitos"
|
||||
|
||||
#. Translators: @1 is count, @2 is description.
|
||||
#: triggers.lua
|
||||
msgid "Craft: @2"
|
||||
msgid_plural "Craft: @1×@2"
|
||||
msgstr[0] "Fazer @2"
|
||||
msgstr[1] "Montar @2 @1 vezes"
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Craft an item."
|
||||
msgid_plural "Craft @1 items."
|
||||
msgstr[0] "Fazer um item."
|
||||
msgstr[1] "Fazer @1 itens."
|
||||
|
||||
#: init.lua
|
||||
msgid "Saint-Maclou"
|
||||
msgstr "Saint-Maclou"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 20 coal checkers."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Castorama"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 20 iron checkers."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Sam the Trapper"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 2 trap stones."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Backpacker"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 4 large bags."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Pyromaniac"
|
||||
msgstr "Piromaníaco"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 8 times flint and steel."
|
||||
msgstr "Montar acendedor de Ferro e Pederneira 8 vezes."
|
||||
|
||||
#: init.lua
|
||||
msgid "Firefighter"
|
||||
msgstr "Bombeiro"
|
||||
|
||||
#: init.lua
|
||||
msgid "Put out 1000 fires."
|
||||
msgstr "Apagar fogo 1000 vezes."
|
||||
|
||||
#: init.lua
|
||||
msgid "Light It Up"
|
||||
msgstr "Ilumine Isso"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 100 torches."
|
||||
msgstr "Colocar 100 tochas."
|
||||
|
||||
#: init.lua
|
||||
msgid "Well Lit"
|
||||
msgstr "Bem Iluminado"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 1,000 torches."
|
||||
msgstr "Colocar 1.000 tochas."
|
||||
|
||||
#: init.lua
|
||||
msgid "Really Well Lit"
|
||||
msgstr "Realmente Bem Iluminado"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 10 mese lamps."
|
||||
msgstr "Fazer 10 lâmpadas de mese."
|
||||
|
||||
#: init.lua
|
||||
msgid "Outpost"
|
||||
msgstr "Posto Avançado"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 200 stone bricks."
|
||||
msgstr "Fazer 200 tijolos de pedra."
|
||||
|
||||
#: init.lua
|
||||
msgid "Watchtower"
|
||||
msgstr "Sentinela"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 800 stone bricks."
|
||||
msgstr "Fazer 800 tijolos de pedra."
|
||||
|
||||
#: init.lua
|
||||
msgid "Fortress"
|
||||
msgstr "Fortaleza"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 3,200 stone bricks."
|
||||
msgstr "Fazer 3.200 tijolos de pedra."
|
||||
|
||||
#: init.lua
|
||||
msgid "Desert Dweller"
|
||||
msgstr "Morador do Deserto"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 400 desert stone bricks."
|
||||
msgstr "Fazer 400 Tijolos de pedra do deserto."
|
||||
|
||||
#: init.lua
|
||||
msgid "Pharaoh"
|
||||
msgstr "Faraó"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 100 sandstone bricks."
|
||||
msgstr "Fazer 100 tijolos de arenito."
|
||||
|
||||
#: init.lua
|
||||
msgid "Little Library"
|
||||
msgstr "Pequena Biblioteca"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 7 bookshelves."
|
||||
msgstr "Fazer 7 estantes de livros."
|
||||
|
||||
#: init.lua
|
||||
msgid "Lava and Water"
|
||||
msgstr "Lava e Água"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first obsidian."
|
||||
msgstr "Cavar sua primeira obsidiana."
|
||||
|
||||
#: init.lua
|
||||
msgid "Obsessed with Obsidian"
|
||||
msgstr "Obcecado por Obsidiana"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine 50 obsidian."
|
||||
msgstr "Minerar 50 obsidianas."
|
||||
|
||||
#: init.lua
|
||||
msgid "Lava Miner"
|
||||
msgstr "Minerador de Lava"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine any block while being very close to lava."
|
||||
msgstr "Minerar qualquer bloco enquanto estiver mergulhado em lava."
|
||||
|
||||
#: init.lua
|
||||
msgid "On The Way"
|
||||
msgstr "No Caminho"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 100 rails."
|
||||
msgstr "Colocar 100 trilhos."
|
||||
|
||||
#: init.lua
|
||||
msgid "First Day in the Woods"
|
||||
msgstr "Primeiro dia na Floresta"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 6 tree blocks."
|
||||
msgstr "Cortar 6 blocos de árvore."
|
||||
|
||||
#: init.lua
|
||||
msgid "Lumberjack"
|
||||
msgstr "Lenhador"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 36 tree blocks."
|
||||
msgstr "Cortar 36 blocos de árvore."
|
||||
|
||||
#: init.lua
|
||||
msgid "Semi-pro Lumberjack"
|
||||
msgstr "Lenhador Semi-Profissional"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 216 tree blocks."
|
||||
msgstr "Cortar 216 blocos de árvore."
|
||||
|
||||
#: init.lua
|
||||
msgid "Professional Lumberjack"
|
||||
msgstr "Lenhador Profissional"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,296 tree blocks."
|
||||
msgstr "Cortar 1.296 blocos de árvore."
|
||||
|
||||
#: init.lua
|
||||
msgid "Junglebaby"
|
||||
msgstr "Bebê Selvagem"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 100 jungle tree blocks."
|
||||
msgstr "Cortar 100 blocos de árvore selvagem."
|
||||
|
||||
#: init.lua
|
||||
msgid "Jungleman"
|
||||
msgstr "Homem Selvagem"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,000 jungle tree blocks."
|
||||
msgstr "Cortar 1.000 blocos de árvore selvagem."
|
||||
|
||||
#: init.lua
|
||||
msgid "First Mese Find"
|
||||
msgstr "Primeiro Mese"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first mese ore."
|
||||
msgstr "Cavar seu primeiro mese."
|
||||
|
||||
#: init.lua
|
||||
msgid "Mese Mastery"
|
||||
msgstr "Mestre do Mese"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine a mese block."
|
||||
msgstr "Cavar um bloco de mese."
|
||||
|
||||
#: init.lua
|
||||
msgid "You’re a copper"
|
||||
msgstr "Sou um Cobre"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,000 copper ores."
|
||||
msgstr "Minerar 1.000 cobres."
|
||||
|
||||
#: init.lua
|
||||
msgid "A Cat in a Pop-Tart?!"
|
||||
msgstr "Um Gato em um Pop-Tart?!"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine a nyan cat."
|
||||
msgstr "Capturar um gato nyan."
|
||||
|
||||
#: init.lua
|
||||
msgid "Mini Miner"
|
||||
msgstr "Mini Minerador"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 100 stone blocks."
|
||||
msgstr "Minerar 100 blocos de pedra."
|
||||
|
||||
#: init.lua
|
||||
msgid "Hardened Miner"
|
||||
msgstr "Minerador Avançado"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,000 stone blocks."
|
||||
msgstr "Minerar 1.000 blocos de pedra."
|
||||
|
||||
#: init.lua
|
||||
msgid "Master Miner"
|
||||
msgstr "Minerador Mestre"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 10,000 stone blocks."
|
||||
msgstr "Minerar 10.000 blocos de pedra."
|
||||
|
||||
#: init.lua
|
||||
msgid "Marchand De Sable"
|
||||
msgstr "Vendedor de Areia"
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,000 sand."
|
||||
msgstr "Cavar 1.000 blocos de areia."
|
||||
|
||||
#: init.lua
|
||||
msgid "Crafter of Sticks"
|
||||
msgstr "Rachador de Lenha"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 100 sticks."
|
||||
msgstr "Lenhar 100 gravetos."
|
||||
|
||||
#: init.lua
|
||||
msgid "Jungle Discoverer"
|
||||
msgstr "Desbravador Selvagem"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first jungle grass."
|
||||
msgstr "Cortar seu primeiro mato selvagem."
|
||||
|
||||
#: init.lua
|
||||
msgid "Grasslands Discoverer"
|
||||
msgstr "Descobridor do Gramado"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine some grass."
|
||||
msgstr "Minerar algum mato"
|
||||
|
||||
#: init.lua
|
||||
msgid "Savannah Discoverer"
|
||||
msgstr "Descobridor da Savana"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine some dry grass."
|
||||
msgstr "Minerar algum mato seco."
|
||||
|
||||
#: init.lua
|
||||
msgid "Desert Discoverer"
|
||||
msgstr "Descobridor do Deserto"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first cactus."
|
||||
msgstr "Cortar seu primeiro cacto."
|
||||
|
||||
#: init.lua
|
||||
msgid "Far Lands"
|
||||
msgstr "Terras Distantes"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first dry shrub."
|
||||
msgstr "Minerar seu primeiro arbusto seco."
|
||||
|
||||
#: init.lua
|
||||
msgid "Glacier Discoverer"
|
||||
msgstr "Descobridor Glacial"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first ice."
|
||||
msgstr "Quebrar seu primeiro bloco de gelo."
|
||||
|
||||
#: init.lua
|
||||
msgid "Very Simple Snow Man"
|
||||
msgstr "Homem de Neve Muito Simples"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place two snow blocks."
|
||||
msgstr "Colocar 2 blocos de neve."
|
||||
|
||||
#: init.lua
|
||||
msgid "First Gold Find"
|
||||
msgstr "Achei Ouro"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first gold ore."
|
||||
msgstr "Minerar sua primeira de ouro."
|
||||
|
||||
#: init.lua
|
||||
msgid "Gold Rush"
|
||||
msgstr "Corriga do Ouro"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine 45 gold ores."
|
||||
msgstr "Minerar 45 de ouro."
|
||||
|
||||
#: init.lua
|
||||
msgid "Wow, I am Diamonds!"
|
||||
msgstr "Uau, Diamante!"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first diamond ore."
|
||||
msgstr "Minerar seu primeiro diamante."
|
||||
|
||||
#: init.lua
|
||||
msgid "Girl's Best Friend"
|
||||
msgstr "Melhor Amigo da Menina"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine 18 diamond ores."
|
||||
msgstr "Minere 18 diamantes."
|
||||
|
||||
#: init.lua
|
||||
msgid "Hardest Block on Earth"
|
||||
msgstr "O Bloco mais Duro da Terra"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft a diamond block."
|
||||
msgstr "Montar um bloco de diamante."
|
||||
|
||||
#: init.lua
|
||||
msgid "In the Dungeon"
|
||||
msgstr "Na Masmorra"
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine a mossy cobblestone."
|
||||
msgstr "Minerar um pedregulho com musgo."
|
||||
|
||||
#: init.lua
|
||||
msgid "Smelter"
|
||||
msgstr "Fundidor"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 10 furnaces."
|
||||
msgstr "Montar 10 fornos."
|
||||
|
||||
#: init.lua
|
||||
msgid "Treasurer"
|
||||
msgstr "Tesoureiro"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 15 chests."
|
||||
msgstr "Montar 10 baús."
|
||||
|
||||
#: init.lua
|
||||
msgid "Bankier"
|
||||
msgstr "Banqueiro"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 30 locked chests."
|
||||
msgstr "Montar 30 baús trancados."
|
||||
|
||||
#: init.lua
|
||||
msgid "Bricker"
|
||||
msgstr "Tijoleiro"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 200 brick blocks."
|
||||
msgstr "Fazer 200 blocos de tijolo."
|
||||
|
||||
#: init.lua
|
||||
msgid "House of Obsidian"
|
||||
msgstr "Casa de Obsidiana"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 100 obsidian bricks."
|
||||
msgstr "Montar 100 tijolos de obsidiana."
|
||||
|
||||
#: init.lua
|
||||
msgid "Build a Cave"
|
||||
msgstr "Montar uma Caverna"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 100 stone."
|
||||
msgstr "Colocar 100 pedras."
|
||||
|
||||
#: init.lua
|
||||
msgid "Long Ladder"
|
||||
msgstr "Longa Escadaria"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 400 wooden ladders."
|
||||
msgstr "Colocar 400 escadas de madeira."
|
||||
|
||||
#: init.lua
|
||||
msgid "Industrial Age"
|
||||
msgstr "Era Industrial"
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 40 steel ladders."
|
||||
msgstr "Colocar 40 escadas de ferro."
|
||||
|
||||
#: init.lua
|
||||
msgid "Yummy!"
|
||||
msgstr "Humm!"
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 80 apples."
|
||||
msgstr "Comer 80 maçãs."
|
||||
|
||||
#: init.lua
|
||||
msgid "Glasser"
|
||||
msgstr "Vidraceiro"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 14 vessels shelves."
|
||||
msgstr "Montar 14 estantes de frascos."
|
||||
|
||||
#: init.lua
|
||||
msgid "Farming Skills Acquired"
|
||||
msgstr "Conhecimento de Cultivo Adquirido"
|
||||
|
||||
#: init.lua
|
||||
msgid "Harvest a fully grown wheat plant."
|
||||
msgstr "Colher um trigo totalmente crescido."
|
||||
|
||||
#: init.lua
|
||||
msgid "Field Worker"
|
||||
msgstr "Trabalhador do Campo"
|
||||
|
||||
#: init.lua
|
||||
msgid "Harvest 25 fully grown wheat plants."
|
||||
msgstr "Colher 25 plantas trigos totalmente crescidos."
|
||||
|
||||
#: init.lua
|
||||
msgid "Aspiring Farmer"
|
||||
msgstr "Fazendeiro Aspirante"
|
||||
|
||||
#: init.lua
|
||||
msgid "Harvest 125 fully grown wheat plants."
|
||||
msgstr "Colher 125 plantas trigos totalmente crescidos."
|
||||
|
||||
#: init.lua
|
||||
msgid "Wheat Magnate"
|
||||
msgstr "Magnata do Trigo"
|
||||
|
||||
#: init.lua
|
||||
msgid "Harvest 625 fully grown wheat plants."
|
||||
msgstr "Colher 625 plantas trigos totalmente crescidos."
|
||||
|
||||
#: init.lua
|
||||
msgid "Baker"
|
||||
msgstr "Padeiro"
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 10 loaves of bread."
|
||||
msgstr "Comer 10 pães."
|
||||
|
||||
#: init.lua
|
||||
msgid "Wool Over Your Eyes"
|
||||
msgstr "Lã Sobre Meus Olhos"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 250 white wool."
|
||||
msgstr "Tecer 250 lãs branca."
|
||||
|
||||
#: init.lua
|
||||
msgid "Hotelier"
|
||||
msgstr "Hoteleiro"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 15 fancy beds."
|
||||
msgstr "Montar 15 camas chiques."
|
||||
|
||||
#: init.lua
|
||||
msgid "Filthy Rich"
|
||||
msgstr "Muito Rico"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 24 gold block stairs."
|
||||
msgstr "Montar 24 escadas de bloco de ouro."
|
||||
|
||||
#: init.lua
|
||||
msgid "Roses Are Red"
|
||||
msgstr "Rosas São Vermelhas"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 400 red dyes."
|
||||
msgstr "Fazer 400 tintas vermelhas."
|
||||
|
||||
#: init.lua
|
||||
msgid "Dandelions are Yellow"
|
||||
msgstr "Dentes-de-Leões são Amarelos"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 400 yellow dyes."
|
||||
msgstr "Fazer 400 tintas amarelas."
|
||||
|
||||
#: init.lua
|
||||
msgid "Geraniums are Blue"
|
||||
msgstr "Gerânios são Azuis"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 400 blue dyes."
|
||||
msgstr "Fazer 400 tintas azuis."
|
||||
|
||||
#: init.lua
|
||||
msgid "White Color Stock"
|
||||
msgstr "Estoque de Cor Branca"
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 100 white dyes."
|
||||
msgstr "Fazer 100 tintas brancas."
|
||||
|
||||
#: init.lua
|
||||
msgid "Tasty Mushrooms"
|
||||
msgstr "Cogumelos Deliciosos"
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 3 brown mushrooms."
|
||||
msgstr "Comer 3 cogumelos marrons."
|
||||
|
||||
#: init.lua
|
||||
msgid "Mushroom Lover"
|
||||
msgstr "Amante de Cogumelo"
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 33 brown mushrooms."
|
||||
msgstr "Comer 33 cogumelos marrons."
|
||||
|
||||
#: init.lua
|
||||
msgid "Underground Mushroom Farmer"
|
||||
msgstr "Fazendeiro Subterrâneo de Cogumelos"
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 333 brown mushrooms."
|
||||
msgstr "Comer 333 cogumelos marrons."
|
||||
|
||||
#: init.lua
|
||||
msgid "Builder"
|
||||
msgstr "Construtor"
|
||||
|
||||
#: init.lua
|
||||
msgid "Constructor"
|
||||
msgstr "Empreiteiro"
|
||||
|
||||
#: init.lua
|
||||
msgid "Architect"
|
||||
msgstr "Arquiteto"
|
||||
|
||||
#: init.lua
|
||||
msgid "Master Architect"
|
||||
msgstr "Arquiteto Mestre"
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "[c|clear|disable|enable]"
|
||||
msgstr "[c|clear|disable|enable]"
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "Show, clear, disable or enable your achievements"
|
||||
msgstr "Exibir, limpar, desabilitar ou habilitar suas conquistas"
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "All your awards and statistics have been cleared. You can now start again."
|
||||
msgstr "Todas as suas conquistas e estatísticas foram limpas. Agora podes iniciar novamente."
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "You have disabled your achievements."
|
||||
msgstr "Suas conquistas foram desabilitadas."
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "You have enabled your achievements."
|
||||
msgstr "Suas conquistas foram habilitadas."
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "<achievement ID>"
|
||||
msgstr "<ID da conquista>"
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "Show details of an achievement"
|
||||
msgstr "Mostra detalhes de uma conquista"
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "Achievement not found."
|
||||
msgstr "Conquista não encontrada."
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "<name>"
|
||||
msgstr "<jogador>"
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "Get the achievements statistics for the given player or yourself"
|
||||
msgstr "Ver as estatísticas de conquistas de um jogador ou suas próprias"
|
|
@ -0,0 +1,819 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-02-21 05:50-0300\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
||||
|
||||
#: api.lua
|
||||
msgid "Secret Achievement Unlocked:"
|
||||
msgstr ""
|
||||
|
||||
#: api.lua
|
||||
msgid "Achievement Unlocked:"
|
||||
msgstr ""
|
||||
|
||||
#: api.lua
|
||||
#, lua-format
|
||||
msgid "Secret Achievement Unlocked: %s"
|
||||
msgstr ""
|
||||
|
||||
#: api.lua
|
||||
#, lua-format
|
||||
msgid "Achievement Unlocked: %s"
|
||||
msgstr ""
|
||||
|
||||
#: api.lua
|
||||
msgid "Secret Achievement Unlocked!"
|
||||
msgstr ""
|
||||
|
||||
#: api.lua
|
||||
msgid "Achievement Unlocked!"
|
||||
msgstr ""
|
||||
|
||||
#: api.lua
|
||||
msgid "Error: No awards available."
|
||||
msgstr ""
|
||||
|
||||
#: api.lua
|
||||
msgid "OK"
|
||||
msgstr ""
|
||||
|
||||
#: api.lua
|
||||
msgid "(Secret Award)"
|
||||
msgstr ""
|
||||
|
||||
#: api.lua
|
||||
msgid "Unlock this award to find out what it is."
|
||||
msgstr ""
|
||||
|
||||
#: api.lua
|
||||
#, lua-format
|
||||
msgid "%s (got)"
|
||||
msgstr ""
|
||||
|
||||
#: api.lua
|
||||
msgid "You've disabled awards. Type /awards enable to reenable."
|
||||
msgstr ""
|
||||
|
||||
#: api.lua
|
||||
msgid "You have not unlocked any awards."
|
||||
msgstr ""
|
||||
|
||||
#: api.lua
|
||||
#, lua-format
|
||||
msgid "%s’s awards:"
|
||||
msgstr ""
|
||||
|
||||
#: api.lua chat_commands.lua
|
||||
#, lua-format
|
||||
msgid "%s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: sfinv.lua unified_inventory.lua
|
||||
msgid "Awards"
|
||||
msgstr ""
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 dug"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: @1 is count, @2 is description.
|
||||
#: triggers.lua
|
||||
msgid "Mine: @2"
|
||||
msgid_plural "Mine: @1×@2"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Mine @1 block."
|
||||
msgid_plural "Mine @1 blocks."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 placed"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: @1 is count, @2 is description.
|
||||
#: triggers.lua
|
||||
msgid "Place: @2"
|
||||
msgid_plural "Place: @1×@2"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Place a block."
|
||||
msgid_plural "Place @1 blocks."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 eaten"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: @1 is count, @2 is description.
|
||||
#: triggers.lua
|
||||
msgid "Eat: @2"
|
||||
msgid_plural "Eat: @1×@2"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Eat an item."
|
||||
msgid_plural "Eat @1 items."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 deaths"
|
||||
msgstr ""
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Die."
|
||||
msgid_plural "Die @1 times."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 chat messages"
|
||||
msgstr ""
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Write something in chat."
|
||||
msgid_plural "Write @1 chat messages."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 game joins"
|
||||
msgstr ""
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Join the game."
|
||||
msgid_plural "Join the game @1 times."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: triggers.lua
|
||||
msgid "@1/@2 crafted"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: @1 is count, @2 is description.
|
||||
#: triggers.lua
|
||||
msgid "Craft: @2"
|
||||
msgid_plural "Craft: @1×@2"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: triggers.lua
|
||||
msgid "Craft an item."
|
||||
msgid_plural "Craft @1 items."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Saint-Maclou"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 20 coal checkers."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Castorama"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 20 iron checkers."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Sam the Trapper"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 2 trap stones."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Backpacker"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 4 large bags."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Pyromaniac"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 8 times flint and steel."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Firefighter"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Put out 1000 fires."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Light It Up"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 100 torches."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Well Lit"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 1,000 torches."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Really Well Lit"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 10 mese lamps."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Outpost"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 200 stone bricks."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Watchtower"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 800 stone bricks."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Fortress"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 3,200 stone bricks."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Desert Dweller"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 400 desert stone bricks."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Pharaoh"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 100 sandstone bricks."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Little Library"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 7 bookshelves."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Lava and Water"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first obsidian."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Obsessed with Obsidian"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine 50 obsidian."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Lava Miner"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine any block while being very close to lava."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "On The Way"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 100 rails."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "First Day in the Woods"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 6 tree blocks."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Lumberjack"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 36 tree blocks."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Semi-pro Lumberjack"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 216 tree blocks."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Professional Lumberjack"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,296 tree blocks."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Junglebaby"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 100 jungle tree blocks."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Jungleman"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,000 jungle tree blocks."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "First Mese Find"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first mese ore."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Mese Mastery"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine a mese block."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "You’re a copper"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,000 copper ores."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "A Cat in a Pop-Tart?!"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine a nyan cat."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Mini Miner"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 100 stone blocks."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Hardened Miner"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,000 stone blocks."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Master Miner"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 10,000 stone blocks."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Marchand De Sable"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Dig 1,000 sand."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Crafter of Sticks"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 100 sticks."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Jungle Discoverer"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first jungle grass."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Grasslands Discoverer"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine some grass."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Savannah Discoverer"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine some dry grass."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Desert Discoverer"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first cactus."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Far Lands"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first dry shrub."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Glacier Discoverer"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first ice."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Very Simple Snow Man"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Place two snow blocks."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "First Gold Find"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first gold ore."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Gold Rush"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine 45 gold ores."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Wow, I am Diamonds!"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine your first diamond ore."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Girl's Best Friend"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine 18 diamond ores."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Hardest Block on Earth"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft a diamond block."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "In the Dungeon"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Mine a mossy cobblestone."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Smelter"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 10 furnaces."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Treasurer"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 15 chests."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Bankier"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 30 locked chests."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Bricker"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 200 brick blocks."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "House of Obsidian"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 100 obsidian bricks."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Build a Cave"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 100 stone."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Long Ladder"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 400 wooden ladders."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Industrial Age"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Place 40 steel ladders."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Yummy!"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 80 apples."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Glasser"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 14 vessels shelves."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Farming Skills Acquired"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Harvest a fully grown wheat plant."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Field Worker"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Harvest 25 fully grown wheat plants."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Aspiring Farmer"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Harvest 125 fully grown wheat plants."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Wheat Magnate"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Harvest 625 fully grown wheat plants."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Baker"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 10 loaves of bread."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Wool Over Your Eyes"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 250 white wool."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Hotelier"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 15 fancy beds."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Filthy Rich"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 24 gold block stairs."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Roses Are Red"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 400 red dyes."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Dandelions are Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 400 yellow dyes."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Geraniums are Blue"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 400 blue dyes."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "White Color Stock"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Craft 100 white dyes."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Tasty Mushrooms"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 3 brown mushrooms."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Mushroom Lover"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 33 brown mushrooms."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Underground Mushroom Farmer"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Eat 333 brown mushrooms."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Builder"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Constructor"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Architect"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua
|
||||
msgid "Master Architect"
|
||||
msgstr ""
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "[c|clear|disable|enable]"
|
||||
msgstr ""
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "Show, clear, disable or enable your achievements"
|
||||
msgstr ""
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid ""
|
||||
"All your awards and statistics have been cleared. You can now start again."
|
||||
msgstr ""
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "You have disabled your achievements."
|
||||
msgstr ""
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "You have enabled your achievements."
|
||||
msgstr ""
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "<achievement ID>"
|
||||
msgstr ""
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "Show details of an achievement"
|
||||
msgstr ""
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "Achievement not found."
|
||||
msgstr ""
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "<name>"
|
||||
msgstr ""
|
||||
|
||||
#: chat_commands.lua
|
||||
msgid "Get the achievements statistics for the given player or yourself"
|
||||
msgstr ""
|
|
@ -0,0 +1,8 @@
|
|||
name = awards
|
||||
title = Awards
|
||||
author = rubenwardy
|
||||
description = Adds awards to Minetest, and an API to register new ones.
|
||||
optional_depends = intllib,sfinv,unified_inventory,default,stairs,farming,dye,beds,wool,vessels,moreblocks,fire,flowers,nyancat
|
||||
license = MIT
|
||||
forum = https://forum.minetest.net/viewtopic.php?t=4870
|
||||
version = 3.0.0
|
|
@ -1,55 +1,328 @@
|
|||
Awards
|
||||
------
|
||||
# Awards
|
||||
|
||||
by Andrew "Rubenwardy" Ward, GPL 3.0 or later.
|
||||
Adds awards/achievements to Minetest (plus a very good API).
|
||||
|
||||
This mod adds achievements to Minetest.
|
||||
by [rubenwardy](https://rubenwardy.com), licensed under MIT.
|
||||
With thanks to Wuzzy, kaeza, and MrIbby.
|
||||
|
||||
Majority of awards are back ported from Calinou's
|
||||
old fork in Carbone, under same license.
|
||||
Majority of awards are back ported from Calinou's old fork in Carbone, under same license.
|
||||
|
||||
|
||||
Code Reference
|
||||
--------------
|
||||
# Introduction
|
||||
|
||||
The API
|
||||
=======
|
||||
* awards.register_achievement(name,data_table)
|
||||
* name
|
||||
* desciption
|
||||
* sound [optional]
|
||||
* image [optional]
|
||||
* trigger [optional] [table]
|
||||
* type - "dig", "place", "death", "chat" or "join"
|
||||
* (for dig/place type) node - the nodes name
|
||||
* (for all types) target - how many to dig / place
|
||||
* secret [optional] - if true, then player needs to unlock to find out what it is.
|
||||
* awards.give_achievement(name,award)
|
||||
* -- gives an award to a player
|
||||
* awards.register_onDig(func(player,data))
|
||||
* -- return award name or null
|
||||
* awards.register_onPlace(func(player,data))
|
||||
* -- return award name or null
|
||||
* awards.register_onDeath(func(player,data))
|
||||
* -- return award name or null
|
||||
* awards.register_onChat(func(player,data))
|
||||
* -- return award name or null
|
||||
* awards.register_onJoin(func(player,data))
|
||||
* -- return award name or null
|
||||
## Awards and Triggers
|
||||
|
||||
An award is a single unlockable unit, registered like so:
|
||||
|
||||
```lua
|
||||
awards.register_award("mymod:award", {
|
||||
description = "My Example Award",
|
||||
})
|
||||
```
|
||||
|
||||
Awards are unlocked either using `awards.unlock()` or by a trigger being
|
||||
fullfilled. A trigger is a condition which unlocks an award. Triggers are
|
||||
registered at the same time as an award is registered:
|
||||
|
||||
```lua
|
||||
awards.register_award("mymod:award", {
|
||||
description = "My Example Award",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "default:stone",
|
||||
target = 10,
|
||||
},
|
||||
})
|
||||
```
|
||||
|
||||
The above trigger type is an example of a counted_key trigger:
|
||||
rather than a single counter there's a counter per key - in this
|
||||
case the key is the value of the `node` field.
|
||||
|
||||
If you leave out the key in a `counted_key` trigger, then the total will be used
|
||||
instead. For example, here is an award which unlocks after you've placed 10
|
||||
nodes of any type:
|
||||
|
||||
```lua
|
||||
awards.register_award("mymod:award", {
|
||||
description = "Place 10 nodes!",
|
||||
trigger = {
|
||||
type = "place",
|
||||
target = 10,
|
||||
},
|
||||
})
|
||||
```
|
||||
|
||||
You can also register an *Unlock Function*, which can return the name of an
|
||||
award to unlock it:
|
||||
|
||||
```lua
|
||||
awards.register_award("mymod:award", {
|
||||
title = "Lava Miner",
|
||||
description = "Mine any block while being very close to lava.",
|
||||
})
|
||||
|
||||
awards.register_on_dig(function(player, data)
|
||||
local pos = player:get_pos()
|
||||
if pos and (minetest.find_node_near(pos, 1, "default:lava_source") or
|
||||
minetest.find_node_near(pos, 1, "default:lava_flowing")) then
|
||||
return "mymod:award"
|
||||
end
|
||||
return nil
|
||||
end)
|
||||
```
|
||||
|
||||
The above is a bad example as you don't actually need the stats data given.
|
||||
It would be better to register a `dignode` callback and call `awards.unlock()`
|
||||
if the condition is met.
|
||||
|
||||
## Trigger Types
|
||||
|
||||
The trigger type is used to determine which event will cause the trigger will be
|
||||
fulfilled. The awards mod comes with a number of predefined types, documented
|
||||
in [Builtin Trigger Types](#builtin-trigger-types).
|
||||
|
||||
Trigger types are registered like so:
|
||||
|
||||
```lua
|
||||
awards.register_trigger("chat", {
|
||||
type = "counted",
|
||||
progress = "@1/@2 chat messages",
|
||||
auto_description = { "Send a chat message", "Chat @1 times" },
|
||||
})
|
||||
|
||||
minetest.register_on_chat_message(function(name, message)
|
||||
local player = minetest.get_player_by_name(name)
|
||||
if not player or string.find(message, "/") then
|
||||
return
|
||||
end
|
||||
awards.notify_chat(player)
|
||||
end)
|
||||
```
|
||||
|
||||
A trigger type has a type as well, which determines how the data is stored and
|
||||
also how the trigger is fulfilled.
|
||||
|
||||
**Trigger Type Types:**
|
||||
|
||||
* **custom** requires you handle the calling of awards.unlock() yourself. You also
|
||||
need to implement on_register() yourself. You'll also probably want to implement
|
||||
`on_register()` to catch awards registered with your trigger type.
|
||||
* **counted** stores a single counter for each player which is incremented by calling
|
||||
`trigger:notify(player)`. Good for homogenous actions like number of chat messages,
|
||||
joins, and the like.
|
||||
* **counted_key** stores a table of counters each indexed by a key. There is also
|
||||
a total field (`__total`) which stores the sum of all counters. A counter is
|
||||
incremented by calling `trigger:notify(player, key)`. This is good for things like
|
||||
placing nodes or crafting items, where the key will be the item or node name.
|
||||
If `key` is an item, then you should also add `key_is_item = true` to the
|
||||
trigger type definition.
|
||||
|
||||
As said, you could use a custom trigger if none of the other ones match your needs.
|
||||
Here's an example.
|
||||
|
||||
```lua
|
||||
awards.register_trigger("foo", {
|
||||
type = "custom",
|
||||
progress = "@1/@2 foos",
|
||||
auto_description = { "Do a foo", "Foo @1 times" },
|
||||
|
||||
on_register = function(self, award)
|
||||
print(award.name .. " was registered with foo trigger type")
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_on_foo(function()
|
||||
for _, trigger in pairs(awards.on.foo) do
|
||||
-- trigger is either a trigger tables or
|
||||
-- or an unlock function.
|
||||
|
||||
-- some complex logic
|
||||
if condition then
|
||||
awards.unlock(trigger)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
```
|
||||
|
||||
## Award Difficulty
|
||||
|
||||
Difficulty is used to determine how awards are sorted in awards lists.
|
||||
|
||||
If the award trigger is counted, ie: the trigger requires a `target` property,
|
||||
then the difficulty multipler is timesd by `target` to get the overall difficulty.
|
||||
If the award isn't a counted type then the difficulty multiplier is used as the
|
||||
overal difficulty. Award difficulty affects how awards are sorted in a list -
|
||||
more difficult awards are further down the list.
|
||||
|
||||
In real terms, `difficulty` is a relative difficulty to do one unit of the trigger
|
||||
if its counted, otherwise it's the relative difficulty of completely doing the
|
||||
award (if not-counted). For the `dig` trigger type, 1 unit would be 1 node dug.
|
||||
|
||||
|
||||
Player Data
|
||||
===========
|
||||
Actual code used to calculate award difficulty:
|
||||
|
||||
A list of data referenced/hashed by the player's name.
|
||||
* player name
|
||||
* name [string]
|
||||
* count [table] - dig counter
|
||||
* modname [table]
|
||||
* itemname [int]
|
||||
* place [table] - place counter
|
||||
* modname [table]
|
||||
* itemname [int]
|
||||
* deaths
|
||||
* chats
|
||||
* joins
|
||||
```lua
|
||||
local difficulty = def.difficulty or 1
|
||||
if def.trigger and def.trigger.target then
|
||||
difficulty = difficulty * def.trigger.target
|
||||
end
|
||||
```
|
||||
|
||||
|
||||
# API
|
||||
|
||||
## Awards
|
||||
|
||||
* `awards.register_award(name, def)`, the def table has the following fields:
|
||||
* `title` - title of the award (defaults to name)
|
||||
* `description` - longer description of the award, displayed in Awards tab
|
||||
* `difficulty` - see [Award Difficulty](#award-difficulty).
|
||||
* `requires` - list of awards that need to be unlocked before this one
|
||||
is visible.
|
||||
* `prizes` - list of items to give when you earn the award
|
||||
* `secret` - boolean if this award is secret (i.e. showed on awards list)
|
||||
* `sound` - `SimpleSoundSpec` table to play on unlock.
|
||||
`false` to disable unlock sound.
|
||||
* `icon` - the icon image. Defaults to `awards_unknown.png`.
|
||||
* `hud_background` - the background image used in the HUD to contain the text and icon.
|
||||
Defaults to `awards_bg_default.png`.
|
||||
* `trigger` - trigger definition, see [Builtin Trigger Types](#builtin-trigger-types).
|
||||
* `on_unlock(name, def)` - callback on unlock.
|
||||
* `awards.registered_awards` - table of award name to definition.
|
||||
* `awards.register_on_unlock(func(name, def))`
|
||||
* `name` is the player name
|
||||
* `def` is the award def.
|
||||
* return true to cancel HUD from appearing.
|
||||
* `awards.unlock(player_name, award_name)`
|
||||
* gives an award to a player
|
||||
* `awards.get_award_states(player_name)`
|
||||
* Returns list of tables, sorted by `score`, each having the fields:
|
||||
|
||||
```lua
|
||||
{
|
||||
name = "mymod:awardname",
|
||||
def = {}, -- Award definition
|
||||
unlocked = true, -- Whether award has been unlocked
|
||||
started = true, -- Whether any progress has been made
|
||||
score = 0, -- Score used in sorting
|
||||
|
||||
-- Either a table or nil
|
||||
-- Will be nil if progress is indeterminable or
|
||||
-- if the award is unlocked
|
||||
progress = {
|
||||
current = 5,
|
||||
target = 10,
|
||||
label = "label", -- Label to show over progress bar
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Triggers
|
||||
|
||||
* `awards.register_trigger(name, def)`, the def table has the following fields:
|
||||
* `type` - see trigger type types in [Trigger Types](#trigger-types).
|
||||
* `progress` - used to format progress, defaults to "%1/%2".
|
||||
* `auto_description` - a table of two elements. Each element is a format string. Element 1 is singular, element 2 is plural. Used for the award description (not title) if none is given.
|
||||
* `on_register(self, award_def)` - called when an award registers with this type.
|
||||
* "counted_key" only:
|
||||
* `auto_description_total` - Used if the trigger is for the total.
|
||||
* `get_key(self, def)` - get key for particular award, return nil for a total.
|
||||
* `key_is_item` - true if the key is an item name. On notify(),
|
||||
any watched groups will also be notified as `group:groupname` keys.
|
||||
* `awards.registered_triggers` - table of trigger name to definition.
|
||||
|
||||
## Builtin Trigger Types
|
||||
|
||||
Callbacks (register a function to be run)
|
||||
|
||||
* dig type: Dig a node.
|
||||
* node: the dug node type. If nil, all dug nodes are counted
|
||||
* place type: Place a node.
|
||||
* node: the placed node type. If nil, all placed nodes are counted
|
||||
* craft type: Craft something.
|
||||
* item: the crafted item type. If nil, all crafted items are counted
|
||||
* death type: Die.
|
||||
* reason: the death reason, one of the types in PlayerHPChangeReason (see lua_api.txt)
|
||||
or nil for total deaths.
|
||||
* chat type: Write a chat message.
|
||||
* join type: Join the server.
|
||||
* eat type: Eat an item.
|
||||
* item: the eaten item type. If nil, all eaten items are counted
|
||||
|
||||
(for all types) target - how many times to dig/place/craft/etc.
|
||||
|
||||
Each type has a register function like so:
|
||||
|
||||
* awards.register_on_TRIGGERTYPE(func(player, data))
|
||||
* data is the player stats data
|
||||
* return award name or null
|
||||
|
||||
### dig
|
||||
|
||||
```lua
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "default:dirt", -- item, alias, or group
|
||||
target = 50,
|
||||
}
|
||||
```
|
||||
|
||||
### place
|
||||
|
||||
```lua
|
||||
trigger = {
|
||||
type = "place",
|
||||
node = "default:dirt", -- item, alias, or group
|
||||
target = 50,
|
||||
}
|
||||
```
|
||||
|
||||
### craft
|
||||
|
||||
```lua
|
||||
trigger = {
|
||||
type = "craft",
|
||||
item = "default:dirt", -- item, alias, or group
|
||||
target = 50,
|
||||
}
|
||||
```
|
||||
|
||||
### death
|
||||
|
||||
```lua
|
||||
trigger = {
|
||||
type = "death",
|
||||
reason = "fall",
|
||||
target = 5,
|
||||
}
|
||||
```
|
||||
|
||||
### chat
|
||||
|
||||
```lua
|
||||
trigger = {
|
||||
type = "chat",
|
||||
target = 100,
|
||||
}
|
||||
```
|
||||
|
||||
### join
|
||||
|
||||
```lua
|
||||
trigger = {
|
||||
type = "join",
|
||||
target = 100,
|
||||
}
|
||||
```
|
||||
|
||||
### eat
|
||||
|
||||
```lua
|
||||
trigger = {
|
||||
type = "eat",
|
||||
item = "default:apple",
|
||||
target = 100,
|
||||
}
|
||||
```
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 62 KiB |
|
@ -0,0 +1,2 @@
|
|||
# Add default achievements from the awards mod
|
||||
awards.add_defaults (Add Default Achievements) bool true
|
Binary file not shown.
|
@ -0,0 +1,252 @@
|
|||
-- Copyright (c) 2013-18 rubenwardy. MIT.
|
||||
|
||||
local S = awards.gettext
|
||||
|
||||
function awards.register_award(name, def)
|
||||
def.name = name
|
||||
|
||||
-- Add Triggers
|
||||
if def.trigger and def.trigger.type then
|
||||
local tdef = awards.registered_triggers[def.trigger.type]
|
||||
assert(tdef, "Trigger not found: " .. def.trigger.type)
|
||||
tdef:on_register(def)
|
||||
end
|
||||
|
||||
function def:can_unlock(data)
|
||||
if not self.requires then
|
||||
return true
|
||||
end
|
||||
|
||||
for i=1, #self.requires do
|
||||
if not data.unlocked[self.requires[i]] then
|
||||
return false
|
||||
end
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
-- Add Award
|
||||
awards.registered_awards[name] = def
|
||||
|
||||
local tdef = awards.registered_awards[name]
|
||||
if def.description == nil and tdef.getDefaultDescription then
|
||||
def.description = tdef:getDefaultDescription()
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- This function is called whenever a target condition is met.
|
||||
-- It checks if a player already has that award, and if they do not,
|
||||
-- it gives it to them
|
||||
----------------------------------------------
|
||||
--awards.unlock(name, award)
|
||||
-- name - the name of the player
|
||||
-- award - the name of the award to give
|
||||
function awards.unlock(name, award)
|
||||
-- Ensure the player is online.
|
||||
if not minetest.get_player_by_name(name) then
|
||||
return
|
||||
end
|
||||
|
||||
-- Access Player Data
|
||||
local data = awards.player(name)
|
||||
local awdef = awards.registered_awards[award]
|
||||
assert(awdef, "Unable to unlock an award which doesn't exist!")
|
||||
|
||||
if data.disabled or
|
||||
(data.unlocked[award] and data.unlocked[award] == award) then
|
||||
return
|
||||
end
|
||||
|
||||
if not awdef:can_unlock(data) then
|
||||
minetest.log("warning", "can_unlock returned false in unlock of " ..
|
||||
award .. " for " .. name)
|
||||
return
|
||||
end
|
||||
|
||||
-- Unlock Award
|
||||
minetest.log("action", name.." has unlocked award "..award)
|
||||
data.unlocked[award] = award
|
||||
awards.save()
|
||||
|
||||
-- Give Prizes
|
||||
if awdef and awdef.prizes then
|
||||
for i = 1, #awdef.prizes do
|
||||
local itemstack = ItemStack(awdef.prizes[i])
|
||||
if not itemstack:is_empty() then
|
||||
local receiverref = minetest.get_player_by_name(name)
|
||||
if receiverref then
|
||||
receiverref:get_inventory():add_item("main", itemstack)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Run callbacks
|
||||
if awdef.on_unlock and awdef.on_unlock(name, awdef) then
|
||||
return
|
||||
end
|
||||
for _, callback in pairs(awards.on_unlock) do
|
||||
if callback(name, awdef) then
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
-- Get Notification Settings
|
||||
local title = awdef.title or award
|
||||
local desc = awdef.description or ""
|
||||
local background = awdef.hud_background or awdef.background or "awards_bg_default.png"
|
||||
local icon = (awdef.icon or "awards_unknown.png") .. "^[resize:32x32"
|
||||
local sound = awdef.sound
|
||||
if sound == nil then
|
||||
-- Explicit check for nil because sound could be `false` to disable it
|
||||
sound = {name="awards_got_generic", gain=0.25}
|
||||
end
|
||||
|
||||
-- Do Notification
|
||||
if sound then
|
||||
-- Enforce sound delay to prevent sound spamming
|
||||
local lastsound = data.lastsound
|
||||
if lastsound == nil or os.difftime(os.time(), lastsound) >= 1 then
|
||||
minetest.sound_play(sound, {to_player=name})
|
||||
data.lastsound = os.time()
|
||||
end
|
||||
end
|
||||
|
||||
if awards.show_mode == "chat" then
|
||||
local chat_announce
|
||||
if awdef.secret then
|
||||
chat_announce = S("Secret Award Unlocked: %s")
|
||||
else
|
||||
chat_announce = S("Award Unlocked: %s")
|
||||
end
|
||||
-- use the chat console to send it
|
||||
minetest.chat_send_player(name, string.format(chat_announce, title))
|
||||
if desc~="" then
|
||||
minetest.chat_send_player(name, desc)
|
||||
end
|
||||
else
|
||||
local player = minetest.get_player_by_name(name)
|
||||
local one = player:hud_add({
|
||||
hud_elem_type = "image",
|
||||
name = "award_bg",
|
||||
scale = {x = 2, y = 1},
|
||||
text = background,
|
||||
position = {x = 0.5, y = 0.05},
|
||||
offset = {x = 0, y = 138},
|
||||
alignment = {x = 0, y = -1}
|
||||
})
|
||||
local hud_announce
|
||||
if awdef.secret then
|
||||
hud_announce = S("Secret Award Unlocked!")
|
||||
else
|
||||
hud_announce = S("Award Unlocked!")
|
||||
end
|
||||
local two = player:hud_add({
|
||||
hud_elem_type = "text",
|
||||
name = "award_au",
|
||||
number = 0xFFFFFF,
|
||||
scale = {x = 100, y = 20},
|
||||
text = hud_announce,
|
||||
position = {x = 0.5, y = 0.05},
|
||||
offset = {x = 0, y = 45},
|
||||
alignment = {x = 0, y = -1}
|
||||
})
|
||||
local three = player:hud_add({
|
||||
hud_elem_type = "text",
|
||||
name = "award_title",
|
||||
number = 0xFFFFFF,
|
||||
scale = {x = 100, y = 20},
|
||||
text = title,
|
||||
position = {x = 0.5, y = 0.05},
|
||||
offset = {x = 0, y = 100},
|
||||
alignment = {x = 0, y = -1}
|
||||
})
|
||||
local four = player:hud_add({
|
||||
hud_elem_type = "image",
|
||||
name = "award_icon",
|
||||
scale = {x = 2, y = 2}, -- adjusted for 32x32 from x/y = 4
|
||||
text = icon,
|
||||
position = {x = 0.5, y = 0.05},
|
||||
offset = {x = -200.5, y = 126},
|
||||
alignment = {x = 0, y = -1}
|
||||
})
|
||||
minetest.after(4, function()
|
||||
local player2 = minetest.get_player_by_name(name)
|
||||
if player2 then
|
||||
player2:hud_remove(one)
|
||||
player2:hud_remove(two)
|
||||
player2:hud_remove(three)
|
||||
player2:hud_remove(four)
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
function awards.get_award_states(name)
|
||||
local hash_is_unlocked = {}
|
||||
local retval = {}
|
||||
|
||||
-- Add all unlocked awards
|
||||
local data = awards.player(name)
|
||||
if data and data.unlocked then
|
||||
for awardname, _ in pairs(data.unlocked) do
|
||||
local def = awards.registered_awards[awardname]
|
||||
if def then
|
||||
hash_is_unlocked[awardname] = true
|
||||
local score = -100000
|
||||
|
||||
local difficulty = def.difficulty or 1
|
||||
if def.trigger and def.trigger.target then
|
||||
difficulty = difficulty * def.trigger.target
|
||||
end
|
||||
score = score + difficulty
|
||||
|
||||
retval[#retval + 1] = {
|
||||
name = awardname,
|
||||
def = def,
|
||||
unlocked = true,
|
||||
started = true,
|
||||
score = score,
|
||||
progress = nil,
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Add all locked awards
|
||||
for _, def in pairs(awards.registered_awards) do
|
||||
if not hash_is_unlocked[def.name] and def:can_unlock(data) then
|
||||
local progress = def.get_progress and def:get_progress(data)
|
||||
local started = false
|
||||
local score = def.difficulty or 1
|
||||
if def.secret then
|
||||
score = 1000000
|
||||
elseif def.trigger and def.trigger.target and progress then
|
||||
local perc = progress.current / progress.target
|
||||
score = score * (1 - perc) * def.trigger.target
|
||||
if perc < 0.001 then
|
||||
score = score + 100
|
||||
else
|
||||
started = true
|
||||
end
|
||||
else
|
||||
score = 100
|
||||
end
|
||||
|
||||
retval[#retval + 1] = {
|
||||
name = def.name,
|
||||
def = def,
|
||||
unlocked = false,
|
||||
started = started,
|
||||
score = score,
|
||||
progress = progress,
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
table.sort(retval, function(a, b)
|
||||
return a.score < b.score
|
||||
end)
|
||||
return retval
|
||||
end
|
|
@ -0,0 +1,218 @@
|
|||
-- Copyright (c) 2013-18 rubenwardy. MIT.
|
||||
|
||||
local S, NS = awards.gettext, awards.ngettext
|
||||
|
||||
awards.on = {}
|
||||
|
||||
local default_def = {}
|
||||
|
||||
function default_def:run_callbacks(player, data, table_func)
|
||||
for i = 1, #self.on do
|
||||
local res = nil
|
||||
local entry = self.on[i]
|
||||
if type(entry) == "function" then
|
||||
res = entry(player, data)
|
||||
elseif type(entry) == "table" and entry.award then
|
||||
res = table_func(entry)
|
||||
end
|
||||
|
||||
if res then
|
||||
awards.unlock(player:get_player_name(), res)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function awards.register_trigger(tname, tdef)
|
||||
assert(type(tdef) == "table",
|
||||
"Passing a callback to register_trigger is not supported in 3.0")
|
||||
|
||||
tdef.name = tname
|
||||
for key, value in pairs(default_def) do
|
||||
tdef[key] = value
|
||||
end
|
||||
|
||||
if tdef.type == "counted" then
|
||||
local old_reg = tdef.on_register
|
||||
|
||||
function tdef:on_register(def)
|
||||
local tmp = {
|
||||
award = def.name,
|
||||
target = def.trigger.target,
|
||||
}
|
||||
tdef.register(tmp)
|
||||
|
||||
function def.get_progress(_, data)
|
||||
local current = math.min(data[tname] or 0, tmp.target)
|
||||
return {
|
||||
current = current,
|
||||
target = tmp.target,
|
||||
label = S(tdef.progress, current, tmp.target),
|
||||
}
|
||||
end
|
||||
|
||||
function def.getDefaultDescription(_)
|
||||
local n = def.trigger.target
|
||||
return NS(tdef.auto_description[1], tdef.auto_description[2], n, n)
|
||||
end
|
||||
|
||||
if old_reg then
|
||||
return old_reg(tdef, def)
|
||||
end
|
||||
end
|
||||
|
||||
function tdef.notify(player)
|
||||
assert(player and player.is_player and player:is_player())
|
||||
local name = player:get_player_name()
|
||||
local data = awards.player(name)
|
||||
|
||||
-- Increment counter
|
||||
local currentVal = (data[tname] or 0) + 1
|
||||
data[tname] = currentVal
|
||||
|
||||
tdef:run_callbacks(player, data, function(entry)
|
||||
if entry.target and entry.award and currentVal and
|
||||
currentVal >= entry.target then
|
||||
return entry.award
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
awards["notify_" .. tname] = tdef.notify
|
||||
|
||||
elseif tdef.type == "counted_key" then
|
||||
if tdef.key_is_item then
|
||||
tdef.watched_groups = {}
|
||||
end
|
||||
|
||||
-- On award register
|
||||
local old_reg = tdef.on_register
|
||||
function tdef:on_register(def)
|
||||
-- Register trigger
|
||||
local tmp = {
|
||||
award = def.name,
|
||||
key = tdef:get_key(def),
|
||||
target = def.trigger.target,
|
||||
}
|
||||
tdef.register(tmp)
|
||||
|
||||
-- If group, add it to watch list
|
||||
if tdef.key_is_item and tmp.key and tmp.key:sub(1, 6) == "group:" then
|
||||
tdef.watched_groups[tmp.key:sub(7, #tmp.key)] = true
|
||||
end
|
||||
|
||||
-- Called to get progress values and labels
|
||||
function def.get_progress(_, data)
|
||||
data[tname] = data[tname] or {}
|
||||
|
||||
local done
|
||||
if tmp.key then
|
||||
done = data[tname][tmp.key] or 0
|
||||
else
|
||||
done = data[tname].__total or 0
|
||||
end
|
||||
done = math.min(done, tmp.target)
|
||||
|
||||
return {
|
||||
current = done,
|
||||
target = tmp.target,
|
||||
label = S(tdef.progress, done, tmp.target),
|
||||
}
|
||||
end
|
||||
|
||||
-- Build description if none is specificed by the award
|
||||
function def.getDefaultDescription(_)
|
||||
local n = def.trigger.target
|
||||
if tmp.key then
|
||||
local nname = tmp.key
|
||||
return NS(tdef.auto_description[1],
|
||||
tdef.auto_description[2], n, n, nname)
|
||||
else
|
||||
return NS(tdef.auto_description_total[1],
|
||||
tdef.auto_description_total[2], n, n)
|
||||
end
|
||||
end
|
||||
|
||||
-- Call on_register in trigger type definition
|
||||
if old_reg then
|
||||
return old_reg(tdef, def)
|
||||
end
|
||||
end
|
||||
|
||||
function tdef.notify(player, key, n)
|
||||
n = n or 1
|
||||
|
||||
if tdef.key_is_item and key:sub(1, 6) ~= "group:" then
|
||||
local itemdef = minetest.registered_items[key]
|
||||
if itemdef then
|
||||
for groupname,rating in pairs(itemdef.groups or {}) do
|
||||
if rating ~= 0 and tdef.watched_groups[groupname] then
|
||||
tdef.notify(player, "group:" .. groupname, n)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
assert(player and player.is_player and player:is_player() and key)
|
||||
local name = player:get_player_name()
|
||||
local data = awards.player(name)
|
||||
|
||||
-- Increment counter
|
||||
data[tname] = data[tname] or {}
|
||||
local currentVal = (data[tname][key] or 0) + n
|
||||
data[tname][key] = currentVal
|
||||
data[tname].__total = (data[tname].__total or 0)
|
||||
if key:sub(1, 6) ~= "group:" then
|
||||
data[tname].__total = data[tname].__total + n
|
||||
end
|
||||
|
||||
tdef:run_callbacks(player, data, function(entry)
|
||||
local current
|
||||
if entry.key == key then
|
||||
current = currentVal
|
||||
elseif entry.key == nil then
|
||||
current = data[tname].__total
|
||||
else
|
||||
return
|
||||
end
|
||||
if current >= entry.target then
|
||||
return entry.award
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
awards["notify_" .. tname] = tdef.notify
|
||||
|
||||
elseif tdef.type and tdef.type ~= "custom" then
|
||||
error("Unrecognised trigger type " .. tdef.type)
|
||||
end
|
||||
|
||||
awards.registered_triggers[tname] = tdef
|
||||
|
||||
tdef.on = {}
|
||||
tdef.register = function(func)
|
||||
table.insert(tdef.on, func)
|
||||
end
|
||||
|
||||
-- Backwards compat
|
||||
awards.on[tname] = tdef.on
|
||||
awards['register_on_' .. tname] = tdef.register
|
||||
return tdef
|
||||
end
|
||||
|
||||
function awards.increment_item_counter(data, field, itemname, count)
|
||||
itemname = minetest.registered_aliases[itemname] or itemname
|
||||
data[field][itemname] = (data[field][itemname] or 0) + (count or 1)
|
||||
end
|
||||
|
||||
function awards.get_item_count(data, field, itemname)
|
||||
itemname = minetest.registered_aliases[itemname] or itemname
|
||||
return data[field][itemname] or 0
|
||||
end
|
||||
|
||||
function awards.get_total_keyed_count(data, field)
|
||||
return data[field].__total or 0
|
||||
end
|
||||
|
||||
function awards.register_on_unlock(func)
|
||||
table.insert(awards.on_unlock, func)
|
||||
end
|
|
@ -0,0 +1,477 @@
|
|||
-- Copyright (c) 2013-18 rubenwardy and Wuzzy. MIT.
|
||||
|
||||
local S = awards.gettext
|
||||
|
||||
awards.register_award("award_ruby_bronze",{
|
||||
title = S("Ruby (Bronze)"),
|
||||
description = S("Dig 25 Ruby Ore."),
|
||||
icon = "default_stone.png^ruby_ruby_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:ruby_ore",
|
||||
target = 25
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_ruby_silber",{
|
||||
title = S("Ruby (Silber)"),
|
||||
description = S("Dig 50 Ruby Ore."),
|
||||
icon = "default_stone.png^ruby_ruby_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:ruby_ore",
|
||||
target = 50
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_ruby_gold",{
|
||||
title = S("Ruby (Gold)"),
|
||||
description = S("Dig 100 Ruby Ore."),
|
||||
icon = "default_stone.png^ruby_ruby_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:ruby_ore",
|
||||
target = 100
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_ruby_platin",{
|
||||
title = S("Ruby (Platin)"),
|
||||
description = S("Dig 200 Ruby Ore."),
|
||||
icon = "default_stone.png^ruby_ruby_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:ruby_ore",
|
||||
target = 200
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_sapphire_bronze",{
|
||||
title = S("Sapphire (Bronze)"),
|
||||
description = S("Dig 25 Sapphire Ore."),
|
||||
icon = "default_stone.png^gems_sapphire_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:sapphire_ore",
|
||||
target = 25
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_sapphire_silber",{
|
||||
title = S("Sapphire (Silber)"),
|
||||
description = S("Dig 50 Sapphire Ore."),
|
||||
icon = "default_stone.png^gems_sapphire_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:sapphire_ore",
|
||||
target = 50
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_sapphire_gold",{
|
||||
title = S("Sapphire (Gold)"),
|
||||
description = S("Dig 100 Sapphire Ore."),
|
||||
icon = "default_stone.png^gems_sapphire_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:sapphire_ore",
|
||||
target = 100
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_sapphire_platin",{
|
||||
title = S("Sapphire (Platin)"),
|
||||
description = S("Dig 200 Sapphire Ore."),
|
||||
icon = "default_stone.png^gems_sapphire_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:sapphire_ore",
|
||||
target = 200
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_amethyst_bronze",{
|
||||
title = S("Amethyst (Bronze)"),
|
||||
description = S("Dig 25 Amethyst Ore."),
|
||||
icon = "default_stone.png^gems_amethyst_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:amethyst_ore",
|
||||
target = 25
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_amethyst_silber",{
|
||||
title = S("Amethyst (Silber)"),
|
||||
description = S("Dig 50 Amethyst Ore."),
|
||||
icon = "default_stone.png^gems_amethyst_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:amethyst_ore",
|
||||
target = 50
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_amethyst_Gold",{
|
||||
title = S("Amethyst (Gold)"),
|
||||
description = S("Dig 100 Amethyst Ore."),
|
||||
icon = "default_stone.png^gems_amethyst_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:amethyst_ore",
|
||||
target = 100
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_amethyst_platin",{
|
||||
title = S("Amethyst (Platin)"),
|
||||
description = S("Dig 200 Amethyst Ore."),
|
||||
icon = "default_stone.png^gems_amethyst_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:amethyst_ore",
|
||||
target = 200
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_shadow_bronze",{
|
||||
title = S("Shadow (Bronze)"),
|
||||
description = S("Dig 25 Shadow Ore."),
|
||||
icon = "default_stone.png^shadow_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:shadow_ore",
|
||||
target = 25
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_shadow_silber",{
|
||||
title = S("Shadow (Silber)"),
|
||||
description = S("Dig 50 Shadow Ore."),
|
||||
icon = "default_stone.png^shadow_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:shadow_ore",
|
||||
target = 50
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_shadow_gold",{
|
||||
title = S("Shadow (Gold)"),
|
||||
description = S("Dig 100 Shadow Ore."),
|
||||
icon = "default_stone.png^shadow_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:shadow_ore",
|
||||
target = 100
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_shadow_platin",{
|
||||
title = S("Shadow (Platin)"),
|
||||
description = S("Dig 200 Shadow Ore."),
|
||||
icon = "default_stone.png^shadow_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:shadow_ore",
|
||||
target = 200
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_pearl_bronze",{
|
||||
title = S("Pearl (Bronze)"),
|
||||
description = S("Dig 25 Pearl Ore."),
|
||||
icon = "default_stone.png^gems_pearl_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:pearl_ore",
|
||||
target = 25
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_pearl_silber",{
|
||||
title = S("Pearl (Silber)"),
|
||||
description = S("Dig 50 Pearl Ore."),
|
||||
icon = "default_stone.png^gems_pearl_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:pearl_ore",
|
||||
target = 50
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_pearl_gold",{
|
||||
title = S("Pearl (Gold)"),
|
||||
description = S("Dig 100 Pearl Ore."),
|
||||
icon = "default_stone.png^gems_pearl_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:pearl_ore",
|
||||
target = 100
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_pearl_platin",{
|
||||
title = S("Pearl (Platin)"),
|
||||
description = S("Dig 200 Pearl Ore."),
|
||||
icon = "default_stone.png^gems_pearl_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:pearl_ore",
|
||||
target = 200
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_emerald_bronze",{
|
||||
title = S("Emerald (Bronze)"),
|
||||
description = S("Dig 25 Emerald Ore."),
|
||||
icon = "default_stone.png^gems_emerald_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:emerald_ore",
|
||||
target = 25
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_emerald_silber",{
|
||||
title = S("Emerald (Silber)"),
|
||||
description = S("Dig 50 Emerald Ore."),
|
||||
icon = "default_stone.png^gems_emerald_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:emerald_ore",
|
||||
target = 50
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_emerald_gold",{
|
||||
title = S("Emerald (Gold)"),
|
||||
description = S("Dig 100 Emerald Ore."),
|
||||
icon = "default_stone.png^gems_emerald_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:emerald_ore",
|
||||
target = 100
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_emerald_platin",{
|
||||
title = S("Emerald (Platin)"),
|
||||
description = S("Dig 200 Emerald Ore."),
|
||||
icon = "default_stone.png^gems_emerald_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "gems:emerald_ore",
|
||||
target = 200
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_admin_ore_bronze",{
|
||||
title = S("Admin Ore (Bronze)"),
|
||||
description = S("Dig 5 Admin Ore."),
|
||||
icon = "default_stone.png^tutorial_admin_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_admin",
|
||||
target = 5
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_admin_ore_silber",{
|
||||
title = S("Admin Ore (Silber)"),
|
||||
description = S("Dig 10 Admin Ore."),
|
||||
icon = "default_stone.png^tutorial_admin_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_admin",
|
||||
target = 10
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_admin_ore_gold",{
|
||||
title = S("Admin Ore (Gold)"),
|
||||
description = S("Dig 20 Admin Ore."),
|
||||
icon = "default_stone.png^tutorial_admin_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_admin",
|
||||
target = 20
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_admin_ore_platin",{
|
||||
title = S("Admin Ore (Platin)"),
|
||||
description = S("Dig 40 Admin Ore."),
|
||||
icon = "default_stone.png^tutorial_admin_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_admin",
|
||||
target = 40
|
||||
}
|
||||
})
|
||||
|
||||
awards.register_award("award_titan_ore_bronze",{
|
||||
title = S("Titan Ore (Bronze)"),
|
||||
description = S("Dig 10 Titan Ore."),
|
||||
icon = "tutorial_titan_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_titan",
|
||||
target = 10
|
||||
}
|
||||
})
|
||||
awards.register_award("award_titan_ore_silber",{
|
||||
title = S("Titan Ore (Silber)"),
|
||||
description = S("Dig 20 Titan Ore."),
|
||||
icon = "tutorial_titan_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_titan",
|
||||
target = 20
|
||||
}
|
||||
})
|
||||
awards.register_award("award_titan_ore_gold",{
|
||||
title = S("Titan Ore (Gold)"),
|
||||
description = S("Dig 40 Titan Ore."),
|
||||
icon = "tutorial_titan_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_titan",
|
||||
target = 40
|
||||
}
|
||||
})
|
||||
awards.register_award("award_titan_ore_platin",{
|
||||
title = S("Titan Ore (Platin)"),
|
||||
description = S("Dig 80 Titan Ore."),
|
||||
icon = "tutorial_titan_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_titan",
|
||||
target = 80
|
||||
}
|
||||
})
|
||||
awards.register_award("award_regnum_ore_bronze",{
|
||||
title = S("Regnum Ore (Bronze)"),
|
||||
description = S("Dig 2 Regnum Ore."),
|
||||
icon = "default_stone.png^tutorial_regnum_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_regnum",
|
||||
target = 2
|
||||
}
|
||||
})
|
||||
awards.register_award("award_regnum_ore_silber",{
|
||||
title = S("Regnum Ore (Silber)"),
|
||||
description = S("Dig 5 Regnum Ore."),
|
||||
icon = "default_stone.png^tutorial_regnum_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_regnum",
|
||||
target = 5
|
||||
}
|
||||
})
|
||||
awards.register_award("award_regnum_ore_gold",{
|
||||
title = S("Regnum Ore (Gold)"),
|
||||
description = S("Dig 10 Regnum Ore."),
|
||||
icon = "default_stone.png^tutorial_regnum_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_regnum",
|
||||
target = 10
|
||||
}
|
||||
})
|
||||
awards.register_award("award_regnum_ore_platin",{
|
||||
title = S("Regnum Ore (Platin)"),
|
||||
description = S("Dig 20 Regnum Ore."),
|
||||
icon = "default_stone.png^tutorial_regnum_ore.png",
|
||||
trigger = {
|
||||
type = "dig",
|
||||
node = "tutorial:stone_with_regnum",
|
||||
target = 20
|
||||
}
|
||||
})
|
||||
awards.register_award("award_???_bronze",{
|
||||
title = S("Die next to Mese"),
|
||||
description = S("Die next to a Mese Block"),
|
||||
icon = "default_mese_block.png",
|
||||
secret = true
|
||||
})
|
||||
awards.register_on_death(function(player,data)
|
||||
local pos = player:getpos()
|
||||
if pos and minetest.find_node_near(pos, 5, "default:mese") ~= nil then
|
||||
return "award_???_bronze"
|
||||
end
|
||||
return nil
|
||||
end)
|
||||
|
||||
|
||||
awards.register_award("award_???_silber",{
|
||||
title = S("Die next to Mithril"),
|
||||
description = S("Die next to a Mithril Ore"),
|
||||
icon = "default_stone.png^moreores_mineral_mithril.png",
|
||||
secret = true
|
||||
})
|
||||
awards.register_on_death(function(player,data)
|
||||
local pos = player:getpos()
|
||||
if pos and minetest.find_node_near(pos, 5, "moreores:mineral_mithril") ~= nil then
|
||||
return "award_???_silber"
|
||||
end
|
||||
return nil
|
||||
end)
|
||||
|
||||
|
||||
awards.register_award("award_???_gold",{
|
||||
title = S("Die next to Titan"),
|
||||
description = S("Die next to a Titan Ore"),
|
||||
icon = "default_stone.png^tutorial_titan_ore.png",
|
||||
secret = true
|
||||
})
|
||||
awards.register_on_death(function(player,data)
|
||||
local pos = player:getpos()
|
||||
if pos and minetest.find_node_near(pos, 5, "tutorial:stone_with_titan") ~= nil then
|
||||
return "award_???_gold"
|
||||
end
|
||||
return nil
|
||||
end)
|
||||
|
||||
awards.register_award("award_???_platin",{
|
||||
title = S("Die next to Admin"),
|
||||
description = S("Die next to an Admin Ore"),
|
||||
icon = "default_stone.png^tutorial_admin_ore.png",
|
||||
secret = true
|
||||
})
|
||||
awards.register_on_death(function(player,data)
|
||||
local pos = player:getpos()
|
||||
if pos and minetest.find_node_near(pos, 5, "tutorial:stone_with_admin") ~= nil then
|
||||
return "award_???_platin"
|
||||
end
|
||||
return nil
|
||||
end)
|
||||
|
||||
awards.register_award("award_???_regnum",{
|
||||
title = S("Die next to Regnum"),
|
||||
description = S("Die next to a Regnum Ore"),
|
||||
icon = "default_stone.png^tutorial_regnum_ore.png",
|
||||
secret = true
|
||||
})
|
||||
awards.register_on_death(function(player,data)
|
||||
local pos = player:getpos()
|
||||
if pos and minetest.find_node_near(pos, 5, "tutorial:stone_with_regnum") ~= nil then
|
||||
return "award_???_regnum"
|
||||
end
|
||||
return nil
|
||||
end)
|
||||
|
||||
awards.register_award("award_???_nyancat",{
|
||||
title = S("Die next to Nyancat"),
|
||||
description = S("Die next to a Nyancat"),
|
||||
icon = "nyancat_front.png",
|
||||
secret = true
|
||||
})
|
||||
awards.register_on_death(function(player,data)
|
||||
local pos = player:getpos()
|
||||
if pos and minetest.find_node_near(pos, 5, "nyancat:nyancat") ~= nil then
|
||||
return "award_???_nyancat"
|
||||
end
|
||||
return nil
|
||||
end)
|
|
@ -0,0 +1,61 @@
|
|||
-- Copyright (c) 2013-18 rubenwardy. MIT.
|
||||
|
||||
local S = awards.gettext
|
||||
|
||||
minetest.register_chatcommand("awards", {
|
||||
params = S("[c|clear|disable|enable]"),
|
||||
description = S("Show, clear, disable or enable your awards"),
|
||||
func = function(name, param)
|
||||
if param == "clear" then
|
||||
awards.clear_player(name)
|
||||
minetest.chat_send_player(name,
|
||||
S("All your awards and statistics have been cleared. You can now start again."))
|
||||
elseif param == "disable" then
|
||||
awards.disable(name)
|
||||
minetest.chat_send_player(name, S("You have disabled awards."))
|
||||
elseif param == "enable" then
|
||||
awards.enable(name)
|
||||
minetest.chat_send_player(name, S("You have enabled awards."))
|
||||
elseif param == "c" then
|
||||
awards.show_to(name, name, nil, true)
|
||||
else
|
||||
awards.show_to(name, name, nil, false)
|
||||
end
|
||||
|
||||
if (param == "disable" or param == "enable") and minetest.global_exists("sfinv") then
|
||||
local player = minetest.get_player_by_name(name)
|
||||
if player then
|
||||
sfinv.set_player_inventory_formspec(player)
|
||||
end
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_chatcommand("awd", {
|
||||
params = S("<award ID>"),
|
||||
description = S("Show details of an award"),
|
||||
func = function(name, param)
|
||||
local def = awards.registered_awards[param]
|
||||
if def then
|
||||
minetest.chat_send_player(name, string.format(S("%s: %s"), def.title, def.description))
|
||||
else
|
||||
minetest.chat_send_player(name, S("Award not found."))
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_chatcommand("awpl", {
|
||||
privs = {
|
||||
server = true
|
||||
},
|
||||
params = S("<name>"),
|
||||
description = S("Get the awards statistics for the given player or yourself"),
|
||||
func = function(name, param)
|
||||
if not param or param == "" then
|
||||
param = name
|
||||
end
|
||||
minetest.chat_send_player(name, param)
|
||||
local player = awards.player(param)
|
||||
minetest.chat_send_player(name, dump(player))
|
||||
end
|
||||
})
|
|
@ -0,0 +1,112 @@
|
|||
|
||||
local storage = minetest.get_mod_storage()
|
||||
local __player_data
|
||||
|
||||
-- Table Save Load Functions
|
||||
function awards.save()
|
||||
storage:set_string("player_data", minetest.write_json(__player_data))
|
||||
end
|
||||
|
||||
local function convert_data()
|
||||
minetest.log("warning", "Importing awards data from previous version")
|
||||
|
||||
local old_players = __player_data
|
||||
__player_data = {}
|
||||
for name, data in pairs(old_players) do
|
||||
while name.name do
|
||||
name = name.name
|
||||
end
|
||||
data.name = name
|
||||
print("Converting data for " .. name)
|
||||
|
||||
-- Just rename counted
|
||||
local counted = {
|
||||
chats = "chat",
|
||||
deaths = "death",
|
||||
joins = "join",
|
||||
}
|
||||
for from, to in pairs(counted) do
|
||||
data[to] = data[from]
|
||||
data[from] = nil
|
||||
end
|
||||
|
||||
data.death = {
|
||||
unknown = data.death,
|
||||
__total = data.death,
|
||||
}
|
||||
|
||||
-- Convert item db to new format
|
||||
local counted_items = {
|
||||
count = "dig",
|
||||
place = "place",
|
||||
craft = "craft",
|
||||
}
|
||||
for from, to in pairs(counted_items) do
|
||||
local ret = {}
|
||||
|
||||
local count = 0
|
||||
if data[from] then
|
||||
for modname, items in pairs(data[from]) do
|
||||
for itemname, value in pairs(items) do
|
||||
itemname = modname .. ":" .. itemname
|
||||
local key = minetest.registered_aliases[itemname] or itemname
|
||||
ret[key] = value
|
||||
count = count + value
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
ret.__total = count
|
||||
data[from] = nil
|
||||
data[to] = ret
|
||||
end
|
||||
|
||||
__player_data[name] = data
|
||||
end
|
||||
end
|
||||
|
||||
function awards.load()
|
||||
local old_save_path = minetest.get_worldpath().."/awards.txt"
|
||||
local file = io.open(old_save_path, "r")
|
||||
if file then
|
||||
local table = minetest.deserialize(file:read("*all"))
|
||||
if type(table) == "table" then
|
||||
__player_data = table
|
||||
convert_data()
|
||||
else
|
||||
__player_data = {}
|
||||
end
|
||||
file:close()
|
||||
os.rename(old_save_path, minetest.get_worldpath().."/awards.bk.txt")
|
||||
awards.save()
|
||||
else
|
||||
local json = storage:get("player_data")
|
||||
__player_data = json and minetest.parse_json(json) or {}
|
||||
end
|
||||
end
|
||||
|
||||
function awards.player(name)
|
||||
assert(type(name) == "string")
|
||||
local data = __player_data[name] or {}
|
||||
__player_data[name] = data
|
||||
|
||||
data.name = data.name or name
|
||||
data.unlocked = data.unlocked or {}
|
||||
return data
|
||||
end
|
||||
|
||||
function awards.player_or_nil(name)
|
||||
return __player_data[name]
|
||||
end
|
||||
|
||||
function awards.enable(name)
|
||||
awards.player(name).disabled = nil
|
||||
end
|
||||
|
||||
function awards.disable(name)
|
||||
awards.player(name).disabled = true
|
||||
end
|
||||
|
||||
function awards.clear_player(name)
|
||||
__player_data[name] = {}
|
||||
end
|
|
@ -0,0 +1,227 @@
|
|||
-- Copyright (c) 2013-18 rubenwardy. MIT.
|
||||
|
||||
local S = awards.gettext
|
||||
|
||||
function awards.get_formspec(name, to, sid)
|
||||
local formspec = ""
|
||||
local awards_list = awards.get_award_states(name)
|
||||
|
||||
if #awards_list == 0 then
|
||||
formspec = formspec .. "label[3.9,1.5;"..minetest.formspec_escape(S("Error: No achivements available.")).."]"
|
||||
formspec = formspec .. "button_exit[4.2,2.3;3,1;close;"..minetest.formspec_escape(S("OK")).."]"
|
||||
return formspec
|
||||
end
|
||||
sid = awards_list[sid] and sid or 1
|
||||
|
||||
-- Sidebar
|
||||
local sitem = awards_list[sid]
|
||||
local sdef = sitem.def
|
||||
if sdef and sdef.secret and not sitem.unlocked then
|
||||
formspec = formspec .. "label[1,3.85;"..
|
||||
minetest.formspec_escape(S("(Secret Award)")).."]"..
|
||||
"image[0.45,0.75;3.5,3.5;awards_unknown.png]"
|
||||
if sdef and sdef.description then
|
||||
formspec = formspec .. "textarea[0.25,4.35;4.8,1.7;;"..
|
||||
minetest.formspec_escape(
|
||||
S("Unlock this award to find out what it is."))..";]"
|
||||
end
|
||||
else
|
||||
local title = sitem.name
|
||||
if sdef and sdef.title then
|
||||
title = sdef.title
|
||||
end
|
||||
local status = "%s"
|
||||
if sitem.unlocked then
|
||||
status = S("%s (unlocked)")
|
||||
end
|
||||
|
||||
formspec = formspec .. "textarea[0.5,3.85;4.8,1.45;;" ..
|
||||
string.format(status, minetest.formspec_escape(title)) ..
|
||||
";]"
|
||||
|
||||
if sdef and sdef.icon then
|
||||
formspec = formspec .. "image[0.45,0.75;3.5,3.5;" .. sdef.icon .. "]" -- adjusted values from 0.6,0;3,3
|
||||
end
|
||||
|
||||
if sitem.progress then
|
||||
local barwidth = 3.95
|
||||
local perc = sitem.progress.current / sitem.progress.target
|
||||
local label = sitem.progress.label
|
||||
if perc > 1 then
|
||||
perc = 1
|
||||
end
|
||||
formspec = formspec .. "background[0,8.99;" .. barwidth ..",0.4;awards_progress_gray.png;false]"
|
||||
formspec = formspec .. "background[0,8.99;" .. (barwidth * perc) ..",0.4;awards_progress_green.png;false]"
|
||||
if label then
|
||||
formspec = formspec .. "label[1.6,8.90;" .. minetest.formspec_escape(label) .. "]"
|
||||
end
|
||||
end
|
||||
|
||||
if sdef and sdef.description then
|
||||
formspec = formspec .. "box[-0.05,4.5;3.9,4.2;#000]"
|
||||
formspec = formspec .. "textarea[0.25,4.5;3.9,4.2;;" ..
|
||||
minetest.formspec_escape(sdef.description) .. ";]"
|
||||
end
|
||||
end
|
||||
local total_awards = 0
|
||||
-- Create list box
|
||||
formspec = formspec .. "textlist[4,0.75;3.8,8.6;awards;"
|
||||
local first = true
|
||||
for _, award in pairs(awards_list) do
|
||||
local def = award.def
|
||||
if def then
|
||||
if not first then
|
||||
formspec = formspec .. ","
|
||||
end
|
||||
first = false
|
||||
|
||||
if def.secret and not award.unlocked then
|
||||
formspec = formspec .. "#707070"..minetest.formspec_escape(S("(Secret Award)"))
|
||||
else
|
||||
local title = award.name
|
||||
if def and def.title then
|
||||
title = def.title
|
||||
end
|
||||
-- title = title .. " [" .. award.score .. "]"
|
||||
if award.unlocked then
|
||||
total_awards = total_awards + 1
|
||||
formspec = formspec .. minetest.formspec_escape(title)
|
||||
elseif award.started then
|
||||
formspec = formspec .. "#c0c0c0".. minetest.formspec_escape(title)
|
||||
else
|
||||
formspec = formspec .. "#a0a0a0".. minetest.formspec_escape(title)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if total_awards == 42 then
|
||||
local player_inv = minetest.get_player_by_name(name):get_inventory()
|
||||
player_inv:set_size("a20", 1)
|
||||
player_inv:set_stack("a20", 1, "default:dirt")
|
||||
else
|
||||
local player_inv = minetest.get_player_by_name(name):get_inventory()
|
||||
player_inv:set_size("a20", 1)
|
||||
player_inv:set_stack("a20", 1, "")
|
||||
end
|
||||
formspec = formspec .. ";"..sid.."]"
|
||||
formspec = formspec .. "label[5.6,0;"..total_awards.."/42]"
|
||||
.."button[0,0;2,0.5;inven;Back]"
|
||||
.."button[2,0;2,0.5;main;Main]"
|
||||
return formspec
|
||||
end
|
||||
|
||||
|
||||
function awards.show_to(name, to, sid, text)
|
||||
if name == "" or name == nil then
|
||||
name = to
|
||||
end
|
||||
local data = awards.player(to)
|
||||
if name == to and data.disabled then
|
||||
minetest.chat_send_player(name, S("You've disabled awards. Type /awards enable to reenable."))
|
||||
return
|
||||
end
|
||||
if text then
|
||||
local awards_list = awards.get_award_states(name)
|
||||
if #awards_list == 0 then
|
||||
minetest.chat_send_player(to, S("Error: No award available."))
|
||||
return
|
||||
elseif not data or not data.unlocked then
|
||||
minetest.chat_send_player(to, S("You have not unlocked any awards."))
|
||||
return
|
||||
end
|
||||
minetest.chat_send_player(to, string.format(S("%s’s awards:"), name))
|
||||
|
||||
for str, _ in pairs(data.unlocked) do
|
||||
local def = awards.registered_awards[str]
|
||||
if def then
|
||||
if def.title then
|
||||
if def.description then
|
||||
minetest.chat_send_player(to, string.format(S("%s: %s"), def.title, def.description))
|
||||
else
|
||||
minetest.chat_send_player(to, def.title)
|
||||
end
|
||||
else
|
||||
minetest.chat_send_player(to, str)
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
local deco = ""
|
||||
if minetest.global_exists("default") then
|
||||
deco = default.gui_bg .. default.gui_bg_img
|
||||
end
|
||||
-- Show formspec to user
|
||||
minetest.get_player_by_name(to):set_inventory_formspec("size[8,9.35]" .. deco .. awards.get_formspec(name, to, sid))
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||
local name = player:get_player_name()
|
||||
if fields.aw then
|
||||
awards.show_to(name, name, nil, false)
|
||||
end
|
||||
|
||||
|
||||
if fields.awards then
|
||||
local event = minetest.explode_textlist_event(fields.awards)
|
||||
if event.type == "CHG" then
|
||||
awards.show_to(name, name, event.index, false)
|
||||
end
|
||||
end
|
||||
end)
|
||||
--[[
|
||||
if minetest.get_modpath("sfinv") then
|
||||
sfinv.register_page("awards:awards", {
|
||||
title = S("Awards"),
|
||||
on_enter = function(self, player, context)
|
||||
context.awards_idx = 1
|
||||
end,
|
||||
is_in_nav = function(self, player, context)
|
||||
local data = awards.player(player:get_player_name())
|
||||
return not data.disabled
|
||||
end,
|
||||
get = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
return sfinv.make_formspec(player, context,
|
||||
awards.get_formspec(name, name, context.awards_idx),
|
||||
false)
|
||||
end,
|
||||
on_player_receive_fields = function(self, player, context, fields)
|
||||
if fields.awards then
|
||||
local event = minetest.explode_textlist_event(fields.awards)
|
||||
if event.type == "CHG" then
|
||||
context.awards_idx = event.index
|
||||
sfinv.set_player_inventory_formspec(player, context)
|
||||
end
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
local function check_and_reshow(name)
|
||||
local player = minetest.get_player_by_name(name)
|
||||
if not player then
|
||||
return
|
||||
end
|
||||
|
||||
local context = sfinv.get_or_create_context(player)
|
||||
if context.page ~= "awards:awards" then
|
||||
return
|
||||
end
|
||||
|
||||
sfinv.set_player_inventory_formspec(player, context)
|
||||
end
|
||||
|
||||
awards.register_on_unlock(check_and_reshow)
|
||||
end
|
||||
--]]
|
||||
if minetest.get_modpath("unified_inventory") ~= nil then
|
||||
unified_inventory.register_button("awards", {
|
||||
type = "image",
|
||||
image = "awards_ui_icon.png",
|
||||
tooltip = S("Awards"),
|
||||
action = function(player)
|
||||
local name = player:get_player_name()
|
||||
awards.show_to(name, name, nil, false)
|
||||
end,
|
||||
})
|
||||
end
|
|
@ -0,0 +1,44 @@
|
|||
-- Fallback functions for when `intllib` is not installed.
|
||||
-- Code released under Unlicense <http://unlicense.org>.
|
||||
|
||||
-- Get the latest version of this file at:
|
||||
-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua
|
||||
|
||||
local function format(str, ...)
|
||||
local args = { ... }
|
||||
local function repl(escape, open, num, close)
|
||||
if escape == "" then
|
||||
local replacement = tostring(args[tonumber(num)])
|
||||
if open == "" then
|
||||
replacement = replacement..close
|
||||
end
|
||||
return replacement
|
||||
else
|
||||
return "@"..open..num..close
|
||||
end
|
||||
end
|
||||
return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl))
|
||||
end
|
||||
|
||||
local gettext, ngettext
|
||||
if minetest.get_modpath("intllib") then
|
||||
if intllib.make_gettext_pair then
|
||||
-- New method using gettext.
|
||||
gettext, ngettext = intllib.make_gettext_pair()
|
||||
else
|
||||
-- Old method using text files.
|
||||
gettext = intllib.Getter()
|
||||
end
|
||||
end
|
||||
|
||||
-- Fill in missing functions.
|
||||
|
||||
gettext = gettext or function(msgid, ...)
|
||||
return format(msgid, ...)
|
||||
end
|
||||
|
||||
ngettext = ngettext or function(msgid, msgid_plural, n, ...)
|
||||
return format(n==1 and msgid or msgid_plural, ...)
|
||||
end
|
||||
|
||||
return gettext, ngettext
|
|
@ -0,0 +1,145 @@
|
|||
-- AWARDS
|
||||
--
|
||||
-- Copyright (C) 2013-2015 rubenwardy
|
||||
-- This program is free software; you can redistribute it and/or modify
|
||||
-- it under the terms of the GNU Lesser General Public License as published by
|
||||
-- the Free Software Foundation; either version 2.1 of the License, or
|
||||
-- (at your option) any later version.
|
||||
-- This program is distributed in the hope that it will be useful,
|
||||
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
-- GNU Lesser General Public License for more details.
|
||||
-- You should have received a copy of the GNU Lesser General Public License along
|
||||
-- with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
-- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
--
|
||||
|
||||
-- Check if a player object is valid for awards.
|
||||
local function player_ok(player)
|
||||
return player and player.is_player and player:is_player() and not player.is_fake_player
|
||||
end
|
||||
|
||||
awards.register_trigger("chat", {
|
||||
type = "counted",
|
||||
progress = "@1/@2 chat messages",
|
||||
auto_description = { "Send a chat message", "Chat @1 times" },
|
||||
})
|
||||
minetest.register_on_chat_message(function(name, message)
|
||||
local player = minetest.get_player_by_name(name)
|
||||
if not player_ok(player) or string.find(message, "/") then
|
||||
return
|
||||
end
|
||||
|
||||
awards.notify_chat(player)
|
||||
end)
|
||||
|
||||
|
||||
awards.register_trigger("join", {
|
||||
type = "counted",
|
||||
progress = "@1/@2 joins",
|
||||
auto_description = { "Join once", "Join @1 times" },
|
||||
})
|
||||
minetest.register_on_joinplayer(awards.notify_join)
|
||||
|
||||
|
||||
awards.register_trigger("death", {
|
||||
type = "counted_key",
|
||||
progress = "@1/@2 deaths",
|
||||
auto_description = { "Die once of @2", "Die @1 times of @2" },
|
||||
auto_description_total = { "Die @1 times.", "Mine @1 times" },
|
||||
get_key = function(self, def)
|
||||
return def.trigger.reason
|
||||
end,
|
||||
})
|
||||
minetest.register_on_dieplayer(function(player, reason)
|
||||
if reason then
|
||||
reason = reason.type
|
||||
else
|
||||
reason = "unknown"
|
||||
end
|
||||
awards.notify_death(player, reason)
|
||||
end)
|
||||
|
||||
|
||||
awards.register_trigger("dig", {
|
||||
type = "counted_key",
|
||||
progress = "@1/@2 dug",
|
||||
auto_description = { "Mine: @2", "Mine: @1×@2" },
|
||||
auto_description_total = { "Mine @1 block.", "Mine @1 blocks." },
|
||||
get_key = function(self, def)
|
||||
return minetest.registered_aliases[def.trigger.node] or def.trigger.node
|
||||
end,
|
||||
key_is_item = true,
|
||||
})
|
||||
minetest.register_on_dignode(function(pos, node, player)
|
||||
if not player_ok(player) or not pos or not node then
|
||||
return
|
||||
end
|
||||
|
||||
local node_name = node.name
|
||||
node_name = minetest.registered_aliases[node_name] or node_name
|
||||
awards.notify_dig(player, node_name)
|
||||
end)
|
||||
|
||||
|
||||
awards.register_trigger("place", {
|
||||
type = "counted_key",
|
||||
progress = "@1/@2 placed",
|
||||
auto_description = { "Place: @2", "Place: @1×@2" },
|
||||
auto_description_total = { "Place @1 block.", "Place @1 blocks." },
|
||||
get_key = function(self, def)
|
||||
return minetest.registered_aliases[def.trigger.node] or def.trigger.node
|
||||
end,
|
||||
key_is_item = true,
|
||||
})
|
||||
minetest.register_on_placenode(function(pos, node, player)
|
||||
if not player_ok(player) or not pos or not node then
|
||||
return
|
||||
end
|
||||
|
||||
local node_name = node.name
|
||||
node_name = minetest.registered_aliases[node_name] or node_name
|
||||
awards.notify_place(player, node_name)
|
||||
end)
|
||||
|
||||
|
||||
awards.register_trigger("craft", {
|
||||
type = "counted_key",
|
||||
progress = "@1/@2 crafted",
|
||||
auto_description = { "Craft: @2", "Craft: @1×@2" },
|
||||
auto_description_total = { "Craft @1 item", "Craft @1 items." },
|
||||
get_key = function(self, def)
|
||||
return minetest.registered_aliases[def.trigger.item] or def.trigger.item
|
||||
end,
|
||||
key_is_item = true,
|
||||
})
|
||||
minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv)
|
||||
if not player_ok(player) or itemstack:is_empty() then
|
||||
return
|
||||
end
|
||||
|
||||
local itemname = itemstack:get_name()
|
||||
itemname = minetest.registered_aliases[itemname] or itemname
|
||||
awards.notify_craft(player, itemname, itemstack:get_count())
|
||||
end)
|
||||
|
||||
|
||||
awards.register_trigger("eat", {
|
||||
type = "counted_key",
|
||||
progress = "@1/@2 eaten",
|
||||
auto_description = { "Eat @2", "Eat @1×@2" },
|
||||
auto_description_total = { "Eat @1 item", "Eat @1 items." },
|
||||
get_key = function(self, def)
|
||||
return minetest.registered_aliases[def.trigger.item] or def.trigger.item
|
||||
end,
|
||||
key_is_item = true,
|
||||
})
|
||||
minetest.register_on_item_eat(function(_, _, itemstack, player, _)
|
||||
if not player_ok(player) or itemstack:is_empty() then
|
||||
return
|
||||
end
|
||||
|
||||
local itemname = itemstack:get_name()
|
||||
itemname = minetest.registered_aliases[itemname] or itemname
|
||||
awards.notify_eat(player, itemname)
|
||||
end)
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue