项目作者: mt-mods

项目描述 :
XP Mod for minetest
高级语言: Lua
项目地址: git://github.com/mt-mods/xp_redo.git
创建时间: 2018-05-17T06:51:27Z
项目社区:https://github.com/mt-mods/xp_redo

开源协议:GNU Lesser General Public License v2.1

下载


Minetest XP mod (xp_redo)

luacheck

Minetest mod for player experience management (xp)
It adds an xp counter per player and ranks according to your xp level.
The xp level, your rank and a progress bar to the next rank will show up in your hud.
On every rank level up you get a award-like notification.
There is also a xpgate block which, when placed under a wooden door will only allow players with a certain xp level to go through.

Installation

  • Unzip the archive, rename the folder to xp_redo and
    place it in .. minetest/mods/

  • GNU/Linux: If you use a system-wide installation place
    it in ~/.minetest/mods/.

  • If you only want this to be used in a single world, place
    the folder in .. worldmods/ in your world directory.

For further information or help, see:
https://wiki.minetest.net/Installing_Mods

Privileges

  • givexp: Manage XP of your users.

Commands

Add or remove (amount with negative sign) XP from a user:

  1. /givexp (username) (amount)

Examples:\
Give player somedude 200 XP points.

  1. /givexp somedude 200

Remove 100 XP points from player somedude.

  1. /givexp somedude -100

Dependencies

Optional dependencies

Areas integration

There are additional commands available if the areas mod is available:

  • /area_xp_set_min <id> <xp> assign a min-value that a aplayer needs to interact with the area
  • /area_xp_get_min <id> returns the min-value, if any for that area

For this to work the area has to be opened with /area_open <id>

Builtin XP events

Digging

Every node dig gives you 1 xp point

Punching

Every mob punch gives you the amount of damage on the mob in xp

Ranks

See:

Settings

  • xp_redo.discord.webhook_url Discord webhook URL (optional)
  • xp_redo.discord.texture_baseurl Base URL for the webhook avatar image (optional)

For the webhook, the mod has to be in the secure.http_mods setting (in minetest.conf):

  1. secure.http_mods = xp_redo

Lua api

Ranks

xp_redo.register_rank(rankDef)

  1. rankDef = {
  2. name = "Rank name",
  3. icon = "myicon.png" -- Should fit withing the background icon (16x32px)
  4. color = {r=255, g=255, b=255}, -- Player name tag color
  5. xp = 100 -- xp threshold
  6. }

Ranks are held in xp_redo.ranks as a table.

xp_redo.get_rank(xpAmount)

Returns the rankDef for given xp amount

Hooks

  1. xp_redo.register_hook({
  2. xp_change = function(playername, xp)
  3. -- new xp value
  4. end,
  5. rank_change = function(playername, xp, rank)
  6. -- new rank
  7. end,
  8. stat_change = function(playername, name, value)
  9. -- see stats.lua
  10. end
  11. })

XP

xp_redo.get_xp(playername)

Returns the XP level for given playername (always a number).

xp_redo.add_xp(playername, xp)

Adds the amount of xp to given playername (can be negative for xp removal).

License

See LICENSE.txt

Pull requests / bugs

I’m happy for any bug reports or pull requests (code and textures).

TODO / Ideas

  • Scoreboard (block)
  • More doors
  • Door-teleport alternative
  • XP Regions
  • XP entities/items