1 | /* |
1 | /* |
2 | * static char *rcsid_living_c = |
2 | * static char *rcsid_living_c = |
3 | * "$Id: living.c,v 1.1 2006/02/03 07:11:32 root Exp $"; |
3 | * "$Id: living.c,v 1.3 2006/02/09 02:11:26 root Exp $"; |
4 | */ |
4 | */ |
5 | |
5 | |
6 | /* |
6 | /* |
7 | CrossFire, A Multiplayer game for X-windows |
7 | CrossFire, A Multiplayer game for X-windows |
8 | |
8 | |
… | |
… | |
1824 | sint64 loss_3l; /* 3 level experience loss */ |
1824 | sint64 loss_3l; /* 3 level experience loss */ |
1825 | |
1825 | |
1826 | for(tmp=op->inv;tmp;tmp=tmp->below) |
1826 | for(tmp=op->inv;tmp;tmp=tmp->below) |
1827 | if(tmp->type==SKILL && tmp->stats.exp) { |
1827 | if(tmp->type==SKILL && tmp->stats.exp) { |
1828 | |
1828 | |
|
|
1829 | #ifdef COZY_SERVER |
|
|
1830 | loss_20p = tmp->stats.exp * 0.05; |
|
|
1831 | #else |
1829 | loss_20p = tmp->stats.exp * 0.20; |
1832 | loss_20p = tmp->stats.exp * 0.20; |
|
|
1833 | #endif |
1830 | loss_3l = tmp->stats.exp - levels[MAX(0,tmp->level -3)]; |
1834 | loss_3l = tmp->stats.exp - levels[MAX(0,tmp->level -3)]; |
1831 | |
1835 | |
1832 | /* With the revised exp system, you can get cases where |
1836 | /* With the revised exp system, you can get cases where |
1833 | * losing 3 levels would still require that you have more |
1837 | * losing 3 levels would still require that you have more |
1834 | * exp than you current have - this is true if the levels |
1838 | * exp than you current have - this is true if the levels |
… | |
… | |
1840 | |
1844 | |
1841 | tmp->stats.exp -= loss; |
1845 | tmp->stats.exp -= loss; |
1842 | player_lvl_adj(op,tmp); |
1846 | player_lvl_adj(op,tmp); |
1843 | } |
1847 | } |
1844 | |
1848 | |
|
|
1849 | #ifdef COZY_SERVER |
1845 | loss_20p = op->stats.exp * 0.20; |
1850 | loss_20p = op->stats.exp * 0.20; |
|
|
1851 | #else |
|
|
1852 | loss_20p = op->stats.exp * 0.05; |
|
|
1853 | #endif |
1846 | loss_3l = op->stats.exp - levels[MAX(0,op->level -3)]; |
1854 | loss_3l = op->stats.exp - levels[MAX(0,op->level -3)]; |
1847 | if (loss_3l < 0) loss_3l = 0; |
1855 | if (loss_3l < 0) loss_3l = 0; |
1848 | loss = check_exp_loss(op, MIN(loss_3l, loss_20p)); |
1856 | loss = check_exp_loss(op, MIN(loss_3l, loss_20p)); |
1849 | |
1857 | |
1850 | op->stats.exp -= loss; |
1858 | op->stats.exp -= loss; |