Re: [IDEA] Maxgain

From: pjh (wart@trilidun.kuntrynet.com)
Date: 01/16/97


well what i did is limit the amount level diff in a group in the do_group
call:
ideas on this are much appreciated:

int perform_group(struct char_data *ch, struct char_data *vict)
{
  if (IS_AFFECTED(vict, AFF_GROUP) || !CAN_SEE(ch, vict))
    return 0;
  
  if (GET_LEVEL(vict) < (GET_LEVEL(ch)/2))
  {
    // If level one then level 6 ppl can help
    if (GET_LEVEL(vict) == 1)
    {
      if (GET_LEVEL(ch) > 6)
        return 0;
    SET_BIT(AFF_FLAGS(vict), AFF_GROUP);
      if (ch != vict)
        act("$N is now a member of your group.", FALSE, ch, 0, vict,
TO_CHAR);
    act("You are now a member of $n's group.", FALSE, ch, 0, vict,
TO_VICT);
    act("$N is now a member of $n's group.", FALSE, ch, 0, vict,
TO_NOTVICT);
    return 1;
    } // End if level = 1

    act("$N is too low a level to group with you.", FALSE, ch, 0, vict,
TO_CHAR
    act("You cannot group with $n due to experience differences.", FALSE,
ch, 0
    return 0;    

  } // End if vict = 1/2 leader
  if (GET_LEVEL(vict) > (GET_LEVEL(ch)*2))
  {
    // If level one then level 6 ppl can help
    if (GET_LEVEL(vict) == 1)
    {            
      if (GET_LEVEL(ch) > 6)
        return 0;
    SET_BIT(AFF_FLAGS(vict), AFF_GROUP);
      if (ch != vict)
        act("$N is now a member of your group.", FALSE, ch, 0, vict,
TO_CHAR);
    act("You are now a member of $n's group.", FALSE, ch, 0, vict,
TO_VICT);
    act("$N is now a member of $n's group.", FALSE, ch, 0, vict,
TO_NOTVICT);
    return 1;    
    } // End if level = 1

    act("$N is too HIGH a level to group with you.", FALSE, ch, 0, vict,
TO_CHA
    act("You cannot group with $n due to experience differences.", FALSE,
ch, 0

    return 0;    

  } //  vict = 2*leader


  // 15.12.96  
  SET_BIT(AFF_FLAGS(vict), AFF_GROUP);
  if (ch != vict)
    act("$N is now a member of your group.", FALSE, ch, 0, vict, TO_CHAR);
  act("You are now a member of $n's group.", FALSE, ch, 0, vict, TO_VICT);
  act("$N is now a member of $n's group.", FALSE, ch, 0, vict,
TO_NOTVICT);
  return 1;
}

hope this wasnt too long.
and hope it helped.  Lemme know if anyone has a better system


*-=-=-=-=-=-=-=* w0nderful *-=-* w0rld *-=-* 0f *-=-* wart *-=-=-=-=-*
hartman@kuntrynet.com
wart@trilidun.kuntrynet.com
http://trilidun.kuntrynet.com
Eudaemonia Mud: mud.kuntrynet.com Port 4000


On Mon, 1 Jan 1990, Raf wrote:

> Well...
> XP runs for newbies. This seems to me like 'cheating' the mud system, 
> as a newbie could get up to 50 levels with one kill, if in a high 
> level group. Instant super chars. So, my idea is to have a maxgain 
> every level. Eg, a level one player would have a maxgain of 200, lev 
> two maxgain 2999, lev 50 maxgain 300k.
> Not much use killing Zeus and getting 200 xp at level one is it?
> This, I feel, would stop these xp runs, which would be better for the 
> mud in general.
> 
> Suggestions anyone?
> 
> =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-==-=-=-=-=-==-=-=
> Raf
> "If there is nothing wrong with me, maybe something
>  is wrong with the universe"
> http://www.geocities.com/SiliconValley/Park/1592
> -=-=-=-==-=-==-=-=-=-=-=-==-=-=-==-=-=--=-=-==-=-=
> +-----------------------------------------------------------+
> | Ensure that you have read the CircleMUD Mailing List FAQ: |
> |   http://cspo.queensu.ca/~fletcher/Circle/list_faq.html   |
> +-----------------------------------------------------------+
> 

+-----------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
|   http://cspo.queensu.ca/~fletcher/Circle/list_faq.html   |
+-----------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/18/00 PST