From 91fff27a22dc850eeb81d72ce42a03cba0e4e9b1 Mon Sep 17 00:00:00 2001
From: Kenpachi Developer <Kenpachi.Developer@gmx.de>
Date: Wed, 8 Apr 2020 04:22:10 +0200
Subject: Prevent SC_NO_SWITCH_EQUIP from falsely being recognized as unknown
 status change

---
 src/map/skill.c  | 2 +-
 src/map/status.c | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

(limited to 'src/map')

diff --git a/src/map/skill.c b/src/map/skill.c
index 3dccf7a9e..cc769108e 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -11296,7 +11296,7 @@ static int skill_castend_pos2(struct block_list *src, int x, int y, uint16 skill
 			FALLTHROUGH
 		case GS_GROUNDDRIFT: //Ammo should be deleted right away.
 			if ( skill_id == WM_SEVERE_RAINSTORM )
-				sc_start(src,src,SC_NO_SWITCH_EQUIP,100,0,skill->get_time(skill_id,skill_lv));
+				sc_start(src, src, type, 100, 0, skill->get_time(skill_id, skill_lv));
 			skill->unitsetting(src,skill_id,skill_lv,x,y,0);
 			break;
 		case WZ_ICEWALL:
diff --git a/src/map/status.c b/src/map/status.c
index d3e85e5be..0373b9db6 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -696,6 +696,7 @@ static void initChangeTables(void)
 	status->set_sc( WM_BEYOND_OF_WARCRY       , SC_BEYOND_OF_WARCRY       , SCB_STR|SCB_CRI|SCB_MAXHP );
 	status->set_sc( WM_UNLIMITED_HUMMING_VOICE, SC_UNLIMITED_HUMMING_VOICE, SCB_NONE );
 	status->set_sc( WM_FRIGG_SONG             , SC_FRIGG_SONG             , SCB_MAXHP );
+	status->set_sc( WM_SEVERE_RAINSTORM       , SC_NO_SWITCH_EQUIP        , SCB_NONE );
 
 	/**
 	* Sorcerer
-- 
cgit v1.2.3-70-g09d2


From 8503c7b6b209d094e63eee2cb423a62a4690155b Mon Sep 17 00:00:00 2001
From: Kenpachi Developer <Kenpachi.Developer@gmx.de>
Date: Wed, 8 Apr 2020 04:23:00 +0200
Subject: Prevent SC_KSPROTECTED from falsely being recognized as unknown
 status change

---
 src/map/status.c | 2 ++
 1 file changed, 2 insertions(+)

(limited to 'src/map')

diff --git a/src/map/status.c b/src/map/status.c
index 0373b9db6..d07f3f705 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -7809,6 +7809,8 @@ static int status_change_start_sub(struct block_list *src, struct block_list *bl
 	calc_flag = status->dbs->ChangeFlagTable[type];
 	if(!(flag&SCFLAG_LOADED)) { // Do not parse val settings when loading SCs
 		switch(type) {
+			case SC_KSPROTECTED:
+				break; // Prevent calling status_change_start_unknown_sc().
 			case SC_ADORAMUS:
 				sc_start(src,bl,SC_BLIND,100,val1,skill->get_time(status->sc2skill(type),val1));
 				// Fall through to SC_INC_AGI
-- 
cgit v1.2.3-70-g09d2


From 136e6806ee2edcad8b15a9fc3abb25ed45aef8f8 Mon Sep 17 00:00:00 2001
From: Kenpachi Developer <Kenpachi.Developer@gmx.de>
Date: Wed, 8 Apr 2020 04:24:35 +0200
Subject: Add check for dead target to mob_ksprotected() to prevent starting
 SC_KSPROTECTED on dead monsters

---
 src/map/mob.c | 3 +++
 1 file changed, 3 insertions(+)

(limited to 'src/map')

diff --git a/src/map/mob.c b/src/map/mob.c
index 51a32abd9..262d5e26d 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -446,6 +446,9 @@ static bool mob_ksprotected(struct block_list *src, struct block_list *target)
 	if( !battle_config.ksprotection )
 		return false; // KS Protection Disabled
 
+	if (status->isdead(target) != 0)
+		return false; // Target is dead.
+
 	if( !(md = BL_CAST(BL_MOB,target)) )
 		return false; // Target is not MOB
 
-- 
cgit v1.2.3-70-g09d2


From c4c55ca75a2f9f8390090e063f67b32c727416ed Mon Sep 17 00:00:00 2001
From: Kenpachi Developer <Kenpachi.Developer@gmx.de>
Date: Wed, 8 Apr 2020 13:01:56 +0200
Subject: Prevent SC_AUTOTRADE from falsely being recognized as unknown status
 change

---
 src/map/status.c | 1 +
 1 file changed, 1 insertion(+)

(limited to 'src/map')

diff --git a/src/map/status.c b/src/map/status.c
index d07f3f705..d2d65ce37 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -7809,6 +7809,7 @@ static int status_change_start_sub(struct block_list *src, struct block_list *bl
 	calc_flag = status->dbs->ChangeFlagTable[type];
 	if(!(flag&SCFLAG_LOADED)) { // Do not parse val settings when loading SCs
 		switch(type) {
+			case SC_AUTOTRADE:
 			case SC_KSPROTECTED:
 				break; // Prevent calling status_change_start_unknown_sc().
 			case SC_ADORAMUS:
-- 
cgit v1.2.3-70-g09d2