MUD Engine: v0.05 - Online!
Derezo

I released version 0.05 of my MUD Engine today.

MUD stands for "Multi User Dungeon" (or other variation). They're basically online text RPGs.
This MUD has been built from the ground up and is completely custom made :)

It's very early in development, but has the basic features of a mud such as players, areas, rooms, NPC's, skills and spells, items and equipment, modifier effects, currency, etc. Even built-in area editing commands have been implemented.
Most of the interface is currently still ugly and usually very lacking in detail, but it's colorful! :)

You can connect to this MUD at telnet://24.141.201.66:4000 by clicking that link or inserting the address/port into your favorite MUD client. :)

Don't be completely surprised if you find a bug, or if you try to connect and it's not up because someone else found a bug. Although there are no known game-crashing bugs, there probably are lots of them hiding around.

If you have any suggestions or comments, I'd love to hear them! :)

This MUD engine uses allegro for Timers, Packfiles and Config Files. :)

[edit: Screenshot]
http://24.141.201.66/mud.gif

Fladimir da Gorf

Ehh... that was pretty confusing, if you asked me. First, it asked my name and when I pressed 'f' it immediately advanced to the next question, where I pressed 'y'. Now it asked for a password, and after I pressed 'a', it immediately wanted me to confirm it, so I pressed 'a' again.
Then I had no idea what to do next, for every character I pressed it said that I couldn't do something, so I quit... :-/
But maybe the problem is that I've never played a MUD before, just seen someone to play.

Derezo

Forgot to mention, there's a "show commands" command. :)

[edit]
F is still in the game, with 0 clients connected ;)
Gotta add some auto-disconnect code. Thanks for reminding me!

[edit2]
Oh.. and.. I just realized what you were saying.
That's rather odd how it would advance right after the first character... but I see.

I'll need to fix it to work with telnet perhaps.
Telnet must send 1 key at a time.. while MUSHClient (what I use) sends one command at a time.

[edit3]
Got it fixed ingame, but will need to work on the login before I put it over to the server.

CGamesPlay

unless the yellow room is connected to itself on the east and west, it needs some sort of "ouch, that's a wall" message.

Oh, and I can't find anybody else, mainly because I'm stuck in the yellow room.

Radagar

Derezo, I couldn't connect, must be down right now. I'm a big MUD fun, good luck with it. I'll try it again some time later.

CGamesPlay

Nope. It's up right now. And don't say "go north" :)

Derezo

I should mention (already did to CGP inside ;)) that you should have a dark default background.. like black. If it's white, it wont show white messages :P

I need a command to disable color. Noted. :)

[edit]
Oh yeah, and it is up.. but, there's an issue with Windows Telnet right now (though it should connect).

Trying to get it resolved, but I had to redo my entire buffering code... which is working, but for some reason screws up if you log in more than one person.. >:( I'll get it eventually.

Someone tried to connect as a blank character a minute ago.....

CGamesPlay

say WHEHE!!! now I can't stop typing say! I do it before I say anything!!!

say am I crashing your server? the login seems to have stopped.
say it quit right after I said kill Derezo with all my stats save INT set to -1.

Derezo

say Yeah, it buggered up with the crazy stats :P
say The log said "You do not have enough HP". Pretty weird.
say I loaded up the new version which was telnet friendly, but apparently it's got other issues.
say Namely, new player login.

say It's back up now... the windows telnet-hating version

:: UPDATE ::
Now supports windows telnet limitedly.
Your backspace wont work, nor will your arrow keys or anything fancy.

Anyway, it's functional in windows telnet now :P
So, all you guys who had one letter names can come back! F, B, A, L.. all of ya's! ;)

:: Another Update ::
Improved the command buffering code BIG TIME. I'll add support for backspace very soon.
It doesn't freak out on you if you don't put in a command and press enter. Command stacking is now fully supported as well, instead of only 2 commadn maximum before it starts eating your commands up (command stacking is sending multiple commands. Usually using a semi;colon to seperate them).

There's also a gossip command which sends your gossip to everyone in the game. Monsters no longer "leave the room" when they die, characters don't "enter the room" when they enter the game, and a few other minor changes (you don't see yourself leave or enter the room anymore :P).

Movin' along quite well. Thanks for all the comments from those who gave them in game! :)
Will work on some of the other stuff shortly.

Ah yes.. someone came in asking how to 'pose'. I was AFK, then came back, and then left again.. Sorry, heh.
The game doesn't quite have a proper social list yet, but you can use emote or /me. :)
/me smiles happily. -> "Derezo smiles happily"
emote stares up at the sky. -> "Derezo stares up at the sky"
Etc. :)

Radagar

D'oh! I was killed by a Burning X-G Killer!

Btw, I was a builder on a Mud previously. If you need any help with areas (assuming in-game building is implemented) then I'd be happy to help.

Let me know.

DanielH

Ignore

Derezo

X-G killer was crashing the MUD not long ago.. I gotta bring his stats down, or figure out why it's doing that.

In-game building is implemented, but I'm not quite looking for builders yet. I'll tell you when I am though -- that'd be great :) The more I can get the better.

The area file format is not yet complete, and it will be changing a lot in the next few months. I'd like to get the file formats completed before I start recruiting other people to join in the development. I don't want to be changing formats and losing data while other people are working on area projects.
The time will certainly come though.

I love building areas. One of the things I'm looking forward to. :) I'm going to make the builder as intuitive as possible. It's already somewhat intuitive, but I'd like to make it as simple as possible while also having advanced commands available.

I need to implement some scripting for npc scripts and room scripts still too.. That's going to take some time, as I've never successfully done that.
I may look into LUA.

My current agenda looks something like this:

  • Get most the dormant flags working (mainly npc flags and item flags)

  • Expand modifier functionality and visibility.

  • Fix some of the known bugs like the crazy stats crashes.

  • Add player flags which grant/restrict certain commands, and adjust commands to work with it.

  • Add building stuff so player X can only work on areas that have been assigned to player X.

  • Add Scripting.

The rest I'll get as I come to it.... but I may have forgot some stuff in there. :P

[edit]
Also, one thing I'm noticing.. a lot of people are going on expecting it to be a Diku, Merc or other base-code clone.
It's been created completely from scratch. :)
Some of the command are the same as other base codes, but most are not.

The public channel is 'gossip' (not chat). I'll add the single character abbreviation of . for that soon :)
As well as say... it needs a single character abbreviation. I'll find a character that suits it... I can't use a single quote without some moditications to other code.

Peter Hull

Woo! I'm there, man!

pete

gnolam

Some MUDs (Circle?) have both a gossip channel and a chat channel that can be enabled and disabled separately...

Derezo

Yeah, many have '[ooc]' (out of character) and gossip.. I'll have those two eventually as well.

Right now, gossip just takes a string and sends it to every client connected.. later I'll make some sort of proper channel system.

If you're at the login screen and someone gossips, you'll see it. ;D

Peter: I found out why your frog didn't load. You didn't give it a 'short name' and a 'long time'. 'Name' is just it's keywords for taking it, wearing it, etc.. :)
So, it was there.. we just couldn't see it ;D

Peter Hull

Cool. I could give you a hand with Lua if you need it..

Pete

Derezo

That would be excellent, when the time comes.

Expect many Lua threads in the not too distant future. :)

I'm hoping Lua is appropriate.
Is it as simple to run a script as "LuaRunScript(script);"?
If the script is edited during gameplay, you wouldn't need to do anything major to keep it working right? :)

CGamesPlay

Even simpler :)
You can call individual function in Lua, as well as other stuff.

But... Lua? Come on! Try LScript! :P

Well, it was an idea... :)

LSd016

Gee, Derezo. You gotta fix your OneArg() function, if you really want to keep LSD da stoopid script kiddie out. ;)

Derezo

OneArg()?

I actually didn't build the whole function.. ripped it from the merc code (that's the ONLY ripped function! :)) and changed it a little.

What's wrong with it? :P

1/*
2 * Pick off one argument from a string and return the rest.
3 * Understands quotes.
4 */
5char *OneArg( char *argument, char *arg_first )
6 {
7 char cEnd;
8 
9 while ( isspace( *argument ) )
10 argument++;
11 
12 cEnd = ' ';
13 if ( *argument == '\'' || *argument == '"' )
14 cEnd = *argument++;
15 
16 while ( *argument != '\0' )
17 {
18 if ( *argument == cEnd )
19 {
20 argument++;
21 break;
22 }
23 *arg_first = *argument;
24 arg_first++;
25 argument++;
26 }
27 *arg_first = '\0';
28 
29 while ( isspace( *argument ) )
30 argument++;
31 
32 return argument;
33 }

Should just fill arg_first with the first word up until a space, right?

Quote:

Try LScript!

I'd give it a try, but it doesn't look very complete. :(

Thomas Fjellstrom

um...

moose@natasha vector $ telnet 24.141.201.66 4000
Trying 24.141.201.66...
Connected to 24.141.201.66.
Escape character is '^]'.
Welcome to Derezo's MUD Engine!
Version: 0.06

Name: Tomasu
Character not found. Create a new character? y
Input New Password: ***
Confirm New Password: ***
You must be in a room to look.

>

is that a bad thing? a look after seemed to work.

Oh, another thing:

Also in the room: NOTE : Derezo is currently AFK!, Derezo, LSD

>
take LSD
You cannot find that here.

>

NOW FFS Why? Its in the room >:(

Derezo

The "You must be in a room to look." message is because you start off at room 0. :)

It transfers you to the first room, which is 101, and goes from there. I haven't set it up to do that automatically yet, because the only simple way is hackish.. want to avoid that. :P

Oh, you edited. Two can play at that game.
Well, you can only take objects.. which are shown under the players/characters in the room. ;)
(The note guy is an npc that I named that.. heh)

So, yeah.

Oscar Giner

Is that normal:

<code>
Welcome to Derezo's MUD Engine!
Version: 0.06

Name: Gin
Names must contain only letters, and must be at last 3 letters long.

Name: Gin
Password: ******
Newbie Training Grounds
Welcome to the Newbie Training Grounds!
...that's all I got so far. Pretty good huh?
</quote>
and I can enter. So it says that the name must be at least 3 letters (Gin has 3 letters), and when I type it the second time it accepts it.

LSd016
Quote:

What's wrong with it?

It doesn't take "max length" argument. Am I the only one who sees a stack-based overflow here? I might be wrong of course, Derezo sounds quite confident.

1CMD_FUN(CmdCast)
2 {
3 char buf[MAX_STR_LEN] = "";
4 char spell[SHORT_LEN];
5 CHARACTER *tgt;
6 
7 if(ch->cooldown)
8 {
9 Output2Ch(ch,"`bCatch your breath, first!`x\r\n");
10 return 0;
11 }
12 
13 if(strlen(args) < 1)
14 {
15 Output2Ch(ch,"Cast what? Where?\r\n");
16 return 1;
17 }
18 
19 // get the spell
20 args = OneArg(args,spell);
21 
22 // then get the target
23 args = OneArg(args,buf);
24(...)

Derezo
OG said:

Is that normal:

Nope. I just put that check in. I'll take a look at it, thanks :)

LSD: Yeah, I see. I should get rid of SHORT_LEN and define it as MAX_STR_LEN... Screw memory conservation. ;)

You can currently send more than MAX_STR_LEN to the server and cause an overflow. Once I fix that, it'll be impossible for args not to have a delimeter, since it's cleared to 0's (using memset) every time it gets a new command.

Lots of people comin' on. Many more than expected :P
Here's another screen shot. Most players yet at one time.
http://24.141.201.66/mud2.gif

LSd016

When you develop it into a stable system with scripting support, think about adding some simple story. Like a legendary sword buried in dungeons of the Kraków castle, which can then be used to defeat the mighty dragon sleeping deep inside the nearby lair.

Derezo

Yeah, I intend to have a small base story in areas that I build. Then other areas that are built by other people will be sort of like side quests. There will eventually be more side quests than there is a base plot..

In a MUD though, it's difficult to keep a story throughout the entire thing.. since there's no real "beating" it.. just finishing different quests and what not.. So there never really is an end, when you finally save the world and vanquish all evil... you just kill evil (or good!) in different lands, and in different ways. :)

Thomas Fjellstrom

OF COURSE theres no real beating it ::) yeesh, when you kill someone they don't die! Hows that work eh? (I'm dumb! or should I say "doesn't work".) :P

Derezo
MUD said:

You have been KILLED!
Lucky for you, this hasn't been implemented yet.

;D

When you kill npcs they die properly though.

Radagar

Heh, you're well on your way to having a decent MUD. Keep up the good work =)

This thread inspired me to grab a stock copy of Smaug and start playing with it. So far, I'm having fun!

Thomas Fjellstrom

How do you feel Derezo? You're know Inspiring!

Derezo

emote sniffles.
emote sheds a tear.

I feel so proud! :)

Text games are definitely the most fun to program. You don't need any media (images, music, sounds, models) to start it up. Not even programmers art! :)

BTW, Oscar, I can't see a problem in the name validation code.
Here's the code which checks to see if a name is valid.

int CheckNameReq(char *str)
 {
  int i;
  
  if(strlen(str) < 3) return 0;
  for(i=0;i<strlen(str);i++)
   {
    if(!isalpha(str<i>)) return 0;
   }
  return 1;
 }

If you use the arrow keys to move your cursor back from the client, it sends the keys as part of your name.. and arrow keys aren't alpha characters.. so, it makes your name invalid. So if you pressed Gn<leftarrow>i<enter>, it would actually send it in that order. The i would be after a left arrow which is after the n. Stupid windows telnet.

If that wasn't the problem, then I'll need to double check my buffering code to make sure it doesn't add characters on the end under certain conditions... and maybe strip spaces off the name when I check it, just in case.

X-G

Some telnet clients send some control sequences on connect that your server might not be able to cope with. These might be interpreted as part of the name on first attempt.

Oscar Giner

Nope. I press 'Gin', only, no other character. It fails the first time, and accepts it the second.

I tried a name with more than 3 characters and the same happens: the first time I connect and enter the name it says that the name should have at least 3 letters. I use Putty.

I've tested with windows telnet and it works. (I spend some time trying to figure out how to set the port).

So the problem doesn't seem to be CheckNameReq.

One speed tip: save the value of strlen(str) in a variable, so there's not a function call every loop :)

X-G

Like I said. Telnet sends control characters on connect. Derezo's server thinks these are part of your name (and obviously, they are not alphanumeric, hence the error). You can't see them, but they're in there.

With putty, you could try connecting in Raw mode rather than Telnet mode.

Oscar Giner

Yes, connecting in raw mode solved the problem.

[edit]
BIG BUG:

1STAT
2Stats:
3VNUM: 0
4NAME: Gin
5HP: 64090 / 2000
6MN: 0000 / 0000
7STR: 212
8AGI: 101
9INT: 1
10LCK: 1
11VIT: 1
12ATT PTS: 0
13Level Information:
14LEVEL: 3
15EXP: 4371
16AP: 28
17Class Information:
18CLASS: Squire
19Coins on hand:
20Copper: 200
21Silver: 100
22Gold: 100
23Platinum: 0
24Modifiers:
25 1 - 4 - 10
26>

I have 64090 HP!
The last time I checked the HP I had more than 4000. I exit and enter again (after trying to kill you;D), and I have that high amount of HP.

Derezo

Hmm.. I'll hafta look into that HP bug.
Got all night to work on it now ;)

CGames said:

Derezo, you must send \r instead of \n, eh?

Yep, working on fixing them all.
I have most of it converted to \r\n instead of just \n.. but some have not yet. Was working on that before I left earlier.

CGames said:

Derezo, did you add support for backspace? if you did, you did, it seems to be a bit buggy.

Yeah... I'll hafta check it out. I noticed sometimes it skips them for some reason. (Oh how I hate windows telnet..)

X-G said:

Some telnet clients send some control sequences on connect that your server might not be able to cope with.

It's not top priority, but I'll look into that.
If it's something simple (if it has a delimeter, or is only 1 character), it wont be hard to ignore.

Oscar said:

save the value of strlen(str) in a variable

Yeah. Thanks for reminding me. In my head I was thinking it was only called twice.. but no, it's called every loop :P

CGamesPlay

Well, actually, this is the problem I've found with the backspace:

>
lookk^H<enter>

Huh?
>
lookk^H <enter>
//...
>
looo^hk<enter>
//...
>

In other words, when you recieve a backspace, you decrement your string pointer, but what you should do is set the current location to ' ', then decrement. or even '\0'.

Derezo

Of course. That's why sometimes if I do multiple backspaces it does nothing.. :P

Thanks.

CGamesPlay

Also in Win telnet, I notice the death messages look something like this:

SOmething something!
                   blah!
                        d dropped 31 platinum // assume 80 cols here
coins!
      >

Is that because of the \n problem? I thought a \n went to the next line and flushed, \r just flushed. Am I wrong?

X-G

\n goes to the next line, \r resets the cursor to the column 0 again.

Thomas Fjellstrom

\r is a carrige return, which returns the "carriage" to teh start. \n is a line feed, which feeds another line... Think in typwriter terms. a \n without a \r will just advance a line, a \r will just return the cursor to the start of the line. add em both and you get tot he first char on the next line.

Thankfully, the best OS's chose a single char to do newlines.

Derezo, have you looked at any Telnet specs? so you can correctly handle the Telent protocol? (yes, there is a protocol spec, it tells you how everything is handled, and lists the various controll chars)

CGamesPlay

Ok, and in UNIX, \n does both?

Thomas Fjellstrom

in text files and such.. yeah, and \r is just a carriage return.

spellcaster

Isn't it great that Win, Unix and Mac all havwe different ways to handle the end of line?

:)

Makes programming more interesting ...

Derezo

SC: Not unless by more interesting you mean more frustrating. ;)

Quote:

Derezo, have you looked at any Telnet specs? so you can correctly handle the Telent protocol?

Nope. I'm winging it! ;)
I will when I launch this into a full fledged MUD, with actual players.. but for now, I'm just trying to support the basics.

Thomas Fjellstrom

ugghhh... It will be sooo much easier if you dont have to worry about telnet getting int he way.

Derezo

Yeah, I know. If windows telnet were non existant, I would still be using my old buffering method :P
(Other than the command stacking problem).

Now I treat the network like a keyboard buffer and use a readkey-style method of reading from it. :(

Thomas Fjellstrom

Thats how I had to deal with my HTTP server. belive that or not.. Headers are evil ;) you can have multiple lines in one header, and stuff.. so I read one byte at a time till I find my plain \n or two \n\n... that header reader func is a wee convoluted.

But what I meant, is if you followed the telnet specs (which most other protocols are based on, ie: ftp, http...), you wouldnt be having this problem I bet :P

Radagar

Yeah, but who likes following a SPEC? I mean, come on.. takes all the fun out of it!

Oh, wait.. I probably shouldn't be answering for Derezo.

goes back into his MUD

Derezo

No, probably wouldn't have had the problems if I checked out the spec.. It was my first networking app though, so I wasn't sure how I should go about it. So I just did whatever. :P

In due time I'll go and take a look at it, and fix my code.. Until then, I'll worry about the other stuff.

Thomas Fjellstrom

Ok. ;) See you soon :P no doubt it'll be about a bug related to the input. :D

Peter Hull

Hey, have you had 23y3 on there yet?

Derezo

Yeah.
"ChrisBarry" and "MatthewLeverton" came on when I was out doing stuff.
Neither of them said anything! >:(
Can you believe that!?!? The nerve, I tell you!

There's been a lot of people on. 1/2 of them haven't posted in this thread. Several of them I could have swore never posted in their lives. ;)

I'd dig through the users, but they're in their own letter-assigned directories.. so.... if you want to, you can check them out here:
http://24.141.201.66/mud/players

Just did some more updates.
Here's a list.

1- Say alias changed from - to ' (Thanks to Ashley [Angela] for making it a priority ;)
2 Because of this change, you can no longer use single quotes to represent one argument.
3 learn 'fire ball' must now be learn "fire ball". No big change.
4- 'Player has entered the game' message added.
5- 'Player has left the game' message added. Double-kill bug found and removed in the process.
6- TO_CH, TO_ROOM, TO_PLAYERS, TO_NOTCH, TO_NOTTGT changed to flags (DoAction types).
7- Attribute dependant point for skills added.
8- Defense attribute for skill defender's changed to reflect dependant point.
9- Server-side change to logs. Now outputs ALL logs to the console, as well
10 as the log file.
11- Coin taking combined to one line rather than one for each coin type.
12 Also outputs the message to all players in the room.
13- Backspace problem fixed. Should work now. (Thanks to CGames for pointing that out)
14- New lines should all be properly formated as \r\n. Post a small quote of where it screws up if
15 you happen to find a spot (I can't tell from within my client).
16- Go command added, by popular demand. Works the same as n/s/e/w/u/d, but you need to put go before it.
17- Take, Drop and Give now display properly.
18- Buffer limitations added to server code. (Thanks to LSD for pointing that issue out)

Breakman79

Looking good. I've never played a MUD before but kind of reminds me of the old BBS game, Legend of the Red Dragon. I need to find something better than telnet - ack!

23yrold3yrold
Quote:

"ChrisBarry" ... came on when I was out doing stuff.

Like caek I did. I was thinking of trying it, but I've never used a MUD before so I'd probably be lost :P.

Derezo

Well.. then.. who the fark made ChrisBarry? :P

I must say I found it rather odd. I came on and it said something like:

ChrisBarry has left to the North.
MatthewLeverton has left to the North.

(I was in the room where characters are created in)
..so both players were created around the same time :P

23yrold3yrold
Quote:

..so both players were created around the same time

I would assume so, since I'm guessing the ML is a fake too (shouldn't he go by konforce?) ...

Patrick Barry

Hey 23! Using a MUD is easy. Just log on and type 'show commands' when you get the '>' prompt. You should have no trouble trying the game out.

When I first started using MUDs I thought they were really complex to use, but after trying one out for an hour I found that they were really easy, and fun to use.

Derezo

Yeah. It's always confusing for first-timer's. You get use to it though.

Mainly because there's so much text coming at you, and n00bs don't know what to look for in it. ;)

Battles, for example, are very fast paced.. they look like:
Flames leap from your hands and scorch A Crazy Monster!
Your spell deals 9856 damage to A Crazy Monster!
Derezo slashes A Crazy Monster and deals 321 damage!
A Crazy Monster bites Derezo and deals 2 damage!
Derezo slashes A Crazy Monster and deals 327 damage!
A Crazy Monster bites Derezo and deals 4 damage!
Derezo slashes A Crazy Monster and deals 309 damage!
A Crazy Monster bites Derezo and deals 3 damage!

Really all you want to look at is the numbers and the names, and skip everything inbetween. ;)
It's just there so it makes sense. If all it said was "Derezo 321 Monster".. it just doesn't look very elegant. :P
It's all color coded too.. so it's easy to spot what you need to know.

As for the commands, it's like using a DOS-Based chat room. :P
As patrick says, 'show commands' gives you all the commands. Typing them in will usually give you a helpful syntax message.. but sometimes not right now. In a complete mud, there's also a help system which you can use to find help on commands/spells/classes/whatever. :)

[edit]
More updates.
Should be more responsive now. Output is now handled on a seperate thread for each client, which was causing slowdowns before. (Had to send all the data to another client in order to keep the game logic going)

Added a little piece of code which patrick gave me which tells the client to hide the local echo. Added it for when you enter your password at login (wont show it when you type it).

Bunch of other minor things. Added some flags and stuff... nothing else of interest. :P

[edit]
Even more updates.
Now it should be safe with ANY client if it follows the telnet spec. It even sends some proper telnet commands now, but for the most part just ignores telnet commands... cuz most of them are pretty lame. ("Do this.","Ok, are you sure?","Yeah. Do it.","Well, I can't. Sorry.". ::))

Peter Hull

8-)

spellcaster

It doesn't seem to work with windows XP's telnet.
I connect, get your colorful login (which looks pretty bad since I normally use a blue BG... and if I change to a black BG the red "name" string is almost un-readable).
Anyway... I don't get an echo for anything I type.
Even if I just type blindly, nothing happens...

gnolam

Breakman79: Legend Of The Red Dragon you say? Ahh, the wonders of telnet :)
(direct telnet link for the lazy)

Derezo: I get "Connection refused" when I try to connect :P
And damn! These MUD threads have made me start to feel MUD withdrawal symptoms now - must... resist... the urge to... start mudding again...

Radagar

spellcaster, you have to turn on Local Echo with WinXP Telnet or you won't see a thing you type.

type "Set LOCAL_ECHO" before you connect.

Good luck!

AikonIV

I'm really looking forward to try this thing out! Unfortunately it appears to be down at the moment...

I'll try it again later and see if I can get anywhere.

Derezo
Quote:

which looks pretty bad since I normally use a blue BG... and if I change to a black BG the red "name" string is almost un-readable

I can't really control the brightness of colors. I only have Bold and Regular weight adjustments. Most clients also change the brightness for these.

You'll need to adjust the standard colors from your client (Most use the standard 16 color pallete like MS Paint has).

I'll have an option to remove ANSI Color in the not to distant future (already have a function to stip it, just haven't made an option yet).

Quote:

I don't get an echo for anything I type.

Also a client setting. However, my server tries to disable the echo, but just for the password. It enables it after you enter a password.
[edit: Actually, you're right. Windows telnet is borked now. I'll fix that... looks like it wants a confirmation when I request to change the client-side local echo setting.. I'll just comment it out for now until I finish integrating the telnet spec :P]

Quote:

"Connection refused"

Yeah. It crashed last night..
There's a bug in the login that I never noticed until last night before I went to sleep. If you connect, and disconnect before logging in, it crashes.. ::)
I really need more error checking. Workin' on it. :P

spellcaster

Hm...
seems like there's a "spellcaster" already :(

Derezo

and it's not u? :P
Someone's makin a bunch of fake accounts........

BALETED!

Bug Fix:
Fixed the bug where it would crash when players connected and disconnected without logging in. (Bug in kill client didn't properly remove players from the online players list. Sometimes crashed when players didn't use the quit command too :P).

I'll be uploading a new package with the source/etc later today if anyone's interested.

Oscar Giner

heh, I also was cloned.

So yesterday you weren't the real spellcaster? There was also a ML...

Derezo

hey yeah.. there's also an OscarGiner.. ::)
Why I oughtta...

Holy, you must have a lot in your inventory.. or a bunch of skills that aren't in the game! ;)

logs said:

09.26.2003 16:47:10:0609 >> $$$ Loading Player players\G\Gin
09.26.2003 16:47:10:0609 >> ### ALLOCATED BLOCK @ 009E3270!
09.26.2003 16:47:10:0609 >> ### ALLOCATED BLOCK @ 009E30D0!
09.26.2003 16:47:10:0609 >> ### ALLOCATED BLOCK @ 009E30B0!
09.26.2003 16:47:10:0609 >> ### ALLOCATED BLOCK @ 009E3090!
09.26.2003 16:47:10:0609 >> ### ALLOCATED BLOCK @ 009E3070!
09.26.2003 16:47:10:0609 >> ### ALLOCATED BLOCK @ 009E3050!
09.26.2003 16:47:10:0609 >> ### ALLOCATED BLOCK @ 009E3030!
09.26.2003 16:47:10:0609 >> ### ALLOCATED BLOCK @ 009E3010!
09.26.2003 16:47:10:0781 >> ### ALLOCATED BLOCK @ 009E4560!
09.26.2003 16:47:10:0781 >> ### ALLOCATED BLOCK @ 009E43C0!
09.26.2003 16:47:10:0781 >> ### ALLOCATED BLOCK @ 009E4220!
09.26.2003 16:47:10:0781 >> ### ALLOCATED BLOCK @ 009E4080!
09.26.2003 16:47:10:0781 >> ### ALLOCATED BLOCK @ 009E4060!
09.26.2003 16:47:10:0781 >> ### ALLOCATED BLOCK @ 009E4040!
09.26.2003 16:47:10:0781 >> ### ALLOCATED BLOCK @ 009E4020!
09.26.2003 16:47:10:0781 >> ### ALLOCATED BLOCK @ 009E59E0!
09.26.2003 16:47:10:0781 >> ### ALLOCATED BLOCK @ 009E5840!
09.26.2003 16:47:10:0781 >> ### ALLOCATED BLOCK @ 009E56A0!
09.26.2003 16:47:10:0781 >> ### ALLOCATED BLOCK @ 009E5500!
09.26.2003 16:47:10:0781 >> ### FREEING BLOCK @ 009E3270
09.26.2003 16:47:10:0781 >> ### ALLOCATED BLOCK @ 009E3270!
09.26.2003 16:47:10:0781 >> ### ALLOCATED BLOCK @ 009E54B0!
09.26.2003 16:47:10:0781 >> Loaded Character 'Gin' Successfully

:o

BTW. Taking logs offline in a second.. since they're accessible (not that I think anyone knew that). It logs all commands recieved from the server, including passwords.. so.... Yoink!

[edit]
I'm going away for the weekend, so when the MUD crashes when I'm gone, it's out until Sunday. I'll try to resolve the disconnecting crashes before I leave, but no promises :P

Radagar

Hey Derezo, just wanted to let you know, my HP is bugged too. Here is what I'm at...

1Stats:
2VNUM: 0
3NAME: Radagar
4HP: 15427 / 00
5MN: 0000 / 000
6STR: 10
7AGI: 0
8INT: 0
9LCK: 0
10VIT: 0
11ATT PTS: 0
12Level Information:
13LEVEL: 1
14EXP: 1250
15AP: 0
16Class Information:
17CLASS: Squire
18Coins on hand:
19Copper: 0
20Silver: 0
21Gold: 0
22Platinum: 0
23Modifiers:
24 1 - 4 - 10

Derezo

Yeah. I gotta look into that... (first I gotta find an easy way to reproduce the problem :()

It was up ALL WEEKEND!
Can you believe it? :P
It didn't crash -- not once!

Thanks all for testing this and helping me out with the problems :)

Oscar Giner
Quote:

Holy, you must have a lot in your inventory.. or a bunch of skills that aren't in the game!

I collect frogs :)

Peter Hull

Everything's gone! The game is still running, but there's nothing there...

Peter

AikonIV

Actually, I'm not so sure everything's really gone, I just think that it doesn't start you in a room with any exits. If you use the goto command to go to room 101 (gotta love being able to cheat, heh), you end up at the entrance to the Forgotten Castle, which I'm guessing is a new area that Derezo is working on creating.

EDIT: I think I just crashed it (blushes). I was experimenting with the redit command, I think the last thing I did was 'redit 200', a second later I got a Connection Lost, and can't reconnect. Couldn't ping it either.

Derezo

Actually, Zemus is creating forgotten castle (101 - 200). I'm creating Elven Forest (201 - 300).
He's getting use to the editor (He's my cousin, staying at my place for a bit).

All the old players / areas got earased, because I converted a big portion of the file format. I'm going to implement a command that will load everything in the old format, and save it in the new format.. but going to take some time. Working on a few other things right now. :)

AikonIV

Heh, I'd suggest making it start you somewhere other than the Void...it's pretty boring there :)

Is there a room number you can go into to get to your elven forest? Or do you have to load/somehow get into a different area first?

I don't really know how you are handling your areas. Do all areas have to have unique room VNums? Or are only the rooms from one area ever loaded at once?

rockslave

Nice! But I think we should begin in a ceratin game room. How do I get to your elven forest, Derezo?

Derezo

You can get there by typing "goto 201", sans the quotes. :)

Aikon: I handle the areas in a linked list. Each have a lvnum (low vnum) and a hvnum (high vnum) which is the range for the vnums available to them. Right now it only applies to rooms (properly).. because you can still create objects/mobiles outside of the area's vnum range.. but, later, it will matter for everything. Vnums are global (not in the programming sense ;)), and each area has a portion of those vnums assigned to them.

Areas are loaded from an areas.txt file, one by one.. I noticed you tried to create an area. :P
Aedit is littered with bugs right now, and you need to be very careful when using it. I did no error checking and assumed that every command is going to be entered with perfection. ;) Which is rarely the case...

I should change the void.. :P

rockslave

How do I choose my character class?

Derezo

Well, since I don't have many (read: any finished) areas, I don't have any guildmasters. So, the only way to change your class at this time is using mset.
mset takes arguments like so:

mset <target> <field> <amount>

target can be 'self' for yourself, or other players/mobiles.
'field' can be CLASS, HP, MN, AGI, STR, LCK, VIT, INT, AP, etc.
Amount is the number you want to change it to.

For class, you need to use numbers (for now) to assign yourself a new class.
The only class with a skill right now is Wizard. They have scorch which takes 35AP to learn (using the learn command). Wizard is class #3. So you can switch to wizard by typing 'mset self class 3' :)

Radagar

Well I played around some more on the mud. Getting much more stable, I wasn't able to crash it. I set myself as a wizard, but I couldn't find a single MOB to fight, and I had no HP.

Anyways, it's slowly coming along. Let us know when you do another big update.

CGamesPlay

Radagar: mset self hp -1 :)

And what is a MOB (you make it sound like an acronym)?

Peter Hull

MOB= mobile
A bit like an NPC in other words.

Pete

Radagar

yep, MOB is an old MUD term meaning Mobile, as Peter said. It is used for any creature in a mud that isn't player controlled. A non-player character or creature.

Derezo
Quote:

Let us know when you do another big update.

Will do. :)
On the 1.0 release I'll be making another post :)

Freke

Good mud, looks like it'll be very nice ;D
It's annoying when you type you pass and theres no *'s just plain text, but you probobly know that ;)

For everybody using telnet, just download putty, it's only 0.35mb.
download here

Derezo

Freke: Yeah, the password problem was resolved for a short period. Later it was noted that some clients (our good friend windows telnet, of course) don't want to do that. So they tell me they wont do it, and wait for me to give the ok or something.. and since I don't send that yet, they wait forever for me to do that. :(

So, once I add full telnet support, that code will be uncommented and used once again. :)

BTW, people may have noticed that I haven't added nothing to it this month at all.. that's because I'm coding my entry for HalloweenHack and working on my PHP, and I've been sitting at this desk a little less. :P I'll probably work on it more when winter hits..

PyroBoy

how dose it work?

Derezo

Connect to it via a telnet client (such as windows telnet, but I would recommend downloading something better). The address is in my sig, or in the first post. Port 4000.

Enter a name & password, and you're in. There's not much you can do right now, especially if you don't explore the commands.. as you start in a room with nothing in it. :(

Room 101 & 201 are entrances to areas. You can type 'goto 101' or 'goto 201' to go there. :)

(no more repeating myself ;))

If it doesn't connect, it could have crashed and I haven't rebooted it yet. If you connect and it's really slow, my cousin could be playing Vice City.. like he is now. ;D

gnolam

Ah, I finally managed to connect (BTW, is there a way to change the default telnet client in Windows? It would be nice to be able to click telnet links and have them opened with PuTTy...).

Can you get past the door in area 101?

Derezo

He may have locked the door.. and I don't think unlocking is possible yet.. ahem. "open" is a command though, and the direction is the argument.
eg. 'open north'
Later I'll also add keywords to door so you can type 'open door'.. or 'open gate'

Quote:

... change the default telnet client in Windows?

[edited response]
In windows explorer (XP), go into the folder options (tools->folder options)
Select the 'file types' tab.
There's one named URL:Telnet Protocol. Edit it.

I first did a registry search, and found that line.. but I was looking for something that invoked telnet.exe. Looks like rundll32 does that.

Win9x tutorial can be found here.

Radagar

Hey Derezo, I sent you a PM.

Karadoc ~~

I like MUDs.
But I already spend way too much time playing 'MUME'.
So I don't think I'll play your game. ;)

Derezo

Going to be updating the server in 2 seconds, and a few minutes after that I'm going to be updating my site with the newest version : 0.07. (Will be the third update on my site today, heh)
The previous version was 0.06 which had quite a few bugs compared to the version I've had running on the server for the past couple weeks. If you're interested, you can check the changes.txt file included in the download.

My project was also accepted into the Depot the other day :)

Wow. This thread is very old... I think it's about time it dies. :P

Thread #303221. Printed from Allegro.cc