diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index bf03904554..b70953900e 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,13 @@ 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/07/03 + * Char-server SQL won't perform the reconnect cleanup routines when + kick_on_disconnect is disabled. [Skotlex] + * Renamed summons_inherit_effects to summons_trigger_autospells as the + setting now only makes the attacks of the slaves trigger the autospells of + the master (as it should be). [Skotlex] + * Corrected code capping no_spawn_on_player to 50 when the max should be + 100. [Skotlex] * Warmth will dispel when warping now (or else the effect is left on the ground) [Skotlex] * Fixed reading of the refine_db not working right when MAX_REFINE is diff --git a/conf-tmpl/battle/monster.conf b/conf-tmpl/battle/monster.conf index 9334e3ca4e..51eebe635d 100644 --- a/conf-tmpl/battle/monster.conf +++ b/conf-tmpl/battle/monster.conf @@ -132,9 +132,9 @@ slaves_inherit_mode: yes // NOTE: The default is yes for official servers. slaves_inherit_speed: yes -// Will summoned monsters (alchemists, or @summon'ed monsters) inherit -// the master's auto-spells and auto-effects properties? (Note 1) -summons_inherit_effects: yes +// Will summoned monsters (alchemists, or @summon'ed monsters) attack cause a +// chance of triggering the master's autospell cards? (Note 1) +summons_trigger_autospells: yes // When a mob is attacked by another monster, will the mob retaliate against the master of said mob instead of the mob itself? // NOTE: Summoned mobs are both those acquired via @summon and summoned by Alchemists diff --git a/src/char/char.c b/src/char/char.c index 491e24f4e0..8d51e68679 100644 --- a/src/char/char.c +++ b/src/char/char.c @@ -7,7 +7,7 @@ #include #else #include -#include +#include #include #endif @@ -3846,7 +3846,7 @@ int check_connect_login_server(int tid, unsigned int tick, int id, int data) { } session[login_fd]->func_parse = parse_tologin; realloc_fifo(login_fd, FIFOSIZE_SERVERLINK, FIFOSIZE_SERVERLINK); - WFIFOHEAD(login_fd, 86); + WFIFOHEAD(login_fd, 86); WFIFOW(login_fd,0) = 0x2710; memcpy(WFIFOP(login_fd,2), userid, 24); memcpy(WFIFOP(login_fd,26), passwd, 24); diff --git a/src/char_sql/char.c b/src/char_sql/char.c index 91ded99094..39747dea01 100644 --- a/src/char_sql/char.c +++ b/src/char_sql/char.c @@ -3767,6 +3767,9 @@ int check_connect_login_server(int tid, unsigned int tick, int id, int data) { WFIFOSET(login_fd,86); + if (!kick_on_disconnect) + return 0; //Do not perform on-connect cleanup duties. + //(re)connected to login-server, //now wi'll look in sql which player's are ON and set them OFF //AND send to all mapservers (if we have one / ..) to kick the players diff --git a/src/login/login.c b/src/login/login.c index a617c79d96..cf66d10ed3 100644 --- a/src/login/login.c +++ b/src/login/login.c @@ -3789,7 +3789,6 @@ int login_config_read(const char *cfgName) { } else if(strcmpi(w1,"ip_sync_interval")==0) { ip_sync_interval = 1000*60*atoi(w2); //w2 comes in minutes. } - } } fclose(fp); @@ -4166,7 +4165,6 @@ int do_init(int argc, char **argv) { add_timer_func_list(online_data_cleanup, "online_data_cleanup"); add_timer_interval(gettick() + 600*1000, online_data_cleanup, 0, 0, 600*1000); // every 10 minutes cleanup online account db. - if (ip_sync_interval) { add_timer_func_list(sync_ip_addresses, "sync_ip_addresses"); diff --git a/src/map/battle.c b/src/map/battle.c index f8f0a56d1f..c4a5b29fb1 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -3352,7 +3352,7 @@ static const struct battle_data_short { { "boss_spawn_delay", &battle_config.boss_spawn_delay }, { "slaves_inherit_mode", &battle_config.slaves_inherit_mode }, { "slaves_inherit_speed", &battle_config.slaves_inherit_speed }, - { "summons_inherit_effects", &battle_config.summons_inherit_effects }, + { "summons_trigger_autospells", &battle_config.summons_trigger_autospells }, { "pc_damage_walk_delay_rate", &battle_config.pc_walk_delay_rate }, { "damage_walk_delay_rate", &battle_config.walk_delay_rate }, { "multihit_delay", &battle_config.multihit_delay }, @@ -3749,7 +3749,7 @@ void battle_set_defaults() { battle_config.boss_spawn_delay=100; battle_config.slaves_inherit_mode=1; battle_config.slaves_inherit_speed=1; - battle_config.summons_inherit_effects=1; + battle_config.summons_trigger_autospells=1; battle_config.pc_walk_delay_rate=20; battle_config.walk_delay_rate=100; battle_config.multihit_delay=80; @@ -4198,8 +4198,8 @@ void battle_validate_conf() { if (battle_config.plant_spawn_delay < 0) battle_config.plant_spawn_delay = 0; */ - if (battle_config.no_spawn_on_player > 50) - battle_config.no_spawn_on_player = 50; + if (battle_config.no_spawn_on_player > 100) + battle_config.no_spawn_on_player = 100; if (battle_config.mob_remove_delay < 15000) //Min 15 sec battle_config.mob_remove_delay = 15000; if (battle_config.dynamic_mobs > 1) diff --git a/src/map/battle.h b/src/map/battle.h index 6f59f2204f..a2a9a29439 100644 --- a/src/map/battle.h +++ b/src/map/battle.h @@ -157,7 +157,7 @@ extern struct Battle_Config { unsigned short mob_spawn_delay, plant_spawn_delay, boss_spawn_delay; // [Skotlex] unsigned short slaves_inherit_mode; unsigned short slaves_inherit_speed; - unsigned short summons_inherit_effects; + unsigned short summons_trigger_autospells; unsigned short pc_walk_delay_rate; //Adjusts can't walk delay after being hit for players. [Skotlex] unsigned short walk_delay_rate; //Adjusts can't walk delay after being hit. [Skotlex] unsigned short multihit_delay; //Adjusts can't walk delay per hit on multi-hitting skills. [Skotlex] diff --git a/src/map/map.c b/src/map/map.c index c43ed5ca2b..a93b032570 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -3124,12 +3124,7 @@ int map_readallmaps (void) size = map[i].bxs * map[i].bys * sizeof(int); map[i].block_count = (int*)aCallocA(size, 1); - // Already initialized in aCallocA - //memset(map[i].block_count, 0, size); - map[i].block_mob_count = (int*)aCallocA(size, 1); - // Already initialized in aCallocA - //memset(map[i].block_mob_count, 0, size); uidb_put(map_db, (unsigned int)map[i].index, &map[i]); diff --git a/src/map/map.h b/src/map/map.h index 9d8a6f254e..02e4d15fa9 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -255,7 +255,6 @@ enum { MAX_ITEMGROUP, } item_group_list; - struct block_list { struct block_list *next,*prev; int id; diff --git a/src/map/skill.c b/src/map/skill.c index aee4fb99ff..a5b270329d 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -1324,11 +1324,6 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int break; } - if (md && battle_config.summons_inherit_effects && md->master_id && md->special_state.ai) - { //Pass heritage to Master for status causing effects. [Skotlex] - sd = map_id2sd(md->master_id); - } - if(sd && skillid != MC_CARTREVOLUTION && skillid != AM_DEMONSTRATION && skillid != CR_REFLECTSHIELD && attack_type&BF_WEAPON){ /* カードによる追加効果 */ int i, type; for(i=SC_COMMON_MIN;i<=SC_COMMON_MAX;i++){ @@ -1340,6 +1335,12 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int } } + if (md && battle_config.summons_trigger_autospells && md->master_id && md->special_state.ai) + { //Pass heritage to Master for status causing effects. [Skotlex] + sd = map_id2sd(md->master_id); + src = sd?&sd->bl:src; + } + //Reports say that autospell effects get triggered on skills and pretty much everything including splash attacks. [Skotlex] if(sd && !status_isdead(bl) && src != bl && !(skillid && skill_get_nk(skillid)&NK_NO_DAMAGE)) {