| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249 |
- ServerStatus_Normal = 0;
- CGameListItem = cc.Class({
- ctor :function () {
- //属性数据
- this.m_ItemGenre=0;
- this.m_pParentListItem=0;
- },
- init :function(ItemGenre){
- //属性数据
- this.m_ItemGenre=ItemGenre;
- }
- });
- CGameKindItem = cc.Class({
- extends: CGameListItem,
- ctor :function () {
- //更新变量
- this.m_dwUpdateTime=0;
- this.m_bUpdateItem=false;
- //扩展数据
- this.m_dwProcessVersion=0;
- this.m_GameKind = new tagGameKind();
- },
- });
- CGameTypeItem = cc.Class({
- extends: CGameListItem,
- ctor:function() {
- this.m_GameType = new tagGameType();
- }
- });
- CGameServerItem = cc.Class({
- extends: CGameListItem,
- ctor:function () {
- //辅助变量
- this.m_pGameKindItem=0;
- //扩展数据
- this.m_ServerStatus=ServerStatus_Normal;
- this.m_GameType = new tagGameType();
- this.m_GameServer = new tagGameServer();
- this.m_GameMatch = new tagGameMatch();
- }
- });
- CServerListData = cc.Class({
- ctor:function () {
- //接口变量
- this.m_pIServerListDataSink=null;
- this.m_dwAllOnLineCount=0;
- this.m_GameTypeItemMap = new Array(); //种类索引
- this.m_GameServerItemMap = new Array(); //房间索引
- this.m_GameKindItemMap = new Array();
- },
- //设置接口
- SetServerListDataSink :function(pIServerListDataSink){
- //设置变量
- this.m_pIServerListDataSink=pIServerListDataSink;
- },
- //插入种类
- InsertGameType:function (pGameType){
- //效验参数
- if (pGameType==null) return false;
- //变量定义
- var pGameTypeItem = null;
- var bInsert = false;
- var it = this.m_GameTypeItemMap[pGameType.wTypeID];
- if (it == null)
- {
- pGameTypeItem = new CGameTypeItem();
- bInsert = true;
- }
- else
- {
- pGameTypeItem = it;
- }
- if (pGameTypeItem == 0) return false;
- pGameTypeItem.wJoinID = pGameType.wJoinID;
- pGameTypeItem.wSortID = pGameType.wSortID;
- pGameTypeItem.wTypeID = pGameType.wTypeID;
- pGameTypeItem.szTypeName = pGameType.szTypeName;
- //寻找父项
- if (pGameType.wJoinID!=0)
- {
- //寻找父项
- pGameTypeItem.m_pParentListItem=this.SearchGameType(pGameType.wJoinID);
- //待决判断
- if (pGameTypeItem.m_pParentListItem==0)
- {
- //m_GameListItemWait.push_back(pGameTypeItem);
- return true;
- }
- }
- //插入处理
- if (bInsert==true)
- {
- //设置索引
- this.m_GameTypeItemMap[pGameType.wTypeID]=pGameTypeItem;
- //界面更新
- if (this.m_pIServerListDataSink)
- this.m_pIServerListDataSink.OnGameItemInsert(pGameTypeItem);
- }
- else
- {
- //界面更新
- if (this.m_pIServerListDataSink)
- this.m_pIServerListDataSink.OnGameItemUpdate(pGameTypeItem);
- }
- return true;
- },
- //插入房间
- InsertGameServer :function(pGameServer) {
- //效验参数
- if (pGameServer==null) return false;
- //变量定义
- var pGameServerItem = null;
- var bInsert = false;
- var it = this.m_GameServerItemMap[pGameServer.wServerID];
- if (it == null)
- {
- pGameServerItem = new CGameServerItem();
- bInsert = true;
- }
- else
- {
- pGameServerItem = it;
- }
- if (pGameServerItem == 0) return false;
- //设置数据
- pGameServerItem.wKindID = pGameServer.wKindID;
- pGameServerItem.wNodeID = pGameServer.wNodeID;
- pGameServerItem.wSortID = pGameServer.wSortID;
- pGameServerItem.wServerID = pGameServer.wServerID;
- pGameServerItem.wServerKind = pGameServer.wServerKind;
- pGameServerItem.wServerType = pGameServer.wServerType;
- pGameServerItem.wServerPort = pGameServer.wServerPort;
- pGameServerItem.lCellScore = pGameServer.lCellScore;
- pGameServerItem.lEnterScore = pGameServer.lEnterScore;
- pGameServerItem.dwServerRule = pGameServer.dwServerRule;
- pGameServerItem.dwOnLineCount = pGameServer.dwOnLineCount;
- pGameServerItem.dwAndroidCount = pGameServer.dwAndroidCount;
- pGameServerItem.dwFullCount = pGameServer.dwFullCount;
- pGameServerItem.szServerAddr = pGameServer.szServerAddr;
- pGameServerItem.szServerName = pGameServer.szServerName;
- this.m_dwAllOnLineCount += pGameServer.dwOnLineCount;
- //插入处理
- if (bInsert==true) {
- //设置索引
- this.m_GameServerItemMap[pGameServer.wServerID]=pGameServerItem;
- //插入子项
- if (this.m_pIServerListDataSink)
- this.m_pIServerListDataSink.OnGameItemInsert(pGameServerItem);
- }
- else
- {
- //更新子项
- if (this.m_pIServerListDataSink)
- this.m_pIServerListDataSink.OnGameItemUpdate(pGameServerItem);
- }
- return true;
- },
- //查找房间
- SearchGameServer :function(wServerID) {
- return this.m_GameServerItemMap[wServerID];
- },
- //设置人数
- SetServerOnLineCount:function (wServerID, dwOnLineCount){
- //搜索房间
- var pGameServerItem=this.SearchGameServer(wServerID);
- //设置人数
- if (pGameServerItem!=0)
- {
- //设置变量
- this.m_dwAllOnLineCount -= pGameServerItem.m_GameServer.dwOnLineCount;
- this.m_dwAllOnLineCount += dwOnLineCount;
- //设置变量
- pGameServerItem.m_GameServer.dwOnLineCount=dwOnLineCount;
- //查找类型
- var pGameKindItem = this.SearchGameKind(pGameServerItem.m_GameServer.wKindID);
- if(pGameKindItem)
- {
- //设置变量
- pGameKindItem.m_GameKind.dwOnLineCount = dwGameKindOnline;
- //事件通知
- if (this.m_pIServerListDataSink!=0) this.m_pIServerListDataSink.OnGameItemUpdate(pGameKindItem);
- }
- }
- },
- //查找类型
- SearchGameKind:function (wKindID){
- return this.m_GameKindItemMap[wKindID];
- },
- //查找种类
- SearchGameType :function(wTypeID) {
- return this.m_GameTypeItemMap[wTypeID];
- },
- GetGameServerCount:function (){
- return this.m_GameServerItemMap.length;
- },
- ClearGameServer :function(){
- this.m_GameServerItemMap.length = 0;
- },
- EmunGameServerItem :function(wIndex) {
- return this.m_GameServerItemMap[wIndex];
- },
- });
- g_ServerListData = new CServerListData();
- g_ServerListDataLast = null;
|