Jump to content

xpsave again


JohnDory

Recommended Posts

  • Subscriber

XPsave is not working on our servers, you can collect xp as long as you like until the server restarts when all the xp is lost, it saves between maps and you can leave during a map and rejoin and still have it.

I've checked the forum and followed all the replies and nothing has worked so far.

 

I want to have a 5 day xpsave, I have the following set.

 

// Logs
set g_log "logs/server.log"  // changed from "server.log"
set g_cheatLog "logs/cheat.log"   //changed from "cheat.log"
set logfile 0  //changed from 2
set g_logOptions 2972  //changed from 0
set g_logAdmin "shrubbotadmin.log"  //changed from "admin.log"

// XP Save configuration
set g_XPSave 31  //changed from 21
set g_XPSaveMaxAge_xp "5d"  //changed from "30d"
set g_XPSaveMinXP "0"  /changed from -1
set g_damageXP "0"  //changed from "1"
set g_damageXPLevel "50"
set g_maxXP -1  //changed from "90000"

// Shrubbot and Database
set g_dbDirectory "database"
set g_dbUserMaxAge "50d"  //changed from "30"

if you want to join the server to test it I can give you details and change the rcon password if required

Link to comment
Share on other sites

  • Management
Do you possibly have some cleanup scripts included with the server restart script? How often do you restart? This problem is puzzling from the mods view because server restart is not different from map change. So it should have the files correctly in use. Especially if you have checked the log entrys concerning the database. Could you check what the first database open and database close logs after the server startup. It would reveal if it is creating new database for some reason or other issues. The g_XPSaveMaxAge should be set, but by default it is 30 days if I remember correctly so it probably isn't the problem in this case.
Link to comment
Share on other sites

  • Management
About the shrubbot trouble. Please check the shrubbot.cfg file and specifically bans. There is a bug that sometimes results temp ban system to create invalid bans and breaking the cfg file. If that is the case, the log will have bunch of parse error prints in it during map starts. Disabling temp ban system will prevent the error until the next version is out.
Link to comment
Share on other sites

  • Subscriber

XPsave is definitely working fine as long as we do not restart the servers.

The only command we have in our configs that change anything is

clearspreerecords

which is in our campaign.cfg so the spree's get cleared at the beginning of each map campaign cycle but the xp should be saved.

 

I have contacted our hosts again to get them to recheck there is nothing else anywhere that could be resetting the xp, I'll post again if they come up with anything.

Link to comment
Share on other sites

  • Subscriber

I've heard back from our hosts they cannot find any thing wrong with the silent config's any where or with the way servers are running.

The only problem that shows up is in the omnibot goal_classmanager.gm and with one other bot command but that doesn't effect xpsave.

 

The user databases are being written to before and after server restarts and it also claims to be reading the database during server / map restart reloading the information contained in it.

 

I have received a console log read out from our hosts of one of the servers running, being restarted, during the restart and running afterwards if anyone would like to look at it but the silent stuff last in the log is

Start of warmup.
Cheat logfile open: logs/cheat.log
readconfig: loaded 9 levels, 1 bans, 0 subnet bans, 6 commands and 0 warnings
serverstats: loaded 20 mapstats
settings: loaded 15 banners
*=====INITIALISING USER DATABASE
 * Opening user database file userdb.db.
 * Opening user database file userxdb.db.
 * User database files open. Caching database.
 202 players cached from the user database.
 7 records cached from the additional user info files.
*=====DATABASE READY FOR USE
Enable spawning!
Disable spawning!
0 teams with 0 entities
-----------------------------------
Setting MOTD...

from which I am assuming that its found all the logged players (202) and 7 players xp ? but it still shows no xp after a server restart.

Link to comment
Share on other sites

  • Management

That is the first log output from the database after server restart? The 7 records are not XP but some optional informations which are rarely used. I.e. shrubbot related information. Based on the log output, it loads XP for 202 players, if they have some. I interpreted your question mark meaning this. However, since the shrubbot levels remain after server restart, there shouldn't be problems with the database files. Also it means that the files are not pruned (cleaned from unused data). Nevertheless, could you post the log output regarding the database from the first database closing after the server start.

 

The XP loading is 2 part process. First the database is cached. This seems to work fine. Second part is when the player connects. At this point the age of the XP is checked and if it is too old, it will not be given to the player. The new XP values are then saved to the database at the next level end and that way the players new XP becomes his persistent XP. This is the only way XP resets if the g_XPSave flag 4 is set.

 

If the g_XPSaveflag 4 is not set, all player XP is resetted when map starts. The cases when the XP is resetted from all the players are:

* It is the first map of the campaign.

* The map count value for XP reset is reached when using map voting game types.

* It is last man standing gametype and the first round.

* With all other gametypes unconditionally.

Link to comment
Share on other sites

  • Subscriber

Hello,

I don't think its the xpsave setting.

set g_XPSave 31

below are all the silent entries after server restart, there where no players on except for 8 bots which have had their xp saved any way but they didn't.

*=====INITIALISING USER DATABASE
 * Opening user database file userdb.db.
 * Opening user database file userxdb.db.
 * User database files open. Caching database.
 202 players cached from the user database.
 7 records cached from the additional user info files.
*=====DATABASE READY FOR USE

Spreerecords reset
execing 7493/silent/harrysilent.cfg
g_dbUserMaxAge is write protected.
couldn't exec silent/database/admins.cfg
=== ShutdownGame -------------------------------------------
*=====CLOSING DATABASE
 Database filesystem cleanup needed.
 Database filesystem cleanup done.
 Buffers cleaned.
 Big Memory Cache cleaned.
*=====DATABASE IS CLOSED
ShutdownGame: done. Closing log.
------------------------------------------------------------
------ Server Initialization ------
Start of warmup.
Cheat logfile open: logs/cheat.log
readconfig: loaded 9 levels, 1 bans, 0 subnet bans, 6 commands and 0 warnings
serverstats: loaded 20 mapstats
settings: loaded 15 banners
*=====INITIALISING USER DATABASE
 * Opening user database file userdb.db.
 * Opening user database file userxdb.db.
 * User database files open. Caching database.
 202 players cached from the user database.
 7 records cached from the additional user info files.
*=====DATABASE READY FOR USE
^2<EndGame>
^2-- Script System Info --
^2Current Memory Usage 1.21834 MB
^2Soft Memory Usage 1.6 MB
^2Hard Memory Limit 2 MB
^2System Memory Usage 1.30896 MB
^2Full Collects 1
^2Inc Collects 0
^2GC Warnings 0
^2Threads: 1, 0 Running, 0 Blocked, 1 Sleeping
=== ShutdownGame -------------------------------------------
*=====CLOSING DATABASE
 Buffers cleaned.
 Big Memory Cache cleaned.
*=====DATABASE IS CLOSED
ShutdownGame: done. Closing log.
------------------------------------------------------------
------ Server Initialization ------
Start of warmup.
Cheat logfile open: logs/cheat.log
readconfig: loaded 9 levels, 1 bans, 0 subnet bans, 6 commands and 0 warnings
serverstats: loaded 20 mapstats
settings: loaded 15 banners
*=====INITIALISING USER DATABASE
 * Opening user database file userdb.db.
 * Opening user database file userxdb.db.
 * User database files open. Caching database.
 202 players cached from the user database.
 7 records cached from the additional user info files.
*=====DATABASE READY FOR USE

The only line I don't know what it means is

g_dbUserMaxAge is write protected.

Could that be stopping it ?

 

If you need the full console read out I'll email it to you.

 

Mike.

Link to comment
Share on other sites

  • Management

The g_dbUserMaxAge setting could cause problems. But then it would also delete all admin levels. Also according to the log, while it did do file cleanup, the record amounts did look good. The problem with setting the g_dbUserMaxAge the way you try is that it is execed too late. For security reasons, the value can be changed only during server start. However, if this value would cause problems, they would exist on every map change. I suggest you set the value only in the cfg chain that is executed on server start.

 

This did show, however, that you have some delayed cfg executing. Is the xp save settings set directly at the server startup cfgs, or with similar method. If the g_xpsave flag 4 is not set during the very first init, it could lead to full xp reset. Of course, once it is set the first time, it will remain in settings and there would not be any more full resets.

Link to comment
Share on other sites

  • Subscriber

All the xpsave settings are set in the silent.cfg, I thought that's where they should be ?

As far as I can tell the silent.cfg doesn't get run between maps and the xp saves as it should, but as soon as the server is restarted it loses the xp.

On our machine with our hosts when we do a server restart, it is the same as if the server hadn't been running it gives it the same as a server start from cold.

this is the only time it reads the silent.cfg with the xpsave settings in it and that's when it resets the xp.

At the moment it doesn't matter if the server is running for one map or one week as soon as it restarts all the xp is gone but the shrubbot stuff is still there.

 

If its any help, I can PM you details on how to get temporary access to our control panel so you can see exactly what is going on with the server and you can play with the test server and see what happens.

Link to comment
Share on other sites

  • Subscriber

XPSave is now working on our servers B)

 

We where starting the silent.cfg in the wrong place in our server.cfg we had it at the end, the correct way around / order to get it running on ours is

//Execute the silent.cfg
exec "silent.cfg"

// Map Rotation
exec campaigncycle.cfg

 

Thanks to gaoesa for spotting the mistake :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...