summaryrefslogtreecommitdiff
path: root/src/map/status.c
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-02-21 13:53:36 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-02-21 13:53:36 +0000
commit6a71c68fd365d0b7e91fe89a2d02296ef465a720 (patch)
tree8f9cc4485e78f23207e3edab3751d8bfe316b66c /src/map/status.c
parent5834376714bc7f39480eae14b9eb8e15f117d634 (diff)
downloadhercules-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.c26
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;