#include <stdio.h> #include <string.h> #include <time.h> #include <unistd.h> #include <ctype.h> #include <sys/types.h> #include <sys/stat.h> #include <errno.h> #include <stdlib.h> #include <limits.h> #include <malloc.h> #include <fcntl.h> #include <stdarg.h> #include "merc.h" #include "interp.h" void do_relarmor ( CHAR_DATA * ch, char * argument ) { char arg1[MAX_INPUT_LENGTH]; char arg2[MAX_INPUT_LENGTH]; char arg3[MAX_INPUT_LENGTH]; char buf[MAX_STRING_LENGTH]; OBJ_INDEX_DATA * pObjIndex; OBJ_DATA * obj; char name [MSL]; char ooga [MSL]; int hitroll = 0; int damroll = 0; int hp = 0; int mana = 0; int move = 0; int wear = 0; int armor = 0; int rnum = 81106; argument = one_argument( argument, arg1 ); argument = one_argument( argument, arg2 ); argument = one_argument( argument, arg3 ); if ( IS_NPC( ch ) ) return; if (ch->race < 5) { send_to_char("you need 5 status for this\n\r",ch); return; } if (ch->god == 0) { send_to_char("you need a god for this\n\r",ch); return; } if (arg1[0] == '\0') { send_to_char("Create which piece of Religious EQ \n\r",ch); send_to_char("Ring Amulet Mail Helmet Leggings Boots Gauntlets Sleeves Cloak Belt Bracer Mask Shield\n\r",ch); return; } if ( rnum == 0 || ( pObjIndex = get_obj_index( rnum ) ) == NULL ) { stc( "Missing object, please notify a member of the staff.\n\r", ch ); return; } if (!str_cmp(arg1,"ring")) { wear = ITEM_WEAR_FINGER; sprintf( name, "Ring" ); } if (!str_cmp(arg1,"amulet")) { wear = ITEM_WEAR_NECK; sprintf( name, "Amulet" ); } if (!str_cmp(arg1,"mail")) { wear = ITEM_WEAR_BODY; sprintf( name, "Armor" ); } if (!str_cmp(arg1,"helmet")) { wear = ITEM_WEAR_HEAD; sprintf( name, "Helmet" ); } if (!str_cmp(arg1,"leggings")) { wear = ITEM_WEAR_LEGS; sprintf( name, "Leggings" ); } if (!str_cmp(arg1,"boots")) { wear = ITEM_WEAR_FEET; sprintf( name, "Boots" ); } if (!str_cmp(arg1,"gauntlets")) { wear = ITEM_WEAR_HANDS; sprintf( name, "Gauntlets" ); } if (!str_cmp(arg1,"sleeves")) { wear = ITEM_WEAR_ARMS; sprintf( name, "Sleeves" ); } if (!str_cmp(arg1,"cloak")) { wear = ITEM_WEAR_ABOUT; sprintf( name, "Cloak" ); } if (!str_cmp(arg1,"belt")) { wear = ITEM_WEAR_WAIST; sprintf( name, "Belt" ); } if (!str_cmp(arg1,"bracer")) { wear = ITEM_WEAR_WRIST; sprintf( name, "Bracer" ); } if (!str_cmp(arg1,"mask")) { wear = ITEM_WEAR_FACE; sprintf( name, "Face Plate" ); } if (!str_cmp(arg1,"shield")) { wear = ITEM_WEAR_SHIELD; sprintf( name, "Shield" ); } obj = create_object( pObjIndex, 52 ); hitroll = 100; damroll = 100; hp = 250; mana = 250; move = 250; armor = -100; add_affect( obj, APPLY_HITROLL, hitroll ); add_affect( obj, APPLY_DAMROLL, damroll ); add_affect( obj, APPLY_HIT, hp ); add_affect( obj, APPLY_MANA, mana ); add_affect( obj, APPLY_MOVE, move ); add_affect( obj, APPLY_AC, armor ); obj->value[0] = 30; SET_BIT( obj->quest, QUEST_RELIC ); SET_BIT( obj->wear_flags, ITEM_TAKE ); obj->questowner = str_dup( ch->name ); SET_BIT( obj->wear_flags, wear ); obj->item_type = ITEM_ARMOR; sprintf( ooga ,"#GRe#gli#7g#gio#Gus #7%s #Rof #0%s#n", name, god_table[ch->god].name ); free_string( obj->short_descr ); obj->short_descr = str_dup( ooga ); sprintf( ooga ,"#GRe#gli#7g#gio#Gus #7%s #Rof #0%s#n lies on the ground.", name, god_table[ch->god].name ); free_string( obj->description ); obj->description = str_dup( ooga ); sprintf( ooga, "Religious %s ", name ); free_string( obj->name ); obj->name = str_dup( ooga ); obj_to_char( obj, ch ); act( "$p #7appears in your hands in a great #Ye#yxplosion#7.#n", ch, obj, NULL, TO_CHAR ); act( "$p #7appears in $n's hands in a great #Ye#yxplosion#7.#n", ch, obj, NULL, TO_ROOM ); stc( "#7You have obtained a piece of Religious armor!#n\n\r", ch ); return; } void load_gods() { int i; FILE *fp; if ((fp = fopen("../txt/gods.txt", "r")) == NULL) { log_string(LOG_GAME, "Error: gods.txt not found!"); exit(1); } gods[0].souls = 0; for (i = 0; i < 22; i++) { gods[i].souls = fread_number(fp); } fclose(fp); } void save_gods() { FILE *fp; int i; if ((fp = fopen("../txt/gods.txt","w")) == NULL) { log_string(LOG_GAME, "Error writing to gods.txt"); return; } for (i=0;i<22;i++) { fprintf(fp, "%d\n", gods[i].souls); } fclose (fp); } void do_gods(CHAR_DATA *ch, char *argument) { int i; char diety[MAX_STRING_LENGTH]; char arg1[MAX_INPUT_LENGTH]; char arg2[MAX_INPUT_LENGTH]; char arg3[MAX_INPUT_LENGTH]; char buf[MAX_STRING_LENGTH]; unsigned long int value = 0; argument = one_argument( argument, arg1 ); argument = one_argument( argument, arg2 ); argument = one_argument( argument, arg3 ); save_gods(); if (arg1[0] == '\0') { send_to_char("Diety : Souls \n\r",ch); send_to_char("\n\r",ch); for (i=0;i<22;i++) { if (i==0) sprintf(diety,"Athiest "); if (i==1) sprintf(diety,"Astinus "); if (i==2) sprintf(diety,"Chemosh "); if (i==3) sprintf(diety,"Hiddukel "); if (i==4) sprintf(diety,"Nuitari "); if (i==5) sprintf(diety,"Sargonnas "); if (i==6) sprintf(diety,"Zeboim "); if (i==7) sprintf(diety,"Branchala "); if (i==8) sprintf(diety,"Habbakuk "); if (i==9) sprintf(diety,"Kiri-Jolith "); if (i==10) sprintf(diety,"Majere "); if (i==11) sprintf(diety,"Mishakal "); if (i==12) sprintf(diety,"Solinari "); if (i==13) sprintf(diety,"Chislev "); if (i==14) sprintf(diety,"Gilean "); if (i==15) sprintf(diety,"Lunitari "); if (i==16) sprintf(diety,"Reorx "); if (i==17) sprintf(diety,"Shinare "); if (i==18) sprintf(diety,"Sirrion "); if (i==19) sprintf(diety,"Zivilyn "); if (i==20) sprintf(diety,"Takhisis "); if (i==21) sprintf(diety,"Paladine "); sprintf(buf,"%-18s : %-12d -> \n\r",diety,gods[i].souls); send_to_char(buf,ch); } send_to_char("syntax: gods worship godname \n\r",ch); } if (!str_cmp(arg1,"worship")) { if (ch->god > 0) { send_to_char("You already worship a god",ch); return; } if (arg2[0] == '\0') { send_to_char("Worship which God?",ch); return; } if (!str_cmp(arg2,"astinus")) { ch->god = 1; send_to_char("You now worship Astinus.",ch); return; } if (!str_cmp(arg2,"chemosh")) { ch->god = 2; send_to_char("You now worship Chemosh.",ch); return; } if (!str_cmp(arg2,"hiddukel")) { ch->god = 3; send_to_char("You now worship Chemosh.",ch); return; } if (!str_cmp(arg2,"nuitari")) { ch->god = 4; send_to_char("You now worship Nuitari.",ch); return; } if (!str_cmp(arg2,"sargonnas")) { ch->god = 5; send_to_char("You now worship Sargonnas.",ch); return; } if (!str_cmp(arg2,"zeboim")) { ch->god = 6; send_to_char("You now worship Zeboim.",ch); return; } if (!str_cmp(arg2,"branchala")) { ch->god = 7; send_to_char("You now worship Branchala.",ch); return; } if (!str_cmp(arg2,"habbakuk")) { ch->god = 8; send_to_char("You now worship Habbakuk.",ch); return; } if (!str_cmp(arg2,"kiri-jolith")) { ch->god = 9; send_to_char("You now worship Kiri-Jolith.",ch); return; } if (!str_cmp(arg2,"majere")) { ch->god = 10; send_to_char("You now worship Majere.",ch); return; } if (!str_cmp(arg2,"mishakal")) { ch->god = 11; send_to_char("You now worship Mishakal.",ch); return; } if (!str_cmp(arg2,"solinari")) { ch->god = 12; send_to_char("You now worship Solinari.",ch); return; } if (!str_cmp(arg2,"chislev")) { ch->god = 13; send_to_char("You now worship Chislev.",ch); return; } if (!str_cmp(arg2,"gilean")) { ch->god = 14; send_to_char("You now worship Gilean.",ch); return; } if (!str_cmp(arg2,"lunitari")) { ch->god = 15; send_to_char("You now worship Lunitari.",ch); return; } if (!str_cmp(arg2,"Reorx")) { ch->god = 16; send_to_char("You now worship Reorx.",ch); return; } if (!str_cmp(arg2,"shinare")) { ch->god = 17; send_to_char("You now worship Shinare.",ch); return; } if (!str_cmp(arg2,"sirrion")) { ch->god = 18; send_to_char("You now worship Sirrion.",ch); return; } if (!str_cmp(arg2,"zivilyn")) { ch->god = 19; send_to_char("You now worship Zivilyn.",ch); return; } if (!str_cmp(arg2,"takhisis")) { ch->god = 20; send_to_char("You now worship Takhisis.",ch); return; } if (!str_cmp(arg2,"paladine")) { ch->god = 21; send_to_char("You now worship Paladine.",ch); return; } return; } } void load_balance() { int i; FILE *fp; if ((fp = fopen("../txt/balance.txt", "r")) == NULL) { log_string(LOG_GAME, "Error: balance.txt not found!"); exit(1); } balance[0].wpnlvl = 0; balance[0].number_attacks = 0; balance[0].damcap = 0; balance[0].parry = 0; balance[0].dodge = 0; balance[0].middy = 0; for (i = 0; i < 31; i++) { balance[i].wpnlvl = fread_number(fp); balance[i].number_attacks = fread_number(fp); balance[i].damcap = fread_number(fp); balance[i].parry = fread_number(fp); balance[i].dodge = fread_number(fp); balance[i].middy = fread_number(fp); } fclose(fp); } void save_balance() { FILE *fp; int i; if ((fp = fopen("../txt/balance.txt","w")) == NULL) { log_string(LOG_GAME, "Error writing to balance.txt"); return; } for (i=0;i<31;i++) { fprintf(fp, "%d\n", balance[i].wpnlvl); fprintf(fp, "%d\n", balance[i].number_attacks); fprintf(fp, "%d\n", balance[i].damcap); fprintf(fp, "%d\n", balance[i].parry); fprintf(fp, "%d\n", balance[i].dodge); fprintf(fp, "%d\n", balance[i].middy); } fclose (fp); } void do_xcenter(CHAR_DATA *ch, char *argument) { int i; char class[MAX_STRING_LENGTH]; char arg1[MAX_INPUT_LENGTH]; char arg2[MAX_INPUT_LENGTH]; char arg3[MAX_INPUT_LENGTH]; char buf[MAX_STRING_LENGTH]; unsigned long int value = 0; argument = one_argument( argument, arg1 ); argument = one_argument( argument, arg2 ); argument = one_argument( argument, arg3 ); save_balance(); if (arg1[0] == '\0') { send_to_char("#CClass#0 : #GWeapon Levels #0-> #RNumber Attacks #yDamcap Parry Dodge Middy#n\n\r",ch); send_to_char("\n\r",ch); for (i=0;i<31;i++) { if (i==0) sprintf(class,"#R[#0Demon#R]#n "); if (i==1) sprintf(class,"#y((#LWerewolf#y))#n "); if (i==2) sprintf(class,"#0<<#RVampire#0>>#n "); if (i==3) sprintf(class,"#P.o0#0Drow#P0o.#n "); if (i==4) sprintf(class,"#y{#RTanar'ri#y}#n "); if (i==5) sprintf(class,"#y.x#0(#7Angel#0)#yx.#n "); if (i==6) sprintf(class,"#0|[#LUndead Knight#0]|#n "); if (i==7) sprintf(class,"#C***#Yninja#C***#n "); if (i==8) sprintf(class,"#0.x[#0Monk#l]x.#n "); if (i==9) sprintf(class,"#Rx#rX#C[#gElemental#C]#rX#Rx#n "); if (i==10) sprintf(class,"#y<#7/#y+#7>#nPaladin#7<#y+#7\\#y>#n "); if (i==11) sprintf(class,"#P*^#CBattlemage#P^*#n "); if (i==12) sprintf(class,"#r:=#CDragon#r=:#n "); if (i==13) sprintf(class,"#0(#r*#7Zombie#r*#0)#n "); if (i==14) sprintf(class,"#l\#0|#l/-#7S#0hinob#7i#l-\#0|#l/#n "); if (i==15) sprintf(class,"#0[#P*#0]#RShapeshifter#0[#P*#0]#n "); if (i==16) sprintf(class,"#c<>#GG#gian#Gt#c<>#n "); if (i==17) sprintf(class,"#r^-^#0Anti-Paladin#r^-^#n "); if (i==18) sprintf(class,"#L=#R*#w>#CSky#Wblade#w<#R*#L=#n "); if (i==19) sprintf(class,"#w]>#L*#wPriest#L*#w<[#n "); if (i==20) sprintf(class,"#p{#0-#p}#0Cyborg#p{#0-#p}#n "); if (i==21) sprintf(class,"#C-=#RSam#Yura#Ci=-#n "); if (i==22) sprintf(class,"#G>*<#wLich#G>*<#n "); if (i==23) sprintf(class,"#o(#c*#o)#RHobbit#o(#c*#o)#n "); if (i==24) sprintf(class,"#G<<#R(#YFae#R)#G>>#n "); if (i==25) sprintf(class,"#G<#0=#Y{#0Drone#Y}#0=#G>#n "); if (i==26) sprintf(class,"#L+#0=#L+#lJedi#L+#0=#L+#n "); if (i==27) sprintf(class,"#GX#gx#G(#gGhoul#G)#gx#GX#n "); if (i==28) sprintf(class,"#r<#R)#WThief#R(#r>#n "); if (i==29) sprintf(class,"#R+#Y(#gDraconian#Y)#R+#n "); if (i==30) sprintf(class,"#0-#Y>#0)#pShadow#0(#Y<#0-#n "); sprintf(buf,"%-18s #0: #G%-12d #0-> #R%-2d #y%-5d #y%-5d #y%-5d #y%-5d\n\r",class,balance[i].wpnlvl,balance[i].number_attacks, balance[i].damcap, balance[i].parry, balance[i].dodge, balance[i].middy); send_to_char(buf,ch); }} value = is_number( arg3 ) ? atoi( arg3 ) : -1; if (!str_cmp(arg1,"demon")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Demon Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[0].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Demon number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[0].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Demon Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[0].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Demon Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[0].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Demon Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[0].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "Leech range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Demon Leech set to %d.\n\r",value); send_to_char(buf,ch); balance[0].middy = value; return; } } if (!str_cmp(arg1,"werewolf")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Werewolf Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[1].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Werewolf number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[1].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Werewolf Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[1].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Werewolf Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[1].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Werewolf Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[1].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "Talons range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Werewolf Talons set to %d.\n\r",value); send_to_char(buf,ch); balance[1].middy = value; return; } } if (!str_cmp(arg1,"vampire")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Vampire Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[2].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Vampire number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[2].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Vampire Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[2].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Vampire Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[2].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Vampire Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[2].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Vampire Spit set to %d.\n\r",value); send_to_char(buf,ch); balance[2].middy = value; return; } } if (!str_cmp(arg1,"drow")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Drow Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[3].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Drow number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[3].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Drow Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[3].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Drow Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[3].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Drow Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[3].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Drow ? set to %d.\n\r",value); send_to_char(buf,ch); balance[3].middy = value; return; } } if (!str_cmp(arg1,"tanarri")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Tanarri Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[4].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Tanar'ri number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[4].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Tanar'ri Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[4].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Tanar'ri Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[4].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Tanar'ri Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[4].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "Tanar'ri ? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Tanar'ri ? set to %d.\n\r",value); send_to_char(buf,ch); balance[4].middy = value; return; } } if (!str_cmp(arg1,"angel")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Angel Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[5].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Angel number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[5].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Angel Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[5].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Angel Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[5].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Angel Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[5].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Angel ? set to %d.\n\r",value); send_to_char(buf,ch); balance[5].middy = value; return; } } if (!str_cmp(arg1,"undeadknight")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Undead Knight Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[6].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"UK number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[6].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"UK Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[6].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"UK Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[6].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"UK Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[6].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"UK Soulsuck set to %d.\n\r",value); send_to_char(buf,ch); balance[6].middy = value; return; } } if (!str_cmp(arg1,"ninja")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Ninja Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[7].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Ninja number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[7].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Ninja Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[7].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Ninja Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[7].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Ninja Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[7].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Ninja ? set to %d.\n\r",value); send_to_char(buf,ch); balance[7].middy = value; return; } } if (!str_cmp(arg1,"monk")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Monk Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[8].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Monk number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[8].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Monk Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[8].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Monk Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[8].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Monk Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[8].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Monk (dblast?) set to %d.\n\r",value); send_to_char(buf,ch); balance[8].middy = value; return; } } if (!str_cmp(arg1,"elemental")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Elemental Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[9].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Elemental number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[9].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Elemental Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[9].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Elemental Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[9].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Elemental Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[9].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Elemental Natures Fury set to %d.\n\r",value); send_to_char(buf,ch); balance[9].middy = value; return; } } if (!str_cmp(arg1,"paladin")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Paladin Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[10].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Paladin number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[10].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Paladin Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[10].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Paladin Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[10].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Paladin Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[10].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Paladin Retribution set to %d.\n\r",value); send_to_char(buf,ch); balance[10].middy = value; return; } } if (!str_cmp(arg1,"battlemage")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"BattleMage Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[11].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"BattleMage number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[11].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"BattleMage Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[11].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"BattleMage Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[11].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"BattleMage Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[11].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"BattleMage Soulsuck set to %d.\n\r",value); send_to_char(buf,ch); balance[11].middy = value; return; } } if (!str_cmp(arg1,"dragon")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Dragon Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[12].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Dragon number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[12].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Dragon Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[12].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Dragon Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[12].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Dragon Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[12].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Dragon Fire Breath set to %d.\n\r",value); send_to_char(buf,ch); balance[12].middy = value; return; } } if (!str_cmp(arg1,"zombie")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Zombie Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[13].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Zombie number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[13].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Zombie Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[13].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Zombie Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[13].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Zombie Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[13].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Zombie Shatter set to %d.\n\r",value); send_to_char(buf,ch); balance[13].middy = value; return; } } if (!str_cmp(arg1,"shinobi")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Shinobi Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[14].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Shinobi number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[14].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Shinobi Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[14].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Shinobi Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[14].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Shinobi Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[14].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Shinobi ? set to %d.\n\r",value); send_to_char(buf,ch); balance[14].middy = value; return; } } if (!str_cmp(arg1,"shapeshifter")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Shappie Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[15].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Shapeshifter number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[15].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"ShapeShifter Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[15].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"ShapeShifter Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[15].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"ShapeShifter Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[15].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"ShapeShifter Soulsuck set to %d.\n\r",value); send_to_char(buf,ch); balance[15].middy = value; return; } } if (!str_cmp(arg1,"giant")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Giant Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[16].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Giant number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[16].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Giant Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[16].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Giant Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[16].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Giant Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[16].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Giant Soulsuck set to %d.\n\r",value); send_to_char(buf,ch); balance[16].middy = value; return; } } if (!str_cmp(arg1,"antipaladin")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Anti-Paladin Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[17].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Anti-Paladin number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[17].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Anti-Paladin Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[17].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Anti-Paladin Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[17].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Anti-Paladin Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[17].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Anti-Paladin Flamestrike set to %d.\n\r",value); send_to_char(buf,ch); balance[17].middy = value; return; } } if (!str_cmp(arg1,"skyblade")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Skyblade Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[18].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"SkyBlade number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[18].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"SkyBlade Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[18].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"SkyBlade Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[18].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"SkyBlade Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[18].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"SkyBlade Pummel set to %d.\n\r",value); send_to_char(buf,ch); balance[18].middy = value; return; } } if (!str_cmp(arg1,"priest")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Priest Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[19].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Priest number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[19].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Priest Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[19].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Priest Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[19].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Priest Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[19].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Priest ? set to %d.\n\r",value); send_to_char(buf,ch); balance[19].middy = value; return; } } if (!str_cmp(arg1,"cyborg")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Cyborg Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[20].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Cyborg number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[20].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Cyborg Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[20].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Cyborg Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[20].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Cyborg Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[20].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Cyborg ? set to %d.\n\r",value); send_to_char(buf,ch); balance[20].middy = value; return; } } if (!str_cmp(arg1,"samurai")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Samurai Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[21].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Samurai number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[21].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Samurai Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[21].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Samurai Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[21].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Samurai Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[21].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Samurai ? set to %d.\n\r",value); send_to_char(buf,ch); balance[21].middy = value; return; } } if (!str_cmp(arg1,"lich")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Lich Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[22].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Lich number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[22].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Lich Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[22].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Lich Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[22].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Lich Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[22].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Lich ? set to %d.\n\r",value); send_to_char(buf,ch); balance[22].middy = value; return; } } if (!str_cmp(arg1,"hobbit")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Hobbit Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[23].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"hobbit number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[23].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Hobbit Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[23].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Hobbit Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[23].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Hobbit Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[23].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Hobbit ? set to %d.\n\r",value); send_to_char(buf,ch); balance[23].middy = value; return; } } if (!str_cmp(arg1,"fae")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Fae Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[24].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Fae number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[24].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Fae Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[24].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Fae Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[24].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Fae Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[24].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Fae ? set to %d.\n\r",value); send_to_char(buf,ch); balance[24].middy = value; return; } } if (!str_cmp(arg1,"drone")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Drone Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[25].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Drone number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[25].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Drone Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[25].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Drone Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[25].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Drone Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[25].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Drone ? set to %d.\n\r",value); send_to_char(buf,ch); balance[25].middy = value; return; } } if (!str_cmp(arg1,"jedi")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Jedi Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[26].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Jedi number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[26].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Jedi Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[26].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Jedi Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[26].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Jedi Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[26].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Jedi ? set to %d.\n\r",value); send_to_char(buf,ch); balance[26].middy = value; return; } } if (!str_cmp(arg1,"ghoul")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Ghoul Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[27].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Ghoul number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[27].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Ghoul Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[27].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Ghoul Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[27].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Ghoul Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[27].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Ghoul ? set to %d.\n\r",value); send_to_char(buf,ch); balance[27].middy = value; return; } } if (!str_cmp(arg1,"thief")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Thief Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[28].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Thief number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[28].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Thief Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[28].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Thief Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[28].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Thief Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[28].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Thief ? set to %d.\n\r",value); send_to_char(buf,ch); balance[28].middy = value; return; } } if (!str_cmp(arg1,"draconian")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Draconian Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[29].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Draconian number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[29].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Draconian Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[29].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Draconian Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[29].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Draconian Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[29].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Draconian ? set to %d.\n\r",value); send_to_char(buf,ch); balance[29].middy = value; return; } } if (!str_cmp(arg1,"shadow")) { if (arg2[0] == '\0') { send_to_char("numberattacks, damcap, parry, dodge, middy",ch); return; } if (!str_cmp(arg2,"wpnlevel")) { if ( value < 200 || value > 1200 ) { stc( "Weapon Level range is 200 to 1200.\n\r", ch ); return; } sprintf(buf,"Shadow Weapon Levels set to %d.\n\r",value); send_to_char(buf,ch); balance[30].wpnlvl = value; return; } if (!str_cmp(arg2,"numberattacks")) { if ( value < 2 || value > 10 ) { stc( "Number of Attacks range is 2 to 10.\n\r", ch ); return; } sprintf(buf,"Shadow number_attacks set to %d.\n\r",value); send_to_char(buf,ch); balance[30].number_attacks = value; return; } if (!str_cmp(arg2,"damcap")) { if ( value < 1000 || value > 6000 ) { stc( "Damcap range is 1000 to 6000.\n\r", ch ); return; } sprintf(buf,"Shadow Damcap set to %d.\n\r",value); send_to_char(buf,ch); balance[30].damcap = value; return; } if (!str_cmp(arg2,"parry")) { if ( value < 20 || value > 70 ) { stc( "Parry range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Shadow Parry set to %d.\n\r",value); send_to_char(buf,ch); balance[30].parry = value; return; } if (!str_cmp(arg2,"dodge")) { if ( value < 20 || value > 70 ) { stc( "Dodge range is 20 to 70.\n\r", ch ); return; } sprintf(buf,"Shadow Dodge set to %d.\n\r",value); send_to_char(buf,ch); balance[30].dodge = value; return; } if (!str_cmp(arg2,"middy")) { if ( value < 5000 || value > 15000 ) { stc( "? range is 5000 to 15000.\n\r", ch ); return; } sprintf(buf,"Shadow ? set to %d.\n\r",value); send_to_char(buf,ch); balance[30].middy = value; return; } } } void do_convert ( CHAR_DATA *ch, char *argument) // Recoded by NebuSoft { char arg1[MAX_INPUT_LENGTH]; argument = one_argument( argument, arg1); if (IS_NPC(ch)) return; if (arg1[0] == '\0' || (str_cmp(arg1,"exp") && str_cmp(arg1,"bones"))) { send_to_char("convert <bones|exp>\n\r",ch); return; } if (!str_cmp(arg1,"bones")) { if ( ch->bones < 2500 ) { send_to_char("You need at least 2500 bones to convert.\n\r",ch); return; } if ( ch->exp >= 1000000000 ) { send_to_char("You need to spend some of your XP first.\n\r",ch); return; } ch->exp += 1000000000; ch->bones -= 2500; send_to_char("You convert 2500 bones into 1 billion XP.\n\r",ch); } else if (!str_cmp(arg1,"exp")) { if ( ch->exp < 1000000000 ) { send_to_char("You need at least 1,000,000,000 exp to convert.\n\r",ch); return; } ch->exp -= 1000000000; ch->bones += 2500; send_to_char("You convert 1 billion XP into 2500 bones\n\r",ch); } return; } void do_prof(CHAR_DATA * ch, char *argument) { char arg1[MAX_STRING_LENGTH]; char buf[MSL]; argument = one_argument( argument, arg1 ); if (IS_NPC(ch))return; if ( arg1[0] == '\0' ) { send_to_char("#0 Slash, Slice, Pound, Crush, Grep, Bite, Unarmed, Pierce, Suck, Blast, Claw, Whip, Stab..\n\r",ch); return; } if (ch->pcmaxwpnprof >= 3) { send_to_char(" You may only have 3 weapon proficiencies \n\r",ch); return; } if (!str_cmp(arg1,"slash")) { if (IS_SET(ch->pcwpnprof, WPNPROF_SLASH)) { send_to_char("#0 You already have Slash proficiency\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_SLASH); send_to_char("#0 You now have Slash proficiency\n\r",ch); return; } } else if (!str_cmp(arg1,"slice")) { if (IS_SET(ch->pcwpnprof, WPNPROF_SLICE)) { send_to_char("#0 You already have Slice proficiency\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_SLICE); send_to_char("#0 You now have Slice proficiency\n\r",ch); return; } } else if (!str_cmp(arg1,"pound")) { if (IS_SET(ch->pcwpnprof, WPNPROF_POUND)) { send_to_char("#0 You already have Pound proficiency\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_POUND); send_to_char("#0 You now have Pound proficiency\n\r",ch); return; } } else if (!str_cmp(arg1,"crush")) { if (IS_SET(ch->pcwpnprof, WPNPROF_CRUSH)) { send_to_char("#0 You already have Crush proficiency\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_CRUSH); send_to_char("#0 You now have Crush proficiency\n\r",ch); return; } } else if (!str_cmp(arg1,"grep")) { if (IS_SET(ch->pcwpnprof, WPNPROF_GREP)) { send_to_char("#0 You already have Grep proficiency\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_GREP); send_to_char("#0 You now have Grep proficiency\n\r",ch); return; } } else if (!str_cmp(arg1,"bite")) { if (IS_SET(ch->pcwpnprof, WPNPROF_BITE)) { send_to_char("#0 You already have Bite proficiency.\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_BITE); send_to_char("#0 You now have Bite proficiency.\n\r",ch); return; } } else if (!str_cmp(arg1,"unarmed")) { if (IS_SET(ch->pcwpnprof, WPNPROF_UNARM)) { send_to_char("#0 You already have Hand-To-Hand proficiency.\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_UNARM); send_to_char("#0 You now have Unarmed proficiency.\n\r",ch); return; } } else if (!str_cmp(arg1,"pierce")) { if (IS_SET(ch->pcwpnprof, WPNPROF_PIERCE)) { send_to_char("#0 You already have Dagger Proficiency.\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_PIERCE); send_to_char("#0 You now have Pierce proficiency\n\r",ch); return; } } else if (!str_cmp(arg1,"suck")) { if (IS_SET(ch->pcwpnprof, WPNPROF_SUCK)) { send_to_char("#0 You already have Suck proficiency\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_SUCK); send_to_char("#0 You now have Suck proficiency\n\r",ch); return; } } else if (!str_cmp(arg1,"blast")) { if (IS_SET(ch->pcwpnprof, WPNPROF_BLAST)) { send_to_char("#0 You already have Blast proficiency\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_BLAST); send_to_char("#0 You now have Blast proficiency\n\r",ch); return; } } else if (!str_cmp(arg1,"claw")) { if (IS_SET(ch->pcwpnprof, WPNPROF_CLAW)) { send_to_char("#0 You already have Claw proficiency\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_CLAW); send_to_char("#0 You now have Claw proficiency\n\r",ch); return; } } else if (!str_cmp(arg1,"whip")) { if (IS_SET(ch->pcwpnprof, WPNPROF_WHIP)) { send_to_char("#0 You already have Whip proficiency\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_WHIP); send_to_char("#0 You now have Whip proficiency\n\r",ch); return; } } else if (!str_cmp(arg1,"stab")) { if (IS_SET(ch->pcwpnprof, WPNPROF_STAB)) { send_to_char("#0 You already have Stab proficiency\n\r",ch); return; } else { ch->pcmaxwpnprof++; SET_BIT(ch->pcwpnprof, WPNPROF_STAB); send_to_char("#0 You now have Stab proficiency\n\r",ch); return; } } return; } void do_level(CHAR_DATA * ch, char *argument) { char arg[MAX_INPUT_LENGTH]; char skill[20]; char buf[MAX_STRING_LENGTH]; char stance [20]; float chgen = 0; float chgenexp = 0; int percent = 0; int nextgen = 0; int expneeded = 0; one_argument( argument, arg ); ROOM_INDEX_DATA *room; one_argument(argument, arg); if (IS_NPC(ch)) return; stc("#0X#r==============================#0[#rW#Reapon #rL#Revels#0]#r==============================#0X#n\n\r",ch); sprintf(skill, "#r|#0 Saber #7: %-4d", ch->wpn[1]); // slice send_to_char(skill, ch); sprintf(skill, "#0 Shiv #7: %-4d", ch->wpn[2]); // stab send_to_char(skill, ch); sprintf(skill, "#0 One-Handed Longsword #7: %-4d", ch->wpn[3]); // slash send_to_char(skill, ch); sprintf(skill, "#0Whip #7: %-4d #r|#n\n\r", ch->wpn[4]); // whip send_to_char(skill, ch); sprintf(skill, "#r|#0 Claw #7: %-4d", ch->wpn[5]); // claw send_to_char(skill, ch); sprintf(skill, "#0 Blast #7: %-4d", ch->wpn[6]); // blast send_to_char(skill, ch); sprintf(skill, "#0 WarHammer #7: %-4d", ch->wpn[7]); // pound send_to_char(skill, ch); sprintf(skill, "#0 Mace #7: %-4d #r|#n\n\r", ch->wpn[8]); // crush send_to_char(skill, ch); sprintf(skill, "#r|#0 Grep #7: %-4d", ch->wpn[9]); // grep send_to_char(skill, ch); sprintf(skill, "#0 Fang #7: %-4d", ch->wpn[10]); // bite send_to_char(skill, ch); sprintf(skill, "#0 Dagger #7: %-4d", ch->wpn[11]); // pierce send_to_char(skill, ch); sprintf(skill, "#0 Vampiric #7:%-4d#r|#n\n\r", ch->wpn[12]); // suck send_to_char(skill, ch); sprintf(skill, "#r|#0 Hand-to-Hand #7: %-4d #r|#n\n\r", ch->wpn[0]); send_to_char(skill, ch); stc("#0X#r==============================#0[#rS#Rtance #rL#Revels#0]#r==============================#0X\n\r",ch); sprintf(skill,"#r|#0 Viper #7%-4d #0Crane #7%-4d #0Crab #7%-4d #0Mongoose #7%-4d #0PitBull #7%-4d#r |\n\r",ch->stance[1],ch->stance[2],ch->stance[3],ch->stance[4],ch->stance[5]); stc(skill,ch); sprintf(skill,"#r|#0 Hawk #7%-4d #0Badger #7%-4d #0Cougar #7%-4d #0Grizzly #7%-4d #0Wolverine #7%-4d#r|\n\r",ch->stance[6],ch->stance[7],ch->stance[8],ch->stance[10],ch->stance[9]); stc(skill,ch); stc("#0X#r==============================#0[#rS#Ruper #rS#Rtances#0]#r==============================#0X#n\n\r",ch); sprintf(skill,"#r|#0 SS1 #7%-4d #0SS2 #7%-4d #0SS3 #7%-4d #0Pizza #7%-4d #0Zarius #7%-4d#r |#n\n\r",ch->stance[13],ch->stance[14],ch->stance[15],ch->stance[16],ch->stance[17]); stc(skill,ch); stc("#r| |\n\r",ch); stc("#r| #7To gain super stances, you must max all your current stances. #r|\n\r",ch); stc("#r| #7After this, use 'setstance' to beging editing your superstance. #r|\n\r",ch); stc("#0X#r==============================#0[#rS#Rpell #rL#Revels#0]#r===============================#0X#n\n\r",ch); sprintf(skill, "#r| #pPurple#n #C: %-4d", ch->spl[0]); send_to_char(skill, ch); sprintf(skill, " #lBlue#n #C: %-4d", ch->spl[2]); send_to_char(skill, ch); sprintf(skill, " #rRed#n #C: %-4d", ch->spl[1]); send_to_char(skill, ch); sprintf(skill, " #gGreen#n #C: %-4d", ch->spl[3]); send_to_char(skill, ch); sprintf(skill, " #yYellow#n #C: %-4d #r|#n\n\r", ch->spl[4]); send_to_char(skill, ch); stc("#0X#r==============================#0[#r+#R-#r+#R-#r+#R-#r+#R-#r+#R-#r+#R-#r+#0]#r==============================#0X#n\n\r",ch); stc("#0X#r==============================#0[#r+#R-#r+#R-#r+#R-#r+#R-#r+#R-#r+#R-#r+#0]#r==============================#0X#n\n\r",ch); stc("#0x#r----#R=====#r----#R=====#r----#R=====#r----#0x#n\n\r",ch); xprintf(buf, "#0You are currently generation #W%d#n\n\r", ch->generation); send_to_char(buf, ch); chgen = ch->generation; chgenexp = ch->genexp; if (ch->generation == 6) expneeded = 13000000.00; else if (ch->generation == 5) expneeded = 150000000.00; else if (ch->generation == 4) expneeded = 400000000.00; else if (ch->generation == 3) expneeded = 900000000.00; else if (ch->generation == 2) expneeded = 1800000000.00; percent = (chgenexp / expneeded) * 100.00; nextgen = (ch->generation - 1); if (ch->generation > 1 && ch->level > 2) { sprintf(skill,"#0You are #R%d#W%% #0on your way to generation #R%d.#n\n\r",percent,nextgen); stc(skill,ch); } stc("#0x#r----#R=====#r----#R=====#r----#R=====#r----#0x#n\n\r",ch); if ( ch->stance[12] == 1 ) sprintf(stance, " Viper" ); else if ( ch->stance[12] == 2 ) sprintf(stance, " Crane" ); else if ( ch->stance[12] == 3 ) sprintf(stance, " Crab" ); else if ( ch->stance[12] == 4 ) sprintf(stance, " Mongoose" ); else if ( ch->stance[12] == 5 ) sprintf(stance, " Pitbull" ); else if ( ch->stance[12] == 6 ) sprintf(stance, " Hawk" ); else if ( ch->stance[12] == 7 ) sprintf(stance, " Badger" ); else if ( ch->stance[12] == 8 ) sprintf(stance, " Cougar" ); else if ( ch->stance[12] == 9 ) sprintf(stance, " Wolverine" ); else if ( ch->stance[12] == 10 ) sprintf(stance, " Grizzly" ); else if ( ch->stance[12] == 11 ) sprintf(stance, " Wolf" ); else if ( ch->stance[12] == 13 ) sprintf( stance, " SS1"); else if ( ch->stance[12] == 14 ) sprintf( stance, " SS2"); else if ( ch->stance[12] == 15 ) sprintf( stance, " SS3"); else if ( ch->stance[12] == 16 ) sprintf( stance, " Pizza"); else if ( ch->stance[12] == 17 ) sprintf( stance, " Zarius"); else if ( ch->stance[12] == -1 ) sprintf(stance, " None" ); else sprintf(stance, " None" ); sprintf(skill, "#0Autostance#n: #R%s #n\n\r",stance); send_to_char(skill, ch); if (IS_SET(ch->act, PLR_RIGHTHAND)) send_to_char("#wYou favor your right arm in combat.#n\n\r",ch); else if(IS_SET(ch->act, PLR_LEFTHAND)) send_to_char("#wYou favor your left arm in combat.#n\n\r",ch); else send_to_char("#wYou fight well with both your arms.#n\n\r",ch); stc("#0x#r----#R=====#r----#R=====#r----#R=====#r----#0x#n\n\r",ch); if (IS_CLASS(ch, CLASS_DEMON)) send_to_char("You are a demon!\n\r", ch); if (IS_CLASS(ch, CLASS_MAGE)) send_to_char("You are a battlemage!\n\r", ch); if (IS_CLASS(ch, CLASS_SHAPESHIFTER)) send_to_char("You are a shapeshifter!\n\r", ch); if (IS_CLASS(ch, CLASS_UNDEAD_KNIGHT)) send_to_char("You are an undead knight!\n\r", ch); if (IS_CLASS(ch, CLASS_WEREWOLF)) send_to_char("You are a werewolf!\n\r", ch); if (IS_CLASS(ch, CLASS_NINJA)) send_to_char("You are a ninja!\n\r", ch); if (IS_CLASS(ch, CLASS_VAMPIRE)) send_to_char("You are a vampire!\n\r", ch); if (IS_CLASS(ch, CLASS_SAMURAI)) send_to_char("You are a Samurai!\n\r", ch); if (IS_CLASS(ch, CLASS_DROW)) send_to_char("You are a drow!\n\r", ch); if (IS_CLASS(ch, CLASS_ANGEL)) send_to_char("You are an angel!\n\r", ch); if (IS_CLASS(ch, CLASS_LICH)) send_to_char("You are a lich!\n\r", ch); if (IS_CLASS(ch, CLASS_SKYBLADE)) send_to_char("You are a SkyBlade!!\n\r", ch); if (IS_CLASS(ch, CLASS_GHOUL)) send_to_char ("You are a foul smelling #GGhoul#n!!\n\r", ch); if (IS_CLASS(ch, CLASS_DRACONIAN)) send_to_char("You are a Draconian!!\n\r", ch); if (IS_CLASS(ch, CLASS_TANARRI)) send_to_char ("You are a warrior of The Bloodwars.\n\r", ch); if (IS_CLASS(ch, CLASS_MONK)) stc("You are a monk!\n\r", ch); if (IS_CLASS(ch, CLASS_CYBORG)) stc("You are a Mix Between Man and Machine!\n\r", ch); if (IS_CLASS(ch, CLASS_SHADOW)) stc("You are a Shadow!\n\r", ch); if (IS_CLASS(ch, CLASS_PRIEST)) stc("You are a holy Priest\n\r", ch); if (IS_CLASS(ch, CLASS_JEDI)) stc("You are a Jedi Warrior!\n\r", ch); if (IS_CLASS(ch, CLASS_BLADE_MASTER)) send_to_char("You are a Blade Master.\n\r", ch); if ( IS_CLASS(ch, CLASS_DRAGON) ) send_to_char(" You are a dragon! \n\r", ch); if (IS_CLASS(ch, CLASS_PALADIN)) send_to_char("You are a Paladin.\n\r", ch); if ( IS_CLASS(ch, CLASS_ZOMBIE) ) send_to_char(" You are a Zombie! \n\r", ch); if (IS_CLASS(ch, CLASS_SHINOBI)) send_to_char("You are a Shinobi.\n\r", ch); if ( IS_CLASS(ch, CLASS_ELEMENTAL) ) send_to_char(" You are a Elemental! \n\r", ch); if (IS_CLASS(ch, CLASS_TANARRI)) { if (ch->pcdata->rank == TANARRI_FODDER) send_to_char ("You are nothing but fodder for the great war.\n\r", ch); if (ch->pcdata->rank == TANARRI_FIGHTER) send_to_char ("You are a fighter in the great war.\n\r", ch); if (ch->pcdata->rank == TANARRI_ELITE) send_to_char ("You are an elite warrior in the great war.\n\r", ch); if (ch->pcdata->rank == TANARRI_CAPTAIN) send_to_char ("You are a captain in the great war.\n\r", ch); if (ch->pcdata->rank == TANARRI_WARLORD) send_to_char ("You are a warlord in the great war.\n\r", ch); if (ch->pcdata->rank == TANARRI_BALOR) send_to_char("You are a Tanar'ri Balor.\n\r", ch); } if (IS_CLASS(ch, CLASS_VAMPIRE)) { if (ch->pcdata->rank == AGE_TRUEBLOOD) send_to_char("You are a TrueBlood!\n\r", ch); else if (ch->pcdata->rank == AGE_LA_MAGRA) send_to_char("You are a La Magra!\n\r", ch); else if (ch->pcdata->rank == AGE_METHUSELAH) send_to_char("You are a Methuselah!\n\r", ch); else if (ch->pcdata->rank == AGE_ELDER) send_to_char("You are an Elder!\n\r", ch); else if (ch->pcdata->rank == AGE_ANCILLA) send_to_char("You are an Ancilla!\n\r", ch); else if (ch->pcdata->rank == AGE_NEONATE) send_to_char("You are a Neonate!\n\r", ch); else send_to_char("You are a Childe!\n\r", ch); } room = get_room_index( ch->home ); sprintf(skill, "#0Recall Room#R : #Y%s#n\n\r", room->name); send_to_char( skill, ch ); stc("#0x#r----#R=====#r----#R=====#r----#R=====#r----#0x#n\n\r",ch); return; } int find_spell( CHAR_DATA *ch, const char *name ) { /* finds a spell the character can cast if possible */ int sn, found = -1; if (IS_NPC(ch)) return skill_lookup(name); for ( sn = 0; sn < MAX_SKILL; sn++ ) { if (skill_table[sn].name == NULL) break; if (LOWER(name[0]) == LOWER(skill_table[sn].name[0]) && !str_prefix(name,skill_table[sn].name)) { if ( found == -1) found = sn; if (ch->pcRaceLevel >= skill_table[sn].race_level && ch->pcdata->learned[sn] > 0) return sn; } } return found; } void do_rompractice( CHAR_DATA *ch, char *argument ) { char buf[MAX_STRING_LENGTH]; int sn; if ( IS_NPC(ch) ) return; if ( argument[0] == '\0' ) { int col; col = 0; for ( sn = 0; sn < MAX_SKILL; sn++ ) { if ( skill_table[sn].name == NULL ) break; if ( ch->pcRaceLevel < skill_table[sn].race_level) // || ch->pcdata->learned[sn] < 1 /* skill is not known */) continue; if ( ch->level < skill_table[sn].skill_level ) continue; sprintf( buf, "%-18s %3d%% ", skill_table[sn].name, ch->pcdata->learned[sn] ); send_to_char( buf, ch ); if ( ++col % 3 == 0 ) send_to_char( "\n\r", ch ); } if ( col % 3 != 0 ) send_to_char( "\n\r", ch ); sprintf( buf, "You have %d practice sessions left.\n\r", ch->pcpractice ); send_to_char( buf, ch ); } else { CHAR_DATA *mob; int adept; if ( !IS_AWAKE(ch) ) { send_to_char( "In your dreams, or what?\n\r", ch ); return; } /* for ( mob = ch->in_room->people; mob != NULL; mob = mob->next_in_room ) { if ( IS_NPC(mob) && IS_SET(mob->act, ACT_PRACTICE) ) break; } if ( mob == NULL ) { send_to_char( "You can't do that here.\n\r", ch ); return; } */ if ( ch->pcpractice <= 0 ) { send_to_char( "You have no practice sessions left.\n\r", ch ); return; } if ( ( sn = find_spell( ch,argument ) ) < 0 || ( !IS_NPC(ch) && (ch->pcRaceLevel < skill_table[sn].race_level))) // || ch->pcdata->learned[sn] < 1))) /* skill is not known */ // || skill_table[sn].rating[ch->class] == 0))) { send_to_char( "You can't practice that.\n\r", ch ); return; } // adept = IS_NPC(ch) ? 100 : class_table[ch->class].skill_adept; adept = 75; if ( ch->pcdata->learned[sn] >= adept ) { sprintf( buf, "You are already learned at %s.\n\r", skill_table[sn].name ); send_to_char( buf, ch ); } else { ch->pcpractice--; ch->pcdata->learned[sn] += 5; // int_app[get_curr_int(ch)].learn / // skill_table[sn].rating[ch->class]; if ( ch->pcdata->learned[sn] < adept ) { act( "You practice $T.", ch, NULL, skill_table[sn].name, TO_CHAR ); act( "$n practices $T.", ch, NULL, skill_table[sn].name, TO_ROOM ); } else { ch->pcdata->learned[sn] = adept; act( "You are now learned at $T.", ch, NULL, skill_table[sn].name, TO_CHAR ); act( "$n is now learned at $T.", ch, NULL, skill_table[sn].name, TO_ROOM ); } } } return; } char *num_punct(int foo) { int index,index_new,rest; char buf[16]; static char buf_new[16]; sprintf(buf,"%d",foo); rest = strlen(buf)%3; for (index=index_new=0;index<strlen(buf);index++,index_new++) { if (index!=0 && (index-rest)%3==0 ) { buf_new[index_new]=','; index_new++; buf_new[index_new]=buf[index]; } else buf_new[index_new] = buf[index]; } buf_new[index_new]='\0'; return buf_new; } void do_jail( CHAR_DATA *ch, char *argument ) { char arg[MAX_INPUT_LENGTH]; char arg2[MSL]; char buf[MAX_STRING_LENGTH]; CHAR_DATA *victim; int jtime; argument = one_argument( argument, arg ); argument = one_argument( argument, arg2 ); if ( arg[0] == '\0' ) { send_to_char( "Jail whom?\n\r", ch ); return; } if ( ( victim = get_char_world( ch, arg ) ) == NULL ) { send_to_char( "They aren't here.\n\r", ch ); return; } if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } /*if ( get_trust( victim ) > get_trust( ch ) ) { send_to_char( "You failed.\n\r", ch ); return; }*/ //How long do you want them jailed? if(is_number(arg2)){ jtime = atoi( arg2 ); } else{ jtime = 120; } victim->jailtime = jtime; // if((IS_SET(ch->newbits2, PLR_UINVIS) || IS_SET(ch->act, PLR_WIZINVIS)) && ch->level > 6) // { // sprintf(buf,"#C%s #Lgets beaten half to death by an Immortal, then is led to #0prison#l.", victim->name); // do_info(ch,buf); // } // { sprintf(buf,"#C%s #Lgets beaten half to death by %s, then is led to #0prison#l.", victim->name,ch->name); do_info(ch, buf);// } send_to_char( "OK.\n\r", ch ); stop_fighting(victim,TRUE); do_transfer(victim, "self 5"); SET_BIT(victim->newbits2, IS_JAILED); return; } void do_freechar( CHAR_DATA *ch, char *argument ) { char arg[MAX_INPUT_LENGTH]; char buf[MAX_STRING_LENGTH]; CHAR_DATA *victim; one_argument( argument, arg ); if ( arg[0] == '\0' ) { send_to_char( "Unjail whom?\n\r", ch ); return; } if ( ( victim = get_char_world( ch, arg ) ) == NULL ) { send_to_char( "They aren't here.\n\r", ch ); return; } if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } sprintf(buf,"#y%s #Lhas been released from #0jail#l.#n", victim->name); REMOVE_BIT(victim->newbits2, IS_JAILED); do_info(ch, buf); send_to_char( "OK.\n\r", ch ); stop_fighting(victim,TRUE); victim->jailtime = -1; do_transfer(victim, "self 3054"); return; } void do_warden( CHAR_DATA *ch, char *argument ) { char buf[MSL]; CHAR_DATA *gch; if( IS_NPC(ch)) return; stc("#R[#r--#r------------#r---#RWarden's List#r---------#r----------#R]#n\n\r",ch); stc("#R[#r #yName #r| #RTime #r| #RType #R]#n\n\r",ch); stc("#R[#r--#r------------#r------#r------------#r-------#r----------#R]#n\n\r",ch); for(gch=char_list;gch != NULL;gch=gch->next){ if(IS_NPC(gch)) continue; if( (gch->jailtime <= 0 && gch->in_room->vnum != 10162) && gch->siletime <= 0 && gch->freetime <= 0 && gch->hallutime <= 0 ) continue; if(gch->jailtime > 0){ sprintf(buf,"#R[ #y%-12s #r| #R%-15d #r| #R%-14s #R]#n\n\r",gch->pcdata->switchname,gch->jailtime,"Jail"); stc(buf,ch); } else if(gch->in_room->vnum == 10162){ sprintf(buf,"#R[ #y%-12s #r| #R%-15s #r| #R%-14s #R]#n\n\r",gch->pcdata->switchname,"No Time Set","Jail"); stc(buf,ch); } if(gch->hallutime > 0){ sprintf(buf,"#R[ #y%-12s #r| #R%-15d #r| #R%-14s #R]#n\n\r",gch->pcdata->switchname,gch->hallutime,"Hallucination"); stc(buf,ch); } if(gch->siletime > 0){ sprintf(buf,"#R[ #y%-12s #r| #R%-15d #r| #R%-14s #R]#n\n\r",gch->pcdata->switchname,gch->siletime,"Silence"); stc(buf,ch); } if(gch->freetime > 0){ sprintf(buf,"#R[ #y%-12s #r| #R%-15d #r| #R%-14s #R]#n\n\r",gch->pcdata->switchname,gch->freetime,"Freeze"); stc(buf,ch); } } stc("#R[#r-------------------------------------------------#R]#n\n\r",ch); return; } // dystopia call all void call_all( CHAR_DATA *ch ) { CHAR_DATA *gch; OBJ_DATA *obj; OBJ_DATA *in_obj; CHAR_DATA *victim = NULL; DESCRIPTOR_DATA *d; ROOM_INDEX_DATA *chroom; ROOM_INDEX_DATA *objroom; bool found = FALSE; for ( obj = object_list; obj != NULL; obj = obj->next ) { if ( obj->questowner == NULL || strlen(obj->questowner) < 2 || str_cmp( ch->pcdata->switchname, obj->questowner ) || obj->item_type == ITEM_PAGE) continue; found = TRUE; for ( in_obj = obj; in_obj->in_obj != NULL; in_obj = in_obj->in_obj ) ; if (in_obj->carried_by != NULL) { if (in_obj->carried_by == ch) continue; if ((gch = in_obj->carried_by) != NULL) { if (gch->desc && gch->desc->connected != CON_PLAYING) continue; } } if (obj->carried_by != NULL && obj->carried_by != ch) { if (obj->carried_by == ch || obj->carried_by->desc == NULL || obj->carried_by->desc->connected != CON_PLAYING) { if (!IS_NPC(obj->carried_by)) return; } act("$p suddenly vanishes from your hands!",obj->carried_by,obj,NULL,TO_CHAR); act("$p suddenly vanishes from $n's hands!",obj->carried_by,obj,NULL,TO_ROOM); SET_BIT(obj->carried_by->extra, EXTRA_CALL_ALL); obj_from_char(obj); } else if (obj->in_room != NULL) { chroom = ch->in_room; objroom = obj->in_room; char_from_room(ch); char_to_room(ch,objroom); act("$p vanishes from the ground!",ch,obj,NULL,TO_ROOM); if (chroom == objroom) act("$p vanishes from the ground!",ch,obj,NULL,TO_CHAR); char_from_room(ch); char_to_room(ch,chroom); obj_from_room(obj); } else if (obj->in_obj != NULL) obj_from_obj(obj); else continue; obj_to_char(obj,ch); if (IS_SET(obj->extra_flags,ITEM_SHADOWPLANE)) REMOVE_BIT(obj->extra_flags,ITEM_SHADOWPLANE); if (!IS_HEAD(ch, LOST_HEAD)) { act("$p materializes in your hands.",ch,obj,NULL,TO_CHAR); act("$p materializes in $n's hands.",ch,obj,NULL,TO_ROOM); } } if ( !found && !IS_HEAD(ch, LOST_HEAD) ) send_to_char( "Nothing happens.\n\r", ch ); for ( d = descriptor_list; d != NULL; d = d->next ) { if ( d->connected != CON_PLAYING ) continue; if ( (victim = d->character) == NULL ) continue; if ( IS_NPC(victim) ) continue; if ( ch != victim && !IS_EXTRA(victim,EXTRA_CALL_ALL) ) continue; REMOVE_BIT(victim->extra, EXTRA_CALL_ALL); do_autosave(victim,""); } return; } char *getCurrRanking( CHAR_DATA *ch, int pRank ) { static char rank[MAX_STRING_LENGTH]; rank[0] = '\0'; switch( pRank ) { case 0: strcat( rank, "Serf" ); break; case 1: strcat( rank, "Peasant" ); break; case 2: strcat( rank, "Apprentice" ); break; case 3: strcat( rank, "Wanderer" ); break; case 4: strcat( rank, "Explorer" ); break; case 5: strcat( rank, "Adventurer" ); break; case 6: strcat( rank, "Veteran" ); break; case 7: strcat( rank, "Champion" ); break; case 8: strcat( rank, "Master" ); break; case 9: strcat( rank, "Mystic" ); break; case 10: strcat( rank, "Ancient" ); break; case 11: strcat( rank, "Seer" ); break; case 12: strcat( rank, "Savior" ); break; case 13: strcat( rank, "Myth" ); break; case 14: strcat( rank, "Legend" ); break; case 15: strcat( rank, "Forgotten" ); break; case 16: strcat( rank, "Chosen" ); break; case 17: strcat( rank, "Avatar" ); break; case 18: strcat( rank, "Omnipotent" ); break; case 19: strcat( rank, "Hero" ); break; case 20: strcat( rank, "Warlord" ); break; case 21: strcat( rank, "Demi-God" ); break; default: strcat( rank, "Invalid Rank" ); break; } return rank; } void do_nuke( CHAR_DATA *ch, char *argument) { char strsave[MAX_INPUT_LENGTH]; CHAR_DATA *victim; char arg[MAX_INPUT_LENGTH]; char buf[MAX_STRING_LENGTH]; one_argument(argument,arg); if (str_cmp(ch->pcdata->switchname, "Xrakisis")) { sprintf( buf, "ONLY FOR XRAK!'", ch->name); return; } if(arg[0] == '\0') { send_to_char("Syntax: nuke <unlucky bastard>\n\r",ch); return; } if((victim = get_char_world(ch,arg)) == NULL) { send_to_char("Sorry! They have to be logged in.\n\r", ch); return; } if(IS_NPC(victim)) { send_to_char("Sorry! Players only!\n\r",ch); return; } if(IS_IMMORTAL(victim)) { send_to_char("Nice try.. Gonna have to find a different way to do that.",ch); return; } sprintf(strsave,"%s%s",PLAYER_DIR, capitalize(victim->name)); stop_fighting(victim,TRUE); sprintf(buf, "OUCH! %s just nuked %s!", ch->pcdata->switchname,victim->pcdata->switchname); do_info(ch, buf); do_quit(victim, ""); unlink(strsave); return; }