Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Holyavenger

Pages: [1] 2
Drivers / FLUFFOS if is a fork of 3.1.2?
« on: November 04, 2013, 07:08:01 PM »

     I have been doing muds since 92 and I didn't realize that FluffOS is actually a fork of 3.1.2. Is this true?

LDMUD.EU states:

Similar projects
•FluffOS is a fork of MudOS which is a fork of LPMud 3.1.2.

I saw someone tried to retrofit FLuffOS in the forums, but kind of got stuck with some of the simul_efuns. I'd be curious to see where and how they got stuck and if, it was indeed possible to retrofit something that old. Its an odd fascination akin to old muscle cars being reminted (something old/new)

Anyone have any comments or get this to work?


   Question:   I was kind was wondering if anyone had any experience with ranged weapons hitting targets. Complications include environmental (fly, flying + invisible, elevation, water, cover). How can this be done? Even on a plain with outside rooms adjacent, has anyone seen this done well in an LPMUD?

I know we had a spell on Dragonfire, that hit adjacent rooms with hellfire from a hellstrike making everything aggressive. But what if the shot hits the intended target, not everyone. I'm curious how others may have designed their muds or are thinking of designing them to include viable ranged combat.

General / BugRep - Web: Deadsouls D/L link needs adjustment
« on: November 04, 2013, 06:15:57 PM »
Hi Crat,

    FYI, I just tried to DL your 3.8 version, but its not linked to the file dir because the version changed to


Drivers / FluffOS : external command's in driver config
« on: April 25, 2013, 09:59:07 AM »
I noticed there that fluffos reference's a external command ability. I believe this to be in the startup configuration (config.lima, confg.nm3 etc) at driver execution. I've seen ext_command1= ext_command2 = etc . What are the limitations to calling eternal commands? Can we just anything? In theory, can one just add the full range of file of posix tools via this method?

Drivers / 2.26.1
« on: April 10, 2013, 11:12:18 PM »
copied stock options.h to local_options.h stock, and it fails with a compile with build.FluffOS

looking for sys/sdt.h in interpet.c

kernel 3.8.6
Standard 4.7 build for that os package

bison, flex, curses, crypt and compat all on par for the course.

Drivers / 2.26
« on: April 10, 2013, 11:01:32 PM »
Crat did  great job with including /configure with most of the fluff distros. Kudos there. However FYI if you use FLUFFOS, you HAVE to to look over the the options.h from 2.26 file and see how it differs from say 2.15 fluffoS, cause there are compile breaking options ommited.

Really the configure script would be cool on the git server.

Second cavet, do not enable DB functions unless you have mySQL or similar setup fully. Its a deal breaker on the compile.

Third. Dont bother with less than GCC 3.3 its not gonna fly.

Fourth MALLOCS, there are many malloc options now. Incuding one JREMALLOC which allows for simultantionus actions. These shpuld all be in one area in the options.h file. Wrappers, can we use these, did anyone test lately? lets stick to one malloc even if its 32 for consistency sake on errors

DTRACE/.... PAIN in the AXehandle its seems to be missing most of the time or its like dtrace+compile is missing from localoptions and just drops compiles.

Fifth props to the old gods of MudOS, but really its come along way now insomuch as lpmud is very different from LdmuD,, its time to drop building mudos out of the loop. Rename Fluffos BuilD.MUdoS,bat  all the platform files are not only clutter, but confusing to newcomers. If there is some wierd license issue, im sure a pool of talented coders can emulate everything so theres no real money loss with renaming it fluffos

LIL the testsuite, should be noted broken on the windows package you cant test any  efuns. I havent tested linux

Moreover should we ask people to compile in debug mode for better feedback? the -03 64 is pretty hard core on gcc and it gets flakey sometimes. In the interest of the driver progress, should it not be so high by defualt

Design Lab / MudOS/FluffOS Parsing Question
« on: March 23, 2013, 12:25:26 AM »
A little background, In 1999/2000, I talked to a Developer named Scatter and he had a mighty coder named about their lima derivative they were running.

In the end, because the muds were were creating where to appeal to non-english users. We wanted the ability to use verbs and local commands (add_actions).

Scatter modified this file /driver/func_spec.c, I think near the #ifndef add_action area
Code: [Select]

#include "spec.h"

#include "op_spec.c"
 * This file specifies types and arguments for efuns.
 * An argument can have two different types with the syntax 'type1 | type2'.
 * An argument is marked as optional if it also takes the type 'void'.
 * Comment out the efuns that you do not want.  Be careful not to comment
 * out something that you need.
 * The order in which the efuns are listed here is the order in which opcode
 * #'s will be assigned.  It is in your interest to move the least frequently
 * used efuns to the bottom of this file (and the most frequently used
 * ones to the top).  The opcprof() efun could help you find out which
 * efuns are most often and least often used.  The reason for ordering
 * the efuns is that only the first 255 efuns are represented using
 * a single byte.  Any additional efuns require two bytes.

#define OR_BUFFER
#define OR_BUFFER | buffer

/* These next few efuns are used internally; do not remove them.
 * The leading _ is used to keep track of which efuns should exist,
 * but not be added to the identifier lookup table.
 * These names MUST exist, and may either be real efuns, or aliases
 * for another efun.  For example, one could remove clone_object
 * above, and change the internal one to:
 * object _new(string, ...);
/* used by X->f() */
unknown _call_other(object | string | object *, string | mixed *,...);
/* used by (*f)(...) */
mixed _evaluate(mixed, ...);
/* default argument for some efuns */
object _this_object();
/* used for implicit float/int conversions */
int _to_int(string | float | int OR_BUFFER);
float _to_float(string | float | int);
/* used by new() */
object _new(string, ...);

unknown call_other _call_other(object | string | object *, string | mixed *,...);
mixed evaluate _evaluate(mixed, ...);
#ifdef COMPAT_32
mixed funcall _evaluate(mixed, ...);
object this_object _this_object();
int to_int _to_int(string | float | int OR_BUFFER);
float to_float _to_float(string | float | int);
object clone_object _new(string, ...);

function bind(function, object);
object this_player(int default: 0);
object this_interactive this_player( int default: 1);
object this_user this_player( int default: 0);
mixed previous_object(int default: 0);
object *all_previous_objects previous_object(int default: -1);
mixed *call_stack(int default: 0);
int sizeof(mixed);
int strlen sizeof(string);
#ifdef USE_ICONV
int strwidth(string);
int strwidth sizeof(string);
void destruct(object default: F__THIS_OBJECT);
string file_name(object default: F__THIS_OBJECT);
string capitalize(string);
string *explode(string, string);
mixed implode(mixed *, string | function, void | mixed);
int call_out(string | function, int,...);
void call_out(string | function, int,...);
int member_array(mixed, string | mixed *, void | int, void | int);
int input_to(string | function,...);
int random(int);
void defer(function);

object environment(void | object);
object *all_inventory(object default: F__THIS_OBJECT);
object *deep_inventory(object | object * | function, void|function default: F__THIS_OBJECT);
object first_inventory(object|string default: F__THIS_OBJECT);
object next_inventory(object default: F__THIS_OBJECT);
void say(string, void | object | object *);
void tell_room(object | string, string | object | int | float, void | object | object *);
object present(object | string, void | object);
void move_object(object | string);

void add_action(string | function, string | string *, void | int);
string query_verb();
int command(string);
int remove_action(string, string);
int living(object default: F__THIS_OBJECT);
mixed *commands();
void disable_commands();
void enable_commands();
void set_living_name(string);
object *livings();
object find_living(string);
object find_player(string);
void notify_fail(string | function);
void set_this_player(object | int);
void set_this_user set_this_player(object | int);

string lower_case(string);
string replace_string(string, string, string,...);
int restore_object(string, void | int);
mixed save_object(string | int | void, void | int);
string save_variable(mixed);
mixed restore_variable(string);
object *users();
mixed *get_dir(string, int default: 0);
int strsrch(string, string | int, int default: 0);
#ifdef COMPAT_32
int strstr strsrch(string, string | int, int default: 0);

/* communication functions */

void write(mixed);
void tell_object(object, string);
void shout(string);
void receive(string OR_BUFFER);
void message(mixed, mixed, string | string * | object | object *,
                  void | object | object *);

/* the find_* functions */

    object find_object(string, int default: 0);
    object load_object find_object(string, int default: 1);
    int find_call_out(int|string);
    int find_call_out(string);

/* mapping functions */

    mapping allocate_mapping(int | mixed *, void | mixed);
    mixed *values(mapping);
    mixed *keys(mapping);
#ifdef COMPAT_32
    mapping map_delete(mapping, mixed);
    mapping m_delete map_delete(mapping, mixed);
    mixed *m_values values(mapping);
    mixed *m_indices keys(mapping);
    void map_delete(mapping, mixed);

    mixed match_path(mapping, string);

/* all the *p() type functions */

    int clonep(mixed default: F__THIS_OBJECT);
    int intp(mixed);
    int undefinedp(mixed);
    int nullp undefinedp(mixed);
    int floatp(mixed);
    int stringp(mixed);
    int virtualp(object default: F__THIS_OBJECT);
    int functionp(mixed);
#ifdef COMPAT_32
    int closurep functionp(mixed);
    int pointerp(mixed);
    int arrayp pointerp(mixed);
    int objectp(mixed);
    int classp(mixed);
    string typeof(mixed);

    int bufferp(mixed);
    buffer allocate_buffer(int);

    int inherits(string, object default: F__THIS_OBJECT);
    void replace_program(string);

    mixed regexp(string | string *, string, void | int);
    mixed *reg_assoc(string, string *, mixed *, mixed | void);
    mixed *allocate(int, void | mixed);
    mixed *call_out_info();

/* 32-bit cyclic redundancy code - see crc32.c and crctab.h */
    int crc32(string OR_BUFFER);

/* commands operating on files */

    mixed read_buffer(string | buffer, void | int, void | int);
    int write_buffer(string | buffer, int, string | buffer | int);
    int write_file(string, string, int default:0);
    int rename(string, string);
    int write_bytes(string, int, string);

    int file_size(string);
    string read_bytes(string, void | int, void | int);
    string read_file(string, void | int, void | int);
    int cp(string, string);

    int link(string, string);
    int mkdir(string);
    int rm(string);
    int rmdir(string);

/* the bit string functions */

    string clear_bit(string, int);
    int test_bit(string, int);
    string set_bit(string, int);
    int next_bit(string, int);

    string crypt(string, string | int);
    string oldcrypt(string, string | int);

    string ctime(int|void);
    int exec(object, object);
    mixed *localtime(int);
    string function_exists(string, void | object, void | int);

    object *objects(void | string | function);
    string query_host_name();
    int query_idle(object);
    string query_ip_name(void | object);
    string query_ip_number(void | object);
#ifndef NO_SNOOP
    object snoop(object, void | object);
    object query_snoop(object);
    object query_snooping(object);
    int remove_call_out(int | void | string);
    int remove_call_out(void | string);
    void set_heart_beat(int);
    int query_heart_beat(object default:F__THIS_OBJECT);
    void set_hide(int);

#ifndef NO_RESETS
    void set_reset(object, void | int);

#ifndef NO_SHADOWS
    object shadow(object, int default: 1);
    object query_shadowing(object);
    mixed *sort_array(mixed *, int | string | function, ...);
    void throw(mixed);
    int time();
    mixed *unique_array(mixed *, string | function, void | mixed);
    mapping unique_mapping(mixed *, string | function, ...);
    string *deep_inherit_list(object default:F__THIS_OBJECT);
    string *shallow_inherit_list(object default:F__THIS_OBJECT);
#ifdef COMPAT_32
    string *inherit_list deep_inherit_list(object default:F__THIS_OBJECT);
    string *inherit_list shallow_inherit_list(object default:F__THIS_OBJECT);
    void printf(string,...);
    string sprintf(string,...);
    int mapp(mixed);
    mixed *stat(string, int default: 0);

 * Object properties
    int interactive(object default:F__THIS_OBJECT);
    int has_mxp(object default:F__THIS_OBJECT);
    int has_zmp(object default:F__THIS_OBJECT);
    void send_zmp(string, string *);
    int has_gmcp(object default:F__THIS_OBJECT);
    void send_gmcp(string);
    string in_edit(object default:F__THIS_OBJECT);
    int in_input(object default:F__THIS_OBJECT);
    int userp(object);
#ifdef COMPAT_32
    int query_once_interactive userp(object);

#ifndef NO_WIZARDS
    void enable_wizard();
    void disable_wizard();
    int wizardp(object);

    object master();

 * various mudlib statistics
    int memory_info(object | void);
    mixed get_config(int);

#ifdef PRIVS
/* privledge functions */
    string query_privs(object default:F__THIS_OBJECT);
    void set_privs(object, int | string);
#endif                          /* PRIVS */

    int get_char(string | function,...);
    object *children(string);

    void reload_object(object);

    void error(string);
#ifdef COMPAT_32
    void raise_error error(string);
    int uptime();
    int strcmp(string, string);

#ifndef WIN32
#if (defined(RUSAGE) || defined(GET_PROCESS_STATS) || defined(TIMES))
    mapping rusage();
#endif                          /* RUSAGE */

    void flush_messages(void | object);

#ifdef OLD_ED
    void ed(string | void, string | int | void, string | int | void, int | void, int | void);
    string ed_start(string | void, int | void, int | void);
    string ed_cmd(string);
    int query_ed_mode();

    string cache_stats();

    mixed filter(string | mixed * | mapping, string | function, ...);
    mixed filter_array filter(mixed *, string | function, ...);
    mapping filter_mapping filter(mapping, string | function, ...);

    mixed map(string | mapping | mixed *, string | function, ...);
    mapping map_mapping map(mapping, string | function, ...);
    mixed *map_array map(mixed *, string | function, ...);
 * parser 'magic' functions, turned into efuns
    string malloc_status();
    string mud_status(int default: 0);
    void dumpallobj(string | void);

    string dump_file_descriptors();
    string query_load_average();

#ifndef NO_LIGHT
/* set_light should die a dark death */
    int set_light(int);

    string origin();

/* the infrequently used functions */

    int reclaim_objects();

    int set_eval_limit(int);
    int reset_eval_cost set_eval_limit(int default: 0);
    int eval_cost set_eval_limit(int default: -1);
    int max_eval_cost set_eval_limit(int default: 1);
#ifdef COMPAT_32
    int get_eval_cost set_eval_limit(int default: -1);

    void set_debug_level(int|string);
    mapping debug_levels();
    void clear_debug_level(string);

#if defined(OPCPROF) || defined(OPCPROF_2D)
    void opcprof(string | void);

    mapping *function_profile(object default:F__THIS_OBJECT);

    int resolve(string, string|function);
#ifdef USE_ICONV
    int set_encoding(string);
    string to_utf8(string, string);
    string utf8_to(string, string);
    int *str_to_arr(string);
    string arr_to_str(int *);
    void act_mxp();
    void websocket_handshake_done();
    void request_term_type();
    void start_request_term_type();
    void request_term_size(void | int);
/* shutdown is at the end because it is only called once per boot cycle :) */
    void shutdown(void | int);

Within the library, I think it was /lima/lib/secure/simul_efun/userfuncs.c
Code: [Select]
/* Do not remove the headers from this file! see /USAGE for more info. */

#include <mudlib.h>
#include <daemons.h>
#include <security.h>

string base_name(mixed val);

nomask object *bodies()
    return users()->query_body() - ({ 0 });

nomask object this_body()
    object u = this_user();

    return u ? u->query_body() : 0;

varargs nomask object find_user(string str, int even_linkdead)
    object *choices;

    if ( even_linkdead )
choices = children(USER_OB);
choices = users();
    choices = filter(choices, (: $1->query_userid() == $(str) :));

    if ( sizeof(choices) )
return choices[0];

    return 0;

varargs nomask object find_body(string str, int even_linkdead)
    object u = find_user(str, even_linkdead);

  if(!str || str==""){return 0;}
    if (u && (u = u->query_body())) return u;
    foreach (object b in bodies()) {
if (b->query_nickname() == str)
    return b;
    return 0;

nomask int wizardp(mixed m)
    if ( objectp(m) )
m = m->query_userid();

    if ( stringp(m) )
return SECURE_D->query_is_wizard(m);

    return 0;

nomask int adminp(mixed m)
    if ( !m )
m = this_user()->query_userid();
    else if ( objectp(m) )
m = m->query_userid();

    return member_array(m, SECURE_D->query_domain_members("admin")) != -1;

nomask int user_exists(string user)
    return USER_D->user_exists(user);

//:FUNCTION get_user_variable
// Get a variable value from the current user's shell object.
nomask mixed get_user_variable(string varname)
    object shell;

#define UNDEFINED_VALUE ([])[0]

    if ( !this_user() )
    shell = this_user()->query_shell_ob();
    if ( !shell )
    return shell->get_variable(varname);

//:FUNCTION set_this_user
//Works like set_this_player().  It was added for consistancies sake.
nomask void set_this_user(object ob)

And removing the /lima/lib/secure/badness file that stopped the driver from running with a non-standard option

I would like to offer this particular mud to other languages and need the ability temporarily remove the straigtjacket.

Point: I believe that  there is opportunity still if you appeal to multiple cultures. For example brail, spanish, chinese and or russian would appeal to a demographic that otherwise would be left untapped. These people could literally bring back old technology. All you have to do is use multi language descriptions.

all that is left if getting the parser to behave and get a few non english coders.

Does any one have a solution to adding these add_actions commands back. Should I rip the simulefuns from LIL for add_action. or whats the easiest way to re-add the feature I need?

Any coders know how this wizardry was originally done for me by Scatter/Musashi to modiefy function spec? and the other three files or whats the solve other then "use something else".

Back in 1999 Loriel was helping us out and I discared the perversion of lima with add_actions because I didnt want to slight Dave. I lost the modified files over the years.

Drivers / FluffOS v2.26.1 CYGWIN Compile failure rep
« on: March 18, 2013, 02:23:45 PM »

$ yacc -V
yacc - 1.9 20121003

$ bison -V
bison (GNU Bison) 2.7
Written by Robert Corbett and Richard Stallman.
GCC 4.7.2
Code: [Select]
$ gcc -v
Using built-in specs.
Target: i686-pc-cygwin
Configured with: /cygdrive/i/szsz/tmpp/gcc4/gcc4-4.7.2-1/src/gcc-4.7.2/configure
 --srcdir=/cygdrive/i/szsz/tmpp/gcc4/gcc4-4.7.2-1/src/gcc-4.7.2 --prefix=/usr --
exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/lib --d
atadir=/usr/share --localstatedir=/var --sysconfdir=/etc --datarootdir=/usr/shar
e --docdir=/usr/share/doc/gcc4 -C --datadir=/usr/share --infodir=/usr/share/info
 --mandir=/usr/share/man -v --with-gmp=/usr --with-mpfr=/usr --enable-bootstrap
--enable-version-specific-runtime-libs --libexecdir=/usr/lib --enable-static --e
nable-shared --enable-shared-libgcc --disable-__cxa_atexit --with-gnu-ld --with-
gnu-as --with-dwarf2 --disable-sjlj-exceptions --enable-languages=ada,c,c++,fort
ran,lto,objc,obj-c++ --enable-graphite --enable-lto --enable-java-awt=gtk --disa
ble-symvers --enable-libjava --program-suffix=-4 --enable-libgomp --enable-libss
p --enable-libada --enable-threads=posix --with-arch=i686 --with-tune=i686 --ena
ble-libgcj-sublibs CC=gcc-4 CXX=g++-4 CC_FOR_TARGET=gcc-4 CXX_FOR_TARGET=g++-4 G
NATMAKE_FOR_TARGET=gnatmake GNATBIND_FOR_TARGET=gnatbind --with-ecj-jar=/usr/sha

$ uname -a
CYGWIN_NT-6.1 wireless 1.7.17(0.262/5/3) 2012-10-19 14:39 i686 Cygwin

Code: [Select]
Andy@wireless /cygdrive/c/mud/fluffos-2.26.1
$ ./build.FluffOS
Preparing to build standard MudOS driver ...
Trying out some stuff to see what works; ignore errors ...
gmake: Nothing to be done for `nothing'.
Using standard a.out for compiler default executable
./build.FluffOS: line 197: xlc: command not found
comptest.c:1:0: sorry, unimplemented: 64-bit mode not compiled in
mkdir: cannot create directory `tmp': File exists
install: unknown option -- f
Try `install --help' for more information.
rm: cannot remove `tmp/insttest': No such file or directory
./build.FluffOS: line 379: ./a.out: No such file or directory
rm: cannot remove `a.out': No such file or directory
***************** Configuration completed **************
Installing MudOS on

Using install -c to install binaries in ../bin.
Using gcc -std=c99 -D_GNU_SOURCE -flto -E  for preprocessing.
Using gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__            -O3
 to compile.
Using bison -d -y  to make the compiler.
Edit GNUmakefile if this is not what you want

Otherwise, type 'gmake' to build MudOS, then 'gmake install'.

Andy@wireless /cygdrive/c/mud/fluffos-2.26.1
$ gmake
rm -f cc.h
echo "/* this file automatically generated by the Makefile */" > cc.h
echo '#define COMPILER "gcc -std=c99 -D_GNU_SOURCE -flto"' >> cc.h
echo '#define OPTIMIZE "-O3"' >> cc.h
echo '#define CFLAGS   "-D__USE_FIXED_PROTOTYPES__ -O3"' >> cc.h
echo '#define OBJDIR   "obj"' >> cc.h
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -o obj/edit_source.o
 -c edit_source.c
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -O3 -o obj/hash.o -c
bison -d -y  make_func.y
rm -f
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -o obj/
.o -c
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ obj/edit_source.o ob
j/hash.o obj/ -o edit_source
if test \( ! -r configure.h \) -o \( ! -r configuration \); then \
    rm -f configuration; \
    touch configuration; \
if test "Machine `uname -a` Configure version 5" = "`cat configuration`"; then \

    echo "Skipping configuration ..."; \
else \
    ./edit_source -configure; \
    echo "Machine `uname -a` Configure version 5" > configuration; \
Checking for include file <stdlib.h> ... exists
Checking for include file <unistd.h> ... exists
Checking for include file <time.h> ... exists
Checking for include file <sys/times.h> ... exists
Checking for include file <fcntl.h> ... exists
Checking for include file <sys/time.h> ... exists
Checking for include file <dos.h> ... does not exist
Checking for include file <usclkc.h> ... does not exist
Checking for include file <limits.h> ... exists
Checking for include file <locale.h> ... exists
Checking for include file <netinet/in.h> ... exists
Checking for include file <arpa/inet.h> ... exists
Checking for include file <sys/types.h> ... exists
Checking for include file <sys/ioctl.h> ... exists
Checking for include file <sys/socket.h> ... exists
Checking for include file <netdb.h> ... exists
Checking for include file <arpa/telnet.h> ... exists
Checking for include file <sys/sema.h> ... does not exist
Checking for include file <sys/socketvar.h> ... does not exist
Checking for include file <socket.h> ... does not exist
Checking for include file <resolve.h> ... does not exist
Checking for include file <sys/stat.h> ... exists
Checking for include file <dirent.h> ... exists
Checking for include file <sys/dirent.h> ... exists
Checking for include file <sys/filio.h> ... does not exist
Checking for include file <sys/sockio.h> ... does not exist
Checking for include file <sys/mkdev.h> ... does not exist
Checking for include file <sys/resource.h> ... exists
Checking for include file <sys/rusage.h> ... does not exist
Checking for include file <sys/wait.h> ... exists
Checking for include file <sys/crypt.h> ... does not exist
Checking for include file <crypt.h> ... exists
Checking for include file <my_malloc.h> ... does not exist
Checking for include file <mach/mach.h> ... does not exist
Checking for include file <mach.h> ... does not exist
Checking for include file <sys/sysmacros.h> ... exists
Checking for include file <dlfcn.h> ... exists
Checking for missing INADDR_NONE ... ok
Checking for random number generator ... using drand48()
Using BSD signals.
Checking if signal() returns SIG_ERR on error ... yes
Not Checking for inline ...(usage in driver code all broken anyway) const ...
Checking for strerror() ... exists
Checking for POSIX getcwd() ... exists
Checking for getrusage() ... exists
Checking for times() ... exists
Checking for gettimeofday() ... exists
Checking for fchmod() ... exists
Checking for big or little endian ... little
Checking for memmove() ... exists
Checking for library -lresolv ... exists
Checking for library -lbsd ... does not exist
Checking for library -lBSD ... does not exist
Checking for library -ly ... exists
Checking for library -lcrypt ... exists
Checking for library -lsocket ... does not exist
Checking for library -linet ... does not exist
Checking for library -lnsl ... does not exist
Checking for library -lnsl_s ... does not exist
Checking for library -lseq ... does not exist
Checking for library -lm ... exists
Checking for library -lz ... exists
Checking for library -lpthread ... exists
Checking for flaky Linux systems ...

./edit_source -options -malloc -build_func_spec 'gcc -std=c99 -D_GNU_SOURCE -flt
              -process grammar.y.pre
No "local_options" file present.  If you create one from "options.h",
you can use it when you get a new driver, and you will be warned if there are
changes to the real options.h which you should include in your local file.
Writing build options to option_defs.c ...
Using memory allocation package: sysmalloc.c
Building compiler files ...
Creating 'grammar.y' from 'grammar.y.pre' ...

./edit_source -process packages/Makefile.pre
Creating 'packages/Makefile' from 'packages/Makefile.pre' ...

./edit_source -process packages/GNUmakefile.pre
Creating 'packages/GNUmakefile' from 'packages/GNUmakefile.pre' ...

./edit_source -build_efuns -build_applies
Building efun tables ...

touch mallocwrapper.c
touch malloc.c
touch files
gmake main_build2
gmake[1]: Entering directory `/cygdrive/c/mud/fluffos-2.26.1'
gmake -C packages 'CC=gcc -std=c99 -D_GNU_SOURCE -flto' 'CFLAGS=-D__USE_FIXED_PR
OTOTYPES__ -O3' 'OBJDIR=../obj' 'RANLIB=ranlib' 'A=a' 'O=o'
gmake[2]: Entering directory `/cygdrive/c/mud/fluffos-2.26.1/packages'
gcc -std=c99 -D_GNU_SOURCE -flto -I../obj -I.. -D__USE_FIXED_PROTOTYPES__ -O3 -o
 ../obj/uids.o -c uids.c
gcc -std=c99 -D_GNU_SOURCE -flto -I../obj -I.. -D__USE_FIXED_PROTOTYPES__ -O3 -o
 ../obj/compress.o -c compress.c
gcc -std=c99 -D_GNU_SOURCE -flto -I../obj -I.. -D__USE_FIXED_PROTOTYPES__ -O3 -o
 ../obj/math.o -c math.c
gcc -std=c99 -D_GNU_SOURCE -flto -I../obj -I.. -D__USE_FIXED_PROTOTYPES__ -O3 -o
 ../obj/develop.o -c develop.c
gcc -std=c99 -D_GNU_SOURCE -flto -I../obj -I.. -D__USE_FIXED_PROTOTYPES__ -O3 -o
 ../obj/external.o -c external.c
gcc -std=c99 -D_GNU_SOURCE -flto -I../obj -I.. -D__USE_FIXED_PROTOTYPES__ -O3 -o
 ../obj/contrib.o -c contrib.c
contrib.c: In function `f_terminal_colour':
contrib.c:680:4: warning: implicit declaration of function `alloca' [-Wimplicit-
contrib.c: In function `pluralize':
contrib.c:1067:3: warning: implicit declaration of function `strcasecmp' [-Wimpl
contrib.c: In function `set_timezone':
contrib.c:1771:2: warning: implicit declaration of function `putenv' [-Wimplicit
contrib.c:1772:2: warning: implicit declaration of function `tzset' [-Wimplicit-
contrib.c: In function `reset_timezone':
contrib.c:1784:3: warning: implicit declaration of function `unsetenv' [-Wimplic
gcc -std=c99 -D_GNU_SOURCE -flto -I../obj -I.. -D__USE_FIXED_PROTOTYPES__ -O3 -o
 ../obj/sockets.o -c sockets.c
gcc -std=c99 -D_GNU_SOURCE -flto -I../obj -I.. -D__USE_FIXED_PROTOTYPES__ -O3 -o
 ../obj/async.o -c async.c
gcc -std=c99 -D_GNU_SOURCE -flto -I../obj -I.. -D__USE_FIXED_PROTOTYPES__ -O3 -o
 ../obj/dwlib.o -c dwlib.c
dwlib.c: In function `f_add_a':
dwlib.c:561:2: warning: implicit declaration of function `strncasecmp' [-Wimplic
ar rcu packages.a ../obj/uids.o ../obj/compress.o ../obj/math.o ../obj/develop.o
 ../obj/external.o ../obj/contrib.o ../obj/sockets.o ../obj/async.o ../obj/dwlib
ranlib packages.a
gmake[2]: Leaving directory `/cygdrive/c/mud/fluffos-2.26.1/packages'
bison -d -y grammar.y
rm -f*
sed "s/"  >
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -O3 -o obj/grammar.t
ab.o -c
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -O3 -o obj/lex.o -c
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -O3 -o obj/main.o -c
main.c: In function `main':
main.c:112:2: warning: implicit declaration of function `tzset' [-Wimplicit-func
main.c:163:2: warning: implicit declaration of function `srand48' [-Wimplicit-fu
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -O3 -o obj/rc.o -c r
rc.c: In function `set_defaults':
rc.c:220:3: warning: implicit declaration of function `strcasecmp' [-Wimplicit-f
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -O3 -o obj/interpret
.o -c interpret.c
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -O3 -o obj/simulate.
o -c simulate.c
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -O3 -o obj/file.o -c
file.c: In function `read_bytes':
file.c:566:5: warning: implicit declaration of function `fileno' [-Wimplicit-fun
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -O3 -o obj/object.o
-c object.c
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -O3 -o obj/backend.o
 -c backend.c
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -O3 -o obj/array.o -
c array.c
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -O3 -o obj/mapping.o
 -c mapping.c
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -O3 -o obj/comm.o -c
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -O3 -o obj/ed.o -c e
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -O3 -o obj/regexp.o
-c regexp.c
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -O3 -o obj/buffer.o
-c buffer.c
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -O3 -o obj/crc32.o -
c crc32.c
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -O3 -o obj/malloc.o
-c malloc.c
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -O3 -o obj/mallocwra
pper.o -c mallocwrapper.c
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -O3 -o obj/class.o -
c class.c
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -O3 -o obj/efuns_mai
n.o -c efuns_main.c
gcc -std=c99 -D_GNU_SOURCE -flto -D__USE_FIXED_PROTOTYPES__ -O3 -o obj/efuns_por
t.o -c efuns_port.c
efuns_port.c: In function `f_localtime':
efuns_port.c:146:41: error: `timezone' undeclared (first use in this function)
efuns_port.c:146:41: note: each undeclared identifier is reported only once for
each function it appears in
efuns_port.c:147:39: error: `tzname' undeclared (first use in this function)
GNUmakefile:91: recipe for target `obj/efuns_port.o' failed
gmake[1]: *** [obj/efuns_port.o] Error 1
gmake[1]: Leaving directory `/cygdrive/c/mud/fluffos-2.26.1'
GNUmakefile:84: recipe for target `main_build' failed
gmake: *** [main_build] Error 2

Andy@wireless /cygdrive/c/mud/fluffos-2.26.1

Lima Lounge / Google Code Lima Project found
« on: December 13, 2012, 07:04:00 PM »
I was running some google searches for muds.

I found one by coupdeforce

He's working on a SWMUD on

Anyone interested in taking a peak at his SVN might find some good lima examples.

If your nice, maybe he will give you permisson to use some of it. =)

Heres' the link.


Drivers / Cross-Compiling
« on: December 13, 2012, 06:57:11 PM »
I was thinking of building a cross-compiler that scales upward. Starting with GCC 2.95 to 3.4 to 4.7+.

Now, what are the disadvantages to cross-compiling for a mud environment. Does the extra baggage to fit more system just make the driver much slower?

Be gentle =) I am weak on the subject of cross compiling. To my way if thinking a driver should run on alot of systems. Muds are a cool topic to bring it up, even as a "Troll" topic.

Has anyone tried to cross-compile their drivers?

Drivers / GCC - Older the better?
« on: December 07, 2012, 07:51:12 AM »
One thing I noticed pouring through countless mudlibs is that some are very sensitive to driver version they use. Some of these drivers, assuming you wanted to just fire the old library up, you find they will only do so on specific versions of GCC. The older the library and matching, the more likely you need GCC-2.95 or older! For the heck of it, I tried to compile MudOS .09X on GCC 3.3 + and it failed. Although, the old amylaar driver 3.2.1@141 fires up on GCC 3.3.

I wish there was a mini linux distro that had like two gcc's 2.71 and 2.95 which matches near when they were originally released.

Anyone know and old linux distro mini like a slim Red Hat 7.3 (GCC 2.96) or other distro? Of should I compile a 2.95 GCC using GCC 3.3 backwards, the use the "alternative" command to switch back and forth?

Design Lab / LPC to Web Crossposting.
« on: November 28, 2012, 11:48:21 AM »

Since communication is a key player in mud development and retention, I was wondering how mud posts could be converted to phpbb3 or any other forum software. 
Proposed Steps
I Driver Preperation- MudOS or LDmud with MySQL enabled in compilation
II Mudlib Preperation:  Select a Library. Dead Souls/Lima has a BBoard. The latter has newgroups with option of a BBOARD’s In /contrib
III Design: Hopefully, defines for  LDmud or FluffOS defines  for maximum effectiveness.  What would be needed for this communication to work? Hopefully moving beyond just phpBB3 the database would be useful.
Do you think forum software would need a plugin or would it just somehow use the DB?
Any ideas whether this would be useful? I’m just thinking about the IPADs etc that people can access. We cant always telnet in via work.

Design Lab / Complex Limb Combat System in virtual gaming
« on: November 27, 2012, 06:36:15 PM »
Combat Theory - Most of us Know Warcraft, armor is armor, hps are hps. Some positioning matters in combat in terms of range, but there really isnt sectional limb combat. Bear form has more hps, cat does more dps but neither have tender areas. This is something that can be done in a mud.

Consider limb based combat with with wound features.
Given that players or mobs could alter their forms ( Shapeshifting, Changeling, Werebeasts, Dragonfoms, Druids, Spells etc)

Limb Based Combat with Wounds Features
A)   Traditional Total HP’s are used to determine Life or Death

B)   Armor Class – Different areas different AC potential (Natural AC + armor +situational (dex bonus, spell, or other) . In addition  AC that can be used on the player or mob as a whole, such as a spell (shield, magic armor, ring of protection)

What wounds are practical in a Mud Setting? Has anyone seen done well on any mud? I’ve seen some Nightmare library lose limbs, legs arms, etc, but not done well. 

I see in Lima mudlib, some can be marked vital. What should vital mean? Any suggestions on how you would see this done welcome

Drivers / 2.4.5 Amylaar - Mudlib debate
« on: May 16, 2012, 04:31:26 PM »
    I noticed a few posts about 2.4.5 (classic library) with modern drivers . Basically, they fall in one of the following catagories

- Older Players/Wizards that want to see that old magic retro revived
- Newer folks drawn by the realization that Warcraft, Star Wars, etc is nice art, but there's something to be said about 2.4.5 being a thronehall of the genesis of online gaming

I Debate
But why 2.4.5, why this one? One might see it Simulated in DGD, "scr scripted in Lima"... why? Because there's something there, admist the clutter that people WANT to see. What do you think that is? Old damage messages, Leo the Sage etc. The ultimately are disappointed when LDMUD or FLUFFOS provide "LIL" or a broken LDmud lib thats not compilable or playable. I for one, would like to see FluffOS or LDmud spin up 2.4.5 because I do believe if you give them this they will have a :

A Playable MUD, Using classic standard stats, levels and by giving homage and respect to what gave us online gaming. I think Wodan/FluffOS staff, LDMud groups could see a rise in their drivers if the following where done.


1) 2.4.5 on FluffOS.
2) Heaven 7 (2.4.5 ish) used to be runable under MudOS 9193c, use have to pair it with 3.0a Heaven 7 or earlier. It is likely this classic, could in theory actually fire up under FLUFFOS. 98% of Heaven 7 greatness was 3.0a or earlier anyhow (No disprect to Avatar). It just takes a little time by someone who can do it (knowlege). Angel's work should be revived.

Heaven 7 Symposium / Heaven 7 on MUDOS
« on: August 13, 2011, 06:12:28 PM »
In the README with the v3.0a version of Heaven 7, it said it ran with MUDOS.

I was wondering if anyone ever got it to load with MudOS/FluffOS? After version 3.0b MUDOS support was dropped.

Pages: [1] 2