Sign in to follow this  
Smebb

[RELEASE] Wurm Skills Dump to CSV to SQL Tool

Recommended Posts

As I mentioned in a previous topic me and Slinky were working on a Wurm skills dump to SQL tool. While working on getting the dump to SQL we had to find an easy way to parse the data and put it in to an easy form for making SQL queries... so we made a skills2CSV converter. Since then the tool(s) have evolved and they do a bit more than just convert the raw skill dump to an SQL file.

 

The online toolhttp://vwtfoundation.co.uk/wurmimport/
Forum post about our Wurm Database Spreadsheethttp://forum.wurmonline.com/index.php?/topic/132940-wurm-skills-spreadsheet/

Download the Tool

To download the tool for further development or testing locally we have now decided to release the tool: http://www.vwtfoundation.co.uk/Wurm/WUChar.zip temporary URL https://www.dropbox.com/s/a2yiv4l988agdrz/WUChar.zip?dl=0

Neither of us are pros at PHP/Javascript/SQLite so please excuse the quality of scripting. Most of it is commented so you should be able to understand what is doing what from where, etc. If you have any advice or input it would be greatly appreciated.

The tool is provided as is and neither me nor Slinky will take any responsibility for you using the files. To use the tool simply upload to a PHP 5 enabled web site/server and extract the WUChar.zip contents. You can name the WUChar directory to anything you like. All the rest is pretty self explanatory for people who understand PHP.

 

It would be nice if someone could improve the security and/or convert this to Java so a portable version is available. If you know Java and understand PHP/Javascript/HTML forms and fancy having a crack at making a Java application out of this tool - please do!

PLEASE NOTE: Do NOT use the SQL queries on a live server yet. If you do - you do so at your own discretion. There are warnings on the tools but I thought I'd just warn you beforehand. It's still a work in progress but I need people to test it. So far we've had no problem importing our own skills and adding attributes on to our test server and the skills work/update/degrade when you die just fine.

 

To import the SQL file created:

  • Shut down the server to avoid conflicts.
  • If you are hosting the server yourself (or single player) then navigate to "DirectoryForWurmOrServer\<Mapname>\sqlite"

                 e.g.         C:\Program Files (x86)\Steam\steamapps\common\Wurm Unlimited\WurmServerLauncher\Adventure\sqlite
     
  • Copy the UpdateSkills.sql file created with these tools in to this directory.
  • Within this directory is an application called sqlite3.exe. Just double click this application and a command prompt-like window will open with sqlite> displayed.
  • Type in the following, pressing return after each line: 
  •    .open wurmplayers.db   .read Update_Yourplayername_.sql 
  • The application will seem unresponsive for a second or two, then return back to the sqlite> prompt. Type the following then press Return:
       .exit

    (Thanks to epel for making this point)

  • It should now have now completed the SQL queries and you should now be able to start the server or game again

 
DONE:

  • Insert affinities
  • Insert Faith, Favor, Alignment, Karma and Priest/Follower status along with deity
  • Add to inventory SQL queries (someone is going to have to help with item IDs /rarity/material/etc) - The inventories are kept in a different database, however should you develop a tool that connects to the wurmitems.db file, item ids can be found here on the item_data sheet.
  • Set other character attributes
    Added so far:
    • Kingdom
    • GM status
    • Bank balance
    • Priest/Follower and Deity status
    • Sleep bonus
    • Karma
  • Grant titles Only grants titles that are given by skills. Gives titles based on gender (which you must specify). Does not add Epic titles.
  • Meditation path. Tested this with changing the server system time, adding time to the server time, and it gives questions dependant on level correctly for all paths, lets you advance properly, special abilities all work, server leaders show up for the paths, everything works as far as we can see... :) We would like some feedback on this as we've never been really high level on the paths before.

 

We made it so that it generates the SQL file with an "update_", "max_" or "reset_" prefix so you can tell at a glance what the SQL file will do. Just in case you generated a few files.

 

 

Credit for the inspiration and starting code for the CSV generator (first part of the tool) goes to http://wurmkit.com/
Edited by Smebb
Changed to release, added tool download link, updated what has been done since we started the project. Changed link to point to new host.

Share this post


Link to post
Share on other sites

Good job on the SQL.

 

There is a problem though. The SKILLS table holds some skills for the player already, a row for each characteristic and one for each skill above 1.0. For example, my new toon Neofit on my private Adventure server already has 17 skills in the table. You generate an INSERT for each row that you find in the skill dump file, I understand that your web interface cannot know what rows I have in there, but it still makes duplicate rows in the table. For example I have the following duplicates in my table:

 

NAME     ID               NUMBER   name            VALUE                 MINVALUE
-------  ---------------  -------  --------------  --------------------  ---------------
Neofit   4363303829258    1        Body            20.000095833181       20.000095833181
Neofit   4466550816790    1        Body            42.934093             20.0
Neofit   4363320606474    2        Mind            20.0                  20.0
Neofit   4466550816787    2        Mind            35.29857              20.0
Neofit   4363337383690    3        Soul            20.0000638888881      20.000063888888
Neofit   4466550816784    3        Soul            29.41831              20.0
Neofit   4363354160906    100      Mind logic      25.0002710597792      25.000271059779
Neofit   4466550816789    100      Mind logic      41.291218             20.0
Neofit   4363370938122    101      Mind speed      20.0                  20.0
Neofit   4466550816788    101      Mind speed      21.702763             20.0
Neofit   4363387715338    102      Body strength   20.0003833333285      20.000383333328
Neofit   4466550816792    102      Body strength   38.959858             20.0
Neofit   4363404492554    103      Body stamina    20.0003833333285      20.000383333328
Neofit   4466550816791    103      Body stamina    31.986149             20.0
Neofit   4363421269770    104      Body control    25.0                  25.0
Neofit   4466550816793    104      Body control    31.960886             20.0
Neofit   4363438046986    105      Soul strength   20.0                  20.0
Neofit   4466550816785    105      Soul strength   29.671686             20.0
Neofit   4363454824202    106      Soul depth      20.0007666557779      20.000766655777
Neofit   4466550816786    106      Soul depth      27.605993             20.0
Neofit   4365686193930    1003     Axes            2.0                   2.0
Neofit   4466550816699    1003     Axes            33.550133             1.0
Neofit   4365702971146    1007     Woodcutting     2.0                   2.0
Neofit   4466550816711    1007     Woodcutting     59.77305              1.0
Neofit   4365652639498    1019     Nature          1.67294006374463      1.6729400637446
Neofit   4466550816722    1019     Nature          48.668163             1.0
Neofit   4363471601418    1023     Fighting        10.0                  10.0
Neofit   4466550816740    1023     Fighting        11.409132             10.0
Neofit   4365669416714    10003    Hatchet         2.0                   2.0
Neofit   4466550816702    10003    Hatchet         43.98583              1.0
Neofit   4365619085066    10018    Tracking        2.0                   2.0
Neofit   4466550816660    10018    Tracking        22.13066              1.0
Neofit   4365635862282    10071    Foraging        2.0                   2.0
Neofit   4466550816733    10071    Foraging        24.723238             1.0

 

The game is rather smart to only show the row holding the max value (or maybe it happens by accident), but I am not sure having dupe skills wouldn't break the game later on.

 

You may want to add the following SQL to the .sql that you are generating:

delete from SKILLSwhere ID in ( select id                     from (                             -- easier to cut and paste to test this way                            select                                   pl.NAME,                                   s.ID,                                   s.NUMBER,                                   s.VALUE,                                   s.MINVALUE                                   from SKILLS s                                   left outer join PLAYERS pl on ( pl.WURMID = s.OWNER)                                   where pl.name = 'Neofit'                          ) d                     where d.NUMBER = SKILLS.NUMBER                     order by d.VALUE desc                     limit -1 offset 1);

It will shamelessly delete the row with the lowest skill for every dupe detected. Tested and saw no problem in game.

Edited by neofit

Share this post


Link to post
Share on other sites

SQLite supports upserts like this:


 


INSERT OR REPLACE INTO 'SKILLS' ('ID','OWNER','NUMBER','VALUE','MINVALUE','LASTUSED') VALUES (1,1,1,1.00,1.00,0);


Edited by Ricowan

Share this post


Link to post
Share on other sites

You cannot use an "INSERT OR REPLACE" here. It decides to do a REPLACE based on a constraint violation by the INSERT. But the SKILLS table has been set up in such a way that the only constraint is the PK on ID, and there is no unicity constraint on ( OWNER, NUMBER), so technically the game allows one player to have multiple rows with the same skill in the database.


Edited by neofit

Share this post


Link to post
Share on other sites

There is a reset player skills checkbox on the SQL generation form that outputs SQL queries like this:



DELETE FROM `SKILLS` WHERE `OWNER` = (SELECT `WURMID` FROM `PLAYERS` WHERE 1=1 AND `NAME` = 'Smebb');
INSERT INTO `SKILLS` (`ID`,`OWNER`,`NUMBER`,`VALUE`,`MINVALUE`,`LASTUSED`) VALUES (1,1,1,1.00,1.00,0);
INSERT INTO `SKILLS` (`ID`,`OWNER`,`NUMBER`,`VALUE`,`MINVALUE`,`LASTUSED`) VALUES ((SELECT max(ID) FROM SKILLS)+1,(SELECT `WURMID` FROM `PLAYERS` WHERE 1=1 AND `NAME` = 'Smebb'),1023,10.0000000,10,0);
INSERT INTO `SKILLS` (`ID`,`OWNER`,`NUMBER`,`VALUE`,`MINVALUE`,`LASTUSED`) VALUES ((SELECT max(ID) FROM SKILLS)+1,(SELECT `WURMID` FROM `PLAYERS` WHERE 1=1 AND `NAME` = 'Smebb'),2,20.0000000,20,0);
INSERT INTO `SKILLS` (`ID`,`OWNER`,`NUMBER`,`VALUE`,`MINVALUE`,`LASTUSED`) VALUES ((SELECT max(ID) FROM SKILLS)+1,(SELECT `WURMID` FROM `PLAYERS` WHERE 1=1 AND `NAME` = 'Smebb'),100,20.0000000,20,0);
INSERT INTO `SKILLS` (`ID`,`OWNER`,`NUMBER`,`VALUE`,`MINVALUE`,`LASTUSED`) VALUES ((SELECT max(ID) FROM SKILLS)+1,(SELECT `WURMID` FROM `PLAYERS` WHERE 1=1 AND `NAME` = 'Smebb'),101,20.0000000,20,0);
INSERT INTO `SKILLS` (`ID`,`OWNER`,`NUMBER`,`VALUE`,`MINVALUE`,`LASTUSED`) VALUES ((SELECT max(ID) FROM SKILLS)+1,(SELECT `WURMID` FROM `PLAYERS` WHERE 1=1 AND `NAME` = 'Smebb'),3,20.0000000,20,0);
INSERT INTO `SKILLS` (`ID`,`OWNER`,`NUMBER`,`VALUE`,`MINVALUE`,`LASTUSED`) VALUES ((SELECT max(ID) FROM SKILLS)+1,(SELECT `WURMID` FROM `PLAYERS` WHERE 1=1 AND `NAME` = 'Smebb'),106,20.0000000,20,0);
INSERT INTO `SKILLS` (`ID`,`OWNER`,`NUMBER`,`VALUE`,`MINVALUE`,`LASTUSED`) VALUES ((SELECT max(ID) FROM SKILLS)+1,(SELECT `WURMID` FROM `PLAYERS` WHERE 1=1 AND `NAME` = 'Smebb'),105,20.0000000,20,0);
INSERT INTO `SKILLS` (`ID`,`OWNER`,`NUMBER`,`VALUE`,`MINVALUE`,`LASTUSED`) VALUES ((SELECT max(ID) FROM SKILLS)+1,(SELECT `WURMID` FROM `PLAYERS` WHERE 1=1 AND `NAME` = 'Smebb'),1,20.0000000,20,0);
INSERT INTO `SKILLS` (`ID`,`OWNER`,`NUMBER`,`VALUE`,`MINVALUE`,`LASTUSED`) VALUES ((SELECT max(ID) FROM SKILLS)+1,(SELECT `WURMID` FROM `PLAYERS` WHERE 1=1 AND `NAME` = 'Smebb'),102,20.0000000,20,0);
INSERT INTO `SKILLS` (`ID`,`OWNER`,`NUMBER`,`VALUE`,`MINVALUE`,`LASTUSED`) VALUES ((SELECT max(ID) FROM SKILLS)+1,(SELECT `WURMID` FROM `PLAYERS` WHERE 1=1 AND `NAME` = 'Smebb'),103,20.0000000,20,0);
INSERT INTO `SKILLS` (`ID`,`OWNER`,`NUMBER`,`VALUE`,`MINVALUE`,`LASTUSED`) VALUES ((SELECT max(ID) FROM SKILLS)+1,(SELECT `WURMID` FROM `PLAYERS` WHERE 1=1 AND `NAME` = 'Smebb'),104,20.0000000,20,0);
DELETE FROM `SKILLS` WHERE `ID` = 1 AND `OWNER` = 1;

All this series of queries does is delete skills from the player with the name provided (Smebb in this case), inserts a dummy record with the owner id of 1 (the SKILLS table doesn't autoincrement, and the primary key (ID) is set to NOT NULL so there has to be a record in the table before the other queries can be executed), puts in the base characteristics and fighting skill (20 and 10 respectively) then removes the dummy record.


 


EDIT: I've formatted the SQL generation page a bit better so the ugliness doesn't hide the clear player skill data check box. :Phttp://www.vwtfoundation.co.uk/Wurm/wurmImport.php


Edited by Smebb

Share this post


Link to post
Share on other sites

The SQL I provided will keep the highest skill in case of a dupe, which is slightly different than erasing everything. There is no reason for this on a totally new toon, but if someone raised something that isn't in the skill dump before using the import tool and wants to keep it, this is the way to do it. Up to you.


Share this post


Link to post
Share on other sites

Also, there may be a slight issue with the script. More like with my skill dump, but I don't see why I should be the only one.

 

It appears that my last skill dump, skills.20140728.0748.txt, has this:

 

      Beverages: 10.771588 10.771588 0
      Butchering: 31.264412 31.264412 0
   Fighting: 73.43082 11.409132 0
      Shield bashing: 1.2157669 1.2157669 0
      Taunting: 2.5652437 2.5652437 0
      Normal fighting: 55.522255 55.522255 0
      Defensive fighting: 7.5168114 7.5168114 0

 

The previous one, skills.20140720.1428.txt, is OK:

 

      Beverages: 10.771588 10.771588 0
      Butchering: 31.264412 31.264412 0
   Fighting: 73.43082 73.43082 0
      Shield bashing: 1.2157669 1.2157669 0
      Taunting: 2.5652437 2.5652437 0
      Normal fighting: 55.522255 55.522255 0
      Defensive fighting: 7.5168114 7.5168114 0

 

I don't know why the game decided to bug my final skill dump, it was probably feeling something, anyway, the tool ended up generating a:

 

INSERT INTO `SKILLS` [...] ),1023,11.409132,10,0);

 

It is correct in assuming that the second row is usually the highest, but now my WU toon is d0med. Maybe there is a point in making it so it uses the max of the two columns?

 

 

 

 

Share this post


Link to post
Share on other sites

Also, there may be a slight issue with the script. More like with my skill dump, but I don't see why I should be the only one.

 

It appears that my last skill dump, skills.20140728.0748.txt, has this:

 

      Beverages: 10.771588 10.771588 0

      Butchering: 31.264412 31.264412 0

   Fighting: 73.43082 11.409132 0

      Shield bashing: 1.2157669 1.2157669 0

      Taunting: 2.5652437 2.5652437 0

      Normal fighting: 55.522255 55.522255 0

      Defensive fighting: 7.5168114 7.5168114 0

 

The previous one, skills.20140720.1428.txt, is OK:

 

      Beverages: 10.771588 10.771588 0

      Butchering: 31.264412 31.264412 0

   Fighting: 73.43082 73.43082 0

      Shield bashing: 1.2157669 1.2157669 0

      Taunting: 2.5652437 2.5652437 0

      Normal fighting: 55.522255 55.522255 0

      Defensive fighting: 7.5168114 7.5168114 0

 

I don't know why the game decided to bug my final skill dump, it was probably feeling something, anyway, the tool ended up generating a:

 

INSERT INTO `SKILLS` [...] ),1023,11.409132,10,0);

 

It is correct in assuming that the second row is usually the highest, but now my WU toon is d0med. Maybe there is a point in making it so it uses the max of the two columns?

Working on it - my wife had the same issue with her skill dump. We were puzzled why her highest was lower than her current skill too.  :huh: Glad to see she wasn't the only one who had this happen. It occurs in two of her four skill dumps she has taken over the years infact..

 

Time to grind some more rust off this ole brainbox!

 

EDIT: Fixed that now. It will always store the uppermost of the highest vs current. My wife will be happy to get her 65 tailoring back. ^_^

 

 

The SQL I provided will keep the highest skill in case of a dupe, which is slightly different than erasing everything. There is no reason for this on a totally new toon, but if someone raised something that isn't in the skill dump before using the import tool and wants to keep it, this is the way to do it. Up to you.

 

The reason why I decided to delete all current skills in the database is in the case someone has set themselves to GM and raised their skills, but want to retain/revert to the skills their character had in Wurm Online. Once I feel the tools are a bit more refined I'll release the source so people can make their own custom tools.

 

EDIT 2: I see what you're saying now (I've had 2 cups of coffee). I had a DELETE query commented out in my PHP. That's why you're getting dupes. Sorry about that! Should be fixed now. I've also fixed it so any skills at exactly 1.000000 or below is not inserted. Obviously the player hadn't used or discovered the skill yet.

 

Thanks for the feedback guys much appreciated!

Edited by Smebb

Share this post


Link to post
Share on other sites

Yeah I saw it last night after I started. That's next along with priest/deity info (I'm going to add a TODO list to OP).


Share this post


Link to post
Share on other sites

Then I suppose you could release a Pro version, that adds the proper titles after inserting the skills? ;)


Share this post


Link to post
Share on other sites

Apart from the already mentioned caveats on titles and affinities, this worked fine, already imported both Jahpeople and Zenity's skillsets into my test server.


 


So the method works for that at least, which is already all I could hope for.


 


Meditation skill is fine, but of course I've lost the meditation levels that went along with that, which I half expected.


 


All in all, a great start, thanks guys :)


Share this post


Link to post
Share on other sites

Meditation skill is fine, but of course I've lost the meditation levels that went along with that, which I half expected.

 

Good call! We almost forgot about the meditation paths! Added to the to do.

Share this post


Link to post
Share on other sites

I just want to make sure I understand... this is a tool to take your Wurm Online character and import it's skills into an Unlimited character?


Share this post


Link to post
Share on other sites

I just want to make sure I understand... this is a tool to take your Wurm Online character and import it's skills into an Unlimited character?

 

Yes this imports skills from a skills dump done on Wurm Online. No this does not to create a character. You must have first logged a character in to the server/map so it is recognised in the database before you can use this. If you understand SQLlite or know what to do with the SQL code - you need to run this on wurmplayers.db.

 

I have also updated the tool to add affinity, reset skills, max all skills, and added extended options (GM Status, Faith, Favor, Alignment, which Deity they serve, which Kingdom they belong to, set bank balance in Irons, Priest status, how much sleep bonus they have, and Karma).

 

Feedback is appreciated! 

Edited by Smebb

Share this post


Link to post
Share on other sites

Re-dumped my skills, and updated, and my pottery affinity is back, along with my meditation level and a few small tweaks to a couple of unused skills to test.


 


All in all, it works perfectly for me.


 


Thanks, this is a very useful tool for importing, and editing the skill list, I can't think of anything else to add to be honest.


 


Does exactly what it says on the tin ;)


Share this post


Link to post
Share on other sites

Sorry, I'm SQL ignorant. What's the command to get the "UpdateSkills.sql" file into the "wurmplayers.db"? Could you add a quick blurb in the first post detailing how to do that? Other than that, the actual generation of the file looks great. 


 


Thanks!


 


I've tried:



.open wurmplayers.db
.read UpdateSkills.sql

in the sqlite3 shell, but starting up the server again and checking the skills doesn't show anything's changed.


 


EDIT:



.open wurmplayers.db
.read UpdateSkills.sql
.exit

Seems to work just fine.


Edited by epel

Share this post


Link to post
Share on other sites

Titles Update


 


The tool now adds titles based on skills (and gender). It does not add Epic titles or any non-skill specific titles. If anyone wants the title data I've added a sheet on our Wurm Unlimited Database spreadsheet. It's on the "title_data" sheet.


 


Still working on the meditation data!


Edited by Smebb

Share this post


Link to post
Share on other sites

Sorry, I'm SQL ignorant. What's the command to get the "UpdateSkills.sql" file into the "wurmplayers.db"? Could you add a quick blurb in the first post detailing how to do that? Other than that, the actual generation of the file looks great. 

 

Thanks!

 

I've tried:

.open wurmplayers.db

.read UpdateSkills.sql

in the sqlite3 shell, but starting up the server again and checking the skills doesn't show anything's changed.

 

When you do the SQL queries make sure your server isn't running. I don't know why but I've not had any luck executing the queries while the server was running. If you're using the SQLite3.exe in the map directory you're using and you have placed the UpdateSkills.sql file along side the SQLite3.exe, then yes those commands should work. There should be a short pause when you execute .read then the sqlite> prompt should display again.

 

We're having no problems using the provided SQLite3.exe program, using PHP nor injecting and writing changes via DB Browser for SQLite.

Share this post


Link to post
Share on other sites

That sounds like exactly what I'm doing. I get the pause in the command, but when I go back in game, nothing.


 


Is there a way to verify using DB Browser and opening wurmplayers.db?


 


I'll try it another time or two and see if there was anything different in what I was doing.


 


Edit:


Tried it one more time, with the only change being a:



.exit

at the end. That made it work.  Thanks!


Edited by epel

Share this post


Link to post
Share on other sites

If you mean verify the SQL query is being executed then yes you can:

 

  • Shut down the server. (If you're using an external host then also download the map folder so you have it locally).
  • Open DB Browser. Click "Open Database" at the top, then navigate to the wurmplayers.db file and click Open
  • To check the SQL query works:
    • Click the "Execute SQL" tab at the top and paste in the SQL code generated by the tool.
    • At the bottom of the DB Browser window (2 sections under where you pasted the SQL queries) there is an error box that will halt the queries and report any errors.
    • Once it has finished and displays the last query it executed - click "Write Changes" at the top of the window.
  • If you wish to make sure changes have been made and you understand how Structured Query databases work then you can navigate to the "Browse Data" tab and in the drop down choose PLAYERS and look for your player name.
  • If you enabled the extended options and updated your Faith, Deity, money, sleep bonus or anything like that - you should see them changed in the table. If you didn't enable extended options then simply paste this code in to the "Execute SQL" box:
    SELECT * FROM `SKILLS` WHERE `OWNER` = (SELECT `WURMID` FROM `PLAYERS` WHERE 1=1 AND `NAME` = 'YOURNAME');

    Just change YOURNAME to your player name.

  • If the skills are displaying correctly then they should be updated when you start up the server again.
  • When you start the server make sure that the "Select database to use" matches the directory of the database you just updated. If you're using an external host - make sure the database is in the correct directory when you upload it. (Some hosts only support you to use one directory and you can't change it)

I hope this helps.

Share this post


Link to post
Share on other sites

Sorry, I'm SQL ignorant. What's the command to get the "UpdateSkills.sql" file into the "wurmplayers.db"? Could you add a quick blurb in the first post detailing how to do that? Other than that, the actual generation of the file looks great. 

 

Thanks!

 

I've tried:

.open wurmplayers.db

.read UpdateSkills.sql

in the sqlite3 shell, but starting up the server again and checking the skills doesn't show anything's changed.

 

EDIT:

.open wurmplayers.db

.read UpdateSkills.sql

.exit

Seems to work just fine.

 

I actually just navigate to the sqlite folder of the server I wish to update my skills in, copy in my UpdateSkills.sql file, open a command prompt in that folder and type:

sqlite3 -init UpdateSkills.sql wurmplayers.db ""

Share this post


Link to post
Share on other sites

Quick fix: Updated it to fix the titles.


 


It was inserting the skill ID in to the database instead of the actual title ID. It wasn't breaking anything that we noticed but the titles weren't working either. Sorry about that!


 


We've also made it so there is a comment in the SQL to tell you when it was generated for which character name. Also changed the filename of the download to Update_PlayerName_.sql as requested by those downloading multiple SQL files and having "UpdateSkills.sql", "UpdateSkills(1).sql","UpdateSkills(2).sql" etc in their Downloads directory for different characters.  :P If anyone wants the date/time added to the file name I can do that too or add an option for it.


Edited by Smebb

Share this post


Link to post
Share on other sites

Added the meditation path and level insertion (after much testing!!!) and concluded it works as intended. We have had no problems as of yet, we could level up on the paths and receive questions, and show up on the local leaders list and use abilities as normal.

Marked the project as released and given access to the files for the tool. We hope someone can integrate this in to one of the admin tools or create a portable or offline version in Java or something. :)

Share this post


Link to post
Share on other sites

I've been using this successfully for a while and I am very pleased with it, but today I've tried it and I keep getting the following error. Has something changed in the update?

 

UNIQUE constraint failed: SKILLS.ID:

INSERT INTO `SKILLS` (`ID`,`OWNER`,`NUMBER`,`VALUE`,`MINVALUE`,`LASTUSED`) VALUES (1,1,1,1.00,1.00,0);

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this