Re: Remort Issue

From: Patrick Dughi (dughi@imaxx.net)
Date: 09/06/00


> I seem to have a problem with remorts
> for some reason it seems to be setting peoples remort's like this
> Remort: UNDEFINED,  Remort2: Monk,  Remort3: UNDEFINED
> and i have in class.c set in these lines
>   if (siteok_everyone)
>     SET_BIT(PLR_FLAGS(ch), PLR_SITEOK);
>
>   GET_REMORT(ch) = -1; /* Set remorts to zero.*/
>   GET_REMORT_TWO(ch) = -1;
>   GET_REMORT_THREE(ch) = -1;
>
> }
> maybe i have GET_REMORT(ch) = -1 defined in the wrong place?
> any help would be appreciated, thankz Ryan
>
>

I'm assuming that this is set near the end of the do_start() function?

        This small piece of code seems fine to me, but I can immediately
think of about 20 places where it could potentially go wrong.

        - You could be calling do_start() from inside your remort function
without saving previous data.
        - You could be failing to save the remort information in the
pfile.
        - You could be displaying the information in the string
incorrectly.
        - You could have copied the do_start function for use in whatever
function performs the remort and it's being nulled there.
        - You could have added/fixed the remort snippet in such a way that
the first remort is skipped/never set/set incorrectly.
        - You added classes incorrectly; forgot to add an entry into the
pc_class_type array, or the like.
        - You class selection code is buggy, and doesn't set the class
correctly in the first place.
        - Your stat function is muddled between displaying the victim's
info, and the current character's info.
        - Your stat function has buffer problems and is being overwritten
in some odd way (doubtful, but you never know)
        - You have not written your string manipulation lines correctly
(ie, you probably messed up the test where you want to display the remort
class only if it has been set... sprintf(output,"First Remort:
%s",(GET_FIRST_REMORT(vict) != CLASS_NOT_SET) ?
pc_class_type[GET_FIRST_REMORT(vict)] : "None"); ....
        - in general, any random piece of code which attempts to check the
1'st,2'nd,3'rd, etc remorts accidentally sets it..if(GET_FIRST_REMORT(ch)
= CLASS_NOT_SET)....whoops

        Etc. I'd write more, but I'm starting to get bored.

        You see, there's alot that could be going wrong, and I doubt that
any of that above will actually help you.

        Here's what I recommend you do though - put logging messages
around _every_ single instance where remort-specific code is used.  Verify
when and where the change from 'working' to 'not working' occurs.

        Based on your information above, it could be that all characters
have that setting, or they get that set after their second remort, or that
just happens to be one character's output, and while other characters have
similar output, they get it through <insert many means here>, and those
results are different because <insert many reasons on a per-mean
basis here>.

        So, you need to figure out, exactly, what causes it.

        If the only info you have is that which you gave us, then it's no
wonder you're having problems.  You don't have enough to go on yet.
Neither do we.

                                                PjD




     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     |  http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html  |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 04/11/01 PDT