/*************************************************************************** * Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer, * * Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe. * * * * Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael * * Chastain, Michael Quan, and Mitchell Tse. * * * * Envy Diku Mud improvements copyright (C) 1994 by Michael Quan, David * * Love, Guilherme 'Willie' Arnold, and Mitchell Tse. * * * * EnvyMud 2.0 improvements copyright (C) 1995 by Michael Quan and * * Mitchell Tse. * * * * EnvyMud 2.2 improvements copyright (C) 1996, 1997 by Michael Quan. * * * * In order to use any part of this Envy Diku Mud, you must comply with * * the original Diku license in 'license.doc', the Merc license in * * 'license.txt', as well as the Envy license in 'license.nvy'. * * In particular, you may not remove either of these copyright notices. * * * * Much time and thought has gone into this software and you are * * benefitting. We hope that you share your changes too. What goes * * around, comes around. * ***************************************************************************/ #if defined( macintosh ) #include #else #include #endif #include #include #include "merc.h" /* I wanted Bonus For Levels As well but didn't want to insert it into const.c So here's a nice big table for It ... if you don't like it bad luck,, :) or just cut the table and paste it into const.c */ const struct level_app_type lvl_app [MAX_LEVEL +1 ] = { /* ( tohit, todam, wait, ac, dam, sdam ) Added By Akeris -- Was sick of looking in merc.h*/ { 0,0,0,0,0,0,0}, /* LEVEL 0 */ { 0,0,0,0,0,0,0}, /* LEVEL 1 */ { 0,0,0,0,0,0,0}, /* LEVEL 2 */ { 0,0,0,0,0,0,0}, /* LEVEL 3 */ { 0,0,0,0,0,0,0}, /* LEVEL 4 */ { 0,0,0,0,0,0,0}, /* LEVEL 5 */ { 0,0,0,0,0,0,0}, /* LEVEL 6 */ { 0,0,0,0,0,0,0}, /* LEVEL 7 */ { 0,0,0,0,0,0,0}, /* LEVEL 8 */ { 0,0,0,0,0,0,0}, /* LEVEL 9 */ { 1,1,0,-10,5,5,0}, /* LEVEL 10 */ { 1,1,0,-10,5,5,0}, /* LEVEL 11 */ { 1,1,0,-10,5,5,0}, /* LEVEL 12 */ { 1,1,0,-10,5,5,0}, /* LEVEL 13 */ { 1,1,0,-10,5,5,0}, /* LEVEL 14 */ { 1,1,0,-10,5,5,0}, /* LEVEL 15 */ { 1,1,0,-10,5,5,0}, /* LEVEL 16 */ { 1,1,0,-10,5,5,0}, /* LEVEL 17 */ { 1,1,0,-10,5,5,0}, /* LEVEL 18 */ { 1,1,0,-10,5,5,0}, /* LEVEL 19 */ { 2,2,0,-15,10,10,0}, /* LEVEL 20 */ { 2,2,0,-15,10,10,0}, /* LEVEL 21 */ { 2,2,0,-15,10,10,0}, /* LEVEL 22 */ { 2,2,0,-15,10,10,0}, /* LEVEL 23 */ { 2,2,0,-15,10,10,0}, /* LEVEL 24 */ { 2,2,0,-15,10,10,0}, /* LEVEL 25 */ { 2,2,0,-15,10,10,0}, /* LEVEL 26 */ { 2,2,0,-15,10,10,0}, /* LEVEL 27 */ { 2,2,0,-15,10,10,0}, /* LEVEL 28 */ { 2,2,0,-15,10,10,0}, /* LEVEL 29 */ { 3,3,0,-20,15,15,0}, /* LEVEL 30 */ { 3,3,0,-20,15,15,0}, /* LEVEL 31 */ { 3,3,0,-20,15,15,0}, /* LEVEL 32 */ { 3,3,0,-20,15,15,0}, /* LEVEL 33 */ { 3,3,0,-20,15,15,0}, /* LEVEL 34 */ { 3,3,0,-20,15,15,0}, /* LEVEL 35 */ { 3,3,0,-20,15,15,0}, /* LEVEL 36 */ { 3,3,0,-20,15,15,0}, /* LEVEL 37 */ { 3,3,0,-20,15,15,0}, /* LEVEL 38 */ { 3,3,0,-20,15,15,0}, /* LEVEL 39 */ { 4,4,0,-25,20,20,0}, /* LEVEL 40 */ { 4,4,0,-25,20,20,0}, /* LEVEL 41 */ { 4,4,0,-25,20,20,0}, /* LEVEL 42 */ { 4,4,0,-25,20,20,0}, /* LEVEL 43 */ { 4,4,0,-25,20,20,0}, /* LEVEL 44 */ { 4,4,0,-25,20,20,0}, /* LEVEL 45 */ { 4,4,0,-25,20,20,0}, /* LEVEL 46 */ { 4,4,0,-25,20,20,0}, /* LEVEL 47 */ { 4,4,0,-25,20,20,0}, /* LEVEL 48 */ { 4,4,0,-25,20,20,0}, /* LEVEL 49 */ { 5,5,0,-30,25,25,0}, /* LEVEL 50 */ { 5,5,0,-30,25,25,0}, /* LEVEL 51 */ { 5,5,0,-30,25,25,0}, /* LEVEL 52 */ { 5,5,0,-30,25,25,0}, /* LEVEL 53 */ { 5,5,0,-30,25,25,0}, /* LEVEL 54 */ { 5,5,0,-30,25,25,0}, /* LEVEL 55 */ { 5,5,0,-30,25,25,0}, /* LEVEL 56 */ { 5,5,0,-30,25,25,0}, /* LEVEL 57 */ { 5,5,0,-30,25,25,0}, /* LEVEL 58 */ { 5,5,0,-30,25,25,0}, /* LEVEL 59 */ { 6,6,0,-35,30,30,0}, /* LEVEL 60 */ }; *Merc.h* ADD this to it /* I'm just wondering why you wouldn't give Bonuses For levels Aswell */ /* Akeris - 15/6/03*/ struct level_app_type { int tohit; int todam; int wait; int ac; int dam; int sdam; int expb; }; Add to #define GET_AC( ch ) this + lvl_app[ch->level].ac then down to /* * Global constants. */ add extern const struct level_app_type lvl_app [ MAX_LEVEL + 1]; ------------------------------------------------------------------ in handler.c Under get_hitroll at the top some where put int bonus; replace hitroll = ch->hitroll + str_app[get_curr_str( ch )].tohit with bonus = lvl_app[ch->level].tohit; hitroll = ch->hitroll + str_app[get_curr_str( ch )].tohit + bonus; in handler.c under get_damroll at the top some where put int bonus; replace damroll = ch->damroll + str_app[get_curr_str( ch )].todam with bonus = lvl_app[ch->level].todam; damroll = ch->damroll + str_app[get_curr_str( ch )].todam + bonus ; ------------------------------------------------------------------------ in fight.c under void one_hit at the top some where put int bonus; above // apply the result of all modifiers at once\\ add bonus = lvl_app[ch->level].dam; ++++++++add this.. dam = (dam * ( 100 + dam_mod ) / 100) + bonus ; under void group_gain( CHAR_DATA *ch, CHAR_DATA *victim ) before /* do an extra 10% bonus if everyone in the group is in the same clan */ /* Akeris 16-6-03 Level Exp Bonus Multiplyier */ if ( lvl_app[gch->level].expb == 5 ) { int bonus; bonus = ( xp / 5 ); if ( bonus < 0 ) bonus = 0; xp += ( xp / 5 ); sprintf( buf, "`o`rYou receive %d bonus experience points .`x\n\r", bonus ); send_to_char( buf, gch ); } if ( lvl_app[gch->level].expb == 4 ) { int bonus; bonus = ( xp / 4 ); if ( bonus < 0 ) bonus = 0; xp += ( xp / 4 ); sprintf( buf, "`o`rYou receive %d bonus experience points .`x\n\r", bonus ); send_to_char( buf, gch ); } if ( lvl_app[gch->level].expb == 3 ) { int bonus; bonus = ( xp / 3 ); if ( bonus < 0 ) bonus = 0; xp += ( xp / 3 ); sprintf( buf, "`o`rYou receive %d bonus experience points .`x\n\r", bonus ); send_to_char( buf, gch ); } if ( lvl_app[gch->level].expb == 2 ) { int bonus; bonus = ( xp / 2 ); if ( bonus < 0 ) bonus = 0; xp += ( xp / 2 ); sprintf( buf, "`o`rYou receive %d bonus experience points .`x\n\r", bonus ); send_to_char( buf, gch ); } if ( lvl_app[gch->level].expb == 1 ) { int bonus; bonus = ( xp / 1 ); if ( bonus < 0 ) bonus = 0; xp += ( xp / 1 ); sprintf( buf, "`o`rYou receive %d bonus experience points .`x\n\r", bonus ); send_to_char( buf, gch ); } So player will see .. You receive 100 bonus experience points You receive 1100 of 1000 experience points it's long but works if you come up with some think better then please feel free to email me at akeris_ra@hotmail.com or reckless.dns2go.com port 4444 Also haven't assigned sdam.. I'll leave that up to youself to apply