/************************************************************************************ Hello. This will allow you to set double exp on and off. To use this you must keep all the comments in the code and mail me at the.green.machine@gmail.com. Alright on with code! BTW this was done on a Rom2.4 but shouldn't be hard to port to others. I have also tested this on a Rot2.0b3 heh. Happy MUDding... Kjwah....................Daurven? mail: the.green.machine@gmail.com MUD : Don't have a MUD.. lol *************************************************************************************/ -> act_wiz.c <- at the top of it I have it above wiznet stuff stick this. bool doublexp; then wherever you wanna stick this(I have it at the bottom) put this somewhere. /* Double exp by Kjwah....... Daurven? :) */ void do_doublexp(CHAR_DATA *ch, char *argument) { char buf[MSL]; /* MSL = MAX_STRING_LENGTH */ /* Show if its on or off if the argument is NULL */ if (argument[0] == '\0') { if (doublexp) { send_to_char("Double exp is on.\n\r",ch); return; } else { send_to_char("Double exp is not on.\n\r",ch); return; } } /* Activates double exp and sends a message :) */ if (!strcmp (argument, "on")) { send_to_char("Double exp set.\n\r",ch); sprintf(buf,"%s has set double exp on!",ch->name); do_announce(ch,buf); /* Comment out if you dont have announce */ doublexp = TRUE; return; } /* Turns off double exp and sends a message :( */ if (!strcmp (argument, "off")) { send_to_char("Double exp is now off.\n\r",ch); sprintf(buf,"%s has disabled double exp.",ch->name); do_announce(ch,buf); /* Comment out if you dont have announce */ doublexp = FALSE; return; } } -> fight.c <- I have this at the top under the rest of the local functions bool doublexp; Next look for this in void group_gain xp = xp_compute (gch, victim, group_levels); sprintf (buf, "You receive %d experience points.\n\r", xp); send_to_char (buf, gch); gain_exp (gch, xp); change that to look like this... xp = xp_compute (gch, victim, group_levels); if (doublexp) { xp = xp * 2; send_to_char("Double exp\n\r", gch); sprintf (buf, "You receive {G%d{x (double)experience points.\n\r", xp); send_to_char (buf, gch); gain_exp (gch, xp); } else { sprintf (buf, "You receive %d experience points.\n\r", xp); send_to_char (buf, gch); gain_exp (gch, xp); } or you can have it like this xp = xp_compute (gch, victim, group_levels); if (doublexp) { xp = xp * 2; send_to_char("Double exp\n\r", gch); } sprintf (buf, "You receive %d experience points.\n\r", xp); send_to_char (buf, gch); gain_exp (gch, xp); -> interp.c <- stick this with the rest of the immortal commands order doesn't matter. I have it set at MAX_LEVEL so it doesn't get abused. change the level if you want. {"doublexp", do_doublexp,POS_DEAD, ML, LOG_ALWAYS, 1}, -> interp.h <- Stick this somewhere also order is nice but as above doesn't matter :) DECLARE_DO_FUN( do_doublexp ); --------------------------------------------------------------------------------- That should be all to it. If you have any problems please try and fix them yourself before you mail me asking for help.