forked from nalc/awards
Add support for death reasons
This commit is contained in:
parent
6c79a2f73f
commit
f571f9d6eb
@ -97,6 +97,8 @@ Callbacks (register a function to be run)
|
|||||||
* craft type: Craft something.
|
* craft type: Craft something.
|
||||||
* item: the crafted item type. If nil, all crafted items are counted
|
* item: the crafted item type. If nil, all crafted items are counted
|
||||||
* death type: Die.
|
* 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.
|
* chat type: Write a chat message.
|
||||||
* join type: Join the server.
|
* join type: Join the server.
|
||||||
* (for all types) target - how many times to dig/place/craft/etc.
|
* (for all types) target - how many times to dig/place/craft/etc.
|
||||||
|
5
api.lua
5
api.lua
@ -48,6 +48,11 @@ local function convert_data()
|
|||||||
data[from] = nil
|
data[from] = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
data.death = {
|
||||||
|
unknown = data.death,
|
||||||
|
__total = data.death,
|
||||||
|
}
|
||||||
|
|
||||||
-- Convert item db to new format
|
-- Convert item db to new format
|
||||||
local counted_items = {
|
local counted_items = {
|
||||||
count = "dig",
|
count = "dig",
|
||||||
|
26
triggers.lua
26
triggers.lua
@ -14,13 +14,6 @@
|
|||||||
-- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
-- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
--
|
--
|
||||||
|
|
||||||
awards.register_trigger("death", {
|
|
||||||
type = "counted",
|
|
||||||
progress = "@1/@2 deaths",
|
|
||||||
auto_description = { "Die once", "Die @1 times" },
|
|
||||||
})
|
|
||||||
minetest.register_on_dieplayer(awards.notify_death)
|
|
||||||
|
|
||||||
|
|
||||||
awards.register_trigger("chat", {
|
awards.register_trigger("chat", {
|
||||||
type = "counted",
|
type = "counted",
|
||||||
@ -45,6 +38,25 @@ awards.register_trigger("join", {
|
|||||||
minetest.register_on_joinplayer(awards.notify_join)
|
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", {
|
awards.register_trigger("dig", {
|
||||||
type = "counted_key",
|
type = "counted_key",
|
||||||
progress = "@1/@2 dug",
|
progress = "@1/@2 dug",
|
||||||
|
Loading…
Reference in New Issue
Block a user