请教大佬,启动本地源码后本地客户端连接失败,试了几天没成功

大佬好,实在没招了,特来求助!我这边有两份侠客行源码,一份是旧的(是mudren大佬传到github上并调试过的),一份是新的(在贴吧找的,看版本是2021年10月左右的版本),想要本地单机运行玩玩。用fluffos驱动。客户端为mushclient。

情况: (1)旧的源码可以搭建并连接成功基本没问题,但是新的源码就不行。 (2)新的源码自带了驱动,但是没有标明是那个fluffos版本。启动startlib服务后,通过mushclient连接本地127.0.0.1以及相应端口后,只显示了ver1.0,123456789abcd,并在过一会儿后断联。 (3)查看bin文件夹的log好像并没有什么奇怪的错误提示。日志如下:

E:\game\xkx2001\pkuxkx\bin>driver.exe config.cfg
Warning: Signal handler installation failed, not backtrace on crash!
========================================================================
Full Command Line: driver.exe config.cfg
Boot Time: Fri Dec 13 01:11:25 2024
Version: fluffos  (Microsoft Windows)
Jemalloc Version: 5.2.1-0-gea6b3e973b477b8061e0076bb257dbd7f3faa756
ICU Version: 67.1
========================================================================
Processing config file: config.cfg
==== Runtime Config Table ====
time to clean up: 600 (new: 1200)
time to reset: 900 (new: 300)
time to swap: 300 (new: 600)
evaluator stack size: 65536
inherit chain size: 30
maximum evaluation cost: 30000000 (new: 300000000)
maximum local variables: 64 (invalid new value: 30) (new: 64)
maximum call depth: 150
maximum array size: 15000
maximum buffer size: 400000
maximum mapping size: 150000 (new: 15000)
maximum string length: 200000
maximum bits in a bitfield: 12000 (new: 1200)
maximum byte transfer: 200000 (new: 10000)
maximum read file size: 200000
hash table size: 7001 (new: 65535)
object table size: 1501 (new: 32)
living hash table size: 256 (new: 4096)
gametick msec: 1000 (new: 100)
heartbeat interval msec: 1000
sane explode string: 1
reversible explode string: 0
sane sorting: 1
warn tab: 0
wombles: 0
call other type check: 0
call other warn: 0
mudlib error handler: 1
no resets: 0
lazy resets: 0
randomized resets: 1
no ansi: 1
strip before process input: 1
this_player in call_out: 1
trace: 1
trace code: 0
interactive catch tell: 0
receive snoop: 1
snoop shadowed: 0
reverse defer: 0
has console: 1
noninteractive stderr write: 0 (new: 1)
trap crashes: 1
old type behavior: 0
old range behavior: 0
warn old range behavior: 1
suppress argument warnings: 1
enable_commands call init: 1
sprintf add_justified ignore ANSI colors: 1
call_out(0) nest level: 1000 (new: 100)
trace lpc execution context: 0
trace lpc instructions: 0
enable mxp: 0 (new: 1)
enable gmcp: 0 (new: 1)
enable zmp: 0 (new: 1)
enable mssp: 1
==============================
Initializing internal stuff ....
Event backend in use: win32
WARNING: Platform doesn't support eval limit!
==== LPC Predefines ====
#define FLUFFOS
#define HAS_DEBUG_LEVEL
#define HAS_ED
#define HAS_PRINTF
#define MAX_FLOAT 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000
#define MAX_INT 9223372036854775807
#define MIN_FLOAT 0.000000
#define MIN_INT -9223372036854775808
#define MUDOS
#define MUD_NAME ""
#define SIZEOFINT 8
#define __ARCH__ "Microsoft Windows"
#define __ARGUMENTS_IN_TRACEBACK__
#define __ARRAY_STATS__
#define __AUTO_SETEUID__
#define __CACHE_STATS__
#define __CALLOUT_HANDLES__
#define __CFG_COMPILER_STACK_SIZE__ 600
#define __CFG_EVALUATOR_STACK_SIZE__ 65536
#define __CFG_LIVING_HASH_SIZE__ 256
#define __CFG_MAX_CALL_DEPTH__ 150
#define __CFG_MAX_GLOBAL_VARIABLES__ 65536
#define __CLASS_STATS__
#define __COMMAND_BUF_SIZE__ 2000
#define __COMPILER__ "D:/msys64/mingw64/bin/g++.exe"
#define __CXXFLAGS__ "Broken"
#define __DEBUG_MACRO__
#define __DEFAULT_DB__ 3
#define __DEFAULT_PRAGMAS__ PRAGMA_SAVE_TYPES + PRAGMA_ERROR_CONTEXT + PRAGMA_OPTIMIZE
#define __DSLIB__
#define __ED_INDENT_SPACES__ 4
#define __ED_TAB_WIDTH__ 8
#define __GET_CHAR_IS_BUFFERED__
#define __HAS_CONSOLE__
#define __HAVE_DIRENT_H__ 1
#define __HAVE_JEMALLOC__ 1
#define __HAVE_SIGNAL_H__ 1
#define __HAVE_SYS_STAT_H__ 1
#define __HAVE_SYS_TIME_H__ 1
#define __HAVE_TIME_H__ 1
#define __LARGEST_PRINTABLE_STRING__ 65535
#define __LARGE_STRING_SIZE__ 1000
#define __LOCALS_IN_TRACEBACK__
#define __MAX_SAVE_SVALUE_DEPTH__ 100
#define __MUDLIB_ERROR_HANDLER__
#define __NONINTERACTIVE_STDERR_WRITE__
#define __OLD_ED__
#define __PACKAGES_PACKAGES_H__
#define __PACKAGE_ANSI__
#define __PACKAGE_ARITH_OPERATOR__
#define __PACKAGE_ASYNC__
#define __PACKAGE_COMPRESS__
#define __PACKAGE_CONTRIB__
#define __PACKAGE_CORE__
#define __PACKAGE_CRYPTO__
#define __PACKAGE_DATABASE__
#define __PACKAGE_DB__
#define __PACKAGE_DEVELOP__
#define __PACKAGE_LONELY__
#define __PACKAGE_MATH__
#define __PACKAGE_MATRIX__
#define __PACKAGE_MUDLIB_STATS__
#define __PACKAGE_OPS__
#define __PACKAGE_PARSER__
#define __PACKAGE_PCRE__
#define __PACKAGE_SHA1__
#define __PACKAGE_SOCKETS__
#define __PACKAGE_TRIM__
#define __PACKAGE_UIDS__
#define __PARSE_DEBUG__
#define __PORT__ 6666
#define __PRIVS__
#define __PROJECT_VERSION__ "fluffos "
#define __RANDOMIZED_RESETS__
#define __RECEIVE_SNOOP__
#define __REF_RESERVED_WORD__
#define __RESTRICTED_ED__
#define __SANE_EXPLODE_STRING__
#define __SANE_SORTING__
#define __SAVE_EXTENSION__ ".o"
#define __SAVE_GZ_EXTENSION__ ".o.gz"
#define __SENSIBLE_MODIFIERS__
#define __SMALL_STRING_SIZE__ 100
#define __STRING_STATS__
#define __STRUCT_CLASS__
#define __STRUCT_STRUCT__
#define __SUPPRESS_ARGUMENT_WARNINGS__
#define __THIS_PLAYER_IN_CALL_OUT__
#define __TIME_WITH_SYS_TIME__ 1
#define __TRACE__
#define __TRAP_CRASHES__
#define __USE_32BIT_ADDRESSES__
#define __USE_MYSQL__ 1
#define __USE_SQLITE3__ 3
#define __VERSION__ "fluffos "
#define __WARN_OLD_RANGE_BEHAVIOR__
========================
Loading simul_efun file : /adm/single/simul_efun
]simul_efun loaded successfully.
Loading master file: /adm/single/master

Loading preload files ...
/adm/daemons/securityd...
/adm/daemons/virtuald...
/adm/daemons/xytaskd...
/adm/daemons/rankd...
/adm/daemons/commandd...
/adm/daemons/chinesed...
/adm/daemons/emoted...
/adm/daemons/aliasd...
/adm/daemons/fingerd...
/adm/daemons/natured...
/adm/daemons/channeld...
/adm/daemons/readwrited...
/adm/daemons/taskd...
/adm/daemons/xytaskd...
/adm/daemons/storyd...
/adm/daemons/autosaved...
/adm/daemons/fingerd...
/adm/daemons/jiaofeid...
/adm/daemons/jwhz...
/adm/daemons/biwud...
/adm/daemons/bandwidthd...
/adm/daemons/backupd...
Accepting telnet connections on 0.0.0.0:6666.
Accepting telnet connections on 0.0.0.0:7777.
Accepting websocket connections on 0.0.0.0:8888.
[2024/12/13 01:11:25:5331] N: LWS: 4.0.99-, loglevel 7
[2024/12/13 01:11:25:5351] N: NET CLI SRV H1 H2 WS IPV6-on
Initializations complete.

(4)查看mudlib文件夹log文件夹中的debug日志文件,发现有几条提示错误,有点没搞懂啥概念也不知道是不是因为这个连不上。其他日志好像没看出啥东西。日志如下:

Fri Dec 13 01:09:49 2024
执行时段错误:*Value being indexed is zero.

程式:/adm/daemons/eventd.c 第 103 行
物件: /adm/daemons/eventd
呼叫来自:/d/wizard/npc/pkuxkx.c 的 event() 第 136 行,物件: /d/wizard/npc/pkuxkx#6232 ("[1;37m北大侠客行[2;37;0m")
呼叫来自:/adm/daemons/eventd.c 的 create() 第 41 行,物件: /adm/daemons/eventd
呼叫来自:/adm/daemons/eventd.c 的 collect_all_event() 第 67 行,物件: /adm/daemons/eventd
呼叫来自:/adm/daemons/event/chaoxin.c 的 create_event() 第 15 行,物件: /adm/daemons/event/chaoxin
呼叫来自:/adm/daemons/eventd.c 的 at_after() 第 103 行,物件: /adm/daemons/eventd
Fri Dec 13 01:11:36 2024
执行时段错误:*Value being indexed is zero.

程式:/adm/daemons/eventd.c 第 103 行
物件: /adm/daemons/eventd
呼叫来自:/d/wizard/npc/pkuxkx.c 的 event() 第 136 行,物件: /d/wizard/npc/pkuxkx#851 ("[1;37m北大侠客行[2;37;0m")
呼叫来自:/adm/daemons/eventd.c 的 create() 第 41 行,物件: /adm/daemons/eventd
呼叫来自:/adm/daemons/eventd.c 的 collect_all_event() 第 67 行,物件: /adm/daemons/eventd
呼叫来自:/adm/daemons/event/chaoxin.c 的 create_event() 第 15 行,物件: /adm/daemons/event/chaoxin
呼叫来自:/adm/daemons/eventd.c 的 at_after() 第 103 行,物件: /adm/daemons/eventd

下面是我尝试过的一些傻瓜办法,,,当然都失败了

(1)我先测试了是否是驱动的问题,由于旧的源码没有驱动,所以我将新的源码中的驱动转移到了旧源码中,至少旧源码可以正常运行。所以至少证明新源码的驱动版本和就源码是匹配的,并应该没有什么程序问题。

(2)由于担心驱动版本的问题,所以我尝试下了站内2024年7月的fluffos驱动,并应用在了新源码中,一开就各种报错。

(3)我还下载了站内的一个21年的fluffos dbase版本的驱动,应用上去后,驱动log多出了几条警告,部分警告如下:

#define __WARN_OLD_RANGE_BEHAVIOR__
========================
Loading simul_efun file : /adm/single/simul_efun
/include/zjmud.h line 3: Warning: redefinition of #define ZJKEY before #define ZJPAYPORT                3
/include/zjmud.h line 7: Warning: redefinition of #define ESA before #define ZJSEP              "$zj#
/adm/simul_efun/math.c line 10: Warning: Unused local variable 'range_i' before
]simul_efun loaded successfully.
Loading master file: /adm/single/master

Loading preload files ...
/adm/daemons/securityd...
/adm/daemons/virtuald...

同时,mudlib文件夹中的log debug日志也不停弹出向上面第二项内容的那种报错,但是却是不停的弹出。同时客户端同样连不上。不知是不是驱动版本的问题。

(4)还尝试了一个傻办法。将旧源码中的mudlib黏贴到新源码中覆盖替换,客户端连接不上。将新源码中的mudlib黏贴到旧源码中覆盖替换,结果却可以运行。所以不知道问题出在是不是mudlib上。。

以上就是我遇到的情况和尝试过的办法了。希望大佬能给予帮助!如有需要可以发源码测试。谢谢!

京ICP备13031296号-4