#include <sys/types.h> #include <stdio.h> #include <string.h> #include <time.h> #include "merc.h" #include "interp.h" #include "tables.h" #include "rig_tables.h" #include "rig.h" const struct rig_mob_eq_type rig_mob_eq_table[] = { {"none"}, {"newbie_fighter"}, {"newbie_swordangel"}, {"newbie_thief"}, {"newbie_wizard"}, {"newbie_priest"}, {"guard_poor"}, {"guard_norm"}, {"guard_elite"}, {"guard_vandagard"}, {"commoner"}, {"commoner_full"}, {"nobelman"}, {"wizard"}, {"priest"}, {"orc"}, {"elven"}, {"dwarven"}, {"goblin_poor"}, {"goblinish"}, {NULL} }; /* * mob_outfit() * * Not just for mobiles anymore. * This command takes a varity of arguments to create an allout outfit for the mobile * via mobprogs. * * Standard Default Configurations: * - newbie_fighter - Steel Broadsword, 2 pieces leather * - newbie_swordangel - Steel Katana, 4 pieces of leather * - newbie_thief - Steel Shortsword, 3 pieces leather * - newbie_wizard - Steel Dagger, Common Robe, 3 scrolls * - newbie_priest - Wooden Mace, Common Robe, 5 scrolls * - guard_poor - steel weapon/leather armor * - guard_norm - steel weapon/iron armor * - guard_elite - steel weapon/steel armor * - guard_vandagard - elven weapon/elven armor * - commoner - clothing/iron small weapon * - nobelman - expensive clothing/steel or elven+ weapon * - wizard - robes/dagger/scrolls * - priest - robes/mace/scrolls * - orc - orcish armor/orcish weapon * - elven - elven weapon/elven armor * - dwarf - dwarven weapon/dwarven armor * - goblinish - Goblin weapon/Goblin armor * - goblin_poor - Weapon, 25% chance per armor */ int no_outfit; int has_outfit; void log_outfits() { char buf[MSL]; sprintf(buf, "**** STATS **** %d mobiles have outfits", has_outfit); log_string(buf); sprintf(buf, "**** STATS **** %d mobiles do not have outfits", no_outfit); log_string(buf); } void mob_outfit(CHAR_DATA * ch, char *argument) { char arg1[MSL]; OBJ_DATA * obj; int i, max; argument = one_argument(argument, arg1); if (arg1[0] == '\0') { bugf("mob_outfit: invalid argument on mobile %d", IS_NPC (ch) ? ch->pIndexData->vnum : 0); return; } if (!str_prefix(arg1, "no start")) { ++no_outfit; return; } if (!str_prefix(arg1, "none")) { ++no_outfit; return; } ++has_outfit; /* Non-PC stuff here */ if (!IS_NPC(ch)) { /* First, lets give them some food, anywhere from 0 to 3 pieces */ max = number_range(0, 3); for (i = 0; i < max; i++) { obj = create_object (get_obj_index (30), 0); create_food(obj, RIG_RANDOM); obj_to_char (obj, ch); } /* Ok, lets give them a gem, 5% chance */ switch(number_range(0, 100)) { default: break; case 1: case 2: case 3: case 4: case 5: obj = create_object (get_obj_index (30), 0); create_gem(obj, RIG_RANDOM); obj_to_char (obj, ch); break; } } /* * newbie_fighter */ if (!str_prefix(arg1, "newbie_fighter")) { obj = create_object (get_obj_index (30), 0); create_weapon(obj, rig_weapon_lookup("broadsword"), rig_material_lookup("steel"), 1, FALSE); obj_to_char (obj, ch); obj = create_object (get_obj_index (30), 0); create_armor(obj, rig_armor_lookup("curiass"), rig_material_lookup("leather"), 1, FALSE); obj_to_char (obj, ch); obj = create_object (get_obj_index (30), 0); create_armor(obj, rig_armor_lookup("helmet"), rig_material_lookup("leather"), 1, FALSE); obj_to_char (obj, ch); obj = create_object (get_obj_index (30), 0); create_armor(obj, rig_armor_lookup("greaves"), rig_material_lookup("leather"), 1, FALSE); obj_to_char (obj, ch); obj = create_object (get_obj_index (30), 0); create_armor(obj, rig_armor_lookup("left boot"), rig_material_lookup("leather"), 1, FALSE); obj_to_char (obj, ch); return; obj = create_object (get_obj_index (30), 0); create_armor(obj, rig_armor_lookup("right boot"), rig_material_lookup("leather"), 1, FALSE); obj_to_char (obj, ch); return; } /* * newbie_swordangel */ if (!str_prefix(arg1, "newbie_swordangel")) { obj = create_object (get_obj_index (30), 0); create_weapon(obj, rig_weapon_lookup("katana"), rig_material_lookup("steel"), 1, FALSE); obj_to_char (obj, ch); obj = create_object (get_obj_index (30), 0); create_armor(obj, rig_armor_lookup("curiass"), rig_material_lookup("leather"), 1, FALSE); obj_to_char (obj, ch); obj = create_object (get_obj_index (30), 0); create_armor(obj, rig_armor_lookup("helmet"), rig_material_lookup("leather"), 1, FALSE); obj_to_char (obj, ch); obj = create_object (get_obj_index (30), 0); create_armor(obj, rig_armor_lookup("greaves"), rig_material_lookup("leather"), 1, FALSE); obj_to_char (obj, ch); obj = create_object (get_obj_index (30), 0); create_armor(obj, rig_armor_lookup("right boot"), rig_material_lookup("leather"), 1, FALSE); obj_to_char (obj, ch); return; obj = create_object (get_obj_index (30), 0); create_armor(obj, rig_armor_lookup("left boot"), rig_material_lookup("leather"), 1, FALSE); obj_to_char (obj, ch); return; } /* * newbie_fighter */ if (!str_prefix(arg1, "newbie_thief")) { obj = create_object (get_obj_index (30), 0); create_weapon(obj, rig_weapon_lookup("shortsword"), rig_material_lookup("steel"), 1, FALSE); obj_to_char (obj, ch); obj = create_object (get_obj_index (30), 0); create_armor(obj, rig_armor_lookup("curiass"), rig_material_lookup("leather"), 1, FALSE); obj_to_char (obj, ch); obj = create_object (get_obj_index (30), 0); create_armor(obj, rig_armor_lookup("greaves"), rig_material_lookup("leather"), 1, FALSE); obj_to_char (obj, ch); obj = create_object (get_obj_index (30), 0); create_armor(obj, rig_armor_lookup("right boot"), rig_material_lookup("leather"), 1, FALSE); obj_to_char (obj, ch); return; obj = create_object (get_obj_index (30), 0); create_armor(obj, rig_armor_lookup("left boot"), rig_material_lookup("leather"), 1, FALSE); obj_to_char (obj, ch); return; } /* * newbie_wizard */ if (!str_prefix(arg1, "newbie_wizard")) { obj = create_object (get_obj_index (30), 0); create_weapon(obj, rig_weapon_lookup("dagger"), rig_material_lookup("steel"), 1, FALSE); obj_to_char (obj, ch); obj = create_object (get_obj_index (30), 0); create_clothing(obj, rig_clothing_lookup("a common robe"), FALSE, FALSE); obj_to_char (obj, ch); obj = create_object (get_obj_index (30), 0); create_clothing(obj, rig_clothing_lookup("a common shirt"), FALSE, FALSE); obj_to_char (obj, ch); obj = create_object (get_obj_index (30), 0); create_clothing(obj, rig_clothing_lookup("a pair of common pants"), FALSE, FALSE); obj_to_char (obj, ch); obj = create_object (get_obj_index (30), 0); create_wizscroll(obj, RIG_RANDOM); obj_to_char(obj, ch); obj = create_object (get_obj_index (30), 0); create_wizscroll(obj, RIG_RANDOM); obj_to_char(obj, ch); obj = create_object (get_obj_index (30), 0); create_wizscroll(obj, RIG_RANDOM); obj_to_char(obj, ch); return; } /* * newbie_priest */ if (!str_prefix(arg1, "newbie_priest")) { obj = create_object (get_obj_index (30), 0); create_weapon(obj, rig_weapon_lookup("mace"), rig_material_lookup("wooden"), 1, FALSE); obj_to_char (obj, ch); obj = create_object (get_obj_index (30), 0); create_clothing(obj, rig_clothing_lookup("a common robe"), FALSE, FALSE); obj_to_char (obj, ch); obj = create_object (get_obj_index (30), 0); create_clothing(obj, rig_clothing_lookup("a common shirt"), FALSE, FALSE); obj_to_char (obj, ch); obj = create_object (get_obj_index (30), 0); create_clothing(obj, rig_clothing_lookup("a pair of common pants"), FALSE, FALSE); obj_to_char (obj, ch); obj = create_object (get_obj_index (30), 0); create_priscroll(obj, RIG_RANDOM); obj_to_char(obj, ch); obj = create_object (get_obj_index (30), 0); create_priscroll(obj, RIG_RANDOM); obj_to_char(obj, ch); obj = create_object (get_obj_index (30), 0); create_priscroll(obj, RIG_RANDOM); obj_to_char(obj, ch); obj = create_object (get_obj_index (30), 0); create_priscroll(obj, RIG_RANDOM); obj_to_char(obj, ch); obj = create_object (get_obj_index (30), 0); create_priscroll(obj, RIG_RANDOM); obj_to_char(obj, ch); return; } /* * guard_poor */ if (!str_prefix(arg1, "guard_poor")) { obj = create_object (get_obj_index (30), 0); create_weapon(obj, RIG_RANDOM, rig_material_lookup("iron"), 1, FALSE); obj_to_char (obj, ch); for (i = 0; i < rig_armor_max(); i++) { obj = create_object (get_obj_index (30), 0); create_armor(obj, i, rig_material_lookup("leather"), 1, FALSE); obj_to_char (obj, ch); } return; } /* * guard_norm */ if (!str_prefix(arg1, "guard_norm")) { obj = create_object (get_obj_index (30), 0); create_weapon(obj, RIG_RANDOM, rig_material_lookup("steel"), 1, FALSE); obj_to_char (obj, ch); for (i = 0; i < rig_armor_max(); i++) { obj = create_object (get_obj_index (30), 0); create_armor(obj, i, rig_material_lookup("iron"), 1, FALSE); obj_to_char (obj, ch); } return; } /* * guard_elite */ if (!str_prefix(arg1, "guard_elite")) { obj = create_object (get_obj_index (30), 0); create_weapon(obj, RIG_RANDOM, rig_material_lookup("imperial"), 1, FALSE); obj_to_char (obj, ch); for (i = 0; i < rig_armor_max(); i++) { obj = create_object (get_obj_index (30), 0); create_armor(obj, i, rig_material_lookup("imperial"), 1, FALSE); obj_to_char (obj, ch); } return; } /* * guard_vandagard */ if (!str_prefix(arg1, "guard_vandagard")) { obj = create_object (get_obj_index (30), 0); create_weapon(obj, RIG_RANDOM, rig_material_lookup("elven"), 1, FALSE); obj_to_char (obj, ch); for (i = 0; i < rig_armor_max(); i++) { obj = create_object (get_obj_index (30), 0); create_armor(obj, i, rig_material_lookup("elven"), 1, FALSE); obj_to_char (obj, ch); } return; } /* * orc */ if (!str_prefix(arg1, "orc")) { obj = create_object (get_obj_index (30), 0); create_weapon(obj, RIG_RANDOM, rig_material_lookup("orcish"), 1, FALSE); obj_to_char (obj, ch); for (i = 0; i < rig_armor_max(); i++) { obj = create_object (get_obj_index (30), 0); create_armor(obj, i, rig_material_lookup("orcish"), 1, FALSE); obj_to_char (obj, ch); } return; } /* * elven */ if (!str_prefix(arg1, "elven")) { obj = create_object (get_obj_index (30), 0); create_weapon(obj, RIG_RANDOM, rig_material_lookup("elven"), 1, FALSE); obj_to_char (obj, ch); for (i = 0; i < rig_armor_max(); i++) { obj = create_object (get_obj_index (30), 0); create_armor(obj, i, rig_material_lookup("elven"), 1, FALSE); obj_to_char (obj, ch); } return; } /* * dwarven */ if (!str_prefix(arg1, "dwarven")) { obj = create_object (get_obj_index (30), 0); create_weapon(obj, RIG_RANDOM, rig_material_lookup("dwarven"), 1, FALSE); obj_to_char (obj, ch); for (i = 0; i < rig_armor_max(); i++) { obj = create_object (get_obj_index (30), 0); create_armor(obj, i, rig_material_lookup("dwarven"), 1, FALSE); obj_to_char (obj, ch); } return; } /* * Goblinish */ if (!str_prefix(arg1, "goblinish")) { obj = create_object (get_obj_index (30), 0); create_weapon(obj, RIG_RANDOM, rig_material_lookup("goblinish"), 1, FALSE); obj_to_char (obj, ch); for (i = 0; i < rig_armor_max(); i++) { if (number_range(1, 100) <= 40) { obj = create_object (get_obj_index (30), 0); create_armor(obj, i, rig_material_lookup("goblinish"), 1, FALSE); obj_to_char (obj, ch); } } return; } /* * Goblin_poor * * Fewer items */ if (!str_prefix(arg1, "goblin_poor")) { obj = create_object (get_obj_index (30), 0); create_weapon(obj, RIG_RANDOM, rig_material_lookup("goblinish"), 1, FALSE); obj_to_char (obj, ch); for (i = 0; i < rig_armor_max(); i++) { if (number_range(1, 100) < 75) { obj = create_object (get_obj_index (30), 0); create_armor(obj, i, rig_material_lookup("goblinish"), 1, FALSE); obj_to_char (obj, ch); } } return; } /* * commoner */ if (!str_prefix(arg1, "commoner")) { if (number_range(0, 100) <= 80) { obj = create_object (get_obj_index (30), 0); create_weapon(obj, RIG_RANDOM, rig_material_lookup("iron"), 1, FALSE); obj_to_char (obj, ch); } obj = create_object (get_obj_index (30), 0); create_clothing(obj, rig_clothing_lookup("a common robe"), FALSE, FALSE); obj_to_char (obj, ch); obj = create_object (get_obj_index (30), 0); create_clothing(obj, rig_clothing_lookup("a common shirt"), FALSE, FALSE); obj_to_char (obj, ch); obj = create_object (get_obj_index (30), 0); create_clothing(obj, rig_clothing_lookup("a pair of common pants"), FALSE, FALSE); obj_to_char (obj, ch); return; } /* * commoner full * * All equipment */ if (!str_prefix(arg1, "commoner_full")) { if (number_range(0, 100) <= 80) { obj = create_object (get_obj_index (30), 0); create_weapon(obj, RIG_RANDOM, rig_material_lookup("iron"), 1, FALSE); obj_to_char (obj, ch); } for (i = 0; i < rig_clothing_max(); i++) { obj = create_object (get_obj_index (30), 0); create_clothing(obj, i, FALSE, FALSE); obj_to_char (obj, ch); } return; } /* * nobleman */ if (!str_prefix(arg1, "nobleman")) { if (number_range(0, 100) <= 70) { obj = create_object (get_obj_index (30), 0); create_weapon(obj, RIG_RANDOM, rig_material_lookup("ebony"), 1, FALSE); obj_to_char (obj, ch); } for (i = 0; i < rig_clothing_exp_max(); i++) { obj = create_object (get_obj_index (30), 0); create_clothing(obj, i, TRUE, FALSE); obj_to_char (obj, ch); } return; } /* * Wizard */ if (!str_prefix(arg1, "wizard")) { if (number_range(0, 100) <= 25) { obj = create_object (get_obj_index (30), 0); create_weapon(obj, rig_weapon_lookup("staff"), rig_material_lookup("wooden"), 1, FALSE); obj_to_char (obj, ch); } else { obj = create_object (get_obj_index (30), 0); create_weapon(obj, rig_weapon_lookup("dagger"), rig_material_lookup("steel"), 1, FALSE); obj_to_char (obj, ch); } for (i = 0; i < rig_clothing_exp_max(); i++) { obj = create_object (get_obj_index (30), 0); create_clothing(obj, i, TRUE, FALSE); obj_to_char (obj, ch); } return; } /* * Priest */ if (!str_prefix(arg1, "priest")) { if (number_range(0, 100) <= 50) { obj = create_object (get_obj_index (30), 0); create_weapon(obj, rig_weapon_lookup("staff"), rig_material_lookup("wooden"), 1, FALSE); obj_to_char (obj, ch); } else { obj = create_object (get_obj_index (30), 0); create_weapon(obj, rig_weapon_lookup("mace"), rig_material_lookup("wooden"), 1, FALSE); obj_to_char (obj, ch); } for (i = 0; i < rig_clothing_max(); i++) { obj = create_object (get_obj_index (30), 0); create_clothing(obj, i, TRUE, FALSE); obj_to_char (obj, ch); } return; } return; }