mirror of
https://gitlab.com/rubenwardy/awards.git
synced 2024-12-25 02:00:41 +01:00
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
|
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,16 +313,28 @@ 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
|
||||||
|
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)
|
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
|
||||||
sid = 1
|
sid = 1
|
||||||
@ -334,6 +346,13 @@ 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]
|
||||||
|
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
|
local title = item.name
|
||||||
if def and def.title then
|
if def and def.title then
|
||||||
title = def.title
|
title = def.title
|
||||||
@ -351,6 +370,7 @@ function awards.showto(name, to, sid, text)
|
|||||||
formspec = formspec .. "label[0,3.25;"..def.description.."]"
|
formspec = formspec .. "label[0,3.25;"..def.description.."]"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- Create list box
|
-- Create list box
|
||||||
formspec = formspec .. "textlist[4.75,0;6,5;awards;"
|
formspec = formspec .. "textlist[4.75,0;6,5;awards;"
|
||||||
@ -361,18 +381,21 @@ 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.secret and not award.got then
|
||||||
|
formspec = formspec .. "#ACACACSecret Award"
|
||||||
|
else
|
||||||
|
local title = award.name
|
||||||
if def and def.title then
|
if def and def.title then
|
||||||
title = def.title
|
title = def.title
|
||||||
end
|
end
|
||||||
|
|
||||||
if award.got then
|
if award.got then
|
||||||
formspec = formspec .. minetest.formspec_escape(title)
|
formspec = formspec .. minetest.formspec_escape(title)
|
||||||
else
|
else
|
||||||
formspec = formspec .. "#ACACAC".. minetest.formspec_escape(title)
|
formspec = formspec .. "#ACACAC".. minetest.formspec_escape(title)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
formspec = formspec .. ";"..sid.."]"
|
formspec = formspec .. ";"..sid.."]"
|
||||||
|
|
||||||
-- Show formspec to user
|
-- Show formspec to user
|
||||||
|
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
|
||||||
|
10
readme.md
10
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
|
||||||
@ -42,3 +47,6 @@ A list of data referenced/hashed by the player's name.
|
|||||||
* 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