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