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

Comparing deliantra/server/common/living.C (file contents):
Revision 1.24 by root, Thu Jan 4 16:19:31 2007 UTC vs.
Revision 1.29 by root, Mon Jan 15 15:41:09 2007 UTC

1/* 1/*
2 CrossFire, A Multiplayer game for X-windows 2 CrossFire, A Multiplayer game for X-windows
3 3
4 Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team
4 Copyright (C) 2002 Mark Wedel & Crossfire Development Team 5 Copyright (C) 2002 Mark Wedel & Crossfire Development Team
5 Copyright (C) 1992 Frank Tore Johansen 6 Copyright (C) 1992 Frank Tore Johansen
6 7
7 This program is free software; you can redistribute it and/or modify 8 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 9 it under the terms of the GNU General Public License as published by
191static const char *const drain_msg[NUM_STATS] = { 192static const char *const drain_msg[NUM_STATS] = {
192 "Oh no! You are weakened!", 193 "Oh no! You are weakened!",
193 "You're feeling clumsy!", 194 "You're feeling clumsy!",
194 "You feel less healthy", 195 "You feel less healthy",
195 "You suddenly begin to lose your memory!", 196 "You suddenly begin to lose your memory!",
197 "Watch out, your mind is going!",
198 "Your spirit feels drained!",
196 "Your face gets distorted!", 199 "Your face gets distorted!",
197 "Watch out, your mind is going!",
198 "Your spirit feels drained!"
199}; 200};
200const char *const restore_msg[NUM_STATS] = { 201const char *const restore_msg[NUM_STATS] = {
201 "You feel your strength return.", 202 "You feel your strength return.",
202 "You feel your agility return.", 203 "You feel your agility return.",
203 "You feel your health return.", 204 "You feel your health return.",
205 "You feel your memory return.",
204 "You feel your wisdom return.", 206 "You feel your wisdom return.",
207 "You feel your spirits return.",
205 "You feel your charisma return.", 208 "You feel your charisma return.",
206 "You feel your memory return.",
207 "You feel your spirits return."
208}; 209};
209const char *const gain_msg[NUM_STATS] = { 210const char *const gain_msg[NUM_STATS] = {
210 "You feel stronger.", 211 "You feel stronger.",
211 "You feel more agile.", 212 "You feel more agile.",
212 "You feel healthy.", 213 "You feel healthy.",
214 "You feel smarter.",
213 "You feel wiser.", 215 "You feel wiser.",
216 "You feel more potent.",
214 "You seem to look better.", 217 "You seem to look better.",
215 "You feel smarter.",
216 "You feel more potent."
217}; 218};
218const char *const lose_msg[NUM_STATS] = { 219const char *const lose_msg[NUM_STATS] = {
219 "You feel weaker!", 220 "You feel weaker!",
220 "You feel clumsy!", 221 "You feel clumsy!",
221 "You feel less healthy!", 222 "You feel less healthy!",
223 "You feel stupid!",
222 "You lose some of your memory!", 224 "You lose some of your memory!",
225 "You feel less potent!",
223 "You look ugly!", 226 "You look ugly!",
224 "You feel stupid!",
225 "You feel less potent!"
226}; 227};
227 228
228const char *const statname[NUM_STATS] = { 229const char *const statname[NUM_STATS] = {
229 "strength", "dexterity", "constitution", "intelligence", "wisdom", "power", "charisma" 230 "strength", "dexterity", "constitution", "intelligence", "wisdom", "power", "charisma"
230}; 231};
1608 object *skin = NULL; /* pointer to dragon skin force */ 1609 object *skin = NULL; /* pointer to dragon skin force */
1609 object *tmp = NULL; /* tmp. object */ 1610 object *tmp = NULL; /* tmp. object */
1610 char buf[MAX_BUF]; /* tmp. string buffer */ 1611 char buf[MAX_BUF]; /* tmp. string buffer */
1611 1612
1612 /* now grab the 'dragon_ability'-forces from the player's inventory */ 1613 /* now grab the 'dragon_ability'-forces from the player's inventory */
1614 shstr_cmp dragon_ability_force ("dragon_ability_force");
1615 shstr_cmp dragon_skin_force ("dragon_skin_force");
1616
1613 for (tmp = who->inv; tmp != NULL; tmp = tmp->below) 1617 for (tmp = who->inv; tmp; tmp = tmp->below)
1614 {
1615 if (tmp->type == FORCE) 1618 if (tmp->type == FORCE)
1616 {
1617 if (strcmp (tmp->arch->name, "dragon_ability_force") == 0) 1619 if (tmp->arch->name == dragon_ability_force)
1618 abil = tmp; 1620 abil = tmp;
1619 if (strcmp (tmp->arch->name, "dragon_skin_force") == 0) 1621 else if (tmp->arch->name == dragon_skin_force)
1620 skin = tmp; 1622 skin = tmp;
1621 } 1623
1622 }
1623 /* if the force is missing -> bail out */ 1624 /* if the force is missing -> bail out */
1624 if (abil == NULL) 1625 if (abil == NULL)
1625 return; 1626 return;
1626 1627
1627 /* The ability_force keeps track of maximum level ever achieved. 1628 /* The ability_force keeps track of maximum level ever achieved.
1678 */ 1679 */
1679 CLEAR_FLAG (skill_obj, FLAG_CAN_USE_SKILL); 1680 CLEAR_FLAG (skill_obj, FLAG_CAN_USE_SKILL);
1680 skill_obj->stats.exp = 0; 1681 skill_obj->stats.exp = 0;
1681 skill_obj->level = 1; 1682 skill_obj->level = 1;
1682 insert_ob_in_ob (skill_obj, op); 1683 insert_ob_in_ob (skill_obj, op);
1684
1683 if (op->contr) 1685 if (op->contr)
1684 { 1686 {
1685 op->contr->last_skill_ob[skill_obj->subtype] = skill_obj; 1687 op->contr->last_skill_ob [skill_obj->subtype] = skill_obj;
1686 op->contr->last_skill_exp[skill_obj->subtype] = -1; 1688 if (op->contr->ns)
1689 op->contr->ns->last_skill_exp[skill_obj->subtype] = -1;//TODO: should be made superfluous
1687 } 1690 }
1691
1688 return skill_obj; 1692 return skill_obj;
1689} 1693}
1690 1694
1691 1695
1692/* player_lvl_adj() - for the new exp system. we are concerned with 1696/* player_lvl_adj() - for the new exp system. we are concerned with

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines