- Deluge/Violent Gale/Volcano tiles will now fail to be placed on cells that are already ocuppied by anything else.
- status_is_immune will now return 0 or the amount of immunity of the target. In which cases it returns 100 for WoH and the GTB bonus when they have passed the gtb_sc_immunity setting. This enables targetted spells to not "fail silently" unless GTB's magic reduction is 100. git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9194 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
fff660eb38
commit
3b530a5702
@ -4,6 +4,12 @@ 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/11/10
|
||||
* Deluge/Violent Gale/Volcano tiles will now fail to be placed on cells
|
||||
that are already ocuppied by anything else. [Skotlex]
|
||||
* status_is_immune will now return 0 or the amount of immunity of the
|
||||
target. In which cases it returns 100 for WoH and the GTB bonus when they
|
||||
have passed the gtb_sc_immunity setting. This enables targetted spells to
|
||||
not "fail silently" unless GTB's magic reduction is 100. [Skotlex]
|
||||
* Fixed Homunculus being spawned as soon as they arrive from the
|
||||
char-server even if the Master has not spawned on the map yet. [Skotlex]
|
||||
* AL_TELEPORT now fails when used on top of Land Protector. [Skotlex]
|
||||
|
@ -2639,7 +2639,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int
|
||||
if (status_isdead(bl))
|
||||
return 1;
|
||||
|
||||
if (skillid && skill_get_type(skillid) == BF_MAGIC && status_isimmune(bl))
|
||||
if (skillid && skill_get_type(skillid) == BF_MAGIC && status_isimmune(bl) == 100)
|
||||
{ //GTB makes all targetted magic fail silently.
|
||||
if (sd) clif_skill_fail(sd,skillid,0,0);
|
||||
return 1;
|
||||
@ -9323,6 +9323,15 @@ int skill_cell_overlap(struct block_list *bl, va_list ap)
|
||||
// Suiton/Kaensin CAN super-impose on each another.
|
||||
// case NJ_SUITON:
|
||||
// case NJ_KAENSIN:
|
||||
// The official implementation makes them fail to appear when casted on top of ANYTHING
|
||||
// but I wonder if they didn't actually meant to fail when casted on top of each other?
|
||||
// hence, I leave the alternate implementation here, commented. [Skotlex]
|
||||
if (unit->range <= 0)
|
||||
{
|
||||
(*alive) = 0;
|
||||
return 1;
|
||||
}
|
||||
/*
|
||||
switch (unit->group->skill_id)
|
||||
{ //These cannot override each other.
|
||||
case SA_VOLCANO:
|
||||
@ -9333,6 +9342,7 @@ int skill_cell_overlap(struct block_list *bl, va_list ap)
|
||||
(*alive) = 0;
|
||||
return 1;
|
||||
}
|
||||
*/
|
||||
break;
|
||||
case PF_FOGWALL:
|
||||
switch(unit->group->skill_id)
|
||||
|
@ -4168,10 +4168,11 @@ int status_isimmune(struct block_list *bl)
|
||||
{
|
||||
struct status_change *sc =status_get_sc(bl);
|
||||
if (sc && sc->count && sc->data[SC_HERMODE].timer != -1)
|
||||
return 1;
|
||||
return 100;
|
||||
|
||||
if (bl->type == BL_PC &&
|
||||
((TBL_PC*)bl)->special_state.no_magic_damage)
|
||||
return ((TBL_PC*)bl)->special_state.no_magic_damage > battle_config.gtb_sc_immunity;
|
||||
((TBL_PC*)bl)->special_state.no_magic_damage > battle_config.gtb_sc_immunity)
|
||||
return ((TBL_PC*)bl)->special_state.no_magic_damage;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user