diff options
author | lordttseven <lordttseven@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-03-15 10:30:42 +0000 |
---|---|---|
committer | lordttseven <lordttseven@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-03-15 10:30:42 +0000 |
commit | daeecf3bd0bdb54f43f8aedee98a7c8c68a56992 (patch) | |
tree | 4d57bf55bb3f936bf97ac92402627e90ed1bdd40 /src/map/status.h | |
parent | 55984b91c03d25e7a6cae535043cd49815cf9e24 (diff) | |
download | hercules-daeecf3bd0bdb54f43f8aedee98a7c8c68a56992.tar.gz hercules-daeecf3bd0bdb54f43f8aedee98a7c8c68a56992.tar.bz2 hercules-daeecf3bd0bdb54f43f8aedee98a7c8c68a56992.tar.xz hercules-daeecf3bd0bdb54f43f8aedee98a7c8c68a56992.zip |
Status change packet cleanup
* fixed a couple typos
* replaced duplicate function clif_status_load with a macro
* normalized and documented status change table related getter abstraction
* put some checks that were previously in multiple places into clif_status_change
* packets are now used as they are on official servers:
- ZC_MSG_STATE_CHANGE for ending statuses and starting them on non-pcs
- ZC_MSG_STATE_CHANGE2 for starting *all* statuses on players
- tick = 9999 for statuses of indeterminate duration
- for non-pc units, a packet is only sent if it has a visual impact on the client; if you notice any missing visual effects, please report them!
* fixed hidden GM characters leaking certain status packets
* fixed hidden GM characters not displaying timers for newly gained statuses
* fixed status end packet never being sent for non-pc, non-mercenary units
* fixed SC_CLOAKING displaying a time bar on the client
* fixed tick being an unsigned int, yet used as a signed int
* removed hard-coded status length exceptions in clif_status_change
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15688 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/status.h')
-rw-r--r-- | src/map/status.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/map/status.h b/src/map/status.h index a71a4ef49..4d1e53d4d 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -13,8 +13,6 @@ struct status_change; #define MAX_REFINE_BONUS 5 -extern unsigned long StatusChangeFlagTable[]; - // Status changes listing. These code are for use by the server. typedef enum sc_type { @@ -1152,6 +1150,8 @@ enum si_type { SI_EARTH_INSIGNIA = 570, SI_EQUIPED_FLOOR = 571, SI_ALL_RIDING = 613,//awesome 571-613 gap, we're missing quite a few stuff here. + + SI_MAX, }; // JOINTBEAT stackable ailments @@ -1333,7 +1333,8 @@ enum scb_flag #define BL_CONSUME (BL_PC|BL_HOM|BL_MER) //Define to determine who has regen #define BL_REGEN (BL_PC|BL_HOM|BL_MER) - +//Define to determine who will receive a clif_status_change packet for effects that require one to display correctly +#define BL_SCEFFECT (BL_PC|BL_HOM|BL_MER|BL_MOB) //Basic damage info of a weapon //Required because players have two of these, one in status_data @@ -1458,6 +1459,8 @@ struct status_change { // for looking up associated data sc_type status_skill2sc(int skill); int status_sc2skill(sc_type sc); +unsigned int status_sc2scb_flag(sc_type sc); +int status_type2relevant_bl_types(int type); 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. |