Login
User Name:

Password:



Register
Forgot your password?
Vote for Us!
Bug in disarm( )
Nov 12, 2017, 6:54 pm
By GatewaySysop
Bug in will_fall( )
Oct 23, 2017, 1:35 am
By GatewaySysop
Bug in do_zap( ), do_brandish( )
Oct 18, 2017, 1:52 pm
By GatewaySysop
Bug in get_exp_worth( )
Oct 10, 2017, 1:26 am
By GatewaySysop
Bug in do_drag( )
Oct 8, 2017, 12:40 am
By GatewaySysop
LOP Heroes Edition
Author: Vladaar
Submitted by: Vladaar
Heroes sound extras
Author: Vladaar
Submitted by: Vladaar
6Dragons 4.3
Author: Vladaar
Submitted by: Vladaar
Memwatch
Author: Johan Lindh
Submitted by: Vladaar
Beastmaster 6D sound files
Author: Vladaar
Submitted by: Vladaar
Users Online
CommonCrawl, Google, Yandex, DotBot

Members: 0
Guests: 11
Stats
Files
Topics
Posts
Members
Newest Member
476
3,704
19,231
608
LAntorcha
Today's Birthdays
There are no member birthdays today.
Related Links
» SmaugMuds.org » Codebases » SWFOTE FUSS » SWFotE distribution areas
Forum Rules | Mark all | Recent Posts

SWFotE distribution areas
< Newer Topic :: Older Topic >

Pages:<< prev 1 next >>
Post is unread #1 May 13, 2008, 1:42 pm
Go to the top of the page
Go to the bottom of the page

olive
Fledgling
GroupMembers
Posts8
JoinedMay 13, 2008

Hi,

I'm french and I would like to build a french Star Wars MUD.
I've decided to begin with a SWFotE base. My first goal I think is to translate the existing areas.

So a few questions:
  • Is the area set provided with the SWFotE distribution also maintained in the frame of the FUSS project ?
  • Can the current provided areas be considered as tested and fully-functionnal ?

  • What is the last SWFotE distribution, the FUSS one or the one downloadable on swfote.sourceforge.net ?

  • Finally, I've started to play alone on a test installation of SWFotE. I haven't had any problem regarding the C code. But the areas and especially the newbie area seems to lack things. For example, there aren't any simulator in the Sim training room. As I am a new to mud building, I don't really know how to add such things. Is there additionnal documentation, I meen except the documentation provided with the SWFotE package ?


Thanks very much and sorry for those newbie questions.

P.S. : I am quite good at C programming and I would be happy to contribute to the FUSS projects. My only problem is that I'm a newbie regarding MUD administrative tasks such as adding objects, rooms or areas.
       
Post is unread #2 May 21, 2008, 3:49 pm
Go to the top of the page
Go to the bottom of the page

olive
Fledgling
GroupMembers
Posts8
JoinedMay 13, 2008

Hi,

Sorry for asking again. I finally started with swfotefuss (last version).
I can't figure out how to make simulators work for example in the newbie area. I really don't know how to begin.
In the file newbie.are distributed with swfotefuss, there are rooms called SimV01, SimV02 and so on ... But I don't know what to do so that they are considered as ship simulators.

Help would really be appreciated.

Kind regards,

Olivier
       
Post is unread #3 May 21, 2008, 7:33 pm
Go to the top of the page
Go to the bottom of the page

Keberus
Conjurer
GroupFUSS Project Team
Posts341
JoinedJun 4, 2005

To create a simulator ship

1. Buy the ship
2. use "setship <shipname> flags simulator"
3. use "setship <shipname> owner public"
4. use "setship <shipname> simvnum [vnum of room for the simulator to be in]

The other, considerably easier way is to use this function...
/* Makesimulator sets an already bought ship as a simulator and its simvnum to the room the character is in --Keberus */
void do_makesimulator( CHAR_DATA *ch, char *argument )
{
    SHIP_DATA *ship;

    if( IS_NPC( ch ) || !IS_IMMORTAL( ch ) )
        return;

    if( !argument || ( argument[0] == '\0' ) )
    {
        send_to_char( "&wUsage: &Ymakesimulator &c<&Wshipname&c>\n\r", ch );
        return;
    }

    ship = get_ship( argument );
    if( !ship )
    {
        send_to_char( "No such ship.\n\r", ch );
        return;
    }

    if( IS_SET( ship->flags, SHIP_SIMULATOR ) )
    {
        send_to_char( "That ship is already set as a simulator!\n\r", ch );
        return;
    }
    if( str_cmp( ship->owner, ch->name )  && (ch->top_level < (MAX_LEVEL - 3)) && str_cmp( ship->owner, "public" ) )
    {
        send_to_char( "&YYou can only make a simulator out of a public ship or one of your own!\n\r", ch );
        return;
    }
    STRFREE( ship->owner );
    ship->owner = STRALLOC( "public" );

    SET_BIT( ship->flags, SHIP_SIMULATOR );
    ship->sim_vnum = ch->in_room->vnum;
    ch_printf( ch, "&wThe ship &W%s &wis now set as a simulator with a simvnum of %d.\n\r", ship->name, ship->sim_vnum );
    save_ship( ship );
    return;
}


I think that code should work in stock at that point, I had to change a few things from how I wrote it for my mud. If the code doesn't work...let me know.
       
Post is unread #4 May 27, 2008, 12:59 pm
Go to the top of the page
Go to the bottom of the page

olive
Fledgling
GroupMembers
Posts8
JoinedMay 13, 2008

Hi,

Great! the function you have given works perfectly, and it's simpler than typing all commands.

Still about ship simulators, I have a question. By default, there is nothing in the simulator starsystem. Is it possible to add fake planets for example to help newbies to practice landing ?

As I don't know well the codebase for the moment, I don't know what would happen if I try to add planets with or example just one area allowing to land.

Thanks for your help,
       
Post is unread #5 May 28, 2008, 2:02 pm
Go to the top of the page
Go to the bottom of the page

Keberus
Conjurer
GroupFUSS Project Team
Posts341
JoinedJun 4, 2005


Hi,

Great! the function you have given works perfectly, and it's simpler than typing all commands.

Still about ship simulators, I have a question. By default, there is nothing in the simulator starsystem. Is it possible to add fake planets for example to help newbies to practice landing ?

As I don't know well the codebase for the moment, I don't know what would happen if I try to add planets with or example just one area allowing to land.

Thanks for your help,


You're welcome for the function. I created a 1 room planet and set it's starsystem to simulator, and was able to land on it in my FotE based code
       
Post is unread #6 Jun 2, 2008, 4:14 pm
Go to the top of the page
Go to the bottom of the page

olive
Fledgling
GroupMembers
Posts8
JoinedMay 13, 2008

Hi again,

So ok, I was able to add planets in my simulator starsystem: very nice.

Now I have a new problem regarding area resets. Actually, I have the impression that resets are not working in the distribution of SWFotE FUSS I downloaded on this website (version 1.3 from I think march, 2008). When I'm playing, I never see any reset messages and when I kill mobs, they don't come back after a few minutes. It's very strange because in the SWFotE 2.1.5 from swfote.sourceforge.net which is a very similar codebase, these resets are working. Is it a known issue ?
If not, could you give me some ideas to help me investigating ?

Thank you verh much and sorry if my questions are not interresting. ;)
--
Olivier
       
Post is unread #7 Jun 2, 2008, 6:34 pm
Go to the top of the page
Go to the bottom of the page

Keberus
Conjurer
GroupFUSS Project Team
Posts341
JoinedJun 4, 2005

I think this is a bug I forgot to post....to fix...try this

in handler.c function char_from_room find:
   if( !ch->in_room )
   {
      bug( "Char_from_room: NULL room: %s", ch->name );
      return;
   }


   if( ( obj = get_eq_char( ch, WEAR_LIGHT ) ) != NULL
       && obj->item_type == ITEM_LIGHT && obj->value[2] != 0 && ch->in_room->light > 0 )
      --ch->in_room->light;


change to:
    if( !ch->in_room )
    {
        bug( "Char_from_room: NULL room: %s", ch->name );
        return;
    }

    if( !IS_NPC( ch ) )
        --ch->in_room->area->nplayer;

    if( ( obj = get_eq_char( ch, WEAR_WIELD ) ) != NULL && obj->item_type == ITEM_LIGHT && obj->value[2] != 0 && ch->in_room->light > 0 )
        --ch->in_room->light;


in handler.c in the function char_to_room find:
   LINK( ch, pRoomIndex->first_person, pRoomIndex->last_person, next_in_room, prev_in_room );


   if( ( obj = get_eq_char( ch, WEAR_LIGHT ) ) != NULL && obj->item_type == ITEM_LIGHT && obj->value[2] != 0 )
      ++ch->in_room->light;


and change to:
    LINK( ch, pRoomIndex->first_person, pRoomIndex->last_person, next_in_room, prev_in_room );

    if( !IS_NPC( ch ) )
        ++pRoomIndex->area->nplayer;

    if( ( obj = get_eq_char( ch, WEAR_LIGHT ) ) != NULL && obj->item_type == ITEM_LIGHT && obj->value[2] != 0 )
        ++pRoomIndex->light;


See if that fixes the problem.

Later,
       
Post is unread #8 Jun 3, 2008, 2:16 pm
Go to the top of the page
Go to the bottom of the page

olive
Fledgling
GroupMembers
Posts8
JoinedMay 13, 2008

I'm sorry but unfortunately this doesn't fixe the issue.
In the code you have given, for the function char_to_room you indicate the following code :
if( ( obj = get_eq_char( ch, WEAR_LIGHT ) ) != NULL && obj->item_type == ITEM_LIGHT ...

Are you sure that it shouldn't be as in the char_from_room function :
if( ( obj = get_eq_char( ch, WEAR_WIELD ) ) != NULL && obj->item_type == ITEM_LIGHT ... 


But anyway, I'm not sure that the problem comes from here as the reset message never appears. And when I type "reset area" as an admin, I have the impression that nothing happens.
However your code fixes an issue which caused the number of players in an area not displaying correctly for example in the astat command.

Thank you very much for your help,

olivier
       
Post is unread #9 Jun 3, 2008, 6:41 pm
Go to the top of the page
Go to the bottom of the page

Keberus
Conjurer
GroupFUSS Project Team
Posts341
JoinedJun 4, 2005

Reset area doesn't cause the reset message to appear the reset message only shows when area_update is called. On a side note though, that should be WEAR_LIGHT not WEAR_WIELD...
       
Post is unread #10 Jun 6, 2008, 4:12 am
Go to the top of the page
Go to the bottom of the page

olive
Fledgling
GroupMembers
Posts8
JoinedMay 13, 2008

Hello again,

Ok, the area_update function seems to do its job now. Actually it was not working when I set a resetfreq of 1 minute. When I set the resetfreq to 2or more, the reset messages appears: I think it's just something like a "<" instead of a "<=" in the area_update source code.
But this is not a bigg problem, I will investigate when I have the time.

My real problem now is that mobs who have been killed don't re-appear after a few minutes. I thought that resolving the area_update issue would resolve that, but it's not the case. Is it an unfixed bug or something II wrong in my installation.

If you don't have time to investigate that, could you at least point me the functions to check or some hints to help me to patch the code if necessary ?

Cheers,
       
Post is unread #11 Jun 6, 2008, 6:23 pm
Go to the top of the page
Go to the bottom of the page

Keberus
Conjurer
GroupFUSS Project Team
Posts341
JoinedJun 4, 2005


My real problem now is that mobs who have been killed don't re-appear after a few minutes. I thought that resolving the area_update issue would resolve that, but it's not the case. Is it an unfixed bug or something II wrong in my installation.


Are you setting the resets for the mobs via instaroom? Or is this all mobs in general?
       
Post is unread #12 Jun 11, 2008, 3:39 pm
Go to the top of the page
Go to the bottom of the page

olive
Fledgling
GroupMembers
Posts8
JoinedMay 13, 2008

Hello,

The problem affects all mobs in general.

After some investigations with GDB, it appears that reset_area and so reset_room are calledd every "resetfreq" minutes, what is (I think) the expected behaviour.
The problem is located inside the reset_room() function at the line
if (!pReset->sreset) ...

This statement is always true (meaning sreset is always false) except when the mud boots (in that case, the sreset field is set to TRUE by the add_reset function).
I have the impression that the distributed SWFotEE FUSS code is missing a call to update_room_reset() somewhere, but I am absolutely not sure.

Is it possible for you to compare the official SWFotEFUSS code to your own and tell me the differences regarding the reset mechanism ?

Thank you very much,

Olivier
       
Pages:<< prev 1 next >>