目录结构调整
This commit is contained in:
163
codes/games/sales_service/youle/server_room/class.agent.js
Normal file
163
codes/games/sales_service/youle/server_room/class.agent.js
Normal file
@@ -0,0 +1,163 @@
|
||||
///////////////////////////////////////////////////////////////
|
||||
//////////////// cls_youle_room_agent: 运营商 /////////////////
|
||||
///////////////////////////////////////////////////////////////
|
||||
var cls_youle_room_agent = cls_youle_room_agent || {
|
||||
//构造函数
|
||||
new: function(agentid, name, server, tcpport, httpport, freeroom){
|
||||
var agent = {};
|
||||
agent.agentid = agentid; //运营商id
|
||||
agent.agentname = name; //运营商名称
|
||||
agent.server = server; //运营商服务器地址
|
||||
agent.tcpport = tcpport; //运营商服务器tcp端口
|
||||
agent.httpport = httpport; //运营商服务器http端口
|
||||
agent.freeroom = freeroom; //默认同意解散房间的倒计时,秒
|
||||
|
||||
//游戏列表
|
||||
agent.games = [];
|
||||
|
||||
//方法
|
||||
agent.method = {};
|
||||
//载入游戏(没找到则创建)
|
||||
agent.method.load_game = function(gameid, gamename, seatcount, makewar, modename, roomserver, tcpport, httpport, minroomcode, maxroomcode){
|
||||
return cls_youle_room_agent.load_game(agent, gameid, gamename, seatcount, makewar, modename, roomserver, tcpport, httpport, minroomcode, maxroomcode);
|
||||
};
|
||||
//查找游戏
|
||||
agent.method.find_game = function(gameid){
|
||||
return cls_youle_room_agent.find_game(agent, gameid);
|
||||
};
|
||||
|
||||
return agent;
|
||||
},
|
||||
|
||||
//载入游戏(没找到则创建)
|
||||
load_game: function(o_agent, gameid, gamename, seatcount, makewar, modename, roomserver, tcpport, httpport, minroomcode, maxroomcode){
|
||||
var idx = cls_youle_room_agent.aryidx_game(gameid);
|
||||
if (o_agent.games.length <= idx) {
|
||||
o_agent.games.length = idx + 1;
|
||||
}
|
||||
var o_game = o_agent.games[idx];
|
||||
if (!o_game){
|
||||
//不存在则创建
|
||||
o_game = cls_youle_room_game.new(o_agent, gameid, idx, gamename, seatcount, makewar, modename, roomserver, tcpport, httpport, minroomcode, maxroomcode);
|
||||
o_agent.games[idx] = o_game;
|
||||
} else {
|
||||
o_game.idx = idx;
|
||||
o_game.gamename = gamename;
|
||||
o_game.seatcount = seatcount;
|
||||
o_game.makewar = makewar;
|
||||
o_game.modename = modename;
|
||||
o_game.roomserver = roomserver;
|
||||
o_game.tcpport = tcpport;
|
||||
o_game.httpport = httpport;
|
||||
o_game.minroomcode = minroomcode;
|
||||
o_game.maxroomcode = maxroomcode;
|
||||
}
|
||||
return o_game;
|
||||
},
|
||||
|
||||
//查找游戏
|
||||
find_game: function(o_agent, gameid){
|
||||
var idx = cls_youle_room_agent.aryidx_game(gameid);
|
||||
if (idx == -1){
|
||||
return null;
|
||||
}
|
||||
if (o_agent.games.length <= idx){
|
||||
return null;
|
||||
}
|
||||
if (!o_agent.games[idx]){
|
||||
return null;
|
||||
}
|
||||
if (o_agent.games[idx].gameid != gameid){
|
||||
return null;
|
||||
}
|
||||
return o_agent.games[idx];
|
||||
},
|
||||
|
||||
//计算游戏的数组下标
|
||||
aryidx_game: function(gameid){
|
||||
//gameid的5、10、15、20四位组成数组下标
|
||||
var idx = parseInt(gameid.substr(4, 1)
|
||||
+ gameid.substr(9, 1)
|
||||
+ gameid.substr(14, 1)
|
||||
+ gameid.substr(19, 1));
|
||||
if (isNaN(idx)){
|
||||
return -1;
|
||||
}
|
||||
return idx;
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////
|
||||
/////////// cls_youle_room_agentlist: 运营商列表 //////////
|
||||
///////////////////////////////////////////////////////////////
|
||||
var cls_youle_room_agentlist = cls_youle_room_agentlist || {
|
||||
//构造函数
|
||||
new: function() {
|
||||
var agentlist = {};
|
||||
//代理商列表
|
||||
agentlist.list = [];
|
||||
|
||||
//方法
|
||||
agentlist.method = {};
|
||||
|
||||
//载入代理商(没找到则创建)
|
||||
agentlist.method.load_agent = function(agentid, name, server, tcpport, httpport, freeroom){
|
||||
var idx = agentlist.method.aryidx_agent(agentid);
|
||||
if (idx == -1){
|
||||
return null;
|
||||
}
|
||||
if (agentlist.list.length <= idx) {
|
||||
agentlist.list.length = idx + 1;
|
||||
}
|
||||
var o_agent = agentlist.list[idx];
|
||||
if (!o_agent) {
|
||||
//不存在则创建
|
||||
o_agent = cls_youle_room_agent.new(agentid, name, server, tcpport, httpport, freeroom);
|
||||
agentlist.list[idx] = o_agent;
|
||||
} else {
|
||||
o_agent.agentname = name;
|
||||
o_agent.server = server;
|
||||
o_agent.tcpport = tcpport;
|
||||
o_agent.httpport = httpport;
|
||||
o_agent.freeroom = freeroom;
|
||||
}
|
||||
return o_agent;
|
||||
};
|
||||
|
||||
//查找运营商
|
||||
agentlist.method.find_agent = function(agentid){
|
||||
var idx = agentlist.method.aryidx_agent(agentid);
|
||||
if (idx == -1){
|
||||
return null;
|
||||
}
|
||||
if (agentlist.list.length <= idx){
|
||||
return null;
|
||||
}
|
||||
if (!agentlist.list[idx]){
|
||||
return null;
|
||||
}
|
||||
if (agentlist.list[idx].agentid != agentid){
|
||||
return null;
|
||||
}
|
||||
return agentlist.list[idx];
|
||||
};
|
||||
|
||||
//计算运营商的数组下标
|
||||
agentlist.method.aryidx_agent = function(agentid) {
|
||||
//agentid的5、10、15、20四位组成数组下标
|
||||
var idx = parseInt(agentid.substr(4, 1)
|
||||
+ agentid.substr(9, 1)
|
||||
+ agentid.substr(14, 1)
|
||||
+ agentid.substr(19, 1));
|
||||
if (isNaN(idx)){
|
||||
return -1;
|
||||
}
|
||||
return idx;
|
||||
};
|
||||
|
||||
return agentlist;
|
||||
}
|
||||
}
|
||||
|
||||
//运营商列表
|
||||
youle_room.agents = cls_youle_room_agentlist.new();
|
||||
732
codes/games/sales_service/youle/server_room/class.backup.js
Normal file
732
codes/games/sales_service/youle/server_room/class.backup.js
Normal file
@@ -0,0 +1,732 @@
|
||||
///////////////////////////////////////////////////
|
||||
//////////////cls_youle_room_backup: 数据备份类///////////
|
||||
///////////////////////////////////////////////////
|
||||
var cls_youle_room_backup = cls_youle_room_backup || {
|
||||
|
||||
isloading: true,
|
||||
|
||||
// backup_room: function(o_room, o_deskinfo){
|
||||
// try {
|
||||
// if (!o_room){
|
||||
// return;
|
||||
// }
|
||||
// if (!o_room.battlestate){
|
||||
// return;
|
||||
// }
|
||||
|
||||
// var agentid = o_room.o_game.o_agent.agentid;
|
||||
// var gameid = o_room.o_game.gameid;
|
||||
// var roomcode = o_room.roomcode;
|
||||
|
||||
// var _o_agent = youle_agent.agents.method.find_agent(agentid);
|
||||
|
||||
// var data_agent = [];
|
||||
// data_agent[0] = o_room.o_game.o_agent.agentid;
|
||||
// data_agent[1] = o_room.o_game.o_agent.agentname;
|
||||
// data_agent[2] = o_room.o_game.o_agent.server;
|
||||
// data_agent[3] = o_room.o_game.o_agent.tcpport;
|
||||
// data_agent[4] = o_room.o_game.o_agent.httpport;
|
||||
// data_agent[5] = o_room.o_game.o_agent.freeroom;
|
||||
// data_agent[6] = _o_agent.managecode;
|
||||
// localStorage.setItem(agentid, JSON.stringify(data_agent));
|
||||
|
||||
// var data_game = [];
|
||||
// data_game[0] = o_room.o_game.o_agent.agentid;
|
||||
// data_game[1] = o_room.o_game.gameid;
|
||||
// data_game[2] = o_room.o_game.gamename;
|
||||
// data_game[3] = o_room.o_game.seatcount;
|
||||
// data_game[4] = o_room.o_game.makewar;
|
||||
// data_game[5] = o_room.o_game.modename;
|
||||
// data_game[6] = o_room.o_game.roomserver;
|
||||
// data_game[7] = o_room.o_game.tcpport;
|
||||
// data_game[8] = o_room.o_game.httpport;
|
||||
// data_game[9] = o_room.o_game.minroomcode;
|
||||
// data_game[10] = o_room.o_game.maxroomcode;
|
||||
// localStorage.setItem(agentid + "_" + gameid, JSON.stringify(data_game));
|
||||
|
||||
// var data_room = [];
|
||||
// data_room[0] = o_room.o_game.o_agent.agentid;
|
||||
// data_room[1] = o_room.o_game.gameid;
|
||||
// data_room[2] = o_room.roomcode;
|
||||
// data_room[3] = o_room.roomtype;
|
||||
// data_room[4] = o_room.needroomcard;
|
||||
// data_room[5] = o_room.asetcount;
|
||||
// data_room[6] = o_room.createtime;
|
||||
// data_room[7] = o_room.battlestate;
|
||||
// data_room[8] = o_room.makewartime;
|
||||
// data_room[9] = o_room.wasdeduct;
|
||||
// data_room[10] = o_room.roommode;
|
||||
// data_room[11] = o_room.infinite;
|
||||
// data_room[12] = [];
|
||||
// for (var i = 0; i < o_room.seatlist.length; i++) {
|
||||
// data_room[12][i] = null;
|
||||
// if (o_room.seatlist[i]){
|
||||
// data_room[12][i] = [];
|
||||
// data_room[12][i][0] = o_room.seatlist[i].playerid;
|
||||
// data_room[12][i][1] = o_room.seatlist[i].nickname;
|
||||
// data_room[12][i][2] = o_room.seatlist[i].avatar;
|
||||
// data_room[12][i][3] = o_room.seatlist[i].sex;
|
||||
// data_room[12][i][4] = o_room.seatlist[i].playertype;
|
||||
// data_room[12][i][5] = o_room.seatlist[i].gameinfo.seat;
|
||||
// data_room[12][i][6] = o_room.seatlist[i].gameinfo.isowner;
|
||||
// data_room[12][i][7] = o_room.seatlist[i].gameinfo.isbet;
|
||||
// data_room[12][i][8] = o_room.seatlist[i].gameinfo.grade;
|
||||
|
||||
// var _o_player = _o_agent.method.find_player(o_room.seatlist[i].playerid);
|
||||
// data_room[12][i][9] = _o_player.roomcard;
|
||||
// data_room[12][i][10] = _o_player.bean;
|
||||
|
||||
// if (!o_room.seatlist[i].gameinfo.isowner) {
|
||||
// data_room[12][i][11] = o_room.seatlist[i].needroomcard;
|
||||
// data_room[12][i][12] = o_room.seatlist[i].wasdeduct;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// data_room[13] = o_deskinfo;
|
||||
// localStorage.setItem(agentid + "_" + gameid + "_" + roomcode, JSON.stringify(data_room));
|
||||
// } catch (e) {
|
||||
// if (e.name == 'QuotaExceededError') {
|
||||
// console.log(min_now() + ' 超出localStorage存储限额!');
|
||||
// } else {
|
||||
// console.log(min_now() + ' 保存localStorage失败');
|
||||
// }
|
||||
// }
|
||||
// },
|
||||
|
||||
backup_room: function(o_room, o_deskinfo){
|
||||
try {
|
||||
if (!o_room){
|
||||
return;
|
||||
}
|
||||
if (!o_room.battlestate){
|
||||
return;
|
||||
}
|
||||
if (!dbObject){
|
||||
return;
|
||||
}
|
||||
|
||||
var agentid = o_room.o_game.o_agent.agentid;
|
||||
var gameid = o_room.o_game.gameid;
|
||||
var roomcode = o_room.roomcode;
|
||||
|
||||
var _o_agent = youle_agent.agents.method.find_agent(agentid);
|
||||
|
||||
var data_agent = [];
|
||||
data_agent[0] = o_room.o_game.o_agent.agentid;
|
||||
data_agent[1] = o_room.o_game.o_agent.agentname;
|
||||
data_agent[2] = o_room.o_game.o_agent.server;
|
||||
data_agent[3] = o_room.o_game.o_agent.tcpport;
|
||||
data_agent[4] = o_room.o_game.o_agent.httpport;
|
||||
data_agent[5] = o_room.o_game.o_agent.freeroom;
|
||||
data_agent[6] = _o_agent.managecode;
|
||||
data_agent[7] = _o_agent.shortcodes;
|
||||
data_agent[8] = _o_agent.rebate_mode1;
|
||||
data_agent[9] = _o_agent.rebate_set1;
|
||||
data_agent[10] = _o_agent.rebate_mode2;
|
||||
data_agent[11] = _o_agent.rebate_set2;
|
||||
data_agent[12] = _o_agent.robot_nicknamelist;
|
||||
data_agent[13] = _o_agent.robot_avatarlist;
|
||||
data_agent[14] = _o_agent.initCard;
|
||||
data_agent[15] = _o_agent.initBean;
|
||||
|
||||
dbObject.put(agentid, data_agent);
|
||||
|
||||
var data_game = [];
|
||||
data_game[0] = o_room.o_game.o_agent.agentid;
|
||||
data_game[1] = o_room.o_game.gameid;
|
||||
data_game[2] = o_room.o_game.gamename;
|
||||
data_game[3] = o_room.o_game.seatcount;
|
||||
data_game[4] = o_room.o_game.makewar;
|
||||
data_game[5] = o_room.o_game.modename;
|
||||
data_game[6] = o_room.o_game.roomserver;
|
||||
data_game[7] = o_room.o_game.tcpport;
|
||||
data_game[8] = o_room.o_game.httpport;
|
||||
data_game[9] = o_room.o_game.minroomcode;
|
||||
data_game[10] = o_room.o_game.maxroomcode;
|
||||
dbObject.put(agentid + "_" + gameid, data_game);
|
||||
|
||||
var data_room = [];
|
||||
data_room[0] = o_room.o_game.o_agent.agentid;
|
||||
data_room[1] = o_room.o_game.gameid;
|
||||
data_room[2] = o_room.roomcode;
|
||||
data_room[3] = o_room.roomtype;
|
||||
data_room[4] = o_room.needroomcard;
|
||||
data_room[5] = o_room.asetcount;
|
||||
data_room[6] = o_room.createtime;
|
||||
data_room[7] = o_room.battlestate;
|
||||
data_room[8] = o_room.makewartime;
|
||||
data_room[9] = o_room.wasdeduct;
|
||||
data_room[10] = o_room.roommode;
|
||||
data_room[11] = o_room.infinite;
|
||||
data_room[12] = [];
|
||||
for (var i = 0; i < o_room.seatlist.length; i++) {
|
||||
data_room[12][i] = null;
|
||||
if (o_room.seatlist[i]){
|
||||
data_room[12][i] = [];
|
||||
data_room[12][i][0] = o_room.seatlist[i].playerid;
|
||||
data_room[12][i][1] = o_room.seatlist[i].nickname;
|
||||
data_room[12][i][2] = o_room.seatlist[i].avatar;
|
||||
data_room[12][i][3] = o_room.seatlist[i].sex;
|
||||
data_room[12][i][4] = o_room.seatlist[i].playertype;
|
||||
data_room[12][i][5] = o_room.seatlist[i].gameinfo.seat;
|
||||
data_room[12][i][6] = o_room.seatlist[i].gameinfo.isowner;
|
||||
data_room[12][i][7] = o_room.seatlist[i].gameinfo.isbet;
|
||||
data_room[12][i][8] = o_room.seatlist[i].gameinfo.grade;
|
||||
|
||||
var _o_player = _o_agent.method.find_player(o_room.seatlist[i].playerid);
|
||||
data_room[12][i][9] = _o_player.roomcard;
|
||||
data_room[12][i][10] = _o_player.bean;
|
||||
|
||||
if (!o_room.seatlist[i].gameinfo.isowner) {
|
||||
data_room[12][i][11] = o_room.seatlist[i].needroomcard;
|
||||
data_room[12][i][12] = o_room.seatlist[i].wasdeduct;
|
||||
}
|
||||
data_room[12][i][13] = o_room.seatlist[i].gameinfo.isprepare;
|
||||
data_room[12][i][14] = _o_player.advanced;
|
||||
data_room[12][i][15] = _o_player.shortcode;
|
||||
data_room[12][i][16] = _o_player.roomcodes;
|
||||
data_room[12][i][17] = _o_player.bankpower;
|
||||
data_room[12][i][18] = _o_player.bank;
|
||||
data_room[12][i][19] = _o_player.bankpwd;
|
||||
}
|
||||
}
|
||||
data_room[13] = o_deskinfo;
|
||||
data_room[14] = o_room.advanced_type;
|
||||
data_room[15] = o_room.advanced_teabean;
|
||||
data_room[16] = o_room.beanfloor;
|
||||
data_room[17] = o_room.needprepare;
|
||||
data_room[18] = o_room.beanmult;
|
||||
data_room[19] = [];
|
||||
data_room[19][0] = o_room.owner.playerid;
|
||||
data_room[19][1] = o_room.owner.nickname;
|
||||
data_room[19][2] = o_room.owner.avatar;
|
||||
data_room[19][3] = o_room.owner.sex;
|
||||
data_room[19][4] = o_room.owner.playertype;
|
||||
var _o_owner = _o_agent.method.find_player(o_room.owner.playerid);
|
||||
data_room[19][5] = _o_owner.roomcard;
|
||||
data_room[19][6] = _o_owner.bean;
|
||||
data_room[19][7] = _o_owner.advanced;
|
||||
data_room[19][8] = _o_owner.shortcode;
|
||||
data_room[19][9] = _o_owner.roomcodes;
|
||||
data_room[20] = o_room.match_id;
|
||||
data_room[21] = o_room.match_idx;
|
||||
|
||||
dbObject.put(agentid + "_" + gameid + "_" + roomcode, data_room);
|
||||
}catch(e){}
|
||||
},
|
||||
|
||||
// deletebackup_room: function(o_room){
|
||||
// var agentid = o_room.o_game.o_agent.agentid;
|
||||
// var gameid = o_room.o_game.gameid;
|
||||
// var roomcode = o_room.roomcode;
|
||||
// localStorage.removeItem(agentid + "_" + gameid + "_" + roomcode);
|
||||
// },
|
||||
|
||||
deletebackup_room: function(o_room){
|
||||
if (!dbObject){
|
||||
return;
|
||||
}
|
||||
var agentid = o_room.o_game.o_agent.agentid;
|
||||
var gameid = o_room.o_game.gameid;
|
||||
var roomcode = o_room.roomcode;
|
||||
dbObject.delete(agentid + "_" + gameid + "_" + roomcode);
|
||||
},
|
||||
|
||||
backup_match: function(o_match){
|
||||
try{
|
||||
if (!o_match){
|
||||
return;
|
||||
}
|
||||
if (!dbObject){
|
||||
return;
|
||||
}
|
||||
|
||||
var agentid = o_match.o_game.o_agent.agentid;
|
||||
var gameid = o_match.o_game.gameid;
|
||||
var matchid = o_match.id;
|
||||
|
||||
var data_agent = [];
|
||||
data_agent[0] = o_match.o_game.o_agent.agentid;
|
||||
data_agent[1] = o_match.o_game.o_agent.agentname;
|
||||
data_agent[2] = o_match.o_game.o_agent.server;
|
||||
data_agent[3] = o_match.o_game.o_agent.tcpport;
|
||||
data_agent[4] = o_match.o_game.o_agent.httpport;
|
||||
data_agent[5] = o_match.o_game.o_agent.freeroom;
|
||||
data_agent[6] = o_match.o_game.o_agent.managecode;
|
||||
data_agent[7] = o_match.o_game.o_agent.shortcodes;
|
||||
data_agent[8] = o_match.o_game.o_agent.rebate_mode1;
|
||||
data_agent[9] = o_match.o_game.o_agent.rebate_set1;
|
||||
data_agent[10] = o_match.o_game.o_agent.rebate_mode2;
|
||||
data_agent[11] = o_match.o_game.o_agent.rebate_set2;
|
||||
dbObject.put(agentid, data_agent);
|
||||
|
||||
var data_game = [];
|
||||
var _o_agent = youle_room.agents.method.find_agent(agentid);
|
||||
var _o_game = _o_agent.method.find_game(gameid);
|
||||
data_game[0] = agentid;
|
||||
data_game[1] = gameid;
|
||||
data_game[2] = _o_game.gamename;
|
||||
data_game[3] = _o_game.seatcount;
|
||||
data_game[4] = _o_game.makewar;
|
||||
data_game[5] = _o_game.modename;
|
||||
data_game[6] = _o_game.roomserver;
|
||||
data_game[7] = _o_game.tcpport;
|
||||
data_game[8] = _o_game.httpport;
|
||||
data_game[9] = _o_game.minroomcode;
|
||||
data_game[10] = _o_game.maxroomcode;
|
||||
dbObject.put(agentid + "_" + gameid, data_game);
|
||||
|
||||
var data_match = [];
|
||||
data_match[0] = agentid;
|
||||
data_match[1] = gameid;
|
||||
data_match[2] = matchid;
|
||||
data_match[3] = o_match.roomtype;
|
||||
data_match[4] = o_match.matchname;
|
||||
data_match[5] = o_match.imageurl;
|
||||
data_match[6] = o_match.playercount;
|
||||
data_match[7] = o_match.playercount2;
|
||||
data_match[8] = o_match.bean;
|
||||
data_match[9] = o_match.roomcard;
|
||||
data_match[10] = o_match.topcount;
|
||||
data_match[11] = o_match.circulation;
|
||||
data_match[12] = o_match.interval;
|
||||
data_match[13] = o_match.gradename;
|
||||
data_match[14] = o_match.memo1;
|
||||
data_match[15] = o_match.memo2;
|
||||
data_match[16] = o_match.memo3;
|
||||
data_match[17] = o_match.idx;
|
||||
data_match[18] = o_match.beginTime;
|
||||
data_match[19] = o_match.endTime;
|
||||
data_match[20] = o_match.isstart;
|
||||
data_match[21] = o_match.playerlist;
|
||||
data_match[22] = o_match.ranklist;
|
||||
data_match[23] = o_match.ranking;
|
||||
|
||||
dbObject.put(agentid + "_" + gameid + "_" + matchid, data_match);
|
||||
}catch(e){}
|
||||
},
|
||||
|
||||
deletebackup_match: function(o_match){
|
||||
if (!dbObject){
|
||||
return;
|
||||
}
|
||||
var agentid = o_match.o_game.o_agent.agentid;
|
||||
var gameid = o_match.o_game.gameid;
|
||||
var matchid = o_match.id;
|
||||
dbObject.delete(agentid + "_" + gameid + "_" + matchid);
|
||||
},
|
||||
|
||||
// restore: function(){
|
||||
// cls_youle_room_backup.isloading = true;
|
||||
|
||||
// var game1list = [];
|
||||
|
||||
// for (var i = 0; i < localStorage.length; i++) {
|
||||
// var key_room = localStorage.key(i);
|
||||
// if (key_room.length != 72) {
|
||||
// continue;
|
||||
// }
|
||||
// var value_room = localStorage.getItem(key_room);
|
||||
// if (!value_room) {
|
||||
// continue;
|
||||
// }
|
||||
// try {
|
||||
// var data_room = JSON.parse(value_room);
|
||||
// var agentid = data_room[0];
|
||||
// var gameid = data_room[1];
|
||||
// var roomcode = data_room[2];
|
||||
// var roomtype = data_room[3];
|
||||
// var needroomcard = data_room[4];
|
||||
// var asetcount = data_room[5];
|
||||
// var createtime = data_room[6];
|
||||
// var battlestate = data_room[7];
|
||||
// var makewartime = data_room[8];
|
||||
// var wasdeduct = data_room[9];
|
||||
// var roommode = data_room[10];
|
||||
// var infinite = data_room[11];
|
||||
// var playerlist = data_room[12];
|
||||
// var o_deskinfo = data_room[13];
|
||||
|
||||
|
||||
// var value_agent = localStorage.getItem(agentid);
|
||||
// if (!value_agent) {
|
||||
// continue;
|
||||
// }
|
||||
// var data_agent = JSON.parse(value_agent);
|
||||
// var agentname = data_agent[1];
|
||||
// var agentserver = data_agent[2];
|
||||
// var agenttcpport = data_agent[3];
|
||||
// var agenthttpport = data_agent[4];
|
||||
// var agentfreeroom = data_agent[5];
|
||||
// var managecode = data_agent[6];
|
||||
// var o_agent1 = youle_agent.agents.method.load_agent(agentid, agentname, agentserver, agenttcpport, agenthttpport, agentfreeroom, managecode);
|
||||
// var o_agent2 = youle_room.agents.method.load_agent(agentid, agentname, agentserver, agenttcpport, agenthttpport, agentfreeroom);
|
||||
|
||||
|
||||
// var value_game = localStorage.getItem(agentid + "_" + gameid);
|
||||
// if (!value_game) {
|
||||
// continue;
|
||||
// }
|
||||
// var data_game = JSON.parse(value_game);
|
||||
// var gamename = data_game[2];
|
||||
// var seatcount = data_game[3];
|
||||
// var makewar = data_game[4];
|
||||
// var modename = data_game[5];
|
||||
// var roomserver = data_game[6];
|
||||
// var gametcpport = data_game[7];
|
||||
// var gamehttpport = data_game[8];
|
||||
// var minroomcode = data_game[9];
|
||||
// var maxroomcode = data_game[10];
|
||||
// var o_game1 = o_agent1.method.load_game(gameid, gamename, minroomcode, maxroomcode, seatcount, makewar, modename);
|
||||
// var o_game2 = o_agent2.method.load_game(gameid, gamename, seatcount, makewar, modename, roomserver, gametcpport, gamehttpport, minroomcode, maxroomcode);
|
||||
// o_game1.roomcodes[roomcode - minroomcode] = 0;
|
||||
// var game1_isfound = false;
|
||||
// for (var j = 0; j < game1list.length; j++) {
|
||||
// if (game1list[j] == o_game1) {
|
||||
// game1_isfound = true;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// if (!game1_isfound){
|
||||
// game1list.push(o_game1);
|
||||
// }
|
||||
|
||||
|
||||
// var o_room2 = o_game2.method.create_room(roomcode, roomtype, needroomcard, asetcount);
|
||||
// o_room2.createtime = createtime;
|
||||
// o_room2.battlestate = battlestate;
|
||||
// o_room2.makewartime = makewartime;
|
||||
// o_room2.wasdeduct = wasdeduct;
|
||||
// o_room2.roommode = roommode;
|
||||
// o_room2.infinite = infinite;
|
||||
|
||||
|
||||
// for (var j = 0; j < playerlist.length; j++) {
|
||||
// var o_player = playerlist[j];
|
||||
// if (o_player){
|
||||
// var playerid = o_player[0];
|
||||
// var nickname = o_player[1];
|
||||
// var avatar = o_player[2];
|
||||
// var sex = o_player[3];
|
||||
// var playertype = o_player[4];
|
||||
// var seat = o_player[5];
|
||||
// var isowner = o_player[6];
|
||||
// var isbet = o_player[7];
|
||||
// var grade = o_player[8];
|
||||
// var roomcard = o_player[9];
|
||||
// var bean = o_player[10];
|
||||
// var needroomcard = o_player[11];
|
||||
// var wasdeduct = o_player[12];
|
||||
// var o_player1 = o_agent1.method.load_player(playerid, roomcard, bean, null, null, nickname, avatar, sex, playertype, null);
|
||||
// o_player1.method.login_game(o_game1);
|
||||
// o_player1.gameinfo[o_game1.idx].roomcode = roomcode;
|
||||
// var o_player2 = cls_youle_room_player.new(playerid, nickname, avatar, sex, playertype);
|
||||
// o_player2.method.enter_room(o_room2, seat, isowner);
|
||||
// o_player2.gameinfo.isbet = isbet;
|
||||
// o_player2.gameinfo.grade = grade;
|
||||
// o_player2.gameinfo.isowner = isowner;
|
||||
// if (!isowner){
|
||||
// o_player2.needroomcard = needroomcard;
|
||||
// o_player2.wasdeduct = wasdeduct;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// youle_room.import.restore_room(o_room2, o_deskinfo);
|
||||
// } catch(e) {
|
||||
// continue;
|
||||
// }
|
||||
// }
|
||||
|
||||
// for (var i = 0; i < game1list.length; i++) {
|
||||
// var o_game1 = game1list[i];
|
||||
// for (var k = 0; k < o_game1.roomcodesvalidlen; k++) {
|
||||
// if (!o_game1.roomcodes[k]){
|
||||
// if (k < o_game1.roomcodesvalidlen - 1) {
|
||||
// o_game1.roomcodes[k] = o_game1.roomcodes[o_game1.roomcodesvalidlen - 1];
|
||||
// k = k - 1;
|
||||
// }
|
||||
// o_game1.roomcodes[o_game1.roomcodesvalidlen - 1] = 0;
|
||||
// o_game1.method.roomcodesvalidlen_chang(-1);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// cls_youle_room_backup.isloading = false;
|
||||
// },
|
||||
|
||||
restore: function(){
|
||||
var do_opensuccess = function(){
|
||||
dbObject.get_cursor(do_getsuccess, do_geterror);
|
||||
}
|
||||
var do_openerror = function(){
|
||||
cls_youle_room_backup.isloading = false;
|
||||
}
|
||||
var do_getsuccess = function(db_store_cursor){
|
||||
if (db_store_cursor){
|
||||
try{
|
||||
if (db_store_cursor.key.length == 32){
|
||||
var data_agent = db_store_cursor.value;
|
||||
var agentid = data_agent[0];
|
||||
var agentname = data_agent[1];
|
||||
var agentserver = data_agent[2];
|
||||
var agenttcpport = data_agent[3];
|
||||
var agenthttpport = data_agent[4];
|
||||
var agentfreeroom = data_agent[5];
|
||||
var managecode = data_agent[6];
|
||||
var shortcodes = data_agent[7];
|
||||
var rebate_mode1 = data_agent[8];
|
||||
var rebate_set1 = data_agent[9];
|
||||
var rebate_mode2 = data_agent[10];
|
||||
var rebate_set2 = data_agent[11];
|
||||
var robot_nicknamelist = data_agent[12];
|
||||
var robot_avatarlist = data_agent[13];
|
||||
var initCard = data_agent[14];
|
||||
var initBean = data_agent[15];
|
||||
var o_agent1 = youle_agent.agents.method.load_agent(agentid, agentname, agentserver, agenttcpport, agenthttpport, agentfreeroom, managecode,initCard,initBean);
|
||||
o_agent1.shortcodes = shortcodes;
|
||||
o_agent1.rebate_mode1 = rebate_mode1;
|
||||
o_agent1.rebate_set1 = rebate_set1;
|
||||
o_agent1.rebate_mode2 = rebate_mode2;
|
||||
o_agent1.rebate_set2 = rebate_set2;
|
||||
o_agent1.robot_nicknamelist = robot_nicknamelist;
|
||||
o_agent1.robot_avatarlist = robot_avatarlist;
|
||||
var o_agent2 = youle_room.agents.method.load_agent(agentid, agentname, agentserver, agenttcpport, agenthttpport, agentfreeroom);
|
||||
} else if (db_store_cursor.key.length == 65){
|
||||
var data_game = db_store_cursor.value;
|
||||
var agentid = data_game[0];
|
||||
var gameid = data_game[1];
|
||||
var gamename = data_game[2];
|
||||
var seatcount = data_game[3];
|
||||
var makewar = data_game[4];
|
||||
var modename = data_game[5];
|
||||
var roomserver = data_game[6];
|
||||
var gametcpport = data_game[7];
|
||||
var gamehttpport = data_game[8];
|
||||
var minroomcode = data_game[9];
|
||||
var maxroomcode = data_game[10];
|
||||
var o_agent1 = youle_agent.agents.method.find_agent(agentid);
|
||||
var o_agent2 = youle_room.agents.method.find_agent(agentid);
|
||||
var o_game1 = o_agent1.method.load_game(gameid, gamename, minroomcode, maxroomcode, seatcount, makewar, modename);
|
||||
var o_game2 = o_agent2.method.load_game(gameid, gamename, seatcount, makewar, modename, roomserver, gametcpport, gamehttpport, minroomcode, maxroomcode);
|
||||
game1list.push(o_game1);
|
||||
} else if (db_store_cursor.key.length == 72){
|
||||
var data_room = db_store_cursor.value;
|
||||
var agentid = data_room[0];
|
||||
var gameid = data_room[1];
|
||||
var roomcode = data_room[2];
|
||||
var roomtype = data_room[3];
|
||||
var needroomcard = data_room[4];
|
||||
var asetcount = data_room[5];
|
||||
var createtime = data_room[6];
|
||||
var battlestate = data_room[7];
|
||||
var makewartime = data_room[8];
|
||||
var wasdeduct = data_room[9];
|
||||
var roommode = data_room[10];
|
||||
var infinite = data_room[11];
|
||||
var playerlist = data_room[12];
|
||||
var o_deskinfo = data_room[13];
|
||||
var advanced_type = data_room[14];
|
||||
var advanced_teabean = data_room[15];
|
||||
var beanfloor = data_room[16];
|
||||
var needprepare = data_room[17];
|
||||
var beanmult = data_room[18];
|
||||
var match_id = data_room[20];
|
||||
var match_idx = data_room[21];
|
||||
var o_agent1 = youle_agent.agents.method.find_agent(agentid);
|
||||
var o_agent2 = youle_room.agents.method.find_agent(agentid);
|
||||
var o_game1 = o_agent1.method.find_game(gameid);
|
||||
var o_game2 = o_agent2.method.find_game(gameid);
|
||||
|
||||
// o_game1.roomcodes[roomcode - o_game1.minroomcode] = 0;
|
||||
o_game1.method.new_roomcode(roomcode);
|
||||
|
||||
var o_room2 = o_game2.method.create_room(roomcode, roomtype, needroomcard, asetcount);
|
||||
o_room2.createtime = createtime;
|
||||
o_room2.battlestate = battlestate;
|
||||
o_room2.makewartime = makewartime;
|
||||
o_room2.wasdeduct = wasdeduct;
|
||||
o_room2.roommode = roommode;
|
||||
o_room2.infinite = infinite;
|
||||
o_room2.advanced_type = advanced_type;
|
||||
o_room2.advanced_teabean = advanced_teabean;
|
||||
o_room2.beanfloor = beanfloor;
|
||||
o_room2.needprepare = needprepare;
|
||||
o_room2.beanmult = beanmult;
|
||||
if (match_id){
|
||||
o_room2.match_id = match_id;
|
||||
o_room2.match_idx = match_idx;
|
||||
}
|
||||
if (!o_room2.advanced_type){
|
||||
if (o_room2.freetimer24){
|
||||
min_closetime(o_room2.freetimer24);
|
||||
o_room2.freetimer24 = null;
|
||||
}
|
||||
}
|
||||
|
||||
for (var j = 0; j < playerlist.length; j++) {
|
||||
var o_player = playerlist[j];
|
||||
if (o_player){
|
||||
var playerid = o_player[0];
|
||||
var nickname = o_player[1];
|
||||
var avatar = o_player[2];
|
||||
var sex = o_player[3];
|
||||
var playertype = o_player[4];
|
||||
var seat = o_player[5];
|
||||
var isowner = o_player[6];
|
||||
var isbet = o_player[7];
|
||||
var grade = o_player[8];
|
||||
var roomcard = o_player[9];
|
||||
var bean = o_player[10];
|
||||
var needroomcard = o_player[11];
|
||||
var wasdeduct = o_player[12];
|
||||
var isprepare = o_player[13];
|
||||
var advanced = o_player[14];
|
||||
var shortcode = o_player[15];
|
||||
var roomcodes = o_player[16];
|
||||
var bankpower = o_player[17];
|
||||
var bank = o_player[18];
|
||||
var bankpwd = o_player[19];
|
||||
|
||||
var o_player1 = o_agent1.method.load_player(playerid, roomcard, bean, null, null, nickname, avatar, sex, playertype, null);
|
||||
o_player1.advanced = advanced;
|
||||
o_player1.shortcode = shortcode;
|
||||
o_player1.roomcodes = roomcodes;
|
||||
o_player1.bankpower = bankpower;
|
||||
o_player1.bank = bank;
|
||||
o_player1.bankpwd = bankpwd;
|
||||
o_player1.method.login_game(o_game1);
|
||||
o_player1.gameinfo[o_game1.idx].roomcode = roomcode;
|
||||
|
||||
var o_player2 = cls_youle_room_player.new(playerid, nickname, avatar, sex, playertype);
|
||||
o_player2.method.enter_room(o_room2, seat, isowner);
|
||||
o_player2.bean = bean;
|
||||
o_player2.gameinfo.isbet = isbet;
|
||||
o_player2.gameinfo.grade = grade;
|
||||
o_player2.gameinfo.isowner = isowner;
|
||||
o_player2.gameinfo.isprepare = isprepare;
|
||||
if (!isowner){
|
||||
o_player2.needroomcard = needroomcard;
|
||||
o_player2.wasdeduct = wasdeduct;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!o_room2.owner){
|
||||
var owner_playerid = data_room[19][0];
|
||||
var owner_nickname = data_room[19][1];
|
||||
var owner_avatar = data_room[19][2];
|
||||
var owner_sex = data_room[19][3];
|
||||
var owner_playertype = data_room[19][4];
|
||||
var owner_roomcard = data_room[19][5];
|
||||
var owner_bean = data_room[19][6];
|
||||
var owner_advanced = data_room[19][7];
|
||||
var owner_shortcode = data_room[19][8];
|
||||
var owner_roomcodes = data_room[19][9];
|
||||
|
||||
var o_owner1 = o_agent1.method.load_player(owner_playerid, owner_roomcard, owner_bean, null, null, owner_nickname, owner_avatar, owner_sex, owner_playertype, null);
|
||||
o_owner1.advanced = owner_advanced;
|
||||
o_owner1.shortcode = owner_shortcode;
|
||||
o_owner1.roomcodes = owner_roomcodes;
|
||||
o_owner1.method.login_game(o_game1);
|
||||
|
||||
var o_owner2 = cls_youle_room_player.new(owner_playerid, owner_nickname, owner_avatar, owner_sex, owner_playertype);
|
||||
o_owner2.bean = owner_bean;
|
||||
o_room2.owner = o_owner2;
|
||||
}
|
||||
|
||||
youle_room.import.restore_room(o_room2, o_deskinfo);
|
||||
} else if (db_store_cursor.key.length == 76){
|
||||
var data_match = db_store_cursor.value;
|
||||
var agentid = data_match[0];
|
||||
var gameid = data_match[1];
|
||||
var matchid = data_match[2];
|
||||
var roomtype = data_match[3];
|
||||
var matchname = data_match[4];
|
||||
var imageurl = data_match[5];
|
||||
var playercount = data_match[6];
|
||||
var playercount2 = data_match[7];
|
||||
var bean = data_match[8];
|
||||
var roomcard = data_match[9];
|
||||
var topcount = data_match[10];
|
||||
var circulation = data_match[11];
|
||||
var interval = data_match[12];
|
||||
var gradename = data_match[13];
|
||||
var memo1 = data_match[14];
|
||||
var memo2 = data_match[15];
|
||||
var memo3 = data_match[16];
|
||||
var idx = data_match[17];
|
||||
var beginTime = data_match[18];
|
||||
var endTime = data_match[19];
|
||||
var isstart = data_match[20];
|
||||
var playerlist = data_match[21];
|
||||
var ranklist = data_match[22];
|
||||
var ranking = data_match[23];
|
||||
|
||||
var o_match = {};
|
||||
o_match.id = matchid;
|
||||
o_match.roomtype = roomtype;
|
||||
o_match.matchname = matchname;
|
||||
o_match.imageurl = imageurl;
|
||||
o_match.beginTime = beginTime;
|
||||
o_match.endTime = endTime;
|
||||
o_match.playercount = playercount;
|
||||
o_match.playercount2 = playercount2;
|
||||
o_match.bean = bean;
|
||||
o_match.roomcard = roomcard;
|
||||
o_match.topcount = topcount;
|
||||
o_match.circulation = circulation;
|
||||
o_match.interval = interval;
|
||||
o_match.gradename = gradename;
|
||||
o_match.memo1 = memo1;
|
||||
o_match.memo2 = memo2;
|
||||
o_match.memo3 = memo3;
|
||||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||||
var o_game = o_agent1.method.find_game(gameid);
|
||||
var _o_match = o_game.matchlist.method.load_match(o_match);
|
||||
if (_o_match){
|
||||
_o_match.idx = idx;
|
||||
_o_match.beginTime = beginTime;
|
||||
_o_match.endTime = endTime;
|
||||
_o_match.isstart = isstart;
|
||||
_o_match.playerlist = playerlist;
|
||||
_o_match.ranklist = ranklist;
|
||||
if (ranking){
|
||||
_o_match.ranking = ranking;
|
||||
}
|
||||
}
|
||||
}
|
||||
}catch(e){}
|
||||
|
||||
db_store_cursor.continue();
|
||||
} else {
|
||||
// for (var i = 0; i < game1list.length; i++) {
|
||||
// var o_game1 = game1list[i];
|
||||
// for (var k = 0; k < o_game1.roomcodesvalidlen; k++) {
|
||||
// if (!o_game1.roomcodes[k]){
|
||||
// if (k < o_game1.roomcodesvalidlen - 1) {
|
||||
// o_game1.roomcodes[k] = o_game1.roomcodes[o_game1.roomcodesvalidlen - 1];
|
||||
// k = k - 1;
|
||||
// }
|
||||
// o_game1.roomcodes[o_game1.roomcodesvalidlen - 1] = 0;
|
||||
// o_game1.method.roomcodesvalidlen_chang(-1);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
cls_youle_room_backup.isloading = false;
|
||||
}
|
||||
}
|
||||
var do_geterror = function(){
|
||||
cls_youle_room_backup.isloading = false;
|
||||
}
|
||||
|
||||
cls_youle_room_backup.isloading = true;
|
||||
var game1list = [];
|
||||
var dbParams = {};
|
||||
dbParams.db_name = "games";
|
||||
dbParams.db_version = "4";
|
||||
dbParams.store_name = "desk";
|
||||
dbParams.success_callback = do_opensuccess;
|
||||
dbParams.error_callback = do_openerror;
|
||||
dbObject.open(dbParams);
|
||||
}
|
||||
}
|
||||
2003
codes/games/sales_service/youle/server_room/class.export.js
Normal file
2003
codes/games/sales_service/youle/server_room/class.export.js
Normal file
File diff suppressed because it is too large
Load Diff
193
codes/games/sales_service/youle/server_room/class.game.js
Normal file
193
codes/games/sales_service/youle/server_room/class.game.js
Normal file
@@ -0,0 +1,193 @@
|
||||
///////////////////////////////////////////////////
|
||||
////////// cls_youle_room_game: 游戏 //////////
|
||||
///////////////////////////////////////////////////
|
||||
var cls_youle_room_game = cls_youle_room_game || {
|
||||
//构造函数
|
||||
new: function(o_agent, gameid, gameidx, gamename, seatcount, makewar, modename, roomserver, tcpport, httpport, minroomcode, maxroomcode){
|
||||
var game = {};
|
||||
//基本信息
|
||||
game.o_agent = o_agent; //代理商
|
||||
game.gameid = gameid; //游戏id
|
||||
game.idx = gameidx; //游戏的数组下标
|
||||
game.gamename = gamename; //游戏名称
|
||||
game.seatcount = seatcount; //房间内的座位数量
|
||||
game.makewar = makewar; //达成开战条件的人数
|
||||
game.modename = modename; //游戏服务器模块名称
|
||||
game.roomserver = roomserver; //房间服务器地址
|
||||
game.tcpport = tcpport; //房间服务器tcp端口
|
||||
game.httpport = httpport; //房间服务器http端口
|
||||
game.minroomcode = minroomcode; //房间服务器最小房号
|
||||
game.maxroomcode = maxroomcode; //房间服务器最大房号
|
||||
|
||||
//房间列表
|
||||
game.rooms = [];
|
||||
game.rooms.length = maxroomcode - minroomcode + 1;
|
||||
|
||||
//方法
|
||||
game.method = {};
|
||||
|
||||
//创建房间
|
||||
game.method.create_room = function(roomcode, roomtype, needroomcard, asetcount){
|
||||
return cls_youle_room_game.create_room(game, roomcode, roomtype, needroomcard, asetcount);
|
||||
}
|
||||
|
||||
//查找房间
|
||||
game.method.find_room = function(roomcode){
|
||||
return cls_youle_room_game.find_room(game, roomcode);
|
||||
}
|
||||
|
||||
//释放房间
|
||||
game.method.free_room = function(o_room){
|
||||
cls_youle_room_game.free_room(game, o_room);
|
||||
}
|
||||
|
||||
//调试状态
|
||||
game.method.isdebugger = function(){
|
||||
return cls_youle_room_game.isdebugger(game);
|
||||
}
|
||||
return game;
|
||||
},
|
||||
|
||||
//创建房间
|
||||
create_room: function(o_game, roomcode, roomtype, needroomcard, asetcount){
|
||||
//判断房号是否在范围内
|
||||
if (roomcode < o_game.minroomcode || roomcode > o_game.maxroomcode){
|
||||
return null;
|
||||
}
|
||||
|
||||
//判断房间是否已经存在
|
||||
var idx = cls_youle_room_game.aryidx_room(o_game, roomcode);
|
||||
if (o_game.rooms[idx]){
|
||||
return null;
|
||||
}
|
||||
|
||||
var o_room = cls_youle_room_room.new(o_game, roomcode, roomtype, needroomcard, asetcount);
|
||||
o_game.rooms[idx] = o_room;
|
||||
|
||||
return o_room;
|
||||
},
|
||||
|
||||
//查找房间
|
||||
find_room: function(o_game, roomcode){
|
||||
var idx = cls_youle_room_game.aryidx_room(o_game, roomcode);
|
||||
if (o_game.rooms.length <= idx) {
|
||||
return null;
|
||||
}
|
||||
return o_game.rooms[idx];
|
||||
},
|
||||
|
||||
//释放房间
|
||||
free_room: function(o_game, o_room){
|
||||
var idx = cls_youle_room_game.aryidx_room(o_game, o_room.roomcode);
|
||||
|
||||
//更新tcp连接列表
|
||||
var o_room = o_game.rooms[idx];
|
||||
if (o_room){
|
||||
for (var i = 0; i < o_room.seatlist.length; i++) {
|
||||
if (o_room.seatlist[i]) {
|
||||
var o_player = o_room.seatlist[i];
|
||||
if (o_player.conmode == "tcp"){
|
||||
youle_room.tcps.method.delete_tcp(o_player.fromid, o_player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
try{
|
||||
if (o_room.game){//针对牛牛写的
|
||||
if (o_room.game.room){
|
||||
o_room.game.room = null;
|
||||
}
|
||||
if (o_room.game.pList){
|
||||
o_room.game.pList = null;
|
||||
}
|
||||
o_room.game = null;
|
||||
}
|
||||
if (o_room.o_desk){//通用
|
||||
if (o_room.o_desk.o_room){
|
||||
o_room.o_desk.o_room = null;
|
||||
}
|
||||
o_room.o_desk = null;
|
||||
}
|
||||
|
||||
for (var i = 0; i < o_room.seatlist.length; i++) {
|
||||
if (o_room.seatlist[i]){
|
||||
o_room.seatlist[i].seat = null;
|
||||
o_room.seatlist[i].cards = null;
|
||||
o_room.seatlist[i].rubcard = null;
|
||||
o_room.seatlist[i].putcard = null;
|
||||
o_room.seatlist[i].scores = null;
|
||||
o_room.seatlist[i].betScore = null;
|
||||
o_room.seatlist[i].winScore = null;
|
||||
o_room.seatlist[i].isJoin = null;
|
||||
o_room.seatlist[i].isBet = null;
|
||||
o_room.seatlist[i].isAuto = null;
|
||||
o_room.seatlist[i].auto = null;
|
||||
o_room.seatlist[i] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(e){}
|
||||
|
||||
if (o_room.freetimer){
|
||||
min_closetime(o_room.freetimer);
|
||||
o_room.freetimer = null;
|
||||
}
|
||||
if (o_room.freetimer24){
|
||||
min_closetime(o_room.freetimer24);
|
||||
o_room.freetimer24 = null;
|
||||
}
|
||||
if (o_room.timer_robot){
|
||||
min_closetime(o_room.timer_robot);
|
||||
o_room.timer_robot = null;
|
||||
}
|
||||
if (o_room.timer_robot_active){
|
||||
min_closetime(o_room.timer_robot_active);
|
||||
o_room.timer_robot_active = null;
|
||||
}
|
||||
if (o_room.timer_robot_passive){
|
||||
for (var i = 0; i < o_room.timer_robot_passive.length; i++) {
|
||||
min_closetime(o_room.timer_robot_passive[i]);
|
||||
}
|
||||
o_room.timer_robot_passive = [];
|
||||
}
|
||||
}
|
||||
|
||||
o_game.rooms[idx] = null;
|
||||
|
||||
//固定房号的房间需要自动再次创建
|
||||
if (o_room.advanced_type){
|
||||
var msg = {};
|
||||
msg.app = youle_room.app.appname;
|
||||
msg.route = youle_room.app.youle_agent.routename;
|
||||
msg.rpc = "advanced_createroom_roomcode";
|
||||
msg.data = {};
|
||||
msg.data.agentid = o_room.o_game.o_agent.agentid;
|
||||
msg.data.playerid = o_room.owner.playerid;
|
||||
msg.data.gameid = o_room.o_game.gameid;
|
||||
msg.data.roomcode = o_room.roomcode;
|
||||
msg.data.shortcode = o_room.shortcode;
|
||||
//msg.data.rebateType = o_room.rebateType;
|
||||
youle_room.app.youle_agent[msg.rpc](msg);
|
||||
}else{
|
||||
//非vip房且有需要更新的roomtype自动创建
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
//调试状态
|
||||
isdebugger: function(o_game){
|
||||
var o_cfg = youle_room.app.youle_platform.config;
|
||||
var re = o_cfg.method.get_paravalue("isdebugger", o_game.o_agent.agentid, o_game.gameid);
|
||||
if (!re){
|
||||
return 0; //正式
|
||||
} else {
|
||||
return 1; //调试
|
||||
}
|
||||
},
|
||||
|
||||
//计算房间的数组下标
|
||||
aryidx_room: function(o_game, roomcode){
|
||||
return roomcode - o_game.minroomcode;
|
||||
}
|
||||
}
|
||||
349
codes/games/sales_service/youle/server_room/class.import.js
Normal file
349
codes/games/sales_service/youle/server_room/class.import.js
Normal file
@@ -0,0 +1,349 @@
|
||||
///////////////////////////////////////////////////
|
||||
/////// cls_youle_room_import: 输入接口 ///////
|
||||
///////////////////////////////////////////////////
|
||||
var cls_youle_room_import = cls_youle_room_import || {
|
||||
|
||||
new: function() {
|
||||
|
||||
var imp = {};
|
||||
|
||||
//创建房间时根据roomtype获取需要的房卡数量
|
||||
imp.createroom_needroomcard = function(o_game, roomtype){
|
||||
var o_game_config = youle_room.app.youle_platform.config.method.get_paravalue("game_config", o_game.o_agent.agentid, o_game.gameid);
|
||||
var mod_game = youle_room.app[o_game.modename];
|
||||
if (mod_game.export){
|
||||
if (mod_game.export.get_needroomcard){
|
||||
return mod_game.export.get_needroomcard(roomtype, o_game_config);
|
||||
}
|
||||
}
|
||||
if (mod_game.needroomcard){
|
||||
return mod_game.needroomcard(roomtype, o_game_config);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
//创建房间时根据roomtype获取总局数
|
||||
imp.createroom_asetcount = function(o_game, roomtype){
|
||||
var o_game_config = youle_room.app.youle_platform.config.method.get_paravalue("game_config", o_game.o_agent.agentid, o_game.gameid);
|
||||
var mod_game = youle_room.app[o_game.modename];
|
||||
if (mod_game.export){
|
||||
if (mod_game.export.get_asetcount){
|
||||
return mod_game.export.get_asetcount(roomtype, o_game_config);
|
||||
}
|
||||
}
|
||||
if (mod_game.asetcount){
|
||||
return mod_game.asetcount(roomtype, o_game_config);
|
||||
}
|
||||
return 8;
|
||||
}
|
||||
|
||||
//创建房间时根据roomtype获取元宝下限
|
||||
imp.createroom_beanfloor = function(o_game, roomtype){
|
||||
var o_game_config = youle_room.app.youle_platform.config.method.get_paravalue("game_config", o_game.o_agent.agentid, o_game.gameid);
|
||||
|
||||
var mod_game = youle_room.app[o_game.modename];
|
||||
if (mod_game.export){
|
||||
if (mod_game.export.createroom_beanfloor){
|
||||
return mod_game.export.createroom_beanfloor(roomtype, o_game_config);
|
||||
}
|
||||
}
|
||||
if (mod_game.createroom_beanfloor){
|
||||
return mod_game.createroom_beanfloor(roomtype, o_game_config);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
//加入房间时根据roomtype获取需要的房卡数量,如果不需要房卡则需要返回0
|
||||
imp.joinroom_needroomcard = function(o_game, roomtype){
|
||||
var o_game_config = youle_room.app.youle_platform.config.method.get_paravalue("game_config", o_game.o_agent.agentid, o_game.gameid);
|
||||
var mod_game = youle_room.app[o_game.modename];
|
||||
if (mod_game.export){
|
||||
if (mod_game.export.get_needroomcard_joinroom){
|
||||
return mod_game.export.get_needroomcard_joinroom(roomtype, o_game_config);
|
||||
}
|
||||
}
|
||||
if (mod_game.needroomcard_joinroom){
|
||||
return mod_game.needroomcard_joinroom(roomtype, o_game_config);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
//根据roomtype获取房间的扣卡模式,0:房主扣卡 1:每人扣卡 2:大赢家扣卡
|
||||
imp.deduct_roomcard_mode = function(o_game, roomtype){
|
||||
var o_game_config = youle_room.app.youle_platform.config.method.get_paravalue("game_config", o_game.o_agent.agentid, o_game.gameid);
|
||||
var mod_game = youle_room.app[o_game.modename];
|
||||
if (mod_game.export){
|
||||
if (mod_game.export.deduct_roomcard_mode){
|
||||
return mod_game.export.deduct_roomcard_mode(roomtype, o_game_config);
|
||||
}
|
||||
}
|
||||
if (mod_game.deduct_roomcard_mode){
|
||||
return mod_game.deduct_roomcard_mode(roomtype, o_game_config);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
//除了满桌自动开战外,子游戏可以设置开战人数
|
||||
imp.makewar_playercount = function(o_game, roomtype){
|
||||
var o_game_config = youle_room.app.youle_platform.config.method.get_paravalue("game_config", o_game.o_agent.agentid, o_game.gameid);
|
||||
var mod_game = youle_room.app[o_game.modename];
|
||||
if (mod_game.export){
|
||||
if (mod_game.export.makewar_playercount){
|
||||
return mod_game.export.makewar_playercount(roomtype, o_game_config);
|
||||
}
|
||||
}
|
||||
if (mod_game.makewar_playercount){
|
||||
return mod_game.makewar_playercount(roomtype, o_game_config);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
//星星场房主抽成星星数量
|
||||
imp.owner_beanpush = function(o_game, roomtype){
|
||||
var o_game_config = youle_room.app.youle_platform.config.method.get_paravalue("game_config", o_game.o_agent.agentid, o_game.gameid);
|
||||
var mod_game = youle_room.app[o_game.modename];
|
||||
if (mod_game.export){
|
||||
if (mod_game.export.owner_beanpush){
|
||||
return mod_game.export.owner_beanpush(roomtype, o_game_config);
|
||||
}
|
||||
}
|
||||
if (mod_game.owner_beanpush){
|
||||
return mod_game.owner_beanpush(roomtype, o_game_config);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
//开局时通知游戏,并返回游戏的开局数据包
|
||||
imp.makewar_deskwar = function(o_room){
|
||||
var matchroom_deductbean = function(){
|
||||
if (!o_room.match_id){
|
||||
return;
|
||||
}
|
||||
var o_agentsvr_agent = youle_agent.agents.method.find_agent(o_room.o_game.o_agent.agentid);
|
||||
var o_agentsvr_game = o_agentsvr_agent.method.find_game(o_room.o_game.gameid);
|
||||
var match_idx = min_ary_indexof(o_agentsvr_game.matchlist.list, o_room.match_id, "id");
|
||||
if (match_idx == -1){
|
||||
return;
|
||||
}
|
||||
var match_object = o_agentsvr_game.matchlist.list[match_idx];
|
||||
if (!match_object.bean){
|
||||
return;
|
||||
}
|
||||
|
||||
var do_deduct_bean = function(){
|
||||
var msg = {};
|
||||
msg.app = youle_room.app.appname;
|
||||
msg.route = youle_room.app.youle_agent.routename;
|
||||
msg.rpc = "update_bean";
|
||||
msg.data = {};
|
||||
msg.data.agentid = o_room.o_game.o_agent.agentid;
|
||||
msg.data.change = 0;
|
||||
msg.data.pushbean = -1 * match_object.bean;
|
||||
msg.data.gameid = o_room.o_game.gameid;
|
||||
msg.data.showrebate = 1;
|
||||
msg.data.type = 5;
|
||||
|
||||
//房间id = 时间戳 + 4位随机码 + 房号
|
||||
var roomid = new Date().getTime() + min_randomChar(4) + o_room.roomcode;
|
||||
var datatime = min_now();
|
||||
var beanmult = 0;
|
||||
if (o_room.beanmult){
|
||||
beanmult = o_room.beanmult;
|
||||
}
|
||||
var shortcode = 0;
|
||||
if (o_room.shortcode){
|
||||
shortcode = o_room.shortcode;
|
||||
}
|
||||
var deductmode = youle_room.import.deduct_roomcard_mode(o_room.o_game, o_room.roomtype);
|
||||
for (var i = 0; i < o_room.seatlist.length; i++) {
|
||||
if (o_room.seatlist[i]){
|
||||
var playerid = o_room.seatlist[i].playerid;
|
||||
var roomcard = 0;
|
||||
if (playerid == o_room.owner.playerid){
|
||||
roomcard = youle_room.import.createroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||||
} else {
|
||||
roomcard = youle_room.import.joinroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||||
}
|
||||
var isrobot = 0;
|
||||
if (o_room.seatlist[i].isrobot){
|
||||
isrobot = 1;
|
||||
}
|
||||
if (!isrobot){
|
||||
msg.data.playerid = playerid;
|
||||
youle_room.app.youle_agent[msg.rpc](msg);
|
||||
}
|
||||
|
||||
var sql = "insert into gold_account(goac_id,goac_agentid,goac_gameid,goac_roomcode,goac_roommode,goac_createtime,goac_beanmult,goac_ownerid,goac_shortcode,goac_deduct,goac_roomcard,goac_datatype,goac_asetcount,goac_asetnum,goac_playerid,goac_isrobot,goac_grade,goac_rebatefrom,goac_rebateto,goac_toplayerid,goac_rebatemode,goac_setvalue,goac_rebatevalue,goac_time) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
|
||||
youle_room.mysql_grade.execsql("execsql", sql, [roomid, o_room.o_game.o_agent.agentid, o_room.o_game.gameid, o_room.roomcode, 4, o_room.createtime, beanmult, o_room.owner.ownerid, shortcode, deductmode, roomcard, 0, o_room.asetcount, 0, playerid, isrobot, 0, 3, 0, 0, 3, match_object.bean, match_object.bean, datatime]);
|
||||
}
|
||||
}
|
||||
}
|
||||
min_ontimeout(do_deduct_bean, 1000);
|
||||
}
|
||||
var o_game_config = youle_room.app.youle_platform.config.method.get_paravalue("game_config", o_room.o_game.o_agent.agentid, o_room.o_game.gameid);
|
||||
var mod_game = youle_room.app[o_room.o_game.modename];
|
||||
if (mod_game.export){
|
||||
if (mod_game.export.makewar){
|
||||
var data = mod_game.export.makewar(o_room, o_game_config);
|
||||
matchroom_deductbean(); //比赛场扣除报名的星星费用
|
||||
return data;
|
||||
}
|
||||
}
|
||||
if (mod_game.makewar){
|
||||
var data = mod_game.makewar(o_room, o_game_config);
|
||||
matchroom_deductbean(); //比赛场扣除报名的星星费用
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
//进入房间或断线重连时获取牌局信息
|
||||
imp.get_deskinfo = function(o_room, seat){
|
||||
var mod_game = youle_room.app[o_room.o_game.modename];
|
||||
if (mod_game.export){
|
||||
if (mod_game.export.get_deskinfo){
|
||||
return mod_game.export.get_deskinfo(o_room, seat);
|
||||
}
|
||||
}
|
||||
if (mod_game.getDeskInfo){
|
||||
return mod_game.getDeskInfo(o_room, seat);
|
||||
}
|
||||
}
|
||||
|
||||
//解散时通知游戏
|
||||
imp.get_disbandRoom = function(o_room){
|
||||
var mod_game = youle_room.app[o_room.o_game.modename];
|
||||
if (mod_game.export){
|
||||
if (mod_game.export.get_disbandRoom){
|
||||
return mod_game.export.get_disbandRoom(o_room);
|
||||
}
|
||||
}
|
||||
if (mod_game.disbandRoom){
|
||||
return mod_game.disbandRoom(o_room);
|
||||
}
|
||||
}
|
||||
|
||||
//玩家中途进入房间
|
||||
imp.player_enter = function(o_room, seat){
|
||||
var mod_game = youle_room.app[o_room.o_game.modename];
|
||||
if (mod_game.export){
|
||||
if (mod_game.export.player_enter){
|
||||
return mod_game.export.player_enter(o_room, seat);
|
||||
}
|
||||
}
|
||||
if (mod_game.player_enter){
|
||||
return mod_game.player_enter(o_room, seat);
|
||||
}
|
||||
}
|
||||
|
||||
//玩家中途退出房间
|
||||
imp.player_leave = function(o_room, seat){
|
||||
var mod_game = youle_room.app[o_room.o_game.modename];
|
||||
if (mod_game.export){
|
||||
if (mod_game.export.player_leave){
|
||||
return mod_game.export.player_leave(o_room, seat);
|
||||
}
|
||||
}
|
||||
if (mod_game.player_leave){
|
||||
return mod_game.player_leave(o_room, seat);
|
||||
}
|
||||
}
|
||||
|
||||
//恢复房间数据
|
||||
imp.restore_room = function(o_room, o_deskinfo){
|
||||
var mod_game = youle_room.app[o_room.o_game.modename];
|
||||
if (mod_game.export){
|
||||
if (mod_game.export.restore_room){
|
||||
return mod_game.export.restore_room(o_room, o_deskinfo);
|
||||
}
|
||||
}
|
||||
if (mod_game.restore_room){
|
||||
return mod_game.restore_room(o_room, o_deskinfo);
|
||||
}
|
||||
}
|
||||
|
||||
//玩家准备
|
||||
imp.player_CanPrepare = function(o_room, seat){
|
||||
var mod_game = youle_room.app[o_room.o_game.modename];
|
||||
if (mod_game.export){
|
||||
if (mod_game.export.player_CanPrepare){
|
||||
return mod_game.export.player_CanPrepare(o_room, seat);
|
||||
}
|
||||
}
|
||||
if (mod_game.player_CanPrepare){
|
||||
return mod_game.player_CanPrepare(o_room, seat);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
imp.player_prepare = function(o_room, seat){
|
||||
var mod_game = youle_room.app[o_room.o_game.modename];
|
||||
if (mod_game.export){
|
||||
if (mod_game.export.player_prepare){
|
||||
return mod_game.export.player_prepare(o_room, seat);
|
||||
}
|
||||
}
|
||||
if (mod_game.player_prepare){
|
||||
return mod_game.player_prepare(o_room, seat);
|
||||
}
|
||||
}
|
||||
|
||||
//无限局玩家是否可以离开房间
|
||||
imp.isPlayerCanLeave = function(o_room, seat){
|
||||
var mod_game = youle_room.app[o_room.o_game.modename];
|
||||
if (mod_game.export){
|
||||
if (mod_game.export.isPlayerCanLeave){
|
||||
return mod_game.export.isPlayerCanLeave(o_room, seat);
|
||||
}
|
||||
}
|
||||
if (mod_game.isPlayerCanLeave){
|
||||
return mod_game.isPlayerCanLeave(o_room, seat);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
//通过战绩gameinfo1获取大赢家标志如[0,0,1]空座位不需要写入数组顺序从0号座位依次写入
|
||||
imp.getWinnerByGameInfo1 = function(o_room, gameinfo1){
|
||||
var mod_game = youle_room.app[o_room.o_game.modename];
|
||||
if (mod_game.export){
|
||||
if (mod_game.export.getWinnerByGameInfo1){
|
||||
return mod_game.export.getWinnerByGameInfo1(o_room, gameinfo1);
|
||||
}
|
||||
}
|
||||
if (mod_game.getWinnerByGameInfo1){
|
||||
return mod_game.getWinnerByGameInfo1(o_room, gameinfo1);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
//通过战绩gameinfo1获取积分列表如[10,10,-20]空座位不需要写入数组顺序从0号座位依次写入
|
||||
imp.getScoreByGameInfo1 = function(o_room, gameinfo1){
|
||||
var mod_game = youle_room.app[o_room.o_game.modename];
|
||||
if (mod_game.export){
|
||||
if (mod_game.export.getScoreByGameInfo1){
|
||||
return mod_game.export.getScoreByGameInfo1(o_room, gameinfo1);
|
||||
}
|
||||
}
|
||||
if (mod_game.getScoreByGameInfo1){
|
||||
return mod_game.getScoreByGameInfo1(o_room, gameinfo1);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
//通知子游戏解散房间
|
||||
imp.gameBreak = function(o_room){
|
||||
var mod_game = youle_room.app[o_room.o_game.modename];
|
||||
if (mod_game.export){
|
||||
if (mod_game.export.gameBreak){
|
||||
return mod_game.export.gameBreak(o_room);
|
||||
}
|
||||
}
|
||||
if (mod_game.gameBreak){
|
||||
return mod_game.gameBreak(o_room);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
return imp;
|
||||
}
|
||||
}
|
||||
|
||||
//内部输入接口
|
||||
youle_room.import = cls_youle_room_import.new();
|
||||
156
codes/games/sales_service/youle/server_room/class.player.js
Normal file
156
codes/games/sales_service/youle/server_room/class.player.js
Normal file
@@ -0,0 +1,156 @@
|
||||
///////////////////////////////////////////////////
|
||||
///////// cls_youle_room_player: 玩家 /////////
|
||||
///////////////////////////////////////////////////
|
||||
var cls_youle_room_player = cls_youle_room_player || {
|
||||
//构造函数
|
||||
new: function(playerid, nickname, avatar, sex, playertype, ip, onstate, conmode, fromid){
|
||||
var player = {};
|
||||
//基本信息
|
||||
player.playerid = playerid; //玩家id
|
||||
player.nickname = nickname;
|
||||
player.avatar = avatar;
|
||||
player.sex = sex;
|
||||
player.playertype = playertype;
|
||||
player.ip = ip;
|
||||
player.onstate = onstate; //在线状态 null未连接 0在线 1离线 2电话中
|
||||
player.conmode = conmode; //连接方式
|
||||
player.fromid = fromid; //连接id
|
||||
|
||||
//初始化游戏数据
|
||||
player.gameinfo = {};
|
||||
player.gameinfo.o_game = null; //所在的游戏
|
||||
player.gameinfo.o_room = null; //所在的房间
|
||||
player.gameinfo.seat = -1; //房间内的位置
|
||||
player.gameinfo.isowner = -1; //房主标志 0:非房主 1:是房主
|
||||
player.gameinfo.agree = -1; //是否同意解散房间 0:申请解散 1:同意解散
|
||||
player.gameinfo.isbet = -1; //下注标志 0:未下注可离开房间 1:已下注不可离开房间
|
||||
player.gameinfo.grade = 0; //在房间内的得分
|
||||
|
||||
//在定义中没有写入的后加属性
|
||||
//player.gameinfo.isprepare = 0; //是否准备
|
||||
|
||||
//方法
|
||||
player.method = {};
|
||||
|
||||
//获取玩家的基础信息
|
||||
player.method.get_info = function(){
|
||||
return cls_youle_room_player.get_info(player);
|
||||
}
|
||||
|
||||
//进入房间
|
||||
player.method.enter_room = function(o_room, seat, isowner){
|
||||
cls_youle_room_player.enter_room(player, o_room, seat, isowner);
|
||||
}
|
||||
|
||||
//退出房间
|
||||
player.method.exit_room = function(){
|
||||
cls_youle_room_player.exit_room(player);
|
||||
}
|
||||
|
||||
return player;
|
||||
},
|
||||
|
||||
//获取玩家的基础信息
|
||||
get_info: function(o_player){
|
||||
var info = {};
|
||||
info.playerid = o_player.playerid;
|
||||
info.nickname = o_player.nickname;
|
||||
info.avatar = o_player.avatar;
|
||||
info.sex = o_player.sex;
|
||||
info.ip = o_player.ip;
|
||||
info.onstate = o_player.onstate;
|
||||
info.isprepare= o_player.gameinfo.isprepare;
|
||||
if (o_player.isrobot){
|
||||
info.bean = o_player.bean;
|
||||
} else {
|
||||
info.bean = null;
|
||||
}
|
||||
if (o_player.paycode) {
|
||||
info.paycode = o_player.paycode;
|
||||
}
|
||||
info.bean = o_player.bean;
|
||||
return info;
|
||||
},
|
||||
|
||||
//进入房间
|
||||
enter_room: function(o_player, o_room, seat, isowner){
|
||||
o_player.gameinfo.o_game = o_room.o_game;
|
||||
o_player.gameinfo.o_room = o_room;
|
||||
o_player.gameinfo.seat = seat;
|
||||
o_player.gameinfo.isowner = isowner;
|
||||
o_player.gameinfo.isbet = 0;
|
||||
o_player.gameinfo.agree = -1;
|
||||
o_player.gameinfo.grade = 0;
|
||||
|
||||
if (o_room.needprepare){
|
||||
o_player.gameinfo.isprepare = 0;
|
||||
} else {
|
||||
o_player.gameinfo.isprepare = 1;
|
||||
}
|
||||
|
||||
o_room.seatlist[seat] = o_player;
|
||||
if (isowner){
|
||||
o_room.owner = o_player;
|
||||
}
|
||||
|
||||
//更新tcp连接列表
|
||||
if (o_player.conmode == "tcp"){
|
||||
youle_room.tcps.method.load_tcp(o_player.fromid, o_player);
|
||||
}
|
||||
|
||||
//记录当前机器人数量
|
||||
if (o_player.isrobot){
|
||||
if (o_room.roommode){
|
||||
if (!o_room.o_game.robotcount){
|
||||
o_room.o_game.robotcount = 1;
|
||||
} else {
|
||||
o_room.o_game.robotcount = o_room.o_game.robotcount + o_room.beanmult;
|
||||
}
|
||||
// console.log('++机器人: ' + o_room.o_game.robotcount);
|
||||
}
|
||||
} else {
|
||||
if (o_room.sysroom){
|
||||
if (!o_room.o_game.sysroom_playercount){
|
||||
o_room.o_game.sysroom_playercount = [];
|
||||
}
|
||||
for (var i = 0; i < o_room.o_game.sysroom_playercount.length; i++) {
|
||||
if (JSON.stringify(o_room.o_game.sysroom_playercount[i].roomtype) == JSON.stringify(o_room.roomtype)){
|
||||
o_room.o_game.sysroom_playercount[i].playercount = o_room.o_game.sysroom_playercount[i].playercount + 1;
|
||||
return;
|
||||
}
|
||||
};
|
||||
var _v = {};
|
||||
_v.roomtype = o_room.roomtype;
|
||||
_v.playercount = 1;
|
||||
o_room.o_game.sysroom_playercount.push(_v);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
//退出房间
|
||||
exit_room: function(o_player){
|
||||
//更新tcp连接列表
|
||||
if (o_player.conmode == "tcp"){
|
||||
youle_room.tcps.method.delete_tcp(o_player.fromid);
|
||||
}
|
||||
|
||||
o_player.gameinfo.o_room.seatlist[o_player.gameinfo.seat] = null;
|
||||
|
||||
//记录当前机器人数量
|
||||
if (o_player.isrobot){
|
||||
if (o_player.gameinfo.o_room.roommode){
|
||||
o_player.gameinfo.o_game.robotcount = o_player.gameinfo.o_game.robotcount - o_player.gameinfo.o_room.beanmult;
|
||||
// console.log('--机器人: ' + o_player.gameinfo.o_room.o_game.robotcount);
|
||||
}
|
||||
} else {
|
||||
if (o_player.gameinfo.o_room.sysroom){
|
||||
for (var i = 0; i < o_player.gameinfo.o_game.sysroom_playercount.length; i++) {
|
||||
if (JSON.stringify(o_player.gameinfo.o_game.sysroom_playercount[i].roomtype) == JSON.stringify(o_player.gameinfo.o_room.roomtype)){
|
||||
o_player.gameinfo.o_game.sysroom_playercount[i].playercount = o_player.gameinfo.o_game.sysroom_playercount[i].playercount - 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
865
codes/games/sales_service/youle/server_room/class.rebate.js
Normal file
865
codes/games/sales_service/youle/server_room/class.rebate.js
Normal file
@@ -0,0 +1,865 @@
|
||||
var xRebate = xRebate || {};
|
||||
|
||||
xRebate.gameRebate = function(o_room){
|
||||
var maxgrade = 0;
|
||||
var maxseat = [];
|
||||
for (var i = 0; i < o_room.seatlist.length; i++){
|
||||
if (o_room.seatlist[i] && o_room.seatlist[i].gameinfo.isbet){
|
||||
if (o_room.seatlist[i].gameinfo.grade > maxgrade){
|
||||
maxgrade = parseInt(o_room.seatlist[i].gameinfo.grade);
|
||||
maxseat = [i];
|
||||
} else if (o_room.seatlist[i].gameinfo.grade == maxgrade){
|
||||
maxseat.push(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!o_room.roommode){
|
||||
//非星星场短号房要结算魅力值
|
||||
try{
|
||||
//百人场无大局魅力值抽成
|
||||
if (o_room.advanced_type && o_room.o_game.gameid != "Btke0urRy0cvPd5CIvD5yfhYhKhdSdex"){
|
||||
var o_agentsvr_agent = youle_agent.agents.method.find_agent(o_room.o_game.o_agent.agentid);
|
||||
var o_agentsvr_owner = o_agentsvr_agent.method.find_player(o_room.owner.playerid);
|
||||
if (o_agentsvr_owner.whitelist && o_agentsvr_owner.whitelist.length > 0){
|
||||
var rebateConfig = youle_room.app.youle_platform.config.method.get_paravalue("rebateConfig", o_room.o_game.o_agent.agentid);
|
||||
var rCharm = 0;
|
||||
var maxgrade1 = 0;
|
||||
var maxseat1 = [];
|
||||
var rcTemp = false;
|
||||
if(rebateConfig){
|
||||
if(rebateConfig.rebateCharm && o_room.rebateType){
|
||||
//rCharm = parseInt(o_room.rebateNumber/maxseat.length);
|
||||
rCharm = o_room.rebateNumber;
|
||||
var _seatlist = [];
|
||||
for (var i = 0; i < o_room.seatlist.length; i++) {
|
||||
//if (o_room.seatlist[i]. != null){
|
||||
if (o_room.seatlist[i]){
|
||||
var _player = {};
|
||||
_player.seat = i;
|
||||
_player.playerid = o_room.seatlist[i].playerid;
|
||||
_player.change = 0;
|
||||
for (var j = 0; j < o_agentsvr_owner.whitelist.length; j++) {
|
||||
if (o_agentsvr_owner.whitelist[j][0] == _player.playerid){
|
||||
if (o_agentsvr_owner.whitelist[j][2]){
|
||||
|
||||
//o_agentsvr_owner.whitelist[j][2] = parseInt(o_agentsvr_owner.whitelist[j][2]) + ary_grade[i];
|
||||
if(o_room.seatlist[i].gameinfo.grade == maxgrade){
|
||||
o_agentsvr_owner.whitelist[j][2] = parseInt(o_agentsvr_owner.whitelist[j][2]) - rCharm;
|
||||
_player.change = -rCharm;
|
||||
}
|
||||
} else {
|
||||
if(o_room.seatlist[i].gameinfo.grade == maxgrade){
|
||||
o_agentsvr_owner.whitelist[j][2] = -rCharm;
|
||||
_player.change = -rCharm;
|
||||
}
|
||||
}
|
||||
_player.charm = o_agentsvr_owner.whitelist[j][2];
|
||||
break;
|
||||
}
|
||||
}
|
||||
_seatlist.push(_player);
|
||||
}
|
||||
//}
|
||||
}
|
||||
|
||||
var msg = {};
|
||||
msg.app = "youle";
|
||||
msg.route = "agent";
|
||||
msg.rpc = "update_charm";
|
||||
msg.data = {};
|
||||
msg.data.seatlist = _seatlist;
|
||||
o_room.method.sendpack_toother(msg, -1);
|
||||
var sql = "update player set play_whitelist = ? where play_agentid = ? and play_playerid = ?";
|
||||
youle_room.mysql.execsql("execsql", sql, [youle_agent.compressWhiteList(o_agentsvr_owner.whitelist), o_room.o_game.o_agent.agentid, o_room.owner.playerid]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}catch(e){
|
||||
console.log("结算短号魅力值发生错误");
|
||||
console.log(e);
|
||||
}
|
||||
|
||||
}
|
||||
//只支持倍数百分比抽成
|
||||
//抽成参数
|
||||
var rebateConfig = youle_room.app.youle_platform.config.method.get_paravalue("rebateConfig", o_room.o_game.o_agent.agentid);
|
||||
if(!rebateConfig){
|
||||
return;
|
||||
}
|
||||
//小局抽成设置
|
||||
//var aset_rebate = youle_room.app.youle_platform.config.method.get_paravalue("aset_rebate", o_room.o_game.o_agent.agentid);
|
||||
//是否需要抽成
|
||||
var rebateTemp = false;
|
||||
if(!o_room.asetRebate){
|
||||
rebateTemp = true;
|
||||
}
|
||||
//vip房卡房是否扣魅力值
|
||||
var rebateCharm = rebateConfig.rebateCharm;
|
||||
//扣除模式 1.大赢家 2.赢家 3.所有人
|
||||
var rebateFrom = rebateConfig.from;
|
||||
//房间倍数
|
||||
var beanmult = 1;
|
||||
//金币房
|
||||
if(o_room.roommode){
|
||||
beanmult = youle_agent.import.createroom_beanmult(o_room.o_game, o_room.roomtype);
|
||||
}
|
||||
if(!beanmult){
|
||||
beanmult = 1;
|
||||
}
|
||||
var o_agentsvr_agent = youle_agent.agents.method.find_agent(o_room.o_game.o_agent.agentid);
|
||||
//配置扣除数量
|
||||
var sysRebateValue = parseInt(rebateConfig.value * beanmult /100);
|
||||
|
||||
var agentid = o_room.o_game.o_agent.agentid;
|
||||
var gameid = o_room.o_game.gameid;
|
||||
var roomcode = o_room.roomcode;
|
||||
var createtime = o_room.createtime;
|
||||
var makewartime = o_room.makewartime;
|
||||
var roommode = o_room.roommode;
|
||||
var ownerid = o_room.owner.playerid;
|
||||
var shortcode = 0;
|
||||
if (o_room.shortcode){
|
||||
shortcode = o_room.shortcode;
|
||||
}
|
||||
var deductmode = youle_room.import.deduct_roomcard_mode(o_room.o_game, o_room.roomtype);
|
||||
|
||||
var asetcount = o_room.asetcount;
|
||||
|
||||
var rebateTo = 0;
|
||||
var rebateMode = 2;
|
||||
var roomMode = 0;
|
||||
|
||||
//房间收取房间费的值
|
||||
var rebateValue = sysRebateValue;
|
||||
if(!o_room.roommode){
|
||||
if(!o_room.advanced_type){
|
||||
|
||||
}else{
|
||||
rebateFrom = 1;
|
||||
if(rebateCharm && o_room.rebateType){
|
||||
roomMode = 1;
|
||||
}
|
||||
if(o_room.advanced_teabean){
|
||||
if(sysRebateValue < o_room.advanced_teabean){
|
||||
rebateMode = 3;
|
||||
rebateValue = o_room.advanced_teabean;
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
if(!o_room.advanced_type){
|
||||
var tea = youle_room.import.owner_beanpush(o_room.o_game, o_room.roomtype);
|
||||
if(tea){
|
||||
if(sysRebateValue < tea){
|
||||
rebateMode = 3;
|
||||
rebateValue = tea;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
if(o_room.advanced_teabean){
|
||||
if(sysRebateValue < o_room.advanced_teabean){
|
||||
rebateMode = 3;
|
||||
rebateValue = o_room.advanced_teabean;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//每个人扣除的数量
|
||||
var rebateReal = rebateValue;
|
||||
//通过扣除模式得出每个人扣的数量
|
||||
switch(rebateFrom){
|
||||
//大赢家
|
||||
case 1:
|
||||
rebateReal = parseInt(rebateValue / maxseat.length);//多个大赢家均摊房间费
|
||||
|
||||
sysRebateValue = parseInt(sysRebateValue / maxseat.length);//多个大赢家均摊房间费
|
||||
break;
|
||||
//赢家
|
||||
case 2:
|
||||
|
||||
break;
|
||||
//所有人
|
||||
case 3:
|
||||
|
||||
break;
|
||||
default:
|
||||
|
||||
break;
|
||||
}
|
||||
var ownergarde = 0;
|
||||
//var rebateSum = 0;//总共扣除的房间费
|
||||
//console.log(o_room.seatlist);
|
||||
//if(rebateReal){
|
||||
var ownerid = null;
|
||||
var pushCount = 0;
|
||||
if(o_room.owner){
|
||||
ownerid = o_room.owner.playerid;
|
||||
}
|
||||
//console.log("sysRebateValue",sysRebateValue);
|
||||
//console.log("rebateReal",rebateReal);
|
||||
for (var i = 0; i < o_room.seatlist.length; i++) {
|
||||
if (o_room.seatlist[i]){
|
||||
var o_player = o_room.seatlist[i];
|
||||
if (o_player.gameinfo.isbet) {
|
||||
var o_agentsvr_player = o_agentsvr_agent.method.find_player(o_player.playerid);
|
||||
|
||||
var roomcard = 0;
|
||||
if (playerid == o_room.owner.playerid){
|
||||
roomcard = youle_room.import.createroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||||
} else {
|
||||
roomcard = youle_room.import.joinroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||||
}
|
||||
if (o_player.playerid == o_room.owner.playerid) {
|
||||
ownergarde = o_player.gameinfo.grade;
|
||||
}
|
||||
|
||||
var isRebate = false;
|
||||
|
||||
switch(rebateFrom){
|
||||
//大赢家
|
||||
case 1:
|
||||
if(o_player.gameinfo.grade == maxgrade){
|
||||
isRebate = true;
|
||||
}
|
||||
break;
|
||||
//赢家
|
||||
case 2:
|
||||
if(o_player.gameinfo.grade > 0){
|
||||
isRebate = true;
|
||||
}
|
||||
break;
|
||||
//所有人
|
||||
case 3:
|
||||
isRebate = true;
|
||||
break;
|
||||
default:
|
||||
|
||||
break;
|
||||
}
|
||||
//console.log("playerid:"+o_player.playerid+"grade:"+o_player.gameinfo.grade+"isRebate:"+isRebate);
|
||||
//房间id = 时间戳 + 4位随机码 + 房号
|
||||
var roomid = new Date().getTime() + min_randomChar(4) + o_room.roomcode;
|
||||
var datatime = min_now();
|
||||
//达成抽成条件
|
||||
if(isRebate && rebateTemp){
|
||||
//rebateSum += rebateReal;
|
||||
|
||||
if(!roomMode){
|
||||
var msg = {};
|
||||
msg.app = youle_room.app.appname;
|
||||
msg.route = youle_room.app.youle_agent.routename;
|
||||
msg.rpc = "update_bean";
|
||||
msg.data = {};
|
||||
msg.data.agentid = agentid;
|
||||
msg.data.playerid = o_player.playerid;
|
||||
|
||||
if(o_room.roommode){
|
||||
msg.data.change = o_player.gameinfo.grade;
|
||||
}else{
|
||||
msg.data.change = 0;
|
||||
}
|
||||
var nBean = rebateReal - msg.data.change;
|
||||
var sysBean = 0;
|
||||
//console.log("o_player.bean",o_player.bean,"nBean",nBean);
|
||||
if(o_player.bean >= nBean){
|
||||
if(ownerid == o_agentsvr_player.playerid){
|
||||
msg.data.pushbean = 0;
|
||||
}else{
|
||||
msg.data.pushbean = -1 *rebateReal ;
|
||||
// pushCount += rebateReal;
|
||||
sysBean = sysRebateValue;
|
||||
pushCount = pushCount + (rebateReal - sysRebateValue);
|
||||
}
|
||||
}else{
|
||||
msg.data.pushbean = 0;
|
||||
}
|
||||
|
||||
msg.data.gameid = gameid;
|
||||
msg.data.showrebate = 0;
|
||||
youle_room.app.youle_agent[msg.rpc](msg);
|
||||
|
||||
var roommode = 0; //玩家房间
|
||||
if (o_room.sysroom) {
|
||||
roommode = 1; //系统房间
|
||||
}
|
||||
var createtime = o_room.createtime;
|
||||
var beanmult = 0;
|
||||
if (o_room.beanmult){
|
||||
beanmult = o_room.beanmult;
|
||||
}
|
||||
var ownerid = o_room.owner.playerid;
|
||||
var shortcode = 0;
|
||||
if (o_room.shortcode){
|
||||
shortcode = o_room.shortcode;
|
||||
}
|
||||
var deductmode = youle_room.import.deduct_roomcard_mode(o_room.o_game, o_room.roomtype);
|
||||
var playerid = o_player.playerid;
|
||||
var grade = o_player.gameinfo.grade;
|
||||
var roomcard = 0;
|
||||
if (playerid == o_room.owner.playerid){
|
||||
roomcard = youle_room.import.createroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||||
} else {
|
||||
roomcard = youle_room.import.joinroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||||
}
|
||||
|
||||
var asetcount = o_room.asetcount;
|
||||
var sql = "insert into gold_account(goac_id,goac_agentid,goac_gameid,goac_roomcode,goac_roommode,goac_createtime,goac_beanmult,goac_ownerid,goac_shortcode,goac_deduct,goac_roomcard,goac_datatype,goac_asetcount,goac_asetnum,goac_playerid,goac_isrobot,goac_grade,goac_rebatefrom,goac_rebateto,goac_toplayerid,goac_rebatemode,goac_setvalue,goac_rebatevalue,goac_time) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
|
||||
youle_room.mysql_grade.execsql("execsql", sql, [roomid, agentid, gameid, roomcode, roommode, createtime, beanmult, ownerid, shortcode, deductmode, roomcard, 0, asetcount, 0, playerid, 0, grade, rebateFrom, rebateTo, '', rebateMode, sysBean, sysBean, datatime]);
|
||||
}
|
||||
// else{
|
||||
// //修改房卡数量
|
||||
// var msg2 = {};
|
||||
// msg2.data={};
|
||||
// msg2.data.agentid = agentid;
|
||||
// msg2.data.playerid = o_player.playerid;
|
||||
// msg2.data.change = -1*rebateReal;
|
||||
|
||||
// xRebate.update_roomcard(msg2);
|
||||
// }
|
||||
}else{
|
||||
var msg = {};
|
||||
msg.app = youle_room.app.appname;
|
||||
msg.route = youle_room.app.youle_agent.routename;
|
||||
msg.rpc = "update_bean";
|
||||
msg.data = {};
|
||||
msg.data.agentid = agentid;
|
||||
msg.data.playerid = o_player.playerid;
|
||||
if(o_room.roommode){
|
||||
msg.data.change = o_player.gameinfo.grade;
|
||||
}else{
|
||||
msg.data.change = 0;
|
||||
}
|
||||
msg.data.pushbean = 0;
|
||||
msg.data.gameid = gameid;
|
||||
msg.data.showrebate = 1;
|
||||
youle_room.app.youle_agent[msg.rpc](msg);
|
||||
|
||||
var roommode = 0; //玩家房间
|
||||
if (o_room.sysroom) {
|
||||
roommode = 1; //系统房间
|
||||
}
|
||||
var createtime = o_room.createtime;
|
||||
var beanmult = 0;
|
||||
if (o_room.beanmult){
|
||||
beanmult = o_room.beanmult;
|
||||
}
|
||||
var ownerid = o_room.owner.playerid;
|
||||
var shortcode = 0;
|
||||
if (o_room.shortcode){
|
||||
shortcode = o_room.shortcode;
|
||||
}
|
||||
var deductmode = youle_room.import.deduct_roomcard_mode(o_room.o_game, o_room.roomtype);
|
||||
var playerid = o_player.playerid;
|
||||
var grade = o_player.gameinfo.grade;
|
||||
var roomcard = 0;
|
||||
if (playerid == o_room.owner.playerid){
|
||||
roomcard = youle_room.import.createroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||||
} else {
|
||||
roomcard = youle_room.import.joinroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||||
}
|
||||
|
||||
var asetcount = o_room.asetcount;
|
||||
var sql = "insert into gold_account(goac_id,goac_agentid,goac_gameid,goac_roomcode,goac_roommode,goac_createtime,goac_beanmult,goac_ownerid,goac_shortcode,goac_deduct,goac_roomcard,goac_datatype,goac_asetcount,goac_asetnum,goac_playerid,goac_isrobot,goac_grade,goac_rebatefrom,goac_rebateto,goac_toplayerid,goac_rebatemode,goac_setvalue,goac_rebatevalue,goac_time) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
|
||||
youle_room.mysql_grade.execsql("execsql", sql, [roomid, agentid, gameid, roomcode, roommode, createtime, beanmult, ownerid, shortcode, deductmode, roomcard, 0, asetcount, 0, playerid, 0, grade, 0, rebateTo, '', rebateMode, 0, 0, datatime]);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
//console.log("pushCount",pushCount);
|
||||
if(pushCount){
|
||||
var msg = {};
|
||||
msg.app = youle_room.app.appname;
|
||||
msg.route = youle_room.app.youle_agent.routename;
|
||||
msg.rpc = "update_bean";
|
||||
msg.data = {};
|
||||
msg.data.agentid = agentid;
|
||||
msg.data.playerid = ownerid;
|
||||
msg.data.change = 0;
|
||||
msg.data.pushbean = pushCount;
|
||||
|
||||
msg.data.gameid = gameid;
|
||||
msg.data.showrebate = 0;
|
||||
youle_room.app.youle_agent[msg.rpc](msg);
|
||||
|
||||
var roommode = 0; //玩家房间
|
||||
if (o_room.sysroom) {
|
||||
roommode = 1; //系统房间
|
||||
}
|
||||
var createtime = o_room.createtime;
|
||||
var beanmult = 0;
|
||||
if (o_room.beanmult){
|
||||
beanmult = o_room.beanmult;
|
||||
}
|
||||
var ownerid = o_room.owner.playerid;
|
||||
var shortcode = 0;
|
||||
if (o_room.shortcode){
|
||||
shortcode = o_room.shortcode;
|
||||
}
|
||||
var deductmode = youle_room.import.deduct_roomcard_mode(o_room.o_game, o_room.roomtype);
|
||||
var playerid = ownerid;
|
||||
var grade = 0;
|
||||
var roomcard = 0;
|
||||
if (playerid == o_room.owner.playerid){
|
||||
roomcard = youle_room.import.createroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||||
} else {
|
||||
roomcard = youle_room.import.joinroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||||
}
|
||||
|
||||
var asetcount = o_room.asetcount;
|
||||
var sql = "insert into gold_account(goac_id,goac_agentid,goac_gameid,goac_roomcode,goac_roommode,goac_createtime,goac_beanmult,goac_ownerid,goac_shortcode,goac_deduct,goac_roomcard,goac_datatype,goac_asetcount,goac_asetnum,goac_playerid,goac_isrobot,goac_grade,goac_rebatefrom,goac_rebateto,goac_toplayerid,goac_rebatemode,goac_setvalue,goac_rebatevalue,goac_time) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
|
||||
youle_room.mysql_grade.execsql("execsql", sql, [roomid, agentid, gameid, roomcode, roommode, createtime, beanmult, ownerid, shortcode, deductmode, roomcard, 0, asetcount, 0, playerid, 0, grade, rebateFrom, 1, ownerid, rebateMode, pushCount, pushCount, datatime]);
|
||||
}
|
||||
//}
|
||||
|
||||
}
|
||||
|
||||
//修改房卡
|
||||
xRebate.update_roomcard = function(pack){
|
||||
var agentid = pack.data.agentid;
|
||||
var playerid = pack.data.playerid;
|
||||
var change = parseInt(pack.data.change);
|
||||
|
||||
//查找代理商
|
||||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||||
if (!o_agent) {
|
||||
pack.data = {};
|
||||
pack.data.result = 1;
|
||||
pack.data.error = "agentid不存在";
|
||||
return pack;
|
||||
};
|
||||
|
||||
var db_callback = function(dbdata){
|
||||
if (dbdata[0].result == 0){
|
||||
var o_player = o_agent.method.find_player(playerid);
|
||||
if (o_player){
|
||||
o_player.method.update_roomcard(0, parseInt(dbdata[0].roomcard), change,"房间费");
|
||||
}
|
||||
pack.data.result = 0;
|
||||
} else {
|
||||
pack.data = {};
|
||||
pack.data.result = dbdata[0].result;
|
||||
pack.data.error = dbdata[0].error;
|
||||
}
|
||||
youle_agent.app.SendPack(pack);
|
||||
|
||||
}
|
||||
var sql = "call cp_game_update_roomcard(?,?,?);";
|
||||
youle_agent.mysql.execsql("opensql", sql, [agentid, playerid, change], db_callback);
|
||||
}
|
||||
//百人vip房抽成金币
|
||||
xRebate.gameRebate2 = function(o_room,ary_grade){
|
||||
var ary_grade1=[];
|
||||
for(var i=0;i<ary_grade.length;i++){
|
||||
ary_grade1.push(ary_grade[i]);
|
||||
}
|
||||
//小局抽成设置
|
||||
// var rebateConfig = youle_room.app.youle_platform.config.method.get_paravalue("aset_rebate", o_room.o_game.o_agent.agentid);
|
||||
var rebateConfig = youle_room.app.youle_platform.config.method.get_paravalue("rebateConfig", o_room.o_game.o_agent.agentid);
|
||||
if(!rebateConfig){
|
||||
return ary_grade1;
|
||||
}
|
||||
// if(!rebateConfig.infinite){
|
||||
// return ary_grade1;
|
||||
// }
|
||||
|
||||
if(o_room.o_game.gameid != "Btke0urRy0cvPd5CIvD5yfhYhKhdSdex"){
|
||||
return ary_grade1;
|
||||
}
|
||||
// if(o_room.rebateType){
|
||||
// return;
|
||||
// }
|
||||
var rbtTemp = false;//游戏是否产生了胜负
|
||||
var maxgrade = 0;
|
||||
var maxseat = [];
|
||||
for (var i = 0; i < ary_grade.length; i++){
|
||||
if (ary_grade[i]){
|
||||
ary_grade[i] = Number(ary_grade[i]);
|
||||
if (ary_grade[i] > maxgrade){
|
||||
maxgrade = ary_grade[i];
|
||||
maxseat = [i];
|
||||
} else if (ary_grade[i] == maxgrade){
|
||||
maxseat.push(i);
|
||||
}
|
||||
if(ary_grade[i] < 0){
|
||||
rbtTemp = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!rbtTemp){
|
||||
return ary_grade;
|
||||
}
|
||||
//只支持倍数百分比抽成
|
||||
//抽成参数
|
||||
|
||||
//小局抽成设置
|
||||
//var aset_rebate = youle_room.app.youle_platform.config.method.get_paravalue("aset_rebate", o_room.o_game.o_agent.agentid);
|
||||
//扣除模式 1.大赢家 2.赢家 3.所有人
|
||||
// var rebateFrom = rebateConfig.from;
|
||||
var rebateFrom = 1;
|
||||
var o_agentsvr_agent = youle_agent.agents.method.find_agent(o_room.o_game.o_agent.agentid);
|
||||
//配置扣除数量
|
||||
var sysRebateValue = o_room.rebateNumber;
|
||||
var sysRebateValue1 = o_room.sysRebateValue;
|
||||
|
||||
var agentid = o_room.o_game.o_agent.agentid;
|
||||
var gameid = o_room.o_game.gameid;
|
||||
var roomcode = o_room.roomcode;
|
||||
var createtime = o_room.createtime;
|
||||
var makewartime = o_room.makewartime;
|
||||
var roommode = o_room.roommode;
|
||||
var ownerid = o_room.owner.playerid;
|
||||
var shortcode = 0;
|
||||
if (o_room.shortcode){
|
||||
shortcode = o_room.shortcode;
|
||||
}
|
||||
var deductmode = youle_room.import.deduct_roomcard_mode(o_room.o_game, o_room.roomtype);
|
||||
|
||||
var asetcount = o_room.asetcount;
|
||||
|
||||
var rebateTo = 0;
|
||||
var rebateMode = 2;
|
||||
var roomMode = 0;
|
||||
|
||||
//房间收取房间费的值
|
||||
var rebateValue = sysRebateValue;
|
||||
|
||||
|
||||
//每个人扣除的数量
|
||||
var rebateReal = rebateValue;
|
||||
//通过扣除模式得出每个人扣的数量
|
||||
switch(rebateFrom){
|
||||
//大赢家
|
||||
case 1:
|
||||
if(maxseat.length>0){
|
||||
rebateReal = parseInt(rebateValue / maxseat.length);//多个大赢家均摊房间费
|
||||
|
||||
sysRebateValue1 = parseInt(sysRebateValue1 / maxseat.length);//多个大赢家均摊房间费
|
||||
}
|
||||
break;
|
||||
//赢家
|
||||
case 2:
|
||||
|
||||
break;
|
||||
//所有人
|
||||
case 3:
|
||||
|
||||
break;
|
||||
default:
|
||||
|
||||
break;
|
||||
}
|
||||
var ownergarde = 0;
|
||||
var brNumber = youle_room.app.youle_platform.config.method.get_paravalue("brNumber",o_room.o_game.o_agent.agentid);
|
||||
var o_agentsvr_agent = youle_agent.agents.method.find_agent(o_room.o_game.o_agent.agentid);
|
||||
var o_agentsvr_owner = o_agentsvr_agent.method.find_player(o_room.owner.playerid);
|
||||
if(brNumber){
|
||||
brNumber = Number(brNumber);
|
||||
//房主扣除房间费 金币
|
||||
var agentid = o_room.o_game.o_agent.agentid;
|
||||
var o_player = o_agentsvr_owner;
|
||||
var gameid = o_room.o_game.gameid;
|
||||
var datatime = min_now();
|
||||
var msg = {};
|
||||
msg.app = youle_room.app.appname;
|
||||
msg.route = youle_room.app.youle_agent.routename;
|
||||
msg.rpc = "update_bean";
|
||||
msg.data = {};
|
||||
msg.data.agentid = agentid;
|
||||
msg.data.playerid = o_player.playerid;
|
||||
msg.data.change = 0;
|
||||
|
||||
msg.data.pushbean = -1 * brNumber;
|
||||
msg.data.gameid = gameid;
|
||||
msg.data.showrebate = 0;
|
||||
youle_room.app.youle_agent[msg.rpc](msg);
|
||||
var pBean = o_player.bean;
|
||||
//console.log("pBean",pBean);
|
||||
|
||||
|
||||
var roommode = 0; //玩家房间
|
||||
// if (o_room.sysroom) {
|
||||
// roommode = 1; //系统房间
|
||||
// }
|
||||
var createtime = o_room.createtime;
|
||||
var beanmult = 0;
|
||||
if (o_room.beanmult){
|
||||
beanmult = o_room.beanmult;
|
||||
}
|
||||
var ownerid = o_room.owner.playerid;
|
||||
// var shortcode = 0;
|
||||
// if (o_room.shortcode){
|
||||
// shortcode = o_room.shortcode;
|
||||
// }
|
||||
var deductmode = youle_room.import.deduct_roomcard_mode(o_room.o_game, o_room.roomtype);
|
||||
var playerid = o_player.playerid;
|
||||
var grade = o_player.gameinfo.grade;
|
||||
var roomcard = 0;
|
||||
if (playerid == o_room.owner.playerid){
|
||||
roomcard = youle_room.import.createroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||||
} else {
|
||||
roomcard = youle_room.import.joinroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||||
}
|
||||
var roomid = new Date().getTime() + min_randomChar(4) + o_room.roomcode;
|
||||
var roomcode = o_room.roomcode;
|
||||
var asetcount = o_room.asetcount;
|
||||
var sql = "insert into gold_account(goac_id,goac_agentid,goac_gameid,goac_roomcode,goac_roommode,goac_createtime,goac_beanmult,goac_ownerid,goac_shortcode,goac_deduct,goac_roomcard,goac_datatype,goac_asetcount,goac_asetnum,goac_playerid,goac_isrobot,goac_grade,goac_rebatefrom,goac_rebateto,goac_toplayerid,goac_rebatemode,goac_setvalue,goac_rebatevalue,goac_time) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
|
||||
youle_room.mysql_grade.execsql("execsql", sql, [roomid, agentid, gameid, roomcode, roommode, createtime, beanmult, ownerid, shortcode, deductmode, roomcard, 0, asetcount, 0, playerid, 0, 0, 4, 2, '', 3, brNumber, brNumber, datatime]);
|
||||
}
|
||||
var rbType = o_room.rebateType;
|
||||
try{
|
||||
if (o_room.shortcode){
|
||||
|
||||
if (o_agentsvr_owner.whitelist && o_agentsvr_owner.whitelist.length > 0){
|
||||
var rebateConfig = youle_room.app.youle_platform.config.method.get_paravalue("rebateConfig", o_room.o_game.o_agent.agentid);
|
||||
var rCharm = 0;
|
||||
var maxgrade1 = 0;
|
||||
var maxseat1 = [];
|
||||
var rcTemp = false;
|
||||
|
||||
|
||||
if(maxseat.length>0){
|
||||
rCharm = parseInt(o_room.rebateNumber/maxseat.length);
|
||||
}else{
|
||||
rCharm = parseInt(o_room.rebateNumber);
|
||||
}
|
||||
|
||||
// if(rebateConfig){
|
||||
// if(rebateConfig.rebateCharm && o_room.rebateType){
|
||||
// rcTemp = true;
|
||||
// }
|
||||
//抽金币
|
||||
// if(!o_room.rebateType){
|
||||
// reTemp = true;
|
||||
// }
|
||||
// }
|
||||
|
||||
var _seatlist = [];
|
||||
// console.log("ary_grade",ary_grade);
|
||||
// console.log("333",JSON.stringify(o_agentsvr_owner.whitelist));
|
||||
// console.log("rCharm",rCharm);
|
||||
for (var i = 0; i < ary_grade.length; i++) {
|
||||
if (ary_grade[i] != null){
|
||||
if (o_room.seatlist[i]){
|
||||
var _player = {};
|
||||
_player.seat = i;
|
||||
_player.playerid = o_room.seatlist[i].playerid;
|
||||
_player.change = 0;
|
||||
for (var j = 0; j < o_agentsvr_owner.whitelist.length; j++) {
|
||||
if (o_agentsvr_owner.whitelist[j][0] == _player.playerid){
|
||||
if (o_agentsvr_owner.whitelist[j][2]){
|
||||
|
||||
if(rbType && ary_grade[i] == maxgrade){
|
||||
o_agentsvr_owner.whitelist[j][2] = parseInt(o_agentsvr_owner.whitelist[j][2]) - rCharm;
|
||||
ary_grade1[i] = ary_grade1[i] - rCharm;
|
||||
}
|
||||
} else {
|
||||
|
||||
if(rbType && ary_grade[i] == maxgrade){
|
||||
o_agentsvr_owner.whitelist[j][2] = -1 * rCharm;
|
||||
ary_grade1[i] = ary_grade1[i] - rCharm;
|
||||
}
|
||||
}
|
||||
_player.charm = o_agentsvr_owner.whitelist[j][2];
|
||||
break;
|
||||
}
|
||||
}
|
||||
_seatlist.push(_player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var msg = {};
|
||||
msg.app = "youle";
|
||||
msg.route = "agent";
|
||||
msg.rpc = "update_charm";
|
||||
msg.data = {};
|
||||
msg.data.seatlist = _seatlist;
|
||||
o_room.method.sendpack_toother(msg, -1);
|
||||
// console.log("222",JSON.stringify(o_agentsvr_owner.whitelist));
|
||||
var sql = "update player set play_whitelist = ? where play_agentid = ? and play_playerid = ?";
|
||||
youle_room.mysql.execsql("execsql", sql, [youle_agent.compressWhiteList(o_agentsvr_owner.whitelist), o_room.o_game.o_agent.agentid, o_room.owner.playerid]);
|
||||
}
|
||||
}
|
||||
}catch(e){
|
||||
console.log("结算短号魅力值发生错误");
|
||||
console.log(e);
|
||||
}
|
||||
//var rebateSum = 0;//总共扣除的房间费
|
||||
//console.log("seatlist",o_room.seatlist);
|
||||
var ownerid = null;
|
||||
if(o_room.owner){
|
||||
ownerid = o_room.owner.playerid;
|
||||
}
|
||||
console.log("rebateReal",rebateReal);
|
||||
console.log("sysRebateValue1",sysRebateValue1);
|
||||
var pushCount = 0;
|
||||
if(!o_room.rebateType){
|
||||
for (var i = 0; i < ary_grade.length; i++) {
|
||||
if (o_room.seatlist[i] && ary_grade[i] != null){
|
||||
var o_player = o_room.seatlist[i];
|
||||
console.log("ccc",o_player.playerid,o_player.gameinfo.isbet);
|
||||
if (o_player.gameinfo.isbet) {
|
||||
var o_agentsvr_player = o_agentsvr_agent.method.find_player(o_player.playerid);
|
||||
var roomcard = 0;
|
||||
if (o_player.playerid == o_room.owner.playerid){
|
||||
roomcard = youle_room.import.createroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||||
} else {
|
||||
roomcard = youle_room.import.joinroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||||
}
|
||||
if (o_player.playerid == o_room.owner.playerid) {
|
||||
ownergarde = ary_grade[i];
|
||||
}
|
||||
|
||||
var isRebate = false;
|
||||
|
||||
switch(rebateFrom){
|
||||
//大赢家
|
||||
case 1:
|
||||
if(ary_grade[i] == maxgrade){
|
||||
isRebate = true;
|
||||
}
|
||||
break;
|
||||
//赢家
|
||||
case 2:
|
||||
if(ary_grade[i] > 0){
|
||||
isRebate = true;
|
||||
}
|
||||
break;
|
||||
//所有人
|
||||
case 3:
|
||||
isRebate = true;
|
||||
break;
|
||||
default:
|
||||
|
||||
break;
|
||||
}
|
||||
//console.log("playerid:"+o_player.playerid+"grade:"+o_player.gameinfo.grade+"isRebate:"+isRebate);
|
||||
//房间id = 时间戳 + 4位随机码 + 房号
|
||||
var roomid = new Date().getTime() + min_randomChar(4) + o_room.roomcode;
|
||||
var datatime = min_now();
|
||||
//达成抽成条件
|
||||
if(isRebate){
|
||||
//rebateSum += rebateReal;
|
||||
|
||||
// if(!roomMode){
|
||||
var msg = {};
|
||||
msg.app = youle_room.app.appname;
|
||||
msg.route = youle_room.app.youle_agent.routename;
|
||||
msg.rpc = "update_bean";
|
||||
msg.data = {};
|
||||
msg.data.agentid = agentid;
|
||||
msg.data.playerid = o_player.playerid;
|
||||
if(o_room.roommode){
|
||||
msg.data.change = o_player.gameinfo.grade;
|
||||
}else{
|
||||
msg.data.change = 0;
|
||||
}
|
||||
var sysBean = 0;
|
||||
if(ownerid == o_player.playerid){
|
||||
msg.data.pushbean = 0;
|
||||
}else{
|
||||
//var nBean = rebateReal - msg.data.change;
|
||||
//console.log("o_player.bean",o_player.bean,"nBean",nBean);
|
||||
//if(o_player.bean >= nBean){
|
||||
msg.data.pushbean = -1 * rebateReal;
|
||||
// pushCount += rebateReal;
|
||||
sysBean = sysRebateValue1;
|
||||
pushCount = pushCount + (rebateReal - sysRebateValue1);
|
||||
// }else{
|
||||
// msg.data.pushbean = 0;
|
||||
// }
|
||||
}
|
||||
msg.data.gameid = gameid;
|
||||
msg.data.showrebate = 0;
|
||||
youle_room.app.youle_agent[msg.rpc](msg);
|
||||
|
||||
var roommode = 0; //玩家房间
|
||||
if (o_room.sysroom) {
|
||||
roommode = 1; //系统房间
|
||||
}
|
||||
var createtime = o_room.createtime;
|
||||
var beanmult = 0;
|
||||
if (o_room.beanmult){
|
||||
beanmult = o_room.beanmult;
|
||||
}
|
||||
var ownerid = o_room.owner.playerid;
|
||||
var shortcode = 0;
|
||||
if (o_room.shortcode){
|
||||
shortcode = o_room.shortcode;
|
||||
}
|
||||
var deductmode = youle_room.import.deduct_roomcard_mode(o_room.o_game, o_room.roomtype);
|
||||
var playerid = o_player.playerid;
|
||||
var grade = o_player.gameinfo.grade;
|
||||
var roomcard = 0;
|
||||
if (playerid == o_room.owner.playerid){
|
||||
roomcard = youle_room.import.createroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||||
} else {
|
||||
roomcard = youle_room.import.joinroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||||
}
|
||||
|
||||
var asetcount = o_room.asetcount;
|
||||
var sql = "insert into gold_account(goac_id,goac_agentid,goac_gameid,goac_roomcode,goac_roommode,goac_createtime,goac_beanmult,goac_ownerid,goac_shortcode,goac_deduct,goac_roomcard,goac_datatype,goac_asetcount,goac_asetnum,goac_playerid,goac_isrobot,goac_grade,goac_rebatefrom,goac_rebateto,goac_toplayerid,goac_rebatemode,goac_setvalue,goac_rebatevalue,goac_time) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
|
||||
youle_room.mysql_grade.execsql("execsql", sql, [roomid, agentid, gameid, roomcode, roommode, createtime, beanmult, ownerid, shortcode, deductmode, roomcard, 0, asetcount, 0, playerid, 0, grade, rebateFrom, rebateTo, '', rebateMode, sysBean, sysBean , datatime]);
|
||||
// }
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
//console.log("pushCount",pushCount);
|
||||
if(pushCount){
|
||||
var ownerid = o_room.owner.playerid;
|
||||
var msg = {};
|
||||
msg.app = youle_room.app.appname;
|
||||
msg.route = youle_room.app.youle_agent.routename;
|
||||
msg.rpc = "update_bean";
|
||||
msg.data = {};
|
||||
msg.data.agentid = agentid;
|
||||
msg.data.playerid = ownerid;
|
||||
msg.data.change = 0;
|
||||
|
||||
msg.data.pushbean = pushCount;
|
||||
msg.data.gameid = gameid;
|
||||
msg.data.showrebate = 0;
|
||||
youle_room.app.youle_agent[msg.rpc](msg);
|
||||
|
||||
var roommode = 0; //玩家房间
|
||||
if (o_room.sysroom) {
|
||||
roommode = 1; //系统房间
|
||||
}
|
||||
var createtime = o_room.createtime;
|
||||
var beanmult = 0;
|
||||
if (o_room.beanmult){
|
||||
beanmult = o_room.beanmult;
|
||||
}
|
||||
|
||||
var shortcode = 0;
|
||||
if (o_room.shortcode){
|
||||
shortcode = o_room.shortcode;
|
||||
}
|
||||
var deductmode = youle_room.import.deduct_roomcard_mode(o_room.o_game, o_room.roomtype);
|
||||
var playerid = ownerid;
|
||||
var grade = 0;
|
||||
var roomcard = 0;
|
||||
if (playerid == o_room.owner.playerid){
|
||||
roomcard = youle_room.import.createroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||||
} else {
|
||||
roomcard = youle_room.import.joinroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||||
}
|
||||
|
||||
var asetcount = o_room.asetcount;
|
||||
var sql = "insert into gold_account(goac_id,goac_agentid,goac_gameid,goac_roomcode,goac_roommode,goac_createtime,goac_beanmult,goac_ownerid,goac_shortcode,goac_deduct,goac_roomcard,goac_datatype,goac_asetcount,goac_asetnum,goac_playerid,goac_isrobot,goac_grade,goac_rebatefrom,goac_rebateto,goac_toplayerid,goac_rebatemode,goac_setvalue,goac_rebatevalue,goac_time) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
|
||||
youle_room.mysql_grade.execsql("execsql", sql, [roomid, agentid, gameid, roomcode, roommode, createtime, beanmult, ownerid, shortcode, deductmode, roomcard, 0, asetcount, 0, playerid, 0, grade, rebateFrom, 1, ownerid, rebateMode, pushCount, pushCount, datatime]);
|
||||
}
|
||||
}
|
||||
if(pBean < 2*brNumber){
|
||||
breakTemp = true;
|
||||
youle_room.import.gameBreak(o_room);
|
||||
}
|
||||
return ary_grade1;
|
||||
}
|
||||
181
codes/games/sales_service/youle/server_room/class.return.js
Normal file
181
codes/games/sales_service/youle/server_room/class.return.js
Normal file
@@ -0,0 +1,181 @@
|
||||
///////////////////////////////////////////////////
|
||||
///////// cls_youle_room_return: 返回结果 //////////
|
||||
///////////////////////////////////////////////////
|
||||
var cls_youle_room_return = cls_youle_room_return || {
|
||||
|
||||
new: function() {
|
||||
|
||||
var re = {};
|
||||
|
||||
//创建房间成功
|
||||
re.create_room = function(pack, o_player){
|
||||
pack.route = youle_room.routename;
|
||||
pack.rpc = "create_room";
|
||||
pack.data = {};
|
||||
pack.data.state = 0;
|
||||
if (o_player.gameinfo.o_room){
|
||||
pack.data.roomcode = o_player.gameinfo.o_room.roomcode;
|
||||
if (o_player.gameinfo.o_room.makewar){
|
||||
pack.data.makewar = o_player.gameinfo.o_room.makewar;
|
||||
} else {
|
||||
pack.data.makewar = o_player.gameinfo.o_game.makewar;
|
||||
}
|
||||
pack.data.roomtype = o_player.gameinfo.o_room.roomtype;
|
||||
pack.data.asetcount = o_player.gameinfo.o_room.asetcount;
|
||||
pack.data.seat = o_player.gameinfo.seat;
|
||||
pack.data.infinite = o_player.gameinfo.o_room.infinite;
|
||||
pack.data.needprepare = o_player.gameinfo.o_room.needprepare;
|
||||
}
|
||||
return pack;
|
||||
};
|
||||
|
||||
//加入房间成功
|
||||
re.self_join_room = function(pack, o_player, playerbean, playercharm){
|
||||
var isbattle; //是否开战了
|
||||
var isfull; //是否满桌了
|
||||
var deskinfo; //房间已经开战的牌桌信息
|
||||
var deskwar; //房间满桌自动开战包
|
||||
var o_room = o_player.gameinfo.o_room;
|
||||
if (o_room.battlestate == 1) {
|
||||
isbattle = true;
|
||||
deskinfo = youle_room.import.get_deskinfo(o_room, o_player.gameinfo.seat);
|
||||
} else {
|
||||
isfull = o_room.method.get_isfull();
|
||||
if (isfull) {
|
||||
//满桌了自动开战
|
||||
o_room.battlestate = 1;
|
||||
o_room.makewartime = min_now();
|
||||
//如果有返回值则后面的代码会发统一的开战包,如果没有返回值则由游戏负责发开战包
|
||||
deskwar = youle_room.import.makewar_deskwar(o_room);
|
||||
} else {
|
||||
//子游戏设置的开战人数
|
||||
var makewarplayercount = youle_room.import.makewar_playercount(o_room.o_game, o_room.roomtype);
|
||||
if (makewarplayercount){
|
||||
var playercount = 0;
|
||||
for (var i = 0; i < o_room.seatlist.length; i++) {
|
||||
if (o_room.seatlist[i] && o_room.seatlist[i].gameinfo.isprepare){
|
||||
playercount = playercount + 1;
|
||||
}
|
||||
}
|
||||
if (playercount == makewarplayercount){
|
||||
isfull = true;
|
||||
o_room.battlestate = 1;
|
||||
o_room.makewartime = min_now();
|
||||
//如果有返回值则后面的代码会发统一的开战包,如果没有返回值则由游戏负责发开战包
|
||||
deskwar = youle_room.import.makewar_deskwar(o_room);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pack.route = youle_room.routename;
|
||||
pack.rpc = "self_join_room";
|
||||
pack.data = {};
|
||||
pack.data.state = 0;
|
||||
pack.data.roomcode = o_room.roomcode;
|
||||
pack.data.roomtype = o_room.roomtype;
|
||||
pack.data.asetcount = o_room.asetcount;
|
||||
pack.data.seat = o_player.gameinfo.seat;
|
||||
pack.data.infinite = o_room.infinite;
|
||||
pack.data.needprepare = o_room.needprepare;
|
||||
if (o_room.makewar){
|
||||
pack.data.makewar = o_room.makewar;
|
||||
} else {
|
||||
pack.data.makewar = o_player.gameinfo.o_game.makewar;
|
||||
}
|
||||
pack.data.players = o_room.method.get_playerlist();//获取房间内的玩家列表
|
||||
//如果已开战则返回开战时的牌桌信息
|
||||
if (isbattle) {
|
||||
pack.data.deskinfo = deskinfo;
|
||||
} else {
|
||||
if (isfull) {
|
||||
if (deskwar) {
|
||||
pack.data.deskwar = deskwar;
|
||||
}
|
||||
}
|
||||
}
|
||||
//通知房间内的其他人有人加入了房间
|
||||
var msg = {};
|
||||
msg.app = youle_room.app.appname;
|
||||
msg.route = youle_room.routename;
|
||||
msg.rpc = "other_join_room";
|
||||
msg.data = o_player.method.get_info();
|
||||
msg.data.bean = playerbean;
|
||||
if (o_room.shortcode){
|
||||
if (playercharm || playercharm == 0){
|
||||
msg.data.charm = playercharm;
|
||||
}
|
||||
}
|
||||
msg.data.seat = o_player.gameinfo.seat;
|
||||
msg.data.isprepare = o_player.gameinfo.isprepare;
|
||||
if (o_player.paycode){
|
||||
msg.data.paycode = o_player.paycode;
|
||||
}
|
||||
for (var i = 0; i < o_room.seatlist.length; i++) {
|
||||
if (o_room.seatlist[i] && (i != o_player.gameinfo.seat)) {
|
||||
msg.conmode = o_room.seatlist[i].conmode;
|
||||
msg.fromid = o_room.seatlist[i].fromid;
|
||||
if (!isbattle && isfull) {
|
||||
if (deskwar) {
|
||||
msg.data.deskwar = deskwar;
|
||||
}
|
||||
}
|
||||
youle_room.app.SendPack(msg);
|
||||
}
|
||||
}
|
||||
return pack;
|
||||
};
|
||||
|
||||
//断线重连
|
||||
re.player_login = function(pack, o_player){
|
||||
pack.route = youle_room.routename;
|
||||
pack.rpc = "player_login";
|
||||
pack.data = {};
|
||||
pack.data.state = 0;
|
||||
pack.data.gameid = o_player.gameinfo.o_game.gameid;
|
||||
pack.data.roomcode = o_player.gameinfo.o_room.roomcode;
|
||||
pack.data.roomtype = o_player.gameinfo.o_room.roomtype;
|
||||
pack.data.asetcount = o_player.gameinfo.o_room.asetcount;
|
||||
pack.data.roommode = o_player.gameinfo.o_room.roommode;
|
||||
pack.data.beanfloor = o_player.gameinfo.o_room.beanfloor;
|
||||
pack.data.makewar = o_player.gameinfo.o_game.makewar;
|
||||
pack.data.isbattle = o_player.gameinfo.o_room.battlestate;
|
||||
pack.data.needprepare = o_player.gameinfo.o_room.needprepare;
|
||||
pack.data.seat = o_player.gameinfo.seat;
|
||||
pack.data.isowner = o_player.gameinfo.isowner;
|
||||
pack.data.isbet = o_player.gameinfo.isbet;
|
||||
pack.data.infinite = o_player.gameinfo.o_room.infinite;
|
||||
//获取房间内的玩家列表
|
||||
pack.data.players = o_player.gameinfo.o_room.method.get_playerlist();
|
||||
//获取房间的申请解散状态
|
||||
pack.data.agreefree = o_player.gameinfo.o_room.method.get_agreefree();
|
||||
//获取牌局信息
|
||||
if (o_player.gameinfo.o_room.battlestate == 1){
|
||||
pack.data.deskinfo = youle_room.import.get_deskinfo(o_player.gameinfo.o_room, o_player.gameinfo.seat);
|
||||
}
|
||||
if (o_player.gameinfo.o_room.match_data){
|
||||
pack.data.match_data = o_player.gameinfo.o_room.match_data;
|
||||
pack.data.match_roomcard = o_player.gameinfo.o_room.needroomcard;
|
||||
}
|
||||
//通知前端房间内的其他人有人上线了
|
||||
var msg = {};
|
||||
msg.app = youle_room.app.appname;
|
||||
msg.route = youle_room.routename;
|
||||
msg.rpc = "other_online";
|
||||
msg.data = {};
|
||||
msg.data.seat = o_player.gameinfo.seat;
|
||||
msg.data.playerid = o_player.playerid;
|
||||
msg.data.nickname = o_player.nickname;
|
||||
msg.data.avatar = o_player.avatar;
|
||||
msg.data.sex = o_player.sex;
|
||||
msg.data.ip = o_player.ip;
|
||||
o_player.gameinfo.o_room.method.sendpack_toother(msg, o_player.gameinfo.seat);
|
||||
return pack;
|
||||
};
|
||||
|
||||
return re;
|
||||
}
|
||||
}
|
||||
|
||||
//返回结果
|
||||
youle_room.return = cls_youle_room_return.new();
|
||||
433
codes/games/sales_service/youle/server_room/class.room.js
Normal file
433
codes/games/sales_service/youle/server_room/class.room.js
Normal file
@@ -0,0 +1,433 @@
|
||||
///////////////////////////////////////////////////
|
||||
////////// cls_youle_room_room: 房间 //////////
|
||||
///////////////////////////////////////////////////
|
||||
var cls_youle_room_room = cls_youle_room_room || {
|
||||
//构造函数
|
||||
new: function(o_game, roomcode, roomtype, needroomcard, asetcount){
|
||||
|
||||
var room = {};
|
||||
//基本信息
|
||||
room.o_game = o_game; //游戏
|
||||
room.roomcode = roomcode; //房号
|
||||
room.roomtype = roomtype; //房间类型
|
||||
room.needroomcard = needroomcard; //开房需要的房卡数量
|
||||
room.asetcount = asetcount; //总局数
|
||||
room.createtime = min_now(); //开房时间
|
||||
room.seatlist = []; //座位列表
|
||||
var makewarplayercount = youle_room.import.makewar_playercount(o_game, roomtype);
|
||||
if (makewarplayercount){
|
||||
room.seatlist.length = makewarplayercount;
|
||||
} else {
|
||||
room.seatlist.length = o_game.seatcount;
|
||||
}
|
||||
room.battlestate = 0; //游戏状态 0:未开战 1:已开战
|
||||
room.makewartime = null; //开战时间
|
||||
room.owner = null; //房主
|
||||
room.applyfreetime = null; //申请解散的时间
|
||||
room.freetimer = null; //默认同意解散房间的定时器
|
||||
room.wasdeduct = false; //是否扣除了房主的房卡
|
||||
|
||||
//24小时后如果没有玩家在房间内则解散房间的定时器
|
||||
var do_freeroom24 = function(){
|
||||
for (var i = 0; i < room.seatlist.length; i++) {
|
||||
if (room.seatlist[i]){
|
||||
return;
|
||||
}
|
||||
}
|
||||
min_closetime(room.freetimer24);
|
||||
room.freetimer24 = null;
|
||||
|
||||
youle_room.export.save_grade(room, null, null, 1);
|
||||
}
|
||||
room.freetimer24 = min_ontime(do_freeroom24, 24 * 60 * 60 * 1000);
|
||||
|
||||
//方法
|
||||
room.method = {};
|
||||
|
||||
//查找玩家
|
||||
room.method.find_player = function(playerid){
|
||||
return cls_youle_room_room.find_player(room, playerid);
|
||||
}
|
||||
|
||||
//获取玩家人数
|
||||
room.method.get_playercount = function(){
|
||||
return cls_youle_room_room.get_playercount(room);
|
||||
}
|
||||
|
||||
//获取已准备的玩家人数
|
||||
room.method.get_playercount_prepare = function(){
|
||||
return cls_youle_room_room.get_playercount_prepare(room);
|
||||
}
|
||||
|
||||
//获取房间内所有玩家的基本信息
|
||||
room.method.get_playerlist = function(){
|
||||
return cls_youle_room_room.get_playerlist(room);
|
||||
}
|
||||
|
||||
//房间是否满桌
|
||||
room.method.get_isfull = function(){
|
||||
return cls_youle_room_room.get_isfull(room);
|
||||
}
|
||||
|
||||
//获取房间内所有玩家的申请解散房间状态
|
||||
room.method.get_agreefree = function(){
|
||||
return cls_youle_room_room.get_agreefree(room);
|
||||
}
|
||||
|
||||
//给房间内某个位置的玩家发包
|
||||
room.method.sendpack_toseat = function(msg, seat){
|
||||
cls_youle_room_room.sendpack_toseat(room, msg, seat);
|
||||
}
|
||||
|
||||
//给房间内的其他玩家发包
|
||||
room.method.sendpack_toother = function(msg, selfseat){
|
||||
cls_youle_room_room.sendpack_toother(room, msg, selfseat);
|
||||
}
|
||||
|
||||
//默认同意解散倒计时
|
||||
room.method.get_freeroom_countdown = function(){
|
||||
return cls_youle_room_room.get_freeroom_countdown(room);
|
||||
}
|
||||
|
||||
//打开默认同意解散的定时器
|
||||
room.method.open_free_timer = function(){
|
||||
cls_youle_room_room.open_free_timer(room);
|
||||
}
|
||||
|
||||
//关闭默认同意解散的定时器
|
||||
room.method.close_free_timer = function(){
|
||||
cls_youle_room_room.close_free_timer(room);
|
||||
}
|
||||
|
||||
//获取房间信息
|
||||
room.method.get_roominfo = function(){
|
||||
return cls_youle_room_room.get_roominfo(room);
|
||||
}
|
||||
|
||||
return room;
|
||||
},
|
||||
|
||||
//查找玩家
|
||||
find_player: function(o_room, playerid){
|
||||
var o_player = null;
|
||||
for (var i = 0; i < o_room.seatlist.length; i++){
|
||||
if (o_room.seatlist[i]){
|
||||
if (o_room.seatlist[i].playerid == playerid){
|
||||
o_player = o_room.seatlist[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return o_player;
|
||||
},
|
||||
|
||||
//获取玩家人数
|
||||
get_playercount: function(o_room){
|
||||
var count = 0;
|
||||
for (var i = 0; i < o_room.seatlist.length; i++){
|
||||
if (o_room.seatlist[i]){
|
||||
count++;
|
||||
}
|
||||
}
|
||||
return count;
|
||||
},
|
||||
|
||||
//获取已准备的玩家人数
|
||||
get_playercount_prepare: function(o_room){
|
||||
var count = 0;
|
||||
for (var i = 0; i < o_room.seatlist.length; i++){
|
||||
if (o_room.seatlist[i] && o_room.seatlist[i].gameinfo.isprepare){
|
||||
count++;
|
||||
}
|
||||
}
|
||||
return count;
|
||||
},
|
||||
|
||||
//获取房间内所有玩家的基本信息
|
||||
get_playerlist: function(o_room){
|
||||
var playerlist = [];
|
||||
for (var i = 0; i < o_room.seatlist.length; i++) {
|
||||
if (o_room.seatlist[i]){
|
||||
var player = o_room.seatlist[i].method.get_info();
|
||||
playerlist.push(player);
|
||||
} else {
|
||||
playerlist.push(null);
|
||||
}
|
||||
}
|
||||
return playerlist;
|
||||
},
|
||||
|
||||
//房间是否满桌
|
||||
get_isfull: function(o_room){
|
||||
for (var i = 0; i < o_room.seatlist.length; i++) {
|
||||
if (!o_room.seatlist[i] || !o_room.seatlist[i].gameinfo.isprepare){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
},
|
||||
|
||||
//获取房间内所有玩家的申请解散房间状态
|
||||
get_agreefree: function(o_room){
|
||||
if (!o_room.applyfreetime){
|
||||
return null;
|
||||
}
|
||||
|
||||
var info = {};
|
||||
//默认同意解散倒计时
|
||||
info.countdown = o_room.method.get_freeroom_countdown();
|
||||
|
||||
var list = [];
|
||||
for (var i = 0; i < o_room.seatlist.length; i++) {
|
||||
if (o_room.seatlist[i]){
|
||||
list.push(o_room.seatlist[i].gameinfo.agree);
|
||||
} else {
|
||||
list.push(null);
|
||||
}
|
||||
};
|
||||
info.state = list;
|
||||
|
||||
return info;
|
||||
},
|
||||
|
||||
//给房间内某个位置的玩家发包
|
||||
sendpack_toseat: function(o_room, msg, seat){
|
||||
if (seat < o_room.seatlist.length){
|
||||
if (o_room.seatlist[seat]) {
|
||||
msg.conmode = o_room.seatlist[seat].conmode;
|
||||
msg.fromid = o_room.seatlist[seat].fromid;
|
||||
youle_room.app.SendPack(msg);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
//给房间内的其他玩家发包
|
||||
sendpack_toother: function(o_room, msg, selfseat){
|
||||
// for (var i = 0; i < o_room.seatlist.length; i++) {
|
||||
// if (o_room.seatlist[i] && (i != selfseat)) {
|
||||
// msg.conmode = o_room.seatlist[i].conmode;
|
||||
// msg.fromid = o_room.seatlist[i].fromid;
|
||||
// youle_room.app.SendPack(msg);
|
||||
// }
|
||||
// }
|
||||
var _toids_tcp = [];
|
||||
for (var i = 0; i < o_room.seatlist.length; i++) {
|
||||
if (o_room.seatlist[i] && (i != selfseat)) {
|
||||
if (o_room.seatlist[i].conmode && o_room.seatlist[i].fromid){
|
||||
if (o_room.seatlist[i].conmode == "tcp"){
|
||||
_toids_tcp.push(o_room.seatlist[i].fromid);
|
||||
} else {
|
||||
msg.conmode = o_room.seatlist[i].conmode;
|
||||
msg.fromid = o_room.seatlist[i].fromid;
|
||||
youle_room.app.SendPack(msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (_toids_tcp.length > 0){
|
||||
msg.conmode = "tcp";
|
||||
youle_room.app.SendPack(msg, _toids_tcp);
|
||||
}
|
||||
},
|
||||
|
||||
//默认同意解散房间的倒计时时间
|
||||
get_freeroom_countdown: function(o_room){
|
||||
var apply = new Date(o_room.applyfreetime);
|
||||
var now = new Date();
|
||||
return o_room.o_game.o_agent.freeroom - parseInt((now.getTime() - apply.getTime()) / 1000);
|
||||
},
|
||||
|
||||
//打开默认同意解散的定时器
|
||||
open_free_timer: function(o_room){
|
||||
var do_freeroom = function(){
|
||||
o_room.freetimer = null;
|
||||
|
||||
for (var i = 0; i < o_room.seatlist.length; i++){
|
||||
if (o_room.seatlist[i]){
|
||||
if (o_room.seatlist[i].gameinfo.agree == -1){
|
||||
o_room.seatlist[i].gameinfo.agree = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//通知代理商服务器解散房间
|
||||
var o_game = o_room.o_game;
|
||||
var o_agent = o_game.o_agent;
|
||||
var msg1 = {};
|
||||
msg1.app = youle_room.app.appname;
|
||||
msg1.route = youle_room.app.youle_agent.routename;
|
||||
msg1.rpc = "free_room";
|
||||
msg1.data = {};
|
||||
msg1.data.agentid = o_agent.agentid;
|
||||
msg1.data.gameid = o_game.gameid;
|
||||
msg1.data.roomcode = o_room.roomcode;
|
||||
//玩家列表
|
||||
msg1.data.playeridlist = [];
|
||||
for (var i = 0; i < o_room.seatlist.length; i++) {
|
||||
if (o_room.seatlist[i]){
|
||||
msg1.data.playeridlist.push(o_room.seatlist[i].playerid);
|
||||
}
|
||||
}
|
||||
|
||||
if (o_agent.server == o_game.roomserver){
|
||||
//房间服务器与代理商服务器是同一地址
|
||||
youle_room.app.youle_agent[msg1.rpc](msg1);
|
||||
//通知前端房间内的所有人解散房间
|
||||
var msg2 = {};
|
||||
msg2.app = youle_room.app.appname;
|
||||
msg2.route = youle_room.routename;
|
||||
msg2.rpc = "free_room";
|
||||
msg2.data = {};
|
||||
//获取房间内各玩家的解散房间状态
|
||||
msg2.data.seats = o_room.method.get_agreefree().state;
|
||||
|
||||
//获取游戏的解散包
|
||||
// if (o_room.battlestate == 1){
|
||||
// msg2.data.deskfree = youle_room.import.get_disbandRoom(o_room);
|
||||
// }
|
||||
// o_room.method.sendpack_toother(msg2, -1);
|
||||
|
||||
if (o_room.battlestate == 1){
|
||||
var _deskfree = youle_room.import.get_disbandRoom(o_room);
|
||||
if (_deskfree){
|
||||
if (_deskfree.sendtype && _deskfree.sendtype == 1 && _deskfree.seatlist){
|
||||
//子游戏返回的解散json数据如果有sendtype属性且值等于1则表示需要向不同的玩家各自发包,且根据seatlist数组对应给各位置的玩家发游戏解散包
|
||||
for (var n = 0; n < _deskfree.seatlist.length; n++) {
|
||||
if (_deskfree.seatlist){
|
||||
msg2.data.deskfree = _deskfree.seatlist[n];
|
||||
o_room.method.sendpack_toseat(msg2, n);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
msg2.data.deskfree = _deskfree;
|
||||
o_room.method.sendpack_toother(msg2, -1);
|
||||
}
|
||||
} else {
|
||||
o_room.method.sendpack_toother(msg2, -1);
|
||||
}
|
||||
} else {
|
||||
o_room.method.sendpack_toother(msg2, -1);
|
||||
}
|
||||
|
||||
//释放房间
|
||||
o_game.method.free_room(o_room);
|
||||
} else {
|
||||
//房间服务器与代理商服务器不是同一地址
|
||||
var cfg = {};
|
||||
cfg.url = "http://" + o_agent.server + ":" + o_agent.httpport + "/index.html";
|
||||
cfg.type = "POST";
|
||||
cfg.data = JSON.stringify(msg1);
|
||||
cfg.success = function(str){
|
||||
var _info = {};
|
||||
//获取房间内各玩家的解散房间状态
|
||||
_info.seats = o_room.method.get_agreefree().state;
|
||||
|
||||
//获取游戏的解散包
|
||||
// if (o_room.battlestate == 1){
|
||||
// _info.deskfree = youle_room.import.get_disbandRoom(o_room);
|
||||
// }
|
||||
|
||||
var _deskfree = null;
|
||||
if (o_room.battlestate == 1){
|
||||
_deskfree = youle_room.import.get_disbandRoom(o_room);
|
||||
}
|
||||
|
||||
//通知前端房间内的所有人需要断开房间服务器,连接代理服务器
|
||||
for (var i = 0; i < o_room.seatlist.length; i++) {
|
||||
if (o_room.seatlist[i]) {
|
||||
var msg2 = {};
|
||||
msg2.app = youle_room.app.appname;
|
||||
msg2.route = youle_room.routename;
|
||||
msg2.rpc = "connect_agentserver";
|
||||
msg2.data = {};
|
||||
msg2.data.agentserver = o_agent.server + ":" + o_agent.tcpport;
|
||||
msg2.data.data = {};
|
||||
msg2.data.data.opt = "free_room";
|
||||
msg2.data.data.playerid = o_room.seatlist[i].playerid;
|
||||
msg2.data.data.agentid = o_agent.agentid;
|
||||
msg2.data.data.gameid = o_game.gameid;
|
||||
|
||||
if (_deskfree){
|
||||
if (_deskfree.sendtype && _deskfree.sendtype == 1 && _deskfree.seatlist){
|
||||
//子游戏返回的解散json数据如果有sendtype属性且值等于1则表示需要向不同的玩家各自发包,且根据seatlist数组对应给各位置的玩家发游戏解散包
|
||||
_info.deskfree = _deskfree.seatlist[i];
|
||||
} else {
|
||||
_info.deskfree = _deskfree;
|
||||
}
|
||||
}
|
||||
|
||||
msg2.data.data.info = _info;
|
||||
msg2.conmode = o_room.seatlist[i].conmode;
|
||||
msg2.fromid = o_room.seatlist[i].fromid;
|
||||
//此处conmode = null是为了避免触发玩家离线通知其他玩家事件
|
||||
o_room.seatlist[i].conmode = null;
|
||||
o_room.seatlist[i].fromid = null;
|
||||
youle_room.app.SendPack(msg2);
|
||||
}
|
||||
}
|
||||
//释放房间
|
||||
o_game.method.free_room(o_room);
|
||||
};
|
||||
cfg.error = function(str){};
|
||||
min_http(cfg);
|
||||
}
|
||||
}
|
||||
o_room.freetimer = min_ontimeout(do_freeroom, o_room.o_game.o_agent.freeroom * 1000);
|
||||
},
|
||||
|
||||
//关闭默认同意解散的定时器
|
||||
close_free_timer: function(o_room){
|
||||
min_closetime(o_room.freetimer);
|
||||
o_room.freetimer = null;
|
||||
},
|
||||
|
||||
//获取房间信息
|
||||
get_roominfo: function(o_room){
|
||||
var info = {};
|
||||
info.roomtype = o_room.roomtype; //房间类型
|
||||
info.needroomcard = o_room.needroomcard; //开房需要的房卡数量
|
||||
info.asetcount = o_room.asetcount; //总局数
|
||||
info.createtime = o_room.createtime; //开房时间
|
||||
info.makewartime = o_room.makewartime; //开战时间
|
||||
info.battlestate = o_room.battlestate; //游戏状态 0:未开战 1:已开战
|
||||
info.wasdeduct = o_room.wasdeduct; //是否扣除了房主的房卡
|
||||
info.roommode = o_room.roommode; //是否是星星场
|
||||
info.beanfloor = o_room.beanfloor; //星星下限
|
||||
info.beanmult = o_room.beanmult; //星星场倍数
|
||||
info.needprepare = o_room.needprepare; //是否需要准备
|
||||
info.advanced_type = o_room.advanced_type; //是否高级房间
|
||||
info.advanced_teabean = o_room.advanced_teabean; //茶水费
|
||||
info.infinite = o_room.infinite; //是否无限场
|
||||
//房主id
|
||||
if (o_room.owner){
|
||||
info.ownerid = o_room.owner.playerid;
|
||||
} else {
|
||||
info.ownerid = null;
|
||||
}
|
||||
//玩家列表
|
||||
info.seatlist = [];
|
||||
for (var i = 0; i < o_room.seatlist.length; i++) {
|
||||
if (!o_room.seatlist[i]){
|
||||
info.seatlist.push(null);
|
||||
} else {
|
||||
var p = {};
|
||||
p.playerid = o_room.seatlist[i].playerid;
|
||||
p.nickname = o_room.seatlist[i].nickname;
|
||||
p.onstate = o_room.seatlist[i].onstate; //在线状态 null未连接 0在线 1离线 2电话中
|
||||
p.needroomcard = o_room.seatlist[i].needroomcard;
|
||||
p.wasdeduct = o_room.seatlist[i].wasdeduct;
|
||||
p.bean = o_room.seatlist[i].bean;
|
||||
p.isowner = o_room.seatlist[i].gameinfo.isowner;
|
||||
p.isbet = o_room.seatlist[i].gameinfo.isbet;
|
||||
p.grade = o_room.seatlist[i].gameinfo.grade;
|
||||
p.isprepare = o_room.seatlist[i].gameinfo.isprepare;
|
||||
var _agentsvr_agent = youle_agent.agents.method.find_agent(o_room.o_game.o_agent.agentid);
|
||||
var _agentsvr_player = _agentsvr_agent.method.find_player(o_room.seatlist[i].playerid);
|
||||
p.unionid = _agentsvr_player.unionid;
|
||||
info.seatlist.push(p);
|
||||
}
|
||||
}
|
||||
return info;
|
||||
}
|
||||
}
|
||||
81
codes/games/sales_service/youle/server_room/class.tcplist.js
Normal file
81
codes/games/sales_service/youle/server_room/class.tcplist.js
Normal file
@@ -0,0 +1,81 @@
|
||||
///////////////////////////////////////////////////
|
||||
//////////////cls_youle_room_tcplist: tcp连接列表类///////////
|
||||
///////////////////////////////////////////////////
|
||||
var cls_youle_room_tcplist = cls_youle_room_tcplist || {
|
||||
new: function() {
|
||||
var tcplist = {};
|
||||
tcplist.list = [];
|
||||
|
||||
//方法
|
||||
tcplist.method = {};
|
||||
|
||||
//载入tcp连接
|
||||
tcplist.method.load_tcp = function(str_tcpid, o_player){
|
||||
return cls_youle_room_tcplist.load_tcp(tcplist, str_tcpid, o_player);
|
||||
}
|
||||
|
||||
//查找tcp连接
|
||||
tcplist.method.find_tcp = function(str_tcpid){
|
||||
return cls_youle_room_tcplist.find_tcp(tcplist, str_tcpid);
|
||||
}
|
||||
|
||||
//删除tcp连接
|
||||
tcplist.method.delete_tcp = function(str_tcpid){
|
||||
return cls_youle_room_tcplist.delete_tcp(tcplist, str_tcpid);
|
||||
}
|
||||
|
||||
return tcplist;
|
||||
},
|
||||
|
||||
//载入tcp连接
|
||||
load_tcp: function(o_tcplsit, str_tcpid, o_player){
|
||||
var idx = cls_youle_room_tcplist.aryidx(str_tcpid);
|
||||
if (idx == -1){
|
||||
return null;
|
||||
}
|
||||
if (o_tcplsit.list.length <= idx){
|
||||
o_tcplsit.list.length = idx + 1;
|
||||
}
|
||||
var new_tcp = {};
|
||||
new_tcp.tcpid = str_tcpid;
|
||||
new_tcp.o_player = o_player;
|
||||
o_tcplsit.list[idx] = new_tcp;
|
||||
return new_tcp;
|
||||
},
|
||||
|
||||
//查找tcp连接
|
||||
find_tcp: function(o_tcplsit, str_tcpid){
|
||||
var idx = cls_youle_room_tcplist.aryidx(str_tcpid);
|
||||
if (idx == -1){
|
||||
return null;
|
||||
}
|
||||
if (o_tcplsit.list.length <= idx){
|
||||
return null;
|
||||
}
|
||||
return o_tcplsit.list[idx];
|
||||
},
|
||||
|
||||
//删除tcp连接
|
||||
delete_tcp: function(o_tcplsit, str_tcpid){
|
||||
var idx = cls_youle_room_tcplist.aryidx(str_tcpid);
|
||||
if (idx == -1){
|
||||
return;
|
||||
}
|
||||
if (o_tcplsit.list.length <= idx){
|
||||
return;
|
||||
}
|
||||
o_tcplsit.list[idx] = null;
|
||||
},
|
||||
|
||||
//计算tcp连接的数组下标
|
||||
aryidx: function(str_tcpid){
|
||||
var idx = parseInt(str_tcpid.replace("tcp_", ""));
|
||||
if (isNaN(idx)){
|
||||
return -1;
|
||||
}
|
||||
return idx - 10000;
|
||||
}
|
||||
}
|
||||
|
||||
//tcp连接列表
|
||||
youle_room.tcps = cls_youle_room_tcplist.new();
|
||||
54
codes/games/sales_service/youle/server_room/mod.js
Normal file
54
codes/games/sales_service/youle/server_room/mod.js
Normal file
@@ -0,0 +1,54 @@
|
||||
//////////////////////////////////////////////////////////////////
|
||||
//////////////////////////游戏平台服务器//////////////////////////
|
||||
//////////////////////////////////////////////////////////////////
|
||||
//rpc
|
||||
min_loadJsFile("youle/server_room/rpc.js", function(){
|
||||
//tcp连接
|
||||
min_loadJsFile("youle/server_room/class.tcplist.js", function(){
|
||||
//运营商
|
||||
min_loadJsFile("youle/server_room/class.agent.js", function(){
|
||||
//游戏
|
||||
min_loadJsFile("youle/server_room/class.game.js", function(){
|
||||
//房间
|
||||
min_loadJsFile("youle/server_room/class.room.js", function(){
|
||||
//玩家
|
||||
min_loadJsFile("youle/server_room/class.player.js", function(){
|
||||
//对内的输入接口类
|
||||
min_loadJsFile("youle/server_room/class.import.js", function(){
|
||||
//对内的输出接口类
|
||||
min_loadJsFile("youle/server_room/class.export.js", function(){
|
||||
//返回结果类
|
||||
min_loadJsFile("youle/server_room/class.return.js", function(){
|
||||
//数据备份类
|
||||
min_loadJsFile("youle/server_room/class.backup.js", function(){
|
||||
//抽成系统
|
||||
min_loadJsFile("youle/server_room/class.rebate.js", function(){
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
var youle_room = youle_room || cls_mod.new("youle_room", "room", youle_app);
|
||||
|
||||
//运营商列表
|
||||
youle_room.agents = null;
|
||||
//tcp连接
|
||||
youle_room.tcps = null;
|
||||
//mysql操作类
|
||||
youle_room.mysql = cls_mysql.new("http://ylyxdata.daoqi88.cn/mysql.php", youle_room.app.SendPack);
|
||||
youle_room.mysql_grade = cls_mysql.new("http://ylyxdata.daoqi88.cn/mysql_grade.php", youle_room.app.SendPack);
|
||||
//对内的输入接口类(需要的外部接口)
|
||||
youle_room.import = null;
|
||||
//对内的输出接口类(提供给外部使用的接口)
|
||||
youle_room.export = null;
|
||||
//返回结果类
|
||||
youle_room.return = null;
|
||||
//数据备份类
|
||||
youle_room.backup = null;
|
||||
3831
codes/games/sales_service/youle/server_room/rpc.js
Normal file
3831
codes/games/sales_service/youle/server_room/rpc.js
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user