Skip to content

MudRen/lpc-test

 
 

Repository files navigation

LPC-TEST

LPC 开发测试 LIB,配合 fluffos v2019 以上版本使用。

本 LIB 和 fluffos 自带的 testsuite 不同点是 testsuite 主要是驱动功能测试,本 LIB 除了基础 LPC语言教程代码(/cmds/demo/)外,另外提供具体游戏开发的功能模块演示,比如:玩家基础功能、游戏地图、虚拟迷宫、战斗和怪物变身等等,用更少的代码理解游戏开发的功能实现。

                                 _\\|//_
                                (' . . ')
┌-----------------------------ooO-(_)-Ooo-----------------------------------┐
|  ★ 欢迎光临,旅行者。
|  ★
|  ★ LPMUD 启动文件加载顺序:
|  ★ 1. simul_efun (运行时配置文件中指定)
|  ★ 2. master (运行时配置文件中指定)
|  ★ 注意:所有文件都会自动#include <globals.h> (运行时配置文件中指定)
|  ★
|  ★ MASTER 对象必须实现以下 apply 方法:
|  ★    get_root_uid - author_file - get_bb_uid - domain_file - creator_file
|  ★
|  ★ 玩家连线流程:
|  ★ 1. 调用 MASTER 对象的 object connect(int port) 方法
|  ★ 2. 调用 object connect(int port) 方法传回对象的 object logon(void) 方法
|  ★
|  ★ 所有对象加载时都会调用 MASTER 对象的以下 apply 方法:
|  ★    domain_file、author_file、creator_file
|  ★ 所有对象加载时都会调用对象本身的 void create(void) 方法(如果有)
└---------------------------------------------------------------------------┘
本项目为 LPMUD 开发学习用,配套教程:https://bbs.mud.ren/threads/3

目录结构

以下为项目中所有文件的说明,目前结构比较简单,文件也不多,但演示了游戏开发的多数功能模块。

.
├── README.md
├── cmds                    游戏指令
│   ├── demo                教程演示指令
│   │   └── ...
│   ├── efun                教程 efun 指令
│   │   └── ...
│   ├── test                个人测试目录,你可以把自己的测试指令放在这里
│   │   └── test.c
│   └── cmd                 基础指令
├── config.cfg              运行时配置文件精简版(FluffOS v2019)
├── config.ini              运行时配置文件注释版(FluffOS v2019)
├── data                    存档目录
├── include                 头文件目录
│   ├── ansi.h              颜色控制头文件
│   ├── globals.h           全局包含头文件
│   └── ...                 (其它为驱动内置头文件)
├── inherit                 功能继承模块
│   ├── area.c              区域环境功能模块
│   ├── clean_up.c          自动内存回收功能模块
│   ├── combat.c            战斗功能模块
│   ├── dbase.c             数据存档模块
│   ├── living.c            生物对象公共模块
│   ├── maze.c              迷宫环境功能实现模块
│   ├── object.c            实体对象公共模块
│   ├── room.c              普通环境功能模块
│   ├── user1.c             玩家对象(实现指令功能模块)
│   ├── user2.c             玩家对象(实现指令别名功能模块)
│   ├── user3.c             玩家对象(实现智能消息功能模块)
│   ├── user4.c             玩家对象(实现战斗功能模块)
│   ├── user5.c             玩家对象(实现存档功能模块)
│   ├── user6.c             玩家对象(其他功能模块)
│   └── verb.c              自然语法解析指令功能模块
├── log                     日志目录
│   ├── author_stats
│   ├── debug.log           游戏运行日志
│   ├── domain_stats
│   ├── error_handler       编译错误追踪日志
│   └── log_error           错误及警告日志
├── system                  系统目录
│   ├── daemons             守护进程
│   │   ├── combat_d.c      战斗守护进程
│   │   ├── monster_d.c     魔物守护进程
│   │   ├── qq_d.c          QQ群消息守护进程(socket使用演示)
│   │   └── virtual_d.c     虚拟对象守护进程
│   ├── etc                 系统配置目录
│   ├── kernel              核心文件
│   │   ├── master.c        主控文件
│   │   └── simul_efun.c    模拟外部函数文件
│   └── object              核对对象
│       ├── login.c         连线对象
│       ├── user.c          玩家对象
│       └── void.c
├── tmp                     临时文件目录
├── verbs                   自然语法指令目录
├── world                   游戏地区
│   ├── area.c              区域模式环境
│   ├── maze.c              迷宫
│   ├── tower.c             通天塔
│   ├── world               世界特别地区
│   │   ├── npc             NPC(包括魔物)
│   │   ├── 0,0,0.c
│   │   └── 5,2,0.c
│   └── world.c             世界地区
└── www                     WEBSOCKET
    └── ...

运行

请使用 FluffOS 最新版本的驱动运行,启动方式:

driver config.ini

如果要后台显示更多信息,可使用以下方式启动:

driver config.ini -fdebug

如果要追踪游戏运行信息,可使用以下方式启动:

driver config.ini --tracing trace_driver.json

Ubuntu和WSL系统可以运行./build.sh自动下载并编译驱动,运行./run.sh启动项目

提示

在游戏中可以收到QQ群消息,也可以发送消息到QQ群(302388378),如有任何困难,可以直接chat xxx 求帮助。

.__                                             .__       .___
|  |__   ____   _____   ______  _  _____________|  |    __| _/
|  |  \ /  _ \ /     \_/ __ \ \/ \/ /  _ \_  __ \  |   / __ |
|   Y  (  <_> )  Y Y  \  ___/\     (  <_> )  | \/  |__/ /_/ |
|___|  /\____/|__|_|  /\___  >\/\_/ \____/|__|  |____/\____ |
    \/             \/     \/                              \/

Packages

 
 
 

Languages

  • C 84.5%
  • JavaScript 13.5%
  • Shell 1.2%
  • Other 0.8%