summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt1
-rw-r--r--src/map/pc.c2
-rw-r--r--src/map/skill.c3
-rw-r--r--src/map/status.c3
-rw-r--r--src/map/status.h1
5 files changed, 7 insertions, 3 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 7fc31fcb6..9e7624b50 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,7 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2008/04/05
+ * Unequip should no longer remove any buff from seven wind. (r12503) [Kevin]
* Union and Increase AGI now stack. (r12502) [Kevin]
* Union now consumes sp when not soul linked. (r12499) [Kevin]
* Running into a wall/npc/pc/mob no longer enables spurt. (r12498) [Kevin]
diff --git a/src/map/pc.c b/src/map/pc.c
index 7a2d47f2b..3d7572326 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -6591,7 +6591,7 @@ int pc_unequipitem(struct map_session_data *sd,int n,int flag)
clif_unequipitemack(sd,n,sd->status.inventory[n].equip,1);
if((sd->status.inventory[n].equip & EQP_ARMS) &&
- sd->weapontype1 == 0 && sd->weapontype2 == 0)
+ sd->weapontype1 == 0 && sd->weapontype2 == 0 && (!sd->sc.data[SC_SEVENWIND] || sd->sc.data[SC_ASPERSIO])) //Check for seven wind (but not level seven!)
skill_enchant_elemental_end(&sd->bl,-1);
if(sd->status.inventory[n].equip & EQP_ARMOR) {
diff --git a/src/map/skill.c b/src/map/skill.c
index 2b2ebc8a4..d4b25573c 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -3249,6 +3249,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
}
clif_skill_nodamage(src,bl,skillid,skilllv,
sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
+
+ sc_start(bl,SC_SEVENWIND,100,skilllv,skill_get_time(skillid,skilllv));
+
break;
case PR_KYRIE:
diff --git a/src/map/status.c b/src/map/status.c
index d9c72c123..c8c154946 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -319,8 +319,7 @@ void initChangeTables(void)
set_sc( TK_READYCOUNTER , SC_READYCOUNTER , SI_READYCOUNTER , SCB_NONE );
set_sc( TK_DODGE , SC_DODGE , SI_DODGE , SCB_NONE );
set_sc( TK_SPTIME , SC_TKREST , SI_TKREST , SCB_NONE );
- set_sc( TK_SEVENWIND , SC_GHOSTWEAPON , SI_GHOSTWEAPON , SCB_ATK_ELE );
- set_sc( TK_SEVENWIND , SC_SHADOWWEAPON , SI_SHADOWWEAPON , SCB_ATK_ELE );
+ add_sc( TK_SEVENWIND , SC_SEVENWIND );
set_sc( SG_SUN_WARM , SC_WARM , SI_WARM , SCB_NONE );
add_sc( SG_MOON_WARM , SC_WARM );
add_sc( SG_STAR_WARM , SC_WARM );
diff --git a/src/map/status.h b/src/map/status.h
index 5011eada5..0f2e47778 100644
--- a/src/map/status.h
+++ b/src/map/status.h
@@ -291,6 +291,7 @@ typedef enum sc_type {
SC_ARMOR_RESIST,
SC_SPCOST_RATE,
SC_COMMONSC_RESIST,
+ SC_SEVENWIND,
SC_MAX, //Automatically updated max, used in for's to check we are within bounds.
} sc_type;