#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" /* * cmd_makerig() * * Makes an item of specific type */ void cmd_makerig (CHAR_DATA * ch, char *argument) { char arg1[MSL]; char arg2[MSL]; char arg3[MSL]; OBJ_DATA * obj; int material; int item; argument = one_argument(argument, arg1); argument = one_argument(argument, arg2); argument = one_argument(argument, arg3); if (arg1[0] == '\0' || arg2[0] == '\0' || arg3[0] == '\0') { ptc(ch, " Syntax: makerig <type> <material> <name>\n"); ptc(ch, " Valid types are:\n"); ptc(ch, " weapon, armor, wizscroll, priscroll, potion_norm\n"); ptc(ch, " potion_heal, beer, food, gem\n"); return; } if (!str_prefix(arg1, "weapon")) { material = rig_material_lookup(arg2); item = rig_weapon_lookup(arg3); if (material == -1 || item == -1) { ptc(ch, "Error, invalid material/item.\n"); return; } obj = create_object (get_obj_index (30), 0); create_weapon(obj, item, material, 1, FALSE); obj_to_char (obj, ch); ptc(ch, "You have created a %s\n", obj->short_descr); return; } if (!str_prefix(arg1, "armor")) { material = rig_material_lookup(arg2); item = rig_armor_lookup(arg3); if (material == -1 || item == -1) { ptc(ch, "Error, invalid material/item.\n"); return; } obj = create_object (get_obj_index (30), 0); create_armor(obj, item, material, 1, FALSE); obj_to_char (obj, ch); ptc(ch, "You have created a %s\n", obj->short_descr); return; } if (!str_prefix(arg1, "wizscroll")) { item = rig_wizscroll_lookup(arg2); if (item == -1) { ptc(ch, "Error, invalid material/item.\n"); return; } obj = create_object (get_obj_index (30), 0); create_wizscroll(obj, item); obj_to_char (obj, ch); ptc(ch, "You have created a %s\n", obj->short_descr); return; } if (!str_prefix(arg1, "priscroll")) { item = rig_priscroll_lookup(arg2); if (item == -1) { ptc(ch, "Error, invalid material/item.\n"); return; } obj = create_object (get_obj_index (30), 0); create_priscroll(obj, item); obj_to_char (obj, ch); ptc(ch, "You have created a %s\n", obj->short_descr); return; } if (!str_prefix(arg1, "potion_norm")) { item = rig_potion_lookup(arg2); if (item == -1) { ptc(ch, "Error, invalid material/item.\n"); return; } obj = create_object (get_obj_index (30), 0); create_potion(obj, item); obj_to_char (obj, ch); ptc(ch, "You have created a %s\n", obj->short_descr); return; } if (!str_prefix(arg1, "potion_heal")) { item = rig_potion_heal_lookup(arg2); if (item == -1) { ptc(ch, "Error, invalid material/item.\n"); return; } obj = create_object (get_obj_index (30), 0); create_potion_heal(obj, item); obj_to_char (obj, ch); ptc(ch, "You have created a %s\n", obj->short_descr); return; } if (!str_prefix(arg1, "beer")) { item = rig_beer_lookup(arg2); if (item == -1) { ptc(ch, "Error, invalid material/item.\n"); return; } obj = create_object (get_obj_index (30), 0); create_beer(obj, item); obj_to_char (obj, ch); ptc(ch, "You have created a %s\n", obj->short_descr); return; } if (!str_prefix(arg1, "food")) { item = rig_food_lookup(arg2); if (item == -1) { ptc(ch, "Error, invalid material/item.\n"); return; } obj = create_object (get_obj_index (30), 0); create_food(obj, item); obj_to_char (obj, ch); ptc(ch, "You have created a %s\n", obj->short_descr); return; } if (!str_prefix(arg1, "gem")) { item = atoi(arg2); if (item == -1) { ptc(ch, "Error, invalid material/item.\n"); return; } obj = create_object (get_obj_index (30), 0); create_gem(obj, item); obj_to_char (obj, ch); ptc(ch, "You have created a %s\n", obj->short_descr); return; } else { cmd_makerig(ch, ""); return; } return; } /* * cmd_listrig() * * Immortal utility to list possible objects */ void cmd_listrig(CHAR_DATA * ch, char *argument) { char arg1[MSL]; int count, i; argument = one_argument(argument, arg1); if (arg1[0] == '\0') { ptc(ch, "Syntax: listrig <type>\n"); ptc(ch, " Valid types are:\n"); ptc(ch, " Weapon, armor, material, wizscroll, food\n"); ptc(ch, " priscroll, potion_norm, potion_heal, beer\n"); ptc(ch, " clothing, clothing_exp\n"); return; } if (!str_prefix(arg1, "weapon")) { count = rig_weapon_max(); ptc(ch, " Displaying list of Weapons: (total is %d)\n", count); ptc(ch, " Name Type Min Max Noun Wght Cost\n"); for (i = 0; rig_weapons_table[i].name != NULL; i++) { ptc(ch, "%-25s %-10s %-3d %-3d %-7s %-4d %-4d\n", rig_weapons_table[i].name, weapontype_lookup(rig_weapons_table[i].value[0]), rig_weapons_table[i].value[1], rig_weapons_table[i].value[2], attack_table[rig_weapons_table[i].value[3]].noun, rig_weapons_table[i].weight, rig_weapons_table[i].cost); } return; } if (!str_prefix(arg1, "armor")) { count = rig_armor_max(); ptc(ch, " Displaying list of Armor: (total is %d)\n", count); ptc(ch, " Name Location AC Wght Cost\n"); for (i = 0; rig_armor_table[i].name != NULL; i++) { ptc(ch, "%-25s %-10s %-3d%-4d %-4d\n", rig_armor_table[i].short_descr, wear_bit_name (rig_armor_table[i].wear_flags), rig_armor_table[i].armor_class, rig_armor_table[i].weight, rig_armor_table[i].cost); } return; } if (!str_prefix(arg1, "clothing")) { count = rig_clothing_max(); ptc(ch, " Displaying list of Clothing: (total is %d)\n", count); ptc(ch, " Name Location Wght Cost\n"); for (i = 0; rig_armor_table[i].name != NULL; i++) { ptc(ch, "%-35s %-10s %-4d %-4d\n", rig_clothing_table[i].name, wear_bit_name (rig_clothing_table[i].wear_flags), rig_clothing_table[i].weight, rig_clothing_table[i].cost); } return; } if (!str_prefix(arg1, "clothing_exp")) { count = rig_clothing_exp_max(); ptc(ch, " Displaying list of clothing (Expensive): (total is %d)\n", count); ptc(ch, " Name Location Wght Cost\n"); for (i = 0; rig_armor_table[i].name != NULL; i++) { ptc(ch, "%-35s %-10s %-4d %-4d\n", rig_clothing_exp_table[i].name, wear_bit_name (rig_clothing_exp_table[i].wear_flags), rig_clothing_exp_table[i].weight, rig_clothing_exp_table[i].cost); } return; } if (!str_prefix(arg1, "material")) { count = rig_material_max(); ptc(ch, " Displaying list of Materials: (total is %d)\n", count); ptc(ch, "Pre Name Armor Wpn Arm Material Wght Cost\n"); for (i = 0; rig_material_table[i].name != NULL; i++) { ptc(ch, "%-2s %-25s %-5s %-3d %-3d %-7s %-3d%s %-3d%s\n", rig_material_table[i].prefix, rig_material_table[i].name, truefalse(rig_material_table[i].armor_only), rig_material_table[i].weapon_damage, rig_material_table[i].armor_bonus, armortype_lookup(rig_material_table[i].armor_type), rig_material_table[i].weight_multi, "%", rig_material_table[i].cost_multi, "%"); } return; } if (!str_prefix(arg1, "wizscroll")) { count = rig_wizscroll_max(); ptc(ch, " Displaying list of Wizard Scrolls : (total is %d)\n", count); ptc(ch, "Name Cost\n"); for (i = 0; rig_wizscroll_table[i].name != NULL; i++) { ptc(ch, "%-25s %-5d\n", rig_wizscroll_table[i].name, rig_wizscroll_table[i].cost); } return; } if (!str_prefix(arg1, "priscroll")) { count = rig_priscroll_max(); ptc(ch, " Displaying list of Priest Scrolls : (total is %d)\n", count); ptc(ch, "Name Cost\n"); for (i = 0; rig_priscroll_table[i].name != NULL; i++) { ptc(ch, "%-25s %-5d\n", rig_priscroll_table[i].name, rig_priscroll_table[i].cost); } return; } if (!str_prefix(arg1, "potion_norm")) { count = rig_potion_max(); ptc(ch, " Displaying list of Normal Potions : (total is %d)\n", count); ptc(ch, "Name Cost\n"); for (i = 0; rig_potion_table[i].name != NULL; i++) { ptc(ch, "%-25s %-5d\n", rig_potion_table[i].name, rig_potion_table[i].cost); } return; } if (!str_prefix(arg1, "potion_heal")) { count = rig_potion_heal_max(); ptc(ch, " Displaying list of Healing Potions : (total is %d)\n", count); ptc(ch, "Name Cost\n"); for (i = 0; rig_potion_heal_table[i].name != NULL; i++) { ptc(ch, "%-25s %-5d\n", rig_potion_heal_table[i].name, rig_potion_heal_table[i].cost); } return; } if (!str_prefix(arg1, "beer")) { count = rig_beer_max(); ptc(ch, " Displaying list of Beer : (total is %d)\n", count); ptc(ch, "Name Cost\n"); for (i = 0; rig_beer_table[i].name != NULL; i++) { ptc(ch, "%-25s %-5d\n", rig_beer_table[i].name, rig_beer_table[i].cost); } return; } if (!str_prefix(arg1, "food")) { count = rig_food_max(); ptc(ch, " Displaying list of food : (total is %d)\n", count); ptc(ch, "Name Cost\n"); for (i = 0; rig_food_table[i].name != NULL; i++) { ptc(ch, "%-25s %-5d\n", rig_food_table[i].name, rig_food_table[i].cost); } return; } if (!str_prefix(arg1, "test")) { OBJ_DATA * obj; obj = create_object (get_obj_index (30), 0); create_armor(obj, 1, rig_material_lookup("leather"), 1, FALSE); obj_to_char (obj, ch); /* for (i = 0; i != 600; i++) { obj = create_object (get_obj_index (30), 0); create_gem(obj, 1); obj_to_char (obj, ch); } */ stc("Done.\n", ch); return; } else { cmd_listrig(ch, ""); return; } return; }