|
@@ -8690,7 +8690,8 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
|
|
if (sce->val4) { //Clear the group.
|
|
if (sce->val4) { //Clear the group.
|
|
struct skill_unit_group* group = skill_id2group(sce->val4);
|
|
struct skill_unit_group* group = skill_id2group(sce->val4);
|
|
sce->val4 = 0;
|
|
sce->val4 = 0;
|
|
- skill_delunitgroup(group);
|
|
|
|
|
|
+ if( group ) /* might have been cleared before status ended, e.g. land protector */
|
|
|
|
+ skill_delunitgroup(group);
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case SC_KAAHI:
|
|
case SC_KAAHI:
|
|
@@ -8773,18 +8774,18 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
|
|
break;
|
|
break;
|
|
case SC_NEUTRALBARRIER_MASTER:
|
|
case SC_NEUTRALBARRIER_MASTER:
|
|
case SC_STEALTHFIELD_MASTER:
|
|
case SC_STEALTHFIELD_MASTER:
|
|
- if( sce->val2 )
|
|
|
|
- {
|
|
|
|
|
|
+ if( sce->val2 ) {
|
|
struct skill_unit_group* group = skill_id2group(sce->val2);
|
|
struct skill_unit_group* group = skill_id2group(sce->val2);
|
|
sce->val2 = 0;
|
|
sce->val2 = 0;
|
|
- skill_delunitgroup(group);
|
|
|
|
|
|
+ if( group ) /* might have been cleared before status ended, e.g. land protector */
|
|
|
|
+ skill_delunitgroup(group);
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case SC_BANDING:
|
|
case SC_BANDING:
|
|
if(sce->val4) {
|
|
if(sce->val4) {
|
|
struct skill_unit_group *group = skill_id2group(sce->val4);
|
|
struct skill_unit_group *group = skill_id2group(sce->val4);
|
|
sce->val4 = 0;
|
|
sce->val4 = 0;
|
|
- if( group )
|
|
|
|
|
|
+ if( group ) /* might have been cleared before status ended, e.g. land protector */
|
|
skill_delunitgroup(group);
|
|
skill_delunitgroup(group);
|
|
}
|
|
}
|
|
break;
|
|
break;
|