summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt4
-rw-r--r--db/Changelog.txt2
-rw-r--r--db/skill_unit_db.txt6
-rw-r--r--src/map/battle.c6
-rw-r--r--src/map/script.c6
-rw-r--r--src/map/skill.c18
6 files changed, 28 insertions, 14 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 712bfa5b1..6c217b374 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,10 @@ 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.
2006/07/24
+ * Added a check to prevent Deluge/Volcano/Violent Gale from being placed on
+ top of each other. Reverted the previous 'fix' where atk was being
+ increased based on armor element rather than element of attack. [Skotlex]
+ * Removed the noreturn mapflag check from script command warp. [Skotlex]
* Homuculus cleanup [DracoRPG]
- Replaced nullpo's in parse functions by silent checks
- Removed server-side effect for menu option 0 (view status window...
diff --git a/db/Changelog.txt b/db/Changelog.txt
index 9821f3d05..a122c2403 100644
--- a/db/Changelog.txt
+++ b/db/Changelog.txt
@@ -25,6 +25,8 @@
=========================
07/24
+ * Added flag 0x002 (no reiteration) to Deluge/Volcano/Violent Gale
+ (skill_unit_db) [Skotlex]
* Edited Rachel mobs a little and added Beret to Turtle General drops [Playtester]
* Changed Land Protector's range back to 3. [Skotlex]
07/23
diff --git a/db/skill_unit_db.txt b/db/skill_unit_db.txt
index 0b8de926a..c5a83b5d0 100644
--- a/db/skill_unit_db.txt
+++ b/db/skill_unit_db.txt
@@ -52,9 +52,9 @@
220,0xb0, , 0, 0, -1,all, 0x002 //RG_GRAFFITI
229,0xb1, , 0, 1,1000,enemy, 0x006 //AM_DEMONSTRATION
254,0x86, , -1, 0, 400,enemy, 0x000 //CR_GRANDCROSS
-285,0x9a, , 3, 0, -1,all, 0x000 //SA_VOLCANO
-286,0x9b, , 3, 0, -1,all, 0x000 //SA_DELUGE
-287,0x9c, , 3, 0, -1,all, 0x000 //SA_VIOLENTGALE
+285,0x9a, , 3, 0, -1,all, 0x002 //SA_VOLCANO
+286,0x9b, , 3, 0, -1,all, 0x002 //SA_DELUGE
+287,0x9c, , 3, 0, -1,all, 0x002 //SA_VIOLENTGALE
288,0x9d,,3:3:4:4:5,0, -1,all, 0x000 //SA_LANDPROTECTOR
306,0x9e, , 4, 0,6000,all, 0x200 //BD_LULLABY
307,0x9f, , 4, 0, -1,enemy, 0x210 //BD_RICHMANKIM
diff --git a/src/map/battle.c b/src/map/battle.c
index acd5d547d..bbee2fe24 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -198,11 +198,11 @@ int battle_attr_fix(struct block_list *src, struct block_list *target, int damag
ratio = attr_fix_table[def_lv-1][atk_elem][def_type];
if (sc && sc->count)
{
- if(sc->data[SC_VOLCANO].timer!=-1 && status_get_element(src) == ELE_FIRE)
+ if(sc->data[SC_VOLCANO].timer!=-1 && atk_elem == ELE_FIRE)
ratio += enchant_eff[sc->data[SC_VOLCANO].val1-1];
- if(sc->data[SC_VIOLENTGALE].timer!=-1 && status_get_element(src) == ELE_WIND)
+ if(sc->data[SC_VIOLENTGALE].timer!=-1 && atk_elem == ELE_WIND)
ratio += enchant_eff[sc->data[SC_VIOLENTGALE].val1-1];
- if(sc->data[SC_DELUGE].timer!=-1 && status_get_element(src) == ELE_WATER)
+ if(sc->data[SC_DELUGE].timer!=-1 && atk_elem == ELE_WATER)
ratio += enchant_eff[sc->data[SC_DELUGE].val1-1];
}
if (tsc && tsc->count)
diff --git a/src/map/script.c b/src/map/script.c
index d17b84fdd..3b1fbfe23 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -3054,15 +3054,9 @@ int buildin_warp(struct script_state *st)
if(strcmp(str,"Random")==0)
pc_randomwarp(sd,3);
else if(strcmp(str,"SavePoint")==0){
- if(map[sd->bl.m].flag.noreturn) // ’±‹ΦŽ~
- return 0;
-
pc_setpos(sd,sd->status.save_point.map,
sd->status.save_point.x,sd->status.save_point.y,3);
}else if(strcmp(str,"Save")==0){
- if(map[sd->bl.m].flag.noreturn) // ’±‹ΦŽ~
- return 0;
-
pc_setpos(sd,sd->status.save_point.map,
sd->status.save_point.x,sd->status.save_point.y,3);
}else
diff --git a/src/map/skill.c b/src/map/skill.c
index 46280601e..230b35e55 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -2194,6 +2194,20 @@ static int skill_check_unit_range_sub (struct block_list *bl, va_list ap)
if(g_skillid != MG_SAFETYWALL && g_skillid != AL_PNEUMA)
return 0;
break;
+ //Cannot stack among themselves.
+ case SA_VOLCANO:
+ case SA_DELUGE:
+ case SA_VIOLENTGALE:
+ switch (g_skillid)
+ {
+ case SA_VOLCANO:
+ case SA_DELUGE:
+ case SA_VIOLENTGALE:
+ break;
+ default:
+ return 0;
+ }
+ break;
case AL_WARP:
case HT_SKIDTRAP:
case HT_LANDMINE:
@@ -5831,7 +5845,7 @@ int skill_castend_id (int tid, unsigned int tick, int id, int data)
break;
}
- if(sd && !skill_check_condition(sd,ud->skillid, ud->skilllv,1)) /* 使用村仢チェック */
+ if(sd && !skill_check_condition(sd,ud->skillid, ud->skilllv,1))
break;
if(hd && !skill_check_condition_hom(hd,ud->skillid, ud->skilllv,1)) //[orn]
@@ -7683,7 +7697,7 @@ static int skill_check_condition_char_sub (struct block_list *bl, va_list ap)
if(pc_isdead(tsd))
return 0;
- if (tsd->sc.count && (tsd->sc.data[SC_SILENCE].timer != -1 || tsd->sc.data[SC_STUN].timer != -1))
+ if (tsd->sc.count && (tsd->sc.data[SC_SILENCE].timer != -1 || tsd->sc.opt1))
return 0;
switch(skillid)