1、 前言
2、saac框架

saac主要包括五部分功能:mail(邮件)、family(家族)、char(角色)、PK、chatroom(聊天室),lock是用于操作帐号相关数据时加锁。可能是当时玩网游的人不是很多,服务器的压力不大,并且当时的机器硬件条件有限,导致saac采用的是单进程实现。这也意味着上面5个功能系统实现时并不是真正设计意义上的子系统划分,采用的是功能函数族,互相之间耦合度较紧。另外,mail、family、char、PK、mission的数据全部都是存储在文件中,所以文件数据读写占了不小的篇幅。
struct connection { int use; //该连接是否在使用 int fd; //用于该连接通信的socket int mbtop_ri; //读取缓冲区的起始index int mbtop_wi; //写入缓冲区的起始index struct sockaddr_in remoteaddr; //客户端的IP地址 int closed_by_remote; //连接是否有客户端关闭 }; 套接字的缓冲区结构体是membuf,定义如下:
struct membuf { int use; //该缓冲区对应得buf是否正在使用 char buf[512]; //存储内容 int len; //缓冲区实际存储内容的长度 int next; //下一个buf的index };
struct table { int use; //标志表目前是否被使用 DBTYPE type; //表类型:对应上面提到的2种数据类型 char name[32]; //表名 int num; //表中的记录条数 int toplinkindex; //首条记录在记录链表中的index struct hashentry *hashtable; //hash节点链表 int hashsize; // hash节点链表的长度 int updated; //标志表记录内容是否需要更新到文件中 int ent_finder; //用于插入新节点时的起始查找位置 }; struct hashentry { char key[KEY_MAX]; int use; int dbind; //对应dbentry结点的index int prev; int next; }; struct dbentry { int use; int ivalue; //整数值 int prev; int next; char key[KEY_MAX]; char charvalue[CHARVALUE_MAX]; //字符串 };
《石器时代so》是人最多最火爆最新开的石器时代维护内容转自https...
(1)对石器各组服务器系统例行维护更新(2)检查石器so服务器各项硬...
T一级被杀改给予三倍的攻击伤害但是命中率下降(限卡鲁它那庄园或有邀...
村庄草名价格补充塔姆塔姆村酒醉草1~~81080s位于村内便利商店里...
首先给大家介绍一下初始四围决定公式初始单项数值=((等级-1)*单项...