summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2008-03-05 15:39:46 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2008-03-05 15:39:46 +0000
commit53c1056d5f11c8ecd8caedae24765e922017fede (patch)
treee9aadb1420a3f5b3070f5c56e202380075698bd1 /src/map
parent2aa019b4313ff70b17ad7be44867646984728f6e (diff)
downloadhercules-53c1056d5f11c8ecd8caedae24765e922017fede.tar.gz
hercules-53c1056d5f11c8ecd8caedae24765e922017fede.tar.bz2
hercules-53c1056d5f11c8ecd8caedae24765e922017fede.tar.xz
hercules-53c1056d5f11c8ecd8caedae24765e922017fede.zip
- Implemented Firepillar's 'target cannot move for 0.2 sec x hit' property.
- Corrected Earthquake so it behaves as explained in the development topics. - Corrected a missing opt_flag = 0 when using SC_INCATKRATE on mobs. - Added a missing line to actually unequip unallowed compounded cards when changing maps. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12299 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map')
-rw-r--r--src/map/battle.c15
-rw-r--r--src/map/pc.c3
-rw-r--r--src/map/skill.c5
-rw-r--r--src/map/status.c3
4 files changed, 17 insertions, 9 deletions
diff --git a/src/map/battle.c b/src/map/battle.c
index c8e822a63..fc88611dd 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -2189,12 +2189,6 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
break;
default:
{
- if (skill_num == NPC_EARTHQUAKE) {
- if (sstatus->rhw.atk2 > sstatus->rhw.atk)
- MATK_ADD(sstatus->rhw.atk + rand()%(1+sstatus->rhw.atk2-sstatus->rhw.atk))
- else
- MATK_ADD(sstatus->rhw.atk);
- } else
if (sstatus->matk_max > sstatus->matk_min) {
MATK_ADD(sstatus->matk_min+rand()%(1+sstatus->matk_max-sstatus->matk_min));
} else {
@@ -2287,7 +2281,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
skillratio += 100*skill_lv;
break;
case NPC_EARTHQUAKE:
- skillratio += 400 + 500*skill_lv;
+ skillratio += 100 +100*skill_lv +100*(skill_lv/2);
break;
}
@@ -2326,8 +2320,6 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
//mdef2-= mdef2* i/100;
}
}
- if (skill_num == NPC_EARTHQUAKE)
- mdef>>=1; //Halves MDEF (stupid overpowered skill)
if(battle_config.magic_defense_type)
ad.damage = ad.damage - mdef*battle_config.magic_defense_type - mdef2;
else
@@ -2346,6 +2338,11 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
ad.damage = 0;
}
}
+
+ if (skill_num == NPC_EARTHQUAKE)
+ { //Adds atk2 to the damage, should be influenced by number of hits and skill-ratio, but not mdef reductions. [Skotlex]
+ ad.damage+= sstatus->rhw.atk2*skillratio/100;
+ }
if(ad.damage<1)
ad.damage=1;
diff --git a/src/map/pc.c b/src/map/pc.c
index 2a9299658..7a863ad1b 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -6593,7 +6593,10 @@ int pc_checkitem(struct map_session_data *sd)
| (map[sd->bl.m].flag.pvp?1:0)
| (map_flag_gvg(sd->bl.m)?2:0);
if (flag && !pc_isAllowedCardOn(sd,it->slot,i,flag))
+ {
+ sd->status.inventory[i].equip=0;
calc_flag = 1;
+ }
}
}
}
diff --git a/src/map/skill.c b/src/map/skill.c
index 3855891a9..11acaa106 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -528,6 +528,11 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
if (!tsc->data[skill])
sc_start(bl,skill,100,skilllv,skill_get_time2(skillid, skilllv));
break;
+
+ case WZ_FIREPILLAR:
+ unit_set_walkdelay(bl, tick, skill_get_time2(skillid, skilllv), 1);
+ break;
+
case MG_FROSTDIVER:
case WZ_FROSTNOVA:
sc_start(bl,SC_FREEZE,skilllv*3+35,skilllv,skill_get_time2(skillid,skilllv));
diff --git a/src/map/status.c b/src/map/status.c
index eae8805e4..11198f28f 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -6594,7 +6594,10 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid)
break;
case SC_INCATKRATE: //Simulated Explosion spirits effect.
if (bl->type != BL_MOB)
+ {
+ opt_flag = 0;
break;
+ }
case SC_EXPLOSIONSPIRITS:
sc->opt3 &= ~0x8;
opt_flag = 0;