- Removed support for negative autosave intervals, instead added a minsave_interval setting which specifies which is the minimum time between character saves. Default to 100ms (map_athena.conf).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8280 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
6e5a887656
commit
c182e64c0d
@ -4,6 +4,9 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
|
||||
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
|
||||
|
||||
2006/08/14
|
||||
* Removed support for negative autosave intervals, instead added a
|
||||
minsave_interval setting which specifies which is the minimum time between
|
||||
character saves. Default to 100ms (map_athena.conf). [Skotlex]
|
||||
* Sacrifice no longer shows damage to self. [Skotlex]
|
||||
* When Asura fails, the skill display will still come off. [Skotlex]
|
||||
* Lots of cleaning of the Homun-code. Perhaps the crashes as of late will
|
||||
|
@ -1,6 +1,9 @@
|
||||
Date Added
|
||||
|
||||
2006/08/14
|
||||
* Removed support for negative autosave intervals, instead added a
|
||||
minsave_interval setting which specifies which is the minimum time between
|
||||
character saves. Default to 100ms (map_athena.conf). [Skotlex]
|
||||
* Modified emergency_call setting to allow for more specific configuration
|
||||
(woe/non-woe, gvg-grounds/non-gvg-grounds, disable from nowarpto maps), see
|
||||
skill.conf for details. [Skotlex]
|
||||
|
@ -93,14 +93,16 @@ enable_spy: no
|
||||
console: off
|
||||
|
||||
// Database autosave time
|
||||
// When positive, all characters are saved on this time in seconds (example:
|
||||
// All characters are saved on this time in seconds (example:
|
||||
// autosave of 60 secs with 60 characters online -> one char is saved every
|
||||
// second)
|
||||
// When negative, the timeslot is constant, in seconds (example: if -1, a
|
||||
// character will be saved once a second, regardless of number of players
|
||||
// online).
|
||||
autosave_time: 300
|
||||
|
||||
// Min database save intervals (in ms)
|
||||
// Prevent saving characters faster than at this rate (prevents char-server
|
||||
// save-load getting too high as character-count increases)
|
||||
minsave_time: 100
|
||||
|
||||
// Apart from the autosave_time, players will also get saved when involved
|
||||
// in the following (add as needed):
|
||||
// 1: after every successful trade
|
||||
|
@ -169,6 +169,7 @@ int map_num = 0;
|
||||
int map_port=0;
|
||||
|
||||
int autosave_interval = DEFAULT_AUTOSAVE_INTERVAL;
|
||||
int minsave_interval = 100;
|
||||
int save_settings = 0xFFFF;
|
||||
int charsave_method = 0; //Default 'OLD' Save method (SQL ONLY!) [Sirius]
|
||||
int agit_flag = 0;
|
||||
@ -3314,9 +3315,14 @@ int map_config_read(char *cfgName) {
|
||||
npc_delsrcfile(w2);
|
||||
} else if (strcmpi(w1, "autosave_time") == 0) {
|
||||
autosave_interval = atoi(w2);
|
||||
if (!autosave_interval) //Revert to default saving.
|
||||
if (autosave_interval < 1) //Revert to default saving.
|
||||
autosave_interval = DEFAULT_AUTOSAVE_INTERVAL;
|
||||
autosave_interval *= 1000; //Pass from sec to ms
|
||||
else
|
||||
autosave_interval *= 1000; //Pass from sec to ms
|
||||
} else if (strcmpi(w1, "minsave_time") == 0) {
|
||||
minsave_interval= atoi(w2);
|
||||
if (minsave_interval < 1)
|
||||
minsave_interval = 1;
|
||||
} else if (strcmpi(w1, "save_settings") == 0) {
|
||||
save_settings = atoi(w2);
|
||||
} else if (strcmpi(w1, "motd_txt") == 0) {
|
||||
|
@ -1246,6 +1246,7 @@ struct chat_data {
|
||||
extern struct map_data map[];
|
||||
extern int map_num;
|
||||
extern int autosave_interval;
|
||||
extern int minsave_interval;
|
||||
extern int save_settings;
|
||||
extern int agit_flag;
|
||||
extern int night_flag; // 0=day, 1=night [Yor]
|
||||
|
12
src/map/pc.c
12
src/map/pc.c
@ -7175,12 +7175,9 @@ int pc_autosave(int tid,unsigned int tick,int id,int data)
|
||||
save_flag = 1; //Noone was saved, so save first found char.
|
||||
map_foreachpc(pc_autosave_sub);
|
||||
|
||||
if (autosave_interval < 0)
|
||||
return 0; //Fixed interval for saving. [Skotlex]
|
||||
|
||||
interval = autosave_interval/(clif_countusers()+1);
|
||||
if(interval <= 0)
|
||||
interval = 1;
|
||||
if(interval < minsave_interval)
|
||||
interval = minsave_interval;
|
||||
add_timer(gettick()+interval,pc_autosave,0,0);
|
||||
|
||||
return 0;
|
||||
@ -7594,10 +7591,7 @@ int do_init_pc(void) {
|
||||
natural_heal_prev_tick = gettick();
|
||||
add_timer_interval(natural_heal_prev_tick + NATURAL_HEAL_INTERVAL, pc_natural_heal, 0, 0, NATURAL_HEAL_INTERVAL);
|
||||
|
||||
if (autosave_interval > 0) //Normal saving.
|
||||
add_timer(gettick() + autosave_interval, pc_autosave, 0, 0);
|
||||
else //Constant save interval.
|
||||
add_timer_interval(gettick() -autosave_interval, pc_autosave, 0, 0, -autosave_interval);
|
||||
add_timer(gettick() + autosave_interval, pc_autosave, 0, 0);
|
||||
|
||||
if (battle_config.day_duration > 0 && battle_config.night_duration > 0) {
|
||||
int day_duration = battle_config.day_duration;
|
||||
|
Loading…
x
Reference in New Issue
Block a user