ソースを参照

Added null pointer checks for autobonus (#6327)

Fixes #6324

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Jittapan Pluemsumran 3 年 前
コミット
e50a91c59c
1 ファイル変更10 行追加0 行削除
  1. 10 0
      src/map/skill.cpp

+ 10 - 0
src/map/skill.cpp

@@ -2248,6 +2248,10 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
 	if( sd && !sd->autobonus.empty() )
 	{
 		for(auto &it : sd->autobonus) {
+			if( it == nullptr ){
+				continue;
+			}
+
 			if (rnd()%1000 >= it->rate)
 				continue;
 			if (!(((it->atk_type)&attack_type)&BF_WEAPONMASK &&
@@ -2333,6 +2337,8 @@ int skill_onskillusage(struct map_session_data *sd, struct block_list *bl, uint1
 
 	if( sd && !sd->autobonus3.empty() ) {
 		for (auto &it : sd->autobonus3) {
+			if (it == nullptr)
+				continue;
 			if (rnd()%1000 >= it->rate)
 				continue;
 			if (it->atk_type != skill_id)
@@ -2556,6 +2562,10 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list *
 	//Autobonus when attacked
 	if( dstsd && !status_isdead(bl) && !dstsd->autobonus2.empty() && !(skill_id && skill_get_nk(skill_id, NK_NODAMAGE)) ) {
 		for (auto &it : dstsd->autobonus2) {
+			if( it == nullptr ){
+				continue;
+			}
+
 			if (rnd()%1000 >= it->rate)
 				continue;
 			if (!(((it->atk_type)&attack_type)&BF_WEAPONMASK &&