> -----Original Message----- > From: Circle Discussion List [mailto:CIRCLE@post.queensu.ca]On Behalf Of > Josh Harris > Sent: 04 April 2002 17:11 > To: CIRCLE@post.queensu.ca > Subject: Re: [CIRCLE] Lossing levels when dieing? > > > In fight.c you can add a statement in do_die . . or add another > function to > check experience everytime you die. . either way . .. > > GET_EXP(ch)=GET_EXP(ch)*0.95; //causes player to lose 5% of > //experience > if(GET_EXP(ch)<level_exp(GET_CLASS(ch), GET_LEVEL(ch)-1)) { > GET_LEVEL(ch)=GET_LEVEL(ch)-1; //causes them to lose 1 level > } > > > Hope that helps. . . > > --Josh-- > Each time they lose a level, then regain a level they will get practices, hits, mana and moves again. eg. 1. Joe creates a char gets it to level 2 (gaining some hp some mana some mv some practices) 2. Then Joe gets the char killed several times to lose a level. 3. Joe regains level 2 (gaining more hp more mana more mv more practices) 4. goto step 2 and repeat how much you want. After mass deaths and level gains Joe has a level 2 character with stats to rival a Immortal! (this is an extreme example but can you see what I mean) So unless this is what you want you need to make sure they haven't already been the level they are gaining. So (mailer code!) as an additoin to your code :) structs.h change one of the spares in player_special_data_saved to int levels_gained; in utils.h add somewhere #define GET_GAINED_LEVELS(ch) CHECK_PLAYER_SPECIAL((ch), ((ch)->player_specials->saved.levels_gained)) in class.c in advance_level near the beginning of the function /* check to see if they have already been this level */ if (GET_LEVEL(ch)<=GET_GAINED_LEVELS(ch)){ /* they have well return out so they dont gain hp mp mv pracs :) */ return; }else{ /* we let them gain so we need to update gained levels :) */ GET_GAINED_LEVELS(ch)=GET_LEVEL(ch); } you will need to set GET_GAINED_LEVELS to 0 on creation of a new character also possible problems with do_advance if you demote a character -- +---------------------------------------------------------------+ | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html | | Newbie List: http://groups.yahoo.com/group/circle-newbies/ | +---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 06/25/03 PDT