Thanks! Ya...Every version of OLC that I've tried has blown my stock Rom up. I've tried 2.0, 2.1, 1.9 (i think...having a hard time remembering now), and just recently tried 1.81...None of which worked, so I have something that's buggy.... I've tried running QuickMUD because it already has built in OLC but I would prefer something almost completely stripped down of all races and classes with yet making it possible to add new races and classes (items as well for that matter, getting rid of all old stock items). QuickMUD Advanced 1.1 came somewhat close for me, although I don't care too much for some things in it...I'll give the one you mentioned a try though. What version would you recommend based on what I've said above, and where can I find it?
***EDIT***
Alright. So I'm trying version 3.9b, downloaded from mudmagic, and was incredibly impressed while it was compiling. It appears to have many of the features that I am looking for already built in, and looked like a remarkably clean compile - well written. Until....
telnet.c: In function `int telopt_unknown(DESCRIPTOR_DATA*, unsigned char,
unsigned char, bool)':
telnet.c:212: warning: comparison is always true due to limited range of data
type
telnet.c:225: warning: comparison is always true due to limited range of data
type
telnet.c:232: warning: comparison is always true due to limited range of data
type
make: *** [telnet.o] Error 1
bash-3.00$
Here's the segment in question
/* telopt_unknown handles all the negotiation commands that the mud server
doesn't understand
*/
int telopt_unknown(DESCRIPTOR_DATA * d, unsigned char c, unsigned char t,
bool quiet)
{
char buf[MAX_STRING_LENGTH];
char cmd[MAX_INPUT_LENGTH];
char opt[MAX_INPUT_LENGTH];
char rev;
char len = 1;
if (c == '\n' || c == '\r' || c == '\0')
return 0;
/*line 212 is next line*/
if (TELCMD_OK(c))
{
sprintf(cmd, "%s", TELCMD(c));
if (c == IAC)
len = 1; /* IAC IAC */
else if (c >= SB)
len = 2; /* IAC DONT/DO/WONT/WILL/SB ?? */
else
len = 1; /* IAC ?? */
}
if (!quiet)
{
/*line 225 is next line*/
if (TELCMD_OK(c))
sprintf(cmd, "%s", TELCMD(c));
else
sprintf(cmd, "[%u]", c);
if (TELOPT_OK(t))
sprintf(opt, "%s", TELOPT(t));
/*line 232*/ else if (TELCMD_OK(t))
sprintf(opt, "%s", TELCMD(t));
else if (t == 85)
sprintf(opt, "COMPRESS-1");
else if (t == 86)
sprintf(opt, "COMPRESS-2");
else
sprintf(opt, "[%u]", t);
switch ((unsigned char) c)
{
case WILL:
rev = WONT;
break;
case WONT:
rev = DONT;
break;
case DONT:
rev = WONT;
break;
case DO:
rev = DONT;
break;
default:
rev = c;
break;
}
sprintf(buf, "%c%c%c", IAC, rev, t);
write_to_descriptor(d, buf, 0);
}
return len;
}
|