目录结构调整
This commit is contained in:
376
codes/games/sales_service/youle/server_agent/class.agent.js
Normal file
376
codes/games/sales_service/youle/server_agent/class.agent.js
Normal file
@@ -0,0 +1,376 @@
|
||||
///////////////////////////////////////////////////////////////
|
||||
/////////////// 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<agent.robotArray.length;i++){
|
||||
agent.robotArray[i] = i;
|
||||
}
|
||||
//机器人昵称列表
|
||||
agent.robotNicknames=null;
|
||||
agent.method.getRobotInfo();
|
||||
return agent;
|
||||
},
|
||||
|
||||
//载入游戏(没找到则创建)
|
||||
load_game: function(o_agent, gameid, gamename, minroomcode, maxroomcode, seatcount, makewar, modename){
|
||||
var idx = cls_youle_agent_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_agent_game.new(o_agent, gameid, idx, gamename, minroomcode, maxroomcode, seatcount, makewar, modename);
|
||||
o_agent.games[idx] = o_game;
|
||||
} else {
|
||||
o_game.idx = idx;
|
||||
o_game.gamename = gamename;
|
||||
o_game.minroomcode = minroomcode;
|
||||
o_game.maxroomcode = maxroomcode;
|
||||
o_game.seatcount = seatcount;
|
||||
o_game.makewar = makewar;
|
||||
o_game.modename = modename;
|
||||
}
|
||||
return o_game;
|
||||
},
|
||||
|
||||
//查找游戏
|
||||
find_game: function(o_agent, gameid){
|
||||
var idx = cls_youle_agent_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;
|
||||
},
|
||||
|
||||
//载入玩家(没找到则创建)
|
||||
load_player: function(o_agent, playerid, roomcard, bean, openid, unionid, nickname, avatar, sex, playertype, invitecode,sign){
|
||||
var idx = cls_youle_agent_agent.aryidx_player(playerid);
|
||||
if (o_agent.players.length <= idx) {
|
||||
o_agent.players.length = idx + 1;
|
||||
}
|
||||
var o_player = o_agent.players[idx];
|
||||
if (!o_player) {
|
||||
//不存在则创建
|
||||
o_player = cls_youle_agent_player.new(o_agent, playerid, roomcard, bean, openid, unionid, nickname, avatar, sex, playertype, invitecode);
|
||||
o_agent.players[idx] = o_player;
|
||||
} else {
|
||||
//更新玩家信息
|
||||
o_player.roomcard = roomcard;
|
||||
o_player.bean = bean;
|
||||
o_player.openid = openid;
|
||||
o_player.unionid = unionid;
|
||||
o_player.nickname = nickname;
|
||||
o_player.avatar = avatar;
|
||||
o_player.sex = sex;
|
||||
o_player.playertype = playertype;
|
||||
o_player.invitecode = invitecode;
|
||||
}
|
||||
return o_player;
|
||||
},
|
||||
|
||||
//查找玩家
|
||||
find_player: function(o_agent, playerid){
|
||||
var idx = cls_youle_agent_agent.aryidx_player(playerid);
|
||||
if (idx == -1){
|
||||
return null;
|
||||
}
|
||||
if (o_agent.players.length <= idx){
|
||||
return null;
|
||||
}
|
||||
if (!o_agent.players[idx]){
|
||||
return null;
|
||||
}
|
||||
if (o_agent.players[idx].playerid != playerid){
|
||||
return null;
|
||||
}
|
||||
return o_agent.players[idx];
|
||||
},
|
||||
|
||||
//清除玩家
|
||||
clear_player: function(o_agent, playerid){
|
||||
var idx = cls_youle_agent_agent.aryidx_player(playerid);
|
||||
if (idx == -1){
|
||||
return;
|
||||
}
|
||||
if (o_agent.players.length <= idx){
|
||||
return;
|
||||
}
|
||||
if (!o_agent.players[idx]){
|
||||
return;
|
||||
}
|
||||
if (o_agent.players[idx].playerid != playerid){
|
||||
return;
|
||||
}
|
||||
o_agent.players[idx] = null;
|
||||
},
|
||||
|
||||
//计算玩家的数组下标
|
||||
aryidx_player: function(playerid){
|
||||
var idx = parseInt(playerid) - 100001;
|
||||
if (isNaN(idx)){
|
||||
return -1;
|
||||
}
|
||||
return idx;
|
||||
},
|
||||
|
||||
//机器人昵称、头像
|
||||
get_robotinfo: function(o_agent){
|
||||
var db_callback_robot_nickname = function(dbdata){
|
||||
o_agent.robot_nicknamelist = [];
|
||||
for (var i = 0; i < dbdata.length; i++) {
|
||||
o_agent.robot_nicknamelist.push(dbdata[i].play_nickname);
|
||||
}
|
||||
}
|
||||
var sql1 = "select v1.play_nickname 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 '%游客%') " +
|
||||
"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();
|
||||
Reference in New Issue
Block a user