Login
User Name:

Password:



Register
Forgot your password?
Vote for Us!
auth_update crash
Dec 23, 2017, 10:15 pm
By Remcon
check_tumble
Dec 18, 2017, 7:21 pm
By Remcon
parse description bug
Dec 15, 2017, 10:08 pm
By Remcon
Couple bugs
Dec 12, 2017, 5:42 pm
By Remcon
Bug in disarm( )
Nov 12, 2017, 6:54 pm
By GatewaySysop
LoP 1.46
Author: Remcon
Submitted by: Remcon
LOP 1.45
Author: Remcon
Submitted by: Remcon
LOP Heroes Edition
Author: Vladaar
Submitted by: Vladaar
Heroes sound extras
Author: Vladaar
Submitted by: Vladaar
6Dragons 4.3
Author: Vladaar
Submitted by: Vladaar
Users Online
CommonCrawl, Yandex, Remcon

Members: 1
Guests: 10
Stats
Files
Topics
Posts
Members
Newest Member
478
3,708
19,242
613
bastian
Today's Birthdays
Evoru (32)
Related Links
» SmaugMuds.org » General » General Discussions » SWFotEFUSS/SWRFUSS Resets Iss...
Forum Rules | Mark all | Recent Posts

SWFotEFUSS/SWRFUSS Resets Issue
< Newer Topic :: Older Topic >

Pages:<< prev 1 next >>
Post is unread #1 Aug 26, 2009, 8:18 am
Go to the top of the page
Go to the bottom of the page

Kayle
Off the Edge of the Map
GroupAdministrators
Posts1,195
JoinedMar 21, 2006

So, during my fiddling with making a Star Wars Mud lately, I've discovered resets are not working in SWRFUSS and SWFotEFUSS. THey have all the same bugfixes that SmaugFUSS has, but things are resetting in SmaugFUSS and not the Star Wars branches. The only time they reset is on hotboot. THey don't appear to be resetting any other time. Using "reset area" doesn't make them spawn. And there appear to be no reset messages displaying either. At least not on my copy of SWFotEFUSS.

I've compared all the reset code between all three bases, and it all looks pretty much the same. Which is what has me further perplexed. How is the same code, producing varied results? Any ideas, pointers towards where to look and what to try is appreciated, I'd like to get this issue sorted out.
       
Post is unread #2 Aug 26, 2009, 12:30 pm
Go to the top of the page
Go to the bottom of the page

Remcon
Geomancer
GroupAdministrators
Posts1,868
JoinedJul 26, 2005

Well a quick look at swr13fuss says that you might need to look at http://www.smaugmuds.org/index.php?a=topic&t=3758 and see if that helps. There is no just a normal IS_NPC check that calls update_room_reset in extract_char in handler.c. Might need to check the reset_frequency part also.
       
Post is unread #3 Aug 26, 2009, 12:39 pm
Go to the top of the page
Go to the bottom of the page

Kayle
Off the Edge of the Map
GroupAdministrators
Posts1,195
JoinedMar 21, 2006

Already double checked all that, they all have the listed fixes in them.
       
Post is unread #4 Aug 26, 2009, 1:43 pm
Go to the top of the page
Go to the bottom of the page

Remcon
Geomancer
GroupAdministrators
Posts1,868
JoinedJul 26, 2005

not the one I just downloaded didn't
/*
 * Extract a char from the world.
 */
void extract_char( CHAR_DATA * ch, bool fPull )
{
   CHAR_DATA *wch;
   OBJ_DATA *obj;
   ROOM_INDEX_DATA *location;
   REL_DATA *RQueue, *rq_next;

   if( !ch )
   {
      bug( "%s: NULL ch.", __FUNCTION__ );
      return;  /* who removed this line? */
   }

   if( !ch->in_room )
   {
      bug( "%s: NULL room.", __FUNCTION__ );
      return;
   }

   if( ch == supermob )
   {
      bug( "%s: ch == supermob!", __FUNCTION__ );
      return;
   }

   if( char_died( ch ) )
   {
      bug( "%s: %s already died!", __FUNCTION__, ch->name );
      return;
   }

   if( ch == cur_char )
      cur_char_died = TRUE;
   /*
    * shove onto extraction queue 
    */
   queue_extracted_char( ch, fPull );

   for( RQueue = first_relation; RQueue; RQueue = rq_next )
   {
      rq_next = RQueue->next;
      if( fPull && RQueue->Type == relMSET_ON )
      {
         if( ch == RQueue->Subject )
            ( ( CHAR_DATA * ) RQueue->Actor )->dest_buf = NULL;
         else if( ch != RQueue->Actor )
            continue;
         UNLINK( RQueue, first_relation, last_relation, next, prev );
         DISPOSE( RQueue );
      }
   }

   if( gch_prev == ch )
      gch_prev = ch->prev;

   if( fPull && !IS_SET( ch->act, ACT_POLYMORPHED ) )
      die_follower( ch );

   stop_fighting( ch, TRUE );

   if( ch->mount )
   {
      update_room_reset( ch, TRUE );
      REMOVE_BIT( ch->mount->act, ACT_MOUNTED );
      ch->mount = NULL;
      ch->position = POS_STANDING;
   }

   if( IS_NPC( ch ) && IS_SET( ch->act, ACT_MOUNTED ) )
   {
      for( wch = first_char; wch; wch = wch->next )
      {
         if( wch->mount == ch )
         {
            wch->mount = NULL;
            wch->position = POS_STANDING;
         }
      }
      REMOVE_BIT( ch->act, ACT_MOUNTED );
   }

   while( ( obj = ch->last_carrying ) != NULL )
      extract_obj( obj );

   char_from_room( ch );

   if( !fPull )
   {
      location = NULL;

      if( !location )
         location = get_room_index( wherehome( ch ) );

      if( !location )
         location = get_room_index( 1 );

      char_to_room( ch, location );

      act( AT_MAGIC, "$n appears from some strange swirling mists!", ch, NULL, NULL, TO_ROOM );
      ch->position = POS_RESTING;
      return;
   }

   if( IS_NPC( ch ) )
   {
      --ch->pIndexData->count;
      --nummobsloaded;
   }

   if( ch->desc && ch->desc->original && IS_SET( ch->act, ACT_POLYMORPHED ) )
      do_revert( ch, "" );

   if( ch->desc && ch->desc->original )
      do_return( ch, "" );

   if( ch->switched && ch->switched->desc )
      do_return( ch->switched, "" );

   for( wch = first_char; wch; wch = wch->next )
      if( wch->reply == ch )
         wch->reply = NULL;

   UNLINK( ch, first_char, last_char, next, prev );

   if( ch->desc )
   {
      if( ch->desc->character != ch )
         bug( "Extract_char: char's descriptor points to another char", 0 );
      else
      {
         ch->desc->character = NULL;
         close_socket( ch->desc, FALSE );
         ch->desc = NULL;
      }
   }

   return;
}

Straight out the downloaded swr13fuss.tgz
so try this
find
   if( ch->mount )
   {
      update_room_reset( ch, TRUE );
      REMOVE_BIT( ch->mount->act, ACT_MOUNTED );
      ch->mount = NULL;
      ch->position = POS_STANDING;
   }

after that add
   if( IS_NPC( ch ) )
      update_room_reset( ch, TRUE );

and in db.c in swr13fuss find
void load_area( FILE * fp )
{
   AREA_DATA *pArea;

   CREATE( pArea, AREA_DATA, 1 );
   pArea->first_room = pArea->last_room = NULL;
   pArea->next_on_planet = NULL;
   pArea->prev_on_planet = NULL;
   pArea->planet = NULL;
   pArea->name = fread_string_nohash( fp );
   pArea->author = STRALLOC( "unknown" );
   pArea->filename = str_dup( strArea );
   pArea->age = 15;
   pArea->nplayer = 0;
   pArea->low_r_vnum = 0;
   pArea->low_o_vnum = 0;
   pArea->low_m_vnum = 0;
   pArea->hi_r_vnum = 0;
   pArea->hi_o_vnum = 0;
   pArea->hi_m_vnum = 0;
   pArea->low_soft_range = 0;
   pArea->hi_soft_range = MAX_LEVEL;
   pArea->low_hard_range = 0;
   pArea->hi_hard_range = MAX_LEVEL;

   LINK( pArea, first_area, last_area, next, prev );
   top_area++;
   return;
}

after the pArea->age = 15 add in the pArea->reset_frequency = 15;

That might help out some and if it still has problems let me know
       
Post is unread #5 Aug 26, 2009, 2:04 pm
Go to the top of the page
Go to the bottom of the page

Remcon
Geomancer
GroupAdministrators
Posts1,868
JoinedJul 26, 2005

looked at a fresh download of swfote14fuss and it has what it says to put in db.c but it also is missing the part about update_room_reset in handler.c (Yes it has one) but should be one inside of a just IS_NPC( ch ) if check.
       
Post is unread #6 Aug 27, 2009, 4:14 am
Go to the top of the page
Go to the bottom of the page

Kayle
Off the Edge of the Map
GroupAdministrators
Posts1,195
JoinedMar 21, 2006

That cleared it up, Thanks Remy. Not sure how I managed to miss that this stuff was missing. =/ That'll teach me to look at things while exhausted.
       
Post is unread #7 Aug 27, 2009, 4:34 am
Go to the top of the page
Go to the bottom of the page

Kayle
Off the Edge of the Map
GroupAdministrators
Posts1,195
JoinedMar 21, 2006

Oddly enough, now that that's fixed, it's still not displaying reset messages when the areas reset...?
       
Post is unread #8 Aug 27, 2009, 7:37 am
Go to the top of the page
Go to the bottom of the page

Remcon
Geomancer
GroupAdministrators
Posts1,868
JoinedJul 26, 2005

Well all the code looks fine, my guess would be that some of them don't have reset messages but maybe they are being set to "", which means not NULL so it tries to send it and just sends "\n\r". I might fire these up later and check it all just to see what all problems I can find :).
       
Post is unread #9 Aug 27, 2009, 8:12 am   Last edited Aug 27, 2009, 8:18 am by Kayle
Go to the top of the page
Go to the bottom of the page

Kayle
Off the Edge of the Map
GroupAdministrators
Posts1,195
JoinedMar 21, 2006

Please do. lol They're so behind in updates.

[Edit:] Also, Even the ones that have user specified reset messages aren't showing up. At least as far as FotEFUSS goes. I haven't played much with SWRFUSS yet.
       
Post is unread #10 Aug 27, 2009, 4:41 pm
Go to the top of the page
Go to the bottom of the page

Remcon
Geomancer
GroupAdministrators
Posts1,868
JoinedJul 26, 2005

Well I would have already gotten around to testing the reset thing but spent most the day getting it to compile in cygwin lol. At least no one else will have to go through it though. (Still have to check the SWRFUSS code to see if it gives a good clean compile). And then I'll take a look at the resetmsg problem and see if I notice other problems that need addressed as well.
       
Post is unread #11 Aug 28, 2009, 3:55 pm
Go to the top of the page
Go to the bottom of the page

Remcon
Geomancer
GroupAdministrators
Posts1,868
JoinedJul 26, 2005

Looks like it should work fine in swrfuss and it compiled clean on cygwin so unless any problems are noticed I'll leave that code alone for now :)
       
Pages:<< prev 1 next >>