to compile new classes

Posted by De Martino on Fri 30 Jan 2004 12:23 PM — 49 posts, 165,531 views.

Italy #0
Ciao a tutti!!! :)

I desire to unite mage+cleric+vampire in name class: mentale.class
and to unite paladin+warrior+thief in name class: fisica.class

when a new player is created, the file server will owe' to ask:
* No * you Choose a class or you write help [class] to know more' on the type of class.
[Mage Cleric Thief Warrior Vampire Druid Ranger]
* Yes * you Choose a class or you write help [class] to know more' on the type of class.
[Mental or Physics]

please help me.

De Martino
Amended on Fri 30 Jan 2004 05:08 PM by De Martino
Australia Forum Administrator #1
In the classes folder have you edited the file class.lst to remove the classes you don't want?
Italy #2
Nick writes:
In the classes folder have you edited the file class.lst to remove the classes you don't want?


yes Nick i remove all class, and i rename Mage.class to Mentale.class and Warrior to Fisica, in Mage.class i vrite spell of Cleric, and in Fisica.class i copy spell of Thief.

mushclient: You choose a class or you write help [class] to know better a type of class.
[Fisica]

but no in list [Mage] and [Vampiro] i write manually
in comm.c ?

Tanks
De Martino
Australia Forum Administrator #3
In comm.c, at line 2086 (in my version) is this:


case CON_GET_NEW_SEX:
    switch ( argument[0] )
    {
    case 'm': case 'M': ch->sex = SEX_MALE;    break;
    case 'f': case 'F': ch->sex = SEX_FEMALE;  break;
    case 'n': case 'N': ch->sex = SEX_NEUTRAL; break;
    default:
        write_to_buffer( d, "That's not a sex.\n\rWhat IS your sex? ", 0 );
        return;
    }

    write_to_buffer( d, "\n\rSelect a class, or type help [class] to learn more about that class.\n\r[", 0 );
    buf[0] = '\0';

    /*
     * Take this out SHADDAI
     */

  for ( iClass = 0; iClass < MAX_PC_CLASS-2; iClass++ )
      {


The line I am doubtful about is in bold. It appears to show 2 less classes than you actually have.

Try changing to:


for ( iClass = 0; iClass < MAX_PC_CLASS; iClass++ )


Italy #4
i vrite in mud.h:
#define CLASS_NONE -1 /* For skill/spells according to guild */
#define CLASS_FISICA 0
#define CLASS_MENTALE 1
#define CLASS_VAMPIRO 2

i vrite in class.list:
Fisica.class
Mentale.class
Vampiro.class
$

i vrite in mentale.class:
Name Mentale~
Class 1
Attrprime 3
Weapon 10312
Guild 3018
Skilladept 95
Thac0 18
Thac32 10
Hpmin 6
Hpmax 8
Mana 1
Expbase 1250

i vrite in Fisica.class:
Name Fisica~
Class 0
Attrprime 1
Weapon 10313
Guild 3022
Skilladept 85
Thac0 18
Thac32 6
Hpmin 24
Hpmax 30
Mana 0
Expbase 1150

in Vampiro (no Vampire)
Name Vampiro~
Class 2
Attrprime 2
Weapon 10312
Guild 3036
Skilladept 95
Thac0 18
Thac32 7
Hpmin 9
Hpmax 14
Mana 0
Expbase 1500

i change in comm.c
for ( iClass = 0; iClass < MAX_PC_CLASS-2; iClass++ )
to
for ( iClass = 0; iClass < MAX_PC_CLASS; iClass++ )

after i make
$ make
make smaug
make[1]: Entering directory `/cygdrive/c/smaug/dist/src'
gcc -c -O -g3 -Wall -Wuninitialized -DSMAUG comm.c
comm.c: In function `nanny':
comm.c:2344: error: `CLASS_PALADIN' undeclared (first use in this function)
comm.c:2344: error: (Each undeclared identifier is reported only once
comm.c:2344: error: for each function it appears in.)
comm.c: In function `default_fprompt':
comm.c:3372: warning: implicit declaration of function `IS_VAMPIRE'
make[1]: *** [comm.o] Error 1
make[1]: Leaving directory `/cygdrive/c/smaug/dist/src'
make: *** [all] Error 2

***********************
I desire to unite
Mage.class and Cleric.class in Mentale.class
and
Warrior.class and Thief.class in Fisica.class
and rename
Vampire.class, in Vampiro.class

but I am a landslide, I don't succeed there. Excuse me
Nick, but I am not good, I have a saved copy
of old classes I can refer everything.
If you help me I refer everything.

De Martino
Amended on Sun 01 Feb 2004 12:21 AM by De Martino
Australia Forum Administrator #5
You are referring to this:


  for ( iClass = 0; iClass < MAX_PC_CLASS; iClass++ )
  {
    if ( class_table[iClass]->who_name &&
         class_table[iClass]->who_name[0] != '\0' )
    {
      if ( toupper(arg[0]) == toupper(class_table[iClass]->who_name[0])
      &&   !str_prefix( arg, class_table[iClass]->who_name ) )
      {
          ch->class =  iClass;
      if ( ch->class == CLASS_PALADIN )
        ch->alignment = +500;
          break;
      }
    }
  }


You do not have a Paladin class so those two lines do not apply. Remove the lines in bold.

Ditto for other cases.
Italy #6
if ( ch->class == CLASS_PALADIN )
is in comm.c

where is all class?
in comm.c
+++++++++++++++++++++++++++++++++++++++++
Nick I do again all
I have cancelled everything.

I have original smaug,
I desire to eliminate thief.class;cleric.class;thief.class
druid.class;augurer.class;paladin.class;ranger.class

and i desire when I create new player
to choose only 3 possible classes [mage varrior vampire]
and not only [mage].

what do I have to do?
can you write me the complete procedure?

Excuse me but and' better referring everything.
Excuse me for my incapability and my not competence.
Also excuse me for my way of writing
I don't speak the English


De Martino
Amended on Sun 01 Feb 2004 05:39 PM by De Martino
Australia Forum Administrator #7
I don't want to do a step-by-step for this problem, because then you will need the same thing for the next one.

I understand your English, it is better than my Italian. :)

You need to become familiar with the tools, so you can do it for yourself. I can guide you in the general idea, but then you need to work it out.

My page http://www.gammon.com.au/smaug/howtocompile.htm describes the general idea of searching for things and recompiling.

In your case, you have removed CLASS_PALADIN so you need to remove references to it. Use "grep" if you are using Cygwin or Linux to find things, or if you are using Windows use a editor with "find in files".

For example:


$ grep -n CLASS_PALADIN *.c
act_info.c:103:    if (  (IS_AFFECTED(ch, AFF_DETECT_EVIL) || ch->class==CLASS_PALADIN)
act_info.c:106:    if ( ch->class==CLASS_PALADIN
act_info.c:109:    if ( ch->class==CLASS_PALADIN
act_info.c:112:    if ( ch->class==CLASS_PALADIN
act_info.c:117:    if ( ch->class==CLASS_PALADIN
act_info.c:120:    if ( ch->class==CLASS_PALADIN
act_info.c:123:    if ( ch->class==CLASS_PALADIN
act_info.c:562:    &&   (  IS_AFFECTED(ch, AFF_DETECT_EVIL) || ch->class==CLASS_PALADIN)     ) 
                          strcat( buf, "(Red Aura) "   );
act_info.c:564:    &&   ch->class==CLASS_PALADIN  ) strcat( buf, "(Grey Aura) "   );
act_info.c:566:    &&   ch->class==CLASS_PALADIN  ) strcat( buf, "(White Aura) "   );
act_obj.c:1493:        && ch->class == CLASS_PALADIN                                            )
act_wiz.c:5103:         (victim->class == CLASS_PALADIN) )
comm.c:1860:            if ( ch->class == CLASS_PALADIN )
comm.c:2068:        if ( ch->class == CLASS_PALADIN )
update.c:596:      if(ch->class == CLASS_PALADIN){


The -n option says to show line numbers. So you can see above both the file names and line numbers tha you need to edit to find each case.

In the above example, we see a whole batch. Taking the last one (update.c:596) we can see the sort of thing.

Edit update.c (vi update.c) and go to line 596 (596G):


     /* Paladins need some restrictions, this is where we crunch 'em -h */
     if(ch->class == CLASS_PALADIN){
        if(ch->alignment<250){
            set_char_color( AT_BLOOD, ch );
            send_to_char( "You are wracked with guilt and remorse for your craven actions!\n\r", ch );
            act( AT_BLOOD, "$n prostrates $mself, seeking forgiveness from $s Lord.", ch,
                 NULL, NULL, TO_ROOM);
            worsen_mental_state( ch, 15 );
            return;
        }
        if(ch->alignment<500){
            set_char_color( AT_BLOOD, ch );
            send_to_char( "As you betray your faith, your mind begins to betray you.\n\r", ch );
            act( AT_BLOOD, "$n shudders, judging $s actions unworthy of a Paladin.", ch,
                 NULL, NULL, TO_ROOM);
            worsen_mental_state( ch, 6 );
            return;
       }
    }


Now if you are using vi, and you put the cursor on the last "{" on the first line, and press the % key it will take the cursor to the matching end brace. This shows how many lines need to be deleted, or commented out.

Delete those, and that file should now compile OK.

If you are using Windows then MUSHclient has a "find matching brace" function in its internal notepad, that does the same thing.

Now do the same thing for the other files. Don't forget to "make" afterwards to recompile everything.

You may wish to use the FUSS (Fixed Up Smaug Source) code which is now in the downloads area of this site. That fixes the problem with the "-2" in the class list, so you will see 3 classes if you have 3 classes and not just 1.
Amended on Sun 01 Feb 2004 08:15 PM by Nick Gammon
Italy #8
Dear Nick, thanks the same but not and' this' that I wanted
I hoped all it took is cancelling classes paladin.class
and to cancel paladin from list.class

I know executable make but not me and' easy to do all that
what you have written, thanks however, my problem remains. :o(

You have been very kind.
You are e very friend.

De Martino
Italy #9
Hi to everybody,
dear friends, dear Nick
I have found a solution to eliminate some classes, but I desire to be sure
what a the solution from me found, it doesn't create crash or bug.

Don't see the class Paladin, have renamed
"paladin ~ " in "~ "
I have practically removed the name. Now to the creation of a new pg, is not able
anymore' to choose the class paladin. Is correct solution or is not correct?
Is a big problem for me, to eliminate the classes. I hope to have succeeded there.

I desire to know a thing:
in Italy they say that the version smaug1.4a_mxp.tar, is not correct, they say
what this version is with many bugs. I have chosen this version, but they tell me
to change her, some friends of mine dissuade me her. I have preferred to hold the version
smaug1.4a_mxp.tar, has worked also there for 200 hours, and I desires to hold her.
As can I correct the bugs? Thin to I have not now used any Patch.
As always an embrace and a great graces!

Grazie!!!
De Martino
Amended on Sat 07 Feb 2004 01:01 PM by De Martino
Canada #10
There are various list of bug fixes available. One can be found at http://forums.mudplanet.org/index.php?showtopic=9 for major bug fixes(there are alot) and one with minor fixes can be found at http://forums.mudplanet.org/index.php?showtopic=20. These are not all of the bugs, but the vast majority, I think. Try those out.
Italy #11
Greven:
recommend me to correct the bugs :o((, or a version correct of smaug already exists'
for download

Could I migrate my translations on another version without bug, it exists?

Tank you!

De Martino
Australia Forum Administrator #12
I am inclined to agree, having looked at SMAUG FUSS, that you should use that instead (it is now at this site), plus you can incorporate MXP into it with the patch file there.

Patching MXP back into SMAUG FUSS is easy enough, there is one command to type, which is on the downloads page here.

If you change to a different SMAUG, make sure you keep your area files, class files etc. Unless you have changed the source you only really want the new "src" directory, if you keep the other directories all your translations will stay.

In other words, backup (copy) your existing SMAUG directories (files).

Then get the SMAUG FUSS files, un-tar it, apply the MXP patch, compile it, then copy back all the classes, areas, etc. that you have changed.
Australia Forum Administrator #13
If you have changed the source too (eg, made some words into Italian) then you can still keep them.

What you want is a "diff" of the changes between what you did, and the original. That will give you a file that you can patch into the corrected version. Most or all of your changes should survive.

Eg.

Have 2 directories: orig_src, src

The "orig_src" directory is SMAUG before you changed things.

Then at the level *above* the src directory, type this:


diff orig_src src > diffs.txt


That will put *your* changes into diffs.txt.

Then get the newer SMAUG (the FUSS one).

Then put your changes back. Go into the src directory and type:


patch < diffs.txt


Just be careful that the diffs.txt file only contains the changes you really want. You can edit it and check that.

Warning - make a backup of everything before trying this in case things go wrong.
Italy #14
smaug14afuss
this is smaug 1.4a without bug
and' a smaug 1.4a corrected by errors?
do I perform it with Cygwin?

this command not found:


$ tar xzf smaug14afuss


De Martino

Amended on Sat 07 Feb 2004 11:51 PM by De Martino
Australia Forum Administrator #15
If you look at the download link:

http://www.gammon.com.au/files/smaug/smaug14afuss.tgz

You will see that the filename is smaug14afuss.tgz

That is the one you need to un-tar.

i.e.

tar xvzf smaug14afuss.tgz
Italy #16

ok Nick
this version is smaug correct of bug?

now i make smaug.exe
and I have e smaug server correct?
later I will be able' to insert in fuss, the changes from me you bring
classes (you rename some classes example "Paladin ~ " in "~ ")
command.dat, skill.dat, colors.dat,
db.c, comm.c (only the changes) correct?

what is di differnce with smaug 1.4a ?

thanks as always

De Martino
Italy #17

demar@pa ~
$ cd c:

demar@pa /cygdrive/c
$ cd smaugfuss

demar@pa /cygdrive/c/smaugfuss
$ ls
Bugfixes.txt boards clans corpses deity gods log races system
area building classes councils doc i3 player src watch

demar@pa /cygdrive/c/smaugfuss
$ cd src

demar@pa /cygdrive/c/smaugfuss/src
$ make
make smaug
make[1]: Entering directory `/cygdrive/c/smaugfuss/src'
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG i3.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG act_comm.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG act_info.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG act_move.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG act_obj.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG act_wiz.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG boards.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG build.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG clans.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG color.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG comm.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG comments.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG const.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG db.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG deity.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG fight.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG handler.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG hashstr.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG ident.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG interp.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG magic.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG makeobjs.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG mapout.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG misc.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG mpxset.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG mud_comm.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG mud_prog.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG player.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG polymorph.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG reset.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG save.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG shops.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG skills.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG special.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG tables.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG track.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG update.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG grub.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG ban.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG services.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG planes.c
gcc -c -O -g2 -Wall -DI3 -DI3SMAUG imm_host.c
rm -f smaug
gcc -o smaug i3.o act_comm.o act_info.o act_move.o act_obj.o act_wiz.o boards.o
build.o clans.o color.o comm.o comments.o const.o db.o deity.o fight.o handler.o
hashstr.o ident.o interp.o magic.o makeobjs.o mapout.o misc.o mpxset.o mud_comm
.o mud_prog.o player.o polymorph.o reset.o save.o shops.o skills.o special.o tab
les.o track.o update.o grub.o ban.o services.o planes.o imm_host.o -lcrypt
chmod g+w smaug
chmod: changing permissions of `smaug': No such file or directory
make[1]: *** [smaug] Error 1
make[1]: Leaving directory `/cygdrive/c/smaugfuss/src'
make: *** [all] Error 2

demar@pa /cygdrive/c/smaugfuss/src
$



in src I have found smaug.exe
but because' I read this when I make with CYGWIN?:
make[1]: *** [smaug] Error 1
make[1]: Leaving directory `/cygdrive/c/smaugfuss/src'
make: *** [all] Error 2
Italy #18
I run server smaugfuss, and i look this bug:

Sun Feb 8 02:46:40 2004 :: Booting Database
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Sun Feb 8 02:46:40 2004 :: [*****] BOOT: ---------------------[ Boot Log ]-----
---------------
Sun Feb 8 02:46:40 2004 :: Loading commands
Sun Feb 8 02:46:40 2004 :: Loading sysdata configuration...
Sun Feb 8 02:46:40 2004 :: Loading socials
Sun Feb 8 02:46:40 2004 :: Loading skill table
Sun Feb 8 02:46:40 2004 :: Sorting skill table...
Sun Feb 8 02:46:40 2004 :: Remapping slots to sns
Sun Feb 8 02:46:40 2004 :: Loading classes
Sun Feb 8 02:46:40 2004 :: Loading races
Sun Feb 8 02:46:40 2004 :: Loading herb table
Sun Feb 8 02:46:40 2004 :: Loading tongues
Sun Feb 8 02:46:40 2004 :: Making wizlist
Sun Feb 8 02:46:40 2004 :: Initializing random number generator
Sun Feb 8 02:46:40 2004 :: Setting time and weather
Sun Feb 8 02:46:40 2004 :: Assigning gsn's
Sun Feb 8 02:46:40 2004 :: Reading in area files...
(help.are)
gods.are : Rooms: 1200 - 1201 Objs: 1200 - 1200 Mobs: 1200 - 1200
limbo.are : Rooms: 2 - 99 Objs: 2 - 99 Mobs: 1 - 99
newacad.are : Rooms: 10300 - 10499 Objs: 10300 - 10499 Mobs: 10300 - 10499
newgate.are : Rooms: 100 - 199 Objs: 100 - 199 Mobs: 100 - 199
newdark.are : Rooms: 21000 - 21499 Objs: 21000 - 21435 Mobs: 21000 - 21499
haon.are : Rooms: 6000 - 6156 Objs: 6000 - 6155 Mobs: 6000 - 6117
midennir.are : Rooms: 3500 - 3590 Objs: 3500 - 3550 Mobs: 3500 - 3550
sewer.are : Rooms: 7001 - 7445 Objs: 7190 - 7310 Mobs: 7000 - 7206
redferne.are : Rooms: 7900 - 7918 Objs: 7909 - 7911 Mobs: 7900 - 7900
grove.are : Rooms: 8901 - 8999 Objs: 8900 - 8919 Mobs: 8900 - 8911
dwarven.are : Rooms: 6500 - 6554 Objs: 6502 - 6519 Mobs: 6500 - 6517
daycare.are : Rooms: 6601 - 6651 Objs: 6600 - 6647 Mobs: 6600 - 6610
grave.are : Rooms: 3600 - 3651 Objs: 3600 - 3613 Mobs: 3600 - 3605
chapel.are : Rooms: 3405 - 3475 Objs: 3400 - 3430 Mobs: 3400 - 3416
astral.are : Rooms: 800 - 899 Objs: 800 - 899 Mobs: 800 - 899
Build.are : Rooms: 9500 - 9589 Objs: 0 - 0 Mobs: 0 - 0
pixie.are : Rooms: 2070 - 2099 Objs: 2070 - 2076 Mobs: 2070 - 2073
export.are : Rooms: 9810 - 9899 Objs: 9810 - 9899 Mobs: 9800 - 9899
srefuge.are : Rooms: 1500 - 1599 Objs: 1500 - 1599 Mobs: 1500 - 1599
manor.are : Rooms: 2400 - 2499 Objs: 2400 - 2499 Mobs: 2405 - 2484
unholy.are : Rooms: 2101 - 2172 Objs: 2101 - 2150 Mobs: 2101 - 2120
gallery.are : Rooms: 24800 - 24899 Objs: 24800 - 24899 Mobs: 24800 - 24899
Sun Feb 8 02:46:40 2004 :: Fixing exits
Sun Feb 8 02:46:40 2004 :: Initializing economy
Sun Feb 8 02:46:40 2004 :: Resetting areas
Sun Feb 8 02:46:40 2004 :: [*****] BUG: 'E' reset: can't give object 21055 to m
ob 21052.
Sun Feb 8 02:46:40 2004 :: [*****] BUG: 'E' reset: can't give object 21055 to m
ob 21052.
Sun Feb 8 02:46:40 2004 :: [*****] BUG: 'E' reset: can't give object 21055 to m
ob 21052.
Sun Feb 8 02:46:40 2004 :: Loading buildlist
Sun Feb 8 02:46:40 2004 :: ../gods/Admin
Sun Feb 8 02:46:40 2004 :: Loading boards
Sun Feb 8 02:46:40 2004 :: ../boards/immortal.brd
Sun Feb 8 02:46:40 2004 :: ../boards/highgod.brd
Sun Feb 8 02:46:40 2004 :: Loading clans
Sun Feb 8 02:46:40 2004 :: Loading clans...
Sun Feb 8 02:46:40 2004 :: vampire.gui
Sun Feb 8 02:46:40 2004 :: Cannot open clan vault
Sun Feb 8 02:46:40 2004 :: druid.gui
Sun Feb 8 02:46:40 2004 :: Cannot open clan vault
Sun Feb 8 02:46:40 2004 :: warrior.gui
Sun Feb 8 02:46:40 2004 :: Cannot open clan vault
Sun Feb 8 02:46:40 2004 :: augurer.gui
Sun Feb 8 02:46:40 2004 :: Cannot open clan vault
Sun Feb 8 02:46:40 2004 :: thief.gui
Sun Feb 8 02:46:40 2004 :: Cannot open clan vault
Sun Feb 8 02:46:40 2004 :: cleric.gui
Sun Feb 8 02:46:40 2004 :: Cannot open clan vault
Sun Feb 8 02:46:40 2004 :: mage.gui
Sun Feb 8 02:46:40 2004 :: Cannot open clan vault
Sun Feb 8 02:46:40 2004 :: ranger.gui
Sun Feb 8 02:46:40 2004 :: Cannot open clan vault
Sun Feb 8 02:46:40 2004 :: $
Sun Feb 8 02:46:40 2004 :: Done clans
Sun Feb 8 02:46:40 2004 :: Loading councils
Sun Feb 8 02:46:40 2004 :: Loading councils...
Sun Feb 8 02:46:40 2004 :: $
Sun Feb 8 02:46:40 2004 :: Done councils
Sun Feb 8 02:46:40 2004 :: Loading deities
Sun Feb 8 02:46:40 2004 :: Loading deities...
Sun Feb 8 02:46:40 2004 :: $
Sun Feb 8 02:46:40 2004 :: Done deities
Sun Feb 8 02:46:40 2004 :: Loading watches
Sun Feb 8 02:46:40 2004 :: Loading bans
Sun Feb 8 02:46:40 2004 :: Done.
Sun Feb 8 02:46:40 2004 :: Loading reserved names
Sun Feb 8 02:46:40 2004 :: Loading corpses
Sun Feb 8 02:46:40 2004 :: Loading Immortal Hosts
Sun Feb 8 02:46:40 2004 :: Done.
Sun Feb 8 02:46:40 2004 :: Loading Projects
Sun Feb 8 02:46:40 2004 :: Loading Morphs
Sun Feb 8 02:46:40 2004 :: Done.
Sun Feb 8 02:46:40 2004 :: Initializing socket
Sun Feb 8 02:46:40 2004 :: Loading Intermud-3 network data...
Sun Feb 8 02:46:40 2004 :: [*****] BUG: I3_fread_config_file: Bad keyword: driv
er

Sun Feb 8 02:46:40 2004 :: [*****] BUG: I3_fread_config_file: Bad keyword: AFKM
ud~

Sun Feb 8 02:46:40 2004 :: Intermud-3 network data loaded. Autoconnect not set.
Will need to connect manually.
Sun Feb 8 02:46:40 2004 :: (Name Not Set) ready at address pa on port 4000.


thanks the helps Nick, thanks for the patience that you have all with me

De Martino

Australia Forum Administrator #19
Don't know, I've never used InterMUD.

Change the Makefile to not use it (read the file Makefile to see how).
Italy #20
The question and': I succeed in producing with make
smaug.exe, despite error 1 and error 2?
SmaugFuss and' better than smaug1.4 or the only difference is the protocol mxp?

after to generate smaug.exe (despite error 1 and 2)
run smaug.exe, and I read these bugs:
Sun Feb 8 02:46:40 2004 :: [*****] BUG: 'E' reset: can't give object 21055 to m
ob 21052.
Sun Feb 8 02:46:40 2004 :: [*****] BUG: 'E' reset: can't give object 21055 to m
ob 21052.
Sun Feb 8 02:46:40 2004 :: [*****] BUG: 'E' reset: can't give object 21055 to m
ob 21052.

and:
Sun Feb 8 02:46:40 2004 :: [*****] BUG: I3_fread_config_file: Bad keyword: driv
er

Sun Feb 8 02:46:40 2004 :: [*****] BUG: I3_fread_config_file: Bad keyword: AFKM
ud~


my makefile is this:

CC = gcc
#PROF = -p
NOCRYPT =

#Uncomment to compile in Cygwin
#CYGWIN = -DCYGWIN

# Uncomment the two lines below if compiling on a Solaris box
#SOLARIS_FLAG = -Dsun -DSYSV
#SOLARIS_LINK = -lnsl -lsocket

#Uncomment the line below if you are getting undefined crypt errors
NEED_CRYPT = -lcrypt

#Intermud-3 - Comment out to disable I3 support in your code
I3 = 1

#IMC2 - Comment out to disable IMC2 support
IMC = 1

#Uncomment the line below if you want a performance increase though beware
#your core files may not be as much of a benefit if you do.
#OPT_FLAG = -finline-functions -funroll-loops -fdefer-pop -fstrength-reduce

C_FLAGS = $(OPT_FLAG) -O -g2 -Wall $(PROF) $(NOCRYPT) $(SOLARIS_FLAG)
L_FLAGS = $(OPT_FLAG) $(PROF) $(SOLARIS_LINK) $(NEED_CRYPT)

O_FILES = act_comm.o act_info.o act_move.o act_obj.o act_wiz.o boards.o \
build.o clans.o color.o comm.o comments.o const.o db.o deity.o fight.o \
handler.o hashstr.o ident.o interp.o magic.o makeobjs.o \
mapout.o misc.o mpxset.o mud_comm.o mud_prog.o player.o polymorph.o \
reset.o save.o shops.o skills.o special.o tables.o \
track.o update.o grub.o ban.o services.o planes.o \
imm_host.o

C_FILES = act_comm.c act_info.c act_move.c act_obj.c act_wiz.c boards.c \
build.c clans.c color.c comm.c comments.c const.c db.c deity.c fight.c \
handler.c hashstr.c ident.c interp.c magic.c makeobjs.c \
mapout.c misc.c mpxset.c mud_comm.c mud_prog.c player.c polymorph.c \
reset.c save.c shops.c skills.c special.c tables.c \
track.c update.c grub.c ban.c services.c planes.c \
imm_host.c

H_FILES = mud.h color.h bet.h

ifdef I3
C_FILES := i3.c $(C_FILES)
O_FILES := i3.o $(O_FILES)
C_FLAGS := $(C_FLAGS) -DI3 -DI3SMAUG
endif

all:
$(MAKE) smaug

ifdef CYGWIN
smaug: $(O_FILES)
rm -f smaug.exe
$(CC) -o smaug.exe $(O_FILES) $(L_FLAGS)
chmod g+w smaug.exe
chmod a+x smaug.exe
chmod g+w $(O_FILES)

clean:
rm -f *.o smaug.exe *~
else
smaug: $(O_FILES)
rm -f smaug
$(CC) -o smaug $(O_FILES) $(L_FLAGS)
chmod g+w smaug
chmod a+x smaug
chmod g+w $(O_FILES)

clean:
rm -f *.o smaug *~
endif

.c.o: mud.h
$(CC) -c $(C_FLAGS) $<


Ciao!

De Martino
Canada #21
If your trying to disable I3 and IMC, change these lines:
#Intermud-3 - Comment out to disable I3 support in your code
I3 = 1

#IMC2 - Comment out to disable IMC2 support
IMC = 1
To this:
#Intermud-3 - Comment out to disable I3 support in your code
#I3 = 1

#IMC2 - Comment out to disable IMC2 support
#IMC = 1
Amended on Sun 08 Feb 2004 11:58 PM by Greven
Italy #22
thanks Greven thanks!!!!!! ^_^
I immediately correct the makefile

I have to also correct the makafile that I use
for the version smau1.4? in smaug1.4 I use
the same makefile, correct it?

what version recommends me Greven
smaug1.4 or Fuss?

Which and' the version best smaug, yours preferred?
I would like to create my mud: or)

De Martin
Italy #23
after change this line in my makefile:


$ make
make smaug
make[1]: Entering directory `/cygdrive/c/smaugfuss/src'
rm -f smaug
gcc -o smaug act_comm.o act_info.o act_move.o act_obj.o act_wiz.o boards.o build
.o clans.o color.o comm.o comments.o const.o db.o deity.o fight.o handler.o hash
str.o ident.o interp.o magic.o makeobjs.o mapout.o misc.o mpxset.o mud_comm.o mu
d_prog.o player.o polymorph.o reset.o save.o shops.o skills.o special.o tables.o
track.o update.o grub.o ban.o services.o planes.o imm_host.o -lcrypt
comm.o(.text+0x4c2): In function `main':
/cygdrive/c/smaugfuss/src/comm.c:284: undefined reference to `_I3_main'
comm.o(.text+0x523):/cygdrive/c/smaugfuss/src/comm.c:297: undefined reference to
`_I3_shutdown'
comm.o(.text+0xf4f): In function `game_loop':
/cygdrive/c/smaugfuss/src/comm.c:651: undefined reference to `_I3_loop'
db.o(.text+0x803d): In function `free_char':
/cygdrive/c/smaugfuss/src/db.c:2906: undefined reference to `_free_i3chardata'
interp.o(.text+0xfa9): In function `interpret':
/cygdrive/c/smaugfuss/src/interp.c:468: undefined reference to `_I3_command_hook
'
save.o(.text+0x1be8): In function `fwrite_char':
/cygdrive/c/smaugfuss/src/save.c:531: undefined reference to `_i3save_char'
save.o(.text+0x2a3c): In function `load_char_obj':
/cygdrive/c/smaugfuss/src/save.c:784: undefined reference to `_i3init_char'
save.o(.text+0x4d06): In function `fread_char':
/cygdrive/c/smaugfuss/src/save.c:1353: undefined reference to `_i3load_char'
collect2: ld returned 1 exit status
make[1]: *** [smaug] Error 1
make[1]: Leaving directory `/cygdrive/c/smaugfuss/src'
make: *** [all] Error 2

:o((

De Martino
Italy #24
Greven vrite:
If your trying to disable I3 and IMC, change these lines:
#Intermud-3 - Comment out to disable I3 support in your code
I3 = 1

#IMC2 - Comment out to disable IMC2 support
IMC = 1

My friend I don't want to disable nothing, I ask this:
how my make (before the corrections from you suggest)
the file smaug.exe produced me despite these errors?

chmod: changing permissions of `smaug': No such file or directory
make[1]: *** [smaug] Error 1
make[1]: Leaving directory `/cygdrive/c/smaugfuss/src'
make: *** [all] Error 2

and if these bugs were serious, after I started the file server smaug.exe of
smaugfuss:
Sun Feb 8 02:46:40 2004 :: [*****] BUG: 'E' reset: can't give object 21055 to m
ob 21052.
Sun Feb 8 02:46:40 2004 :: [*****] BUG: 'E' reset: can't give object 21055 to m
ob 21052.
Sun Feb 8 02:46:40 2004 :: [*****] BUG: 'E' reset: can't give object 21055 to m
ob 21052.
Sun Feb 8 02:46:40 2004 :: [*****] BUG: I3_fread_config_file: Bad keyword: driv
er

Sun Feb 8 02:46:40 2004 :: [*****] BUG: I3_fread_config_file: Bad keyword: AFKM
ud~

Ciao! :o\

De Martino

Canada #25
You have to correct the errors in the code to get rid of those. Plus, those don't look like crash errors, just loading errors. You can' boot it? I might be the intermud code. Samson could be of more assistance, check the code for his website, he might have the fix to it.


Edit: After looking though Samson's forums, I found that the object reset errors is because object 21055 is set as prototype, if you remove the flag, it will be fine, no errors.

I've looked at the latest version of I3 available on his site, and it looks like that bug is there in all versions, though in a post he mentioned that there shouldn't be an error message for it, though I don't know the code well enough to tell you that you can take it out.

I don't have the experience with SMAUG to say that fuss is better, but it seems to be. However, if you've done lots of work on your, I wouldn't throw that away, I would work through the buglist and just correct all the problem, I've done that for my SWR, took about an hour or so, and I didn't lose all the work I had done.
Amended on Mon 09 Feb 2004 03:50 AM by Greven
USA #26
One of these days... I swear.... I'll fix this stuff right! I mean it! :)

The I3 error is irrelevent. It won't hurt anything. Just means the config file has a line I must have forgotten to remove.

I also meant to fix that prototype bug. Dirty logs bother me as much as they bother anyone else.

And God only knows how that IMC2 part got there. It shoudln't even be in there. Looks like I have some messes to clean up :/
USA #27
As for the[code]
Sun Feb 8 02:46:40 2004 :: [*****] BUG: 'E' reset: can't give object 21055 to mob 21052.
Sun Feb 8 02:46:40 2004 :: [*****] BUG: 'E' reset: can't give object 21055 to mob 21052.
Sun Feb 8 02:46:40 2004 :: [*****] BUG: 'E' reset: can't give object 21055 to mob 21052.
Sun Feb 8 02:46:40 2004 :: [*****] BUG: I3_fread_config_file: Bad keyword: driver
Sun Feb 8 02:46:40 2004 :: [*****] BUG: I3_fread_config_file: Bad keyword: AFKMud~
[/code]
errors, the 'E' are bad equipment notices on the mob listed in the error. Change the resets for the gear/mob getting the warnings and away they go.... I spent almost a month getting rid of all the bad reset errors on SB:R a while back so I know how much a pain they can be.
Italy #28
thanks to everybody, I have corrected errors 1 and 2 of the make
now, when I make the smaugFuss I don't read anymore'
any error. My Italian friend Onirik help me :o)
I have changed in my makefile this:

#Uncomment to complete her in Cygwin
#CYGWIN = - DCYGWIN

to

#Uncomment to complete her in Cygwin
CYGWIN = - DCYGWIN


Ciao!
De Martino
Italy #29
Dear friends, finally have the code smaug without bug,
I am happy, thanks to everybody! ^ _ ^

Thanks Nick, Greven and Meerclar!

Nich I have accepted your suggestion, I have make smaugFuss
and I have recopied all of my changes, classes command etc etc.

I won't insert mxp, they say only maid for mushclient, I would like instead
to insert the colors.dat, does a patch exist? a snippet? The function
of the colors and' of my pleasure.

De Martino
Canada #30
I beleive that if your using smaugfuss the new color snippet is included in it by Samson, which is better, IMHO, than the original SMAUG color one, and It does not use a color.dat file.
USA #31
Quote:

I won't insert mxp, they say only maid for mushclient


Actually, this isn't at all accurate. MXP was actually developed by Zugg for the zMUD client and Nick adapted it for MC while fixing a lot of the sloppier implementation issues Zugg left in zMud. The actual MXP documentation is hosted on the zuggsoft website (http://www.zuggsoft.com/zmud/mxp.htm) and has quite a few more uses than I suspect poor Zugg ever dreamed it would. Dawn of Time in particular makes extreme use of MXP capabilities in it's OLC and almost every other aspect of the mud.
Italy #32
Meerclar vrite:

Quote:
Actually, this isn't at all accurate. MXP was actually developed by Zugg for the zMUD

[cut]
well you have clarified the functionality of mxp, thanks.
But which is the primary utility of the protocol mxp?
Does it concern the exits from the roomses only, or also the icons, objects, mob etc etc?

De Martino
Amended on Tue 10 Feb 2004 11:50 PM by De Martino
Italy #33
I beleive that if your using smaugfuss the new color snippet is included in it by Samson

where can I find the snippet of Samson?
is it already in Fuss? With Smaug1.4 I could easily change color to everything.
I desire that any player not change aspect client, I desire the colors to be
equal for everybody, I desire to decide only me the various colors. I can do this
in Fuss?, with smaug1.4 all it took is writing in colors.dat, in Fuss where setting
of the colors. I don't love that all the players change the colors. My mud
(a dream difficult to realize) it has to be of equal aspect for everybody.

De Martino
PS:excuse me for as I write I don't speak English :o\
Australia Forum Administrator #34
MXP was originally designed for zMUD, and now works reasonably well in MUSHclient. What use is it? Well, that is arguable, but you, the MUD designer, can make it do anything you want.

I used it to have hyperlinked exits in my example code, hyperlinked inventories, hyperlinked objects on the ground. It looks cute, make the MUD a bit more like a web page where you click on exits.

If the client doesn't support it, that is OK, it is only done after telnet negotiation.

As for colours, don't get too excited. Anyone can use their client to make (say) red show as green, so you can only control them to a certain extent. If you disable their changing it at the server end they can change it at the client end.
Italy #35
Nick:
Quote:
What use is it? Well, that is arguable, but you, the MUD designer, can make it do anything you want.


OK Nick, I can make it do anything want mxp, I can for instance migrate it on the objects.
And' difficult to insert mxp to SmaugFuss?

asks personal:
if I ask too questions in forum, if he, tells me him, and I will write less. :o)

De Martino
Australia Forum Administrator #36
No it isn't difficult, I put a patch to do so on the downloads page.

I don't mind the questions, they will probably help other people.
Italy #37
I have find the link :o)

ftp://ftp.gammon.com.au/smaug/smaugfuss_mxp_diffs.txt.gz - 9 Kb - patch file to convert smaug14afuss.tgz to incorporate MXP.

GRAZIE Nick :)

De Martino
Italy #38
I desire not to visualize any classes when a new is created
player, I have tried in this way:

I have open Thief.class and Cleric.class
Name Thief ~
changed in
Name ~

Name Cleric ~
changed in
Name ~

The question is: the classes so you modify,
they have not been removed,
but any player is able' to make the select Cleric,
and it is what I wanted to have :o)

Is this solution correct ? or it causes in expectancy me errors or bug?

^__^

De Martino


Canada #39
This will make it so that anyone who has the class before you removed the names will see "Class: ". You will also never be able to call that class by name, since it has none. If you want to remove the choice of creating them, but still leave the classes in the game, there have been several applicable post on how to do this. Use the search to look for them.

If you need more help later, someone can help with it.
Italy #40
My Smaug doesn't have any player yet, it is in construction.
I don't succeed in understanding, if nobody is able' to choose some classes, with
the solution from me described, does it behave problems?

Not me is easy to understand this point. I have read some "forum pages", but
I am not able to understand well.

I desire to eliminate the choice of some classes, trying to touch
few or not at all the whole compiled files. I desire to leave only 3 classes,
but not ricompile, without renaming the number class, is possible?

If I rename the classes as on writw, problem it exists in expectancy?
If in expectancy I create a mob with number class 2 but this class
not is more in select option, because renamed " ~ " the mob
does it work? or does it produce holes?

De Martino
Canada #41
I don't know the class system in SMAUG as well as I do in SWR, but I beleive that it SHOULDN'T make a difference if it has no name, you just won't be able to see it, but I'm not quite sure. You can't compile the code? If you can compile, you can do something like this:
    for ( iClass = 0; iClass < MAX_PC_CLASS; iClass++ )
	{
	    if ( class_table[iClass]->who_name &&
	    	 class_table[iClass]->who_name[0] != '\0' && 
		 str_cmp(class_table[iClass]->who_name, "theif") &&
		 str_cmp(class_table[iClass]->who_name, "cleric"))
	    {
	      if ( iClass > 0 )
	      {
		  if ( strlen(buf)+strlen(class_table[iClass]->who_name) > 77 )
		  {
		     strcat( buf, "\n\r" );
		     write_to_buffer( d, buf, 0 );
		     buf[0] = '\0';
		  }
		  else
		     strcat( buf, " " );
	      }
	    }
	    strcat( buf, class_table[iClass]->who_name );
	}


and a little further down:
	if ( iClass == MAX_PC_CLASS
	||  !class_table[iClass]->who_name 
	|| class_table[iClass]->who_name[0] == '\0'
	|| !str_cmp(class_table[iClass]->who_name,"unused")
	|| !str_cmp(class_table[iClass]->who_name,"theif")
	|| !str_cmp(class_table[iClass]->who_name,"cleric"))
	{
	  write_to_buffer( d, "That's not a class.\n\rWhat IS your class? ",0);
	  return;
	}


That should let you exclude being able to pick certain classes based on the name of the class, but still have it available throughout your mud.
Amended on Mon 16 Feb 2004 05:24 PM by Greven
Australia Forum Administrator #42
Quote:

I desire to eliminate the choice of some classes, trying to touch few or not at all the whole compiled files.


Remove them from the class.lst file then.

However I think trying to run a server, especially if you are translating into Italian, but not do compiles, is going to be hard.
Italy #43
Nick write
Quote:
However I think trying to run a server, especially if you are translating into Italian, but not do compiles, is going to be hard.


^__^

My friend Nick I succeed in compiling smaug, really thanks to this profit forum,
I have been compiling it for one whole month, a great help for me:
http://www.gammon.com.au/smaug/howtocompile.htm

But I desire, when is possible, not to eliminate code, that in expectancy
he could return profit, that's why I desire to eliminate the choice of
some classes, to the creation of the new player.
But is a problem for me.

De Martino
Amended on Tue 17 Feb 2004 01:13 AM by De Martino
Italy #44
For Greven:
Dear friend
The solution from me found
I rename name: Thief ~
in name: ~
is not good, do I have to deduce? What hole involves to rename (not name)
the classes, as did I want to do me?

Do I have to use the your snippet written above? in which file.c?
Later when a new player chooses the race, he doesn't see anymore'
Thief etc etc?
The solution from me found it produces that type of problem?
Your snippet, doesn't ask for to rename the number of the classes:
0 1 2 3 4 and so street? Or no?

De Martino

PS help
Amended on Tue 17 Feb 2004 01:24 AM by De Martino
Australia Forum Administrator #45
If you just want to remove the class from the initial questions, change nanny in comm.c.

To remove the class altogether remove it from the class.lst file.

I don't think taking its name away is a good idea, you will just have a lot of classes with no name.
Italy #46
Nick

Quote:
If you just want to remove the class from the initial questions, change nanny in comm.c.

To remove the class altogether remove it from the class.lst file.


Nick, is not good to remove the classes from the nanny in comm.c,
I am afraid to ruin something, the Fuss doesn't have errors, I don't desire to cause errors.

Quote:
I don't think taking its name away is a good idea, you will just have a lot of classes with no name.


Why many classes without name? who will have the class if nobody has been able
to choose her, I ask this to understand and not to defend a choice
(comfortable for the one that is not experienced as me).
My SmaugFuss is only in construction, any player has been
servant. Who could have a class without name? I would like to understand
this. If nobody will be able' to choose Thief, who will have class without name?

My problem is not to succeed in explaining well me, since not I speak English,
I desire to eliminate some classes, in easy way, not it is important for me, that disappears,
me enough that nobody is able to choose her and that the remaining classes respect the old characteristics.

De Martino
Amended on Wed 18 Feb 2004 12:46 AM by De Martino
USA #47
Quote:
Nick, is not good to remove the classes from the nanny in comm.c, I am afraid to ruin something, the Fuss doesn't have errors, I don't desire to cause errors.


You're going to have to do some coding at some point if you ever want to actually get something done. :)

Having "empty classes" is possible, but definitely not a good idea. It's just bad form to leave empty classes lying around.

It would be much better to just edit comm.c... it's really not that hard.
Australia Forum Administrator #48
De Martino, you haven't said why you don't want to remove the class from the class.lst file. Then it won't exist at all, and won't be displayed.

If you simply remove the name then the classes still exist, they just don't have names.

Let me give you an analogy ... say you are in a classroom and the teacher wants you to leave. He asks you to leave the room, he doesn't say "De Martino, you no longer have a name".

Taking away its name doesn't remove it, it is still there, nameless.

Technical problems might be that mobs might still use the class, and if you do a mstat on that mob, you have different mobs with different classes, but they won't have class names. Sounds a silly way of doing it to me.

I still suggest, take them out of the class.lst file.