目录结构调整

This commit is contained in:
2026-02-04 23:47:45 +08:00
parent 6938c911c3
commit 6b22238c6e
8780 changed files with 15333 additions and 574 deletions

View 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 = "http://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();

View File

@@ -0,0 +1,49 @@
///////////////////////////////////////////////////
/////// cls_youle_agent_export: 输出接口 ///////
///////////////////////////////////////////////////
var cls_youle_agent_export = cls_youle_agent_export || {
new: function() {
var exp = {};
//购买房卡或房卡充值
exp.buy_topup = function(agentid, playerid, type, roomcard, change){
//检查代理商id是否存在
var o_agent = youle_agent.agents.method.find_agent(agentid);
if (!o_agent) {
return;
};
//检查玩家是否存在
var o_player = o_agent.method.find_player(playerid);
if (!o_player) {
return;
};
//修改房卡数量
o_player.method.update_roomcard(type, roomcard, change);
}
//购买豆豆或豆豆充值
exp.buy_topup_bean = function(agentid, playerid, type, bean, change){
//检查代理商id是否存在
var o_agent = youle_agent.agents.method.find_agent(agentid);
if (!o_agent) {
return;
};
//检查玩家是否存在
var o_player = o_agent.method.find_player(playerid);
if (!o_player) {
return;
};
//修改豆豆数量
o_player.method.update_bean(type, bean, change);
}
return exp;
}
}
//对内输出接口
youle_agent.export = cls_youle_agent_export.new();

View File

@@ -0,0 +1,270 @@
///////////////////////////////////////////////////
////////// cls_youle_agent_game: 游戏 //////////
///////////////////////////////////////////////////
var cls_youle_agent_game = cls_youle_agent_game || {
//构造函数
new: function(o_agent, gameid, gameidx, gamename, minroomcode, maxroomcode, seatcount, makewar, modename){
var game = {};
//基本信息
game.o_agent = o_agent; //代理商
game.gameid = gameid; //游戏id
game.idx = gameidx; //游戏的数组下标
game.gamename = gamename; //游戏名称
game.minroomcode = minroomcode; //最小房号
game.maxroomcode = maxroomcode; //最大房号
game.seatcount = seatcount; //房间内的座位数量
game.makewar = makewar; //达成开战条件的人数
game.modename = modename; //服务器模块名称
game.online_p = 0; //在线玩家数
game.online_timer = null; //统计在线人数的定时器
game.online_day = null; //当前日期
game.online_max = null; //当天最大在线人数
game.online_maxtime = null; //当天最大在线人数出现的时间
game.room_day = null; //当前日期
game.room_max = null; //当天最大房间数
game.room_maxtime = null; //当天最大房间数出现的时间
//房号列表
game.roomcodes = [];
game.roomcodes.length = maxroomcode - minroomcode + 1;
//房号在数组中的位置
game.roomaryid = [];
game.roomaryid.length = maxroomcode - minroomcode + 1;
for (var i = 0; i < game.roomcodes.length; i++) {
game.roomcodes[i] = game.minroomcode + i;
game.roomaryid[i] = i;
};
//房号列表的有效长度
game.roomcodesvalidlen = maxroomcode - minroomcode + 1;
//房间服务器列表
game.servers = [];
cls_youle_agent_game.get_roomserverlist(game);
//比赛列表
game.matchlist = cls_youle_agent_matchlist.new(game);
//统计在线人数的定时器
game.online_timer = setInterval(
function(){
var sql = "insert into agent_game_online(aggo_agentid, aggo_gameid, aggo_datetime, aggo_onlineplayer, aggo_onlineroom) values(?,?,?,?,?);";
youle_agent.mysql.execsql("execsql", sql, [game.o_agent.agentid, game.gameid, min_now(), game.online_p, game.maxroomcode - game.minroomcode + 1 - game.roomcodesvalidlen]);
}, 1000 * 60 * 10);
//方法
game.method = {};
//获取房号对应的房间服务器地址和端口号
game.method.get_roomserver = function(roomcode){
return cls_youle_agent_game.get_roomserver(game, roomcode);
}
//随机获取新的房间号
game.method.new_roomcode = function(shortcode){
return cls_youle_agent_game.new_roomcode(game, shortcode);
}
//释放房号
game.method.free_roomcode = function(roomcode){
cls_youle_agent_game.free_roomcode(game, roomcode);
}
//在线人数变动
game.method.online_p_chang = function(change){
cls_youle_agent_game.online_p_chang(game, change);
}
//房间数量变动
game.method.roomcodesvalidlen_chang = function(change){
cls_youle_agent_game.roomcodesvalidlen_chang(game, change);
}
return game;
},
//获取房间服务器列表
get_roomserverlist: function(o_game){
var db_callback = function(dbdata){
for (var i = 0; i < dbdata.length; i++) {
var _roomserver = {};
_roomserver.minroomcode = parseInt(dbdata[i].minroomcode);
_roomserver.maxroomcode = parseInt(dbdata[i].maxroomcode);
_roomserver.server = dbdata[i].server;
_roomserver.tcpport = parseInt(dbdata[i].tcpport);
_roomserver.httpport = parseInt(dbdata[i].httpport);
o_game.servers.push(_roomserver);
}
};
var sql = " select aggr_minroomcode as minroomcode, "
+ " aggr_maxroomcode as maxroomcode, "
+ " aggr_server as server, "
+ " aggr_port_tcp as tcpport, "
+ " aggr_port_http as httpport "
+ " from agent_game_room "
+ " where aggr_agentid = ? and aggr_gameid = ?;";
youle_agent.mysql.execsql("opensql", sql, [o_game.o_agent.agentid, o_game.gameid], db_callback);
},
//获取房号对应的房间服务器地址和端口号
get_roomserver: function(o_game, roomcode){
var re = {};
for (var i = 0; i < o_game.servers.length; i++) {
if (roomcode >= o_game.servers[i].minroomcode && roomcode <= o_game.servers[i].maxroomcode){
re.server = o_game.servers[i].server;
re.tcpport = o_game.servers[i].tcpport;
re.httpport = o_game.servers[i].httpport;
re.minroomcode = o_game.servers[i].minroomcode;
re.maxroomcode = o_game.servers[i].maxroomcode;
return re;
}
}
re.server = o_game.o_agent.server;
re.tcpport = o_game.o_agent.tcpport;
re.httpport = o_game.o_agent.httpport;
re.minroomcode = o_game.minroomcode;
re.maxroomcode = o_game.maxroomcode;
return re;
},
//随机获取新的房号
new_roomcode: function(o_game, shortcode){
if (o_game.roomcodesvalidlen == 0){
return null;
}
//确定房号
var roomcode;
var idx;
if (shortcode){
if (shortcode < 100000){
//短号,优先分配短号相关的房间号
while (shortcode < 100000){
shortcode = shortcode * 10;
}
for (var i=1; i<9; i++){
roomcode = shortcode + i;
idx = o_game.roomaryid[roomcode - o_game.minroomcode];
if (idx < o_game.roomcodesvalidlen){
break;
} else {
roomcode = null;
idx = null;
}
}
} else {
//长号,取制定房号
roomcode = shortcode;
idx = o_game.roomaryid[roomcode - o_game.minroomcode];
}
}
//分配随机房间号
if (!roomcode){
for (var i=1; i<9; i++){
//在有效房号数组中随机数组下标
idx = min_random(0, o_game.roomcodesvalidlen - 1);
roomcode = o_game.roomcodes[idx];
//如果是123这样的房号则重新取房号1、2、3这样房号预留给短号
if (roomcode % 10 > 3 || roomcode % 10 < 1) {
break;
}
}
}
//将有效数组的最后一个房号与该房号互换位置
if (idx < o_game.roomcodesvalidlen - 1) {
var lastroomcode = o_game.roomcodes[o_game.roomcodesvalidlen - 1];
o_game.roomcodes[idx] = lastroomcode;
o_game.roomaryid[lastroomcode - o_game.minroomcode] = idx;
o_game.roomcodes[o_game.roomcodesvalidlen - 1] = roomcode;
o_game.roomaryid[roomcode - o_game.minroomcode] = o_game.roomcodesvalidlen - 1;
};
//有效数组长度减1
o_game.method.roomcodesvalidlen_chang(-1);
return roomcode;
},
//释放房号
free_roomcode: function(o_game, roomcode){
var idx = o_game.roomaryid[roomcode - o_game.minroomcode];
if (idx > o_game.roomcodesvalidlen){
var lastroomcode = o_game.roomcodes[o_game.roomcodesvalidlen];
o_game.roomcodes[idx] = lastroomcode;
o_game.roomaryid[lastroomcode - o_game.minroomcode] = idx;
o_game.roomcodes[o_game.roomcodesvalidlen] = roomcode;
o_game.roomaryid[roomcode - o_game.minroomcode] = o_game.roomcodesvalidlen;
o_game.method.roomcodesvalidlen_chang(1);
} else if (idx == o_game.roomcodesvalidlen){
o_game.method.roomcodesvalidlen_chang(1);
}
//如果是星星争霸场的房间则在星星争霸场中删除该房间
if (o_game.sharerooms_player){
min_ary_delval(o_game.sharerooms_player, roomcode, "roomcode");
}
if (o_game.sharerooms_system == roomcode){
min_ary_delval(o_game.sharerooms_system, roomcode, "roomcode");
}
},
//在线人数变动
online_p_chang: function(o_game, change){
o_game.online_p = o_game.online_p + change;
if (!o_game.online_max){
o_game.online_max = o_game.online_p;
o_game.online_day = min_day();
o_game.online_maxtime = min_now();
} else {
if (min_day() == o_game.online_day){ //同一天
if (o_game.online_p > o_game.online_max){
o_game.online_max = o_game.online_p;
o_game.online_maxtime = min_now();
}
} else { //不是同一天
//保存上一天的最大在线人数
var sql = "call cp_report_game_day(?,?,?,?,?,?);";
youle_agent.mysql.execsql("execsql", sql, [o_game.o_agent.agentid, o_game.gameid, o_game.online_day, 3, o_game.online_max, o_game.online_maxtime]);
o_game.online_max = o_game.online_p;
o_game.online_day = min_day();
o_game.online_maxtime = min_now();
}
}
},
//房间数量变动
roomcodesvalidlen_chang: function(o_game, change){
o_game.roomcodesvalidlen = o_game.roomcodesvalidlen + change;
//当前的房间数量
var roomcount = o_game.maxroomcode - o_game.minroomcode + 1 - o_game.roomcodesvalidlen;
//测试用
if (roomcount < 0){
console.log(min_now() + "房号管理错误|||||||||||||||||||||||| agentid:" + o_game.o_agent.agentid + ",gameid:" + o_game.gameid);
}
if (!o_game.room_max){
o_game.room_max = roomcount;
o_game.room_day = min_day();
o_game.room_maxtime = min_now();
} else {
if (min_day() == o_game.room_day){ //同一天
if (roomcount > o_game.room_max){
o_game.room_max = roomcount;
o_game.room_maxtime = min_now();
}
} else { //不是同一天
//保存上一天的最大房间数
var sql = "call cp_report_game_day(?,?,?,?,?,?);";
youle_agent.mysql.execsql("execsql", sql, [o_game.o_agent.agentid, o_game.gameid, o_game.room_day, 4, o_game.room_max, o_game.room_maxtime]);
o_game.room_max = roomcount;
o_game.room_day = min_day();
o_game.room_maxtime = min_now();
}
}
}
}

View File

@@ -0,0 +1,127 @@
///////////////////////////////////////////////////
/////// cls_youle_agent_import: 输入接口 ///////
///////////////////////////////////////////////////
var cls_youle_agent_import = cls_youle_agent_import || {
new: function() {
var imp = {};
//创建房间时根据roomtype获取需要的房卡数量
imp.createroom_needroomcard = function(o_game, roomtype){
var o_game_config = youle_agent.app.youle_platform.config.method.get_paravalue("game_config", o_game.o_agent.agentid, o_game.gameid);
var mod_game = youle_agent.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_agent.app.youle_platform.config.method.get_paravalue("game_config", o_game.o_agent.agentid, o_game.gameid);
var mod_game = youle_agent.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_agent.app.youle_platform.config.method.get_paravalue("game_config", o_game.o_agent.agentid, o_game.gameid);
var mod_game = youle_agent.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获取房间类型是否是元宝房间
imp.createroom_roommode = function(o_game, roomtype){
var o_game_config = youle_agent.app.youle_platform.config.method.get_paravalue("game_config", o_game.o_agent.agentid, o_game.gameid);
var mod_game = youle_agent.app[o_game.modename];
if (mod_game.export){
if (mod_game.export.createroom_roommode){
return mod_game.export.createroom_roommode(roomtype, o_game_config);
}
}
if (mod_game.createroom_roommode){
return mod_game.createroom_roommode(roomtype, o_game_config);
}
return 0;
}
//创建房间时根据roomtype获取星星场倍数
imp.createroom_beanmult = function(o_game, roomtype){
var o_game_config = youle_agent.app.youle_platform.config.method.get_paravalue("game_config", o_game.o_agent.agentid, o_game.gameid);
var mod_game = youle_agent.app[o_game.modename];
if (mod_game.export){
if (mod_game.export.createroom_beanmult){
return mod_game.export.createroom_beanmult(roomtype, o_game_config);
}
}
if (mod_game.createroom_beanmult){
return mod_game.createroom_beanmult(roomtype, o_game_config);
}
return 1;
}
//房间内的玩家是否需要准备
imp.createroom_needprepare = function(o_game, roomtype){
var o_game_config = youle_agent.app.youle_platform.config.method.get_paravalue("game_config", o_game.o_agent.agentid, o_game.gameid);
var mod_game = youle_agent.app[o_game.modename];
if (mod_game.export){
if (mod_game.export.createroom_needprepare){
return mod_game.export.createroom_needprepare(roomtype, o_game_config);
}
}
if (mod_game.createroom_needprepare){
return mod_game.createroom_needprepare(roomtype, o_game_config);
}
return 0;
}
//加入房间时根据roomtype获取需要的房卡数量如果不需要房卡则需要返回0
imp.joinroom_needroomcard = function(o_game, roomtype){
var o_game_config = youle_agent.app.youle_platform.config.method.get_paravalue("game_config", o_game.o_agent.agentid, o_game.gameid);
var mod_game = youle_agent.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;
}
return imp;
}
}
//内部输入接口
youle_agent.import = cls_youle_agent_import.new();

View 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;
}
}

View File

@@ -0,0 +1,426 @@
///////////////////////////////////////////////////
///////// cls_youle_agent_player: 玩家 /////////
///////////////////////////////////////////////////
var cls_youle_agent_player = cls_youle_agent_player || {
//构造函数
new: function(o_agent, playerid, roomcard, bean, openid, unionid, nickname, avatar, sex, playertype, invitecode) {
var player = {};
//基本信息
player.o_agent = o_agent; //代理商
player.playerid = playerid; //玩家id
player.roomcard = roomcard; //房卡数量
player.bean = bean; //星星数量
player.openid = openid;
player.unionid = unionid;
player.nickname = nickname;
player.avatar = avatar;
player.sex = sex;
player.playertype = playertype; //0:普通用户 1:vip开房不扣房卡
player.invitecode = invitecode; //绑定的邀请码
player.freetimer = null; //释放玩家的定时器
//登录的游戏列表
player.gameinfo = [];
//方法
player.method = {};
//登录游戏
player.method.login_game = function(o_game, ip, conmode, fromid, machineid, machineroom){
cls_youle_agent_player.login_game(player, o_game, ip, conmode, fromid, machineid, machineroom);
}
//获取玩家某个游戏的游戏信息
player.method.get_gameinfo = function(o_game){
return cls_youle_agent_player.get_gameinfo(player, o_game);
}
//修改玩家房卡数量
player.method.update_roomcard = function(type, newroomcrad, change, memo){
cls_youle_agent_player.update_roomcard(player, type, newroomcrad, change, memo);
}
//修改玩家豆豆数量
player.method.update_bean = function(type, newbean, change, push, showrebate){
cls_youle_agent_player.update_bean(player, type, newbean, change, push, showrebate);
}
//打开释放玩家的定时器
player.method.open_free_timer = function(){
cls_youle_agent_player.open_free_timer(player);
}
//关闭释放玩家的定时器
player.method.close_free_timer = function(){
cls_youle_agent_player.close_free_timer(player);
}
return player;
},
//登录游戏
login_game: function(o_player, o_game, ip, conmode, fromid, machineid, machineroom){
if (o_player.gameinfo.length <= o_game.idx) {
o_player.gameinfo.length = o_game.idx + 1;
}
var _game_info = o_player.gameinfo[o_game.idx];
if (!_game_info){
//初始化游戏信息
_game_info = {};
_game_info.conmode = conmode;
_game_info.fromid = fromid;
_game_info.fromidtime = (new Date()).getTime();
_game_info.ip = ip;
_game_info.machineid = machineid;
_game_info.machineroom = machineroom;
_game_info.roomcode = null;
o_player.gameinfo[o_game.idx] = _game_info;
//统计在线玩家数
o_game.method.online_p_chang(1);
} else {
//踢原有连接下线
// if (fromid && o_game.gameid != "G2hw0ubng0zcoI0r4mx3H2yr4GejidwO"){
if (fromid){
if (_game_info.conmode == "tcp" && _game_info.fromid && _game_info.fromid != fromid){
var msg = {};
msg.app = youle_agent.app.appname;
msg.route = youle_agent.routename;
msg.rpc = "kick_offline";
msg.conmode = _game_info.conmode;
msg.fromid = _game_info.fromid;
msg.data={};
msg.data.fromOther = 0;
youle_agent.app.SendPack(msg);
//测试用
// var agent_kick_offline = {};
// agent_kick_offline.agentid = o_game.o_agent.agentid;
// agent_kick_offline.gameid = o_game.gameid;
// agent_kick_offline.playerid = o_player.playerid;
// agent_kick_offline.oldfromid = _game_info.fromid;
// agent_kick_offline.oldtime = _game_info.fromidtime;
// agent_kick_offline.oldmachineid = _game_info.machineid;
// agent_kick_offline.oldmachineroom = _game_info.machineroom;
// agent_kick_offline.newfromid = fromid;
// agent_kick_offline.newtime = (new Date()).getTime();
// agent_kick_offline.newmachineid = machineid;
// agent_kick_offline.newmachineroom = machineroom;
// console.log(min_now() + " agentserver kick_offline");
// console.log(agent_kick_offline);
}
//更新游戏信息
_game_info.conmode = conmode;
_game_info.fromid = fromid;
_game_info.fromidtime = (new Date()).getTime();
_game_info.ip = ip;
}
}
//更新tcp连接列表
if (conmode == "tcp"){
youle_agent.tcps.method.load_tcp(fromid, o_player, o_game.idx);
}
},
//获取玩家某个游戏的游戏信息
get_gameinfo: function(o_player, o_game){
if (o_player.gameinfo.length <= o_game.idx){
return null;
}
return o_player.gameinfo[o_game.idx];
},
//修改玩家房卡数量
update_roomcard: function(o_player, type, newroomcard, change, memo){
var roomCardName = youle_agent.app.youle_platform.config.method.get_paravalue("roomCardName", o_player.o_agent.agentid);
if (!roomCardName){
roomCardName = "房卡";
}
o_player.roomcard = newroomcard;
//通知游戏前端
for (var i = 0; i < o_player.gameinfo.length; i++) {
var _game_info = o_player.gameinfo[i];
if (_game_info){
if (_game_info.roomcode){
//获取房号对应的房间服务器地址
var o_game = o_player.o_agent.games[i];
if (!o_game) {
continue;
}
var o_roomserver = o_game.method.get_roomserver(_game_info.roomcode);
//通过房间服务器发送修改房卡的消息
var msg = {};
msg.app = youle_agent.app.appname;
msg.route = youle_agent.app.youle_room.routename;
msg.rpc = "update_roomcard";
msg.data = {};
msg.data.agentid = o_player.o_agent.agentid;
msg.data.playerid = o_player.playerid;
msg.data.gameid = o_game.gameid;
msg.data.roomcode = _game_info.roomcode;
msg.data.roomcard = newroomcard;
// msg.data.type = type;
// msg.data.change = change;
switch(type){
case 0:
msg.data.text = "扣除" + roomCardName + "" + change;
if (memo){
msg.data.text = memo + msg.data.text;
}
break;
case 1:
msg.data.text = "购买" + roomCardName + "" + change;
break;
case 2:
msg.data.text = roomCardName + "充值:" + change;
break;
case 3:
msg.data.text = "领取" + roomCardName + "奖励:" + change;
break;
case 4:
msg.data.text = "修改" + roomCardName + "" + change;
break;
}
if (o_roomserver.server == o_player.o_agent.server){
//房间服务器与代理商服务器是同一地址
youle_agent.app.youle_room[msg.rpc](msg);
msg.data.issameserver = 1;
} else {
//房间服务器与代理商服务器不是同一地址
msg.data.issameserver = 0;
var cfg = {};
cfg.url = "http://" + o_roomserver.server + ":" + o_roomserver.httpport + "/index.html";
cfg.type = "POST";
cfg.data = JSON.stringify(msg);
cfg.success = function(str){};
cfg.error = function(str){};
min_http(cfg);
}
} else if (_game_info.conmode && _game_info.fromid){
var msg = {};
msg.app = youle_agent.app.appname;
msg.route = youle_agent.routename;
msg.rpc = "update_roomcard";
msg.conmode = _game_info.conmode;
msg.fromid = _game_info.fromid;
msg.data = {};
msg.data.roomcard = newroomcard;
// msg.data.type = type;
// msg.data.change = change;
switch(type){
case 0:
msg.data.text = "扣除" + roomCardName + "" + change;
if (memo){
msg.data.text = memo + msg.data.text;
}
break;
case 1:
msg.data.text = "购买" + roomCardName + "" + change;
break;
case 2:
msg.data.text = roomCardName + "充值:" + change;
break;
case 3:
msg.data.text = "领取" + roomCardName + "奖励:" + change;
break;
case 4:
msg.data.text = "修改" + roomCardName + "" + change;
break;
}
youle_agent.app.SendPack(msg);
}
}
}
},
//修改玩家豆豆数量
update_bean: function(o_player, type, newbean, change, push, showrebate){
o_player.bean = parseInt(newbean);
var starName = youle_agent.app.youle_platform.config.method.get_paravalue("starName", o_player.o_agent.agentid);
if (!starName){
starName = "星星";
}
//通知游戏前端
for (var i = 0; i < o_player.gameinfo.length; i++) {
var _game_info = o_player.gameinfo[i];
if (_game_info){
if (_game_info.roomcode){
//获取房号对应的房间服务器地址
var o_game = o_player.o_agent.games[i];
var o_roomserver = o_game.method.get_roomserver(_game_info.roomcode);
//通过房间服务器发送修改星星的消息
var msg = {};
msg.app = youle_agent.app.appname;
msg.route = youle_agent.app.youle_room.routename;
msg.rpc = "update_bean";
msg.data = {};
msg.data.agentid = o_player.o_agent.agentid;
msg.data.playerid = o_player.playerid;
msg.data.gameid = o_game.gameid;
msg.data.roomcode = _game_info.roomcode;
msg.data.bean = parseInt(newbean);
msg.data.type = type;
switch(type){
case 0: //游戏输赢豆豆
var _text = "";
if (!showrebate){
if (change > 0){
_text = "游戏赢取" + starName + "" + change;
} else if (change < 0) {
_text = "游戏扣除" + starName + "" + change;
}
var _showrebate_setting = youle_agent.app.youle_platform.config.method.get_paravalue("shieldShowRebate", o_player.o_agent.agentid);
if (!_showrebate_setting){
if (push > 0){
_text = _text + " 获取" + starName + "房间费:" + push;
} else if (push < 0) {
_text = _text + " 扣除" + starName + "房间费:" + push;
}
}
} else if (showrebate == 1){
if (change + push > 0){
_text = "游戏赢取" + starName + "" + (change + push);
} else if (change + push < 0) {
_text = "游戏扣除" + starName + "" + (change + push);
}
} else if (showrebate == 2){
var _showrebate_setting = youle_agent.app.youle_platform.config.method.get_paravalue("shieldShowRebate", o_player.o_agent.agentid);
if (!_showrebate_setting){
if(push){
_text = "扣除房间费:" + push + starName;
}
}
}
msg.data.text = _text;
break;
case 1:
msg.data.text = "购买" + starName + "" + change;
break;
case 2:
msg.data.text = starName + "充值:" + change;
break;
case 3:
break;
case 4:
// msg.data.text = "扣除发送系统消息费用:" + change + starName;
msg.data.text="";
break;
case 5:
msg.data.text = "扣除比赛报名费用:" + push + starName;
break;
//需要语音提示的房主抽成金币到账
case 6:
//msg.data.text = "扣除比赛报名费用:" + push + starName;
break;
case 7:
if(change > 0){
msg.data.text = "获赠" + change + starName;
}else{
msg.data.text = "送出" + Math.abs(change) + starName;
}
break;
}
if (o_roomserver.server == o_player.o_agent.server){
//房间服务器与代理商服务器是同一地址
youle_agent.app.youle_room[msg.rpc](msg);
} else {
//房间服务器与代理商服务器不是同一地址
var cfg = {};
cfg.url = "http://" + o_roomserver.server + ":" + o_roomserver.httpport + "/index.html";
cfg.type = "POST";
cfg.data = JSON.stringify(msg);
cfg.success = function(str){};
cfg.error = function(str){};
min_http(cfg);
}
} else if (_game_info.conmode && _game_info.fromid){
var msg = {};
msg.app = youle_agent.app.appname;
msg.route = youle_agent.routename;
msg.rpc = "update_bean";
msg.conmode = _game_info.conmode;
msg.fromid = _game_info.fromid;
msg.data = {};
msg.data.bean = parseInt(newbean);
msg.data.type=type;
switch(type){
case 0: //游戏输赢豆豆
var _text = "";
if (!showrebate){
if (change > 0){
_text = "游戏赢取" + starName + "" + change;
} else if (change < 0) {
_text = "游戏扣除" + starName + "" + change;
}
var _showrebate_setting = youle_agent.app.youle_platform.config.method.get_paravalue("shieldShowRebate", o_player.o_agent.agentid);
if(!_showrebate_setting){
if (push > 0){
_text = _text + " 获取" + starName + "房间费:" + push;
} else if (push < 0) {
_text = _text + " 扣除" + starName + "房间费:" + push;
}
}
} else if (showrebate == 1){
if (change + push > 0){
_text = "游戏赢取" + starName + "" + (change + push);
} else if (change + push < 0) {
_text = "游戏扣除" + starName + "" + (change + push);
}
} else if (showrebate == 2){
var _showrebate_setting = youle_agent.app.youle_platform.config.method.get_paravalue("shieldShowRebate", o_player.o_agent.agentid);
if (!_showrebate_setting){
if(push){
_text = "扣除房间费:" + push + starName;
}
}
}
msg.data.text = _text;
break;
case 1:
msg.data.text = "购买" + starName + "" + change;
break;
case 2:
msg.data.text = starName + "充值:" + change;
break;
case 3:
msg.data.text = "领取" + starName +"奖励:" + change;
break;
case 7:
if(change > 0){
msg.data.text = "获赠" + change + starName;
}else{
msg.data.text = "送出" + Math.abs(change) + starName;
}
break;
}
youle_agent.app.SendPack(msg);
}
}
}
},
//打开释放玩家的定时器
open_free_timer: function(o_player){
var do_freeplayer = function(){
o_player.freetimer = null;
o_player.o_agent.players[o_player.playerid - 100001] = null;
}
if (!o_player.advanced){
//4小时后释放玩家
o_player.freetimer = min_ontimeout(do_freeplayer, 7 * 24 * 60 * 60 * 1000);
}
},
//关闭释放玩家的定时器
close_free_timer: function(o_player){
if (o_player.freetimer){
min_closetime(o_player.freetimer);
o_player.freetimer = null;
}
}
}

View File

@@ -0,0 +1,120 @@
///////////////////////////////////////////////////
//////////////cls_youle_agent_tcplist: tcp连接列表类///////////
///////////////////////////////////////////////////
var cls_youle_agent_tcplist = cls_youle_agent_tcplist || {
new: function() {
var tcplist = {};
tcplist.list = [];
//方法
tcplist.method = {};
//载入tcp连接
tcplist.method.load_tcp = function(str_tcpid, o_player, gameidx){
return cls_youle_agent_tcplist.load_tcp(tcplist, str_tcpid, o_player, gameidx);
}
//查找tcp连接
tcplist.method.find_tcp = function(str_tcpid){
return cls_youle_agent_tcplist.find_tcp(tcplist, str_tcpid);
}
//删除tcp连接
tcplist.method.delete_tcp = function(str_tcpid){
return cls_youle_agent_tcplist.delete_tcp(tcplist, str_tcpid);
}
return tcplist;
},
//载入tcp连接
load_tcp: function(o_tcplsit, str_tcpid, o_player, gameidx){
var idx = cls_youle_agent_tcplist.aryidx(str_tcpid);
if (idx == -1){
return null;
}
if (o_tcplsit.list.length <= idx){
o_tcplsit.list.length = idx + 1;
}
var old_tcp = o_tcplsit.list[idx];
if (old_tcp){
var _player = old_tcp.o_player;
if (_player.playerid != o_player.playerid){
var _gameidx = old_tcp.gameidx;
if (_player.gameinfo[_gameidx]){
if (_player.gameinfo[_gameidx].roomcode){
_player.gameinfo[_gameidx].ip = null;
_player.gameinfo[_gameidx].conmode = null;
_player.gameinfo[_gameidx].fromid = null;
} else {
//如果不在房间内
_player.gameinfo[_gameidx] = null;
//判断是否要释放玩家
var freeflag = true;
for (var m = 0; m < _player.gameinfo.length; m++) {
if (_player.gameinfo[m]){
freeflag = false;
break;
}
}
if (freeflag){
// _player.o_agent.players[_player.playerid - 100001] = null;
_player.method.open_free_timer();
}
//统计在线玩家数
var o_game = _player.o_agent.games[_gameidx];
if (o_game){
o_game.method.online_p_chang(-1);
}
}
}
}
}
var new_tcp = {};
new_tcp.tcpid = str_tcpid;
new_tcp.o_player = o_player;
new_tcp.gameidx = gameidx;
o_tcplsit.list[idx] = new_tcp;
o_player.method.close_free_timer();
return new_tcp;
},
//查找tcp连接
find_tcp: function(o_tcplsit, str_tcpid){
var idx = cls_youle_agent_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_agent_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_agent.tcps = cls_youle_agent_tcplist.new();

View File

@@ -0,0 +1,854 @@
//////////////////////////////////////////////////////////////////
//////////////////////////游戏平台服务器//////////////////////////
//////////////////////////////////////////////////////////////////
//rpc
min_loadJsFile("youle/server_agent/rpc.js", function(){
//tcp连接
min_loadJsFile("youle/server_agent/class.tcplist.js", function(){
//运营商
min_loadJsFile("youle/server_agent/class.agent.js", function(){
//游戏
min_loadJsFile("youle/server_agent/class.game.js", function(){
//玩家
min_loadJsFile("youle/server_agent/class.player.js", function(){
//比赛
min_loadJsFile("youle/server_agent/class.match.js", function(){
//对内的输入接口类
min_loadJsFile("youle/server_agent/class.import.js", function(){
//对内的输出接口类
min_loadJsFile("youle/server_agent/class.export.js", function(){
});
});
});
});
});
});
});
});
var youle_agent = youle_agent || cls_mod.new("youle_agent", "agent", youle_app);
//运营商列表
youle_agent.agents = null;
//tcp连接
youle_agent.tcps = null;
//mysql操作类
youle_agent.mysql = cls_mysql.new("http://ylyxdata.daoqi88.cn/mysql.php", youle_agent.app.SendPack);
youle_agent.mysql_grade = cls_mysql.new("http://ylyxdata.daoqi88.cn/mysql_grade.php", youle_agent.app.SendPack);
youle_agent.mysql_agent = cls_mysql.new("http://ylyxdata.daoqi88.cn/mysql_agent.php", youle_agent.app.SendPack);
//对内的输入接口类(需要的外部接口)
youle_agent.import = null;
//对内输出接口
youle_agent.export = null;
//比赛
youle_agent.matchs = [];
//服务器id
youle_agent.youleid = min_randomChar(32);
//手机验证码列表
youle_agent.phonecodes = [];
var blacknamelist = [
"oLVKis2bsKkiHY1435uNiBwJaz7w",
"oLVKisy7GuH1C4emgrF8A2FVcumk", //11247500bA05haB0d9ZC0fwGD09Q2OA30insbQ薄情少年葬空城
"oLVKis_nxA6uXlHvUaFK-73WZZms", //11177100bA05haB0d9ZC0fwGD09Q2OA30insbQ古月
"oLVKiszvCtvX02MbiWYZju2ilb4s", //11228900bA05haB0d9ZC0fwGD09Q2OA30insbQ么么哒
"oLVKisx4CHjrLLNyaffo3kPmfejo", //11311900bA05haB0d9ZC0fwGD09Q2OA30insbQ情售.!
"oLVKisy9uOS-VRWNEt1gaPrZuIhI", //11420400bA05haB0d9ZC0fwGD09Q2OA30insbQ痛彻心扉
"oLVKis-lZIxgdWSmMeBTCmB6IyD8", //11379000bA05haB0d9ZC0fwGD09Q2OA30insbQ百合
"oLVKis5ctLEyEYn3_2l0e0QGtM0A", //11452200bA05haB0d9ZC0fwGD09Q2OA30insbQ饿了又胖了
"oLVKis3LxiKbR5TopsKwUagsOqcQ" //11424800bA05haB0d9ZC0fwGD09Q2OA30insbQ奔波儿霸
];
//获取星星争霸场玩家房间数量
youle_agent.get_share_room_count = 50;
// //代理后台2.0接口输出日志标志
// youle_agent.showlog_readdata = 0;
// //代理后台2.0接口定时器
// youle_agent.readdata_timer = min_ontime(
// function(){
// //充房卡充星星
// var update_gamedb_roomcard = function(agentid, playerid, changeroomcard, changebean, opttype, optid){
// var db_callback_game1 = function(dbdata){
// if (dbdata[0].result == 0){
// var log = {};
// switch(parseInt(opttype)){
// case 1: //购买房卡
// youle_agent.export.buy_topup(agentid, playerid, 1, parseInt(dbdata[0].play_roomcard), changeroomcard);
// log.m = "玩家购卡成功";
// break;
// case 2: //代理转卡
// youle_agent.export.buy_topup(agentid, playerid, 2, parseInt(dbdata[0].play_roomcard), changeroomcard);
// log.m = "代理充卡成功";
// break;
// case 3: //索要房卡
// youle_agent.export.buy_topup(agentid, playerid, 2, parseInt(dbdata[0].play_roomcard), changeroomcard);
// log.m = "玩家索卡成功";
// break;
// case 11: //购买星星
// youle_agent.export.buy_topup_bean(agentid, playerid, 1, parseInt(dbdata[0].play_bean), changebean);
// log.m = "玩家购买星星成功";
// break;
// case 12: //代理转星星
// youle_agent.export.buy_topup_bean(agentid, playerid, 2, parseInt(dbdata[0].play_bean), changebean);
// log.m = "代理充值星星成功";
// break;
// case 13: //索要星星
// youle_agent.export.buy_topup_bean(agentid, playerid, 2, parseInt(dbdata[0].play_bean), changebean);
// log.m = "玩家索要星星成功";
// break;
// }
// log.id = optid;
// log.type = opttype;
// log.agentid = agentid;
// log.playerid = playerid;
// log.changeroomcard = changeroomcard;
// log.changebean = changebean;
// log.newroomcard = dbdata[0].play_roomcard;
// log.newbean = dbdata[0].play_bean;
// log.time = min_now();
// if (youle_agent.showlog_readdata){
// console.log(log);
// }
// var sql_agent = "update ct_user_process_log set is_process = is_process + 1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// if (youle_agent.showlog_readdata){
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:1");
// }
// });
// } else {
// var log = {};
// switch(parseInt(opttype)){
// case 1: //购买房卡
// log.m = "玩家购卡失败";
// break;
// case 2: //代理转卡
// log.m = "代理充卡失败";
// break;
// case 3: //索要房卡
// log.m = "玩家索卡失败";
// break;
// case 11: //购买星星
// log.m = "玩家购买星星失败";
// break;
// case 12: //代理转星星
// log.m = "代理充值星星失败";
// break;
// case 13: //索要星星
// log.m = "玩家索要星星失败";
// break;
// }
// log.id = optid;
// log.type = opttype;
// log.agentid = agentid;
// log.playerid = playerid;
// log.changeroomcard = changeroomcard;
// log.changebean = changebean;
// log.time = min_now();
// log.dbdata = dbdata;
// console.log(log);
// var sql_agent = "update ct_user_process_log set is_process = -1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:-1");
// });
// }
// }
// var sql_game = "call cp_sales2_player_topup(?,?,?,?)";
// youle_agent.mysql.execsql("opensql", sql_game, [agentid, playerid, changeroomcard, changebean], db_callback_game1);
// }
// //玩家绑定邀请码
// var update_gamedb_bindinginvitecode = function(agentid, unionid, invitecode, optid){
// var db_callback_game2 = function(dbdata){
// if (dbdata[0].result == 0){
// var log = {};
// log.m = "玩家绑定邀请码成功";
// log.id = optid;
// log.agentid = agentid;
// log.unionid = unionid;
// log.invitecode = invitecode;
// log.time = min_now();
// if (youle_agent.showlog_readdata){
// console.log(log);
// }
// var sql_agent = "update ct_user_process_log set is_process = is_process + 1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// if (youle_agent.showlog_readdata){
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:1");
// }
// });
// } else {
// var log = {};
// log.m = "玩家绑定邀请码失败";
// log.id = optid;
// log.agentid = agentid;
// log.unionid = unionid;
// log.invitecode = invitecode;
// log.time = min_now();
// log.dbdata = dbdata;
// console.log(log);
// var sql_agent = "update ct_user_process_log set is_process = -1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:-1");
// });
// }
// }
// var sql_game = "call cp_sales2_player_bindinginvitecode(?,?,?)";
// youle_agent.mysql.execsql("opensql", sql_game, [agentid, unionid, invitecode], db_callback_game2);
// }
// //新代理
// var update_gamedb_newsalesman = function(agentid, channelid, salesid, salesinfo, optid){
// var db_callback_game3 = function(dbdata){
// if (dbdata[0].result == 0){
// var log = {};
// log.m = "新增代理成功";
// log.id = optid;
// log.agentid = agentid;
// log.salesid = salesid;
// log.salesinfo = salesinfo;
// log.time = min_now();
// if (youle_agent.showlog_readdata){
// console.log(log);
// }
// var sql_agent = "update ct_user_process_log set is_process = is_process + 1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// if (youle_agent.showlog_readdata){
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:1");
// }
// });
// } else {
// var log = {};
// log.m = "新增代理失败";
// log.id = optid;
// log.agentid = agentid;
// log.salesid = salesid;
// log.salesinfo = salesinfo;
// log.time = min_now();
// log.dbdata = dbdata;
// console.log(log);
// var sql_agent = "update ct_user_process_log set is_process = -1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:-1");
// });
// }
// }
// var o_salesinfo = JSON.parse(salesinfo);
// var sql_game = "call cp_sales2_new_salesman(?,?,?,?,?,?,?,?,?,?)";
// youle_agent.mysql.execsql("opensql", sql_game, [agentid, channelid, o_salesinfo.openid, o_salesinfo.unionid, o_salesinfo.nickname, o_salesinfo.avatar, o_salesinfo.sex, o_salesinfo.province, o_salesinfo.city, salesid], db_callback_game3);
// }
// //封禁代理
// var update_gamedb_disabledsales = function(agentid, salesid, optid){
// var db_callback_game4 = function(dbdata){
// if (dbdata[0].result == 0){
// var log = {};
// log.m = "封禁代理成功";
// log.id = optid;
// log.agentid = agentid;
// log.salesid = salesid;
// log.time = min_now();
// if (youle_agent.showlog_readdata){
// console.log(log);
// }
// var sql_agent = "update ct_user_process_log set is_process = is_process + 1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// if (youle_agent.showlog_readdata){
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:1");
// }
// });
// } else {
// var log = {};
// log.m = "封禁代理失败";
// log.id = optid;
// log.agentid = agentid;
// log.salesid = salesid;
// log.time = min_now();
// log.dbdata = dbdata;
// console.log(log);
// var sql_agent = "update ct_user_process_log set is_process = -1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:-1");
// });
// }
// }
// var sql_game = "call cp_sales2_salesman_disabled(?,?)";
// youle_agent.mysql.execsql("opensql", sql_game, [agentid, salesid], db_callback_game4);
// }
// //解封代理
// var update_gamedb_abledsales = function(agentid, salesid, optid){
// var db_callback_game5 = function(dbdata){
// if (dbdata[0].result == 0){
// var log = {};
// log.m = "解封代理成功";
// log.id = optid;
// log.agentid = agentid;
// log.salesid = salesid;
// log.time = min_now();
// if (youle_agent.showlog_readdata){
// console.log(log);
// }
// var sql_agent = "update ct_user_process_log set is_process = is_process + 1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// if (youle_agent.showlog_readdata){
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:1");
// }
// });
// } else {
// var log = {};
// log.m = "解封代理失败";
// log.id = optid;
// log.agentid = agentid;
// log.salesid = salesid;
// log.time = min_now();
// log.dbdata = dbdata;
// console.log(log);
// var sql_agent = "update ct_user_process_log set is_process = -1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:-1");
// });
// }
// }
// var sql_game = "call cp_sales2_salesman_abled(?,?)";
// youle_agent.mysql.execsql("opensql", sql_game, [agentid, salesid], db_callback_game5);
// }
// //解绑代理
// var update_gamedb_disbinding_sales = function(agentid, salesid, optid){
// var db_callback_game6 = function(dbdata){
// if (dbdata[0].result == 0){
// var log = {};
// log.m = "解绑代理成功";
// log.id = optid;
// log.agentid = agentid;
// log.salesid = salesid;
// log.time = min_now();
// if (youle_agent.showlog_readdata){
// console.log(log);
// }
// var sql_agent = "update ct_user_process_log set is_process = is_process + 1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// if (youle_agent.showlog_readdata){
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:1");
// }
// });
// } else {
// var log = {};
// log.m = "解绑代理失败";
// log.id = optid;
// log.agentid = agentid;
// log.salesid = salesid;
// log.time = min_now();
// log.dbdata = dbdata;
// console.log(log);
// var sql_agent = "update ct_user_process_log set is_process = -1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:-1");
// });
// }
// }
// var sql_game = "call cp_sales2_disbinding_sales(?,?)";
// youle_agent.mysql.execsql("opensql", sql_game, [agentid, salesid], db_callback_game6);
// }
// //解绑玩家
// var update_gamedb_disbinding_player = function(agentid, playerid, optid){
// var db_callback_game7 = function(dbdata){
// if (dbdata[0].result == 0){
// var log = {};
// log.m = "解绑玩家成功";
// log.id = optid;
// log.agentid = agentid;
// log.playerid = playerid;
// log.time = min_now();
// if (youle_agent.showlog_readdata){
// console.log(log);
// }
// var _o_agent = youle_agent.agents.method.find_agent(agentid);
// if (_o_agent){
// _o_player = _o_agent.method.find_player(playerid);
// if (_o_player){
// _o_player.invitecode = null;
// }
// }
// var sql_agent = "update ct_user_process_log set is_process = is_process + 1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// if (youle_agent.showlog_readdata){
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:1");
// }
// });
// } else {
// var log = {};
// log.m = "解绑玩家失败";
// log.id = optid;
// log.agentid = agentid;
// log.playerid = playerid;
// log.time = min_now();
// log.dbdata = dbdata;
// console.log(log);
// var sql_agent = "update ct_user_process_log set is_process = -1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:-1");
// });
// }
// }
// var sql_game = "call cp_sales2_disbinding_player(?,?)";
// youle_agent.mysql.execsql("opensql", sql_game, [agentid, playerid], db_callback_game7);
// }
// //封禁玩家
// var update_gamedb_disabledplayer = function(agentid, playerid, optid){
// var db_callback_game8 = function(dbdata){
// if (dbdata[0].result == 0){
// var log = {};
// log.m = "封禁玩家成功";
// log.id = optid;
// log.agentid = agentid;
// log.playerid = playerid;
// log.time = min_now();
// if (youle_agent.showlog_readdata){
// console.log(log);
// }
// var _o_agent = youle_agent.agents.method.find_agent(agentid);
// if (_o_agent){
// _o_player = _o_agent.method.find_player(playerid);
// if (_o_player){
// _o_player.state = 1;
// }
// }
// var sql_agent = "update ct_user_process_log set is_process = is_process + 1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// if (youle_agent.showlog_readdata){
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:1");
// }
// });
// } else {
// var log = {};
// log.m = "封禁玩家失败";
// log.id = optid;
// log.agentid = agentid;
// log.playerid = playerid;
// log.time = min_now();
// log.dbdata = dbdata;
// console.log(log);
// var sql_agent = "update ct_user_process_log set is_process = -1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:-1");
// });
// }
// }
// var sql_game = "call cp_sales2_player_disabled(?,?)";
// youle_agent.mysql.execsql("opensql", sql_game, [agentid, playerid], db_callback_game8);
// }
// //解封玩家
// var update_gamedb_abledplayer = function(agentid, playerid, optid){
// var db_callback_game9 = function(dbdata){
// if (dbdata[0].result == 0){
// var log = {};
// log.m = "解封玩家成功";
// log.id = optid;
// log.agentid = agentid;
// log.playerid = playerid;
// log.time = min_now();
// if (youle_agent.showlog_readdata){
// console.log(log);
// }
// var _o_agent = youle_agent.agents.method.find_agent(agentid);
// if (_o_agent){
// _o_player = _o_agent.method.find_player(playerid);
// if (_o_player){
// _o_player.state = 0;
// }
// }
// var sql_agent = "update ct_user_process_log set is_process = is_process + 1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// if (youle_agent.showlog_readdata){
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:1");
// }
// });
// } else {
// var log = {};
// log.m = "解封玩家失败";
// log.id = optid;
// log.agentid = agentid;
// log.playerid = playerid;
// log.time = min_now();
// log.dbdata = dbdata;
// console.log(log);
// var sql_agent = "update ct_user_process_log set is_process = -1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:-1");
// });
// }
// }
// var sql_game = "call cp_sales2_player_abled(?,?)";
// youle_agent.mysql.execsql("opensql", sql_game, [agentid, playerid], db_callback_game9);
// }
// //开通高新选项
// var update_gamedb_advanced = function(agentid, playerid, shortcode, advanced, desone, destwo, optid){
// var db_callback_game10 = function(dbdata){
// if (dbdata[0].result == 0){
// var log = {};
// log.m = "设置玩家短号成功";
// log.id = optid;
// log.agentid = agentid;
// log.playerid = playerid;
// log.shortcode = shortcode;
// log.advanced = advanced;
// log.desone = desone;
// log.destwo = destwo;
// log.time = min_now();
// if (youle_agent.showlog_readdata){
// console.log(log);
// }
// var o_agent = youle_agent.agents.method.find_agent(agentid);
// if (o_agent) {
// var o_player = o_agent.method.find_player(playerid);
// if (o_player){
// if (o_player.shortcode){
// o_agent.shortcodes[o_player.shortcode] = null;
// }
// o_player.advanced = _advanced;
// o_player.shortcode = _shortcode;
// o_player.desone = desone;
// o_player.destwo = destwo;
// }
// if (o_agent.shortcodes[_shortcode]){
// var old_playerid = o_agent.shortcodes[_shortcode].playerid;
// if (old_playerid != playerid){
// var o_oldplayer = o_agent.method.find_player(old_playerid);
// if (o_oldplayer){
// o_oldplayer.advanced = 0;
// o_oldplayer.shortcode = null;
// o_oldplayer.roomcodes = [];
// o_oldplayer.desone = null;
// o_oldplayer.destwo = null;
// }
// }
// }
// var o_shortcode = {};
// o_shortcode.shortcode = _shortcode;
// o_shortcode.playerid = playerid;
// o_agent.shortcodes[_shortcode] = o_shortcode;
// }
// var sql_agent = "update ct_user_process_log set is_process = is_process + 1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// if (youle_agent.showlog_readdata){
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:1");
// }
// });
// } else {
// var log = {};
// log.m = "设置玩家短号失败";
// log.id = optid;
// log.agentid = agentid;
// log.playerid = playerid;
// log.shortcode = shortcode;
// log.advanced = advanced;
// log.time = min_now();
// log.dbdata = dbdata;
// console.log(log);
// var sql_agent = "update ct_user_process_log set is_process = -1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:-1");
// });
// }
// }
// var _shortcode = parseInt(shortcode);
// var _advanced = parseInt(advanced);
// var sql_game = "call cp_game_player_advanced(?,?,?,?,?,?)";
// youle_agent.mysql.execsql("opensql", sql_game, [agentid, playerid, _advanced, _shortcode, desone, destwo], db_callback_game10);
// }
// //设置短号白名单
// var update_gamedb_whitelist = function(agentid, playerid, whitelist, optid){
// var db_callback_game11 = function(dbdata){
// if (dbdata[0].result == 0){
// var log = {};
// log.m = "设置短号白名单成功";
// log.id = optid;
// log.agentid = agentid;
// log.playerid = playerid;
// log.whitelist = whitelist;
// log.time = min_now();
// if (youle_agent.showlog_readdata){
// console.log(log);
// }
// var o_agent = youle_agent.agents.method.find_agent(agentid);
// if (o_agent) {
// var o_player = o_agent.method.find_player(playerid);
// if (o_player){
// o_player.whitelist = whitelist;
// }
// }
// var sql_agent = "update ct_user_process_log set is_process = is_process + 1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// if (youle_agent.showlog_readdata){
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:1");
// }
// });
// } else {
// var log = {};
// log.m = "设置短号白名单失败";
// log.id = optid;
// log.agentid = agentid;
// log.playerid = playerid;
// log.whitelist = whitelist;
// log.time = min_now();
// log.dbdata = dbdata;
// console.log(log);
// var sql_agent = "update ct_user_process_log set is_process = -1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:-1");
// });
// }
// }
// var sql_game = "call cp_game_player_whitelist(?,?,?)";
// youle_agent.mysql.execsql("opensql", sql_game, [agentid, playerid, JSON.stringify(whitelist)], db_callback_game11);
// }
// //系统抽成
// var update_gamedb_coinrebate = function(agentid, mode1, set1, mode2, set2, optid){
// var db_callback_game12 = function(dbdata){
// if (dbdata[0].result == 0){
// var log = {};
// log.m = "设置星星场系统抽成成功";
// log.id = optid;
// log.agentid = agentid;
// log.mode1 = mode1;
// log.set1 = set1;
// log.mode2 = mode2;
// log.set2 = set2;
// log.time = min_now();
// if (youle_agent.showlog_readdata){
// console.log(log);
// }
// var o_agent = youle_agent.agents.method.find_agent(agentid);
// if (o_agent) {
// o_agent.rebate_mode1 = mode1;
// o_agent.rebate_set1 = set1;
// o_agent.rebate_mode2 = mode2;
// o_agent.rebate_set2 = set2;
// }
// var sql_agent = "update ct_user_process_log set is_process = is_process + 1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// if (youle_agent.showlog_readdata){
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:1");
// }
// });
// } else {
// var log = {};
// log.m = "设置星星场系统抽成失败";
// log.id = optid;
// log.agentid = agentid;
// log.mode1 = mode1;
// log.set1 = set1;
// log.mode2 = mode2;
// log.set2 = set2;
// log.time = min_now();
// log.dbdata = dbdata;
// console.log(log);
// var sql_agent = "update ct_user_process_log set is_process = -1 where id = ?";
// youle_agent.mysql_agent.execsql("execsql", sql_agent, [optid],
// function(){
// youle_agent.readdata_isdoing = 0;
// console.log(min_now() + "修改状态成功 optid:" + optid + ", is_process:-1");
// });
// }
// }
// var sql_game = "call cp_game_update_coinrebate(?,?,?,?,?)";
// youle_agent.mysql.execsql("opensql", sql_game, [agentid, mode1, set1, mode2, set2], db_callback_game12);
// }
// var db_callback_agent = function(dbdata){
// if (youle_agent.showlog_readdata){
// console.log(min_now() + "读取成功");
// console.log(dbdata);
// }
// for (var i = 0; i < dbdata.length; i++){
// try{
// var o_agent = youle_agent.agents.method.find_agent(dbdata[i].to_agent);
// if (!o_agent){
// continue;
// }
// if (!o_agent.playerlogin){
// continue;
// }
// switch(parseInt(dbdata[i].oper_type)){
// case 1: //购买房卡
// youle_agent.readdata_isdoing = 1;
// update_gamedb_roomcard(dbdata[i].to_agent, dbdata[i].to_user, dbdata[i].oper_data, null, dbdata[i].oper_type, dbdata[i].id);
// break;
// case 2: //代理转卡
// youle_agent.readdata_isdoing = 1;
// update_gamedb_roomcard(dbdata[i].to_agent, dbdata[i].to_user, dbdata[i].oper_data, null, dbdata[i].oper_type, dbdata[i].id);
// break;
// case 3: //索要房卡
// youle_agent.readdata_isdoing = 1;
// update_gamedb_roomcard(dbdata[i].to_agent, dbdata[i].to_user, dbdata[i].oper_data, null, dbdata[i].oper_type, dbdata[i].id);
// break;
// case 11: //购买星星
// youle_agent.readdata_isdoing = 1;
// update_gamedb_roomcard(dbdata[i].to_agent, dbdata[i].to_user, null, dbdata[i].oper_data, dbdata[i].oper_type, dbdata[i].id);
// break;
// case 12: //代理转星星
// youle_agent.readdata_isdoing = 1;
// update_gamedb_roomcard(dbdata[i].to_agent, dbdata[i].to_user, null, dbdata[i].oper_data, dbdata[i].oper_type, dbdata[i].id);
// break;
// case 13: //索要星星
// youle_agent.readdata_isdoing = 1;
// update_gamedb_roomcard(dbdata[i].to_agent, dbdata[i].to_user, null, dbdata[i].oper_data, dbdata[i].oper_type, dbdata[i].id);
// break;
// case 21: //成为代理
// youle_agent.readdata_isdoing = 1;
// update_gamedb_newsalesman(dbdata[i].to_agent, dbdata[i].to_channel, dbdata[i].to_user, dbdata[i].oper_data, dbdata[i].id);
// break;
// case 31: //封禁代理
// youle_agent.readdata_isdoing = 1;
// update_gamedb_disabledsales(dbdata[i].to_agent, dbdata[i].to_user, dbdata[i].id);
// break;
// case 32: //解封代理
// youle_agent.readdata_isdoing = 1;
// update_gamedb_abledsales(dbdata[i].to_agent, dbdata[i].to_user, dbdata[i].id);
// break;
// case 33: //封禁玩家
// youle_agent.readdata_isdoing = 1;
// update_gamedb_disabledplayer(dbdata[i].to_agent, dbdata[i].to_user, dbdata[i].id);
// break;
// case 34: //解封玩家
// youle_agent.readdata_isdoing = 1;
// update_gamedb_abledplayer(dbdata[i].to_agent, dbdata[i].to_user, dbdata[i].id);
// break;
// case 41: //解除绑定了我的玩家
// youle_agent.readdata_isdoing = 1;
// update_gamedb_disbinding_sales(dbdata[i].from_agent, dbdata[i].from_user, dbdata[i].id);
// break;
// case 42: //玩家解除绑定
// youle_agent.readdata_isdoing = 1;
// update_gamedb_disbinding_player(dbdata[i].from_agent, dbdata[i].from_user, dbdata[i].id);
// break;
// case 101: //绑定代理
// youle_agent.readdata_isdoing = 1;
// update_gamedb_bindinginvitecode(dbdata[i].to_agent, dbdata[i].oper_data, dbdata[i].from_user, dbdata[i].id);
// break;
// case 110: //开通高新选项
// youle_agent.readdata_isdoing = 1;
// var o_data = JSON.parse(dbdata[i].oper_data);
// update_gamedb_advanced(dbdata[i].to_agent, dbdata[i].to_user, o_data.shortnum, o_data.maxroomnum, o_data.desone, o_data.destwo, dbdata[i].id);
// break;
// case 111: //设置短号白名单
// youle_agent.readdata_isdoing = 1;
// var o_data = JSON.parse(dbdata[i].oper_data);
// update_gamedb_whitelist(dbdata[i].from_agent, dbdata[i].from_user, o_data, dbdata[i].id);
// break;
// case 201: //系统抽成
// youle_agent.readdata_isdoing = 1;
// var o_data = JSON.parse(dbdata[i].oper_data);
// var rebate_mode1 = 0;
// var rebate_set1 = 0;
// var rebate_mode2 = 0;
// var rebate_set2 = 0;
// for (var j = 0; j < o_data.length; j++) {
// if (o_data[j].type_id == "001"){
// rebate_mode1 = 1;
// rebate_set1 = parseInt(o_data[j].system_commission_rate);
// }
// if (o_data[j].type_id == "002"){
// rebate_mode2 = 1;
// rebate_set2 = parseInt(o_data[j].system_commission_rate);
// }
// }
// update_gamedb_coinrebate(dbdata[i].to_agent, rebate_mode1, rebate_set1, rebate_mode2, rebate_set2, dbdata[i].id);
// break;
// }
// } catch(e){}
// }
// }
// if (!youle_agent.readdata_isdoing){
// var sql_agent = "select * from ct_user_process_log where is_process = 0 order by id";
// youle_agent.mysql_agent.execsql("opensql", sql_agent, [], db_callback_agent);
// }
// },
// 1000*30);

File diff suppressed because it is too large Load Diff