|
关于mudos的简介:
, a8 h6 X/ N3 S- j. T MUD ( 原指 Multi-User Dungeon 多使用者迷宫,后又被称为 Multi-User Dimension 多使用者空间与 Multi-User Domain 多使用者领土),台湾使用者通常直接称呼为MUD。通常将缩写字直译为“网络泥巴”或是简称“泥巴”(英文 mud 的意思为泥巴)。是一款多人即时的虚拟世界,通常以文字描述为基础。 MUD 结合了角色扮演、砍杀、玩家与玩家对战、互动小说与在线聊天等元素,玩家可以阅读或查看房间、物品、其他玩家、非玩家角色的描述,并在虚拟世界中做特定动作。 玩家通常会通过输入类似自然语言的指令来与虚拟世界中的其他玩家互动。( X) O8 }* X$ u
而mudos,就是mud历史最悠久的驱动程序了。" {2 q: a4 u; X
本源码说明:
( I; {' b2 N' i) j( \4 r+ x+ w 1、此版本来源:http://www.revivalworld.org/stat ... dOS/v22.2b14.tar.gz
3 c1 l1 a4 U7 v8 P 2、修改为VS2010/2019本地化,傻瓜式一键编译
, y, s3 A$ b9 W" g5 k) s3 ^" A( \$ Q F 3、增加自动测试功能! Z9 g$ {3 e9 V
4、增加64位大数据支持,编译x64版本即可开启7 c4 a( t& q! i. ?0 a
5、增加数据库支持,兼容32位MySQL 5、32位MySQL 8、32位SQLite 3、64位MySQL 5、64位MySQL 8、64位SQLite 3
1 A7 A* a j; q! N2 N1 ?" A3 N7 w6 ? 6、增加部分ntos的efun,可以直接启动NT3的lib
/ b$ ]2 N9 {% t) |) z 7、自动识别并兼容gb2312和utf8格式的混合lib
: t# @! c0 h3 j- B: m; y源码及成品下载链接>>
6 R8 _* {4 t) |5 Y0 F测试的两个lib:7 p/ R3 ^; l* ?: F8 G( t
https://gitee.com/andersgong/xyj450
) }4 q7 ?8 y$ O" I# X# nhttps://gitee.com/andersgong/nitan33 q3 [* O# p- v; F
编译教程:
2 _! B! B# K o: o5 o4 f4 h1、进入根目录,双击Mudos.sln,选择VS2019/2010打开,如下图
7 L/ d" C z9 {
. t" x" }5 }( `4 B; {9 t四个项目说明如下:3 E1 j: ?" N j/ F1 U
bison--这个是yacc的本地编译版本,不用管它,编译mudos的时候会自动依赖的。
1 r; `" [1 O. e7 c t& ]; e5 \editsource--用于生成一些编译需要的文件,不用管它,编译mudos的时候会自动依赖的。
: d4 ^# S" W# J" hmudos--主项目,点击鼠标右键,点击重新生成,即可全自动编译生成mudos.exe。
4 M7 k1 q& ]' f5 O6 X5 U* b9 utestmud--测试项目,点击鼠标右键,点击重新生成,会重新编译mudos.exe,并且自动使用最新生成的mudos.exe来启动xyj 4.50的lib
. o0 a" N n" x, lhttps://gitee.com/andersgong/xyj450
$ Z+ ?. [( `5 u3 F8 Y# U这个lib也是我用来测试这个版本mudos的,目前基本上运行正常,报错都解决了,还加入了rzr自动测试,以及db指令测试数据库,供大家参考。具体可以在项目上点击鼠标右键,选择属性,进入“调试”标签页查看。
& r. n3 U4 T+ I! o2、鼠标右键mudos,重新生成,如下图表示编译成功:% l0 i0 o- q* F$ |7 B
5 g( b# C1 T) F* R5 i3 [
编译warning已经全部解决了。
" J3 n+ Z8 F7 C3、mudos项目编译完成后,可以直接按F5看看效果,这个版本自带了一个testsuite最小测试lib,我已经设置好,mudos项目编译完成后,会自动将mudos.exe复制到testsuite下面,config文件在testsuite\etc\config.test,端口5555,第一次运行mudos.exe之前,需要设置管理员权限和xp模式。如下图:6 c! E' k! Q# f/ e
4 H* G1 S, |4 E) w, ?3 s4、按下F5后mudos正常启动,zmud连接5555端口,如下图:, g8 U/ b9 E1 c o4 Q9 `
3 s# m. ^9 z6 i! U% E5 a6 ~
5、数据库方面的测试方法,根据你options.h里的设置,首先开启MySQL 5或者8的服务,然后用客户端连接,创建用户dbuser,密码dbpassword,如果你有自己的用户密码,可以修改对应的文件: O$ b" Z' r0 K6 u; i: y0 c. j
testsuite\command\db.c
( x4 ~/ b+ t# ?
+ |2 V) n8 M$ w) V7 ~, }$ {9 |' Ltestsuite\single\master.c的valid_database函数
* ?$ P: P1 o7 H
7 P9 h5 _* ^2 Q4 ]- }+ z) K8 @1 M6、手动创建一个名为mudos的数据库
; k0 |4 |2 M- f! }2 R0 J7、回到zmud,分别执行三条命令:
: Z% h2 A9 f! s2 B0 pdb 0( w/ s y$ I6 M9 o7 b3 E% t
3 x/ G% `. ]& `. J. A此时会在mudos库里创建数据表users
k& F0 w* ` A( X; A& D6 ]: Q, J& w
2 ]% Z# v! z) h4 j4 _+ W8 Odb 1(会在users表里插入数据)
0 V( _1 T$ _# W
7 K1 K3 ]2 L5 F' T7 c
$ c8 M" K. W* F' Z7 T, Q1 S/ q, D) W7 ~& z/ ~db 2(自动查询users表里的name字段)
0 j( [: Z: a4 v# g: E7 b; l+ l
: t; V# F, g6 c
关于数据库选项的配置,请看options.h
! r% s" \- Y; J" r
- t8 M) {# {; K, n+ a: p" e f以及PACKAGES\db.h
# x: s9 y8 \, I8 z1 y" `/ e- ^9 Z
! j; V; }; H2 c+ g7 g* n+ D 50表示MySQL 5,80表示MySQL 8,如果直接使用sqlite3则无此烦恼,会自动在lib根目录生成mudos.db数据库文件(参考/cmds/adm/db.c或者testsuite\command\db.c指令),用客户端打开就能看到数据了。
, c! v% Q+ |- S' L" z 补充说明:如果需要使用数据库功能的话,请将libcrypto-1_1.dll、libssl-1_1.dll、sqlite3.dll三个文件和mudos.exe放在一起。32位和64位版本的dll分别放在MUDOS\testsuite\win32和MUDOS\testsuite\x64下面。
# A4 k0 W% }/ ^( p( ~6 S7 g再补充说明:此版本同时兼容32位MySQL 5、32位MySQL 8、32位SQLite 3、64位MySQL 5、64位MySQL 8、64位SQLite 3,代码内部已经处理好了所有的依赖关系。# u2 q4 |0 M0 o
8、支持64位大数据,如下图,x64版本默认开启大数据支持,轻松超过21亿上限。0 P; F* \1 Q! ?9 k
$ C$ Z# M3 i& f
) N2 D: h) f- w& H l5 L" m5 ^
# U7 V- [" a" R4 C b S9 V9、最新支持NT3的lib。https://gitee.com/andersgong/nitan3# |! |7 }# ]" E( h$ H2 E: M/ E
增加了部分ntos的efun,开关如下:
A% o' B8 u( n7 ~
5 f- f, S% M5 }* _源代码在mudos\PACKAGES\ntos.c) H K* w+ k( R+ L: i7 I |7 q$ v
# i1 w: D3 c3 p/ O10、如果想要修改编译参数,自己改options.h。 |
|