UID230690
帖子
精華
主題
積分282
現金
積極性
威望
違規
熱心
推廣次數
閱讀權限5
註冊時間2010-1-21
在線時間 小時
最後登錄1970-1-1
該用戶從未簽到
|
發表於 2010-3-13 19:37:20
|
顯示全部樓層
本帖最後由 gakuenro 於 2010-3-13 09:40 PM 編輯
這目前有個小問題...
就是怪物的MHP若超過32768的話
會無法正常顯示
就會像這樣
你打完32768滴的傷害,他的血條已經見底了可是還不會死
因為他實際的血量不只32768
新手上路
目前還在找修正方法
不知道有沒有前輩們知道如何修改此處
------------------------------------
經過我一個小時的反覆修改(對新手來說=_=)
已經解決了
將哆啦大大原本的 clif_hpmeter_monster 修改成如下即可囉
*藍字部分為我修正的方法...
void clif_hpmeter_monster(unsigned int fd,struct mob_data *md){
if(fd==0){
struct s_mapiterator* iter;
unsigned int hp,max_hp;
TBL_PC* tsd;
iter = mapit_getallusers();
while( (tsd = (TBL_PC*)mapit_next(iter)) != NULL )
{
if(( tsd->bl.x > md->bl.x-AREA_SIZE ) && (tsd->bl.x < md->bl.x+AREA_SIZE) && ( tsd->bl.y > md->bl.y-AREA_SIZE ) && (tsd->bl.y < md->bl.y+AREA_SIZE))
{
WFIFOHEAD(tsd->fd,packet_len(0x106));
WFIFOW(tsd->fd,0) = 0x106;
WFIFOL(tsd->fd,2) = md->bl.id;
if (md->status.max_hp > 32768) {
WFIFOW(tsd->fd,6) = md->status.hp/(md->status.max_hp/100);
WFIFOW(tsd->fd,8) = 100;
} else {
WFIFOW(tsd->fd,6) = md->status.hp;
WFIFOW(tsd->fd,8) = md->status.max_hp;
}
WFIFOSET(tsd->fd, packet_len(0x106));
}
}
}else{
WFIFOHEAD(fd,packet_len(0x106));
WFIFOW(fd,0) = 0x106;
WFIFOL(fd,2) = md->bl.id;
WFIFOW(fd,6) = md->status.hp;
WFIFOW(fd,8) = md->status.max_hp;
WFIFOSET(fd, packet_len(0x106));
}
} |
|