/some-mmorpg

Primary LanguageCMIT LicenseMIT

前言

学习skynet时撸出来的简单服务器,欢迎吐槽。

完成度很低,已实现功能有:

  • 登陆
  • 角色创建
  • 地图内移动
  • 攻击
  • aoi

编译及安装

编译依赖

3rd/openssl

程序中用到了openssl中的crypto库,请将crypto编译成静态库参考文档
对于64linux系统,可尝试用命令 "./Configure linux-x86_64 no-shared -fPIC; make"进行编译。
如果编译出错,请自行google解决。

3rd/skynet

参考文档

安装

  1. 先安装redis
  2. 执行 tool/setup/setup 脚本,它会在项目根目录下创建一个var目录,创建好数据库需要的文件和管理脚本。

运行

  1. 运行 var/redis-start 脚本,启动好对应的数据库实例。
  2. 运行 server/run 脚本,启动服务器程序。

客户端

供测试用的客户端在 client 目录通过命令 “lua client.lua”或者脚本 “./run” 运行。

client.lua 接受用户名、密码作为命令行参数 “lua client.lua username password”,如果留空,则由程序自动生成一个用户名,保存在本地 anonymous 文件中。

client.lua 会自动完成登陆相关的流程,然后等待用户输入。

用户输入以回车结束,输入内容将打包发送至服务器。 输入的格式为 “命令 参数”,全部命令请参考 common/proto/game_proto.lua 文件中的 game_proto.c2s

一个常见的client命令流程是这样的:

cd client
./run
character_create character = { name =hello”, race =human”, class =warrior” }
character_list
character_pick id = 4
map_ready
move pos = { x = 123, z = 321 }
combat target = 7

其他

详细说明请移步 wiki