summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpanikon <panikon@zoho.com>2014-07-05 08:22:24 -0300
committerpanikon <panikon@zoho.com>2014-07-05 08:22:24 -0300
commita60522bac68e7ce83d2a2703fde154e85c17db30 (patch)
treec24091037977b1a1b7b5fe0d2201dc8175132190
parent9173fa50ef2887b28603f223a102448a2c69a234 (diff)
downloadhercules-a60522bac68e7ce83d2a2703fde154e85c17db30.tar.gz
hercules-a60522bac68e7ce83d2a2703fde154e85c17db30.tar.bz2
hercules-a60522bac68e7ce83d2a2703fde154e85c17db30.tar.xz
hercules-a60522bac68e7ce83d2a2703fde154e85c17db30.zip
Follow up to 9173fa50ef2887b28603f223a102448a2c69a234
-rw-r--r--src/map/skill.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index 065aa8e01..a648eb113 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -8657,24 +8657,25 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
case 3:
{
int rate = 0;
+ struct item *shield = &sd->status.inventory[sd->equip_index[EQI_HAND_L]];
- if( shield_data->refine == 0 )
+ if( shield->refine == 0 )
break; // Nothing should happen if the shield has no refine, not even displaying a message
switch( opt ) {
case 1:
- sc_start(src,bl,SC_SHIELDSPELL_REF,100,opt,shield_data->refine * 30000); //Now breaks Armor at 100% rate
+ sc_start(src,bl,SC_SHIELDSPELL_REF,100,opt,shield->refine * 30000); //Now breaks Armor at 100% rate
break;
case 2:
val = shield->refine * 10 * status->get_lv(src) / 100; //DEF Increase
rate = (shield->refine * 2) + (status_get_luk(src) / 10); //Status Resistance Rate
- if( sc_start2(src,bl,SC_SHIELDSPELL_REF,100,opt,val,shield_data->refine * 20000))
+ if( sc_start2(src,bl,SC_SHIELDSPELL_REF,100,opt,val,shield->refine * 20000))
clif->skill_nodamage(src,bl,SC_SCRESIST,skill_lv,
- sc_start(src,bl,SC_SCRESIST,100,rate,shield_data->refine * 30000));
+ sc_start(src,bl,SC_SCRESIST,100,rate,shield->refine * 30000));
break;
case 3:
sc_start(src,bl,SC_SHIELDSPELL_REF,100,opt,INVALID_TIMER); //HP Recovery
- val = sstatus->max_hp * ((status->get_lv(src) / 10) + (shield_data->refine + 1)) / 100;
+ val = sstatus->max_hp * ((status->get_lv(src) / 10) + (shield->refine + 1)) / 100;
status->heal(bl, val, 0, 2);
status_change_end(bl,SC_SHIELDSPELL_REF,INVALID_TIMER);
break;