Corrected Enchant Arms status icon (#3661)
* Enchant Arms should display a status icon depending on the element (skill level) being used. Thanks to @mrjnumber1!
This commit is contained in:
parent
53f5013149
commit
ce1508a01c
@ -1035,9 +1035,9 @@ SC_JAILED ()
|
||||
desc:
|
||||
val1:
|
||||
|
||||
SC_ENCHANTARMS ()
|
||||
desc:
|
||||
val1:
|
||||
SC_ENCHANTARMS (EFST_WEAPONPROPERTY)
|
||||
desc: Changes the element of a target's weapon.
|
||||
val1: Element value from skill_db
|
||||
|
||||
SC_MAGICALATTACK ()
|
||||
desc:
|
||||
|
@ -2782,7 +2782,7 @@ static int battle_get_weapon_element(struct Damage* wd, struct block_list *src,
|
||||
element = sd->spiritcharm_type; // Summoning 10 spiritcharm will endow your weapon
|
||||
// on official endows override all other elements [helvetica]
|
||||
if(sc && sc->data[SC_ENCHANTARMS]) // Check for endows
|
||||
element = sc->data[SC_ENCHANTARMS]->val2;
|
||||
element = sc->data[SC_ENCHANTARMS]->val1;
|
||||
} else if( element == -2 ) //Use enchantment's element
|
||||
element = status_get_attack_sc_element(src,sc);
|
||||
else if( element == -3 ) //Use random element
|
||||
|
@ -6596,9 +6596,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
||||
break;
|
||||
|
||||
case ITEM_ENCHANTARMS:
|
||||
clif_skill_nodamage(src,bl,skill_id,skill_lv,
|
||||
sc_start2(src,bl,type,100,skill_lv,
|
||||
skill_get_ele(skill_id,skill_lv), skill_get_time(skill_id,skill_lv)));
|
||||
clif_skill_nodamage(src, bl, skill_id, skill_lv, sc_start(src, bl, type, 100, skill_get_ele(skill_id, skill_lv), skill_get_time(skill_id, skill_lv)));
|
||||
break;
|
||||
|
||||
case TK_SEVENWIND:
|
||||
@ -13035,7 +13033,7 @@ struct skill_unit_group *skill_unitsetting(struct block_list *src, uint16 skill_
|
||||
else if (ele == -1) {
|
||||
val1 = status->rhw.ele;
|
||||
if (sc && sc->data[SC_ENCHANTARMS])
|
||||
val1 = sc->data[SC_ENCHANTARMS]->val2;
|
||||
val1 = sc->data[SC_ENCHANTARMS]->val1;
|
||||
}
|
||||
|
||||
switch (val1) {
|
||||
@ -17749,7 +17747,7 @@ int skill_maelstrom_suction(struct block_list *bl, va_list ap)
|
||||
void skill_enchant_elemental_end(struct block_list *bl, int type)
|
||||
{
|
||||
struct status_change *sc;
|
||||
const enum sc_type scs[] = { SC_ENCPOISON, SC_ASPERSIO, SC_FIREWEAPON, SC_WATERWEAPON, SC_WINDWEAPON, SC_EARTHWEAPON, SC_SHADOWWEAPON, SC_GHOSTWEAPON, SC_ENCHANTARMS };
|
||||
const enum sc_type scs[] = { SC_ENCPOISON, SC_ASPERSIO, SC_FIREWEAPON, SC_WATERWEAPON, SC_WINDWEAPON, SC_EARTHWEAPON, SC_SHADOWWEAPON, SC_GHOSTWEAPON };
|
||||
int i;
|
||||
|
||||
nullpo_retv(bl);
|
||||
@ -17758,6 +17756,7 @@ void skill_enchant_elemental_end(struct block_list *bl, int type)
|
||||
if (!sc->count)
|
||||
return;
|
||||
|
||||
status_change_end(bl, SC_ENCHANTARMS, INVALID_TIMER); // Should always end
|
||||
for (i = 0; i < ARRAYLENGTH(scs); i++)
|
||||
if (type != scs[i] && sc->data[scs[i]])
|
||||
status_change_end(bl, scs[i], INVALID_TIMER);
|
||||
|
@ -495,7 +495,7 @@ void initChangeTables(void)
|
||||
set_sc( CG_LONGINGFREEDOM , SC_LONGING , EFST_LONGING , SCB_SPEED|SCB_ASPD );
|
||||
set_sc( CG_HERMODE , SC_HERMODE , EFST_HERMODE , SCB_NONE );
|
||||
set_sc( CG_TAROTCARD , SC_TAROTCARD , EFST_TAROTCARD, SCB_NONE );
|
||||
set_sc( ITEM_ENCHANTARMS , SC_ENCHANTARMS , EFST_BLANK , SCB_ATK_ELE );
|
||||
set_sc( ITEM_ENCHANTARMS , SC_ENCHANTARMS , EFST_WEAPONPROPERTY, SCB_ATK_ELE );
|
||||
set_sc( SL_HIGH , SC_SPIRIT , EFST_SOULLINK, SCB_ALL );
|
||||
set_sc( KN_ONEHAND , SC_ONEHAND , EFST_ONEHANDQUICKEN, SCB_ASPD );
|
||||
set_sc( GS_FLING , SC_FLING , EFST_BLANK , SCB_DEF|SCB_DEF2 );
|
||||
@ -7372,7 +7372,7 @@ unsigned char status_calc_attack_element(struct block_list *bl, struct status_ch
|
||||
if(!sc || !sc->count)
|
||||
return cap_value(element, 0, UCHAR_MAX);
|
||||
if(sc->data[SC_ENCHANTARMS])
|
||||
return sc->data[SC_ENCHANTARMS]->val2;
|
||||
return sc->data[SC_ENCHANTARMS]->val1;
|
||||
if(sc->data[SC_WATERWEAPON]
|
||||
|| (sc->data[SC_WATER_INSIGNIA] && sc->data[SC_WATER_INSIGNIA]->val1 == 2) )
|
||||
return ELE_WATER;
|
||||
@ -10321,10 +10321,10 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
||||
// end previous enchants
|
||||
skill_enchant_elemental_end(bl,type);
|
||||
// Make sure the received element is valid.
|
||||
if (val2 >= ELE_ALL)
|
||||
val2 = val2%ELE_ALL;
|
||||
else if (val2 < 0)
|
||||
val2 = rnd()%ELE_ALL;
|
||||
if (val1 >= ELE_ALL)
|
||||
val1 = val1%ELE_ALL;
|
||||
else if (val1 < 0)
|
||||
val1 = rnd()%ELE_ALL;
|
||||
break;
|
||||
case SC_CRITICALWOUND:
|
||||
val2 = 20*val1; // Heal effectiveness decrease
|
||||
@ -11339,6 +11339,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
||||
// Values that must be set regardless of flag&4 e.g. val_flag [Ind]
|
||||
switch(type) {
|
||||
// Start |1 val_flag setting
|
||||
case SC_ENCHANTARMS:
|
||||
case SC_ROLLINGCUTTER:
|
||||
case SC_BANDING:
|
||||
case SC_SPHERE_1:
|
||||
|
Loading…
x
Reference in New Issue
Block a user