| 2127 | } |
| 2128 | |
| 2129 | DWORD On_MONSTDAMAGE(TCmd *pCmd, int pnum) |
| 2130 | { |
| 2131 | TCmdParam2 *p = (TCmdParam2 *)pCmd; |
| 2132 | |
| 2133 | if (gbBufferMsgs == 1) |
| 2134 | msg_send_packet(pnum, p, sizeof(*p)); |
| 2135 | else if (pnum != myplr) { |
| 2136 | if (currlevel == plr[pnum].plrlevel) { |
| 2137 | monster[p->wParam1].mWhoHit |= 1 << pnum; |
| 2138 | |
| 2139 | if (monster[p->wParam1]._mhitpoints) { |
| 2140 | monster[p->wParam1]._mhitpoints -= p->wParam2; |
| 2141 | if ((monster[p->wParam1]._mhitpoints >> 6) < 1) |
| 2142 | monster[p->wParam1]._mhitpoints = 1 << 6; |
| 2143 | delta_monster_hp(p->wParam1, monster[p->wParam1]._mhitpoints, plr[pnum].plrlevel); |
| 2144 | } |
| 2145 | } |
| 2146 | } |
| 2147 | |
| 2148 | return sizeof(*p); |
| 2149 | } |
| 2150 | |
| 2151 | DWORD On_PLRDEAD(TCmd *pCmd, int pnum) |
| 2152 | { |
no test coverage detected