summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/packet_db.txt1
-rw-r--r--src/map/clif.c21
-rw-r--r--src/map/clif.h1
-rw-r--r--src/map/mob.c7
4 files changed, 28 insertions, 2 deletions
diff --git a/db/packet_db.txt b/db/packet_db.txt
index 56164d378..bd88ca8a9 100644
--- a/db/packet_db.txt
+++ b/db/packet_db.txt
@@ -1756,6 +1756,7 @@ packet_ver: 30
0x0908,5
0x08D7,28,battlegroundreg,2:4 //Added to prevent disconnections
0x08CF,10 //Amulet spirits
+0x0977,14 //Monster HP Bar
//Add new packets here
//packet_ver: 31 \ No newline at end of file
diff --git a/src/map/clif.c b/src/map/clif.c
index d97959b49..9ee0a27bf 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -16221,6 +16221,19 @@ void clif_snap( struct block_list *bl, short x, short y ) {
clif_send(buf,packet_len(0x8d2),bl,AREA);
}
+void clif_monster_hp_bar( struct mob_data* md, int fd ) {
+#if PACKETVER >= 20120404
+ WFIFOHEAD(fd,packet_len(0x977));
+
+ WFIFOW(fd,0) = 0x977;
+ WFIFOL(fd,2) = md->bl.id;
+ WFIFOL(fd,6) = md->status.hp;
+ WFIFOL(fd,10) = md->status.max_hp;
+
+ WFIFOSET(fd,packet_len(0x977));
+#endif
+}
+
/*==========================================
* Main client packet processing function
*------------------------------------------*/
@@ -16615,7 +16628,13 @@ static int packetdb_readdb(void)
0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ //#0x0940
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0,
+
};
struct {
void (*func)(int, struct map_session_data *);
diff --git a/src/map/clif.h b/src/map/clif.h
index 385c1d4aa..d31fb59fe 100644
--- a/src/map/clif.h
+++ b/src/map/clif.h
@@ -739,6 +739,7 @@ void clif_elemental_updatestatus(struct map_session_data *sd, int type);
void clif_talisman(struct map_session_data *sd, short type);
void clif_snap( struct block_list *bl, short x, short y );
+void clif_monster_hp_bar( struct mob_data* md, int fd );
/**
* Color Table
diff --git a/src/map/mob.c b/src/map/mob.c
index 18b514616..14a520ab8 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -2081,10 +2081,15 @@ void mob_damage(struct mob_data *md, struct block_list *src, int damage)
if (battle_config.show_mob_info&3)
clif_charnameack (0, &md->bl);
-
+
if (!src)
return;
+#if PACKETVER >= 20120404
+ if( src->type == BL_PC && !(md->status.mode&MD_BOSS) )
+ clif_monster_hp_bar(md, ((TBL_PC*)src)->fd);
+#endif
+
if( md->special_state.ai == 2 ) {//LOne WOlf explained that ANYONE can trigger the marine countdown skill. [Skotlex]
md->state.alchemist = 1;
mobskill_use(md, gettick(), MSC_ALCHEMIST);