The player not being valid is probably right.
instead of using "wch->next_player" in the for statement, add "CHAR_DATA
*next_player;" at the top of your function. Put "wch = next_player" instead
of "wch = wch->next_player" in the for statement, and add "next_player =
wch->next_player;" as the first line inside the for { }.
- Valnir
----- Original Message -----
From: "Krayzie K" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Tuesday, July 27, 2004 1:15 AM
Subject: RE: tier/remort
> I am thinking that wch->next_player; is not valid any more as the
character
> has been taken out of the player_list when put into the remort process.
>
> I have had this problem before, actually when trying to re-do my remort
> system as well.
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Rick St
Jean
> Sent: Monday, July 26, 2004 10:53 PM
> To: [email protected]
> Subject: Re: tier/remort
>
> Undefined command: "qt". Try "help".
> (gdb) bt
> #0 aggr_update () at update.c:2151
> #1 0x080c030f in update_handler () at update.c:2517
> #2 0x0807a1f5 in game_loop_unix (control=6) at comm.c:1485
> #3 0x08079876 in main (argc=2, argv=0xbffff964) at comm.c:916
> #4 0x40086c57 in ?? ()
>
>
> line 2151 is wch_next = wch->next_player;
>
> At 11:45 PM 7/26/2004, you wrote:
> >You say it's crashing on an update? Why does GDB say that it's crashing
> >over?
> >
> >
> >----- Original Message -----
> >From: "Rick St Jean" <[EMAIL PROTECTED]>
> >To: <[email protected]>
> >Sent: Monday, July 26, 2004 9:21 PM
> >Subject: tier/remort
> >
> >
> > > I am totally stumped, and I know I am getting in over my head.
> > >
> > > I am trying to put in new tier code, that resets a player to level 1
and
> > > allows them
> > > to choose a new path. I was trying to modify some existing tier and
> >remort
> > > code.
> > > The remort code deletes a player file and all data, which is no good
> since
> > > I want
> > > to keep all my skills/spells/stats. It works some of the time as
long
> as
> > > the update
> > > doesn't hit while you are in the tier process. If there is a tick,
and
> > > update runs,
> > > then the code blows up when ever something accesses the player_list.
I
> >cannot
> > > figure how to pull someone out of the list. I set d->connected =
> > > CON_BEGIN_ASCEND;
> > >
> > >
> > > void ascend_complete(CHAR_DATA * ch)
> > > {
> > > DESCRIPTOR_DATA *d;
> > >
> > > if (IS_NPC(ch) || (d = ch->desc) == NULL)
> > > return;
> > >
> > > if (ch->pcdata->confirm_remort)
> > > {
> > > save_char_obj(ch);
> > > stop_fighting(ch, TRUE);
> > > reduce_known_skills(ch);
> > > ch->pcdata->class_remort[ch->class] = TRUE;
> > > ch->pcdata->tier_list[class_table[ch->class].class_type]++;
> > >
> > > d->character = ch;
> > >
> > > ch->level = 1;
> > > ch->exp = 0;
> > > ch->max_hit /= 10;
> > > ch->max_mana /= 10;
> > > ch->max_move /= 10;
> > > ch->max_blood /= 10;
> > > ch->hit = UMIN(ch->hit, ch->max_hit);
> > > ch->mana = UMIN(ch->mana, ch->max_mana);
> > > ch->move = UMIN(ch->move, ch->max_move);
> > > ch->blood = UMIN(ch->blood, ch->max_blood);
> > > ch->pcdata->perm_hit = ch->max_hit;
> > > ch->pcdata->perm_mana = ch->max_mana;
> > > ch->pcdata->perm_move = ch->max_move;
> > >
> > > write_to_buffer( d, "Now beginning the ascention process.\n\r\n\r",
0 );
> > >
> > > d->connected = CON_BEGIN_ASCEND;
> > > ch->pcdata->confirm_remort = FALSE;
> > > return;
> > > }
> > > }
> > >
> > > It bombs on the code below when I am in the nanny CON_BEGIN_ASCEND
> > >
> > > CREF(wch_next, CHAR_NEXT);
> > > for (wch = player_list; wch != NULL; wch = wch_next)
> > > {
> > > wch_next = wch->next_player; <=== bombs here.
> > > if (wch->in_room == NULL || IS_NPC(wch) || wch->level >=
> >LEVEL_IMMORTAL
> > > || wch->in_room == NULL || wch->in_room->area->empty)
> > > continue;
> > >
> > >
> > > --
> > > ROM mailing list
> > > [email protected]
> > > http://www.rom.org/cgi-bin/mailman/listinfo/rom
> > >
>
>
> --
> ROM mailing list
> [email protected]
> http://www.rom.org/cgi-bin/mailman/listinfo/rom
>
>
> --
> ROM mailing list
> [email protected]
> http://www.rom.org/cgi-bin/mailman/listinfo/rom
>