- Corrected Fog of Wall's "targetted spells fail 75% of the time" feature by making it behave like GTB, that is, you just get a skill-failed on cast-end, no skill-animation at all.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7728 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
97b00a11ad
commit
6598266122
@ -4,6 +4,9 @@ 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/18
|
||||
* Corrected Fog of Wall's "targetted spells fail 75% of the time" feature
|
||||
by making it behave like GTB, that is, you just get a skill-failed on
|
||||
cast-end, no skill-animation at all. [Skotlex]
|
||||
* Added a proper check to make aggressive mobs never override homun targets
|
||||
regardless of distance. [Skotlex]
|
||||
* Removed a bunch of homun-related variables that are not needed at all.
|
||||
|
@ -312,12 +312,7 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,int damage,i
|
||||
if(sc->data[SC_HERMODE].timer != -1 && flag&BF_MAGIC)
|
||||
return 0;
|
||||
|
||||
if(sc->data[SC_FOGWALL].timer != -1 && flag&BF_MAGIC
|
||||
&& rand()%100 < 75 && !(skill_get_inf(skill_num)&INF_GROUND_SKILL))
|
||||
return 0;
|
||||
|
||||
|
||||
if(sc->data[SC_TATAMIGAESHI].timer != -1 && !flag&BF_MAGIC && flag&BF_LONG)
|
||||
if(sc->data[SC_TATAMIGAESHI].timer != -1 && (flag&(BF_MAGIC|BF_LONG)) == BF_LONG)
|
||||
return 0;
|
||||
|
||||
if(sc->data[SC_KAUPE].timer != -1 &&
|
||||
@ -351,10 +346,12 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,int damage,i
|
||||
damage>>=1; //Receive 50% damage
|
||||
}
|
||||
|
||||
if(sc->data[SC_DEFENDER].timer != -1 && flag&BF_LONG && flag&BF_WEAPON)
|
||||
if(sc->data[SC_DEFENDER].timer != -1 &&
|
||||
(flag&(BF_LONG|BF_WEAPON)) == (BF_LONG|BF_WEAPON))
|
||||
damage=damage*(100-sc->data[SC_DEFENDER].val2)/100;
|
||||
|
||||
if(sc->data[SC_FOGWALL].timer != -1 && flag&BF_LONG && flag&BF_WEAPON)
|
||||
if(sc->data[SC_FOGWALL].timer != -1 &&
|
||||
(flag&(BF_LONG|BF_WEAPON)) == (BF_LONG|BF_WEAPON))
|
||||
damage >>=1;
|
||||
|
||||
if(sc->data[SC_ENERGYCOAT].timer!=-1 && flag&BF_WEAPON){
|
||||
@ -405,13 +402,9 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,int damage,i
|
||||
//SC effects from caster side.
|
||||
sc = status_get_sc(src);
|
||||
if (sc && sc->count) {
|
||||
if(sc->data[SC_FOGWALL].timer != -1 && flag&(BF_LONG|BF_MAGIC)) {
|
||||
if (flag&BF_MAGIC) {
|
||||
if(!(skill_get_inf(skill_num)&INF_GROUND_SKILL) && rand()%100 < 75)
|
||||
return 0;
|
||||
} else if (flag&BF_WEAPON)
|
||||
if(sc->data[SC_FOGWALL].timer != -1 &&
|
||||
(flag&(BF_LONG|BF_WEAPON)) == (BF_LONG|BF_WEAPON))
|
||||
damage >>=1;
|
||||
}
|
||||
}
|
||||
|
||||
if (battle_config.pk_mode && sd && damage)
|
||||
|
@ -2626,11 +2626,15 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int
|
||||
if (status_isdead(src) || (src != bl && status_isdead(bl)))
|
||||
return 1;
|
||||
|
||||
if (skillid && skill_get_type(skillid) == BF_MAGIC && status_isimmune(bl))
|
||||
if (skillid && skill_get_type(skillid) == BF_MAGIC)
|
||||
{
|
||||
if (sd) clif_skill_fail(sd,skillid,0,0);
|
||||
//GTB makes all targetted skills silently fail.
|
||||
return 1;
|
||||
sc = status_get_sc(bl);
|
||||
if (status_isimmune(bl) || (
|
||||
sc && sc->count && sc->data[SC_FOGWALL].timer != -1 && rand()%100 < 75)
|
||||
) { //GTB/Fogwall makes all targetted skills silently fail.
|
||||
if (sd) clif_skill_fail(sd,skillid,0,0);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
sc = status_get_sc(src);
|
||||
|
Loading…
x
Reference in New Issue
Block a user