summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt5
-rw-r--r--db/skill_cast_db.txt2
-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
6 files changed, 23 insertions, 10 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 8deaea1fd..32b0e84fa 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -3,6 +3,11 @@ Date Added
AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
+2008/03/05
+ * Implemented Firepillar's 'target cannot move for 0.2 sec x hit' property.
+ * Corrected Earthquake so it behaves as explained in the development topics.
+ * Added a missing line to actually unequip unallowed compounded cards when
+ changing maps.
2008/03/04
* Updated the firepillar code so it behaves like the other traps.
* Additional status changes now only get triggered if the attack did
diff --git a/db/skill_cast_db.txt b/db/skill_cast_db.txt
index 146508184..f77a9ea5f 100644
--- a/db/skill_cast_db.txt
+++ b/db/skill_cast_db.txt
@@ -169,7 +169,7 @@
//===== Wizard =============================
//-- WZ_FIREPILLAR
-80,3000:2700:2400:2100:1800:1500:1200:900:600:300,1000,0,30000,0
+80,3000:2700:2400:2100:1800:1500:1200:900:600:300,1000,0,30000,600:800:1000:1200:1400:1600:1800:2000:2200:2400
//-- WZ_SIGHTRASHER
81,700,2000,0,500,0
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;