Exemple #1
0
bool is_same_clan(CHAR_DATA * ch, CHAR_DATA * victim)
{
    if (is_independent(ch))
	return FALSE;
    else
	return (ch->clan == victim->clan);
} /* end: is_same_clan */
set<State*>  Automata::glue_states(DistinguashbleStatesCollection& dependentStates){
    set<State*> mergedStates;
    set<State*>::iterator fstate=all_states.begin();
        set<State*>::iterator fend=--all_states.end();
        for(;fstate!=fend;++fstate){
            set<State*>::iterator sstate=fstate;++sstate;
            for(;sstate!=all_states.end();++sstate){
                State* fstate_p=(*fstate>*sstate)?*fstate:*sstate; //всегда оставляем старший
                State* sstate_p=(*fstate>*sstate)?*sstate:*fstate;
                if(!mergedStates.count(sstate_p) && !mergedStates.count(fstate_p)){
                    if(is_independent(fstate_p,sstate_p,dependentStates)){
                        merge_states(fstate_p,sstate_p);
                        mergedStates.insert(sstate_p);
                    }
                }

            }
        }
        return mergedStates;
}
Exemple #3
0
void do_loner(CHAR_DATA *ch, char *argument)
{
    if(IS_NPC(ch)) return;

    if(ch->in_arena)
    {
        send_to_char("Now is ... not a good time.\n\r",ch);
        return;
    }

    if(ch->clan)
    {
        if(is_independent(ch))
            send_to_char("You're already an independent pkiller.\n\r", ch);
        else
            send_to_char("You're already in a clan.\n\r", ch);
        return;
    }

    if(ch->level < 25)
    {
        send_to_char("You must be level 25 or higher to become a loner.\n\r",ch);
        return;
    }

    if(argument[0] == '\0')
    {
        send_to_char("Syntax: loner confirm\n\r"
            "\n\rWarning! This will make you PK-able!!!\n\r", ch);
        return;
    }

    if(!str_cmp(argument, "confirm"))
    {
        send_to_char("You are now a loner. Watch out!\n\r", ch);
        ch->clan = clan_lookup("loner");
	 ch->rank = 0;
        return;
    }
    return;
}