Hallo;-)
At first, here is an example:
Player A - level 25 - max hit 250, max mana 300, max move 200
When I demote player A to level 5:
Player A - level 5 - max hit - 13 - like level 1
max mana 300 - like level 25
max move 200 - like level 25
I think, it isn't good way to demote player.
It occurs, because in do_advance(), after do_start()
program doesn't call advance_level().
As George wrote:
We don't keep track of past level history so the only way to go down is to
start over and go back up.
But there isn't "go back up" ;-)
My solution can be:
in class.c: in do_start():
after line
ch->points.max_hit = 10;
add:
+ch->points.max_mana = 100;
+ch->points.max_move = 82;
(I don't understand, why these two lines are in init_char() and line with
max_hit is in do_start()?
init_char() is called only from interpreter.c
and do_start() is called only from interpreter and act.wizard)
and then in act.wizard.c: in do_advance():
after line
if (newlevel < GET_LEVEL(victim)) {
+ int i;
+ GET_PRACTICES(victim) = 0;
do_start(victim); /*sets only players level to 1 and exp to 1*/
+ for (i = GET_LEVEL(victim) + 1; i < newlevel + 1; i++) {
+ GET_LEVEL(victim) = i;
+ advance_level(victim);
+ }
send_to_char("You are momentarily enveloped by darkness!\r\n"
"You feel somewhat diminished.\r\n", victim);
}
What do You think about it?
Thank You
VladoN
--
+---------------------------------------------------------------+
| FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
| Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
+---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/06/01 PST