Skynet 基础笔记

方便自己查询

Config

启动 skynet 服务器需要提供一个配置文件,配置文件的编写可以参考 examples/config ,下面是一个简单的配置文件范例:

1
2
3
4
5
6
7
8
9
10
11
12
13
root = "./"
thread = 8
logger = nil
harbor = 1
address = "127.0.0.1:2526"
master = "127.0.0.1:2013"
start = "main" -- main script
bootstrap = "snlua bootstrap" -- The service for bootstrap
standalone = "0.0.0.0:2013"
luaservice = root.."service/?.lua;"..root.."test/?.lua;"..root.."examples/?.lua"
lualoader = "lualib/loader.lua"
snax = root.."examples/?.lua;"..root.."test/?.lua"
cpath = root.."cservice/?.so"

这个配置文件实际上就是一段 lua 代码,通常,我们以 key = value 的形式对配置项赋值。skynet 在启动时,会读取里面必要的配置项,并将暂时用不到的配置项以字符串形式保存在 skynet 内部的 env 表中。这些配置项可以通过 skynet.getenv 获取。
必要的配置项有:

  • thread 启动多少个工作线程。通常不要将它配置超过你实际拥有的 CPU 核心数。
  • bootstrap skynet 启动的第一个服务以及其启动参数。默认配置为 snlua bootstrap ,即启动一个名为 bootstrap 的 lua 服务。通常指的是 service/bootstrap.lua 这段代码。
  • cpath 用 C 编写的服务模块的位置,通常指 cservice 下那些 .so 文件。如果你的系统的动态库不是以 .so 为后缀,需要做相应的修改。这个路径可以配置多项,以 ; 分割。
    阅读全文 »

总体

  • 游戏管理类
    • 时间步进器
    • 操作类
    • 战斗记录类
  • 战斗包含类
    • 场景
    • 军士
    • 技能(Buff)
阅读全文 »

基础

  • Event
    所有对象都能通过Event管理器抛出事件。Event对象应包含有Class对象本身、所绑定的事件名、以及具体的回掉。
  • EventSet
    管理所有的Event事件,通过Event所监听的Key值以及优先级,去调用Event事件。
  • BaseClass
    此类应为所有类的基类,具有通过EventSet单例绑定绑定以及解绑事件的基础方法。
阅读全文 »

通用

使用git作为svn的版本管理工具

从svn地址获取clone仓库

使用 git clone [svn仓库地址]
ps:如果不需要把svn所有文件修改记录down下来可以添加-r HEAD 参数再最后面,这样可以只clone下来最新的文件

获取更新

使用 git svn fetch

合并远程分支代码到本地分枝

使用 git svn rebase
ps: 其实当使用这个命令的时候git会自动从svn取下当前最新代码并合并到当前本地分支,所以无特殊情况使用此命令即可

提交代码到svn

使用git svn dcommit
此命令会将本地所有提交一一提交到svn仓库,所以提交前最好先整理下本地提交

阅读全文 »
0%