Level System

A simple plugin to add XP and levels in the game

Total Downloads: 1,277 - First Release: Apr 9, 2016 - Last Update: Apr 1, 2018

5/5, 11 likes
  1. I expect when you add more methods for XP collection, not just all killing (crafting, collect resources, collect containers, play time, siege and maybe other unique actions).
    Hopefully @Wulf adds the necessary hooks.
     
  2. I first gotta find good hooks for wulf to add. The resource gathering is a pain to hook but I try.
    I will be on vacation till Friday so can't work on it till then.
     
  3. 00:56 [Error] Failed to call hook 'OnCubeTakeDamage' on plugin 'LevelSystem v0.5.0' (NullReferenceException: Object reference not set to an instance of an object)
    00:56 [Debug] at Oxide.Plugins.LevelSystem.OnCubeTakeDamage (CodeHatch.Blocks.Networking.Events.CubeDamageEvent damageEvent) [0x00000] in <filename unknown>:0
    at Oxide.Plugins.LevelSystem.DirectCallHook (System.String name, System.Object& ret, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Plugins.CSharpPlugin.InvokeMethod (HookMethod method, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Core.Plugins.CSPlugin.OnCallHook (System.String name, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Core.Plugins.Plugin.CallHook (System.String name, System.Object[] args) [0x00000] in <filename unknown>:0
    00:56 [Error] Failed to call hook 'OnCubeTakeDamage' on plugin 'LevelSystem v0.5.0' (NullReferenceException: Object reference not set to an instance of an object)
    00:56 [Debug] at Oxide.Plugins.LevelSystem.OnCubeTakeDamage (CodeHatch.Blocks.Networking.Events.CubeDamageEvent damageEvent) [0x00000] in <filename unknown>:0
    at Oxide.Plugins.LevelSystem.DirectCallHook (System.String name, System.Object& ret, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Plugins.CSharpPlugin.InvokeMethod (HookMethod method, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Core.Plugins.CSPlugin.OnCallHook (System.String name, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Core.Plugins.Plugin.CallHook (System.String name, System.Object[] args) [0x00000] in <filename unknown>:0
    00:56 [Error] Failed to call hook 'OnCubeTakeDamage' on plugin 'LevelSystem v0.5.0' (NullReferenceException: Object reference not set to an instance of an object)
    00:56 [Debug] at Oxide.Plugins.LevelSystem.OnCubeTakeDamage (CodeHatch.Blocks.Networking.Events.CubeDamageEvent damageEvent) [0x00000] in <filename unknown>:0
    at Oxide.Plugins.LevelSystem.DirectCallHook (System.String name, System.Object& ret, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Plugins.CSharpPlugin.InvokeMethod (HookMethod method, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Core.Plugins.CSPlugin.OnCallHook (System.String name, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Core.Plugins.Plugin.CallHook (System.String name, System.Object[] args) [0x00000] in <filename unknown>:0
    00:56 [Error] Failed to call hook 'OnCubeTakeDamage' on plugin 'LevelSystem v0.5.0' (NullReferenceException: Object reference not set to an instance of an object)
    00:56 [Debug] at Oxide.Plugins.LevelSystem.OnCubeTakeDamage (CodeHatch.Blocks.Networking.Events.CubeDamageEvent damageEvent) [0x00000] in <filename unknown>:0
    at Oxide.Plugins.LevelSystem.DirectCallHook (System.String name, System.Object& ret, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Plugins.CSharpPlugin.InvokeMethod (HookMethod method, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Core.Plugins.CSPlugin.OnCallHook (System.String name, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Core.Plugins.Plugin.CallHook (System.String name, System.Object[] args) [0x00000] in <filename unknown>:0
    00:56 [Error] Failed to call hook 'OnCubeTakeDamage' on plugin 'LevelSystem v0.5.0' (NullReferenceException: Object reference not set to an instance of an object)
    00:56 [Debug] at Oxide.Plugins.LevelSystem.OnCubeTakeDamage (CodeHatch.Blocks.Networking.Events.CubeDamageEvent damageEvent) [0x00000] in <filename unknown>:0
    at Oxide.Plugins.LevelSystem.DirectCallHook (System.String name, System.Object& ret, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Plugins.CSharpPlugin.InvokeMethod (HookMethod method, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Core.Plugins.CSPlugin.OnCallHook (System.String name, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Core.Plugins.Plugin.CallHook (System.String name, System.Object[] args) [0x00000] in <filename unknown>:0
    00:56 [Error] Failed to call hook 'OnCubeTakeDamage' on plugin 'LevelSystem v0.5.0' (NullReferenceException: Object reference not set to an instance of an object)
    00:56 [Debug] at Oxide.Plugins.LevelSystem.OnCubeTakeDamage (CodeHatch.Blocks.Networking.Events.CubeDamageEvent damageEvent) [0x00000] in <filename unknown>:0
    at Oxide.Plugins.LevelSystem.DirectCallHook (System.String name, System.Object& ret, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Plugins.CSharpPlugin.InvokeMethod (HookMethod method, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Core.Plugins.CSPlugin.OnCallHook (System.String name, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Core.Plugins.Plugin.CallHook (System.String name, System.Object[] args) [0x00000] in <filename unknown>:0
    00:56 [Error] Failed to call hook 'OnCubeTakeDamage' on plugin 'LevelSystem v0.5.0' (NullReferenceException: Object reference not set to an instance of an object)
    00:56 [Debug] at Oxide.Plugins.LevelSystem.OnCubeTakeDamage (CodeHatch.Blocks.Networking.Events.CubeDamageEvent damageEvent) [0x00000] in <filename unknown>:0
    at Oxide.Plugins.LevelSystem.DirectCallHook (System.String name, System.Object& ret, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Plugins.CSharpPlugin.InvokeMethod (HookMethod method, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Core.Plugins.CSPlugin.OnCallHook (System.String name, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Core.Plugins.Plugin.CallHook (System.String name, System.Object[] args) [0x00000] in <filename unknown>:0
    00:56 [Error] Failed to call hook 'OnCubeTakeDamage' on plugin 'LevelSystem v0.5.0' (NullReferenceException: Object reference not set to an instance of an object)
     
  4. does not work /topplayers
     
  5. I know but I'm currently on vacation so can't fix it now.
     
  6. will wait :)
     
  7. kill up to level 3 is impossible, and a rope tie , and you can burn .... ( ( ( ( ( ( ( (
     
  8. I can't cancel the roping (yet) so I can't help with that now. Should be easier to hook then the resource gathering so will see if I can do that.
    If I can I will ask wulf to add it so we can cancel the roping and create a more safe start for new players.
    Currently also trying to fix everything in the levelsystem. The command didn't work due to the conversion to the new data file and thus not getting the data needed (which will break it).
     
  9. The problems are fixed though I need someone to help me test the hook so I can modify and hopefully add it to oxide.
     
  10. D-Kay updated Level System with a new update entry:

    0.5.1

     
  11. D-Kay updated Level System with a new update entry:

    0.5.2

     
  12. Hey guys few quick questions..
    1) Is there a way to update this plugin without losing the current player's levels? Last time I updated it, it reset all players to lvl 1. we had 21 players I had to go through and manually give exp to. So, how do you update the plugin without losing everyone's levels?

    2) I set that players need to be level 2 to PvP AND to Rope/chain players. The level requirement for PvP works great, however.. the Roping level requirement does not. It still allows the players that are lvl 1 to rope and catpure other players. I know you guys are busy and are doing an awesome job on this plugin! I'm just wondering if this is for everyone or is there something that I need to do to make the level Required Capture function to work..?
     
    1. Did you look at the update notes I added for update 0.5.0? I told that if you did not want to loose all data you need to use a command since we use a new way of saving the data since that update. "If updating from a version before 0.5.0 you'll have a new data file and thus lost all xp data from before. You can use the command /xpconvertdatafile to convert the data of the old file to the new file."
    2. Did you update your oxide? If not then you don't have the hook yet. Again if you take a look at the update notes from the moment the roping was added you'll see I said it would not function yet since the hook was not there. The hook was added in oxide version 2.0.2274 and a few days later I updated the plugin to work with the hook.
    [DOUBLEPOST=1471467469][/DOUBLEPOST]If anyone happens to have any new ideas for the system please let me know. The new hooks for earning xp are still a long way off.
     
  13. awesome sounds good, thanks!! :D
     
  14. Just an fyi. I did the command and it still wiped the levels. which sucks cause we have to individually add every skill point. Wait, that's a good question lol. there a way to add multiple points or can you only add one point at a time?
     
  15. Can you check the data files SavedPlayerXp and SavedPlayerXpData in the data folder of oxide and compare them?
    How you mean adding a point? If you mean adding a levelup point to a stat then no. Will see if I can make something for this.
     
  16. sure I'll check. Also, really quick question. If an admin gives the players their levels back with /givexp amount player..etc. They do not get the skill points to level up with again. Is there a way for them to get the points back AND the levels?
     
  17. They should get the points. I'm having no problems with that on my end. You can chech the SavedPlayerXpData file for confirmation if they get the points or not.
    The file structure is easy to read. you can ctrl/cmd + f to find their name and the amount of levelup points they have next to "Points".
     
  18. Where do I find that SavedPlayerXpData file? In the FTP?
    [DOUBLEPOST=1471700859][/DOUBLEPOST]
    Ignore that, I just saw where in your previous post lol. lemme' check that in a sec
    [DOUBLEPOST=1471701089][/DOUBLEPOST]so if i change this file. Add points to the SavedPlayerXpData file than they'll have those upon next restart? I can change the stats of players and what not here?
     
  19. Yes though you're not meant to edit it namually. The plugin should already give points when you use /givexp and that player levels up because of it. It should also move the data from the previous data file (SavedPlayerXp) to the new data file with the command I told you about. those things you need to check if they worked.