ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/server/player.C
(Generate patch)

Comparing deliantra/server/server/player.C (file contents):
Revision 1.123 by root, Fri May 11 21:07:14 2007 UTC vs.
Revision 1.124 by root, Fri May 11 21:24:29 2007 UTC

1643 1643
1644 arrow->set_owner (op); 1644 arrow->set_owner (op);
1645 arrow->skill = bow->skill; 1645 arrow->skill = bow->skill;
1646 arrow->direction = dir; 1646 arrow->direction = dir;
1647 1647
1648 arrow->stats.sp = arrow->stats.wc; /* save original wc, dam, attacktype and slaying */
1649 arrow->stats.hp = arrow->stats.dam;
1650 arrow->stats.grace = arrow->attacktype;
1651
1652 if (arrow->slaying)
1653 arrow->spellarg = strdup (arrow->slaying);
1654
1648 if (op->type == PLAYER) 1655 if (op->type == PLAYER)
1649 { 1656 {
1650 op->speed_left = 0.01 - (float) FABS (op->speed) * 100 / bowspeed; 1657 op->speed_left = 0.01 - (float) FABS (op->speed) * 100 / bowspeed;
1651 op->update_stats (); 1658 op->update_stats ();
1652 } 1659 }
1653 1660
1654 SET_ANIMATION (arrow, arrow->direction); 1661 SET_ANIMATION (arrow, arrow->direction);
1655
1656 arrow->stats.sp = arrow->stats.wc; /* save original wc and dam */
1657 arrow->stats.hp = arrow->stats.dam;
1658 arrow->stats.grace = arrow->attacktype;
1659
1660 if (arrow->slaying)
1661 arrow->spellarg = strdup (arrow->slaying);
1662 1662
1663 arrow->stats.dam += op->stats.dam + arrow->magic; 1663 arrow->stats.dam += op->stats.dam + arrow->magic;
1664 1664
1665 /* update the speed */ 1665 /* update the speed */
1666 arrow->speed = (float) ((QUERY_FLAG (bow, FLAG_NO_STRENGTH) ? 1666 arrow->speed = (float) ((QUERY_FLAG (bow, FLAG_NO_STRENGTH) ?
1676 arrow->level = op->chosen_skill ? op->chosen_skill->level : op->level; 1676 arrow->level = op->chosen_skill ? op->chosen_skill->level : op->level;
1677 arrow->stats.wc -= dex_bonus[op->stats.Dex]; 1677 arrow->stats.wc -= dex_bonus[op->stats.Dex];
1678 1678
1679 if (!arrow->slaying) 1679 if (!arrow->slaying)
1680 arrow->slaying = op->slaying; 1680 arrow->slaying = op->slaying;
1681
1682 arrow->attacktype |= op->attacktype;
1681 } 1683 }
1682 else 1684 else
1683 { 1685 {
1684 arrow->level = op->level; 1686 arrow->level = op->level;
1685 arrow->stats.wc -= bow->magic; 1687 arrow->stats.wc -= bow->magic;
1686 1688
1687 if (!arrow->slaying) 1689 if (!arrow->slaying)
1688 arrow->slaying = bow->slaying; 1690 arrow->slaying = bow->slaying;
1691
1692 arrow->attacktype |= bow->attacktype;
1689 } 1693 }
1690 1694
1691 arrow->stats.wc -= arrow->level; 1695 arrow->stats.wc -= arrow->level;
1692
1693 arrow->attacktype |= bow->attacktype;
1694 1696
1695 arrow->move_type = MOVE_FLY_LOW; 1697 arrow->move_type = MOVE_FLY_LOW;
1696 arrow->move_on = MOVE_FLY_LOW | MOVE_WALK; 1698 arrow->move_on = MOVE_FLY_LOW | MOVE_WALK;
1697 1699
1698 play_sound_map (op->map, op->x, op->y, SOUND_FIRE_ARROW); 1700 play_sound_map (op->map, op->x, op->y, SOUND_FIRE_ARROW);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines