BladeMaster.txt by Xrakisis // fight.c if (dt == gsn_retort) { int x; act("You see a hole in $N's defenses and take advantage!", ch, NULL, victim, TO_CHAR); act("$n takes advantage of your failure to defend yourself.", ch, NULL, victim, TO_VICT); act("$n gracefuly hits $N, taking advantage of a weak spot in their defence.", ch, NULL, victim, TO_NOTVICT); x = number_range(1, 3); while (--x >= 0) one_hit(ch, victim, dt, 1); return; } if (!IS_NPC(ch) && IS_SET(ch->pcdata->powers[BM_BITS], BLADE_RETORT) && IS_CLASS(ch, CLASS_BLADE_MASTER)) multi_hit(ch,victim,gsn_retort); /* update.c */ void update_blade args((CHAR_DATA * ch)); if (IS_CLASS(ch, CLASS_BLADE_MASTER)) { if (IS_ITEMAFF(ch, ITEMA_REGENERATE)) update_arti_regen(ch); update_blade(ch); } void update_blade(CHAR_DATA * ch) { if (ch->hit < ch->max_hit || ch->mana < ch->max_mana || ch->move < ch->max_move) { werewolf_regen(ch, 2); regen_limb(ch); } return; } /* fight.c */ X) void multi_hit(CHAR_DATA * ch, CHAR_DATA * victim, int dt) else if (IS_CLASS(ch, CLASS_BLADE_MASTER)) { if (ch->pcdata->powers[WEAPONSKILL] > 8) { one_hit(ch, victim, gsn_lightningslash, 1); one_hit(ch, victim, gsn_lightningslash, 1); } } else if (IS_CLASS(ch, CLASS_BLADE_MASTER) && IS_SET(ch->newbits2, NEW2_AUTOATTACK)) { one_hit(ch,victim,gsn_lightningslash,1); one_hit(ch,victim,gsn_lightningslash,1); } X)number_attacks Place this both under if is npc victim and if !isnpc victim else if (IS_CLASS(ch, CLASS_BLADE_MASTER)) count += ch->pcdata->powers[WEAPONSKILL] / 1.6; X)void one_hit(CHAR_DATA * ch, CHAR_DATA * victim, int dt, int handtype) else if (IS_CLASS(ch, CLASS_BLADE_MASTER)) { if (ch->pcdata->powers[WEAPONSKILL] > 4) dam *= 1.4; if (ch->pcdata->powers[WEAPONSKILL] > 8) dam *= 1.6; if (IS_CLASS(victim, CLASS_SAMURAI)) dam *= 1.2; } Its real easy to do the fight.c stuff for my blademaster class, i was kinda lazy and i made their melee variable be the same as the uk one for two reasons. A) so all their fight stuff would be the same as UK's and B) so might be balanced from the start. So just go through fight.c and search out every entry for weaponskill and make a duplicate entry for blademaster.. what could be easyer.. yes i know, you dont have to tell me, im lazy! -Xrakisis /* fight.c */ update damcap else if (IS_CLASS(ch, CLASS_BLADE_MASTER) && IS_SET(ch->newbits2, NEW2_DAMCAP)) max_dam += 700; I placed in here my entire group gain function for a few reasons i wanted you to see exactly where to place the blade master stuff in your fight.c, cant think of the other reasons at this time :P void group_gain(CHAR_DATA * ch, CHAR_DATA * victim) { char buf[MAX_STRING_LENGTH]; char buf2[MAX_STRING_LENGTH]; CHAR_DATA *gch; CHAR_DATA *lch; CHAR_DATA *mount; OBJ_DATA *familiar; OBJ_INDEX_DATA *familiar2; bool warlord = FALSE; int xp; int temp = 0; int members; int expneeded = 0; int familiar_exp; int ultima = 78019; int bladeexp; int bladeexpneeded = 0; int bladeexpgain; bladeexp = ch->bladeexp; /* * Monsters don't get kill xp's or alignment changes. * P-killing doesn't help either. * Dying of mortal wounds or poison doesn't give xp to anyone! */ if ((IS_NPC(ch) && (mount = ch->mount) == NULL) || victim == ch) return; members = 0; for (gch = ch->in_room->people; gch != NULL; gch = gch->next_in_room) { if (IS_NPC(gch)) continue; if (is_same_group(gch, ch)) members++; } if (members == 0) { bug("Group_gain: members.", members); members = 1; } if (IS_NPC(victim) && victim->pIndexData->vnum == MOB_VNUM_WARLORD) warlord = TRUE; lch = (ch->leader != NULL) ? ch->leader : ch; for (gch = ch->in_room->people; gch != NULL; gch = gch->next_in_room) { int xp_modifier = 100; if (IS_NPC(gch)) continue; if (!is_same_group(gch, ch)) continue; xp = xp_compute(gch, victim) * 2.5; xp *= ccenter[CCENTER_EXP_LEVEL]; xp /= 100; xprintf(buf2, "#0-=-=-= #WExp modifiers #G:"); if ((IS_EVIL(gch) && IS_GOOD(victim)) || (IS_GOOD(gch) && IS_EVIL(victim))) { xp_modifier += 25; strcat(buf2, " #Calignment#n"); } if ((IS_EVIL(gch) && IS_EVIL(victim)) || (IS_GOOD(gch) && IS_GOOD(victim))) { xp_modifier -= 25; strcat(buf2, " #palignment#n"); } if (gch != NULL && gch->desc != NULL) { if (gch->desc->out_compress) { xp_modifier += 25; strcat(buf2, " #Cmccp#n"); } else if ((get_age(gch) - 17) >= 2) { xp_modifier += 25; strcat(buf2, " #pmccp#n"); } } if ((get_age(gch) - 17) < 2) /* 4 hours worth of newbie exp. */ { xp_modifier += 200; strcat(buf2, " #CNewbie#n"); } if (global_exp) { xp_modifier += 200; strcat(buf2, " #sDouble exp#n"); } if (gch->tick_timer[TIMER_EXPERIENCE] > 0) { xp_modifier += 250; strcat(buf2, " #sFairy#n"); } if (gch->race < 1); else if (gch->race < 5) { xp_modifier += 25; xp_modifier += UMIN(100, temp / 50); strcat(buf2, " #0status#n"); } else if (gch->race < 10) { xp_modifier += 50; xp_modifier += UMIN(100, temp / 50); strcat(buf2, " #cstatus#n"); } else if (gch->race < 15) { xp_modifier += 75; xp_modifier += UMIN(100, temp / 50); strcat(buf2, " #Cstatus#n"); } else if (gch->race < 20) { xp_modifier += 100; xp_modifier += UMIN(100, temp / 50); strcat(buf2, " #Bstatus#n"); } else if (gch->race < 25) { xp += 150; xp_modifier += UMIN(100, temp / 50); strcat(buf2, " #gstatus#n"); } else { xp += 200; xp_modifier += UMIN(100, temp / 50); strcat(buf2, " #Gstatus#n"); } if (!IS_NPC(gch) && gch->pcdata->religion != 0) { xp_modifier -= 5; strcat(buf2, " #ptithe#n"); } if (!IS_NPC(gch) && gch->pcdata->kingdom != 0) { xp_modifier -= 5; strcat(buf2, " #pKingdom Tax#n"); } if (!IS_NPC(gch) && gch->pcdata->time_tick > 49) { xp_modifier += gch->pcdata->time_tick / 5; strcat(buf2, " #Caddict#n"); } if (!IS_NPC(gch) && IS_SET(gch->pcdata->tempflag, TEMP_EDGE)) { xp_modifier += 15; strcat(buf2, " #Cedge#n"); } if (members > 1) { strcat(buf2, " #pgrouped#n"); xp_modifier *= 100; xp_modifier /= 75 * members; } strcat(buf2, " #0=-=-=-#n\n\r"); xp = xp * xp_modifier / 100; if (!IS_SET(gch->act, PLR_BRIEF5)) send_to_char(buf2, gch); xprintf(buf2, "#RTotal modifier #G:#n %d percent bonus\n\r", xp_modifier - 100); if (!IS_SET(gch->act, PLR_BRIEF5)) send_to_char(buf2, gch); if ((get_age(gch) - 17) > 2 && ch->level < 3) xp /= 10; /* anti mortal exp bot thingie */ if (gch->exp > 5000000) xp = 5000000; /* avoid overflow */ if (xp > ccenter[CCENTER_MAX_EXP]) xp = number_range(ccenter[CCENTER_MAX_EXP] * 0.9, ccenter[CCENTER_MAX_EXP] * 1.1); if (warlord) xp = 5000000; if ((get_age(gch) - 17) >= 2 && !IS_SET(gch->pcdata->jflags, JFLAG_POLICY)) { xp = 0; send_to_char ("#BYou must accept the policy before you can gain experience [#wHELP POLICY#B]#n\n\r", gch); } if (xp < 0) xp = 0; xprintf(buf, "#R-->#0You receive #W%d #0experience points.#n\n\r", xp); if (ch->generation == 6) expneeded = 13000000; else if (ch->generation == 5) expneeded = 150000000; else if (ch->generation == 4) expneeded = 400000000; else if (ch->generation == 3) expneeded = 900000000; else if (ch->generation == 2) expneeded = 1800000000; if (IS_CLASS(ch, CLASS_BLADE_MASTER)) // Class by Xrakisis { if (ch->pcdata->powers[BLADE_SKILL] == 0) bladeexpneeded = 50000000; else if (ch->pcdata->powers[BLADE_PROWESS] == 0) bladeexpneeded = 50000000; else if (ch->pcdata->powers[BLADE_MELEE] == 0) bladeexpneeded = 50000000; else if (ch->pcdata->powers[BLADE_SKILL] == 1) bladeexpneeded = 100000000; else if (ch->pcdata->powers[BLADE_PROWESS] == 1) bladeexpneeded = 100000000; else if (ch->pcdata->powers[BLADE_MELEE] == 1) bladeexpneeded = 100000000; else if (ch->pcdata->powers[BLADE_SKILL] == 2) bladeexpneeded = 150000000; else if (ch->pcdata->powers[BLADE_PROWESS] == 2) bladeexpneeded = 150000000; else if (ch->pcdata->powers[BLADE_MELEE] == 2) bladeexpneeded = 150000000; else if (ch->pcdata->powers[BLADE_SKILL] == 3) bladeexpneeded = 150000000; else if (ch->pcdata->powers[BLADE_PROWESS] == 3) bladeexpneeded = 150000000; else if (ch->pcdata->powers[BLADE_MELEE] == 3) bladeexpneeded = 150000000; else if (ch->pcdata->powers[BLADE_SKILL] == 4) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_PROWESS] == 4) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_MELEE] == 4) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_SKILL] == 5) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_PROWESS] == 5) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_MELEE] == 5) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_SKILL] == 6) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_PROWESS] == 6) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_MELEE] == 6) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_SKILL] == 7) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_PROWESS] == 7) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_MELEE] == 7) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_SKILL] == 8) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_PROWESS] == 8) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_MELEE] == 8) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_SKILL] == 9) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_PROWESS] == 9) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_MELEE] == 9) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_SKILL] == 10) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_PROWESS] == 10) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_MELEE] == 10) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_SKILL] == 11) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_PROWESS] == 11) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_MELEE] == 11) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_SKILL] == 12) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_PROWESS] == 12) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_MELEE] == 12) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_SKILL] == 13) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_PROWESS] == 13) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_MELEE] == 13) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_SKILL] == 14) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_PROWESS] == 14) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_MELEE] == 14) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_SKILL] == 15) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_PROWESS] == 15) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_MELEE] == 15) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_SKILL] == 16) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_PROWESS] == 16) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_MELEE] == 16) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_SKILL] == 17) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_PROWESS] == 17) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_MELEE] == 17) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_SKILL] == 18) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_PROWESS] == 18) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_MELEE] == 18) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_SKILL] == 19) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_PROWESS] == 19) bladeexpneeded = 200000000; else if (ch->pcdata->powers[BLADE_MELEE] == 19) bladeexpneeded = 200000000; } if (!IS_SET(gch->act, PLR_BRIEF5)) send_to_char(buf, gch); ch->total_exp_gained += xp; if ((mount = gch->mount) != NULL) send_to_char(buf, mount); gain_exp(gch, xp); /* * Familiar Stuff */ if ((familiar = get_eq_char(gch, WEAR_FAMILIAR)) != NULL && familiar->item_type == ITEM_FAMILIAR && familiar->value[1] < 99) { familiar_exp = (xp * .005); xp -= (familiar_exp); familiar_exp *= (familiar->value[6] * .01); sprintf(buf, "#0- #wYour familiar receives #G%d #wexperience points.#n\n\r", familiar_exp); if (!IS_SET(ch->act, PLR_BRIEF4)) stc(buf, gch); familiar->value[5] += familiar_exp; /* * Level Up! */ if (familiar->value[5] >= ((familiar->value[1] + 1) * 1000000)) { act("$p #yhas gained a level!#n", gch, familiar, NULL, TO_CHAR); familiar->value[1]++; familiar->value[5] = 0; /* * Increase Chance to Hit */ if (number_percent() > 50) { familiar->value[4]++; act("$p's #yhitroll increases!#n", gch, familiar, NULL, TO_CHAR); } /* * Base Damage Increase */ if ((familiar->value[1] % 5) == 0) { familiar->value[2] += number_range(2, 5); act("$p's #Rbase damage increases!#n", gch, familiar, NULL, TO_CHAR); } /* * Learning Ability Increase */ if ((familiar->value[1] % 10) == 0) { familiar->value[6] += number_range(1, 10); act("$p's #Clearning ability increases!#n", gch, familiar, NULL, TO_CHAR); } if ((familiar->value[0] == 8 && familiar->value[1] >= 50)) { act("$p #Lmetamorphs into the ultimate weapon!!!!#n", gch, familiar, NULL, TO_CHAR); extract_obj(familiar); familiar2 = get_obj_index(ultima); if ((familiar = create_object(familiar2, 50)) != NULL) { obj_to_char(familiar, gch); } } } } if (IS_CLASS(ch, CLASS_BLADE_MASTER) && (ch->pcdata->powers[BLADE_MELEE] < 20 || ch->pcdata->powers[BLADE_PROWESS] < 20 || ch->pcdata->powers[BLADE_SKILL] < 20)) { bladeexpgain = (xp * .020); xp -= (bladeexpgain); sprintf(buf, "#0- #wYour Class receives #G%d #wexperience points.#n\n\r",bladeexpgain); stc(buf, gch); ch->bladeexp += bladeexpgain; if (bladeexp >= bladeexpneeded) { if (ch->pcdata->powers[BLADE_SKILL] == 0) { ch->pcdata->powers[BLADE_SKILL] += 1; send_to_char("#0Your Skill with a blade is now level #7One#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_PROWESS] == 0) { ch->pcdata->powers[BLADE_PROWESS] += 1; send_to_char("#0Your combat prowess is now level #7One#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_MELEE] == 0) { ch->pcdata->powers[BLADE_MELEE] += 1; send_to_char("#0You bring your BladeMaster Melee to level #7One#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_SKILL] == 1) { ch->pcdata->powers[BLADE_SKILL] += 1; send_to_char("#0Your Skill with a blade is now level #7Two#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_PROWESS] == 1) { ch->pcdata->powers[BLADE_PROWESS] += 1; send_to_char("#0Your combat prowess is now level #7Two#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_MELEE] == 1) { ch->pcdata->powers[BLADE_MELEE] += 1; send_to_char("#0You bring your Blade Master Melee to level #7Two#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_SKILL] == 2) { ch->pcdata->powers[BLADE_SKILL] += 1; send_to_char("#0Your Skill with a blade is now level #7Three#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_PROWESS] == 2) { ch->pcdata->powers[BLADE_PROWESS] += 1; send_to_char("#0Your combat prowess is now level #7Three#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_MELEE] == 2) { ch->pcdata->powers[BLADE_MELEE] += 1; send_to_char("#0You bring your Blade Master Melee to level #7Three#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_SKILL] == 3) { ch->pcdata->powers[BLADE_SKILL] += 1; send_to_char("#0Your Skill with a blade is now level #7Four#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_PROWESS] == 3) { ch->pcdata->powers[BLADE_PROWESS] += 1; send_to_char("#0Your combat prowess is now level #7Four#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_MELEE] == 3) { ch->pcdata->powers[BLADE_MELEE] += 1; send_to_char("#0You bring your Blade Master Melee to level #7Four#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_SKILL] == 4) { ch->pcdata->powers[BLADE_SKILL] += 1; send_to_char("#0Your Skill with a blade is now level #7Five#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_PROWESS] == 4) { ch->pcdata->powers[BLADE_PROWESS] += 1; send_to_char("#0Your combat prowess is now level #7Five#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_MELEE] == 4) { ch->pcdata->powers[BLADE_MELEE] += 1; send_to_char("#0You bring your Blade Master Melee to level #7Five#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_SKILL] == 5) { ch->pcdata->powers[BLADE_SKILL] += 1; send_to_char("#0Your Skill with a blade is now level #7Six#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_PROWESS] == 5) { ch->pcdata->powers[BLADE_PROWESS] += 1; send_to_char("#0Your combat prowess is now level #7Six#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_MELEE] == 5) { ch->pcdata->powers[BLADE_MELEE] += 1; send_to_char("#0You bring your Blade Master Melee to level #7Six#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_SKILL] == 6) { ch->pcdata->powers[BLADE_SKILL] += 1; send_to_char("#0Your Skill with a blade is now level #7Seven#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_PROWESS] == 6) { ch->pcdata->powers[BLADE_PROWESS] += 1; send_to_char("#0Your combat prowess is now level #7Seven#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_MELEE] == 6) { ch->pcdata->powers[BLADE_MELEE] += 1; send_to_char("#0You bring your Blade Master Melee to level #7Seven#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_SKILL] == 7) { ch->pcdata->powers[BLADE_SKILL] += 1; send_to_char("#0Your Skill with a blade is now level #7Eight#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_PROWESS] == 7) { ch->pcdata->powers[BLADE_PROWESS] += 1; send_to_char("#0Your combat prowess is now level #7Eight#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_MELEE] == 7) { ch->pcdata->powers[BLADE_MELEE] += 1; send_to_char("#0You bring your Blade Master Melee to level #7Eight#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_SKILL] == 8) { ch->pcdata->powers[BLADE_SKILL] += 1; send_to_char("#0Your Skill with a blade is now level #7Nine#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_PROWESS] == 8) { ch->pcdata->powers[BLADE_PROWESS] += 1; send_to_char("#0Your combat prowess is now level #7Nine#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_MELEE] == 8) { ch->pcdata->powers[BLADE_MELEE] += 1; send_to_char("#0You bring your Blade Master Melee to level #7Nine#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_SKILL] == 9) { ch->pcdata->powers[BLADE_SKILL] += 1; send_to_char("#0Your Skill with a blade is now level #7Ten#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_PROWESS] == 9) { ch->pcdata->powers[BLADE_PROWESS] += 1; send_to_char("#0Your combat prowess is now level #7Ten#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_MELEE] == 9) { ch->pcdata->powers[BLADE_MELEE] += 1; send_to_char("#0You bring your Blade Master Melee to level #7Ten#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_SKILL] == 10) { ch->pcdata->powers[BLADE_SKILL] += 1; send_to_char("#0Your Skill with a blade is now level #7Eleven#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_PROWESS] == 10) { ch->pcdata->powers[BLADE_PROWESS] += 1; send_to_char("#0Your combat prowess is now level #7Eleven#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_MELEE] == 10) { ch->pcdata->powers[BLADE_MELEE] += 1; send_to_char("#0You bring your Blade Master Melee to level #7Eleven#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_SKILL] == 11) { ch->pcdata->powers[BLADE_SKILL] += 1; send_to_char("#0Your Skill with a blade is now level #7Twelve#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_PROWESS] == 11) { ch->pcdata->powers[BLADE_PROWESS] += 1; send_to_char("#0Your combat prowess is now level #7Twelve#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_MELEE] == 11) { ch->pcdata->powers[BLADE_MELEE] += 1; send_to_char("#0You bring your Blade Master Melee to level #7Twelve#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_SKILL] == 12) { ch->pcdata->powers[BLADE_SKILL] += 1; send_to_char("#0Your Skill with a blade is now level #7Thirteen#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_PROWESS] == 12) { ch->pcdata->powers[BLADE_PROWESS] += 1; send_to_char("#0Your combat prowess is now level #7Thirteen#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_MELEE] == 12) { ch->pcdata->powers[BLADE_MELEE] += 1; send_to_char("#0You bring your Blade Master Melee to level #7Thirteen#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_SKILL] == 13) { ch->pcdata->powers[BLADE_SKILL] += 1; send_to_char("#0Your Skill with a blade is now level #7Fourteen#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_PROWESS] == 13) { ch->pcdata->powers[BLADE_PROWESS] += 1; send_to_char("#0Your combat prowess is now level #7Fourteen#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_MELEE] == 13) { ch->pcdata->powers[BLADE_MELEE] += 1; send_to_char("#0You bring your Blade Master Melee to level #7Fourteen#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_SKILL] == 14) { ch->pcdata->powers[BLADE_SKILL] += 1; send_to_char("#0Your Skill with a blade is now level #7Fifteen#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_PROWESS] == 14) { ch->pcdata->powers[BLADE_PROWESS] += 1; send_to_char("#0Your combat prowess is now level #7Fifteen#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_MELEE] == 14) { ch->pcdata->powers[BLADE_MELEE] += 1; send_to_char("#0You bring your Blade Master Melee to level #7Fifteen#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_SKILL] == 15) { ch->pcdata->powers[BLADE_SKILL] += 1; send_to_char("#0Your Skill with a blade is now level #7Sixteen#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_PROWESS] == 15) { ch->pcdata->powers[BLADE_PROWESS] += 1; send_to_char("#0Your combat prowess is now level #7Sixteen#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_MELEE] == 15) { ch->pcdata->powers[BLADE_MELEE] += 1; send_to_char("#0You bring your Blade Master Melee to level #7Sixteen#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_SKILL] == 16) { ch->pcdata->powers[BLADE_SKILL] += 1; send_to_char("#0Your Skill with a blade is now level #7Seventeen#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_PROWESS] == 16) { ch->pcdata->powers[BLADE_PROWESS] += 1; send_to_char("#0Your combat prowess is now level #7Seventeen#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_MELEE] == 16) { ch->pcdata->powers[BLADE_MELEE] += 1; send_to_char("#0You bring your Blade Master Melee to level #7Seventeen#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_SKILL] == 17) { ch->pcdata->powers[BLADE_SKILL] += 1; send_to_char("#0Your Skill with a blade is now level #7Eighteen#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_PROWESS] == 17) { ch->pcdata->powers[BLADE_PROWESS] += 1; send_to_char("#0Your combat prowess is now level #7Eighteen#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_MELEE] == 17) { ch->pcdata->powers[BLADE_MELEE] += 1; send_to_char("#0You bring your Blade Master Melee to level #7Eighteen#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_SKILL] == 18) { ch->pcdata->powers[BLADE_SKILL] += 1; send_to_char("#0Your Skill with a blade is now level #7Nineteen#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_PROWESS] == 18) { ch->pcdata->powers[BLADE_PROWESS] += 1; send_to_char("#0Your combat prowess is now level #7Nineteen#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_MELEE] == 18) { ch->pcdata->powers[BLADE_MELEE] += 1; send_to_char("#0You bring your Blade Master Melee to level #7Nineteen#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_SKILL] == 19) { ch->pcdata->powers[BLADE_SKILL] += 1; send_to_char("#0Your Skill with a blade is now level #7Twenty#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_PROWESS] == 19) { ch->pcdata->powers[BLADE_PROWESS] += 1; send_to_char("#0Your combat prowess is now level #7Twenty#n.\n\r",ch); ch->bladeexp = 0; } else if (ch->pcdata->powers[BLADE_MELEE] == 19) { ch->pcdata->powers[BLADE_MELEE] += 1; send_to_char("#0You bring your Blade Master Melee to level #7Twenty#n.\n\r",ch); ch->bladeexp = 0; } } } if ((IS_CLASS(ch, CLASS_BLADE_MASTER) || !IS_CLASS(ch, CLASS_BLADE_MASTER)) && ch->generation > 1 && ch->level > 2) { ch->genexp += number_range((xp / 10), (xp / 2)); if (ch->genexp >= expneeded) { ch->genexp = 0; ch->generation -= 1; xprintf(buf,"#B%s #0has advanced a #GGeneration!#n",ch->name); do_info(ch, buf); do_save(ch, ""); } } } return; } /* act_info.c */ // int char_damroll(CHAR_DATA * ch) if (IS_CLASS(ch, CLASS_BLADE_MASTER)) value += 400; // int char_hitroll(CHAR_DATA * ch) if (IS_CLASS(ch, CLASS_BLADE_MASTER)) value += 400; /* void show_char_to_char_0 */ if ( !IS_NPC(victim) && !IS_NPC(ch) && IS_CLASS(victim, CLASS_BLADE_MASTER) && IS_HERO(victim) && IS_HERO(ch)) strcat( buf, "#7[#0{#7B#0lad#7e #7M#0aste#7r#0}#7]#n " ); /* do_who */ else if (IS_CLASS(wch, CLASS_BLADE_MASTER)) { strcpy(openb, "#0|[#n"); strcpy(closeb, "#0]|#n"); } else if (IS_CLASS(wch, CLASS_BLADE_MASTER)) { sprintf(kav, "%s#0-#r=#RB#0lad#ReM#0aste#Rr#r=#0-#n%s ", openb, closeb ); } /* void do_class clan.c */ else if (!str_cmp(arg2, "blademaster")) { victim->class = CLASS_BLADE_MASTER; send_to_char("You are now a Blade Master!\n\r", victim); } // interp.c /* * Blade Master Class by Xrakisis */ { "bladeshow", do_bladegain, POS_STANDING, 3, LOG_NORMAL, CLASS_BLADE_MASTER,0,0}, { "retort", do_retort, POS_STANDING, 3, LOG_NORMAL, CLASS_BLADE_MASTER,0,0}, { "portal", do_portal, POS_STANDING, 3, LOG_NORMAL, CLASS_BLADE_MASTER,0,0}, { "rapidstrike", do_rapidstrike, POS_STANDING, 3, LOG_NORMAL, CLASS_BLADE_MASTER,0,0}, { "pstrike", do_pstrike, POS_FIGHTING, 3, LOG_NORMAL, CLASS_BLADE_MASTER,0,0}, { "combatstyle", do_combatstyle, POS_STANDING, 3, LOG_NORMAL, CLASS_BLADE_MASTER,0,0 }, { "weaponpractice", do_weaponpractice, POS_STANDING, 3, LOG_NORMAL, CLASS_BLADE_MASTER,0,0}, { "shield", do_shield, POS_STANDING, 3, LOG_NORMAL, CLASS_BLADE_MASTER, 0, 0 }, { "truesight", do_truesight, POS_STANDING, 3, LOG_NORMAL, CLASS_BLADE_MASTER,0,0 }, // interp.h /* Blade Master */ DECLARE_DO_FUN(do_bladegain); DECLARE_DO_FUN(do_retort); DECLARE_DO_FUN(do_portal); DECLARE_DO_FUN(do_rapidstrike); DECLARE_DO_FUN(do_pstrike); DECLARE_DO_FUN(do_combatstyle); // merc.h #define NEW2_AUTOATTACK 32768 #define NEW2_OFFENCE 65536 #define NEW2_DEFENSE 131072 #define NEW2_DAMCAP 262144 struct char_data int bladeexp; // for blade master class by Xrakisis int bladeexpneeded;