学习skynet时撸出来的简单服务器,欢迎吐槽。
完成度很低,已实现功能有:
- 登陆
- 角色创建
- 地图内移动
- 攻击
- aoi
程序中用到了openssl中的crypto库,请将crypto编译成静态库。 参考文档。
对于64linux系统,可尝试用命令 "./Configure linux-x86_64 no-shared -fPIC; make"进行编译。
如果编译出错,请自行google解决。
参考文档。
- 先安装redis
- 执行 tool/setup/setup 脚本,它会在项目根目录下创建一个var目录,创建好数据库需要的文件和管理脚本。
- 运行 var/redis-start 脚本,启动好对应的数据库实例。
- 运行 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