# lpc-test **Repository Path**: mudren/lpc-test ## Basic Information - **Project Name**: lpc-test - **Description**: LPmud开发教程配套LIB,使用fluffos v2019驱动 - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: https://bbs.mud.ren/threads/3 - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 2 - **Created**: 2021-03-16 - **Last Updated**: 2025-02-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## LPC-TEST LPC 开发测试 LIB,配合 fluffos v2019 以上版本使用。 本 LIB 和 fluffos 自带的 testsuite 不同点是 testsuite 主要是驱动功能测试,本 LIB 除了基础 LPC语言教程代码(`/cmds/demo/`)外,另外提供具体游戏开发的功能模块演示,比如:玩家基础功能、游戏地图、虚拟迷宫、战斗和怪物变身等等,用更少的代码理解游戏开发的功能实现。 ``` _\\|//_ (' . . ') ┌-----------------------------ooO-(_)-Ooo-----------------------------------┐ | ★ 欢迎光临,旅行者。 | ★ | ★ LPMUD 启动文件加载顺序: | ★ 1. simul_efun (运行时配置文件中指定) | ★ 2. master (运行时配置文件中指定) | ★ 注意:所有文件都会自动#include (运行时配置文件中指定) | ★ | ★ 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 \ ___/\ ( <_> ) | \/ |__/ /_/ | |___| /\____/|__|_| /\___ >\/\_/ \____/|__| |____/\____ | \/ \/ \/ \/