diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-02-21 13:53:36 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-02-21 13:53:36 +0000 |
commit | 6a71c68fd365d0b7e91fe89a2d02296ef465a720 (patch) | |
tree | 8f9cc4485e78f23207e3edab3751d8bfe316b66c /src/map/status.c | |
parent | 5834376714bc7f39480eae14b9eb8e15f117d634 (diff) | |
download | hercules-6a71c68fd365d0b7e91fe89a2d02296ef465a720.tar.gz hercules-6a71c68fd365d0b7e91fe89a2d02296ef465a720.tar.bz2 hercules-6a71c68fd365d0b7e91fe89a2d02296ef465a720.tar.xz hercules-6a71c68fd365d0b7e91fe89a2d02296ef465a720.zip |
- Vending is now cancelled on a pc_setpos
- Pressure again ignores Basilica.
- Fixed attacker's sc being nulled when the target's sc is empty.
- Slaves now do a battle_check_target to check if the new target is an enemy when acquired through sd->skilltarget.
- Fixed SC_SKE halving defense2 twice.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5355 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/status.c')
-rw-r--r-- | src/map/status.c | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/src/map/status.c b/src/map/status.c index 4b6fade9b..845f0a84d 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -347,18 +347,6 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int if (!skill_num && !(mode&MD_CANATTACK))
return 0; //This mode is only needed for melee attacking.
-
- if (((src && map_getcell(src->m,src->x,src->y,CELL_CHKBASILICA)) ||
- (target && target != src && map_getcell(target->m,target->x,target->y,CELL_CHKBASILICA)))
- && !(mode&MD_BOSS))
- { //Basilica Check
- if (!skill_num) return 0;
- race = skill_get_inf(skill_num);
- if (race&INF_ATTACK_SKILL)
- return 0;
- if (race&INF_GROUND_SKILL && skill_get_unit_target(skill_num)&BCT_ENEMY)
- return 0;
- }
if (skill_num == PA_PRESSURE && flag) {
//Gloria Avoids pretty much everythng....
@@ -372,6 +360,18 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int return 1;
}
+ if (((src && map_getcell(src->m,src->x,src->y,CELL_CHKBASILICA)) ||
+ (target && target != src && map_getcell(target->m,target->x,target->y,CELL_CHKBASILICA)))
+ && !(mode&MD_BOSS))
+ { //Basilica Check
+ if (!skill_num) return 0;
+ race = skill_get_inf(skill_num);
+ if (race&INF_ATTACK_SKILL)
+ return 0;
+ if (race&INF_GROUND_SKILL && skill_get_unit_target(skill_num)&BCT_ENEMY)
+ return 0;
+ }
+
if (src) sc = status_get_sc(src);
if(sc && sc->opt1 >0)
@@ -2058,8 +2058,6 @@ int status_calc_def2(struct block_list *bl, int def2) def2 -= def2 * 50/100;
if(sc->data[SC_PROVOKE].timer!=-1)
def2 -= def2 * (5+5*sc->data[SC_PROVOKE].val1)/100;
- if(sc->data[SC_SKE].timer!=-1)
- def2 /= 2;
if(sc->data[SC_JOINTBEAT].timer!=-1){
if(sc->data[SC_JOINTBEAT].val2==3)
def2 -= def2 * 50/100;
|