diff options
-rw-r--r-- | Changelog-Trunk.txt | 2 | ||||
-rw-r--r-- | conf-tmpl/battle/battle.conf | 4 | ||||
-rw-r--r-- | db/Changelog.txt | 3 | ||||
-rw-r--r-- | db/skill_db.txt | 2 | ||||
-rw-r--r-- | src/map/status.c | 11 | ||||
-rw-r--r-- | src/map/status.h | 2 |
6 files changed, 18 insertions, 6 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 0ded9a6db..1f7973806 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,8 @@ 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. 2007/03/15 + * Added SC_CHANGEUNDEAD to differentiate it from the other elemental change + skills. It now fails on Undead/Dark elemental targets. * Corrected party item share settings not being properly updated on logon. * Corrected battle_attr_none setting applying to elemental attacks instead of neutral ones. [Skotlex] diff --git a/conf-tmpl/battle/battle.conf b/conf-tmpl/battle/battle.conf index 4b520dfee..59284580c 100644 --- a/conf-tmpl/battle/battle.conf +++ b/conf-tmpl/battle/battle.conf @@ -69,10 +69,10 @@ multihit_delay: 80 // (Setting to no/0 will be like always endure) player_damage_delay_rate: 100 -// Undead type differeniate. +// Should race or element be used to consider someone undead? // 0 = element undead // 1 = race undead -// 2 = both +// 2 = both (either one works) undead_detect_type: 0 // Does HP recover if hit by an attribute that's same as your own? (Note 1) diff --git a/db/Changelog.txt b/db/Changelog.txt index f4143cb87..690fad8e5 100644 --- a/db/Changelog.txt +++ b/db/Changelog.txt @@ -19,6 +19,9 @@ ----- ======================== +03/15 + * Increased Shield Chain's range by one. It is now a ranged skill. + [Skotlex] 03/12 * Updated the "AddEffWhenHit" cards [Playtester] - chances got lowered according to Aegis, Freya, cRO and euRO diff --git a/db/skill_db.txt b/db/skill_db.txt index ff5e3ecdd..b1f8673f6 100644 --- a/db/skill_db.txt +++ b/db/skill_db.txt @@ -518,7 +518,7 @@ 477,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0 //WS_WEAPONREFINE#Upgrade Weapon# 478,3,6,2,0,0x3,3,10,1,no,0,0,0,none,0 //CR_SLIMPITCHER#Aid Condensed Potion# 479,1,6,16,0,0x1,0,5,1,yes,0,0,0,weapon,0 //CR_FULLPROTECTION#Full Protection# -480,4,8,1,0,0,0,5,5,no,0,0,0,weapon,0 //PA_SHIELDCHAIN#Shield Chain# +480,5,8,1,0,0,0,5,5,no,0,0,0,weapon,0 //PA_SHIELDCHAIN#Shield Chain# 481,0,0,0,0,0,0,5,0,no,0,0,0,none,0 //HP_MANARECHARGE#Mana Recharge# 482,0,6,4,0,0x1,0,5,1,no,0,0,0,magic,0 //PF_DOUBLECASTING#Double Casting# 483,9,6,2,0,0x1,1,1,1,no,0,0,0,none,0 //HW_GANBANTEIN#Ganbantein# diff --git a/src/map/status.c b/src/map/status.c index 1aed80716..c15369d7e 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -278,7 +278,7 @@ void initChangeTables(void) { add_sc(NPC_STOP, SC_STOP); set_sc(NPC_BREAKWEAPON, SC_BROKENWEAPON, SI_BROKENWEAPON, SCB_NONE); set_sc(NPC_BREAKARMOR, SC_BROKENARMOR, SI_BROKENARMOR, SCB_NONE); - add_sc(NPC_CHANGEUNDEAD, SC_ELEMENTALCHANGE); + set_sc(NPC_CHANGEUNDEAD, SC_CHANGEUNDEAD, SI_UNDEAD, SCB_DEF_ELE); set_sc(NPC_POWERUP, SC_INCDEXRATE, SI_BLANK, SCB_DEX); set_sc(NPC_AGIUP, SC_INCFLEERATE, SI_BLANK, SCB_AGI); add_sc(NPC_INVISIBLE, SC_CLOAKING); @@ -421,7 +421,6 @@ void initChangeTables(void) { //This seems wrong as it sets the same icon to all skills that change your //element, but alas, all of them are mob-target only with the exception of //NPC_CHANGEUNDEAD, so this should be alright. [Skotlex] - StatusIconChangeTable[SC_ELEMENTALCHANGE] = SI_UNDEAD; StatusIconChangeTable[SC_STRFOOD] = SI_FOODSTR; StatusIconChangeTable[SC_AGIFOOD] = SI_FOODAGI; StatusIconChangeTable[SC_VITFOOD] = SI_FOODVIT; @@ -3871,6 +3870,8 @@ static unsigned char status_calc_element(struct block_list *bl, struct status_ch return ELE_EARTH; if( sc->data[SC_BENEDICTIO].timer!=-1 ) return ELE_HOLY; + if( sc->data[SC_CHANGEUNDEAD].timer!=-1) + return sc->data[SC_CHANGEUNDEAD].val3; if( sc->data[SC_ELEMENTALCHANGE].timer!=-1) return sc->data[SC_ELEMENTALCHANGE].val3; return cap_value(element,0,UCHAR_MAX); @@ -3886,6 +3887,8 @@ static unsigned char status_calc_element_lv(struct block_list *bl, struct status return 1; if( sc->data[SC_BENEDICTIO].timer!=-1 ) return 1; + if( sc->data[SC_CHANGEUNDEAD].timer!=-1) + return 1; if(sc->data[SC_ELEMENTALCHANGE].timer!=-1) return sc->data[SC_ELEMENTALCHANGE].val4; return cap_value(lv,1,4); @@ -4563,6 +4566,10 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val if (status->def_ele == ELE_DARK && !(flag&1)) return 0; break; + case SC_CHANGEUNDEAD: //Undead/Dark are inmune to it. + if ((status->def_ele == ELE_DARK || undead_flag) && !(flag&1)) + return 0; + break; case SC_COMA: //Dark elementals and Demons are inmune to coma. if((status->def_ele == ELE_DARK || status->race == RC_DEMON) && !(flag&1)) diff --git a/src/map/status.h b/src/map/status.h index 3c8d37e69..095581962 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -136,7 +136,7 @@ enum { SC_REJECTSWORD, SC_MARIONETTE, SC_MARIONETTE2, - SC_UNUSED, //Unused (was SC_MOONLIT) + SC_CHANGEUNDEAD, SC_JOINTBEAT, SC_MINDBREAKER, //130 SC_MEMORIZE, |