笔记——创建一个功能模块的笔记!

时间:2023-02-05 22:13:14

%%%%%%%%%%%%%%%%%%%%%%

%%创建一个功能模块的笔记!

1.config目录下找到game.config。在里面可以找到对应的record记录格式和存储的数据类型。
2.在include目录下定义了所有的record,重点需注意“mnesia_table_def.hrl”!!! 记录里可以定义宏哦!!!此处的record为最外层的记录,也就是第一层目录,可以在具体的功能函数内再次定义对应的record的二层定义,即二层记录,用来细化数据接收。
record第一层定义:-record(pet_quality_proto,{grade,quality_properties}).
对应此记录的二层定义:-record(quality_properties,{quality,value,value,value}).
需注意此处value为概述,可能是列表,元组或嵌套模式。具体格式需要去game.config文件里找到对应名字的记录,如果没有那么就与策划和前端共同协商讨论决定格式。
3.在对应的目录下创建对应的功能模块,例如:pet目录下存放的是关于宠物的所有功能。
4.当在函数里使用其他模块的时候记得去相关模块的OP里查找是否有封装好的功能。
5.留意每个.erl文件的头部位置,定义的define有可能在主体函数内调用。
6.与前端交互的通信协议一般是在 ../src/nodes/gate/package_dispatcher.erl文件内;c2s为前端给后端发送数据,数据格式由后端来定义;s2c为后端给前端发送数据,数据格式由前端来定义。
7.要想让自己的功能模块接收到前端发送的数据或发送给前端,不仅需要配置上面的package_dispatcher.erl文件,还要在include/login_pb.hrl;对应模块的 *_handle.erl文件;modules/protocol/login_pb.erl文件等等,在其内添加相同的通信名称和格式,例如:pet_handle.erl。
8.传输数据时应该使用基础数据结构来进行传输,不要传输复杂数据结构,尽量不传输中文。
9.每个模块内都有op和db,分别对应逻辑操作和数据库操作,db里定义了读取进程字典里的数据接口。数据先存ETS表里。
10.