目录结构调整
This commit is contained in:
588
codes/games/sales_service/youle/server_agent/class.match.js
Normal file
588
codes/games/sales_service/youle/server_agent/class.match.js
Normal file
@@ -0,0 +1,588 @@
|
||||
///////////////////////////////////////////////////////////////
|
||||
/////////////// cls_youle_agent_match: 比赛 /////////////////
|
||||
///////////////////////////////////////////////////////////////
|
||||
var cls_youle_agent_match = cls_youle_agent_match || {
|
||||
//构造函数
|
||||
new: function(o_game, o_matchlist, o_setting){
|
||||
var match = {};
|
||||
match.o_game = o_game;
|
||||
match.o_matchlist = o_matchlist;
|
||||
match.id = o_setting.id;
|
||||
match.roomtype = o_setting.roomtype;
|
||||
match.matchname = o_setting.matchname;
|
||||
match.imageurl = o_setting.imageurl;
|
||||
match.playercount = o_setting.playercount;
|
||||
match.playercount2= o_setting.playercount2;
|
||||
match.bean = o_setting.bean;
|
||||
match.roomcard = o_setting.roomcard;
|
||||
match.topcount = o_setting.topcount;
|
||||
match.circulation = o_setting.circulation;
|
||||
match.interval = o_setting.interval;
|
||||
match.gradename = o_setting.gradename;
|
||||
match.memo1 = o_setting.memo1;
|
||||
match.memo2 = o_setting.memo2;
|
||||
match.memo3 = o_setting.memo3;
|
||||
match.haverobot = o_setting.haverobot;
|
||||
if (o_setting.ranking){
|
||||
match.sysgrade = o_setting.ranking;
|
||||
}
|
||||
|
||||
//该比赛的第几个循环
|
||||
if (match.circulation){
|
||||
if ((new Date()).getTime() < (new Date(o_setting.beginTime)).getTime()){
|
||||
match.idx = 1;
|
||||
match.beginTime = o_setting.beginTime;
|
||||
match.endTime = o_setting.endTime;
|
||||
} else if ((new Date()).getTime() <= (new Date(o_setting.endTime)).getTime()){
|
||||
match.idx = 1;
|
||||
match.beginTime = o_setting.beginTime;
|
||||
match.endTime = o_setting.endTime;
|
||||
} else {
|
||||
match.idx = parseInt(((new Date()).getTime() - 1 - (new Date(o_setting.endTime)).getTime()) / ((new Date(o_setting.endTime)).getTime() - (new Date(o_setting.beginTime)).getTime() + o_setting.interval * 1000)) + 2;
|
||||
match.beginTime = min_timestampToTime((new Date(o_setting.endTime)).getTime() + o_setting.interval * 1000 * (match.idx - 1) + ((new Date(o_setting.endTime)).getTime() - (new Date(o_setting.beginTime)).getTime()) * (match.idx - 2));
|
||||
match.endTime = min_timestampToTime((new Date(match.beginTime)).getTime() + (new Date(o_setting.endTime)).getTime() - (new Date(o_setting.beginTime)).getTime());
|
||||
}
|
||||
|
||||
if (match.idx > match.circulation + 1){
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
if ((new Date()).getTime() > (new Date(o_setting.endTime)).getTime()){
|
||||
return null;
|
||||
}
|
||||
match.idx = 1;
|
||||
match.beginTime = o_setting.beginTime;
|
||||
match.endTime = o_setting.endTime;
|
||||
}
|
||||
match.isstart = 0;
|
||||
match.playerlist = [];
|
||||
match.ranklist = [];
|
||||
|
||||
//方法
|
||||
match.method = {};
|
||||
//定时开始游戏
|
||||
match.method.start_game = function(){
|
||||
return cls_youle_agent_match.start_game(match);
|
||||
};
|
||||
//随机上一个系统成绩
|
||||
match.method.add_sysgrade = function(){
|
||||
cls_youle_agent_match.add_sysgrade(match);
|
||||
};
|
||||
//开启系统成绩定时器
|
||||
match.method.start_add_sysgrade_timer = function(){
|
||||
cls_youle_agent_match.start_add_sysgrade_timer(match);
|
||||
};
|
||||
match.timer_start = min_ontime(match.method.start_game, 6 * 1000);
|
||||
|
||||
return match;
|
||||
},
|
||||
|
||||
//定时开始游戏
|
||||
start_game: function(o_match){
|
||||
var o_game = o_match.o_game;
|
||||
var o_agent = o_game.o_agent;
|
||||
|
||||
var config_close = youle_platform.config.method.get_paravalue("isclose", o_agent.agentid, o_game.gameid);
|
||||
if (o_agent.isclose || config_close == 2){
|
||||
return;
|
||||
};
|
||||
|
||||
var do_start = function(){
|
||||
var seatcount = youle_room.import.makewar_playercount(o_game, o_match.roomtype);
|
||||
if (!seatcount){
|
||||
seatcount = o_game.seatcount;
|
||||
}
|
||||
while ((o_match.playerlist.length >= seatcount) ||
|
||||
(o_match.haverobot == 1 && o_match.playerlist.length > 0)){
|
||||
var _roomsvr_room = null;
|
||||
var playercount = 0;
|
||||
var playerbeansum = 0;
|
||||
var playeridlist = [];
|
||||
var playernamelist = [];
|
||||
var playeravatarlist = [];
|
||||
for (var i = 1; i <= seatcount; i++) {
|
||||
if (o_match.playerlist.length > 0){
|
||||
var idx = min_random(0, o_match.playerlist.length - 1);
|
||||
var playerid = o_match.playerlist[idx];
|
||||
var o_player = o_agent.method.find_player(playerid);
|
||||
if (o_player){
|
||||
var o_gameinfo = o_player.method.get_gameinfo(o_game);
|
||||
if (o_gameinfo) {
|
||||
if (!o_gameinfo.roomcode){
|
||||
if (_roomsvr_room){
|
||||
var msg = {};
|
||||
msg.app = youle_agent.app.appname;
|
||||
msg.route = youle_agent.app.youle_room.routename;
|
||||
msg.rpc = "self_join_room";
|
||||
msg.data = {};
|
||||
msg.data.playerid = playerid;
|
||||
msg.data.nickname = o_player.nickname;
|
||||
msg.data.avatar = o_player.avatar;
|
||||
msg.data.sex = o_player.sex;
|
||||
msg.data.playertype = o_player.playertype;
|
||||
msg.data.ip = o_gameinfo.ip;
|
||||
msg.data.conmode = o_gameinfo.conmode;
|
||||
msg.data.fromid = o_gameinfo.fromid;
|
||||
msg.data.agentid = o_agent.agentid;
|
||||
msg.data.gameid = o_game.gameid;
|
||||
msg.data.roomcode = _roomsvr_room.roomcode;
|
||||
msg.data.playerroomcard = o_player.roomcard;
|
||||
msg.data.playerbean = o_player.bean;
|
||||
msg.data.address = o_player.address;
|
||||
msg.data.latitude = o_player.latitude;
|
||||
msg.data.longitude = o_player.longitude;
|
||||
|
||||
//房间服务器与代理商服务器是同一地址
|
||||
var roomserver_data = youle_agent.app.youle_room[msg.rpc](msg);
|
||||
//返回数据
|
||||
if (roomserver_data.data.state == 0){
|
||||
//加入房间成功
|
||||
o_gameinfo.roomcode = _roomsvr_room.roomcode;
|
||||
delete o_gameinfo.matchid;
|
||||
delete o_gameinfo.matchidx;
|
||||
playercount = playercount + 1;
|
||||
playerbeansum = playerbeansum + o_player.bean;
|
||||
playeridlist.push(o_player.playerid);
|
||||
playernamelist.push(o_player.nickname);
|
||||
playeravatarlist.push(o_player.avatar);
|
||||
|
||||
var pack = {};
|
||||
pack.ip = o_gameinfo.match_ip;
|
||||
pack.conmode = o_gameinfo.match_conmode;
|
||||
pack.fromid = o_gameinfo.match_fromid;
|
||||
pack.app = "youle";
|
||||
pack.route = "agent";
|
||||
pack.rpc = "self_join_room";
|
||||
pack.data = roomserver_data.data;
|
||||
pack.data.matchid = o_match.id;
|
||||
pack.data.matchidx = o_match.idx;
|
||||
youle_agent.app.SendPack(pack);
|
||||
}
|
||||
} else {
|
||||
var roomcode = o_game.method.new_roomcode();
|
||||
if (roomcode){
|
||||
var o_roomserver = o_game.method.get_roomserver(roomcode);
|
||||
var msg = {};
|
||||
msg.app = youle_agent.app.appname;
|
||||
msg.route = youle_agent.app.youle_room.routename;
|
||||
msg.rpc = "create_room";
|
||||
msg.data = {};
|
||||
|
||||
msg.data.agent = {};
|
||||
msg.data.agent.agentid = o_agent.agentid;
|
||||
msg.data.agent.name = o_agent.agentname;
|
||||
msg.data.agent.server = o_agent.server;
|
||||
msg.data.agent.tcpport = o_agent.tcpport;
|
||||
msg.data.agent.httpport = o_agent.httpport;
|
||||
msg.data.agent.freeroom = o_agent.freeroom;
|
||||
|
||||
msg.data.game = {};
|
||||
msg.data.game.gameid = o_game.gameid;
|
||||
msg.data.game.name = o_game.gamename;
|
||||
msg.data.game.seatcount = o_game.seatcount;
|
||||
msg.data.game.makewar = o_game.makewar;
|
||||
msg.data.game.modename = o_game.modename;
|
||||
msg.data.game.server = o_roomserver.server;
|
||||
msg.data.game.tcpport = o_roomserver.tcpport;
|
||||
msg.data.game.httpport = o_roomserver.httpport;
|
||||
msg.data.game.minroomcode = o_roomserver.minroomcode;
|
||||
msg.data.game.maxroomcode = o_roomserver.maxroomcode;
|
||||
|
||||
msg.data.player = {};
|
||||
msg.data.player.playerid = playerid;
|
||||
msg.data.player.nickname = o_player.nickname;
|
||||
msg.data.player.avatar = o_player.avatar;
|
||||
msg.data.player.sex = o_player.sex;
|
||||
msg.data.player.playertype = o_player.playertype;
|
||||
msg.data.player.ip = o_gameinfo.ip;
|
||||
msg.data.player.conmode = o_gameinfo.conmode;
|
||||
msg.data.player.fromid = o_gameinfo.fromid;
|
||||
msg.data.player.address = o_player.address;
|
||||
msg.data.player.latitude = o_player.latitude;
|
||||
msg.data.player.longitude = o_player.longitude;
|
||||
msg.data.player.bean = o_player.bean;
|
||||
|
||||
var needroomcard = youle_agent.import.createroom_needroomcard(o_game, o_match.roomtype);
|
||||
//获取总局数
|
||||
var asetcount = youle_agent.import.createroom_asetcount(o_game, o_match.roomtype);
|
||||
//获取豆豆下限
|
||||
var beanfloor = youle_agent.import.createroom_beanfloor(o_game, o_match.roomtype);
|
||||
//获取房间类型
|
||||
var roommode = youle_agent.import.createroom_roommode(o_game, o_match.roomtype);
|
||||
//获取星星场倍数
|
||||
var beanmult = youle_agent.import.createroom_beanmult(o_game, o_match.roomtype);
|
||||
//不是星星场
|
||||
if (!roommode){
|
||||
beanmult = 0;
|
||||
}
|
||||
//玩家是否需要准备
|
||||
var needprepare = youle_agent.import.createroom_needprepare(o_game, o_match.roomtype);
|
||||
//比赛场写死不需要准备
|
||||
needprepare = 0;
|
||||
|
||||
msg.data.room = {};
|
||||
msg.data.room.roomcode = roomcode;
|
||||
msg.data.room.roomtype = o_match.roomtype;
|
||||
msg.data.room.needroomcard = needroomcard;
|
||||
msg.data.room.asetcount = asetcount;
|
||||
msg.data.room.infinite = 0;
|
||||
msg.data.room.roommode = roommode;
|
||||
msg.data.room.beanfloor = beanfloor;
|
||||
msg.data.room.beanmult = beanmult;
|
||||
msg.data.room.needprepare = needprepare;
|
||||
msg.data.room.advanced_type= 0;
|
||||
msg.data.room.advanced_teabean = 0;
|
||||
msg.data.room.match_id = o_match.id;
|
||||
msg.data.room.match_idx = o_match.idx;
|
||||
|
||||
if (o_roomserver.server == o_agent.server){
|
||||
//房间服务器与代理商服务器是同一地址
|
||||
var roomserver_data = youle_agent.app.youle_room[msg.rpc](msg);
|
||||
//返回数据
|
||||
if (roomserver_data.data.state == 0){
|
||||
//加入房间成功
|
||||
o_gameinfo.roomcode = roomcode;
|
||||
delete o_gameinfo.matchid;
|
||||
delete o_gameinfo.matchidx;
|
||||
playercount = playercount + 1;
|
||||
playerbeansum = playerbeansum + o_player.bean;
|
||||
playeridlist.push(o_player.playerid);
|
||||
playernamelist.push(o_player.nickname);
|
||||
playeravatarlist.push(o_player.avatar);
|
||||
|
||||
var pack = {};
|
||||
pack.ip = o_gameinfo.match_ip;
|
||||
pack.conmode = o_gameinfo.match_conmode;
|
||||
pack.fromid = o_gameinfo.match_fromid;
|
||||
pack.app = "youle";
|
||||
pack.route = "agent";
|
||||
pack.rpc = "create_room";
|
||||
pack.data = roomserver_data.data;
|
||||
pack.data.matchid = o_match.id;
|
||||
pack.data.matchidx = o_match.idx;
|
||||
youle_agent.app.SendPack(pack);
|
||||
|
||||
var _roomsvr_agent = youle_room.agents.method.find_agent(o_agent.agentid);
|
||||
var _roomsvr_game = _roomsvr_agent.method.find_game(o_game.gameid);
|
||||
_roomsvr_room = _roomsvr_game.method.find_room(roomcode);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
o_match.playerlist.splice(idx, 1);
|
||||
} else {
|
||||
o_match.playerlist.splice(idx, 1);
|
||||
}
|
||||
} else {
|
||||
//加入机器人
|
||||
var robot_playerid = null;
|
||||
for (var j = 1; j < 10; j++) {
|
||||
robot_playerid = min_random(200000, 899999);
|
||||
if (min_ary_indexof(playeridlist, robot_playerid) > -1){
|
||||
robot_playerid = null;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (robot_playerid == null){
|
||||
return;
|
||||
}
|
||||
|
||||
var idx
|
||||
var robot_nickname = null;
|
||||
for (var j = 1; j < 10; j++) {
|
||||
idx = min_random(0, o_agent.robot_nicknamelist.length - 1);
|
||||
robot_nickname = o_agent.robot_nicknamelist[idx];
|
||||
if (min_ary_indexof(playernamelist, robot_nickname) > -1){
|
||||
robot_nickname = null;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (robot_nickname == null){
|
||||
return;
|
||||
}
|
||||
|
||||
var robot_avatar = null;
|
||||
for (var j = 1; j < 10; j++) {
|
||||
idx = min_random(0, o_agent.robot_avatarlist.length - 1);
|
||||
robot_avatar = o_agent.robot_avatarlist[idx];
|
||||
if (min_ary_indexof(playeravatarlist, robot_avatar) > -1){
|
||||
robot_avatar = null;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (robot_avatar == null){
|
||||
return;
|
||||
}
|
||||
|
||||
var robot_sex = min_random(1, 2);
|
||||
var robot_ip = min_random(10, 240) + "." + min_random(10, 240) + "." + min_random(10, 240) + "." + min_random(10, 240);
|
||||
var robot_bean = parseInt(playerbeansum / playercount) + min_random(100, 3000);
|
||||
if (!robot_bean){
|
||||
robot_bean = 0;
|
||||
}
|
||||
var o_robot = cls_youle_room_player.new(robot_playerid, robot_nickname, robot_avatar, robot_sex, 0, robot_ip, 0, null, null);
|
||||
o_robot.bean = robot_bean;
|
||||
o_robot.isrobot = 1;
|
||||
for (var j = 0; j < _roomsvr_room.seatlist.length; j++) {
|
||||
if (!_roomsvr_room.seatlist[j]){
|
||||
// console.log(_roomsvr_room.roomcode + "比赛场加入机器人" + robot_playerid);
|
||||
o_robot.method.enter_room(_roomsvr_room, j, 0);
|
||||
if (_roomsvr_room.battlestate){
|
||||
youle_room.import.player_enter(_roomsvr_room, j);
|
||||
}
|
||||
youle_room.return.self_join_room({}, o_robot, robot_bean);
|
||||
|
||||
playeridlist.push(o_robot.playerid);
|
||||
playernamelist.push(o_robot.nickname);
|
||||
playeravatarlist.push(o_robot.avatar);
|
||||
|
||||
if (_roomsvr_room.needprepare){
|
||||
(function(){
|
||||
var o_robot2 = o_robot;
|
||||
o_robot2.tmr_prepare = min_ontimeout(
|
||||
function(){
|
||||
if (!o_robot2.gameinfo.isprepare){
|
||||
var pack = {};
|
||||
pack.app = "youle";
|
||||
pack.route = "room";
|
||||
pack.rpc = "player_prepare";
|
||||
pack.data = {};
|
||||
pack.data.agentid = o_robot2.gameinfo.o_room.o_game.o_agent.agentid;
|
||||
pack.data.playerid = o_robot2.playerid;
|
||||
pack.data.gameid = o_robot2.gameinfo.o_room.o_game.gameid;
|
||||
pack.data.roomcode = o_robot2.gameinfo.o_room.roomcode;
|
||||
youle_room.player_prepare(pack);
|
||||
}
|
||||
}, min_random(2000, 4000));
|
||||
})(o_robot);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((new Date()).getTime() >= (new Date(o_match.beginTime)).getTime() &&
|
||||
(new Date()).getTime() <= (new Date(o_match.endTime)).getTime()){
|
||||
if (!o_match.isstart){
|
||||
if (o_match.playerlist.length >= o_match.playercount || o_match.haverobot == 1){
|
||||
do_start();
|
||||
o_match.isstart = 1;
|
||||
}
|
||||
} else {
|
||||
if (o_match.playerlist.length >= o_match.playercount2 || o_match.haverobot == 1){
|
||||
do_start();
|
||||
}
|
||||
}
|
||||
} else if ((new Date()).getTime() > (new Date(o_match.endTime)).getTime()){
|
||||
cls_youle_room_backup.deletebackup_match(o_match);
|
||||
min_closetime(o_match.timer_start);
|
||||
if (o_match.timer_add_sysgrade){
|
||||
min_closetime(o_match.timer_add_sysgrade);
|
||||
}
|
||||
|
||||
if (o_match.ranklist.length > 0){
|
||||
var ary_playerid = "";
|
||||
var ary_nickname = "";
|
||||
var ary_avatar = "";
|
||||
var ary_roomcode = "";
|
||||
var ary_overtime = "";
|
||||
var ary_grade = "";
|
||||
var ary_isrobot = "";
|
||||
for (var i = 0; i < o_match.ranklist.length; i++) {
|
||||
if (i == 0){
|
||||
ary_playerid = o_match.ranklist[i].playerid;
|
||||
ary_nickname = o_match.ranklist[i].nickname;
|
||||
ary_avatar = o_match.ranklist[i].avatar;
|
||||
ary_roomcode = o_match.ranklist[i].roomcode;
|
||||
ary_overtime = o_match.ranklist[i].overtime;
|
||||
ary_grade = o_match.ranklist[i].grade;
|
||||
ary_isrobot = o_match.ranklist[i].isr;
|
||||
} else {
|
||||
ary_playerid = ary_playerid + "," + o_match.ranklist[i].playerid;
|
||||
ary_nickname = ary_nickname + "," + o_match.ranklist[i].nickname;
|
||||
ary_avatar = ary_avatar + "," + o_match.ranklist[i].avatar;
|
||||
ary_roomcode = ary_roomcode + "," + o_match.ranklist[i].roomcode;
|
||||
ary_overtime = ary_overtime + "," + o_match.ranklist[i].overtime;
|
||||
ary_grade = ary_grade + "," + o_match.ranklist[i].grade;
|
||||
ary_isrobot = ary_isrobot + "," + o_match.ranklist[i].isr;
|
||||
}
|
||||
};
|
||||
|
||||
var sql = "call cp_game_save_matchranking(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
|
||||
youle_room.mysql_grade.execsql("execsql", sql, [o_agent.agentid, o_game.gameid, o_match.id, o_match.idx, o_match.matchname, o_match.beginTime, o_match.endTime, JSON.stringify(o_match.roomtype), o_match.imageurl, o_match.playercount, o_match.playercount2, o_match.bean, o_match.roomcard, o_match.topcount, o_match.circulation, o_match.interval, o_match.gradename, o_match.memo1, o_match.memo2, o_match.memo3, JSON.stringify(o_match.ranklist), ary_playerid, ary_nickname, ary_avatar, ary_roomcode, ary_overtime, ary_grade, ary_isrobot]);
|
||||
}
|
||||
|
||||
var idx = min_ary_indexof(o_match.o_matchlist.list, o_match.id, "id");
|
||||
if (idx > -1){
|
||||
o_match.o_matchlist.list.splice(idx, 1);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
//随机上一个系统成绩
|
||||
add_sysgrade: function(o_match){
|
||||
if (o_match.sysgrade && o_match.sysgrade.length > 0){
|
||||
var robot_playerid = null;
|
||||
for (var j = 1; j < 10; j++) {
|
||||
robot_playerid = min_random(200000, 899999);
|
||||
if (min_ary_indexof(o_match.ranklist, robot_playerid, "playerid") > -1){
|
||||
robot_playerid = null;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (robot_playerid == null){
|
||||
return;
|
||||
}
|
||||
|
||||
var o_agent = o_match.o_game.o_agent;
|
||||
var robot_nickname = null;
|
||||
for (var j = 1; j < 10; j++) {
|
||||
var idx = min_random(0, o_agent.robot_nicknamelist.length - 1);
|
||||
robot_nickname = o_agent.robot_nicknamelist[idx];
|
||||
if (min_ary_indexof(o_match.ranklist, robot_nickname, "nickname") > -1){
|
||||
robot_nickname = null;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (robot_nickname == null){
|
||||
return;
|
||||
}
|
||||
|
||||
var robot_avatar = null;
|
||||
for (var j = 1; j < 10; j++) {
|
||||
var idx = min_random(0, o_agent.robot_avatarlist.length - 1);
|
||||
robot_avatar = o_agent.robot_avatarlist[idx];
|
||||
if (min_ary_indexof(o_match.ranklist, robot_avatar, "avatar") > -1){
|
||||
robot_avatar = null;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (robot_avatar == null){
|
||||
return;
|
||||
}
|
||||
|
||||
var rand = min_random(0, o_match.sysgrade.length - 1);
|
||||
var robot_grade = min_random(o_match.sysgrade[rand].min, o_match.sysgrade[rand].max);
|
||||
|
||||
var o_sysplayer = {};
|
||||
o_sysplayer.playerid = robot_playerid;
|
||||
o_sysplayer.nickname = robot_nickname;
|
||||
o_sysplayer.avatar = robot_avatar;
|
||||
o_sysplayer.roomcode = min_random(100000, 999999);
|
||||
o_sysplayer.overtime = min_now();
|
||||
o_sysplayer.grade = robot_grade;
|
||||
o_sysplayer.isr = 2;
|
||||
|
||||
var isfound = false;
|
||||
for (var j = 0; j < o_match.ranklist.length; j++) {
|
||||
if (o_sysplayer.grade > o_match.ranklist[j].grade){
|
||||
o_match.ranklist.splice(j, 0, o_sysplayer);
|
||||
if (o_match.ranklist.length > parseInt(o_match.topcount)){
|
||||
o_match.ranklist.length = parseInt(o_match.topcount);
|
||||
}
|
||||
isfound = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!isfound){
|
||||
if (o_match.ranklist.length < parseInt(o_match.topcount)){
|
||||
o_match.ranklist.push(o_sysplayer);
|
||||
}
|
||||
}
|
||||
|
||||
o_match.sysgrade[rand].count = o_match.sysgrade[rand].count - 1;
|
||||
if (o_match.sysgrade[rand].count == 0){
|
||||
o_match.sysgrade.splice(rand, 1);
|
||||
}
|
||||
|
||||
cls_youle_room_backup.backup_match(o_match);
|
||||
|
||||
if (o_match.sysgrade.length == 0){
|
||||
if (o_match.timer_add_sysgrade){
|
||||
min_closetime(o_match.timer_add_sysgrade);
|
||||
o_match.timer_add_sysgrad = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
//开启系统成绩定时器
|
||||
start_add_sysgrade_timer: function(o_match){
|
||||
if (o_match.sysgrade && !o_match.timer_add_sysgrade){
|
||||
var sum_count = 0;
|
||||
for (var i = 0; i < o_match.sysgrade.length; i++) {
|
||||
sum_count = sum_count + o_match.sysgrade[i].count;
|
||||
};
|
||||
var interval = (new Date(o_match.endTime)).getTime() - (new Date()).getTime();
|
||||
if (interval > 0 && sum_count > 0){
|
||||
interval = parseInt(interval / sum_count);
|
||||
o_match.timer_add_sysgrade = min_ontime(o_match.method.add_sysgrade, interval);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////
|
||||
/////////// cls_youle_agent_matchlist: 比赛列表 //////////
|
||||
///////////////////////////////////////////////////////////////
|
||||
var cls_youle_agent_matchlist = cls_youle_agent_matchlist || {
|
||||
//构造函数
|
||||
new: function(o_game) {
|
||||
|
||||
var matchlist = {};
|
||||
matchlist.o_game = o_game;
|
||||
matchlist.list = [];
|
||||
|
||||
matchlist.method = {};
|
||||
//载入一个比赛
|
||||
matchlist.method.load_match = function(o_setting){
|
||||
return cls_youle_agent_matchlist.load_match(matchlist, o_setting);
|
||||
};
|
||||
|
||||
//查找一个比赛
|
||||
matchlist.method.find_match = function(id, idx){
|
||||
return cls_youle_agent_matchlist.find_match(matchlist, id, idx);
|
||||
};
|
||||
|
||||
return matchlist;
|
||||
},
|
||||
|
||||
//载入一个比赛
|
||||
load_match: function(o_matchlist, o_setting){
|
||||
var o_match;
|
||||
var idx = min_ary_indexof(o_matchlist.list, o_setting.id, "id");
|
||||
if (idx == -1) {
|
||||
o_match = cls_youle_agent_match.new(o_matchlist.o_game, o_matchlist, o_setting);
|
||||
if (o_match){
|
||||
o_matchlist.list.push(o_match);
|
||||
}
|
||||
} else {
|
||||
o_match = o_matchlist.list[idx];
|
||||
}
|
||||
return o_match;
|
||||
},
|
||||
|
||||
//查找一个比赛
|
||||
find_match: function(o_matchlist, id, idx){
|
||||
var i = min_ary_indexof(o_matchlist.list, id, "id");
|
||||
if (i > -1){
|
||||
if (o_matchlist.list[i].idx == idx){
|
||||
return o_matchlist.list[i];
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user