minetest-xpmod:xp.git
3 years agofixed old gitorious links master
Andrew Engelbrecht [Wed, 4 Mar 2015 05:23:55 +0000 (00:23 -0500)]
fixed old gitorious links

this is now hosted on gitlab.

4 years agoupdate version to 0.1.1
Andrew Engelbrecht [Wed, 25 Sep 2013 19:39:33 +0000 (15:39 -0400)]
update version to 0.1.1

license change means we need a new stable release.

4 years agocorrect texture license
Andrew Engelbrecht [Wed, 25 Sep 2013 19:34:12 +0000 (15:34 -0400)]
correct texture license

these textures are based on the original minetest textures. therefore,
they fall under CC BY-SA 3.0

4 years agobump to version 0.1
Andrew Engelbrecht [Wed, 25 Sep 2013 18:09:48 +0000 (14:09 -0400)]
bump to version 0.1

it's a good thing :)

4 years agoreorganize the directory structure a bit.
Andrew Engelbrecht [Wed, 25 Sep 2013 18:03:00 +0000 (14:03 -0400)]
reorganize the directory structure a bit.

this looks cleaner

4 years agolist xplevels file path upon error
Andrew Engelbrecht [Wed, 25 Sep 2013 17:50:13 +0000 (13:50 -0400)]
list xplevels file path upon error

this way, the user knows where it is, and doesn't have to go digging for
it.

4 years agowork around nil player digging air on player death
Andrew Engelbrecht [Wed, 25 Sep 2013 17:33:00 +0000 (13:33 -0400)]
work around nil player digging air on player death

the mt server says that the nil player has dug at air, or lava, etc.
when a player dies. you can see this in the log output of minetest
commit # 9e6bdc377fcbc8e4c795bd76d582197e8afb3530 , etc.

the problem was that the xp mod was then saving xp for player '', and
then this was causing garbage parsing issues upon startup.

4 years agoupgrade the experium pick
Andrew Engelbrecht [Wed, 25 Sep 2013 16:19:55 +0000 (12:19 -0400)]
upgrade the experium pick

keep good on our promise to be twice as good as the mese pick.

5 years agochange the 'construction' skill to 'building'
Andrew Engelbrecht [Sun, 1 Sep 2013 01:02:11 +0000 (21:02 -0400)]
change the 'construction' skill to 'building'

also bump the version to 0.0.4

5 years agoadded game info into readme file
Andrew Engelbrecht [Sun, 1 Sep 2013 00:25:20 +0000 (20:25 -0400)]
added game info into readme file

also condensed in the contents of the install file.

5 years agofixed bug from mt api change
Andrew Engelbrecht [Sun, 1 Sep 2013 00:23:34 +0000 (20:23 -0400)]
fixed bug from mt api change

get_note_drops() returns names now, not itemstacks.

5 years agoinclude installation instructions
Andrew Engelbrecht [Sat, 31 Aug 2013 23:44:29 +0000 (19:44 -0400)]
include installation instructions

in the INSTALL file

5 years agogeneralized drop function, for arbitrary scarcity
Andrew Engelbrecht [Wed, 24 Oct 2012 20:45:42 +0000 (16:45 -0400)]
generalized drop function, for arbitrary scarcity

this way, if other people want to use the function for drops that are
less scarce, they may. also, certain skills could give drops more
readily.

5 years agoadded check for skill validity
Andrew Engelbrecht [Wed, 24 Oct 2012 20:22:23 +0000 (16:22 -0400)]
added check for skill validity

instead of letting admins boost mistyped skills, the names of skills are
checked before granting.

if another mod wants to register a skill as valid, they may do so using
xp_register_skill(). This is so that others can plug into the xp mod
with their own skill types.

5 years agoclarified a function's purpose
Andrew Engelbrecht [Wed, 24 Oct 2012 19:50:57 +0000 (15:50 -0400)]
clarified a function's purpose

fixed a function's documentation, and gave it a better name

5 years agoadded missing spaces to logging strings.
Andrew Engelbrecht [Wed, 24 Oct 2012 19:47:39 +0000 (15:47 -0400)]
added missing spaces to logging strings.

some words were being printed without spaces between them.

5 years agoplayer can get experium from construction.
Andrew Engelbrecht [Wed, 24 Oct 2012 19:45:37 +0000 (15:45 -0400)]
player can get experium from construction.

now this type of experience has a use.

5 years agoadded extra drops when using experium pick
Andrew Engelbrecht [Sat, 20 Oct 2012 20:33:17 +0000 (16:33 -0400)]
added extra drops when using experium pick

now the player gets extra drops of coal, ore, etc. when digging with
their experium pick. this is to make the tool more desirable to use.

the player gets the extra drop if the drop is not the same as the node
itself, but excludes cobble and dirt.

also, i fixed a little bit of documentation and changed a function name
for clarity's sake.

5 years agofixed comment
Andrew Engelbrecht [Fri, 19 Oct 2012 16:45:51 +0000 (12:45 -0400)]
fixed comment

documentation should match the source code

5 years agogive better names to files.
Andrew Engelbrecht [Fri, 19 Oct 2012 16:43:15 +0000 (12:43 -0400)]
give better names to files.

the previous names were confusing and too long.

5 years agouse standard item and file naming scheme
Andrew Engelbrecht [Fri, 19 Oct 2012 16:03:46 +0000 (12:03 -0400)]
use standard item and file naming scheme

since minetest calls the mese pick "default:pick_mese", etc., I've
changed the names of the various items and image files.

5 years agoadded experium drop and experium pick
Donald Robertson, III [Fri, 19 Oct 2012 15:37:57 +0000 (11:37 -0400)]
added experium drop and experium pick

now this mod drops experium randomly, based on level, instead of mese.
It can be used to upgrade a mese pick into an experium pick. It's
currently no different from a mese pick, but will have other advantages
in the future.

5 years agomoved chat stuff to another file
Andrew Engelbrecht [Thu, 27 Sep 2012 21:31:52 +0000 (17:31 -0400)]
moved chat stuff to another file

to keep the program organized, i've put the /showxp and /givexp commands
into another file.

5 years agoadded logging for item drops.
Andrew Engelbrecht [Thu, 27 Sep 2012 21:27:14 +0000 (17:27 -0400)]
added logging for item drops.

the default in minetest seems to be to log just about every event in the
game, so i figured that it made sense to log when people got random
drops due to their level.

5 years agogeneralized drop function
Andrew Engelbrecht [Thu, 27 Sep 2012 21:11:12 +0000 (17:11 -0400)]
generalized drop function

now the name of the dropped item is specified by the calling function.

5 years agomove drop-related stuff to another file
Andrew Engelbrecht [Thu, 27 Sep 2012 21:01:51 +0000 (17:01 -0400)]
move drop-related stuff to another file

to keep the program organized, drop-related functions and callbacks have
been moved to a separate file.

5 years agothe joining player callback belongs in other file
Andrew Engelbrecht [Thu, 27 Sep 2012 20:52:06 +0000 (16:52 -0400)]
the joining player callback belongs in other file

since updating the table of existing players is related to xp stuff, it
belongs in the other file, for the sake of organization.

5 years agomoved xp functions to a separate file
Andrew Engelbrecht [Thu, 27 Sep 2012 20:48:14 +0000 (16:48 -0400)]
moved xp functions to a separate file

for the sake of organization, some functions have been moved to another
file.

5 years agomake drops more frequent.
Andrew Engelbrecht [Thu, 27 Sep 2012 20:27:07 +0000 (16:27 -0400)]
make drops more frequent.

now drops are easier to come by, ranging from 1/300 to 1/30,000 of each
node dig.

this makes these drops less unobtainable.

5 years agoimproved comment headers and a comment
Andrew Engelbrecht [Thu, 27 Sep 2012 20:25:37 +0000 (16:25 -0400)]
improved comment headers and a comment

it's good to know what a group of functions do.

5 years agoremoved some old code
Andrew Engelbrecht [Thu, 27 Sep 2012 20:05:32 +0000 (16:05 -0400)]
removed some old code

givemese() doesn't need to check the level of the player.
the code was originally for debugging purposes.

5 years agoremove unneeded function
Andrew Engelbrecht [Thu, 27 Sep 2012 20:01:18 +0000 (16:01 -0400)]
remove unneeded function

this function is not currently being used.

5 years agomoved file functions into another file
Andrew Engelbrecht [Thu, 27 Sep 2012 19:53:58 +0000 (15:53 -0400)]
moved file functions into another file

instead of having everything in one file, the code should be easier to
read now that it is split up.

in order to give the included file access to outer scope variables in
init.lua, those variables cannot be local. however, this means that they
also become accessible to other mods. furthermore, they are accessible
even without a prefix like this: "xp.varname".

to solve this issue, i've added "xp_" as a prefix to outer scope
variables and functions in this mod, like the mobf mod does.

5 years agoset up the givexp privilege
Andrew Engelbrecht [Sun, 23 Sep 2012 21:57:07 +0000 (17:57 -0400)]
set up the givexp privilege

now only those with the required privilege can give themselves and
others experience points.

5 years agotreat lvls > max_level as max_level, when dropping
Andrew Engelbrecht [Sun, 23 Sep 2012 02:04:04 +0000 (22:04 -0400)]
treat lvls > max_level as max_level, when dropping

sine players can reach a high level and keep that level even after an
admin reduces the max_level for the server, those players should not get
a bonus for the random drop rate of mese.

5 years agouse minecraft's builtin pseudorandom number gen.
Andrew Engelbrecht [Sun, 23 Sep 2012 01:56:35 +0000 (21:56 -0400)]
use minecraft's builtin pseudorandom number gen.

maybe this one is better than lua's, though i am not sure.

also, i refactored a bit.

5 years agoinfinite max_level is crashy and unneeded.
Andrew Engelbrecht [Sun, 23 Sep 2012 01:30:17 +0000 (21:30 -0400)]
infinite max_level is crashy and unneeded.

treating a max_level of 0 as an infinite maximum level is problematic
since someone giving a a player a huge amount of xp caused the mod to
suck up all of the sytem memory, while computing the number of xp
required to gain the next level.

now a max_level of 0 means that players cannot gain any more levels than
they currently have.

5 years agocall this version 0.0.3
Andrew Engelbrecht [Sat, 22 Sep 2012 23:37:52 +0000 (19:37 -0400)]
call this version 0.0.3

this version should be backwards compatible with versions from 0.0.1.
those versions should be forwards compatible with this version.

5 years agomake level advancement much saner.
Andrew Engelbrecht [Sat, 22 Sep 2012 23:32:41 +0000 (19:32 -0400)]
make level advancement much saner.

instead of having beginning levels extremely easy to gain, and later
ones nearly impossible, the curve starts a bit higher and doesn't
escalate as quickly.

the number of xp required to gain the next level is proportional to the
square of the next level.

5 years agomake mese drops more rare.
Andrew Engelbrecht [Sat, 22 Sep 2012 23:17:13 +0000 (19:17 -0400)]
make mese drops more rare.

now the drop probability ranges from ~ 1/100,000 - 1/1,000 depending on
the player's level.

5 years agoadded random drop of mese after digging.
Andrew Engelbrecht [Sat, 22 Sep 2012 20:50:54 +0000 (16:50 -0400)]
added random drop of mese after digging.

when the player digs an object, they have a chance of getting mese. as
their level increases, that becomes more likely.

6 years agothis is version 0.0.2
Andrew Engelbrecht [Mon, 10 Sep 2012 20:57:11 +0000 (16:57 -0400)]
this is version 0.0.2

6 years agoMerge branch 'more-xp-types'
Andrew Engelbrecht [Mon, 10 Sep 2012 19:33:54 +0000 (15:33 -0400)]
Merge branch 'more-xp-types'

the construction skill may be useful, even if it is only used in the
future as part of the calculation for how quickly one digs.

Conflicts:
init.lua

6 years agothe xp-levels file was moved long-ago
Andrew Engelbrecht [Mon, 10 Sep 2012 19:10:53 +0000 (15:10 -0400)]
the xp-levels file was moved long-ago

the file no longer needs to be in .gitignore

also, added some helpful .gitignore entries

6 years agolocalized all the variables in the .lua file
Andrew Engelbrecht [Mon, 10 Sep 2012 19:07:07 +0000 (15:07 -0400)]
localized all the variables in the .lua file

now there shouldn't be any non-local variables in the file. those that
are in functions should be local to the function, except those that are
declared or defined outside of the function.

6 years agoadded helpful log message when user gains xp
Andrew Engelbrecht [Mon, 10 Sep 2012 18:25:17 +0000 (14:25 -0400)]
added helpful log message when user gains xp

also tweaked the /givexp log message

6 years agoclarified xp levels messages
Andrew Engelbrecht [Mon, 10 Sep 2012 17:02:42 +0000 (13:02 -0400)]
clarified xp levels messages

saying you are level 5 with 1 xp seems contradictory, but this makes
more sense:

you are level 5 plus 1 xp.

6 years agocheck if player exists and not if they're online
Andrew Engelbrecht [Mon, 10 Sep 2012 16:56:00 +0000 (12:56 -0400)]
check if player exists and not if they're online

the minetest api doesn't give a player objectref if the queried player
isn't online. so "mike" will look like they don't exist if they are not
currently logged into the server.

i've written a function that checks for the existence of a player, by
looking in a world's player/ directory. if the file can't be opened for
reading, then that check will fail.

the table of player existence gets updated when someone logs into the
server, so that offers a workaround for that bug, and should cover new
players who join.

6 years agoclarified some code
Andrew Engelbrecht [Mon, 10 Sep 2012 14:16:45 +0000 (10:16 -0400)]
clarified some code

described a text 'pattern' (text search), etc.

6 years agoversions in the version string should be >= 1 char
Andrew Engelbrecht [Mon, 10 Sep 2012 14:06:49 +0000 (10:06 -0400)]
versions in the version string should be >= 1 char

the version and format version should never be zero length.

6 years agouse 'stat' variable as a shorthand
Andrew Engelbrecht [Mon, 10 Sep 2012 14:01:56 +0000 (10:01 -0400)]
use 'stat' variable as a shorthand

the 'stat' variable is being used as a pointer to
'xplevels[name][skill]' for readability

6 years agoxp thresholds are pre-calc'd for fast lookup
Andrew Engelbrecht [Mon, 10 Sep 2012 13:17:57 +0000 (09:17 -0400)]
xp thresholds are pre-calc'd for fast lookup

now the number of xp needed to gain each next level are calculated on the
first xp point increment, instead of per-level on every xp increment.

6 years agoit is now possible to increment xp by > 1 point
Andrew Engelbrecht [Mon, 10 Sep 2012 00:21:01 +0000 (20:21 -0400)]
it is now possible to increment xp by > 1 point

gainxp() now requires a number as an argument specifying the number of
xp to increment by.

/givexp also requires the number of xp to be specified as an argument.

6 years agoadded README file, with links.
Andrew Engelbrecht [Sun, 9 Sep 2012 22:49:59 +0000 (18:49 -0400)]
added README file, with links.

moved the acknowledgement of the sethome mod to the README file, also
put some links in that file.

6 years agoReorganized file, added comment section headers
Andrew Engelbrecht [Sun, 9 Sep 2012 22:41:43 +0000 (18:41 -0400)]
Reorganized file, added comment section headers

loapxp() is at the bottom of the file, and titles have been added to
different sections of the file.

6 years agoimproved help text
Andrew Engelbrecht [Sun, 9 Sep 2012 22:28:51 +0000 (18:28 -0400)]
improved help text

changes that apply to /showxp

6 years ago/plusxp is now /givexp (call w/ username + skill)
Andrew Engelbrecht [Sun, 9 Sep 2012 22:11:56 +0000 (18:11 -0400)]
/plusxp is now /givexp (call w/ username + skill)

the /plusxp chat command has been replaced by /givexp, which requires
two arguments, one being the name of the user to give xp to, and the
other being the name of the skill.

6 years agoallow letters in version string
Andrew Engelbrecht [Sun, 9 Sep 2012 15:57:51 +0000 (11:57 -0400)]
allow letters in version string

this way, version 0.0.1-r2 is allowable in /xplevels.

the file format version number doesn't need to be bumped, since i
haven't pushed its initial implementation before this commit.

6 years agobroke out a function in prep. for new callback.
Andrew Engelbrecht [Sun, 9 Sep 2012 15:45:25 +0000 (11:45 -0400)]
broke out a function in prep. for new callback.

right now, the stats aren't saved at the moment of server shutdown, so
stats from the last few seconds are often lost. if celeron makes a new
callback for system shutdown, then having the save capability in its own
function is a good idea, as opposed to being inline with the
minetest.register_globalstep() function.

6 years agoParsing errors give more helpful error messages
Andrew Engelbrecht [Sun, 9 Sep 2012 15:20:37 +0000 (11:20 -0400)]
Parsing errors give more helpful error messages

the failing chunks get printed to output, along with the bad line.

6 years agomade the file name a variable
Andrew Engelbrecht [Sun, 9 Sep 2012 14:30:06 +0000 (10:30 -0400)]
made the file name a variable

also, changing that variable affects error messages.

6 years agoadded some helpful comments
Andrew Engelbrecht [Sun, 9 Sep 2012 14:23:38 +0000 (10:23 -0400)]
added some helpful comments

these comments explain some of the functions better

6 years agoadded construction xp. (may never be useful)
Andrew Engelbrecht [Sun, 9 Sep 2012 14:04:17 +0000 (10:04 -0400)]
added construction xp. (may never be useful)

this commit adds xp and level stats that increment after placing a
block. since construction is instant, it's not clear how high xp of this
type could help the player.

6 years agoremoved message about +1 xp every time you dig
Andrew Engelbrecht [Sun, 9 Sep 2012 13:48:00 +0000 (09:48 -0400)]
removed message about +1 xp every time you dig

that message about gaining xp was just for debugging.

6 years agofixed crash when 'noob' player checked xp
Andrew Engelbrecht [Sun, 9 Sep 2012 02:12:15 +0000 (22:12 -0400)]
fixed crash when 'noob' player checked xp

if a player had no xp of any kind, then ran the '/showxp' command, then
the server would crash. this commit fixes that bug.

6 years agoadded skillsets (multiple xp/level counters)
Andrew Engelbrecht [Sun, 9 Sep 2012 01:15:29 +0000 (21:15 -0400)]
added skillsets (multiple xp/level counters)

now players can have multiple types of experience. (digging is the only
one that gets incremented right now.)

also, since the format of the save file has changed, i've added
functions to detect the file format based on the first line of the
/xplevels file. that way, data won't be corrupted or garbled when there
is an xp mod upgrade or downgrade.

/showxp has been changed to accept the name of the skillset as an
argument; otherwise, it prints them all.

6 years agoremove some unneeded function calls
Andrew Engelbrecht [Thu, 6 Sep 2012 23:16:33 +0000 (19:16 -0400)]
remove some unneeded function calls

the "player" variable isn't used here right now.

6 years agomake xp gain happen after digging, not on punch.
Andrew Engelbrecht [Thu, 6 Sep 2012 23:13:59 +0000 (19:13 -0400)]
make xp gain happen after digging, not on punch.

the xp gain should only happen when the item is harvested, not when it
gets tapped once by the tool.

6 years agoadded wtfpl license header
Andrew Engelbrecht [Thu, 6 Sep 2012 23:06:10 +0000 (19:06 -0400)]
added wtfpl license header

license header has been added, for clarity.

6 years agogain xp when punching a node
Andrew Engelbrecht [Thu, 6 Sep 2012 23:00:53 +0000 (19:00 -0400)]
gain xp when punching a node

now the player gains xp when they punch a node.

6 years agotesting punch detection of arbitrary nodes
Andrew Engelbrecht [Thu, 6 Sep 2012 22:45:14 +0000 (18:45 -0400)]
testing punch detection of arbitrary nodes

now we can tell if something gets punched. this will be useful for
gaining xp if you hit an object.

6 years agoplayers can show xp with /showxp, gain w/ /plusxp
Andrew Engelbrecht [Wed, 5 Sep 2012 21:37:23 +0000 (17:37 -0400)]
players can show xp with /showxp, gain w/ /plusxp

these two chat commands show the player's xp and increment xp by one.
currently, the xp needed to get to the next level is 2 ^ level, but this
will obviously have to change in the future.

the xp is saved to disk every 10 seconds. unfortunately, there is no
shutdown callback for minetest at this moment, so the last few seconds
of xp will be lost by players right before the game is shut down.

also, there is only one single xp stat, but there will likely be more in
the future, with the chance to initialize an arbitrary one. the file
format will change, becoming incompatible with the current one.

6 years agoinitial commit, based on sethomes mod, 8033915df1
Andrew Engelbrecht [Wed, 5 Sep 2012 18:42:00 +0000 (14:42 -0400)]
initial commit, based on sethomes mod, 8033915df1

this is based on the sethomes mod.

https://github.com/xyzz/minetest-mods