--- deliantra/server/server/player.C 2007/05/11 21:07:14 1.123 +++ deliantra/server/server/player.C 2007/05/11 21:24:29 1.124 @@ -1645,6 +1645,13 @@ arrow->skill = bow->skill; arrow->direction = dir; + arrow->stats.sp = arrow->stats.wc; /* save original wc, dam, attacktype and slaying */ + arrow->stats.hp = arrow->stats.dam; + arrow->stats.grace = arrow->attacktype; + + if (arrow->slaying) + arrow->spellarg = strdup (arrow->slaying); + if (op->type == PLAYER) { op->speed_left = 0.01 - (float) FABS (op->speed) * 100 / bowspeed; @@ -1653,13 +1660,6 @@ SET_ANIMATION (arrow, arrow->direction); - arrow->stats.sp = arrow->stats.wc; /* save original wc and dam */ - arrow->stats.hp = arrow->stats.dam; - arrow->stats.grace = arrow->attacktype; - - if (arrow->slaying) - arrow->spellarg = strdup (arrow->slaying); - arrow->stats.dam += op->stats.dam + arrow->magic; /* update the speed */ @@ -1678,6 +1678,8 @@ if (!arrow->slaying) arrow->slaying = op->slaying; + + arrow->attacktype |= op->attacktype; } else { @@ -1686,12 +1688,12 @@ if (!arrow->slaying) arrow->slaying = bow->slaying; + + arrow->attacktype |= bow->attacktype; } arrow->stats.wc -= arrow->level; - arrow->attacktype |= bow->attacktype; - arrow->move_type = MOVE_FLY_LOW; arrow->move_on = MOVE_FLY_LOW | MOVE_WALK;