diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-07-18 13:25:21 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-07-18 13:25:21 +0000 |
commit | ff6317b65b37c6439076afd810193baf893b3611 (patch) | |
tree | 90117e8581813a31fd9ffefa858fc1a0543debe0 /src/map/status.h | |
parent | 625630e64fe10dd9d46b87c742efbf47bff497da (diff) | |
download | hercules-ff6317b65b37c6439076afd810193baf893b3611.tar.gz hercules-ff6317b65b37c6439076afd810193baf893b3611.tar.bz2 hercules-ff6317b65b37c6439076afd810193baf893b3611.tar.xz hercules-ff6317b65b37c6439076afd810193baf893b3611.zip |
- Added a proper check to make aggressive mobs never override homun targets regardless of distance.
- Removed a bunch of homun-related variables that are not needed at all. The alive condition is removed, now the code checks for the hp value to know if the homun is alive or not.
- Cleaned up a bit the skill-id function, homun skill checks (such as delay and skill-lv learned) should be correct now.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7727 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/status.h')
-rw-r--r-- | src/map/status.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/map/status.h b/src/map/status.h index 2f35a5fbb..65e512ec5 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -514,13 +514,16 @@ enum { #define SCB_PC 0x80000000
#define SCB_ALL 0x7FFFFFFF
+//Define to determine who gets HP/SP consumed on doing skills/etc. [Skotlex]
+#define BL_CONSUME (BL_PC|BL_HOMUNCULUS)
+
int status_damage(struct block_list *src,struct block_list *target,int hp,int sp, int walkdelay, int flag);
//Define for standard HP damage attacks.
#define status_fix_damage(src, target, hp, walkdelay) status_damage(src, target, hp, 0, walkdelay, 0)
//Define for standard HP/SP damage triggers.
#define status_zap(bl, hp, sp) status_damage(NULL, bl, hp, sp, 0, 1)
//Define for standard HP/SP skill-related cost triggers (mobs require no HP/SP to use skills)
-#define status_charge(bl, hp, sp) ((bl)->type != BL_PC || status_damage(NULL, bl, hp, sp, 0, 3))
+#define status_charge(bl, hp, sp) (!((bl)->type&BL_CONSUME) || status_damage(NULL, bl, hp, sp, 0, 3))
int status_percent_change(struct block_list *src,struct block_list *target,signed char hp_rate, signed char sp_rate, int flag);
//Easier handling of status_percent_change
#define status_percent_heal(bl, hp_rate, sp_rate) status_percent_change(NULL, bl, -(hp_rate), -(sp_rate), 1)
|