James Cress wrote:
>
> I would like to adjust the starting eq for players. Currently, new players
> are buck naked and defensless. I've been able to set, adjust, and generally
> play with the code at will but I have not been able to track down the info I
> need to do this. I am running 3.0 bpl17 on a Win98 machine. It should be
> obvious but...
> _________________________________________________________________________
This is one of Daniel's code I believe, which I might have changed a
little. I'll go snippet form here, though I'm sure you can find the
actual thing in the archives.
// Before the init_char function add:
/* start new characters off equipped with objects for their class */
void new_eq(struct char_data *ch)
{
int b_mage = (1 << CLASS_MAGIC_USER);
int b_cleric = (1 << CLASS_CLERIC);
int b_thief = (1 << CLASS_THIEF);
int b_warrior = (1 << CLASS_WARRIOR);
int b_class = (1 << GET_CLASS(ch));
int inv = -1, cont = -2;
int bag_vnum = 19;
struct obj_data * bag;
/* THIS IS JUST AN EXAMPLE LIST */
int eq_list[][4] = {
/* class(es) , vnum, amt, to */
{ 0 , 20, 1, inv }, /* water skin
*/
{ b_warrior , 22, 1, WEAR_WIELD }, /* sword
*/
{ b_cleric , 23, 1, WEAR_WIELD }, /* mace
*/
{ b_thief , 24, 1, WEAR_WIELD }, /* dagger
*/
{ b_mage , 25, 1, WEAR_WIELD }, /* staff
*/
{ b_warrior , 26, 1, WEAR_BODY }, /* chain mail
*/
{ b_cleric | b_thief , 27, 1, WEAR_BODY }, /* leather jerkin
*/
{ b_mage , 28, 1, WEAR_ABOUT }, /* robes
*/
{ b_cleric | b_thief , 30, 1, WEAR_ABOUT }, /* travel cloak
*/
{ 0 , 10, 4, cont }, /* bread (in bag)
*/
{ -1, -1, -1, -1 } /* ALWAYS LAST */
};
int i, j;
bag = read_object(bag_vnum, VIRTUAL);
obj_to_char(bag, ch);
for (i = 0; eq_list[i][1] >= 0; i++)
if (!eq_list[i][0] || IS_SET(eq_list[i][0], b_class)) {
for (j = 0; j < eq_list[i][2]; j++) {
struct obj_data * tmp = read_object(eq_list[i][1], VIRTUAL);
if (!tmp) break;
if (eq_list[i][3] == cont && bag)
obj_to_obj(tmp, bag);
else if (eq_list[i][3] >= 0 && !GET_EQ(ch, eq_list[i][3]))
equip_char(ch, tmp, eq_list[i][3]);
else
obj_to_char(tmp, ch);
}
}
}
// And in class.c at the bottom of do_start under the siteok everyone
thing add:
new_eq(ch);
--
Hope this helps you out. Again, this isn't my code, and if I
mutilated, or something is wrong with this code, feel free to correct me
in it.
--
«¥» Lord Kyu «¥»
--
+---------------------------------------------------------------+
| FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
| Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
+---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 04/11/01 PDT