-Follow up r17244 r17229 typo on blewcount handler
-Follow up r17242 upd Cmakefile for cmake build -Apply Baalberith fix for chan system leaks, thx =) git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17245 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
0ccd53156b
commit
53d1292de4
@ -1699,32 +1699,7 @@ int map_quit(struct map_session_data *sd) {
|
||||
elemental_clean_effect(sd->ed);
|
||||
unit_remove_map(&sd->ed->bl,CLR_TELEPORT);
|
||||
}
|
||||
|
||||
if( raChSys.ally && sd->status.guild_id ) {
|
||||
struct guild *g = sd->guild, *sg;
|
||||
if( g ) {
|
||||
if( idb_exists(((struct raChSysCh *)g->channel)->users, sd->status.char_id) )
|
||||
clif_chsys_left((struct raChSysCh *)g->channel,sd);
|
||||
for (i = 0; i < MAX_GUILDALLIANCE; i++) {
|
||||
if( g->alliance[i].guild_id && (sg = guild_search(g->alliance[i].guild_id) ) ) {
|
||||
if( idb_exists(((struct raChSysCh *)sg->channel)->users, sd->status.char_id) )
|
||||
clif_chsys_left((struct raChSysCh *)sg->channel,sd);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if( sd->channel_count ) {
|
||||
uint8 ch_count = sd->channel_count;
|
||||
for( i = 0; i < ch_count; i++ ) {
|
||||
if( sd->channels[i] != NULL )
|
||||
clif_chsys_left(sd->channels[i],sd);
|
||||
}
|
||||
if( raChSys.closing )
|
||||
aFree(sd->channels);
|
||||
}
|
||||
|
||||
|
||||
unit_remove_map_pc(sd,CLR_TELEPORT);
|
||||
|
||||
if( map[sd->bl.m].instance_id ) { // Avoid map conflicts and warnings on next login
|
||||
@ -3593,8 +3568,11 @@ void do_final(void)
|
||||
// remove all objects on maps
|
||||
for (i = 0; i < map_num; i++) {
|
||||
ShowStatus("Cleaning up maps [%d/%d]: %s..."CL_CLL"\r", i+1, map_num, map[i].name);
|
||||
if (map[i].m >= 0)
|
||||
if (map[i].m >= 0) {
|
||||
map_foreachinmap(cleanup_sub, i, BL_ALL);
|
||||
if( map[i].channel != NULL )
|
||||
clif_chsys_delete((struct raChSysCh *)map[i].channel);
|
||||
}
|
||||
}
|
||||
ShowStatus("Cleaned up %d maps."CL_CLL"\n", map_num);
|
||||
|
||||
|
@ -2470,8 +2470,8 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds
|
||||
if(rnd()%100 > (1 + skill_lv) ) dmg.blewcount = 0;
|
||||
break;
|
||||
default:
|
||||
if(damage < dmg.div_ && skill_lv != CH_PALMSTRIKE)
|
||||
dmg.blewcount = 0; //only pushback when it hit
|
||||
if(damage < dmg.div_ && skill_id != CH_PALMSTRIKE)
|
||||
dmg.blewcount = 0; //only pushback when it hit for other
|
||||
break;
|
||||
}
|
||||
switch(skill_id){
|
||||
@ -3374,10 +3374,6 @@ static int skill_timerskill(int tid, unsigned int tick, int id, intptr_t data)
|
||||
( sc && sc->option&OPTION_HIDE ) ){
|
||||
skill_blown(src,target,skill_get_blewcount(skl->skill_id, skl->skill_lv), -1, 0x0 );
|
||||
break;
|
||||
} else if( tsc && tsc->data[SC_SAFETYWALL] ){
|
||||
skill_attack(skl->type,src,src,target,skl->skill_id,skl->skill_lv,tick,skl->flag);
|
||||
skill_blown(src,target,skill_get_blewcount(skl->skill_id, skl->skill_lv), -1, 0x0 );
|
||||
break;
|
||||
}
|
||||
}
|
||||
default:
|
||||
@ -12330,7 +12326,7 @@ static int skill_unit_effect (struct block_list* bl, va_list ap)
|
||||
skill_unit_onout(unit,bl,tick);
|
||||
|
||||
if( flag&4 )
|
||||
skill_unit_onleft(skill_id, bl, tick);
|
||||
skill_unit_onleft(skill_id, bl, tick);
|
||||
}else if( !isTarget && flag&4 && ( group->state.song_dance&0x1 || ( group->src_id == bl->id && group->state.song_dance&0x2 ) ) ){
|
||||
skill_unit_onleft(skill_id, bl, tick);//Ensemble check to terminate it.
|
||||
}
|
||||
@ -15935,7 +15931,7 @@ int skill_unit_move (struct block_list *bl, unsigned int tick, int flag) {
|
||||
for( i = 0; i < ARRAYLENGTH(skill_unit_temp); i++ )
|
||||
if( skill_unit_temp[i] )
|
||||
skill_unit_onleft(skill_unit_temp[i], bl, tick);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -41,6 +41,7 @@ set( SQL_MAP_HEADERS
|
||||
"${SQL_MAP_SOURCE_DIR}/trade.h"
|
||||
"${SQL_MAP_SOURCE_DIR}/unit.h"
|
||||
"${SQL_MAP_SOURCE_DIR}/vending.h"
|
||||
"${SQL_MAP_SOURCE_DIR}/cashshop.h"
|
||||
)
|
||||
set( SQL_MAP_SOURCES
|
||||
"${SQL_MAP_SOURCE_DIR}/atcommand.c"
|
||||
@ -80,6 +81,7 @@ set( SQL_MAP_SOURCES
|
||||
"${SQL_MAP_SOURCE_DIR}/trade.c"
|
||||
"${SQL_MAP_SOURCE_DIR}/unit.c"
|
||||
"${SQL_MAP_SOURCE_DIR}/vending.c"
|
||||
"${SQL_MAP_SOURCE_DIR}/cashshop.c"
|
||||
)
|
||||
set( DEPENDENCIES common_sql )
|
||||
set( LIBRARIES ${GLOBAL_LIBRARIES} )
|
||||
|
@ -334,7 +334,7 @@ int unit_walktoxy( struct block_list *bl, short x, short y, int flag)
|
||||
|
||||
if (flag&4 && DIFF_TICK(ud->canmove_tick, gettick()) > 0 &&
|
||||
DIFF_TICK(ud->canmove_tick, gettick()) < 2000)
|
||||
{ // Delay walking command. [Skotlex]
|
||||
{ // Delay walking command. [Skotlex]
|
||||
add_timer(ud->canmove_tick+1, unit_delay_walktoxy_timer, bl->id, (x<<16)|(y&0xFFFF));
|
||||
return 1;
|
||||
}
|
||||
@ -2293,6 +2293,31 @@ int unit_free(struct block_list *bl, clr_type clrtype)
|
||||
if( sd->duel_invite > 0 )
|
||||
duel_reject(sd->duel_invite, sd);
|
||||
|
||||
if( raChSys.ally && sd->status.guild_id ) {
|
||||
struct guild *g = sd->guild, *sg;
|
||||
if( g ) {
|
||||
if( idb_exists(((struct raChSysCh *)g->channel)->users, sd->status.char_id) )
|
||||
clif_chsys_left((struct raChSysCh *)g->channel,sd);
|
||||
for (i = 0; i < MAX_GUILDALLIANCE; i++) {
|
||||
if( g->alliance[i].guild_id && (sg = guild_search(g->alliance[i].guild_id) ) ) {
|
||||
if( idb_exists(((struct raChSysCh *)sg->channel)->users, sd->status.char_id) )
|
||||
clif_chsys_left((struct raChSysCh *)sg->channel,sd);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if( sd->channel_count ) {
|
||||
uint8 ch_count = sd->channel_count;
|
||||
for( i = 0; i < ch_count; i++ ) {
|
||||
if( sd->channels[i] != NULL )
|
||||
clif_chsys_left(sd->channels[i],sd);
|
||||
}
|
||||
if( raChSys.closing )
|
||||
aFree(sd->channels);
|
||||
}
|
||||
|
||||
// Notify friends that this char logged out. [Skotlex]
|
||||
map_foreachpc(clif_friendslist_toggle_sub, sd->status.account_id, sd->status.char_id, 0);
|
||||
party_send_logout(sd);
|
||||
|
Loading…
x
Reference in New Issue
Block a user