소스 검색

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 &&