ACMD(do_gohome) { +----------------------------------------------------------------- | int loss; | | /* If they are fighting, take away exp */ | if (GET_POS(ch) = POS_FIGHTING){ | loss = GET_MAX_HIT(ch) - GET_HIT(ch); | if (GET_MOVE(ch) <= 1) { | loss = 1;} | else { | loss *= GET_LEVEL(ch) * 1.5;} | gain_exp(ch, -loss); | } | | /* If they are almost dead (immobile) return! */ | if (GET_POS(ch) < POS_FIGHTING) { | send_to_char("&0&1You are in pretty bad shape, unable to recall!&0 \r\n", ch); | return; | } | | /* If they are exhausted, "return" them! */ | if (GET_MOVE(ch) <= 1) { | if (GET_POS(ch) <= POS_FIGHTING) { | act("You couldn't recall from combat!!!\r\n", TRUE, ch, 0, 0, TO_CHAR); | return;} | else { | act("You are WAY too exhausted for that!\r\n", TRUE, ch, 0, 0, TO_CHAR); | return;} | } | else { +-------------------------------------------------------- act("$n recalls.\r\n", TRUE, ch, 0, 0, TO_ROOM); char_from_room(ch); char_to_room(ch, r_mortal_start_room); GET_MOVE(ch) = (GET_MOVE(ch) / 2); act("$n appears in the room.\r\n", TRUE, ch, 0, 0, TO_ROOM); look_at_room(ch, 0); +------------------------------------------------------ | } +------------------------------------------------------- } The code within the "brackets" is the newest stuff. But after I implemented it, for some reason it made all characters stay in POS_FIGHTING. I don't see how it did that because I never set the position... I don't think The code outside the brackets works fine... (probably because I stole it from WORD_OF_RECALL ;)) -Neostar It's ok, I'm just adding to the spam I have already created -- +---------------------------------------------------------------+ | 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