static char *armor_types[] = { "leather", "fur", "studded leather", "bronze",
"steel", "chain mail", "silver", "mithril" };
static int armor_mul[] = { 1, 1, 3, 2, 5, 6, 10, 10 };
static int armor_div[] = { 1, 2, 2, 1, 1, 3, 1, 3 };
void wield_random_armor( CHAR_DATA *mob )
{
int item_type = number_range(0, MAX_WEAR - 1); /* template from LIMBO.ARE */
OBJ_INDEX_DATA *pObjIndex = get_obj_index( item_type + 1600 );
OBJ_DATA *obj = create_object( pObjIndex, number_fuzzy( mob->level ) );
int n_adj1 = number_range(0, nelems(adj1)-1);
int n_adj2 = number_range(0, nelems(adj2)-1);
extern bool randomid;
char *name = "bright";
void wield_random_armor( CHAR_DATA *mob )
{
int item_type = number_range(0, MAX_WEAR - 1); /* template from LIMBO.ARE */
OBJ_INDEX_DATA *pObjIndex = get_obj_index( item_type + 1600 );
OBJ_DATA *obj = create_object( pObjIndex, number_fuzzy( mob->level ) );
int n_adj1 = number_range(0, nelems(adj1)-1);
int n_adj2 = number_range(0, nelems(adj2)-1);
extern bool randomid;
char *name = "bright";
// Armor stuff
static char *armor_types[] = { "leather", "fur", "studded leather", "bronze",
"steel", "chain mail", "silver", "mithril" };
static int armor_mul[] = { 1, 1, 3, 2, 5, 6, 10, 10 };
static int armor_div[] = { 1, 2, 2, 1, 1, 3, 1, 3 };
// Weapon stuff
static char *weapon_types[] = { "sword", "sword", "sword", "sword", "sword",
"short sword", "dagger", "dagger", "hammer", "mace", "mace", "whip" };
static int weapon_dam[] = { 3, 3, 3, 3, 3, 11, 11, 11, 0, 7, 7, 4 };
// Trinket stuff
static char *noun[] = { "pebble", "bauble", "stone", "charm", "fetish",
"bone", "trinket" };
char buffer[64];
char buf[MAX_STRING_LENGTH];
if (obj->item_type == ITEM_ARMOR)
{
int ac_type = URANGE(0, mob->level/5, nelems(armor_types)-1);
name = armor_types[ac_type];
obj->weight *= armor_mul[ac_type];
obj->weight /= armor_div[ac_type];
if (number_percent() <= 100)
random_apply(obj, mob);
}
else if (obj->item_type == ITEM_WEAPON)
{
int wea_type = number_range(0, nelems(weapon_types)-1);
name = weapon_types[wea_type];
obj->value[3] = weapon_dam[wea_type];
}
else if (obj->item_type == ITEM_TREASURE)
{
if (number_percent() < mob->level)
{
random_apply(obj, mob);
if (number_percent() <= 100)
random_apply(obj, mob);
}
if (obj->wear_flags & ITEM_HOLD) /* trinket? */
sprintf(buffer, "%s %s %s", adj1[n_adj1],
adj2[n_adj2],
noun[number_range(0, nelems(noun)-1)]);
//random_apply(obj, mob);
else /* no, necklace or something */
sprintf(buffer, "%s %s", adj1[n_adj1],
adj2[n_adj2]);
name = buffer;
random_apply(obj, mob);
}
sprintf( buf, obj->short_descr, name );
STRFREE( obj->short_descr );
obj->short_descr = str_dup( buf );
STRFREE( obj->name );
obj->name = obj->short_descr;
sprintf( buf, "%s rests upon the ground here.",
obj->short_descr );
STRFREE( obj->description );
obj->description = str_dup( buf );
obj->level = 1;
if(randomid)
{
xSET_BIT(obj->extra_flags, ITEM_HAS_MARK);
}
obj_to_char( obj, mob );
equip_char( mob, obj, obj->wear_loc );
}
#define nelems(a) (sizeof (a)/sizeof (a)[0])
URANGE(0, mob->level/5, nelems(armor_types)-1);
URANGE(0, mob->level/5, (int) nelems(armor_types)-1);
Once again, I appreciate the help and advice.
Thanks.