forked from nalc/awards
Secret awards, fixes
This commit is contained in:
parent
d0e5dfc0c1
commit
6a592781d5
79
api.lua
79
api.lua
@ -261,15 +261,15 @@ minetest.register_chatcommand("list_awards", {
|
|||||||
end
|
end
|
||||||
})
|
})
|
||||||
minetest.register_chatcommand("awards", {
|
minetest.register_chatcommand("awards", {
|
||||||
params = "Empty params for your awards, player name for someone else's awards",
|
params = "",
|
||||||
description = "awards: list awards",
|
description = "awards: list awards",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
awards.showto(name, name, nil, false)
|
awards.showto(name, name, nil, false)
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
minetest.register_chatcommand("cawards", {
|
minetest.register_chatcommand("cawards", {
|
||||||
params = "Empty params for your awards, player name for someone else's awards",
|
params = "",
|
||||||
description = "awards: list awards",
|
description = "awards: list awards in chat",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
awards.showto(name, name, nil, true)
|
awards.showto(name, name, nil, true)
|
||||||
end
|
end
|
||||||
@ -313,15 +313,27 @@ function awards._order_awards(name)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function awards.showto(name, to, sid, text)
|
function awards.showto(name, to, sid, text)
|
||||||
|
if name == "" or name == nil then
|
||||||
|
name = to
|
||||||
|
end
|
||||||
if text then
|
if text then
|
||||||
if not awards.players[name] or not awards.players[name].unlocked 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
|
return
|
||||||
end
|
end
|
||||||
minetest.chat_send_player(to, name.."'s awards:")
|
minetest.chat_send_player(to, name.."'s awards:")
|
||||||
|
|
||||||
for _, str in pairs(awards.players[name].unlocked) do
|
for _, str in pairs(awards.players[name].unlocked) do
|
||||||
minetest.chat_send_player(to, str)
|
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
|
end
|
||||||
else
|
else
|
||||||
if sid == nil or sid < 1 then
|
if sid == nil or sid < 1 then
|
||||||
@ -334,21 +346,29 @@ function awards.showto(name, to, sid, text)
|
|||||||
if sid then
|
if sid then
|
||||||
local item = listofawards[sid+0]
|
local item = listofawards[sid+0]
|
||||||
local def = awards.def[item.name]
|
local def = awards.def[item.name]
|
||||||
local title = item.name
|
if def and def.secret and not item.got then
|
||||||
if def and def.title then
|
formspec = formspec .. "label[1,2.75;Secret Award]"..
|
||||||
title = def.title
|
"image[1,0;3,3;unknown.png]"
|
||||||
end
|
if def and def.description then
|
||||||
local status = ""
|
formspec = formspec .. "label[0,3.25;Unlock this award to find out what it is]"
|
||||||
if item.got then
|
end
|
||||||
status = " (got)"
|
else
|
||||||
end
|
local title = item.name
|
||||||
if def and def.icon then
|
if def and def.title then
|
||||||
icon = def.icon
|
title = def.title
|
||||||
end
|
end
|
||||||
formspec = formspec .. "label[1,2.75;"..title..status.."]"..
|
local status = ""
|
||||||
"image[1,0;3,3;"..icon.."]"
|
if item.got then
|
||||||
if def and def.description then
|
status = " (got)"
|
||||||
formspec = formspec .. "label[0,3.25;"..def.description.."]"
|
end
|
||||||
|
if def and def.icon then
|
||||||
|
icon = def.icon
|
||||||
|
end
|
||||||
|
formspec = formspec .. "label[1,2.75;"..title..status.."]"..
|
||||||
|
"image[1,0;3,3;"..icon.."]"
|
||||||
|
if def and def.description then
|
||||||
|
formspec = formspec .. "label[0,3.25;"..def.description.."]"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -361,16 +381,19 @@ function awards.showto(name, to, sid, text)
|
|||||||
end
|
end
|
||||||
first = false
|
first = false
|
||||||
local def = awards.def[award.name]
|
local def = awards.def[award.name]
|
||||||
local title = award.name
|
|
||||||
|
|
||||||
if def and def.title then
|
if def and def.secret and not award.got then
|
||||||
title = def.title
|
formspec = formspec .. "#ACACACSecret Award"
|
||||||
end
|
|
||||||
|
|
||||||
if award.got then
|
|
||||||
formspec = formspec .. minetest.formspec_escape(title)
|
|
||||||
else
|
else
|
||||||
formspec = formspec .. "#ACACAC".. minetest.formspec_escape(title)
|
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
|
||||||
end
|
end
|
||||||
formspec = formspec .. ";"..sid.."]"
|
formspec = formspec .. ";"..sid.."]"
|
||||||
|
2
init.lua
2
init.lua
@ -126,7 +126,7 @@ awards.register_achievement("award_death1",{
|
|||||||
-- Burned to death
|
-- Burned to death
|
||||||
awards.register_achievement("award_burn",{
|
awards.register_achievement("award_burn",{
|
||||||
title = S("You're a witch!"),
|
title = S("You're a witch!"),
|
||||||
description = S("Burn to death in a fire"),
|
description = S("Burn to death in a fire")
|
||||||
})
|
})
|
||||||
|
|
||||||
-- 1 sentence
|
-- 1 sentence
|
||||||
|
12
readme.md
12
readme.md
@ -17,9 +17,10 @@ The API
|
|||||||
* sound [optional]
|
* sound [optional]
|
||||||
* image [optional]
|
* image [optional]
|
||||||
* trigger [optional] [table]
|
* trigger [optional] [table]
|
||||||
* type - "dig" or "place"
|
* type - "dig", "place", "death", "chat" or "join"
|
||||||
* (for dig/place type) node - the nodes name
|
* (for dig/place type) node - the nodes name
|
||||||
* (for all types) target - how many to dig / place
|
* (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)
|
* awards.give_achievement(name,award)
|
||||||
* -- gives an award to a player
|
* -- gives an award to a player
|
||||||
* awards.register_onDig(func(player,data))
|
* awards.register_onDig(func(player,data))
|
||||||
@ -28,6 +29,10 @@ The API
|
|||||||
* -- return award name or null
|
* -- return award name or null
|
||||||
* awards.register_onDeath(func(player,data))
|
* awards.register_onDeath(func(player,data))
|
||||||
* -- return award name or null
|
* -- 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
|
Player Data
|
||||||
@ -41,4 +46,7 @@ A list of data referenced/hashed by the player's name.
|
|||||||
* itemname [int]
|
* itemname [int]
|
||||||
* place [table] - place counter
|
* place [table] - place counter
|
||||||
* modname [table]
|
* modname [table]
|
||||||
* itemname [int]
|
* itemname [int]
|
||||||
|
* deaths
|
||||||
|
* chats
|
||||||
|
* joins
|
Loading…
Reference in New Issue
Block a user