/////////////////////////////////////////////////////////////// /////////////// cls_youle_agent_agent: 运营商 ///////////////// /////////////////////////////////////////////////////////////// var cls_youle_agent_agent = cls_youle_agent_agent || { //构造函数 new: function(agentid, name, server, tcpport, httpport, freeroom, managecode,initCard,initBean){ var agent = {}; agent.agentid = agentid; //运营商id agent.agentname = name; //运营商名称 agent.server = server; //运营商服务器地址 agent.tcpport = tcpport; //运营商服务器tcp端口 agent.httpport = httpport; //运营商服务器http端口 agent.freeroom = freeroom; //默认同意解散房间的倒计时,秒 agent.managecode = managecode; //管理码 agent.isclose = 0; //服务器关闭标志 0:已开启 1:已关闭(不能创建房间、不能加入房间) agent.initCard = initCard; agent.initBean = initBean; //游戏列表 agent.games = []; //玩家列表 agent.players = []; //短号列表 agent.shortcodes = []; agent.shortcodes.length = 99999; //方法 agent.method = {}; //载入游戏(没找到则创建) agent.method.load_game = function(gameid, gamename, minroomcode, maxroomcode, seatcount, makewar, modename){ return cls_youle_agent_agent.load_game(agent, gameid, gamename, minroomcode, maxroomcode, seatcount, makewar, modename); }; //查找游戏 agent.method.find_game = function(gameid){ return cls_youle_agent_agent.find_game(agent, gameid); }; //载入玩家(没找到则创建) agent.method.load_player = function(playerid, roomcard, bean, openid, unionid, nickname, avatar, sex, playertype, invitecode,sign){ return cls_youle_agent_agent.load_player(agent, playerid, roomcard, bean, openid, unionid, nickname, avatar, sex, playertype, invitecode,sign); }; //查找玩家 agent.method.find_player = function(playerid){ return cls_youle_agent_agent.find_player(agent, playerid); }; //清除玩家 agent.method.clear_player = function(playerid){ cls_youle_agent_agent.clear_player(agent, playerid); }; //机器人昵称、头像 agent.method.get_robotinfo = function(){ cls_youle_agent_agent.get_robotinfo(agent); }; //机器人昵称、头像 agent.method.getRobotInfo = function(){ cls_youle_agent_agent.getRobotInfo(agent); }; agent.method.alyVideoConfig = function(videoConfig,count){ return cls_youle_agent_agent.alyVideoConfig(videoConfig,count); }; //机器人 agent.robot_nicknamelist = []; agent.robot_avatarlist = []; agent.method.get_robotinfo(); agent.timer_getrobot = min_ontime(agent.method.get_robotinfo, 8 * 60 * 60 * 1000); //机器人随机列表 agent.robotArray = new Array(10000); for(var i=0;i= v2.idx " + "and play_agentid <> ? " + "and trim(play_nickname) <> '' " + "and (not play_nickname like '%测试%') " + "and (not play_nickname like '%游客%') " + "order by v1.idx limit 2000;"; if (o_agent.agentid == "i33v0llvp0euhd1n9qo1fM2RV8vtog4y"){ youle_room.mysql.execsql("opensql", sql1, [" "], db_callback_robot_nickname); } else { youle_room.mysql.execsql("opensql", sql1, [o_agent.agentid], db_callback_robot_nickname); } var db_callback_robot_avatar = function(dbdata){ o_agent.robot_avatarlist = []; for (var i = 0; i < dbdata.length; i++) { o_agent.robot_avatarlist.push(dbdata[i].play_avatar); } } var sql2 = "select v1.play_avatar from player as v1 " + "inner join (select floor(min(idx) + (rand() * (max(idx) - min(idx)))) as idx from player) as v2 " + "where v1.idx >= v2.idx " + "and play_agentid <> ? " + "and trim(play_nickname) <> '' " + "and (not play_nickname like '%测试%') " + "and (not play_nickname like '%游客%') " + "and play_avatar <> '' " + "and play_avatar <> '/0' " + "order by v1.idx limit 2000;"; if (o_agent.agentid == "i33v0llvp0euhd1n9qo1fM2RV8vtog4y"){ youle_room.mysql.execsql("opensql", sql2, [" "], db_callback_robot_avatar); } else { youle_room.mysql.execsql("opensql", sql2, [o_agent.agentid], db_callback_robot_avatar); } }, //获取机器人信息 getRobotInfo:function(o_agent){ var cfg = {}; cfg.url = "https://projectimage.tscce.cn/avatar/nikcname.txt" + "?" + min_timestamp(); cfg.type = "POST"; cfg.data = ""; cfg.success = function(str){ if (str){ try{ var data = JSON.parse(str); console.log("获取机器人昵称列表成功!!"); o_agent.robotNicknames = data.data; } catch(e){ } } }; cfg.error = function(str){ console.log("获取机器人昵称列表失败!!"); }; min_http(cfg); }, //解析视频房配置 alyVideoConfig:function(videoConfig,count){ if(videoConfig){ if(videoConfig.type == 1){ switch(videoConfig.profitMode){ case 1://固定 return [1,Number(videoConfig.profit)]; break; case 2://比例 break; } }else if(videoConfig.type == 2){ switch(videoConfig.profitMode){ case 1://固定 return [2,Number(videoConfig.profit)]; break; case 2://比例 break; } } } return[0,0]; } } /////////////////////////////////////////////////////////////// /////////// cls_youle_agent_agentlist: 运营商列表 ////////// /////////////////////////////////////////////////////////////// var cls_youle_agent_agentlist = cls_youle_agent_agentlist || { //构造函数 new: function() { var agentlist = {}; //代理商列表 agentlist.list = []; //方法 agentlist.method = {}; //载入代理商(没找到则创建) agentlist.method.load_agent = function(agentid, name, server, tcpport, httpport, freeroom, managecode,initCard,initBean){ 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_agent_agent.new(agentid, name, server, tcpport, httpport, freeroom, managecode,initCard,initBean); 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; o_agent.managecode = managecode; o_agent.initCard = initCard; o_agent.initBean = initBean; } 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_agent.agents = cls_youle_agent_agentlist.new();