forked from mtcontrib/awards
Secret awards, fixes
This commit is contained in:
parent
d0e5dfc0c1
commit
6a592781d5
35
api.lua
35
api.lua
@ -261,15 +261,15 @@ minetest.register_chatcommand("list_awards", {
|
||||
end
|
||||
})
|
||||
minetest.register_chatcommand("awards", {
|
||||
params = "Empty params for your awards, player name for someone else's awards",
|
||||
params = "",
|
||||
description = "awards: list awards",
|
||||
func = function(name, param)
|
||||
awards.showto(name, name, nil, false)
|
||||
end
|
||||
})
|
||||
minetest.register_chatcommand("cawards", {
|
||||
params = "Empty params for your awards, player name for someone else's awards",
|
||||
description = "awards: list awards",
|
||||
params = "",
|
||||
description = "awards: list awards in chat",
|
||||
func = function(name, param)
|
||||
awards.showto(name, name, nil, true)
|
||||
end
|
||||
@ -313,16 +313,28 @@ function awards._order_awards(name)
|
||||
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(name, "You do not have any awards")
|
||||
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 and 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
|
||||
else
|
||||
if sid == nil or sid < 1 then
|
||||
sid = 1
|
||||
@ -334,6 +346,13 @@ function awards.showto(name, to, sid, text)
|
||||
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,2.75;Secret Award]"..
|
||||
"image[1,0;3,3;unknown.png]"
|
||||
if def and def.description then
|
||||
formspec = formspec .. "label[0,3.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
|
||||
@ -351,6 +370,7 @@ function awards.showto(name, to, sid, text)
|
||||
formspec = formspec .. "label[0,3.25;"..def.description.."]"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Create list box
|
||||
formspec = formspec .. "textlist[4.75,0;6,5;awards;"
|
||||
@ -361,18 +381,21 @@ function awards.showto(name, to, sid, text)
|
||||
end
|
||||
first = false
|
||||
local def = awards.def[award.name]
|
||||
local title = award.name
|
||||
|
||||
if def and 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
|
||||
formspec = formspec .. minetest.formspec_escape(title)
|
||||
else
|
||||
formspec = formspec .. "#ACACAC".. minetest.formspec_escape(title)
|
||||
end
|
||||
end
|
||||
end
|
||||
formspec = formspec .. ";"..sid.."]"
|
||||
|
||||
-- Show formspec to user
|
||||
|
2
init.lua
2
init.lua
@ -126,7 +126,7 @@ awards.register_achievement("award_death1",{
|
||||
-- Burned to death
|
||||
awards.register_achievement("award_burn",{
|
||||
title = S("You're a witch!"),
|
||||
description = S("Burn to death in a fire"),
|
||||
description = S("Burn to death in a fire")
|
||||
})
|
||||
|
||||
-- 1 sentence
|
||||
|
10
readme.md
10
readme.md
@ -17,9 +17,10 @@ The API
|
||||
* sound [optional]
|
||||
* image [optional]
|
||||
* trigger [optional] [table]
|
||||
* type - "dig" or "place"
|
||||
* 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))
|
||||
@ -28,6 +29,10 @@ The API
|
||||
* -- 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
|
||||
|
||||
|
||||
Player Data
|
||||
@ -42,3 +47,6 @@ A list of data referenced/hashed by the player's name.
|
||||
* place [table] - place counter
|
||||
* modname [table]
|
||||
* itemname [int]
|
||||
* deaths
|
||||
* chats
|
||||
* joins
|
Loading…
Reference in New Issue
Block a user