|
注:对加入玩家来说,它会把AI玩家的控制模式认为是CNTR_NETWORK。
- std::vector<connected_user> users_:存储账号玩家信息。变量类型见之下的“struct connected_user”。
- std::vector<std::pair<std::string, int> > player_types_:存储普通版的玩家类型。
- std::vector<std::pair<std::string, int> > player_xtypes_:存储增强版的玩家类型。
- std::string side::player_id_:玩家标识。它对应“创建势力”窗口中玩家栏显示的内容。和那里不同的是,在控制模式小于CNTR_LAST时player_id_值是空。
struct connected_user
name:账号。实例:ancientcc、laji431。
controller:控制模式。实例:CNTR_LOCAL、CNTR_NETWORK。值不会超过CNTR_LAST。
connection:连接套接字。实例:2、3、4。
group:团队。它不是引用是克隆出的对象。
side:分配到的势力索引。实例:0、1、2、3
users_何时增加单元
1、初始增加本地玩家
2、收到[side]块
3、收到[observer]块
player_types_、player_xtypes_中的std::vector<std::pair<std::string, int> >
- first:玩家标识串。网络玩家、本地玩家、电脑玩家、空位、ancientcc
- second:类型索引。CNTR_NETWORK(0)、CNTR_LOCAL(1)、CNTR_COMPUTER(2)、CNTR_EMPTY(3)。player_types_中的不会超过CNTR_LAST;player_xtypes_中的和player_types_一致的部分不会超过player_xtypes_,多出的则一定超过CNTR_LAST。
增强版和普通版区别:增强版增加了本地、网络玩家映射。在随机地图时,两个变量是同一内容。网络对战时,因为肯定存在本地玩家,增强版的尺寸至少要比普通版多1,有网络玩家加入时再增加的则视网络玩家数量。
|
|