8113 lines
250 KiB
JavaScript
8113 lines
250 KiB
JavaScript
//////////////////////////////////////////////////////////////////
|
||
//////////////////////////游戏平台服务器//////////////////////////
|
||
//////////////////////////////////////////////////////////////////
|
||
youle_agent.debug = true;
|
||
|
||
//更新手机验证码
|
||
youle_agent.update_phone_code = function(phonenum, smmcode) {
|
||
var idx = min_ary_indexof(youle_agent.phonecodes, phonenum, "phonenum");
|
||
if (idx == -1){
|
||
var info = {};
|
||
info.phonenum = phonenum;
|
||
info.smmcode = smmcode;
|
||
info.sendtime = min_now();
|
||
youle_agent.phonecodes.push(info);
|
||
} else {
|
||
youle_agent.phonecodes[idx].smmcode = smmcode;
|
||
youle_agent.phonecodes[idx].sendtime = min_now();
|
||
}
|
||
}
|
||
|
||
//发送手机验证码
|
||
youle_agent.send_phone_checkcode = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var phonenum = pack.data.phonenum;
|
||
|
||
var o_cfg = youle_agent.app.youle_platform.config;
|
||
var cfg_smm_message = o_cfg.method.get_paravalue("smm_message", agentid);
|
||
if (!cfg_smm_message){
|
||
cfg_smm_message = "您的验证码是X。";
|
||
}
|
||
|
||
var smmcode = min_random(1000, 9999);
|
||
var md5memo = min_replaceAll(cfg_smm_message, "X", smmcode, 1);
|
||
|
||
var config = {};
|
||
config.url = "http://api.smsbao.com/sms";
|
||
config.type = "GET";
|
||
config.data = md5Geturl3(13619576943, "xieyu2018", phonenum, md5memo);
|
||
min_http(config);
|
||
|
||
youle_agent.update_phone_code(phonenum, smmcode);
|
||
return pack;
|
||
}
|
||
//发送手机验证码-微信小程序版本
|
||
youle_agent.send_phone_code_wechat = function(pack){
|
||
|
||
var phonenum = pack.data.phonenum;
|
||
var smmcode = min_random(1000, 9999);
|
||
|
||
youle_agent.update_phone_code(phonenum, smmcode);
|
||
pack.data.smmcode = smmcode;
|
||
return pack;
|
||
}
|
||
|
||
//获取手机验证码-微信小程序版本
|
||
youle_agent.get_phone_code_wechat = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var phonenum = pack.data.phonenum;
|
||
|
||
var o_cfg = youle_agent.app.youle_platform.config;
|
||
var cfg_smm_timeout = o_cfg.method.get_paravalue("smm_timeout", agentid);
|
||
if (!cfg_smm_timeout){
|
||
cfg_smm_timeout = 60;
|
||
}
|
||
|
||
var smmcode = 0;
|
||
var idx = min_ary_indexof(youle_agent.phonecodes, phonenum, "phonenum");
|
||
|
||
if (idx != -1){
|
||
var diff = min_datediff(youle_agent.phonecodes[idx].sendtime, min_now(), "second");
|
||
if (diff <= cfg_smm_timeout){
|
||
smmcode = youle_agent.phonecodes[idx].smmcode;
|
||
}
|
||
}
|
||
|
||
if (smmcode == 0){
|
||
smmcode = min_random(1000, 9999);
|
||
youle_agent.update_phone_code(phonenum, smmcode);
|
||
}
|
||
|
||
pack.data.smmcode = smmcode;
|
||
return pack;
|
||
}
|
||
|
||
//绑定手机号
|
||
youle_agent.binding_phone = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = pack.data.playerid;
|
||
var telphone = pack.data.phonenum;
|
||
var smmcode = pack.data.smmcode;
|
||
|
||
//检查代理商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;
|
||
};
|
||
|
||
var idx = min_ary_indexof(youle_agent.phonecodes, telphone, "phonenum");
|
||
if (idx == -1 || youle_agent.phonecodes[idx].smmcode != smmcode){
|
||
pack.rpc = "show_message";
|
||
pack.data = {};
|
||
pack.data.msg = "短信验证码不正确";
|
||
pack.data.time = 0;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
if (youle_agent.phonecodes[idx].smmcode != smmcode){
|
||
pack.rpc = "show_message";
|
||
pack.data = {};
|
||
pack.data.msg = "短信验证码不正确";
|
||
pack.data.time = 0;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
var o_cfg = youle_agent.app.youle_platform.config;
|
||
var cfg_smm_timeout = o_cfg.method.get_paravalue("smm_timeout", agentid);
|
||
if (!cfg_smm_timeout){
|
||
cfg_smm_timeout = 60;
|
||
}
|
||
var diff = min_datediff(youle_agent.phonecodes[idx].sendtime, min_now(), "second");
|
||
if (diff > cfg_smm_timeout){
|
||
pack.rpc = "show_message";
|
||
pack.data = {};
|
||
pack.data.msg = "短信验证码已失效";
|
||
pack.data.time = 0;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
|
||
var sql = "update player set play_tel = ? where play_agentid = ? and play_playerid = ?";
|
||
youle_agent.mysql.execsql("execsql", sql, [telphone, agentid, playerid]);
|
||
|
||
o_player.tel = telphone;
|
||
|
||
youle_agent.phonecodes.splice(idx, 1);
|
||
|
||
return pack;
|
||
}
|
||
|
||
//绑定手机号(微信)
|
||
youle_agent.bind_player_wechat = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var channelid = pack.data.channelid;
|
||
var marketid = pack.data.marketid;
|
||
var gameid = pack.data.gameid;
|
||
var openid = pack.data.openid;
|
||
var unionid = pack.data.unionid;
|
||
var nickname = pack.data.nickname;
|
||
var avatar = pack.data.avatar;
|
||
var sex = parseInt(pack.data.sex);
|
||
var province = pack.data.province;
|
||
var city = pack.data.city;
|
||
var telphone = pack.data.telphone;
|
||
|
||
if (!agentid || !telphone || !unionid){
|
||
pack.data = { result: -1, msg: "参数缺失" };
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
|
||
//去除&符号
|
||
nickname = min_replaceAll(nickname, "&", "");
|
||
//去除'符号
|
||
nickname = min_replaceAll(nickname, "'", "");
|
||
//去除"符号
|
||
nickname = min_replaceAll(nickname, '"', "");
|
||
//去除前后空格
|
||
nickname = min_trim(nickname);
|
||
|
||
//去除emoji字符
|
||
var nickname2 = unescape(escape(nickname).replace(/\%uD.{3}/g, ''));
|
||
if ((nickname2 != nickname) && (!nickname2)){
|
||
nickname2 = "表情符号";
|
||
}
|
||
|
||
//检查代理商id是否存在
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
pack.data = { result: -1, msg: "代理商不存在" };
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
};
|
||
|
||
|
||
var db_callback = function(dbdata){
|
||
console.log(dbdata);
|
||
if (dbdata.length > 0 && dbdata[0].length > 0 && dbdata[0][0].result_code == -1) {
|
||
pack.rpc = "show_message";
|
||
pack.data = {};
|
||
pack.data.msg = dbdata[0][0].msg;
|
||
pack.data.time = 0;
|
||
pack.data.result = -1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
if (dbdata.length > 0 && dbdata[0].result == -1) {
|
||
pack.data = { result: -1, msg: dbdata[0].msg};
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
pack.data = { result: 0, msg: dbdata[0].msg};
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
|
||
var sql = "call cp_bind_player_wechat(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid, channelid, gameid, openid, unionid, nickname2, avatar, sex, province, city, marketid, telphone], db_callback, pack);
|
||
}
|
||
|
||
youle_agent.player_login = function(pack){
|
||
if (cls_youle_room_backup && cls_youle_room_backup.isloading){
|
||
return;
|
||
}
|
||
|
||
var agentid = pack.data.agentid;
|
||
var channelid = pack.data.channelid;
|
||
var marketid = pack.data.marketid;
|
||
var gameid = pack.data.gameid;
|
||
var openid = pack.data.openid;
|
||
var unionid = pack.data.unionid;
|
||
var nickname = pack.data.nickname;
|
||
var avatar = pack.data.avatar;
|
||
var sex = parseInt(pack.data.sex);
|
||
var province = pack.data.province;
|
||
var city = pack.data.city;
|
||
var version = pack.data.version;
|
||
var playerid = pack.data.playerid;
|
||
var machineid = null;
|
||
if (pack.data.machineid){
|
||
machineid = pack.data.machineid;
|
||
}
|
||
var machineroom = null;
|
||
if (pack.data.machineroom){
|
||
machineroom = pack.data.machineroom;
|
||
}
|
||
var telphone = null;
|
||
if (pack.data.telphone){
|
||
telphone = pack.data.telphone;
|
||
var smmcode = pack.data.smmcode;
|
||
var telphoneAuto = pack.data.telphoneAuto;
|
||
};
|
||
|
||
if (!openid || openid == "(null)" || !unionid || unionid == "(null)"){
|
||
return;
|
||
}
|
||
if (!nickname && !avatar){
|
||
return;
|
||
}
|
||
|
||
//去除&符号
|
||
nickname = min_replaceAll(nickname, "&", "");
|
||
//去除'符号
|
||
nickname = min_replaceAll(nickname, "'", "");
|
||
//去除"符号
|
||
nickname = min_replaceAll(nickname, '"', "");
|
||
//去除前后空格
|
||
nickname = min_trim(nickname);
|
||
|
||
//去除emoji字符
|
||
var nickname2 = unescape(escape(nickname).replace(/\%uD.{3}/g, ''));
|
||
if ((nickname2 != nickname) && (!nickname2)){
|
||
nickname2 = "表情符号";
|
||
}
|
||
|
||
var o_cfg = youle_agent.app.youle_platform.config;
|
||
//验证版本号
|
||
if (!version){
|
||
version = 1;
|
||
} else {
|
||
version = parseInt(version);
|
||
}
|
||
var cfg_version = o_cfg.method.get_paravalue("game_version", agentid, gameid, channelid, marketid);
|
||
if (version < cfg_version){
|
||
pack.rpc = "kick_server";
|
||
pack.data = {};
|
||
pack.data.msg = "检查到新版本,请退出游戏,再重新启动游戏。";
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
|
||
if (min_ary_indexof(blacknamelist, unionid) > -1){
|
||
pack.rpc = "kick_server";
|
||
pack.data = {};
|
||
pack.data.msg = "由于用户举报该游戏账号存在违规行为,已被封禁。";
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
|
||
//游戏大厅http请求返回的数据
|
||
// if (gameid == "G2hw0ubng0zcoI0r4mx3H2yr4GejidwO"){
|
||
// pack.data = {};
|
||
// pack.data.state = 0;
|
||
// pack.data.agentid = agentid;
|
||
// pack.data.channelid = channelid;
|
||
// pack.data.scrollmsg = o_cfg.method.get_paravalue("scrollmsg", agentid, gameid, channelid, marketid);
|
||
// pack.data.noticemsg = o_cfg.method.get_paravalue("noticemsg", agentid, gameid, channelid, marketid);
|
||
// pack.data.gameversion = o_cfg.method.get_paravalue("game_version", agentid, gameid, channelid, marketid);
|
||
// pack.data.hall_config = o_cfg.method.get_paravalue("hall_config", agentid, gameid, channelid, marketid);
|
||
// pack.data.game_config = o_cfg.method.get_paravalue("game_config", agentid, gameid, channelid, marketid);
|
||
// pack.data.gamelist = o_cfg.method.get_gamelist_gamehall(agentid, channelid, marketid);
|
||
// return pack;
|
||
// }
|
||
|
||
var sql;
|
||
var o_agent;
|
||
var o_game;
|
||
var o_player;
|
||
|
||
//代理商
|
||
var do_load_agent = function(){
|
||
o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (o_agent){
|
||
do_load_game();
|
||
} else {
|
||
var db_callback_agentinfo = function(dbdata){
|
||
if (dbdata.length == 0){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = "参数错误,agentid:" + agentid;
|
||
youle_agent.app.SendPack(pack);
|
||
console.log("youle_agent player_login 参数错误,agentid:" + agentid);
|
||
return;
|
||
}
|
||
o_agent = youle_agent.agents.method.load_agent(
|
||
dbdata[0].agen_agentid,
|
||
dbdata[0].agen_name,
|
||
dbdata[0].agen_server,
|
||
parseInt(dbdata[0].agen_port_tcp),
|
||
parseInt(dbdata[0].agen_port_http),
|
||
parseInt(dbdata[0].agen_freeroom),
|
||
dbdata[0].agen_managecode,
|
||
dbdata[0].agen_initroomacard,
|
||
dbdata[0].agen_initbean);
|
||
o_agent.rebate_mode1 = parseInt(dbdata[0].agen_rebatemode1);
|
||
o_agent.rebate_set1 = parseInt(dbdata[0].agen_rebateset1);
|
||
o_agent.rebate_mode2 = parseInt(dbdata[0].agen_rebatemode2);
|
||
o_agent.rebate_set2 = parseInt(dbdata[0].agen_rebateset2);
|
||
|
||
//读取短号
|
||
var db_callback_shortcode = function(dbdata){
|
||
for (var i = 0; i < dbdata.length; i++) {
|
||
var o_shortcode = {};
|
||
o_shortcode.shortcode = parseInt(dbdata[i].play_shortcode);
|
||
o_shortcode.playerid = parseInt(dbdata[i].play_playerid);
|
||
o_agent.shortcodes[o_shortcode.shortcode] = o_shortcode;
|
||
}
|
||
do_load_game();
|
||
}
|
||
sql = "select * from player where play_agentid = ? and ifnull(play_shortcode, 0) <> 0";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid], db_callback_shortcode);
|
||
}
|
||
sql = "select * from agent where agen_agentid = ?";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid], db_callback_agentinfo, pack);
|
||
}
|
||
}
|
||
|
||
//游戏
|
||
var do_load_game = function(){
|
||
//获取池子累计输赢
|
||
var do_getpond = function(){
|
||
var db_callback_getpond = function(dbdata){
|
||
o_game.pondlist = [];
|
||
for (var i = 0; i < dbdata.length; i++) {
|
||
var info = [parseInt(dbdata[i].aggp_pondid), parseInt(dbdata[i].aggp_value)];
|
||
o_game.pondlist.push(info);
|
||
};
|
||
|
||
o_game.isloading = false;
|
||
do_load_player();
|
||
}
|
||
sql = "select * from agent_game_pond where aggp_agentid = ? and aggp_gameid = ?";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid, gameid], db_callback_getpond);
|
||
}
|
||
|
||
//获取比赛排行榜
|
||
var do_getmatchranking = function(){
|
||
do_getpond();
|
||
}
|
||
//创建短号房间
|
||
var do_createshortroom = function(){
|
||
var db_callback_createadvancedroom = function(dbdata){
|
||
for (var i = 0; i < dbdata.length; i++) {
|
||
try{
|
||
if (dbdata[i].play_roomcodes){
|
||
var _shortcode = dbdata[i].play_shortcode;
|
||
var _o_roomcodes = JSON.parse(dbdata[i].play_roomcodes);
|
||
for (var j = 0; j < _o_roomcodes.length; j++) {
|
||
if (_o_roomcodes[j].gameid == gameid){
|
||
var _roomtype = _o_roomcodes[j].roomtype;
|
||
var _tea = _o_roomcodes[j].tea;
|
||
var _rebateType = _o_roomcodes[j].rebateType;
|
||
//var _videoConfig = _o_roomcodes[j].videoConfig;
|
||
var _roomlist = _o_roomcodes[j].roomlist;
|
||
if (_roomlist.length > 0){
|
||
var _ownerid = parseInt(dbdata[i].play_playerid);
|
||
var _o_owner = o_agent.method.find_player(_ownerid);
|
||
if (!_o_owner){
|
||
_o_owner = o_agent.method.load_player(
|
||
parseInt(dbdata[i].play_playerid),
|
||
parseInt(dbdata[i].play_roomcard),
|
||
parseInt(dbdata[i].play_bean),
|
||
dbdata[i].play_openid,
|
||
dbdata[i].play_unionid,
|
||
dbdata[i].play_nickname,
|
||
dbdata[i].play_avatar,
|
||
parseInt(dbdata[i].play_sex),
|
||
parseInt(dbdata[i].play_type),
|
||
dbdata[i].play_invitecode);
|
||
_o_owner.state = parseInt(dbdata[i].play_state);
|
||
_o_owner.advanced = parseInt(dbdata[i].play_advanced);
|
||
if (dbdata[i].play_shortcode){
|
||
_o_owner.shortcode = parseInt(dbdata[i].play_shortcode);
|
||
} else {
|
||
_o_owner.shortcode = null;
|
||
}
|
||
if (dbdata[i].play_roomcodes){
|
||
_o_owner.roomcodes = JSON.parse(dbdata[i].play_roomcodes);
|
||
} else {
|
||
_o_owner.roomcodes = [];
|
||
}
|
||
if (dbdata[i].play_whitelist){
|
||
//_o_owner.whitelist = JSON.parse(dbdata[i].play_whitelist);
|
||
_o_owner.whitelist = youle_agent.deCompressWhiteList(dbdata[i].play_whitelist);
|
||
|
||
for(var k=0;k<_o_owner.whitelist.length;k++){
|
||
if(_o_owner.whitelist[k][2]){
|
||
_o_owner.whitelist[k][2] = parseInt(_o_owner.whitelist[k][2]);
|
||
}else{
|
||
_o_owner.whitelist[k][2] = 0;
|
||
}
|
||
}
|
||
} else {
|
||
_o_owner.whitelist = null;
|
||
}
|
||
if (dbdata[i].play_limit != null){
|
||
_o_owner.lowlimit = parseInt(dbdata[i].play_limit);
|
||
} else {
|
||
_o_owner.lowlimit = -900000000;
|
||
}
|
||
if (dbdata[i].play_notice){
|
||
_o_owner.notice = dbdata[i].play_notice;
|
||
} else {
|
||
_o_owner.notice = null;
|
||
}
|
||
if (dbdata[i].play_sign){
|
||
_o_owner.sign = dbdata[i].play_sign;
|
||
} else {
|
||
_o_owner.sign = null;
|
||
}
|
||
if (dbdata[i].play_destwo){
|
||
_o_owner.destwo = dbdata[i].play_destwo;
|
||
} else {
|
||
_o_owner.destwo = "";
|
||
}
|
||
|
||
_o_owner.loginday = min_now();
|
||
|
||
_o_owner.bankpower = parseInt(dbdata[i].play_bankpower);
|
||
_o_owner.bank = parseInt(dbdata[i].play_bank);
|
||
_o_owner.bankpwd = dbdata[i].play_bankpwd;
|
||
_o_owner.method.login_game(o_game, null, null, null);
|
||
}
|
||
for (var k = 0; k < _roomlist.length; k++) {
|
||
var _roomcode = _roomlist[k];
|
||
|
||
//在恢复牌局的情况下有可能短号房间已经恢复了
|
||
var roomsvr_agent = youle_room.agents.method.find_agent(agentid);
|
||
if (roomsvr_agent){
|
||
var roomsvr_game = roomsvr_agent.method.find_game(gameid);
|
||
if (roomsvr_game){
|
||
var roomsvr_room = roomsvr_game.method.find_room(_roomcode);
|
||
if (roomsvr_room){
|
||
continue;
|
||
}
|
||
}
|
||
}
|
||
|
||
_msg = {};
|
||
_msg.data = {};
|
||
_msg.data.agentid = agentid;
|
||
_msg.data.gameid = gameid;
|
||
_msg.data.playerid = _ownerid;
|
||
_msg.data.roomcode = _roomcode;
|
||
_msg.data.shortcode = _shortcode;
|
||
_msg.data.tea = _tea;
|
||
//console.log(_ownerid+"shortcode:"+_shortcode);
|
||
//_msg.data.videoConfig = _videoConfig;
|
||
youle_agent.advanced_createroom_roomcode(_msg);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch(e){}
|
||
}
|
||
do_getmatchranking();
|
||
}
|
||
sql = "select * from player where play_agentid = ? and ifnull(play_shortcode, 0) <> 0";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid], db_callback_createadvancedroom);
|
||
}
|
||
//获取机器人金币累积输赢
|
||
var do_getrobotgrade = function(){
|
||
var db_callback_getrobotgrade = function(dbdata){
|
||
if (dbdata.length == 1){
|
||
o_game.robot_xx = parseInt(dbdata[0].winlose_xx);
|
||
o_game.robot_x2 = parseInt(dbdata[0].winlose_x2);
|
||
} else {
|
||
o_game.robot_xx = 0;
|
||
o_game.robot_x2 = 0;
|
||
}
|
||
do_createshortroom();
|
||
}
|
||
sql = "select ifnull(agpl_winlose_xx, 0) as winlose_xx, ifnull(agpl_winlose_x2, 0) as winlose_x2 from agent_game_player where agpl_agentid = ? and agpl_gameid = ? and agpl_playerid = 999999";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid, gameid], db_callback_getrobotgrade);
|
||
}
|
||
|
||
o_game = o_agent.method.find_game(gameid);
|
||
if (o_game){
|
||
if (o_game.isloading){
|
||
return;
|
||
}
|
||
if (!o_agent.playerlogin) { //恢复牌局后o_game已经恢复了,但还没创建短号房间
|
||
do_createshortroom();
|
||
} else {
|
||
do_load_player();
|
||
}
|
||
} else {
|
||
var db_callback_gameinfo = function(dbdata){
|
||
if (dbdata.length == 0){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = "参数错误,gameid:" + gameid;
|
||
console.log("youle_agent player_login 参数错误,gameid:" + gameid);
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
if (!youle_agent.app[dbdata[0].game_modename]){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = "参数错误,gameid:" + gameid;
|
||
console.log("youle_agent player_login 参数错误,gameid:" + gameid);
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
o_game = o_agent.method.load_game(
|
||
dbdata[0].game_gameid,
|
||
dbdata[0].game_name,
|
||
parseInt(dbdata[0].game_minroomcode),
|
||
parseInt(dbdata[0].game_maxroomcode),
|
||
parseInt(dbdata[0].game_seatcount),
|
||
parseInt(dbdata[0].game_makewar),
|
||
dbdata[0].game_modename);
|
||
o_game.isloading = true;
|
||
do_getrobotgrade();
|
||
}
|
||
sql = "select * from game where game_gameid = ?";
|
||
youle_agent.mysql.execsql("opensql", sql, [gameid], db_callback_gameinfo, pack);
|
||
}
|
||
}
|
||
|
||
//玩家
|
||
var do_load_player = function(){
|
||
if (playerid){
|
||
playerid = parseInt(playerid);
|
||
o_player = o_agent.method.find_player(playerid);
|
||
}
|
||
if (o_player){
|
||
if (o_player.openid != openid || o_player.unionid != unionid || o_player.deleted){
|
||
o_player = null;
|
||
}
|
||
}
|
||
if (o_player){
|
||
o_player.nickname = nickname2;
|
||
o_player.avatar = avatar;
|
||
o_player.sex = sex;
|
||
do_return_login(0);
|
||
} else {
|
||
//如果传了手机号则需要验证短信验证码
|
||
if (telphone && !telphoneAuto){
|
||
pack.app = youle_agent.app.appname;
|
||
pack.route = youle_agent.app.youle_room.routename;
|
||
var idx = min_ary_indexof(youle_agent.phonecodes, telphone, "phonenum");
|
||
if (idx == -1 || youle_agent.phonecodes[idx].smmcode != smmcode){
|
||
pack.rpc = "player_login";
|
||
pack.data = {};
|
||
pack.data.msg = "短信验证码不正确";
|
||
pack.data.state = -1;
|
||
pack.data.time = 0;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
if (youle_agent.phonecodes[idx].smmcode != smmcode){
|
||
pack.rpc = "player_login";
|
||
pack.data = {};
|
||
pack.data.msg = "短信验证码不正确";
|
||
pack.data.state = -1;
|
||
pack.data.time = 0;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
|
||
var cfg_smm_timeout = o_cfg.method.get_paravalue("smm_timeout", agentid);
|
||
if (!cfg_smm_timeout){
|
||
cfg_smm_timeout = 60;
|
||
}
|
||
var diff = min_datediff(youle_agent.phonecodes[idx].sendtime, min_now(), "second");
|
||
if (diff > cfg_smm_timeout){
|
||
|
||
pack.rpc = "player_login";
|
||
pack.data = {};
|
||
pack.data.state = -1;
|
||
pack.data.msg = "短信验证码已失效";
|
||
pack.data.time = 0;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
|
||
youle_agent.phonecodes.splice(idx, 1);
|
||
}
|
||
var db_callback_playerinfo = function(dbdata){
|
||
// 检查是否返回了错误信息
|
||
if (dbdata.length > 0 && dbdata[0].result == -1) {
|
||
pack.rpc = "player_login";
|
||
|
||
pack.data = {};
|
||
pack.data.state = -1;
|
||
pack.data.msg = dbdata[0].msg || "登录失败";
|
||
pack.data.time = 0;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
|
||
// 如果是手机号登录,更新玩家信息为数据库返回的信息
|
||
if (telphone && dbdata[0].ret_nickname) {
|
||
nickname2 = dbdata[0].ret_nickname;
|
||
avatar = dbdata[0].ret_avatar;
|
||
openid = dbdata[0].ret_openid;
|
||
sex = parseInt(dbdata[0].ret_sex);
|
||
unionid = dbdata[0].ret_unionid;
|
||
// 还可以获取 province, city, logindate 等,如果需要的话
|
||
province = dbdata[0].ret_province;
|
||
city = dbdata[0].ret_city;
|
||
|
||
}
|
||
|
||
var gameid = dbdata[0].gameid;
|
||
o_player = o_agent.method.load_player(
|
||
parseInt(dbdata[0].playerid),
|
||
parseInt(dbdata[0].roomcard),
|
||
parseInt(dbdata[0].bean),
|
||
openid,
|
||
unionid,
|
||
nickname2,
|
||
avatar,
|
||
parseInt(sex),
|
||
parseInt(dbdata[0].playertype),
|
||
dbdata[0].invitecode);
|
||
o_player.inviteid = parseInt(dbdata[0].inviteid);
|
||
o_player.state = parseInt(dbdata[0].state);
|
||
o_player.advanced = parseInt(dbdata[0].advanced);
|
||
if (dbdata[0].shortcode){
|
||
o_player.shortcode = parseInt(dbdata[0].shortcode);
|
||
} else {
|
||
o_player.shortcode = null;
|
||
}
|
||
if (dbdata[0].roomcodes){
|
||
o_player.roomcodes = JSON.parse(dbdata[0].roomcodes);
|
||
} else {
|
||
o_player.roomcodes = [];
|
||
}
|
||
if (dbdata[0].desone){
|
||
o_player.desone = dbdata[0].desone;
|
||
} else {
|
||
o_player.desone = null;
|
||
}
|
||
if (dbdata[0].destwo){
|
||
o_player.destwo = dbdata[0].destwo;
|
||
} else {
|
||
o_player.destwo = null;
|
||
}
|
||
if (dbdata[0].whitelist){
|
||
o_player.whitelist = youle_agent.deCompressWhiteList(dbdata[0].whitelist);
|
||
for(var k=0;k<o_player.whitelist.length;k++){
|
||
if(o_player.whitelist[k][2]){
|
||
o_player.whitelist[k][2] = parseInt(o_player.whitelist[k][2]);
|
||
}else{
|
||
o_player.whitelist[k][2] = 0;
|
||
}
|
||
}
|
||
} else {
|
||
o_player.whitelist = null;
|
||
}
|
||
if (dbdata[0].lowlimit != null){
|
||
o_player.lowlimit = parseInt(dbdata[0].lowlimit);
|
||
} else {
|
||
o_player.lowlimit = -900000000;
|
||
}
|
||
if (dbdata[0].notice){
|
||
o_player.notice = dbdata[0].notice;
|
||
} else {
|
||
o_player.notice = null;
|
||
}
|
||
if (dbdata[0].psign){
|
||
o_player.sign = dbdata[0].psign;
|
||
} else {
|
||
o_player.sign = null;
|
||
}
|
||
if (dbdata[0].tel){
|
||
o_player.tel = dbdata[0].tel;
|
||
} else {
|
||
o_player.tel = null;
|
||
}
|
||
|
||
o_player.loginday = min_now();
|
||
o_player.nn_winlose = parseInt(dbdata[0].nn_winlose); //牛牛总输赢分数
|
||
o_player.nn_winlose_xx = parseInt(dbdata[0].nn_winlose_xx); //牛牛总输赢分数(星星场)
|
||
o_player.nn_winlose_x2 = parseInt(dbdata[0].nn_winlose_x2); //牛牛总输赢星星(星星场)
|
||
|
||
|
||
updateGameWinLose(gameid,1,dbdata[0].game_winlose,o_player);
|
||
updateGameWinLose(gameid,2,dbdata[0].game_winlose_xx,o_player);
|
||
updateGameWinLose(gameid,3,dbdata[0].game_winlose_x2,o_player);
|
||
|
||
o_player.bankpower = parseInt(dbdata[0].bankpower);
|
||
o_player.bank = parseInt(dbdata[0].bank);
|
||
o_player.bankpwd = dbdata[0].bankpwd;
|
||
do_return_login(1);
|
||
}
|
||
sql = "call cp_game_player_login_1121(?,?,?,?,?,?,?,?,?,?,?,?);";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid, channelid, gameid, openid, unionid, nickname2, avatar, sex, province, city, marketid, telphone], db_callback_playerinfo, pack);
|
||
}
|
||
}
|
||
//游戏输赢设置 玩家输赢存在玩家winLose属性中
|
||
var updateGameWinLose = function(gameid,type,val,oPlayer){
|
||
var key;
|
||
val = Number(val);
|
||
switch(type){
|
||
case 1:
|
||
key = "game_winlose";
|
||
break;
|
||
case 2:
|
||
key = "game_winlose_xx";
|
||
break;
|
||
case 3:
|
||
key = "game_winlose_x2";
|
||
break;
|
||
}
|
||
if(oPlayer.winLose){//判断是否有次属性
|
||
if(oPlayer.winLose[gameid]){
|
||
if(oPlayer.winLose[gameid][key]){
|
||
oPlayer.winLose[gameid][key] += val;
|
||
}else{
|
||
oPlayer.winLose[gameid][key] = val;
|
||
}
|
||
}else{
|
||
oPlayer.winLose[gameid] = {};
|
||
oPlayer.winLose[gameid][key] = val;
|
||
}
|
||
}else{
|
||
oPlayer.winLose = {};
|
||
oPlayer.winLose[gameid] = {};
|
||
oPlayer.winLose[gameid][key] = val;
|
||
}
|
||
}
|
||
|
||
//返回前端登录包
|
||
var do_return_login = function(logindb){
|
||
if (o_player.state == 1){
|
||
pack.rpc = "kick_server";
|
||
pack.data = {};
|
||
pack.data.msg = "由于用户举报该游戏账号存在违规行为,已被封禁。";
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
o_player.marketid = marketid;
|
||
o_player.address = null;
|
||
o_player.latitude = null;
|
||
o_player.longitude = null;
|
||
|
||
o_agent.playerlogin = 1;
|
||
//玩家登录游戏
|
||
var player_ip;
|
||
if (!pack.data.ip){
|
||
o_player.method.login_game(o_game, pack.ip, pack.conmode, pack.fromid, machineid, machineroom);
|
||
player_ip = pack.ip;
|
||
} else {
|
||
o_player.method.login_game(o_game, pack.data.ip, pack.conmode, pack.fromid, machineid, machineroom);
|
||
player_ip = pack.data.ip;
|
||
}
|
||
var o_gameinfo = o_player.method.get_gameinfo(o_game);
|
||
|
||
pack.data = {};
|
||
pack.data.state = 0;
|
||
pack.data.agentid = o_agent.agentid;
|
||
pack.data.agentname = o_agent.agentname;
|
||
// pack.data.agentlogo = o_cfg.method.get_paravalue("logimage", agentid, gameid, channelid, marketid);
|
||
pack.data.agentmode = o_cfg.method.get_paravalue("agentmode", agentid, gameid, channelid, marketid);
|
||
if (!pack.data.agentmode){
|
||
pack.data.agentmode = 1;
|
||
}
|
||
pack.data.channelid = channelid;
|
||
// pack.data.wechat_gzh = o_cfg.method.get_paravalue("WechatPublicNo_name", agentid, gameid, channelid, marketid);
|
||
// pack.data.wechat_ewm = o_cfg.method.get_paravalue("WechatPublicNo_ewm", agentid, gameid, channelid, marketid);
|
||
// pack.data.wechat_kfh = o_cfg.method.get_paravalue("service_wechat", agentid, gameid, channelid, marketid);
|
||
// pack.data.qq = o_cfg.method.get_paravalue("service_qq", agentid, gameid, channelid, marketid);
|
||
// pack.data.tel = o_cfg.method.get_paravalue("service_tel", agentid, gameid, channelid, marketid);
|
||
// pack.data.scrollmsg = o_cfg.method.get_paravalue("scrollmsg", agentid, gameid, channelid, marketid);
|
||
// pack.data.noticemsg = o_cfg.method.get_paravalue("noticemsg", agentid, gameid, channelid, marketid);
|
||
// pack.data.appdownload = o_cfg.method.get_paravalue("url_download", agentid, gameid, channelid, marketid);
|
||
// pack.data.topuphtml = o_cfg.method.get_paravalue("url_topup", agentid, gameid, channelid, marketid);
|
||
// pack.data.matchhtml = o_cfg.method.get_paravalue("url_match", agentid, gameid, channelid, marketid);
|
||
// pack.data.sharename = o_cfg.method.get_paravalue("sharename", agentid, gameid, channelid, marketid);
|
||
// pack.data.hall_config = o_cfg.method.get_paravalue("hall_config", agentid, gameid, channelid, marketid);
|
||
// pack.data.game_config = o_cfg.method.get_paravalue("game_config", agentid, gameid, channelid, marketid);
|
||
pack.data.gameversion = cfg_version;
|
||
pack.data.playerid = o_player.playerid;
|
||
pack.data.nickname = o_player.nickname;
|
||
pack.data.avatar = o_player.avatar;
|
||
pack.data.openid = o_player.openid;
|
||
pack.data.sex = o_player.sex;
|
||
pack.data.city = o_player.city;
|
||
pack.data.province = o_player.province;
|
||
pack.data.unionid = o_player.unionid;
|
||
pack.data.roomcard = o_player.roomcard;
|
||
pack.data.bean = o_player.bean;
|
||
pack.data.score = 0;
|
||
pack.data.invitecode = o_player.invitecode;
|
||
pack.data.advanced = o_player.advanced;
|
||
pack.data.taskstate = 1;
|
||
pack.data.ip = player_ip;
|
||
pack.data.bankpower = o_player.bankpower;
|
||
pack.data.bank = o_player.bank;
|
||
pack.data.sign = o_player.sign;
|
||
pack.data.tel = o_player.tel;
|
||
pack.data.initCard = o_agent.initCard;
|
||
pack.data.initBean = o_agent.initBean;
|
||
if (o_player.bankpwd){
|
||
pack.data.bankpwd = 1;
|
||
} else {
|
||
pack.data.bankpwd = 0;
|
||
}
|
||
//检查玩家是否已经在房间内了
|
||
if (!o_gameinfo.roomcode){
|
||
if (o_gameinfo.matchid){
|
||
pack.data.matchid = o_gameinfo.matchid;
|
||
pack.data.matchidx = o_gameinfo.matchidx;
|
||
}
|
||
//没在房间内
|
||
youle_agent.app.SendPack(pack);
|
||
} else {
|
||
//在房间内则通知房间服务器有人断线重连了
|
||
var msg = {};
|
||
msg.app = youle_agent.app.appname;
|
||
msg.route = youle_agent.app.youle_room.routename;
|
||
msg.rpc = "player_login";
|
||
msg.data = {};
|
||
msg.data.playerid = o_player.playerid;
|
||
msg.data.nickname = o_player.nickname;
|
||
msg.data.avatar = o_player.avatar;
|
||
msg.data.sex = o_player.sex;
|
||
msg.data.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 = o_gameinfo.roomcode;
|
||
|
||
//获取房号对应的房间服务器地址
|
||
var o_roomserver = o_game.method.get_roomserver(o_gameinfo.roomcode);
|
||
if (o_roomserver.server == o_agent.server){
|
||
//房间服务器与代理商服务器是同一地址
|
||
var roomserver_data = youle_agent.app.youle_room[msg.rpc](msg);
|
||
try
|
||
{
|
||
//返回前端
|
||
pack.data.gameid = roomserver_data.data.gameid;
|
||
pack.data.roomcode = roomserver_data.data.roomcode;
|
||
pack.data.roomtype = roomserver_data.data.roomtype;
|
||
pack.data.asetcount = roomserver_data.data.asetcount;
|
||
pack.data.makewar = roomserver_data.data.makewar;
|
||
pack.data.roommode = roomserver_data.data.roommode;
|
||
pack.data.beanlimit = roomserver_data.data.beanfloor;
|
||
pack.data.isbattle = roomserver_data.data.isbattle;
|
||
pack.data.needprepare = roomserver_data.data.needprepare;
|
||
pack.data.seat = roomserver_data.data.seat;
|
||
pack.data.isowner = roomserver_data.data.isowner;
|
||
pack.data.isbet = roomserver_data.data.isbet;
|
||
pack.data.infinite = roomserver_data.data.infinite;
|
||
pack.data.shortcode = roomserver_data.data.shortcode;
|
||
if(roomserver_data.data.videoConfig){
|
||
pack.data.videoConfig = roomserver_data.data.videoConfig;
|
||
}
|
||
if(roomserver_data.data.ownerNotice){
|
||
pack.data.ownerNotice = roomserver_data.data.ownerNotice;
|
||
}
|
||
if(roomserver_data.data.rebateMode){
|
||
pack.data.rebateMode = roomserver_data.data.rebateMode;
|
||
}
|
||
if(roomserver_data.data.rebateNumber){
|
||
pack.data.rebateNumber = roomserver_data.data.rebateNumber;
|
||
}
|
||
if(roomserver_data.data.rebateLimit){
|
||
pack.data.rebateLimit = roomserver_data.data.rebateLimit;
|
||
}
|
||
if(roomserver_data.data.forbidSelect){
|
||
pack.data.forbidSelect = roomserver_data.data.forbidSelect;
|
||
}
|
||
pack.data.rebateType = roomserver_data.data.rebateType;
|
||
if (roomserver_data.data.match_data){
|
||
pack.data.match = {};
|
||
pack.data.match.roomcard = roomserver_data.data.match_roomcard;
|
||
}
|
||
pack.data.players = roomserver_data.data.players;
|
||
pack.data.agreefree = roomserver_data.data.agreefree;
|
||
pack.data.deskinfo = roomserver_data.data.deskinfo;
|
||
if (roomserver_data.data.match_id){
|
||
pack.data.matchid = roomserver_data.data.match_id;
|
||
pack.data.matchidx = roomserver_data.data.match_idx;
|
||
}
|
||
|
||
for (var i = 0; i < pack.data.players.length; i++) {
|
||
if (pack.data.players[i] && pack.data.players[i].bean == null){
|
||
var _playerid = parseInt(pack.data.players[i].playerid);
|
||
var _o_player = o_agent.method.find_player(_playerid);
|
||
pack.data.players[i].bean = _o_player.bean;
|
||
}
|
||
}
|
||
|
||
//获取玩家的短号魅力值
|
||
if (pack.data.shortcode){
|
||
var _roomsvr_agent = youle_room.agents.method.find_agent(agentid);
|
||
var _roomsvr_game = _roomsvr_agent.method.find_game(gameid);
|
||
var _roomsvr_room = _roomsvr_game.method.find_room(o_gameinfo.roomcode);
|
||
var ownerid = _roomsvr_room.owner.playerid;
|
||
var o_owner = o_agent.method.find_player(ownerid);
|
||
if (o_owner && o_owner.whitelist && o_owner.whitelist.length > 0){
|
||
for (var i = 0; i < pack.data.players.length; i++) {
|
||
if (pack.data.players[i]){
|
||
var _playerid = parseInt(pack.data.players[i].playerid);
|
||
var found = false;
|
||
for (var j = 0; j < o_owner.whitelist.length; j++) {
|
||
if (o_owner.whitelist[j][0] == _playerid){
|
||
if (o_owner.whitelist[j][2]){
|
||
pack.data.players[i].charm = o_owner.whitelist[j][2];
|
||
} else {
|
||
pack.data.players[i].charm = 0;
|
||
}
|
||
found = true;
|
||
break;
|
||
}
|
||
}
|
||
if (!found){
|
||
pack.data.players[i].charm = 0;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
catch(e)
|
||
{
|
||
console.log("youle_agent_player_login:"+agentid+","+channelid+","+marketid+","+gameid+","+openid+","+unionid+","+nickname);
|
||
console.log(e);
|
||
}
|
||
} 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){
|
||
if (str){
|
||
var roomserver_data = JSON.parse(str);
|
||
//返回前端需要连接房间服务器
|
||
var _info = pack.data;
|
||
pack.rpc = "connect_roomserver";
|
||
pack.data = {};
|
||
pack.data.roomserver = o_roomserver.server + ":" + o_roomserver.tcpport;
|
||
pack.data.data = {};
|
||
pack.data.data.opt = "player_login";
|
||
pack.data.data.playerid = db_playerid;
|
||
pack.data.data.agentid = agentid;
|
||
pack.data.data.gameid = gameid;
|
||
pack.data.data.roomcode = o_gameinfo.roomcode;
|
||
pack.data.data.roomtype = roomserver_data.data.roomtype;
|
||
pack.data.data.seat = roomserver_data.data.seat;
|
||
pack.data.data.info = _info;
|
||
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
};
|
||
cfg.error = function(str){};
|
||
min_http(cfg);
|
||
}
|
||
}
|
||
|
||
if (!logindb){
|
||
if (!o_player.loginday){
|
||
o_player.loginday = "2016-12-12 12:12:12";
|
||
}
|
||
|
||
var ran = min_random(1, 20);
|
||
var hourdiff = min_datediff(o_player.loginday, min_now(), "hour");
|
||
if (hourdiff >= 24 + ran){
|
||
var db_callback_playerinfo = function(dbdata){
|
||
var gameid = dbdata[0].gameid;
|
||
o_player = o_agent.method.load_player(
|
||
parseInt(dbdata[0].playerid),
|
||
parseInt(dbdata[0].roomcard),
|
||
parseInt(dbdata[0].bean),
|
||
openid,
|
||
unionid,
|
||
nickname2,
|
||
avatar,
|
||
parseInt(sex),
|
||
parseInt(dbdata[0].playertype),
|
||
dbdata[0].invitecode);
|
||
o_player.state = parseInt(dbdata[0].state);
|
||
o_player.advanced = parseInt(dbdata[0].advanced);
|
||
if (dbdata[0].shortcode){
|
||
o_player.shortcode = parseInt(dbdata[0].shortcode);
|
||
} else {
|
||
o_player.shortcode = null;
|
||
}
|
||
if (dbdata[0].roomcodes){
|
||
o_player.roomcodes = JSON.parse(dbdata[0].roomcodes);
|
||
} else {
|
||
o_player.roomcodes = [];
|
||
}
|
||
if (dbdata[0].desone){
|
||
o_player.desone = dbdata[0].desone;
|
||
} else {
|
||
o_player.desone = null;
|
||
}
|
||
if (dbdata[0].destwo){
|
||
o_player.destwo = dbdata[0].destwo;
|
||
} else {
|
||
o_player.destwo = null;
|
||
}
|
||
if (dbdata[0].whitelist){
|
||
o_player.whitelist = youle_agent.deCompressWhiteList(dbdata[0].whitelist);
|
||
for(var k=0;k<o_player.whitelist.length;k++){
|
||
if(o_player.whitelist[k][2]){
|
||
o_player.whitelist[k][2] = parseInt(o_player.whitelist[k][2]);
|
||
}else{
|
||
o_player.whitelist[k][2] = 0;
|
||
}
|
||
}
|
||
} else {
|
||
o_player.whitelist = null;
|
||
}
|
||
if (dbdata[0].lowlimit != null){
|
||
o_player.lowlimit = parseInt(dbdata[0].lowlimit);
|
||
} else {
|
||
o_player.lowlimit = -900000000;
|
||
}
|
||
if (dbdata[0].notice){
|
||
o_player.notice = dbdata[0].notice;
|
||
} else {
|
||
o_player.notice = null;
|
||
}
|
||
if (dbdata[0].psign){
|
||
o_player.sign = dbdata[0].psign;
|
||
} else {
|
||
o_player.sign = null;
|
||
}
|
||
o_player.loginday = min_now();
|
||
o_player.nn_winlose = parseInt(dbdata[0].nn_winlose); //牛牛总输赢分数
|
||
o_player.nn_winlose_xx = parseInt(dbdata[0].nn_winlose_xx); //牛牛总输赢分数(星星场)
|
||
o_player.nn_winlose_x2 = parseInt(dbdata[0].nn_winlose_x2); //牛牛总输赢星星(星星场)
|
||
|
||
updateGameWinLose(gameid,1,dbdata[0].game_winlose,o_player);
|
||
updateGameWinLose(gameid,2,dbdata[0].game_winlose_xx,o_player);
|
||
updateGameWinLose(gameid,3,dbdata[0].game_winlose_x2,o_player);
|
||
|
||
o_player.bankpower = parseInt(dbdata[0].bankpower);
|
||
o_player.bank = parseInt(dbdata[0].bank);
|
||
o_player.bankpwd = dbdata[0].bankpwd;
|
||
}
|
||
if(!youle_agent.debug){
|
||
sql = "call cp_game_player_login(?,?,?,?,?,?,?,?,?,?,?);";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid, channelid, gameid, openid, unionid, nickname2, avatar, sex, province, city, marketid], db_callback_playerinfo);
|
||
}else{
|
||
// var tempData = {};
|
||
// tempData =
|
||
// var pData = [tempData];
|
||
// db_callback_playerinfo(pData);
|
||
}
|
||
}
|
||
}
|
||
|
||
do_check_login(gameid);
|
||
}
|
||
|
||
//通知其他子游戏服务器
|
||
var do_check_login = function(gameid){
|
||
var gameserverlist = youle_platform.config.method.get_gameserver_list(agentid);
|
||
//debugger;
|
||
// gameserverlist.push("127.0.0.1:1089");
|
||
// gameserverlist.push("127.0.0.1:2089");
|
||
|
||
if (gameserverlist.length > 1){
|
||
var msg = {};
|
||
msg.app = "youle";
|
||
msg.route = "agent";
|
||
msg.rpc = "check_login";
|
||
msg.data = {};
|
||
msg.data.agentid = agentid;
|
||
msg.data.playerid = o_player.playerid;
|
||
msg.data.gameid = gameid;
|
||
msg.data.youleid = youle_agent.youleid;
|
||
|
||
for (var i = 0; i < gameserverlist.length; i++) {
|
||
var cfg = {};
|
||
cfg.url = "http://" + gameserverlist[i] + "/index.html";
|
||
cfg.type = "POST";
|
||
cfg.data = JSON.stringify(msg);
|
||
cfg.success = function(str){
|
||
try{
|
||
var obj = JSON.parse(str);
|
||
if (obj.data.state == 1){
|
||
pack.rpc = "kick_server";
|
||
pack.data = {};
|
||
pack.data.msg = "您目前正在进行" + obj.data.gamename + "游戏,请先退出或结束当前游戏。";
|
||
youle_agent.app.SendPack(pack);
|
||
|
||
// o_agent.method.clear_player(o_player.playerid);
|
||
o_player.deleted = 1;
|
||
}
|
||
}catch(e){}
|
||
}
|
||
cfg.error = function(str){
|
||
console.log(min_now() + " check_login失败:" + cfg.url + ":" + agentid + ":" + o_player.playerid);
|
||
}
|
||
min_http(cfg);
|
||
}
|
||
}
|
||
}
|
||
|
||
do_load_agent();
|
||
}
|
||
|
||
youle_agent.check_login = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var youleid = pack.data.youleid;
|
||
var gameid = pack.data.gameid;
|
||
|
||
if (youleid == youle_agent.youleid){
|
||
pack.data.state = 0;
|
||
return pack;
|
||
}
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent){
|
||
pack.data.state = 0;
|
||
return pack;
|
||
}
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
pack.data.state = 0;
|
||
return pack;
|
||
}
|
||
|
||
if (o_player.gameinfo){
|
||
for (var i = 0; i < o_player.gameinfo.length; i++) {
|
||
if (o_player.gameinfo[i] && o_player.gameinfo[i].roomcode){
|
||
pack.data.state = 1;
|
||
pack.data.gamename = o_agent.games[i].gamename;
|
||
return pack;
|
||
}
|
||
}
|
||
for (var i = 0; i < o_player.gameinfo.length; i++) {
|
||
if (o_player.gameinfo[i] && o_player.gameinfo[i].conmode && o_player.gameinfo[i].fromid){
|
||
var msg = {};
|
||
msg.app = "youle";
|
||
msg.route = "agent";
|
||
msg.rpc = "kick_offline";
|
||
msg.conmode = o_player.gameinfo[i].conmode;
|
||
msg.fromid = o_player.gameinfo[i].fromid;
|
||
msg.data={};
|
||
msg.data.fromOther = 1;
|
||
msg.data.gameid = gameid;
|
||
youle_agent.app.SendPack(msg);
|
||
}
|
||
}
|
||
}
|
||
|
||
// o_agent.method.clear_player(playerid);
|
||
o_player.deleted = 1;
|
||
pack.data.state = 0;
|
||
return pack;
|
||
}
|
||
|
||
//玩家断线
|
||
youle_agent.OnTcpDisConnected = function(str_tcpid){
|
||
var o_tcp = youle_agent.tcps.method.find_tcp(str_tcpid);
|
||
if (!o_tcp){
|
||
return;
|
||
}
|
||
//找到了
|
||
var _player = o_tcp.o_player;
|
||
var _gameidx = o_tcp.gameidx;
|
||
if (_player){
|
||
if (_player.gameinfo[_gameidx]){
|
||
if (_player.gameinfo[_gameidx].fromid == str_tcpid){
|
||
if (_player.gameinfo[_gameidx].roomcode || _player.gameinfo[_gameidx].matchid){
|
||
_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);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
//更新tcp连接列表
|
||
youle_agent.tcps.method.delete_tcp(str_tcpid);
|
||
|
||
// //遍历运营商
|
||
// for (var i = 0; i < youle_agent.agents.list.length; i++){
|
||
// var o_agent = youle_agent.agents.list[i];
|
||
// //遍历玩家列表
|
||
// for (var j = 0; j < o_agent.players.length; j++){
|
||
// var o_player = o_agent.players[j];
|
||
// if (o_player){
|
||
// //遍历玩家登录的游戏列表
|
||
// for (var k = 0; k < o_player.gameinfo.length; k++){
|
||
// if (o_player.gameinfo[k]){
|
||
// if (o_player.gameinfo[k].fromid == str_tcpid){
|
||
// //找到了
|
||
// if (!o_player.gameinfo[k].roomcode){
|
||
// //如果不在房间内
|
||
// o_player.gameinfo[k] = null;
|
||
// //判断是否要释放玩家
|
||
// var freeflag = true;
|
||
// for (var m = 0; m < o_player.gameinfo.length; m++) {
|
||
// if (o_player.gameinfo[m]){
|
||
// freeflag = false;
|
||
// break;
|
||
// }
|
||
// }
|
||
// if (freeflag){
|
||
// o_agent.players[j] = null;
|
||
// }
|
||
// } else {
|
||
// o_player.gameinfo[k].ip = null;
|
||
// o_player.gameinfo[k].conmode = null;
|
||
// o_player.gameinfo[k].fromid = null;
|
||
// }
|
||
// return;
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
}
|
||
|
||
//玩家提交地理位置
|
||
youle_agent.submit_location = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var country = pack.data.info.country;
|
||
var province = pack.data.info.province;
|
||
var city = pack.data.info.city;
|
||
var cityCode = pack.data.info.cityCode;
|
||
var district = pack.data.info.district;
|
||
var street = pack.data.info.street;
|
||
var address = pack.data.info.address;
|
||
address = min_replaceAll(address, "&", "");
|
||
var latitude = pack.data.info.latitude;
|
||
var longitude = pack.data.info.longitude;
|
||
|
||
//检查代理商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.address = address;
|
||
o_player.latitude = latitude;
|
||
o_player.longitude = longitude;
|
||
|
||
var db_callback = function(dbdata) {
|
||
if (dbdata.length == 1){
|
||
var db_wechatgzh = dbdata[0].wechatgzh;
|
||
var db_wechatewm = dbdata[0].wechatewm;
|
||
var db_wechatkfh = dbdata[0].wechatkfh;
|
||
var db_qq = dbdata[0].qq;
|
||
var db_tel = dbdata[0].tel;
|
||
var db_invitecode = dbdata[0].invitecode;
|
||
|
||
pack.data = {};
|
||
if (!db_wechatgzh){
|
||
pack.data.wechat_gzh = db_wechatgzh;
|
||
pack.data.wechat_ewm = db_wechatewm;
|
||
}
|
||
if (!db_wechatkfh){
|
||
pack.data.wechat_kfh = db_wechatkfh;
|
||
}
|
||
if (!db_qq){
|
||
pack.data.qq = db_qq;
|
||
}
|
||
if (!db_tel){
|
||
pack.data.tel = db_tel;
|
||
}
|
||
if (!db_invitecode){
|
||
pack.data.invitecode = db_invitecode;
|
||
}
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
}
|
||
|
||
var sql = "call cp_game_login_location(?,?,?,?,?,?,?,?,?,?,?);";
|
||
youle_agent.mysql.execsql("execsql", sql, [agentid, playerid, country, province, city, cityCode, district, street, address, latitude, longitude], db_callback, pack);
|
||
}
|
||
|
||
//玩家提交手机信息
|
||
youle_agent.submit_phoneinfo = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var info = pack.data.info;
|
||
|
||
//检查代理商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;
|
||
};
|
||
|
||
var sql = "call cp_game_login_phoneinfo(?,?,?);";
|
||
youle_agent.mysql.execsql("execsql", sql, [agentid, playerid, JSON.stringify(info)]);
|
||
return pack;
|
||
}
|
||
|
||
//创建房间
|
||
youle_agent.create_room = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var gameid = pack.data.gameid;
|
||
var roomtype = pack.data.roomtype;
|
||
var infinite = 0;
|
||
if (pack.data.infinite){
|
||
infinite = parseInt(pack.data.infinite);
|
||
}
|
||
|
||
//检查代理商id是否存在
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
console.log(min_now() + "创建房间失败,agentid:" + agentid);
|
||
console.log(pack);
|
||
return;
|
||
};
|
||
//检查游戏id是否存在
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
console.log(min_now() + "创建房间失败,gameid:" + gameid);
|
||
console.log(pack);
|
||
return;
|
||
};
|
||
//检查玩家是否存在
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
console.log(min_now() + "创建房间失败,playerid:" + playerid);
|
||
console.log(pack);
|
||
return;
|
||
};
|
||
//检查玩家是否已经在房间内了
|
||
var o_gameinfo = o_player.method.get_gameinfo(o_game);
|
||
if (o_gameinfo && o_gameinfo.roomcode) {
|
||
console.log(min_now() + "创建房间失败,o_gameinfo.roomcode:" + o_gameinfo.roomcode);
|
||
console.log(pack);
|
||
return;
|
||
};
|
||
//检查tcp连接
|
||
try{
|
||
if (o_gameinfo.fromid != pack.fromid){
|
||
console.log(min_now() + "创建房间失败,o_gameinfo.fromid:" + o_gameinfo.fromid + ", pack.fromid:" + pack.fromid);
|
||
console.log(pack);
|
||
return;
|
||
};
|
||
}
|
||
catch(e){
|
||
console.log(min_now() + "创建房间失败,o_gameinfo.fromid != pack.fromid error");
|
||
console.log(pack);
|
||
return;
|
||
}
|
||
//检查服务器是否已关闭
|
||
var config_close = youle_agent.app.youle_platform.config.method.get_paravalue("isclose", agentid, gameid);
|
||
if (o_agent.isclose || config_close == 2){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = "正在进行系统维护,不能创建房间,请稍后再试";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
var roomCardName = youle_agent.app.youle_platform.config.method.get_paravalue("roomCardName", agentid);
|
||
if (!roomCardName){
|
||
roomCardName = "房卡";
|
||
}
|
||
var starName = youle_agent.app.youle_platform.config.method.get_paravalue("starName", agentid);
|
||
if (!starName){
|
||
starName = "星星";
|
||
}
|
||
//获取开房所需的房卡数量
|
||
var needroomcard = youle_agent.import.createroom_needroomcard(o_game, roomtype);
|
||
//获取总局数
|
||
var asetcount = youle_agent.import.createroom_asetcount(o_game, roomtype);
|
||
//获取豆豆下限
|
||
var beanfloor = youle_agent.import.createroom_beanfloor(o_game, roomtype);
|
||
//获取房间类型
|
||
var roommode = youle_agent.import.createroom_roommode(o_game, roomtype);
|
||
//获取星星场倍数
|
||
var beanmult = youle_agent.import.createroom_beanmult(o_game, roomtype);
|
||
//不是星星场
|
||
if (!roommode){
|
||
beanmult = 0;
|
||
}
|
||
//玩家是否需要准备
|
||
var needprepare = youle_agent.import.createroom_needprepare(o_game, roomtype);
|
||
var xxroomdeduct = youle_room.app.youle_platform.config.method.get_paravalue("xxroomdeduct", agentid);
|
||
if (!roommode || (roommode && xxroomdeduct)){
|
||
//检查玩家房卡是否够用
|
||
if (o_player.roomcard < needroomcard){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = roomCardName + "数量不够";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
};
|
||
}
|
||
|
||
//检查玩家豆豆是否够用
|
||
if (beanfloor != null){
|
||
if (o_player.bean < beanfloor){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = starName + "数量不够";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
};
|
||
|
||
//随机获取新的房号
|
||
var roomcode = o_game.method.new_roomcode();
|
||
if (!roomcode){
|
||
console.log(min_now() + "创建房间失败,roomcode:" + roomcode);
|
||
console.log(pack);
|
||
return;
|
||
}
|
||
//获取房号对应的房间服务器地址
|
||
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 = 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 = 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;
|
||
|
||
msg.data.room = {};
|
||
msg.data.room.roomcode = roomcode;
|
||
msg.data.room.roomtype = roomtype;
|
||
msg.data.room.needroomcard = needroomcard;
|
||
msg.data.room.asetcount = asetcount;
|
||
msg.data.room.infinite = infinite;
|
||
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;
|
||
|
||
//加入房间成功
|
||
o_gameinfo.roomcode = roomcode;
|
||
if (o_roomserver.server == o_agent.server){
|
||
//房间服务器与代理商服务器是同一地址
|
||
var roomserver_data = youle_agent.app.youle_room[msg.rpc](msg);
|
||
//返回前端
|
||
pack.data = roomserver_data.data;
|
||
if (pack.data.state != 0){
|
||
//房间服务器创建房间失败
|
||
o_gameinfo.roomcode = null;
|
||
console.log(min_now() + "创建房间失败,youle_agent.app.youle_room.create_room");
|
||
console.log(pack);
|
||
console.log(roomserver_data.data);
|
||
}
|
||
youle_agent.app.SendPack(pack);
|
||
} 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){
|
||
if (str){
|
||
var roomserver_data = JSON.parse(str);
|
||
if (roomserver_data.data.state == 0){
|
||
//创建房间成功
|
||
o_gameinfo.roomcode = roomserver_data.data.roomcode;
|
||
//返回前端需要连接房间服务器
|
||
pack.rpc = "connect_roomserver";
|
||
pack.data = {};
|
||
pack.data.roomserver = o_roomserver.server + ":" + o_roomserver.tcpport;
|
||
pack.data.data = {};
|
||
pack.data.data.opt = "create_room";
|
||
pack.data.data.playerid = playerid;
|
||
pack.data.data.agentid = agentid;
|
||
pack.data.data.gameid = gameid;
|
||
pack.data.data.roomcode = roomserver_data.data.roomcode;
|
||
pack.data.data.seat = roomserver_data.data.seat;
|
||
pack.data.data.infinite = infinite;
|
||
youle_agent.app.SendPack(pack);
|
||
} else {
|
||
//房间服务器创建房间失败
|
||
o_gameinfo.roomcode = null;
|
||
}
|
||
}
|
||
};
|
||
cfg.error = function(str){
|
||
//房间服务器创建房间失败
|
||
o_gameinfo.roomcode = null;
|
||
}
|
||
min_http(cfg);
|
||
}
|
||
}
|
||
|
||
//自己加入房间
|
||
youle_agent.self_join_room = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var gameid = pack.data.gameid;
|
||
var roomcode = parseInt(pack.data.roomcode);
|
||
var joinmode = pack.data.joinmode;
|
||
var vipMatch = pack.data.vipMatch;
|
||
if (!joinmode){
|
||
joinmode = 0;
|
||
} else {
|
||
joinmode = 1;
|
||
}
|
||
var errorMsg = "";
|
||
//检查代理商id是否存在
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return;
|
||
};
|
||
|
||
//检查游戏id是否存在
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
return;
|
||
};
|
||
|
||
//检查玩家是否存在
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return;
|
||
};
|
||
|
||
//检查玩家是否已经在房间内了
|
||
var o_gameinfo = o_player.method.get_gameinfo(o_game);
|
||
if (!o_gameinfo){
|
||
return;
|
||
};
|
||
if (o_gameinfo.roomcode) {
|
||
return;
|
||
}
|
||
//检查tcp连接
|
||
// if (o_gameinfo.fromid != pack.fromid){
|
||
// return;
|
||
// };
|
||
|
||
//检查服务器是否已关闭
|
||
var config_close = youle_agent.app.youle_platform.config.method.get_paravalue("isclose", agentid, gameid);
|
||
if (o_agent.isclose || config_close == 2){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = "正在进行系统维护,不能加入房间,请稍后再试";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
// var bTemp = false;
|
||
// var _shortcode1 = 0;
|
||
// if(roomcode >= 100000){
|
||
// var _roomsvr_agent1 = youle_room.agents.method.find_agent(agentid);
|
||
// var _roomsvr_game1 = _roomsvr_agent1.method.find_game(gameid);
|
||
// var _roomsvr_room1 = _roomsvr_game1.method.find_room(roomcode);
|
||
// if(_roomsvr_room1){
|
||
// if(_roomsvr_room1.advanced_type){
|
||
// _shortcode1 = _roomsvr_room1.shortcode;
|
||
// bTemp = true;
|
||
// }
|
||
// }
|
||
// }
|
||
|
||
if (roomcode < 100000){
|
||
//短号
|
||
var o_shortcode = null;
|
||
// if(roomcode < 100000){
|
||
o_shortcode = o_agent.shortcodes[roomcode];
|
||
// }else{
|
||
// o_shortcode = o_agent.shortcodes[_shortcode1];
|
||
// }
|
||
if (!o_shortcode){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = "短号不存在";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
var pShortcode = o_shortcode.shortcode;
|
||
var config_vipConfig = youle_agent.app.youle_platform.config.method.get_paravalue("vipConfig", agentid, gameid);//0短号 1是否自动加入白名单 2默认的魅力值 3人数上限 4人满的提示内容
|
||
var config_vipConfigIndex = youle_agent.app.youle_platform.config.method.get_paravalue("vipConfigIndex", agentid, gameid);
|
||
var inVip = -1;
|
||
var vipConfig = null;
|
||
var autoAdd = 0;
|
||
if(config_vipConfig){
|
||
if(!config_vipConfigIndex){
|
||
config_vipConfigIndex = 0;
|
||
}
|
||
if(vipMatch){
|
||
if(config_vipConfig.length > config_vipConfigIndex){
|
||
inVip = config_vipConfigIndex;
|
||
vipConfig = config_vipConfig[inVip];
|
||
autoAdd = vipConfig[1];
|
||
o_shortcode = o_agent.shortcodes[vipConfig[0]];
|
||
}
|
||
|
||
}else{
|
||
var indx = min_ary_indexof(config_vipConfig, pShortcode, "0");
|
||
if(indx > -1){
|
||
vipConfig = config_vipConfig[indx];
|
||
autoAdd = vipConfig[1];
|
||
}
|
||
inVip = indx;
|
||
}
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
var ownerid = o_shortcode.playerid;
|
||
var o_owner = o_agent.method.find_player(ownerid);
|
||
if (!o_owner){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = "房主未登录";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
if(o_owner.roomcodes){
|
||
var isClose = 0;
|
||
var rebateType = 0;
|
||
//var videoConfig = null;
|
||
for (var i = 0; i < o_owner.roomcodes.length; i++) {
|
||
if (o_owner.roomcodes[i].gameid == gameid){
|
||
o_roomlist = o_owner.roomcodes[i].roomlist;
|
||
isClose = o_owner.roomcodes[i].isClose;
|
||
rebateType = o_owner.roomcodes[i].rebateType;
|
||
//videoConfig = o_owner.roomcodes[i].videoConfig;
|
||
break;
|
||
}
|
||
}
|
||
|
||
if(isClose){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = "房间已被房主暂时关闭";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
}
|
||
//白名单判定
|
||
try{
|
||
|
||
|
||
if(inVip == -1 || !autoAdd){
|
||
if (o_owner.whitelist && o_owner.whitelist.length > 0){
|
||
var white_idx = min_ary_indexof(o_owner.whitelist, playerid, "playerid");
|
||
if (white_idx == -1){
|
||
white_idx = min_ary_indexof(o_owner.whitelist, playerid);
|
||
}
|
||
if (white_idx == -1){
|
||
for (var i = 0; i < o_owner.whitelist.length; i++) {
|
||
if (o_owner.whitelist[i][0] == playerid){
|
||
white_idx = i;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
if (playerid != ownerid && white_idx == -1){
|
||
// console.log(o_owner.notice);
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
if(!o_owner.notice){
|
||
pack.data.error = "您的ID为:"+playerid+"\n房主设置了白名单,您未在白名单中不能进入房间";
|
||
// pack.data.error = "房主设置了白名单";
|
||
}else{
|
||
pack.data.error = "您的ID为:"+playerid+"\n房主设置了白名单,并对您说:\n"+o_owner.notice;
|
||
}
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
//短号魅力值下限判断
|
||
if (playerid != ownerid){
|
||
if (!o_owner.lowlimit && o_owner.lowlimit != 0){
|
||
o_owner.lowlimit = -900000000;
|
||
}
|
||
if (!o_owner.whitelist[white_idx][2]){
|
||
o_owner.whitelist[white_idx][2] = 0;
|
||
}
|
||
if (parseInt(o_owner.whitelist[white_idx][2]) < o_owner.lowlimit){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = "您的魅力值未达到房间的下限值,不能进入房间";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
}else{
|
||
if(o_owner.whitelist){
|
||
var pIndex = min_ary_indexof(o_owner.whitelist, playerid, "0");
|
||
if(pIndex < 0){//不在白名单
|
||
if(o_owner.whitelist.length < vipConfig[3]){
|
||
var pInfo = [playerid,"",vipConfig[2]];
|
||
o_owner.whitelist.push(pInfo);
|
||
var sql = "update player set play_whitelist = ? where play_agentid = ? and play_playerid = ?";
|
||
|
||
youle_room.mysql.execsql("execsql", sql, [youle_agent.compressWhiteList(o_owner.whitelist), agentid, playerid]);
|
||
}else{
|
||
// var vIndex = (inVip + 1) % config_vipConfig.length;
|
||
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = min_replaceAll(vipConfig[4],"#","\n",false);
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
}else{
|
||
|
||
}
|
||
}else{
|
||
o_owner.whitelist = [];
|
||
var pInfo = [playerid,"",vipConfig[2]];
|
||
o_owner.whitelist.push(pInfo);
|
||
var sql = "update player set play_whitelist = ? where play_agentid = ? and play_playerid = ?";
|
||
|
||
youle_room.mysql.execsql("execsql", sql, [youle_agent.compressWhiteList(o_owner.whitelist), agentid, playerid]);
|
||
|
||
}
|
||
|
||
}
|
||
}catch(e){
|
||
console.log(e);
|
||
};
|
||
//百人特殊处理
|
||
if(gameid == "Btke0urRy0cvPd5CIvD5yfhYhKhdSdex"){
|
||
var brNumber = youle_room.app.youle_platform.config.method.get_paravalue("brNumber",agentid);
|
||
if(brNumber){
|
||
var starName = youle_agent.app.youle_platform.config.method.get_paravalue("starName", agentid);
|
||
brNumber = Number(brNumber);
|
||
if(o_owner.bean < brNumber){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = "房主"+starName+"数量不足!";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
//房主设置的进入名单判定
|
||
if(o_owner.banList){
|
||
if(playerid != ownerid && o_owner.banList.indexOf(Number(playerid)) > -1){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = "您已被房主限制进入!";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
}
|
||
var o_roomlist;
|
||
if (!o_roomlist){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = "未找到短号对应的房间";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
|
||
//根据人数排序房间,优先进人多的房间
|
||
var _roomlist = [];
|
||
var _roomsvr_agent = youle_room.agents.method.find_agent(agentid);
|
||
var _roomsvr_game = _roomsvr_agent.method.find_game(gameid);
|
||
for (var i = 0; i < o_roomlist.length; i++) {
|
||
var _roomcode = o_roomlist[i];
|
||
var _roomsvr_room = _roomsvr_game.method.find_room(_roomcode);
|
||
if (_roomsvr_room){
|
||
var _playercount = 0;
|
||
for (var j = 0; j < _roomsvr_room.seatlist.length; j++) {
|
||
if (_roomsvr_room.seatlist[j]){
|
||
_playercount = _playercount + 1;
|
||
}
|
||
}
|
||
//未满
|
||
if (_playercount < _roomsvr_room.seatlist.length){
|
||
var _room = {};
|
||
_room.roomcode = _roomcode;
|
||
_room.playercount = _playercount;
|
||
var _isfound = false;
|
||
for (var k = 0; k < _roomlist.length; k++) {
|
||
if (_playercount > _roomlist[k].playercount){
|
||
_roomlist.splice(k, 0, _room);
|
||
_isfound = true;
|
||
break;
|
||
}
|
||
}
|
||
if (!_isfound){
|
||
_roomlist.push(_room);
|
||
}
|
||
}
|
||
} else {
|
||
var _msg = {};
|
||
_msg.data = {};
|
||
_msg.data.agentid = agentid;
|
||
_msg.data.gameid = gameid;
|
||
_msg.data.playerid = ownerid;
|
||
_msg.data.roomcode = _roomcode;
|
||
_msg.data.shortcode = roomcode;
|
||
//_msg.data.videoConfig = videoConfig;
|
||
youle_agent.advanced_createroom_roomcode(_msg);
|
||
}
|
||
}
|
||
|
||
for (var i = 0; i < _roomlist.length; i++) {
|
||
roomcode = _roomlist[i].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 = "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;
|
||
if (o_owner.whitelist && o_owner.whitelist.length > 0){
|
||
if (white_idx > -1 && o_owner.whitelist[white_idx]){
|
||
if (o_owner.whitelist[white_idx].code){
|
||
msg.data.paycode = o_owner.whitelist[white_idx].code;
|
||
} else if (o_owner.whitelist[white_idx][1]){
|
||
msg.data.paycode = o_owner.whitelist[white_idx][1];
|
||
}
|
||
if (o_owner.whitelist[white_idx][2]){
|
||
msg.data.charm = o_owner.whitelist[white_idx][2];
|
||
} else {
|
||
msg.data.charm = 0;
|
||
}
|
||
}
|
||
}
|
||
msg.data.ip = o_gameinfo.ip;
|
||
msg.data.conmode = o_gameinfo.conmode;
|
||
msg.data.fromid = o_gameinfo.fromid;
|
||
msg.data.agentid = agentid;
|
||
msg.data.gameid = gameid;
|
||
msg.data.roomcode = roomcode;
|
||
msg.data.playerroomcard = o_player.roomcard;
|
||
msg.data.playerbean = o_player.bean;
|
||
msg.data.joinmode = joinmode;
|
||
msg.data.address = o_player.address;
|
||
msg.data.latitude = o_player.latitude;
|
||
msg.data.longitude = o_player.longitude;
|
||
|
||
//加入房 间成功
|
||
o_gameinfo.roomcode = roomcode;
|
||
if (o_roomserver.server == o_agent.server){
|
||
//房间服务器与代理商服务器是同一地址
|
||
var roomserver_data = youle_agent.app.youle_room[msg.rpc](msg);
|
||
|
||
//返回前端
|
||
pack.data = roomserver_data.data;
|
||
//加上房主设置的公告
|
||
pack.data.ownerNotice = o_owner.notice;
|
||
if (pack.data.state != -1){
|
||
if (pack.data.state != 0){
|
||
errorMsg = pack.data.error;
|
||
//房间服务器加入房间失败
|
||
o_gameinfo.roomcode = null;
|
||
} else {
|
||
for (var i = 0; i < pack.data.players.length; i++) {
|
||
if (pack.data.players[i] && pack.data.players[i].bean == null){
|
||
var _playerid = parseInt(pack.data.players[i].playerid);
|
||
var _o_player = o_agent.method.find_player(_playerid);
|
||
pack.data.players[i].bean = _o_player.bean;
|
||
}
|
||
}
|
||
//获取玩家的短号魅力值
|
||
if (o_owner.whitelist && o_owner.whitelist.length > 0){
|
||
for (var i = 0; i < pack.data.players.length; i++) {
|
||
if (pack.data.players[i]){
|
||
var _playerid = parseInt(pack.data.players[i].playerid);
|
||
var found = false;
|
||
if (o_owner.whitelist){
|
||
for (var j = 0; j < o_owner.whitelist.length; j++) {
|
||
if (o_owner.whitelist[j][0] == _playerid){
|
||
if (o_owner.whitelist[j][2]){
|
||
pack.data.players[i].charm = o_owner.whitelist[j][2];
|
||
} else {
|
||
pack.data.players[i].charm = 0;
|
||
}
|
||
found = true;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
if (!found){
|
||
pack.data.players[i].charm = 0;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
pack.data.ownerNote = o_owner.desone;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
} else {
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
if (!o_gameinfo.roomcode){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
if(errorMsg){
|
||
pack.data.error = errorMsg;
|
||
}else{
|
||
pack.data.error = "未找到空闲的房间";
|
||
}
|
||
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
return;
|
||
} else {
|
||
//长号
|
||
try{
|
||
//白名单判定
|
||
var _roomsvr_agent = youle_room.agents.method.find_agent(agentid);
|
||
var _roomsvr_game = _roomsvr_agent.method.find_game(gameid);
|
||
var _roomsvr_room = _roomsvr_game.method.find_room(roomcode);
|
||
var ownerid = _roomsvr_room.owner.playerid;
|
||
var o_owner = o_agent.method.find_player(ownerid);
|
||
|
||
if (o_owner && o_owner.roomcodes){
|
||
var isClose = 0;
|
||
var rebateType = 0;
|
||
var forbidSelect = 0;
|
||
//var videoConfig = null;
|
||
for (var i = 0; i < o_owner.roomcodes.length; i++) {
|
||
if (o_owner.roomcodes[i].gameid == gameid){
|
||
o_roomlist = o_owner.roomcodes[i].roomlist;
|
||
isClose = o_owner.roomcodes[i].isClose;
|
||
rebateType = o_owner.roomcodes[i].rebateType;
|
||
forbidSelect = o_owner.roomcodes[i].forbidSelect;
|
||
//videoConfig = o_owner.roomcodes[i].videoConfig;
|
||
break;
|
||
}
|
||
}
|
||
|
||
|
||
var roomidx = -1;
|
||
for (var i = 0; i < o_owner.roomcodes.length; i++) {
|
||
if (o_owner.roomcodes[i].gameid == gameid) {
|
||
roomidx = min_ary_indexof(o_owner.roomcodes[i].roomlist, roomcode);
|
||
break;
|
||
}
|
||
}
|
||
if (roomidx > -1){
|
||
if(isClose){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = "房间已被房主暂时关闭";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
var pShortcode = _roomsvr_room.shortcode;
|
||
var config_vipConfig = youle_agent.app.youle_platform.config.method.get_paravalue("vipConfig", agentid, gameid);//0短号 1是否自动加入白名单 2默认的魅力值 3人数上限 4人满的提示内容
|
||
var config_vipConfigIndex = youle_agent.app.youle_platform.config.method.get_paravalue("vipConfigIndex", agentid, gameid);
|
||
var inVip = -1;
|
||
var vipConfig = null;
|
||
var autoAdd = 0;
|
||
if(config_vipConfig){
|
||
if(!config_vipConfigIndex){
|
||
config_vipConfigIndex = 0;
|
||
}
|
||
if(vipMatch){
|
||
if(config_vipConfig.length > config_vipConfigIndex){
|
||
inVip = config_vipConfigIndex;
|
||
vipConfig = config_vipConfig[inVip];
|
||
autoAdd = vipConfig[1];
|
||
|
||
}
|
||
|
||
}else{
|
||
var indx = min_ary_indexof(config_vipConfig, pShortcode, "0");
|
||
if(indx > -1){
|
||
vipConfig = config_vipConfig[indx];
|
||
autoAdd = vipConfig[1];
|
||
}
|
||
inVip = indx;
|
||
}
|
||
|
||
|
||
}
|
||
if(inVip == -1 || !autoAdd){
|
||
if (o_owner.whitelist && o_owner.whitelist.length > 0){
|
||
var white_idx = min_ary_indexof(o_owner.whitelist, playerid, "playerid");
|
||
if (white_idx == -1){
|
||
white_idx = min_ary_indexof(o_owner.whitelist, playerid);
|
||
}
|
||
if (white_idx == -1){
|
||
for (var i = 0; i < o_owner.whitelist.length; i++) {
|
||
if (o_owner.whitelist[i][0] == playerid){
|
||
white_idx = i;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
if (playerid != ownerid && white_idx == -1){
|
||
pack.data = {};
|
||
if(!o_owner.notice){
|
||
pack.data.error = "您的ID为:"+playerid+"\n房主设置了白名单,您未在白名单中不能进入房间";
|
||
// pack.data.error = "房主设置了白名单";
|
||
}else{
|
||
pack.data.error = "您的ID为:"+playerid+"\n房主设置了白名单,并对您说:\n"+o_owner.notice;
|
||
}
|
||
|
||
pack.data.state = 1;
|
||
//pack.data.error = "房主设置了白名单,您未在白名单中不能进入房间";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
//短号魅力值下限判断
|
||
if (playerid != ownerid){
|
||
if (!o_owner.lowlimit && o_owner.lowlimit != 0){
|
||
o_owner.lowlimit = -900000000;
|
||
}
|
||
if (!o_owner.whitelist[white_idx][2]){
|
||
o_owner.whitelist[white_idx][2] = 0;
|
||
}
|
||
if (parseInt(o_owner.whitelist[white_idx][2]) < o_owner.lowlimit){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = "您的魅力值未达到房间的下限值,不能进入房间";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
}
|
||
|
||
}
|
||
}else{
|
||
if(o_owner.whitelist){
|
||
var pIndex = min_ary_indexof(o_owner.whitelist, playerid, "0");
|
||
if(pIndex < 0){//不在白名单
|
||
if(o_owner.whitelist.length < vipConfig[3]){
|
||
var pInfo = [playerid,"",vipConfig[2]];
|
||
o_owner.whitelist.push(pInfo);
|
||
var sql = "update player set play_whitelist = ? where play_agentid = ? and play_playerid = ?";
|
||
|
||
youle_room.mysql.execsql("execsql", sql, [youle_agent.compressWhiteList(o_player.whitelist), agentid, playerid]);
|
||
}else{
|
||
// var vIndex = (inVip + 1) % config_vipConfig.length;
|
||
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = pack.data.error = min_replaceAll(vipConfig[4],"#","\n",false);
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
}else{
|
||
|
||
}
|
||
}else{
|
||
if(vipConfig[3] > 0){
|
||
o_owner.whitelist = [];
|
||
var pInfo = [playerid,"",vipConfig[2]];
|
||
o_owner.whitelist.push(pInfo);
|
||
var sql = "update player set play_whitelist = ? where play_agentid = ? and play_playerid = ?";
|
||
|
||
youle_room.mysql.execsql("execsql", sql, [youle_agent.compressWhiteList(o_player.whitelist), agentid, playerid]);
|
||
}else{
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = pack.data.error = min_replaceAll(vipConfig[4],"#","\n",false);
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
|
||
}
|
||
}
|
||
}
|
||
//房主设置的进入名单判定
|
||
if(o_owner.banList){
|
||
if(playerid != ownerid && o_owner.banList.indexOf(Number(playerid)) > -1){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = "您已被房主限制进入";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
}
|
||
//百人特殊处理
|
||
if(gameid == "Btke0urRy0cvPd5CIvD5yfhYhKhdSdex"){
|
||
var brNumber = youle_room.app.youle_platform.config.method.get_paravalue("brNumber",agentid);
|
||
if(brNumber){
|
||
var starName = youle_agent.app.youle_platform.config.method.get_paravalue("starName", agentid);
|
||
brNumber = Number(brNumber);
|
||
if(o_owner.bean < brNumber){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = "房主"+starName+"数量不足!";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
if(playerid != ownerid && forbidSelect){
|
||
var _roomlist = [];
|
||
var _roomsvr_agent = youle_room.agents.method.find_agent(agentid);
|
||
var _roomsvr_game = _roomsvr_agent.method.find_game(gameid);
|
||
for (var i = 0; i < o_roomlist.length; i++) {
|
||
var _roomcode = o_roomlist[i];
|
||
var _roomsvr_room = _roomsvr_game.method.find_room(_roomcode);
|
||
if (_roomsvr_room){
|
||
var _playercount = 0;
|
||
for (var j = 0; j < _roomsvr_room.seatlist.length; j++) {
|
||
if (_roomsvr_room.seatlist[j]){
|
||
_playercount = _playercount + 1;
|
||
}
|
||
}
|
||
//未满
|
||
if (_playercount < _roomsvr_room.seatlist.length){
|
||
var _room = {};
|
||
_room.roomcode = _roomcode;
|
||
_room.playercount = _playercount;
|
||
var _isfound = false;
|
||
for (var k = 0; k < _roomlist.length; k++) {
|
||
if (_playercount > _roomlist[k].playercount){
|
||
_roomlist.splice(k, 0, _room);
|
||
_isfound = true;
|
||
break;
|
||
}
|
||
}
|
||
if (!_isfound){
|
||
_roomlist.push(_room);
|
||
}
|
||
}
|
||
} else {
|
||
var _msg = {};
|
||
_msg.data = {};
|
||
_msg.data.agentid = agentid;
|
||
_msg.data.gameid = gameid;
|
||
_msg.data.playerid = ownerid;
|
||
_msg.data.roomcode = _roomcode;
|
||
_msg.data.shortcode = roomcode;
|
||
//_msg.data.videoConfig = videoConfig;
|
||
youle_agent.advanced_createroom_roomcode(_msg);
|
||
}
|
||
}
|
||
|
||
for (var i = 0; i < _roomlist.length; i++) {
|
||
roomcode = _roomlist[i].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 = "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;
|
||
if (o_owner.whitelist && o_owner.whitelist.length > 0){
|
||
if (white_idx > -1 && o_owner.whitelist[white_idx]){
|
||
if (o_owner.whitelist[white_idx].code){
|
||
msg.data.paycode = o_owner.whitelist[white_idx].code;
|
||
} else if (o_owner.whitelist[white_idx][1]){
|
||
msg.data.paycode = o_owner.whitelist[white_idx][1];
|
||
}
|
||
if (o_owner.whitelist[white_idx][2]){
|
||
msg.data.charm = o_owner.whitelist[white_idx][2];
|
||
} else {
|
||
msg.data.charm = 0;
|
||
}
|
||
}
|
||
}
|
||
msg.data.ip = o_gameinfo.ip;
|
||
msg.data.conmode = o_gameinfo.conmode;
|
||
msg.data.fromid = o_gameinfo.fromid;
|
||
msg.data.agentid = agentid;
|
||
msg.data.gameid = gameid;
|
||
msg.data.roomcode = roomcode;
|
||
msg.data.playerroomcard = o_player.roomcard;
|
||
msg.data.playerbean = o_player.bean;
|
||
msg.data.joinmode = joinmode;
|
||
msg.data.address = o_player.address;
|
||
msg.data.latitude = o_player.latitude;
|
||
msg.data.longitude = o_player.longitude;
|
||
|
||
//加入房 间成功
|
||
o_gameinfo.roomcode = roomcode;
|
||
if (o_roomserver.server == o_agent.server){
|
||
//房间服务器与代理商服务器是同一地址
|
||
var roomserver_data = youle_agent.app.youle_room[msg.rpc](msg);
|
||
|
||
//返回前端
|
||
pack.data = roomserver_data.data;
|
||
//加上房主设置的公告
|
||
pack.data.ownerNotice = o_owner.notice;
|
||
if (pack.data.state != -1){
|
||
if (pack.data.state != 0){
|
||
errorMsg = pack.data.error;
|
||
//房间服务器加入房间失败
|
||
o_gameinfo.roomcode = null;
|
||
} else {
|
||
for (var i = 0; i < pack.data.players.length; i++) {
|
||
if (pack.data.players[i] && pack.data.players[i].bean == null){
|
||
var _playerid = parseInt(pack.data.players[i].playerid);
|
||
var _o_player = o_agent.method.find_player(_playerid);
|
||
pack.data.players[i].bean = _o_player.bean;
|
||
}
|
||
}
|
||
//获取玩家的短号魅力值
|
||
if (o_owner.whitelist && o_owner.whitelist.length > 0){
|
||
for (var i = 0; i < pack.data.players.length; i++) {
|
||
if (pack.data.players[i]){
|
||
var _playerid = parseInt(pack.data.players[i].playerid);
|
||
var found = false;
|
||
if (o_owner.whitelist){
|
||
for (var j = 0; j < o_owner.whitelist.length; j++) {
|
||
if (o_owner.whitelist[j][0] == _playerid){
|
||
if (o_owner.whitelist[j][2]){
|
||
pack.data.players[i].charm = o_owner.whitelist[j][2];
|
||
} else {
|
||
pack.data.players[i].charm = 0;
|
||
}
|
||
found = true;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
if (!found){
|
||
pack.data.players[i].charm = 0;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
pack.data.ownerNote = o_owner.desone;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
} else {
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
}catch(e){};
|
||
|
||
//获取房号对应的房间服务器地址
|
||
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 = "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;
|
||
if (o_owner && o_owner.whitelist && o_owner.whitelist.length > 0){
|
||
if (white_idx > -1 && o_owner.whitelist[white_idx]){
|
||
if (o_owner.whitelist[white_idx].code){
|
||
msg.data.paycode = o_owner.whitelist[white_idx].code;
|
||
} else if (o_owner.whitelist[white_idx][1]){
|
||
msg.data.paycode = o_owner.whitelist[white_idx][1];
|
||
}
|
||
if (o_owner.whitelist[white_idx][2]){
|
||
msg.data.charm = o_owner.whitelist[white_idx][2];
|
||
} else {
|
||
msg.data.charm = 0;
|
||
}
|
||
}
|
||
}
|
||
msg.data.ip = o_gameinfo.ip;
|
||
msg.data.conmode = o_gameinfo.conmode;
|
||
msg.data.fromid = o_gameinfo.fromid;
|
||
msg.data.agentid = agentid;
|
||
msg.data.gameid = gameid;
|
||
msg.data.roomcode = roomcode;
|
||
msg.data.playerroomcard = o_player.roomcard;
|
||
msg.data.playerbean = o_player.bean;
|
||
msg.data.joinmode = joinmode;
|
||
msg.data.address = o_player.address;
|
||
msg.data.latitude = o_player.latitude;
|
||
msg.data.longitude = o_player.longitude;
|
||
|
||
|
||
//加入房间成功
|
||
o_gameinfo.roomcode = roomcode;
|
||
if (o_roomserver.server == o_agent.server){
|
||
//房间服务器与代理商服务器是同一地址
|
||
var roomserver_data = youle_agent.app.youle_room[msg.rpc](msg);
|
||
|
||
//返回前端
|
||
pack.data = roomserver_data.data;
|
||
//添加房主留言fang
|
||
if(o_owner){
|
||
pack.data.ownerNotice = o_owner.notice;
|
||
}
|
||
|
||
if (pack.data.state != -1){
|
||
if (pack.data.state != 0){
|
||
//房间服务器加入房间失败
|
||
o_gameinfo.roomcode = null;
|
||
} else {
|
||
for (var i = 0; i < pack.data.players.length; i++) {
|
||
if (pack.data.players[i] && pack.data.players[i].bean == null){
|
||
var _playerid = parseInt(pack.data.players[i].playerid);
|
||
var _o_player = o_agent.method.find_player(_playerid);
|
||
pack.data.players[i].bean = _o_player.bean;
|
||
}
|
||
}
|
||
|
||
//获取玩家的短号魅力值
|
||
if (pack.data.shortcode){
|
||
if (o_owner.whitelist && o_owner.whitelist.length > 0){
|
||
for (var i = 0; i < pack.data.players.length; i++) {
|
||
if (pack.data.players[i]){
|
||
var _playerid = parseInt(pack.data.players[i].playerid);
|
||
var found = false;
|
||
if (o_owner.whitelist){
|
||
|
||
for (var j = 0; j < o_owner.whitelist.length; j++) {
|
||
if (o_owner.whitelist[j][0] == _playerid){
|
||
if (o_owner.whitelist[j][2]){
|
||
pack.data.players[i].charm = o_owner.whitelist[j][2];
|
||
} else {
|
||
pack.data.players[i].charm = 0;
|
||
}
|
||
found = true;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
if (!found){
|
||
pack.data.players[i].charm = 0;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
} 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){
|
||
if (str){
|
||
var roomserver_data = JSON.parse(str);
|
||
pack.data = roomserver_data.data;
|
||
if (pack.data.state == 0){
|
||
//返回前端需要连接房间服务器
|
||
pack.rpc = "connect_roomserver";
|
||
pack.data = {};
|
||
pack.data.roomserver = o_roomserver.server + ":" + o_roomserver.tcpport;
|
||
pack.data.data = {};
|
||
pack.data.data.opt = "self_join_room";
|
||
pack.data.data.playerid = playerid;
|
||
pack.data.data.agentid = agentid;
|
||
pack.data.data.gameid = gameid;
|
||
pack.data.data.roomcode = roomcode;
|
||
pack.data.data.seat = roomserver_data.data.seat;
|
||
pack.data.data.infinite = roomserver_data.data.infinite;
|
||
pack.data.data.isowner = roomserver_data.data.isowner;
|
||
} else {
|
||
//房间服务器加入房间失败
|
||
o_gameinfo.roomcode = null;
|
||
}
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
};
|
||
cfg.error = function(str){
|
||
//房间服务器加入房间失败
|
||
o_gameinfo.roomcode = null;
|
||
};
|
||
min_http(cfg);
|
||
}
|
||
}
|
||
}
|
||
//获取战绩gameinfo1
|
||
youle_agent.get_player_grade1_backup = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var gameid = pack.data.gameid;
|
||
if (pack.data.type){
|
||
var type = pack.data.type;
|
||
} else {
|
||
var type = null;
|
||
}
|
||
if (pack.data.direction){
|
||
var direction = pack.data.direction;
|
||
} else {
|
||
var direction = null;
|
||
}
|
||
if (pack.data.gradeidx){
|
||
var gradeidx = pack.data.gradeidx;
|
||
} else {
|
||
var gradeidx = null;
|
||
}
|
||
|
||
//检查代理商id是否存在
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return;
|
||
};
|
||
//检查游戏id是否存在
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
return;
|
||
};
|
||
//检查玩家是否存在
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return;
|
||
};
|
||
//检查tcp连接
|
||
var o_gameinfo = o_player.method.get_gameinfo(o_game);
|
||
if (o_gameinfo.fromid != pack.fromid){
|
||
return;
|
||
};
|
||
// 添加今日大赢家次数的数据查询
|
||
var db_callback = function(dbdata){
|
||
//返回前端结果
|
||
pack.data = {};
|
||
pack.data.gradeinfo = dbdata;
|
||
if (type){
|
||
youle_agent.app.SendPack(pack);
|
||
} else {
|
||
//查询累积游戏局数
|
||
var db_callback2 = function(dbdata2){
|
||
if (dbdata2.length > 0){
|
||
pack.data.asetcount = parseInt(dbdata2[0].agpl_playset);
|
||
}
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
var sql2 = "select agpl_playset from agent_game_player where agpl_agentid = ? and agpl_gameid = ? and agpl_playerid = ?;";
|
||
youle_agent.mysql.execsql("opensql", sql2, [agentid, gameid, playerid], db_callback2, pack);
|
||
}
|
||
}
|
||
|
||
var sql = "call cp_game_grade_get1(?,?,?,?,?,?);";
|
||
youle_agent.mysql_grade.execsql("opensql", sql, [agentid, playerid, gameid, type, direction, gradeidx], db_callback, pack);
|
||
|
||
}
|
||
//获取战绩gameinfo1
|
||
youle_agent.get_player_grade1 = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var gameid = pack.data.gameid;
|
||
if (pack.data.type){
|
||
var type = pack.data.type;
|
||
} else {
|
||
var type = null;
|
||
}
|
||
if (pack.data.direction){
|
||
var direction = pack.data.direction;
|
||
} else {
|
||
var direction = null;
|
||
}
|
||
if (pack.data.gradeidx){
|
||
var gradeidx = pack.data.gradeidx;
|
||
} else {
|
||
var gradeidx = null;
|
||
}
|
||
|
||
//检查代理商id是否存在
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return;
|
||
};
|
||
//检查游戏id是否存在
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
return;
|
||
};
|
||
//检查玩家是否存在
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return;
|
||
};
|
||
//检查tcp连接
|
||
var o_gameinfo = o_player.method.get_gameinfo(o_game);
|
||
if (o_gameinfo.fromid != pack.fromid){
|
||
return;
|
||
};
|
||
// 添加今日大赢家次数的数据查询
|
||
var db_callback = function(dbdata){
|
||
//返回前端结果
|
||
pack.data = {};
|
||
pack.data.gradeinfo = dbdata;
|
||
var sql3 = "select count(1) as win from player_grade where date(plgr_overtime) = curdate() and plgr_agentid = ? and plgr_gameid = ? and plgr_playerid = ? and plgr_winner = 1;";
|
||
var db_callback3 = function(dbdata3){
|
||
if(dbdata3.length > 0){
|
||
pack.data.winnerCount = dbdata3[0].win;
|
||
}
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
if (type){
|
||
//youle_agent.app.SendPack(pack);
|
||
youle_agent.mysql_grade.execsql("opensql", sql3, [agentid, gameid, playerid], db_callback3,pack);
|
||
} else {
|
||
//查询累积游戏局数
|
||
var db_callback2 = function(dbdata2){
|
||
if (dbdata2.length > 0){
|
||
pack.data.asetcount = parseInt(dbdata2[0].agpl_playset);
|
||
}
|
||
//youle_agent.app.SendPack(pack);
|
||
youle_agent.mysql_grade.execsql("opensql", sql3, [agentid, gameid, playerid], db_callback3,pack);
|
||
}
|
||
var sql2 = "select agpl_playset from agent_game_player where agpl_agentid = ? and agpl_gameid = ? and agpl_playerid = ?;";
|
||
youle_agent.mysql.execsql("opensql", sql2, [agentid, gameid, playerid], db_callback2, pack);
|
||
}
|
||
}
|
||
|
||
var sql = "call cp_game_grade_get1(?,?,?,?,?,?);";
|
||
youle_agent.mysql_grade.execsql("opensql", sql, [agentid, playerid, gameid, type, direction, gradeidx], db_callback, pack);
|
||
}
|
||
|
||
//获取战绩gameinfo2
|
||
youle_agent.get_player_grade2 = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var gameid = pack.data.gameid;
|
||
var idx = parseInt(pack.data.idx);
|
||
|
||
//检查代理商id是否存在
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return;
|
||
};
|
||
//检查游戏id是否存在
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
return;
|
||
};
|
||
//检查玩家是否存在
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return;
|
||
};
|
||
//检查tcp连接
|
||
var o_gameinfo = o_player.method.get_gameinfo(o_game);
|
||
if (o_gameinfo.fromid != pack.fromid){
|
||
return;
|
||
};
|
||
|
||
var db_callback = function(dbdata){
|
||
//返回前端结果
|
||
if (dbdata.length > 0){
|
||
pack.data = {};
|
||
pack.data.gameinfo2 = dbdata[0].gameinfo2;
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
}
|
||
|
||
var sql = "call cp_game_grade_get2(?,?,?,?);";
|
||
youle_agent.mysql_grade.execsql("opensql", sql, [agentid, playerid, gameid, idx], db_callback, pack);
|
||
}
|
||
|
||
//获取玩家的任务列表
|
||
youle_agent.get_player_task = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var gameid = pack.data.gameid;
|
||
|
||
//检查代理商id是否存在
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return;
|
||
};
|
||
//检查游戏id是否存在
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
return;
|
||
};
|
||
//检查玩家是否存在
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return;
|
||
};
|
||
//检查tcp连接
|
||
try{
|
||
var o_gameinfo = o_player.method.get_gameinfo(o_game);
|
||
if (o_gameinfo.fromid != pack.fromid){
|
||
return;
|
||
};
|
||
}
|
||
catch(e){
|
||
console.log(min_now() + "youle_agent.get_player_task fromid is null");
|
||
console.log(o_player);
|
||
console.log(o_game);
|
||
console.log(o_gameinfo);
|
||
console.log(pack);
|
||
}
|
||
|
||
var db_callback = function(dbdata){
|
||
pack.data = {};
|
||
pack.data.tasks = dbdata;
|
||
|
||
var roomCardName = youle_agent.app.youle_platform.config.method.get_paravalue("roomCardName", agentid);
|
||
if (!roomCardName){
|
||
roomCardName = "房卡";
|
||
}
|
||
var starName = youle_agent.app.youle_platform.config.method.get_paravalue("starName", agentid);
|
||
if (!starName){
|
||
starName = "星星";
|
||
}
|
||
|
||
for (var i = 0; i < pack.data.tasks.length; i++) {
|
||
pack.data.tasks[i].title = min_replaceAll(pack.data.tasks[i].title, "房卡", roomCardName);
|
||
pack.data.tasks[i].title = min_replaceAll(pack.data.tasks[i].title, "星星", starName);
|
||
}
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
|
||
var sql = "call cp_game_task_list(?,?,?);";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid, playerid, gameid], db_callback, pack);
|
||
}
|
||
|
||
//玩家完成一次任务
|
||
youle_agent.player_finish_task = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var taskid = pack.data.taskid;
|
||
|
||
//检查代理商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;
|
||
};
|
||
|
||
var db_callback = function(dbdata){
|
||
pack.data = {};
|
||
pack.data.taskid = taskid;
|
||
pack.data.total = dbdata[0].tasktotal;
|
||
pack.data.award = dbdata[0].taskaward;
|
||
pack.data.finish = dbdata[0].taskfinish;
|
||
pack.data.state = dbdata[0].taskstate;
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
|
||
var sql = "call cp_game_task_finish(?,?,?,1,1);";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid, playerid, taskid], db_callback, pack);
|
||
}
|
||
|
||
//玩家领取任务奖励
|
||
youle_agent.get_task_award = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var taskid = pack.data.taskid;
|
||
|
||
//检查代理商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;
|
||
};
|
||
|
||
var db_callback = function(dbdata){
|
||
//返回前端
|
||
if (dbdata[0].result == 0){
|
||
pack.data = {};
|
||
pack.data.taskid = taskid;
|
||
pack.data.taskstate = parseInt(dbdata[0].playertaskstate);
|
||
youle_agent.app.SendPack(pack);
|
||
//修改玩家房卡数量
|
||
o_player.method.update_roomcard(3, parseInt(dbdata[0].roomcard), parseInt(dbdata[0].taskaward));
|
||
|
||
//统计友乐的奖励房卡情况
|
||
if (!o_agent.taskaward){
|
||
o_agent.taskaward = [];
|
||
}
|
||
var day = min_day();
|
||
var o_day;
|
||
var dayidx = min_ary_indexof(o_agent.taskaward, day, "day");
|
||
if (dayidx == -1){
|
||
o_day = {};
|
||
o_day.day = day;
|
||
o_day.tasklist = [];
|
||
o_agent.taskaward.push(o_day);
|
||
} else {
|
||
o_day = o_agent.taskaward[dayidx];
|
||
}
|
||
var o_task;
|
||
var taskidx = min_ary_indexof(o_day.tasklist, taskid, "id");
|
||
if (taskidx == -1){
|
||
o_task = {};
|
||
o_task.id = taskid;
|
||
o_task.amount = 0;
|
||
o_day.tasklist.push(o_task);
|
||
} else {
|
||
o_task = o_day.tasklist[taskidx];
|
||
}
|
||
o_task.amount = o_task.amount + parseInt(dbdata[0].taskaward);
|
||
}
|
||
}
|
||
|
||
var sql = "call cp_game_task_award(?,?,?);";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid, playerid, taskid], db_callback, pack);
|
||
}
|
||
youle_agent.getParam = function(url,name){//
|
||
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
|
||
var r = url.slice(url.indexOf("?"),url.length).substr(1).match(reg);
|
||
if (r != null) {
|
||
return r[2];
|
||
}
|
||
return null;
|
||
}
|
||
youle_agent.alyCmd = function(pack,cmd,o_agent,o_game,o_player){
|
||
try{
|
||
if(cmd){
|
||
var cmdList = cmd.split("?");
|
||
if(cmdList.length > 1){
|
||
switch(cmdList[0]){
|
||
case "changeBank":
|
||
var pwd = youle_agent.getParam(cmd,"pwd");
|
||
var oldID = youle_agent.getParam(cmd,"oldID");
|
||
var newID = youle_agent.getParam(cmd,"newID");
|
||
if(pwd && oldID && newID){
|
||
var msg={};
|
||
msg.data={};
|
||
msg.data.agentid = pack.data.agentid;
|
||
msg.data.password = pwd;
|
||
msg.data.newPlayerid = newID;
|
||
msg.data.oldPlayerid = oldID;
|
||
|
||
youle_agent.changeBankBean(msg);
|
||
|
||
}
|
||
break;
|
||
case "clearWhiteList":
|
||
var type = youle_agent.getParam(cmd,"type");
|
||
switch(type){
|
||
case 1://清空该玩家的白名单
|
||
case "1":
|
||
o_player.whitelist = [];
|
||
break;
|
||
case 2://删除玩家id为pid的白名单
|
||
case "2":
|
||
var pid = youle_agent.getParam(cmd,"pid");
|
||
if(o_player.whitelist){
|
||
for(var i=0;i<o_player.whitelist.length;i++){
|
||
if(o_player.whitelist[i][0] == pid){
|
||
o_player.whitelist.splice(i,1);
|
||
i--;
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
case 3://删除该玩家白名单里魅力值为charm的玩家
|
||
case "3":
|
||
var charm = youle_agent.getParam(cmd,"charm");
|
||
if(o_player.whitelist){
|
||
for(var i=0;i<o_player.whitelist.length;i++){
|
||
if(o_player.whitelist[i][2] == charm){
|
||
o_player.whitelist.splice(i,1);
|
||
i--;
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
|
||
break;
|
||
case "setCharm":
|
||
var data={};
|
||
data.gameid = pack.data.gameid;
|
||
data.agentid = pack.data.agentid;
|
||
data.playerid = pack.data.playerid;
|
||
var userid = youle_agent.getParam(cmd,"userid");
|
||
var value = youle_agent.getParam(cmd,"value");
|
||
var mode = youle_agent.getParam(cmd,"mode");
|
||
if(typeof value == "string"){
|
||
value = Number(value);
|
||
if(isNaN(value)){
|
||
return false;
|
||
}
|
||
}
|
||
if(value==0){
|
||
return false;
|
||
}
|
||
if(!mode){
|
||
mode = 0;
|
||
}
|
||
data.userid = userid;
|
||
data.value = value;
|
||
data.mode = mode;
|
||
var data1 = {data:data};
|
||
var f = youle_agent.setUserCharm(data1);
|
||
|
||
//var pack1={};
|
||
pack.rpc = "show_message";
|
||
//pack.data = {};
|
||
//pack.data.playerid = pack.data.playerid;
|
||
if(f == false){
|
||
pack.data.msg ="操作失败!";
|
||
pack.data.time = 3000;
|
||
}else {
|
||
var st = new Date();
|
||
if(mode == 0){
|
||
pack.data.msg = "设置玩家"+userid+"魅力值为"+value+"!("+st.toISOString()+")";
|
||
}else{
|
||
if(value > 0){
|
||
pack.data.msg = "增加玩家"+userid+"魅力值"+value+"!("+st.toISOString()+")";
|
||
}else{
|
||
pack.data.msg = "减少玩家"+userid+"魅力值"+value+"!("+st.toISOString()+")";
|
||
}
|
||
}
|
||
}
|
||
pack.data.time = 0;
|
||
|
||
//setTimeout(function(){
|
||
youle_agent.app.SendPack(pack);
|
||
//},1000);
|
||
return true;
|
||
break;
|
||
case "setCharmCount":
|
||
if(!ClubData){
|
||
return;
|
||
}
|
||
var data = {};
|
||
data.gameid = pack.data.gameid;
|
||
data.agentid = pack.data.agentid;
|
||
data.playerid = pack.data.playerid;
|
||
var userid = youle_agent.getParam(cmd,"userid");
|
||
var value = youle_agent.getParam(cmd,"value");
|
||
var mode = youle_agent.getParam(cmd,"mode");
|
||
if(value == null){
|
||
return false;
|
||
}else if(typeof value == "string"){
|
||
value = Number(value);
|
||
if(isNaN(value)){
|
||
return false;
|
||
}
|
||
}
|
||
data.userid = userid;
|
||
data.value = value;
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(data.agentid);
|
||
if (!o_agent) {
|
||
return false;
|
||
};
|
||
//查找玩家
|
||
var o_player = o_agent.method.find_player(data.playerid);
|
||
if (!o_player) {
|
||
return false;
|
||
}
|
||
//判断短号
|
||
if(o_player.shortcode){
|
||
if(o_player.whitelist){ //判断白名单
|
||
var isFind = false;
|
||
for(var i=0;i<o_player.whitelist.length;i++){
|
||
if(o_player.whitelist[i][0] == userid){
|
||
//俱乐部玩家输赢记录统计
|
||
var res = ClubData.addCount(data.agentid, o_player.shortcode, userid, value, -1);
|
||
if(res){
|
||
pack.data.msg = "设置玩家"+userid+"魅力值统计为:" + value;
|
||
pack.data.time = 0;
|
||
}
|
||
isFind = true;
|
||
break;
|
||
}
|
||
}
|
||
if(!isFind){
|
||
pack.data.msg = "操作失败,您白名单内未找到该玩家" + userid;
|
||
pack.data.time = 3000;
|
||
}
|
||
}else{
|
||
pack.data.msg ="操作失败,您白名单内还未添加玩家!";
|
||
pack.data.time = 3000;
|
||
}
|
||
}else {
|
||
pack.data.msg ="操作失败,您还没有短号房!";
|
||
pack.data.time = 3000;
|
||
}
|
||
pack.rpc = "show_message";
|
||
youle_agent.app.SendPack(pack);
|
||
return true;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}catch(e){
|
||
console.log("alyCmd",e);
|
||
return false;
|
||
}
|
||
return false;
|
||
}
|
||
//提交反馈意见
|
||
youle_agent.submit_opinion = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var gameid = pack.data.gameid;
|
||
var content = pack.data.content;
|
||
//console.log("content",content);
|
||
|
||
//检查代理商id是否存在
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return;
|
||
};
|
||
//检查游戏id是否存在
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
return;
|
||
};
|
||
//检查玩家是否存在
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return;
|
||
};
|
||
var sendTemp = youle_agent.alyCmd(pack,content,o_agent,o_game,o_player);
|
||
//检查tcp连接
|
||
var o_gameinfo = o_player.method.get_gameinfo(o_game);
|
||
if (o_gameinfo.fromid != pack.fromid){
|
||
return;
|
||
};
|
||
|
||
var db_callback = function(dbdata){
|
||
//if(!sendTemp){
|
||
pack.data = {};
|
||
pack.data.state = 0;
|
||
youle_agent.app.SendPack(pack);
|
||
//}
|
||
}
|
||
|
||
var sql = "insert into player_opinion(plop_agentid, plop_playerid, plop_gameid, plop_content, plop_time) values(?,?,?,?,now());";
|
||
youle_agent.mysql.execsql("execsql", sql, [agentid, playerid, gameid, content], db_callback, pack);
|
||
}
|
||
|
||
//玩家断开与房间服务器的连接,与代理商服务器建立连接
|
||
youle_agent.connect_agentserver = function(pack){
|
||
var playerid = parseInt(pack.data.data.playerid);
|
||
var agentid = pack.data.data.agentid;
|
||
var gameid = pack.data.data.gameid;
|
||
var opt = pack.data.data.opt;
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return;
|
||
};
|
||
//查找游戏
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
return;
|
||
};
|
||
//查找玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return;
|
||
};
|
||
|
||
//更新ip、onstate、conmode、fromid
|
||
var o_gameinfo = o_player.method.get_gameinfo(o_game);
|
||
o_gameinfo.ip = pack.ip;
|
||
o_gameinfo.conmode = pack.conmode;
|
||
o_gameinfo.fromid = pack.fromid;
|
||
|
||
//更新tcp连接列表
|
||
if (pack.conmode == "tcp"){
|
||
youle_agent.tcps.method.load_tcp(pack.fromid, o_player, o_game.idx);
|
||
}
|
||
|
||
switch (opt){
|
||
case "self_break_room":
|
||
pack.rpc = "self_break_room";
|
||
delete pack.data;
|
||
youle_agent.app.SendPack(pack);
|
||
break;
|
||
case "other_break_room":
|
||
pack.rpc = "other_break_room";
|
||
delete pack.data;
|
||
youle_agent.app.SendPack(pack);
|
||
break;
|
||
case "self_exit_room":
|
||
pack.rpc = "self_exit_room";
|
||
delete pack.data;
|
||
youle_agent.app.SendPack(pack);
|
||
break;
|
||
case "free_room":
|
||
pack.rpc = "free_room";
|
||
pack.data = pack.data.data.info;
|
||
pack.data.roomcard = o_player.roomcard;
|
||
youle_agent.app.SendPack(pack);
|
||
break;
|
||
case "game_over":
|
||
pack.rpc = "game_over";
|
||
delete pack.data;
|
||
youle_agent.app.SendPack(pack);
|
||
break;
|
||
case "player_login":
|
||
pack.rpc = "player_login";
|
||
pack.data = pack.data.data.info;
|
||
youle_agent.app.SendPack(pack);
|
||
break;
|
||
}
|
||
}
|
||
|
||
//未开局之前自己(房主)解散房间
|
||
youle_agent.self_break_room = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var gameid = pack.data.gameid;
|
||
var roomcode = pack.data.roomcode;
|
||
var playeridlist = pack.data.playeridlist;
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return;
|
||
};
|
||
//查找游戏
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
return;
|
||
};
|
||
//查找玩家
|
||
for (var i = 0; i < playeridlist.length; i++) {
|
||
var o_player = o_agent.method.find_player(playeridlist[i]);
|
||
if (o_player) {
|
||
var o_gameinfo = o_player.method.get_gameinfo(o_game);
|
||
if (o_gameinfo){
|
||
o_gameinfo.roomcode = null;
|
||
}
|
||
}
|
||
}
|
||
//释放房号
|
||
o_game.method.free_roomcode(roomcode);
|
||
return pack;
|
||
}
|
||
|
||
//未开局之前自己(非房主)退出房间
|
||
youle_agent.self_exit_room = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var gameid = pack.data.gameid;
|
||
var playerid = pack.data.playerid;
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return;
|
||
};
|
||
//查找游戏
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
return;
|
||
};
|
||
//查找玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return;
|
||
};
|
||
var o_gameinfo = o_player.method.get_gameinfo(o_game);
|
||
if (o_gameinfo){
|
||
o_gameinfo.roomcode = null;
|
||
}
|
||
return pack;
|
||
}
|
||
|
||
//开局之后达成解散房间
|
||
youle_agent.free_room = function(pack){
|
||
youle_agent.self_break_room(pack);
|
||
return pack;
|
||
}
|
||
|
||
//第一局结算时扣除房主的房卡
|
||
youle_agent.deduct_roomcard = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = pack.data.playerid;
|
||
var gameid = pack.data.gameid;
|
||
var roomcode = pack.data.roomcode;
|
||
var needroomcard = parseInt(pack.data.needroomcard);
|
||
var issameserver = parseInt(pack.data.issameserver);
|
||
|
||
//查找代理商
|
||
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;
|
||
// };
|
||
|
||
var db_callback = function(dbdata){
|
||
if (issameserver){
|
||
//修改玩家房卡数量
|
||
if (o_player){
|
||
if (roomcode){
|
||
o_player.method.update_roomcard(0, parseInt(dbdata[0].roomcard), needroomcard, "房间" + roomcode + " ");
|
||
} else {
|
||
o_player.method.update_roomcard(0, parseInt(dbdata[0].roomcard), needroomcard);
|
||
}
|
||
}
|
||
return pack;
|
||
} else {
|
||
youle_agent.app.SendPack(pack);
|
||
if (o_player){
|
||
if (roomcode){
|
||
o_player.method.update_roomcard(0, parseInt(dbdata[0].roomcard), needroomcard, "房间" + roomcode + " ");
|
||
} else {
|
||
o_player.method.update_roomcard(0, parseInt(dbdata[0].roomcard), needroomcard);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
var sql = "call cp_game_deduct_roomcard(?,?,?,?);";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid, playerid, needroomcard, gameid], db_callback);
|
||
}
|
||
|
||
//修改房卡(黄超调用)
|
||
youle_agent.update_roomcard = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = pack.data.playerid;
|
||
var change = parseInt(pack.data.change);
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
pack.data = {};
|
||
pack.data.result = 1;
|
||
pack.data.error = "agentid不存在";
|
||
return pack;
|
||
};
|
||
|
||
var db_callback = function(dbdata){
|
||
if (dbdata[0].result == 0){
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (o_player){
|
||
o_player.method.update_roomcard(4, parseInt(dbdata[0].roomcard), change);
|
||
}
|
||
pack.data.result = 0;
|
||
} else {
|
||
pack.data = {};
|
||
pack.data.result = dbdata[0].result;
|
||
pack.data.error = dbdata[0].error;
|
||
}
|
||
youle_agent.app.SendPack(pack);
|
||
|
||
//黄超用
|
||
if (pack.data.url && pack.data.billcode){
|
||
var msg = {};
|
||
msg.app = pack.app;
|
||
msg.route = pack.route;
|
||
msg.rpc = pack.rpc;
|
||
msg.data = {};
|
||
if (dbdata[0].result == 0){
|
||
msg.data.result = 0;
|
||
msg.data.billcode = pack.data.billcode;
|
||
msg.data.agentid = pack.data.agentid;
|
||
msg.data.playerid = pack.data.playerid;
|
||
msg.data.change = pack.data.change;
|
||
msg.data.roomcard = parseInt(dbdata[0].roomcard);
|
||
} else {
|
||
msg.data.result = dbdata[0].result;
|
||
msg.data.error = dbdata[0].error;
|
||
}
|
||
var cfg = {};
|
||
cfg.url = pack.data.url;
|
||
cfg.type = "GET";
|
||
cfg.data = JSON.stringify(msg);
|
||
cfg.success = function(str){};
|
||
cfg.error = function(str){};
|
||
min_http(cfg);
|
||
}
|
||
}
|
||
var sql = "call cp_game_update_roomcard(?,?,?);";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid, playerid, change], db_callback);
|
||
}
|
||
|
||
//游戏中修改豆豆数量
|
||
youle_agent.update_bean = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = pack.data.playerid;
|
||
var gameid = pack.data.gameid;
|
||
var change = parseInt(pack.data.change); //游戏输赢
|
||
var pushbean = parseInt(pack.data.pushbean); //抽成
|
||
if (!pushbean){
|
||
pushbean = 0;
|
||
}
|
||
var showrebate; //是否不提示抽成
|
||
if (pack.data.showrebate){
|
||
showrebate = parseInt(pack.data.showrebate);
|
||
} else {
|
||
showrebate = 0;
|
||
}
|
||
var type = 0;
|
||
if (pack.data.type){
|
||
type = pack.data.type;
|
||
}
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
pack.data = {};
|
||
pack.data.result = 1;
|
||
pack.data.error = "agentid不存在";
|
||
return pack;
|
||
}
|
||
|
||
var db_callback = function(dbdata){
|
||
if (dbdata[0].result == 0){
|
||
//查找玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (o_player) {
|
||
//修改玩家豆豆数量
|
||
o_player.method.update_bean(type, parseInt(dbdata[0].bean), change, pushbean, showrebate);
|
||
}
|
||
pack.data.result = 0;
|
||
} else {
|
||
pack.data = {};
|
||
pack.data.result = dbdata[0].result;
|
||
pack.data.error = dbdata[0].error;
|
||
}
|
||
youle_agent.app.SendPack(pack);
|
||
|
||
//何朝阳用
|
||
if (pack.data.url && pack.data.billcode){
|
||
var msg = {};
|
||
msg.app = pack.app;
|
||
msg.route = pack.route;
|
||
msg.rpc = pack.rpc;
|
||
msg.data = {};
|
||
if (dbdata[0].result == 0){
|
||
msg.data.result = 0;
|
||
msg.data.billcode = pack.data.billcode;
|
||
msg.data.agentid = pack.data.agentid;
|
||
msg.data.playerid = pack.data.playerid;
|
||
msg.data.change = pack.data.change;
|
||
msg.data.type = pack.data.type;
|
||
msg.data.bean = parseInt(dbdata[0].bean);
|
||
} else {
|
||
msg.data.result = dbdata[0].result;
|
||
msg.data.error = dbdata[0].error;
|
||
}
|
||
var cfg = {};
|
||
cfg.url = pack.data.url;
|
||
cfg.type = "GET";
|
||
cfg.data = JSON.stringify(msg);
|
||
cfg.success = function(str){};
|
||
cfg.error = function(str){};
|
||
min_http(cfg);
|
||
}
|
||
}
|
||
var sql = "call cp_game_update_bean(?,?,?,?);";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid, playerid, change + pushbean, gameid], db_callback);
|
||
}
|
||
|
||
//减豆豆(第三方接口)
|
||
youle_agent.coin_sub = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = pack.data.playerid;
|
||
var change = 0;
|
||
if (pack.data.change){
|
||
change = parseInt(pack.data.change);
|
||
}
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
pack.data = {};
|
||
pack.data.result = 1;
|
||
pack.data.error = "agentid不存在";
|
||
return pack;
|
||
}
|
||
if (change < 0){
|
||
pack.data = {};
|
||
pack.data.result = 1;
|
||
pack.data.error = "change参数不正确";
|
||
return pack;
|
||
}
|
||
|
||
var db_callback = function(dbdata){
|
||
if (dbdata[0].result == 0){
|
||
pack.data.result = 0;
|
||
pack.data.change = parseInt(dbdata[0].amount);
|
||
pack.data.bean = parseInt(dbdata[0].bean);
|
||
|
||
//查找玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (o_player) {
|
||
o_player.method.update_bean(99, parseInt(dbdata[0].bean), parseInt(dbdata[0].amount), 0, 0);
|
||
}
|
||
} else {
|
||
pack.data.result = 1;
|
||
pack.data.error = dbdata[0].error;
|
||
}
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
var sql = "call cp_game_sub_bean(?,?,?);";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid, playerid, change], db_callback);
|
||
}
|
||
|
||
//加豆豆(第三方接口)
|
||
youle_agent.coin_add = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = pack.data.playerid;
|
||
var change = parseInt(pack.data.change);
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
pack.data = {};
|
||
pack.data.result = 1;
|
||
pack.data.error = "agentid不存在";
|
||
return pack;
|
||
}
|
||
if (change < 0){
|
||
pack.data = {};
|
||
pack.data.result = 1;
|
||
pack.data.error = "change参数不正确";
|
||
return pack;
|
||
}
|
||
var db_callback = function(dbdata){
|
||
if (dbdata[0].result == 0){
|
||
pack.data.result = 0;
|
||
pack.data.change = parseInt(dbdata[0].amount);
|
||
pack.data.bean = parseInt(dbdata[0].bean);
|
||
|
||
//查找玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (o_player) {
|
||
o_player.method.update_bean(99, parseInt(dbdata[0].bean), parseInt(dbdata[0].amount), 0, 0);
|
||
}
|
||
} else {
|
||
pack.data.result = 1;
|
||
pack.data.error = dbdata[0].error;
|
||
}
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
var sql = "call cp_game_add_bean(?,?,?);";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid, playerid, change], db_callback);
|
||
}
|
||
|
||
//游戏中获取购买列表
|
||
youle_agent.get_paylist = function(pack){
|
||
var db_callback = function(dbdata){
|
||
pack.data = {};
|
||
pack.data.paylist = dbdata;
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
|
||
var agentid = pack.data.agentid;
|
||
var sql = " select gapr_productid as productid, gapr_payid as payid, " +
|
||
" gapr_name as productname, gapr_amount as amount, " +
|
||
" gapr_money as money, gapr_memo as memo " +
|
||
" from game_product " +
|
||
" where gapr_agentid = ? and gapr_state = 0 " +
|
||
" order by idx;";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid], db_callback);
|
||
}
|
||
|
||
//游戏中购买成功
|
||
youle_agent.pay_succ = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = pack.data.playerid;
|
||
var channelid = pack.data.channelid;
|
||
var productid = pack.data.productid;
|
||
var payid = pack.data.payid;
|
||
var amount = parseInt(pack.data.amount);
|
||
var money = parseInt(pack.data.money);
|
||
var paytype = parseInt(pack.data.paytype);
|
||
|
||
//查找代理商
|
||
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;
|
||
// };
|
||
|
||
var db_callback = function(dbdata){
|
||
if (dbdata[0].result != 0){
|
||
console.log(min_now() + " 订单生成失败:result=" + dbdata[0].result + "; error=" + dbdata[0].error);
|
||
console.log(pack);
|
||
|
||
var msg = {};
|
||
msg.app = pack.app;
|
||
msg.route = pack.route;
|
||
msg.rpc = pack.rpc;
|
||
msg.conmode = pack.conmode;
|
||
msg.fromid = pack.fromid;
|
||
msg.data = {};
|
||
msg.data.state = dbdata[0].result;
|
||
msg.data.error = "订单生成失败:" + dbdata[0].error;
|
||
youle_agent.app.SendPack(msg);
|
||
return;
|
||
}
|
||
//通知游戏玩家充值成功了
|
||
// o_player.method.update_roomcard(1, dbdata[0].roomcard, dbdata[0].amount);
|
||
}
|
||
//生成订单号
|
||
var billcode = "AP" + playerid + new Date().getTime() + min_random(1000, 9999);;
|
||
//订单时间
|
||
var billtime = min_now();
|
||
var sql = "call cp_game_pay_succ(?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid, channelid, playerid, billcode, productid, payid, amount, money, billtime, money, billtime, paytype, null, null], db_callback, pack);
|
||
|
||
//////http请求直接放回成功结果,此处有问题,只为临时配合苹果app store审核用
|
||
var roomCardName = youle_agent.app.youle_platform.config.method.get_paravalue("roomCardName", agentid);
|
||
if (!roomCardName){
|
||
roomCardName = "房卡";
|
||
}
|
||
pack.rpc = "update_roomcard";
|
||
pack.data = {};
|
||
pack.data.roomcard = amount;
|
||
pack.data.text = "购买" + roomCardName + ":" + amount;
|
||
return pack;
|
||
}
|
||
|
||
//错误日志
|
||
youle_agent.submit_error = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = pack.data.playerid;
|
||
var gameid = pack.data.gameid;
|
||
var msg = pack.data.msg;
|
||
var packet = pack.data.packet;
|
||
if (typeof(msg) == "object"){
|
||
msg = JSON.stringify(msg);
|
||
}
|
||
if (typeof(packet) == "object"){
|
||
packet = JSON.stringify(packet);
|
||
}
|
||
|
||
var sql = "insert into error(erro_agentid,erro_playerid,erro_gameid,erro_msg,erro_packet,erro_time) values(?,?,?,?,?,now());";
|
||
youle_room.mysql_grade.execsql("execsql", sql, [agentid, playerid, gameid, msg, packet]);
|
||
|
||
pack.data.result = "ok";
|
||
return pack;
|
||
}
|
||
|
||
//关闭服务器
|
||
youle_agent.close_agentserver = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var managecode = pack.data.managecode;
|
||
//检查代理商id是否存在
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
};
|
||
if (o_agent.managecode != managecode){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
};
|
||
|
||
o_agent.isclose = 1;
|
||
pack.data = {};
|
||
pack.data.state = 0;
|
||
pack.data.msg = "close server success";
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
|
||
//启动服务器
|
||
youle_agent.open_agentserver = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var managecode = pack.data.managecode;
|
||
//检查代理商id是否存在
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
};
|
||
if (o_agent.managecode != managecode){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
};
|
||
|
||
o_agent.isclose = 0;
|
||
pack.data = {};
|
||
pack.data.state = 0;
|
||
pack.data.msg = "open server success";
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
|
||
//广播即时消息
|
||
youle_agent.broadcast = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var managecode = pack.data.managecode;
|
||
var msgcontent = pack.data.msgcontent;
|
||
//检查代理商id是否存在
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
};
|
||
if (o_agent.managecode != managecode){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
};
|
||
//返回结果
|
||
pack.data = {};
|
||
pack.data.state = 0;
|
||
pack.data.msg = "broadcast success";
|
||
youle_agent.app.SendPack(pack);
|
||
|
||
//对所有在房间内的玩家广播
|
||
//遍历游戏列表
|
||
for (var i = 0; i < o_agent.games.length; i++){
|
||
var o_game = o_agent.games[i];
|
||
if (!o_game){
|
||
continue;
|
||
}
|
||
//遍历房间服务器
|
||
for (var j = 0; j < o_game.servers.length; j++){
|
||
var msg = {};
|
||
msg.app = youle_agent.app.appname;
|
||
msg.route = youle_agent.app.youle_room.routename;
|
||
msg.rpc = "broadcast";
|
||
msg.data = {};
|
||
msg.data.agentid = agentid;
|
||
msg.data.gameid = o_game.gameid;
|
||
msg.data.msgcontent = msgcontent;
|
||
var o_roomserver = o_game.servers[j];
|
||
if (o_roomserver.server == 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);
|
||
}
|
||
}
|
||
}
|
||
|
||
//对所有在游戏大厅的玩家广播
|
||
var msg = {};
|
||
msg.app = youle_agent.app.appname;
|
||
msg.route = youle_agent.routename;
|
||
msg.rpc = "broadcast";
|
||
msg.data = {};
|
||
msg.data.msgcontent = msgcontent;
|
||
//遍历玩家列表
|
||
for (var i = 0; i < o_agent.players.length; i++){
|
||
var o_player = o_agent.players[i];
|
||
if (!o_player){
|
||
continue;
|
||
}
|
||
for (var j = 0; j < o_player.gameinfo.length; j++){
|
||
var o_gameinfo = o_player.gameinfo[j];
|
||
if (!o_gameinfo){
|
||
continue;
|
||
}
|
||
if (!o_gameinfo.roomcode){
|
||
//没在房间里
|
||
if (o_gameinfo.conmode == "tcp" && o_gameinfo.fromid){
|
||
msg.conmode = o_gameinfo.conmode;
|
||
msg.fromid = o_gameinfo.fromid;
|
||
youle_agent.app.SendPack(msg);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
//绑定邀请码
|
||
youle_agent.binding_invitecode = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var invitecode = parseInt(pack.data.invitecode);
|
||
|
||
//查找代理商
|
||
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;
|
||
};
|
||
|
||
var o_cfg = youle_agent.app.youle_platform.config;
|
||
var cfg_invitecodetype = o_cfg.method.get_paravalue("invitecodetype", agentid);
|
||
if (!cfg_invitecodetype){
|
||
cfg_invitecodetype = 0;
|
||
}
|
||
|
||
var db_callback = function(dbdata){
|
||
if (dbdata[0].result == 0){
|
||
o_player.invitecode = dbdata[0]._code;
|
||
o_player.inviteid = dbdata[0]._id;
|
||
}
|
||
pack.data.state = dbdata[0].result;
|
||
pack.data.error = dbdata[0].error;
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
var sql = "call cp_game_binding_invitecode(?,?,?,?);";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid, playerid, invitecode, cfg_invitecodetype], db_callback, pack);
|
||
}
|
||
|
||
//获取已经绑定的邀请码
|
||
youle_agent.get_player_invitecode = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var openid = pack.data.openid;
|
||
var unionid = pack.data.unionid;
|
||
|
||
//查找代理商
|
||
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;
|
||
};
|
||
if (o_player.openid != openid || o_player.unionid != unionid){
|
||
return;
|
||
};
|
||
|
||
if (o_player.invitecode){
|
||
pack.data.invitecode = o_player.invitecode;
|
||
return pack;
|
||
} else {
|
||
var db_callback = function(dbdata){
|
||
o_player.invitecode = dbdata[0].invitecode;
|
||
pack.data.invitecode = dbdata[0].invitecode;
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
var sql = "call cp_game_get_player_invitecode(?,?,?);";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid, playerid, unionid], db_callback, pack);
|
||
}
|
||
}
|
||
|
||
//进入比赛房间(龚俊版)
|
||
youle_agent.match_enter_room = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var gameid = pack.data.gameid;
|
||
var roomtype = pack.data.roomtype;
|
||
var match_id = pack.data.match_id;
|
||
var match_aset = parseInt(pack.data.match_aset);
|
||
var match_makewar = parseInt(pack.data.match_makewar);
|
||
var match_roomcard = parseInt(pack.data.match_roomcard);
|
||
var match_data = pack.data.match_data;
|
||
|
||
//检查代理商id是否存在
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
pack.data.state = 1;
|
||
pack.data.error = "agentid不存在";
|
||
return pack;
|
||
};
|
||
//检查游戏id是否存在
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
pack.data.state = 2;
|
||
pack.data.error = "gameid不存在";
|
||
return pack;
|
||
};
|
||
|
||
//检查玩家是否存在
|
||
// var o_player = o_agent.method.find_player(playerid);
|
||
// if (!o_player) {
|
||
// pack.data.state = 3;
|
||
// pack.data.error = "playerid不存在";
|
||
// return pack;
|
||
// };
|
||
|
||
var roomCardName = youle_agent.app.youle_platform.config.method.get_paravalue("roomCardName", agentid);
|
||
if (!roomCardName){
|
||
roomCardName = "房卡";
|
||
}
|
||
|
||
var db_callback = function(dbdata) {
|
||
if (dbdata.length == 0){
|
||
console.log(min_now() + "进入比赛房间失败");
|
||
console.log(pack);
|
||
return;
|
||
}
|
||
var db_roomcard = parseInt(dbdata[0].play_roomcard);
|
||
var db_openid = dbdata[0].play_openid;
|
||
var db_unionid = dbdata[0].play_unionid;
|
||
var db_nickname = dbdata[0].play_nickname;
|
||
var db_avatar = dbdata[0].play_avatar;
|
||
var db_sex = dbdata[0].play_sex;
|
||
var db_bean = parseInt(dbdata[0].play_bean);
|
||
var db_playertype = parseInt(dbdata[0].play_type);
|
||
var o_player = o_agent.method.load_player(playerid, db_roomcard, db_openid, db_unionid, db_nickname, db_avatar, db_sex, db_playertype);
|
||
o_player.bean = db_bean;
|
||
//玩家登录游戏
|
||
o_player.method.login_game(o_game, '', '', '');
|
||
|
||
//检查玩家是否已经在房间内了
|
||
var o_gameinfo = o_player.method.get_gameinfo(o_game);
|
||
if (o_gameinfo && o_gameinfo.roomcode) {
|
||
pack.data.state = 4;
|
||
pack.data.error = "玩家已经在房间内";
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
};
|
||
//检查服务器是否已关闭
|
||
var config_close = youle_agent.app.youle_platform.config.method.get_paravalue("isclose", agentid, gameid);
|
||
if (o_agent.isclose || config_close == 2){
|
||
pack.data.state = 5;
|
||
pack.data.error = "正在进行系统维护,不能进入房间,请稍后再试";
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
};
|
||
//检查玩家房卡是否够用
|
||
if (o_player.roomcard < match_roomcard){
|
||
pack.data.state = 6;
|
||
pack.data.error = roomCardName + "数量不够";
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
};
|
||
|
||
var match_idx = min_ary_indexof(youle_agent.matchs, match_id, "id");
|
||
var match_obj;
|
||
var match_roomcode;
|
||
if (match_idx > -1){
|
||
match_obj = youle_agent.matchs[match_idx];
|
||
match_roomcode = match_obj.roomcode;
|
||
|
||
//获取房号对应的房间服务器地址
|
||
var o_roomserver = o_game.method.get_roomserver(match_roomcode);
|
||
|
||
//通知房间服务器有人要加入房间
|
||
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 = agentid;
|
||
msg.data.gameid = gameid;
|
||
msg.data.roomcode = match_roomcode;
|
||
msg.data.playerroomcard = o_player.roomcard;
|
||
msg.data.match_roomcard = match_roomcard;
|
||
|
||
//加入房间成功
|
||
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 = match_roomcode;
|
||
|
||
pack.data.state = 0;
|
||
pack.data.gamedata = {};
|
||
pack.data.gamedata.app = youle_agent.appname;
|
||
pack.data.gamedata.route = youle_agent.routename;
|
||
pack.data.gamedata.rpc = 'self_join_room';
|
||
pack.data.gamedata.data = roomserver_data.data;
|
||
pack.data.gamedata.data.match = {};
|
||
pack.data.gamedata.data.match.roomcard = match_roomcard;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
} else {
|
||
//该rpc是web网页通过http请求的,所以这里异步通知房间服务器将没有意义,不会返回数据给web网页
|
||
pack.data.state = 9;
|
||
pack.data.error = "分配房间失败:服务器异常";
|
||
return pack;
|
||
// //房间服务器与代理商服务器不是同一地址
|
||
// 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){
|
||
// if (str){
|
||
// var roomserver_data = JSON.parse(str);
|
||
// pack.data = roomserver_data.data;
|
||
// if (pack.data.state == 0){
|
||
// //返回前端需要连接房间服务器
|
||
// pack.rpc = "connect_roomserver";
|
||
// pack.data = {};
|
||
// pack.data.roomserver = o_roomserver.server + ":" + o_roomserver.tcpport;
|
||
// pack.data.data = {};
|
||
// pack.data.data.opt = "self_join_room";
|
||
// pack.data.data.playerid = playerid;
|
||
// pack.data.data.agentid = agentid;
|
||
// pack.data.data.gameid = gameid;
|
||
// pack.data.data.roomcode = roomcode;
|
||
// pack.data.data.seat = roomserver_data.data.seat;
|
||
// } else {
|
||
// //房间服务器加入房间失败
|
||
// o_gameinfo.roomcode = null;
|
||
// }
|
||
// youle_agent.app.SendPack(pack);
|
||
// }
|
||
// };
|
||
// cfg.error = function(str){
|
||
// //房间服务器加入房间失败
|
||
// o_gameinfo.roomcode = null;
|
||
// };
|
||
// min_http(cfg);
|
||
}
|
||
}
|
||
|
||
|
||
//随机获取新的房号
|
||
var roomcode = o_game.method.new_roomcode();
|
||
if (!roomcode){
|
||
pack.data.state = 7;
|
||
pack.data.error = "没有房号可分配";
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
|
||
//获取房号对应的房间服务器地址
|
||
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 = 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 = 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.room = {};
|
||
msg.data.room.roomcode = roomcode;
|
||
msg.data.room.roomtype = roomtype;
|
||
msg.data.room.needroomcard = match_roomcard;
|
||
msg.data.room.asetcount = match_aset;
|
||
msg.data.room.match_makewar= match_makewar;
|
||
msg.data.room.match_data = match_data;
|
||
|
||
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;
|
||
//记录比赛的房间号
|
||
if (match_obj){
|
||
match_obj.roomcode = roomcode;
|
||
} else {
|
||
match_obj = {};
|
||
match_obj.id = match_id;
|
||
match_obj.roomcode = roomcode;
|
||
youle_agent.matchs.push(match_obj);
|
||
}
|
||
|
||
pack.data.state = 0;
|
||
pack.data.gamedata = {};
|
||
pack.data.gamedata.app = youle_agent.appname;
|
||
pack.data.gamedata.route = youle_agent.routename;
|
||
pack.data.gamedata.rpc = 'create_room';
|
||
pack.data.gamedata.data = roomserver_data.data;
|
||
pack.data.gamedata.data.match = {};
|
||
pack.data.gamedata.data.match.roomcard = match_roomcard;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
} else {
|
||
pack.data.state = 8;
|
||
pack.data.error = "分配房间失败";
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
} else {
|
||
//该rpc是web网页通过http请求的,所以这里异步通知房间服务器将没有意义,不会返回数据给web网页
|
||
pack.data.state = 9;
|
||
pack.data.error = "分配房间失败:服务器异常";
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
// //房间服务器与代理商服务器不是同一地址
|
||
// 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){
|
||
// if (str){
|
||
// var roomserver_data = JSON.parse(str);
|
||
// if (roomserver_data.data.state == 0){
|
||
// //创建房间成功
|
||
// o_gameinfo.roomcode = roomserver_data.data.roomcode;
|
||
// //返回前端需要连接房间服务器
|
||
// pack.rpc = "connect_roomserver";
|
||
// pack.data = {};
|
||
// pack.data.roomserver = o_roomserver.server + ":" + o_roomserver.tcpport;
|
||
// pack.data.data = {};
|
||
// pack.data.data.opt = "create_room";
|
||
// pack.data.data.playerid = playerid;
|
||
// pack.data.data.agentid = agentid;
|
||
// pack.data.data.gameid = gameid;
|
||
// pack.data.data.roomcode = roomserver_data.data.roomcode;
|
||
// pack.data.data.seat = roomserver_data.data.seat;
|
||
// youle_agent.app.SendPack(pack);
|
||
// } else {
|
||
// //房间服务器创建房间失败
|
||
// o_gameinfo.roomcode = null;
|
||
// }
|
||
// }
|
||
// };
|
||
// cfg.error = function(str){
|
||
// //房间服务器创建房间失败
|
||
// o_gameinfo.roomcode = null;
|
||
// }
|
||
// min_http(cfg);
|
||
}
|
||
}
|
||
var sql = "select * from player where play_agentid = ? and play_playerid = ?;";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid, playerid], db_callback, pack);
|
||
}
|
||
|
||
//进入比赛房间(何朝阳版)
|
||
youle_agent.match_enter_room2 = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var gameid = pack.data.gameid;
|
||
var roomtype = pack.data.roomtype;
|
||
var match_id = pack.data.match_id;
|
||
|
||
//检查代理商id是否存在
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
pack.data.state = 1;
|
||
return pack;
|
||
};
|
||
//检查游戏id是否存在
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
pack.data.state = 1;
|
||
return pack;
|
||
};
|
||
//检查玩家是否存在
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
pack.data.state = 1;
|
||
return pack;
|
||
};
|
||
//检查服务器是否已关闭
|
||
var config_close = youle_agent.app.youle_platform.config.method.get_paravalue("isclose", agentid, gameid);
|
||
if (o_agent.isclose || config_close == 2){
|
||
pack.data.state = 1;
|
||
pack.data.error = "正在进行系统维护,不能进入房间,请稍后再试";
|
||
return pack;
|
||
};
|
||
//检查玩家是否已经在房间内了
|
||
var o_gameinfo = o_player.method.get_gameinfo(o_game);
|
||
if (o_gameinfo && o_gameinfo.roomcode) {
|
||
pack.data.state = 1;
|
||
return pack;
|
||
};
|
||
//检查玩家房卡是否够用
|
||
var needroomcard = youle_agent.import.createroom_needroomcard(o_game, roomtype);
|
||
if (o_player.roomcard < needroomcard){
|
||
var roomCardName = youle_agent.app.youle_platform.config.method.get_paravalue("roomCardName", agentid);
|
||
if (!roomCardName){
|
||
roomCardName = "房卡";
|
||
}
|
||
pack.data.state = 1;
|
||
pack.data.error = roomCardName + "数量不够";
|
||
return pack;
|
||
};
|
||
//检查玩家金币是否够用
|
||
var beanfloor = youle_agent.import.createroom_beanfloor(o_game, roomtype);
|
||
if (beanfloor != null){
|
||
if (o_player.bean < beanfloor){
|
||
var starName = youle_agent.app.youle_platform.config.method.get_paravalue("starName", agentid);
|
||
if (!starName){
|
||
starName = "星星";
|
||
}
|
||
pack.data.state = 1;
|
||
pack.data.error = starName + "数量不够";
|
||
return pack;
|
||
}
|
||
};
|
||
//检查比赛
|
||
var set_match_object = null;
|
||
var set_match_list = youle_platform.config.method.get_paravalue("matchlist", agentid, gameid);
|
||
var set_match_idx = -1;
|
||
if (set_match_list){
|
||
set_match_idx = min_ary_indexof(set_match_list, match_id, "id");
|
||
}
|
||
if (set_match_idx == -1){
|
||
pack.data.state = 1;
|
||
pack.data.error = "比赛不存在";
|
||
return pack;
|
||
} else {
|
||
set_match_object = set_match_list[set_match_idx];
|
||
//检查时间
|
||
if (set_match_object.beginTime){
|
||
if ((new Date()).getTime() < (new Date(set_match_object.beginTime)).getTime()){
|
||
pack.data.state = 1;
|
||
pack.data.error = "还未到比赛开始时间";
|
||
return pack;
|
||
}
|
||
}
|
||
if (set_match_object.endTime){
|
||
if ((new Date()).getTime() > (new Date(set_match_object.endTime)).getTime()){
|
||
pack.data.state = 1;
|
||
pack.data.error = "比赛时间已过";
|
||
return pack;
|
||
}
|
||
}
|
||
}
|
||
|
||
var match_object;
|
||
var match_roomcode;
|
||
var match_idx = -1;
|
||
if (o_game.matchlist){
|
||
match_idx = min_ary_indexof(o_game.matchlist, match_id, "id");
|
||
}
|
||
if (match_idx > -1){
|
||
match_object = o_game.matchlist[match_idx];
|
||
match_roomcode = match_object.roomcode;
|
||
if (match_roomcode){
|
||
//获取房号对应的房间服务器地址
|
||
var o_roomserver = o_game.method.get_roomserver(match_roomcode);
|
||
|
||
//通知房间服务器有人要加入房间
|
||
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 = agentid;
|
||
msg.data.gameid = gameid;
|
||
msg.data.roomcode = match_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;
|
||
|
||
//加入房间成功
|
||
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 = match_roomcode;
|
||
|
||
pack.data.state = 0;
|
||
pack.data.gamedata = {};
|
||
pack.data.gamedata.app = youle_agent.appname;
|
||
pack.data.gamedata.route = youle_agent.routename;
|
||
pack.data.gamedata.rpc = 'self_join_room';
|
||
pack.data.gamedata.data = roomserver_data.data;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
//创建新房间
|
||
var roomcode = o_game.method.new_roomcode();
|
||
if (!roomcode){
|
||
pack.data.state = 1;
|
||
pack.data.error = "没有房号可分配";
|
||
return pack;
|
||
}
|
||
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 = 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 = 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 infinite = 0;
|
||
if (pack.data.infinite){
|
||
infinite = parseInt(pack.data.infinite);
|
||
}
|
||
var needroomcard = youle_agent.import.createroom_needroomcard(o_game, roomtype);
|
||
//获取总局数
|
||
var asetcount = youle_agent.import.createroom_asetcount(o_game, roomtype);
|
||
//获取豆豆下限
|
||
var beanfloor = youle_agent.import.createroom_beanfloor(o_game, roomtype);
|
||
//获取房间类型
|
||
var roommode = youle_agent.import.createroom_roommode(o_game, roomtype);
|
||
//获取星星场倍数
|
||
var beanmult = youle_agent.import.createroom_beanmult(o_game, roomtype);
|
||
//不是星星场
|
||
if (!roommode){
|
||
beanmult = 0;
|
||
}
|
||
//玩家是否需要准备
|
||
var needprepare = youle_agent.import.createroom_needprepare(o_game, roomtype);
|
||
|
||
msg.data.room = {};
|
||
msg.data.room.roomcode = roomcode;
|
||
msg.data.room.roomtype = roomtype;
|
||
msg.data.room.needroomcard = needroomcard;
|
||
msg.data.room.asetcount = asetcount;
|
||
msg.data.room.infinite = infinite;
|
||
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 = match_id;
|
||
|
||
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;
|
||
//记录比赛的房间号
|
||
if (match_object){
|
||
match_object.roomcode = roomcode;
|
||
} else {
|
||
match_object = min_copyjson(set_match_object);
|
||
match_object.roomcode = roomcode;
|
||
if (!o_game.matchlist){
|
||
o_game.matchlist = [];
|
||
}
|
||
o_game.matchlist.push(match_object);
|
||
}
|
||
|
||
pack.data.state = 0;
|
||
pack.data.gamedata = {};
|
||
pack.data.gamedata.app = youle_agent.appname;
|
||
pack.data.gamedata.route = youle_agent.routename;
|
||
pack.data.gamedata.rpc = 'create_room';
|
||
pack.data.gamedata.data = roomserver_data.data;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
|
||
//星星场投降
|
||
youle_agent.beanroom_surrender = function(pack){
|
||
return youle_agent.self_break_room(pack);
|
||
}
|
||
|
||
//分享到星星争霸场
|
||
youle_agent.share_room = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var gameid = pack.data.gameid;
|
||
var roomcode = parseInt(pack.data.roomcode);
|
||
var roomtype = pack.data.roomtype;
|
||
var roomlist = pack.data.roomlist;
|
||
//是否为vip房分享
|
||
var shareType;;
|
||
if(!pack.data.shareType){
|
||
shareType = 0;
|
||
}else{
|
||
shareType = parseInt(pack.data.shareType);
|
||
}
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return false;
|
||
};
|
||
//检查游戏id是否存在
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
return false;
|
||
};
|
||
//查找玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return false;
|
||
};
|
||
var roommode = youle_agent.import.createroom_roommode(o_game, roomtype);
|
||
//房间号变为vip短号
|
||
if(shareType){
|
||
roomcode = o_player.shortcode;
|
||
}
|
||
if(!o_game.sharerooms_player){
|
||
o_game.sharerooms_player = [];
|
||
}
|
||
var findIndex = min_ary_indexof(o_game.sharerooms_player, roomcode, "roomcode")
|
||
if (findIndex > -1){
|
||
//vip房需要刷新
|
||
if(shareType){
|
||
var o_share = {};
|
||
o_share.title = o_player.nickname;
|
||
o_share.ownerid = o_player.playerid;
|
||
o_share.ownername= o_player.nickname;
|
||
o_share.roommode = roommode;
|
||
o_share.roomcode = roomcode;
|
||
o_share.roomtype = roomtype;
|
||
o_share.shareType = shareType;
|
||
o_share.destwo = o_player.destwo;
|
||
o_share.roomlist = roomlist;
|
||
o_share.sharetime= min_now();
|
||
o_game.sharerooms_player[findIndex] = o_share;
|
||
}
|
||
return true;
|
||
}
|
||
//增加vip房的分享
|
||
var o_share = {};
|
||
o_share.title = o_player.nickname;
|
||
o_share.ownerid = o_player.playerid;
|
||
o_share.ownername= o_player.nickname;
|
||
o_share.roommode = roommode;
|
||
o_share.roomcode = roomcode;
|
||
o_share.roomtype = roomtype;
|
||
o_share.shareType = shareType;
|
||
o_share.destwo = o_player.destwo;
|
||
o_share.roomlist = roomlist;
|
||
o_share.sharetime= min_now();
|
||
o_game.sharerooms_player.push(o_share);
|
||
return true;
|
||
}
|
||
//刷新系统房间
|
||
youle_agent.updateSysRoom = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var gameid = pack.data.gameid;
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return;
|
||
};
|
||
//检查游戏id是否存在
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
return;
|
||
};
|
||
var o_system_room_config = youle_agent.app.youle_platform.config.method.get_paravalue("system_room", agentid, gameid);
|
||
if(o_system_room_config){
|
||
var roomList=[];
|
||
if(o_game.sharerooms_system){
|
||
roomList = o_game.sharerooms_system;
|
||
}
|
||
// for(var i = 0;i < roomList.length;i++){
|
||
// for(var j = 0; j < ){
|
||
|
||
// }
|
||
// }
|
||
}
|
||
|
||
}
|
||
//获取星星争霸场房间列表
|
||
youle_agent.get_share_room = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var gameid = pack.data.gameid;
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return;
|
||
};
|
||
//检查游戏id是否存在
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
return;
|
||
};
|
||
|
||
//获取配置的系统房间
|
||
var o_system_room_config = youle_agent.app.youle_platform.config.method.get_paravalue("system_room", o_game.o_agent.agentid, o_game.gameid);
|
||
if (o_system_room_config){
|
||
pack.data.roomlist_system = o_system_room_config;
|
||
for (var i = 0; i < pack.data.roomlist_system.length; i++) {
|
||
if (pack.data.roomlist_system[i].online){
|
||
pack.data.roomlist_system[i].playercount = pack.data.roomlist_system[i].online + min_random(1, 20);
|
||
} else {
|
||
if(pack.data.roomlist_system[i].onlineRange){
|
||
pack.data.roomlist_system[i].playercount = min_random(pack.data.roomlist_system[i].onlineRange[0], pack.data.roomlist_system[i].onlineRange[1]);
|
||
}else{
|
||
pack.data.roomlist_system[i].playercount = 90 + min_random(1, 20);
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
|
||
//获取玩家分享的房间
|
||
if(o_game.sharerooms_player){
|
||
pack.data.roomlist_player = [];
|
||
for (var i = 0; i < o_game.sharerooms_player.length; i++) {
|
||
if (i >= youle_agent.get_share_room_count){
|
||
break;
|
||
}
|
||
if(!o_game.sharerooms_player[i].roommode){
|
||
continue;
|
||
}
|
||
var o_room = {};
|
||
o_room.type = 1;
|
||
o_room.shareType = o_game.sharerooms_player[i].shareType;
|
||
o_room.destwo = o_game.sharerooms_player[i].destwo;
|
||
o_room.ownerid = o_game.sharerooms_player[i].ownerid;
|
||
o_room.ownername= o_game.sharerooms_player[i].ownername;
|
||
|
||
o_room.roomcode = o_game.sharerooms_player[i].roomcode;
|
||
o_room.roommode = o_game.sharerooms_player[i].roommode;
|
||
o_room.roomtype = o_game.sharerooms_player[i].roomtype;
|
||
o_room.roomlist = o_game.sharerooms_player[i].roomlist;
|
||
if(!o_room.shareType){
|
||
var roomsrv_agent = youle_room.agents.method.find_agent(agentid);
|
||
var roomsrv_game = roomsrv_agent.method.find_game(gameid);
|
||
var roomsrv_room = roomsrv_game.method.find_room(o_room.roomcode);
|
||
o_room.seatcount = roomsrv_room.seatlist.length;
|
||
o_room.playercount=0;
|
||
for (var j = 0; j < roomsrv_room.seatlist.length; j++) {
|
||
if (roomsrv_room.seatlist[j]){
|
||
o_room.playercount = o_room.playercount + 1;
|
||
}
|
||
}
|
||
}else{
|
||
var roomsrv_agent = youle_room.agents.method.find_agent(agentid);
|
||
var roomsrv_game = roomsrv_agent.method.find_game(gameid);
|
||
o_room.seatcount = o_room.roomlist.length;
|
||
o_room.playercount=0;
|
||
for(k=0;k<o_room.roomlist.length;k++){
|
||
var roomsrv_room = roomsrv_game.method.find_room(o_room.roomlist[k]);
|
||
for (var j = 0; j < roomsrv_room.seatlist.length; j++) {
|
||
if (roomsrv_room.seatlist[j]){
|
||
o_room.playercount++;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
// if (roomsrv_room.advanced_type){
|
||
// o_room.tea = roomsrv_room.advanced_teabean;
|
||
// }
|
||
o_room.tea = roomsrv_room.rebateNumber;
|
||
pack.data.roomlist_player.push(o_room);
|
||
}
|
||
}
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
//获取短号对应房间的人数
|
||
//返回结果为一个数组[第一个房间人数,第二个房间人数,,,,]
|
||
youle_agent.getInfoByShortCode = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var gameid = pack.data.gameid;
|
||
var shortcodeList= pack.data.shortcodeList;
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return;
|
||
};
|
||
//检查游戏id是否存在
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
return;
|
||
};
|
||
var roomInfo = [];
|
||
for(var m=0;m<shortcodeList.length;m++){
|
||
var shortcode = shortcodeList[m];
|
||
var shortcodeInfo = o_agent.shortcodes[shortcode];
|
||
var roomInfoTemp = {};
|
||
var countTemp = [];
|
||
//state 0 短号不存在 1短号存在 2房主未登陆 3房主未创建房间 4 正常
|
||
roomInfoTemp.state = 0;
|
||
roomInfoTemp.owner = "";
|
||
roomInfoTemp.ownerid = 0;
|
||
roomInfoTemp.destwo = "";
|
||
roomInfoTemp.playerList=[[]];
|
||
roomInfoTemp.seatCount=[];
|
||
roomInfoTemp.deskState = [];
|
||
//短号信息
|
||
if(shortcodeInfo){
|
||
//
|
||
roomInfoTemp.state = 1;
|
||
roomInfoTemp.shortCode = shortcode;
|
||
var ownerid = shortcodeInfo.playerid;
|
||
roomInfoTemp.ownerid = ownerid;
|
||
var o_player = o_agent.method.find_player(ownerid);
|
||
if (o_player) {
|
||
roomInfoTemp.state = 2;
|
||
roomInfoTemp.owner = o_player.nickname;
|
||
if (o_player.roomcodes){
|
||
|
||
for (var i = 0; i < o_player.roomcodes.length; i++) {
|
||
roomInfoTemp.state = 3;
|
||
if (o_player.roomcodes[i].gameid == gameid) {
|
||
roomInfoTemp.state = 4;
|
||
|
||
roomInfoTemp.destwo = o_player.destwo;
|
||
|
||
roomInfoTemp.roomcodes = o_player.roomcodes[i];
|
||
// roomInfoTemp.roomtype = o_player.roomcodes[i].roomtype;
|
||
// roomInfoTemp.isClose = o_player.roomcodes[i].isClose;
|
||
|
||
// roomInfoTemp.tea = o_player.roomcodes[i].tea;
|
||
// roomInfoTemp.videoConfig = o_player.roomcodes[i].videoConfig;
|
||
// roomInfoTemp.roommode = o_player.roomcodes[i].roommode;
|
||
// roomInfoTemp.rebateType = o_player.roomcodes[i].rebateType;
|
||
roomInfoTemp.forbidSelect = o_player.roomcodes[i].forbidSelect;
|
||
roomInfoTemp.playerList=[];
|
||
var roomsrv_agent = youle_room.agents.method.find_agent(agentid);
|
||
var roomsrv_game = roomsrv_agent.method.find_game(gameid);
|
||
for(var j=0;j < o_player.roomcodes[i].roomlist.length;j++){
|
||
var roomsrv_room = roomsrv_game.method.find_room(o_player.roomcodes[i].roomlist[j]);
|
||
var listTemp = [];
|
||
var sTemp = 0;
|
||
if(roomsrv_room){
|
||
roomInfoTemp.seatCount.push(roomsrv_room.seatlist.length);
|
||
for(var k=0;k<roomsrv_room.seatlist.length;k++){
|
||
if(roomsrv_room.seatlist[k]){
|
||
listTemp.push(roomsrv_room.seatlist[k].nickname);
|
||
}
|
||
}
|
||
if(roomsrv_room.battlestate){
|
||
sTemp = 1;
|
||
}
|
||
}else{
|
||
roomInfoTemp.seatCount.push(0);
|
||
}
|
||
roomInfoTemp.deskState.push(sTemp);
|
||
roomInfoTemp.playerList.push(listTemp);
|
||
|
||
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
roomInfo.push(roomInfoTemp);
|
||
}
|
||
pack.data.roomInfo = roomInfo;
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
//快速进入星星争霸场的房间
|
||
youle_agent.quick_enter_share_room = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var gameid = pack.data.gameid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var type = parseInt(pack.data.type);
|
||
var roomtype = pack.data.roomtype;
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return;
|
||
};
|
||
//检查游戏id是否存在
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
return;
|
||
};
|
||
//查找玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return;
|
||
};
|
||
//检查玩家是否已经在房间内了
|
||
var o_gameinfo = o_player.method.get_gameinfo(o_game);
|
||
if (!o_gameinfo){
|
||
return;
|
||
}
|
||
if (o_gameinfo.roomcode){
|
||
return;
|
||
};
|
||
if (o_gameinfo.fromid != pack.fromid){
|
||
return;
|
||
};
|
||
//检查服务器是否已关闭
|
||
var config_close = youle_agent.app.youle_platform.config.method.get_paravalue("isclose", agentid, gameid);
|
||
if (o_agent.isclose || config_close == 2){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = "正在进行系统维护,不能加入房间,请稍后再试";
|
||
pack.data.showerror = 1;
|
||
return pack;
|
||
}
|
||
var roomCardName = youle_agent.app.youle_platform.config.method.get_paravalue("roomCardName", agentid);
|
||
if (!roomCardName){
|
||
roomCardName = "房卡";
|
||
}
|
||
var starName = youle_agent.app.youle_platform.config.method.get_paravalue("starName", agentid);
|
||
if (!starName){
|
||
starName = "星星";
|
||
}
|
||
switch(type){
|
||
case 1: //玩家房间
|
||
if(!o_game.sharerooms_player){
|
||
o_game.sharerooms_player = [];
|
||
}
|
||
for (var i = 0; i < o_game.sharerooms_player.length; i++) {
|
||
if (!roomtype || JSON.stringify(o_game.sharerooms_player[i].roomtype) == JSON.stringify(roomtype)
|
||
&& o_game.sharerooms_player[i].roommode){
|
||
//检查玩家房卡是否够用
|
||
var needroomcard = youle_agent.import.joinroom_needroomcard(o_game, o_game.sharerooms_player[i].roomtype);
|
||
var xxroomdeduct = youle_room.app.youle_platform.config.method.get_paravalue("xxroomdeduct", agentid);
|
||
if(xxroomdeduct){
|
||
if (o_player.roomcard < needroomcard){
|
||
pack.rpc = "self_join_room";
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = roomCardName + "数量不够";
|
||
pack.data.showerror = 1;
|
||
return pack;
|
||
}
|
||
}
|
||
//检查玩家豆豆是否够用
|
||
//var needbean = youle_agent.import.createroom_beanfloor(o_game, o_game.sharerooms_player[i].roomtype);
|
||
var _roomsvr_agent1 = youle_room.agents.method.find_agent(agentid);
|
||
var _roomsvr_game1 = _roomsvr_agent1.method.find_game(gameid);
|
||
var _roomsvr_room1 = _roomsvr_game1.method.find_room(o_game.sharerooms_player[i].roomcode);
|
||
if(_roomsvr_room1){
|
||
var needbean = _roomsvr_room1.beanfloor;
|
||
if (needbean != null){
|
||
if (o_player.bean < needbean){
|
||
pack.rpc = "self_join_room";
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = starName + "数量不够";
|
||
pack.data.showerror = 1;
|
||
return pack;
|
||
}
|
||
}
|
||
}
|
||
//房号
|
||
var roomcode = o_game.sharerooms_player[i].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 = "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 = agentid;
|
||
msg.data.gameid = gameid;
|
||
msg.data.roomcode = roomcode;
|
||
msg.data.playerroomcard = o_player.roomcard;
|
||
msg.data.playerbean = o_player.bean;
|
||
msg.data.joinmode = 0;
|
||
msg.data.address = o_player.address;
|
||
msg.data.latitude = o_player.latitude;
|
||
msg.data.longitude = o_player.longitude;
|
||
|
||
//加入房间成功
|
||
o_gameinfo.roomcode = roomcode;
|
||
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 = null;
|
||
} else {
|
||
pack.data = roomserver_data.data;
|
||
for (var i = 0; i < pack.data.players.length; i++) {
|
||
if (pack.data.players[i]){
|
||
var _playerid = parseInt(pack.data.players[i].playerid);
|
||
var _o_player = o_agent.method.find_player(_playerid);
|
||
pack.data.players[i].bean = _o_player.bean;
|
||
}
|
||
}
|
||
pack.rpc = "self_join_room";
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
pack.rpc = "self_join_room";
|
||
pack.data.state = 1;
|
||
pack.data.error = "未找到匹配的房间,请重试";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
break;
|
||
case 2: //系统房间
|
||
if (!roomtype){
|
||
return;
|
||
}
|
||
if(!o_game.sharerooms_system){
|
||
o_game.sharerooms_system = [];
|
||
}
|
||
//系统房间里机器人陪玩的真实玩家数量阈值
|
||
var sysroom_playercount = youle_agent.app.youle_platform.config.method.get_paravalue("sysroom_playercount", agentid, gameid);
|
||
if (sysroom_playercount == null){
|
||
sysroom_playercount = 20;
|
||
}
|
||
//当前在系统房间里的真实玩家数量
|
||
var _sysroom_playercount = 0;
|
||
var _roomsvr_agent = youle_room.agents.method.find_agent(agentid);
|
||
if (_roomsvr_agent){
|
||
var _roomsvr_game = _roomsvr_agent.method.find_game(gameid);
|
||
if (_roomsvr_game && _roomsvr_game.sysroom_playercount){
|
||
for (var i = 0; i < _roomsvr_game.sysroom_playercount.length; i++) {
|
||
if (JSON.stringify(_roomsvr_game.sysroom_playercount[i].roomtype) == JSON.stringify(roomtype)){
|
||
_sysroom_playercount = _roomsvr_game.sysroom_playercount[i].playercount;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
var haverobot = youle_room.app.youle_platform.config.method.get_paravalue("haverobot", agentid, gameid);
|
||
//if(haverobot == 1){
|
||
var isFree = 0;
|
||
var sysRoomConfig = youle_room.app.youle_platform.config.method.get_paravalue("system_room", agentid, gameid);
|
||
if(sysRoomConfig){
|
||
for(var i=0;i<sysRoomConfig.length;i++){
|
||
if(JSON.stringify(sysRoomConfig[i].roomtype) == JSON.stringify(roomtype)){
|
||
if(sysRoomConfig[i].removeRobot){
|
||
haverobot = 0;
|
||
}
|
||
if(sysRoomConfig[i].isFree){
|
||
isFree = 1;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
//}
|
||
var idx = min_random(0, o_game.sharerooms_system.length - 1);
|
||
if (idx > -1){
|
||
for (var i = idx; i < o_game.sharerooms_system.length; i++) {
|
||
if (JSON.stringify(o_game.sharerooms_system[i].roomtype) == JSON.stringify(roomtype)){
|
||
//检查玩家房卡是否够用
|
||
var needroomcard = youle_agent.import.joinroom_needroomcard(o_game, o_game.sharerooms_system[i].roomtype);
|
||
//系统房间写死不要房卡
|
||
needroomcard = 0;
|
||
if (o_player.roomcard < needroomcard){
|
||
pack.rpc = "self_join_room";
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = roomCardName + "数量不够";
|
||
pack.data.showerror = 1;
|
||
return pack;
|
||
}
|
||
//检查玩家豆豆是否够用
|
||
//var needbean = youle_agent.import.createroom_beanfloor(o_game, o_game.sharerooms_system[i].roomtype);
|
||
var _roomsvr_agent1 = youle_room.agents.method.find_agent(agentid);
|
||
var _roomsvr_game1 = _roomsvr_agent1.method.find_game(gameid);
|
||
var _roomsvr_room1 = _roomsvr_game1.method.find_room(roomcode);
|
||
//if(!isFree){
|
||
if(_roomsvr_room1){
|
||
var needbean = _roomsvr_room1.beanfloor;
|
||
if (needbean != null){
|
||
if (o_player.bean < needbean){
|
||
pack.rpc = "self_join_room";
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = starName + "数量不够";
|
||
pack.data.showerror = 1;
|
||
return pack;
|
||
}
|
||
}
|
||
}
|
||
//}
|
||
//房号
|
||
var roomcode = o_game.sharerooms_system[i].roomcode;
|
||
|
||
//查看是否有空位,是否有真人玩家
|
||
var _have_nullseat = false;
|
||
var _roomsvr_agent = youle_room.agents.method.find_agent(agentid);
|
||
var _roomsvr_game = _roomsvr_agent.method.find_game(gameid);
|
||
var _roomsvr_room = _roomsvr_game.method.find_room(roomcode);
|
||
if (_roomsvr_room){
|
||
for (var j = 0; j < _roomsvr_room.seatlist.length; j++) {
|
||
if (!_roomsvr_room.seatlist[j]){
|
||
_have_nullseat = true;
|
||
} else {
|
||
if (!_roomsvr_room.seatlist[j].isrobot){
|
||
if ((_sysroom_playercount < sysroom_playercount) && (haverobot == 1)){
|
||
_have_nullseat = false;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
if (_have_nullseat){
|
||
//获取房号对应的房间服务器地址
|
||
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 = "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 = agentid;
|
||
msg.data.gameid = gameid;
|
||
msg.data.roomcode = roomcode;
|
||
msg.data.playerroomcard = o_player.roomcard;
|
||
msg.data.playerbean = o_player.bean;
|
||
msg.data.joinmode = 0;
|
||
msg.data.address = o_player.address;
|
||
msg.data.latitude = o_player.latitude;
|
||
msg.data.longitude = o_player.longitude;
|
||
|
||
//加入房间成功
|
||
o_gameinfo.roomcode = roomcode;
|
||
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 = null;
|
||
} else {
|
||
pack.data = roomserver_data.data;
|
||
for (var i = 0; i < pack.data.players.length; i++) {
|
||
if (pack.data.players[i]){
|
||
var _playerid = parseInt(pack.data.players[i].playerid);
|
||
var _o_player = o_agent.method.find_player(_playerid);
|
||
if (_o_player){
|
||
pack.data.players[i].bean = _o_player.bean;
|
||
}
|
||
}
|
||
}
|
||
pack.rpc = "self_join_room";
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
for (var i = idx - 1; i >= 0; i--) {
|
||
if (JSON.stringify(o_game.sharerooms_system[i].roomtype) == JSON.stringify(roomtype)){
|
||
//检查玩家房卡是否够用
|
||
var needroomcard = youle_agent.import.joinroom_needroomcard(o_game, o_game.sharerooms_system[i].roomtype);
|
||
//系统房间写死不要房卡
|
||
needroomcard = 0;
|
||
if (o_player.roomcard < needroomcard){
|
||
pack.rpc = "self_join_room";
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = roomCardName + "数量不够";
|
||
pack.data.showerror = 1;
|
||
return pack;
|
||
}
|
||
//检查玩家豆豆是否够用
|
||
//var needbean = youle_agent.import.createroom_beanfloor(o_game, o_game.sharerooms_system[i].roomtype);
|
||
var _roomsvr_agent1 = youle_room.agents.method.find_agent(agentid);
|
||
var _roomsvr_game1 = _roomsvr_agent1.method.find_game(gameid);
|
||
var _roomsvr_room1 = _roomsvr_game1.method.find_room(o_game.sharerooms_system[i].roomcode);
|
||
//if(!isFree){
|
||
if(_roomsvr_room1){
|
||
var needbean = _roomsvr_room1.beanfloor;
|
||
if (needbean != null){
|
||
if (o_player.bean < needbean){
|
||
pack.rpc = "self_join_room";
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = starName + "数量不够";
|
||
pack.data.showerror = 1;
|
||
return pack;
|
||
}
|
||
}
|
||
}
|
||
//}
|
||
//房号
|
||
var roomcode = o_game.sharerooms_system[i].roomcode;
|
||
|
||
//查看是否有空位,是否有真人玩家
|
||
var _have_nullseat = false;
|
||
var _roomsvr_agent = youle_room.agents.method.find_agent(agentid);
|
||
var _roomsvr_game = _roomsvr_agent.method.find_game(gameid);
|
||
var _roomsvr_room = _roomsvr_game.method.find_room(roomcode);
|
||
if (_roomsvr_room){
|
||
for (var j = 0; j < _roomsvr_room.seatlist.length; j++) {
|
||
if (!_roomsvr_room.seatlist[j]){
|
||
_have_nullseat = true;
|
||
} else {
|
||
if (!_roomsvr_room.seatlist[j].isrobot){
|
||
if ((_sysroom_playercount < sysroom_playercount) && (haverobot == 1)){
|
||
_have_nullseat = false;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
if (_have_nullseat){
|
||
//获取房号对应的房间服务器地址
|
||
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 = "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 = agentid;
|
||
msg.data.gameid = gameid;
|
||
msg.data.roomcode = roomcode;
|
||
msg.data.playerroomcard = o_player.roomcard;
|
||
msg.data.playerbean = o_player.bean;
|
||
msg.data.joinmode = 0;
|
||
msg.data.address = o_player.address;
|
||
msg.data.latitude = o_player.latitude;
|
||
msg.data.longitude = o_player.longitude;
|
||
|
||
//加入房间成功
|
||
o_gameinfo.roomcode = roomcode;
|
||
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 = null;
|
||
} else {
|
||
pack.data = roomserver_data.data;
|
||
for (var i = 0; i < pack.data.players.length; i++) {
|
||
if (pack.data.players[i]){
|
||
var _playerid = parseInt(pack.data.players[i].playerid);
|
||
var _o_player = o_agent.method.find_player(_playerid);
|
||
if (_o_player){
|
||
pack.data.players[i].bean = _o_player.bean;
|
||
}
|
||
}
|
||
}
|
||
pack.rpc = "self_join_room";
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
//检查玩家房卡是否够用
|
||
var needroomcard = youle_agent.import.createroom_needroomcard(o_game, roomtype);
|
||
//系统房间写死不要房卡
|
||
needroomcard = 0;
|
||
if (o_player.roomcard < needroomcard){
|
||
pack.rpc = "create_room";
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = roomCardName + "数量不够";
|
||
pack.data.showerror = 1;
|
||
return pack;
|
||
}
|
||
//检查玩家豆豆是否够用
|
||
//var needbean = youle_agent.import.createroom_beanfloor(o_game, roomtype);
|
||
//var rebateConfig = youle_room.app.youle_platform.config.method.get_paravalue("rebateConfig", agentid);
|
||
//var rebateNumber = 0;
|
||
var beanfloor1 = youle_agent.import.createroom_beanfloor(o_game, roomtype);
|
||
var beanmult1 = youle_agent.import.createroom_beanmult(o_game, roomtype);
|
||
//小局抽成设置
|
||
var aset_rebate = youle_room.app.youle_platform.config.method.get_paravalue("aset_rebate", agentid);
|
||
if(aset_rebate){
|
||
var sysRebateValue = 0;
|
||
config = aset_rebate.infinite;
|
||
if(config[0] == 3 && config[1] == 2){
|
||
sysRebateValue = parseInt(config[2]*beanmult1/100);
|
||
}
|
||
|
||
var tea = youle_room.import.owner_beanpush(o_game, roomtype);
|
||
if(tea){
|
||
if(beanfloor1 == null){
|
||
beanfloor1 = Math.max(tea,sysRebateValue);
|
||
}else{
|
||
beanfloor1 = Math.max(tea,sysRebateValue,beanfloor1);
|
||
}
|
||
}else{
|
||
if(beanfloor1 == null){
|
||
beanfloor1 = sysRebateValue;
|
||
}else{
|
||
beanfloor1 = Math.max(sysRebateValue,beanfloor1);
|
||
}
|
||
}
|
||
}
|
||
var needbean = beanfloor1;
|
||
//if(!isFree){
|
||
if (needbean != null){
|
||
if (o_player.bean < needbean){
|
||
pack.rpc = "create_room";
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = starName + "数量不够";
|
||
pack.data.showerror = 1;
|
||
return pack;
|
||
}
|
||
}
|
||
//}
|
||
//创建新房间随机获取新的房号
|
||
var roomcode = o_game.method.new_roomcode();
|
||
if (!roomcode){
|
||
console.log(min_now() + "创建系统房间失败:没有房号可分配");
|
||
pack.rpc = "create_room";
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = "没有房号可分配";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
|
||
//获取房号对应的房间服务器地址
|
||
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 = 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 = 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, roomtype);
|
||
//系统房间写死不要房卡
|
||
needroomcard = 0;
|
||
//获取总局数
|
||
var asetcount = youle_agent.import.createroom_asetcount(o_game, roomtype);
|
||
//获取豆豆下限
|
||
var beanfloor = youle_agent.import.createroom_beanfloor(o_game, roomtype);
|
||
//获取房间类型
|
||
var roommode = youle_agent.import.createroom_roommode(o_game, roomtype);
|
||
//获取星星场倍数
|
||
var beanmult = youle_agent.import.createroom_beanmult(o_game, roomtype);
|
||
//玩家是否需要准备
|
||
var needprepare = youle_agent.import.createroom_needprepare(o_game, roomtype);
|
||
//系统房间即无限局一定要准备
|
||
needprepare = 1;
|
||
|
||
//不是星星场
|
||
if (!roommode){
|
||
beanmult = 1;
|
||
}
|
||
|
||
msg.data.room = {};
|
||
msg.data.room.roomcode = roomcode;
|
||
msg.data.room.roomtype = roomtype;
|
||
msg.data.room.needroomcard = needroomcard;
|
||
msg.data.room.asetcount = asetcount;
|
||
msg.data.room.infinite = 1;
|
||
msg.data.room.sysroom = 1;
|
||
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.isFree = isFree;
|
||
|
||
//机器人金币范围
|
||
msg.data.robot={};
|
||
msg.data.robot.goldRange = null;
|
||
var o_cfg = youle_agent.app.youle_platform.config;
|
||
var _system_room = o_cfg.method.get_paravalue("system_room", agentid, gameid);
|
||
var robotGoldRange = null;
|
||
if(_system_room){
|
||
for(var k=0;k<_system_room.length;k++){
|
||
var sRoomType = _system_room[k].roomtype;
|
||
if(typeof sRoomType == "object"){
|
||
sRoomType = JSON.stringify(sRoomType);
|
||
}
|
||
if(JSON.stringify(roomtype) == sRoomType){
|
||
msg.data.robot.robotGoldRange = _system_room[k].robotGoldRange;
|
||
}
|
||
}
|
||
}
|
||
|
||
//加入房间成功
|
||
o_gameinfo.roomcode = roomcode;
|
||
if (o_roomserver.server == o_agent.server){
|
||
//房间服务器与代理商服务器是同一地址
|
||
var roomserver_data = youle_agent.app.youle_room[msg.rpc](msg);
|
||
//返回前端
|
||
pack.data = roomserver_data.data;
|
||
if (pack.data.state != 0){
|
||
//房间服务器创建房间失败
|
||
o_gameinfo.roomcode = null;
|
||
pack.rpc = "create_room";
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = "创建系统房间失败";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
pack.rpc = "create_room";
|
||
youle_agent.app.SendPack(pack);
|
||
|
||
var o_share = {};
|
||
o_share.roomcode = roomcode;
|
||
o_share.roomtype = roomtype;
|
||
o_share.sharetime= min_now();
|
||
o_game.sharerooms_system.push(o_share);
|
||
}
|
||
|
||
//一次性创建N个系统房
|
||
var _roomcount = 0;
|
||
for (var i = 0; i < o_game.sharerooms_system.length; i++) {
|
||
if (JSON.stringify(o_game.sharerooms_system[i].roomtype) == JSON.stringify(roomtype)){
|
||
_roomcount = _roomcount + 1;
|
||
}
|
||
}
|
||
for (var i = 1; i <= sysroom_playercount - _roomcount; i++) {
|
||
var roomcode = o_game.method.new_roomcode();
|
||
if (!roomcode){
|
||
break;
|
||
}
|
||
|
||
//获取房号对应的房间服务器地址
|
||
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 = 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 = 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;
|
||
msg.data.player.notenterroom = 1;
|
||
|
||
//机器人金币范围
|
||
msg.data.robot={};
|
||
msg.data.robot.goldRange = null;
|
||
var o_cfg = youle_agent.app.youle_platform.config;
|
||
var _system_room = o_cfg.method.get_paravalue("system_room", agentid, gameid);
|
||
var robotGoldRange = null;
|
||
if(_system_room){
|
||
for(var k=0;k<_system_room.length;k++){
|
||
var sRoomType = _system_room[k].roomtype;
|
||
if(typeof sRoomType == "object"){
|
||
sRoomType = JSON.stringify(sRoomType);
|
||
}
|
||
if(JSON.stringify(roomtype) == sRoomType){
|
||
msg.data.robot.robotGoldRange = _system_room[k].robotGoldRange;
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
//获取开房所需的房卡数量
|
||
var needroomcard = youle_agent.import.createroom_needroomcard(o_game, roomtype);
|
||
//系统房间写死不要房卡
|
||
needroomcard = 0;
|
||
//获取总局数
|
||
var asetcount = youle_agent.import.createroom_asetcount(o_game, roomtype);
|
||
//获取豆豆下限
|
||
var beanfloor = youle_agent.import.createroom_beanfloor(o_game, roomtype);
|
||
//获取房间类型
|
||
var roommode = youle_agent.import.createroom_roommode(o_game, roomtype);
|
||
//获取星星场倍数
|
||
var beanmult = youle_agent.import.createroom_beanmult(o_game, roomtype);
|
||
//玩家是否需要准备
|
||
var needprepare = youle_agent.import.createroom_needprepare(o_game, roomtype);
|
||
//系统房间即无限局一定要准备
|
||
needprepare = 1;
|
||
|
||
//不是星星场
|
||
if (!roommode){
|
||
beanmult = 0;
|
||
}
|
||
|
||
msg.data.room = {};
|
||
msg.data.room.roomcode = roomcode;
|
||
msg.data.room.roomtype = roomtype;
|
||
msg.data.room.needroomcard = needroomcard;
|
||
msg.data.room.asetcount = asetcount;
|
||
msg.data.room.infinite = 1;
|
||
msg.data.room.sysroom = 1;
|
||
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.isFree = isFree;
|
||
|
||
if (o_roomserver.server == o_agent.server){
|
||
var roomserver_data = youle_agent.app.youle_room[msg.rpc](msg);
|
||
if (roomserver_data.data.state == 0){
|
||
var o_share = {};
|
||
o_share.roomcode = roomcode;
|
||
o_share.roomtype = roomtype;
|
||
o_share.sharetime= min_now();
|
||
o_game.sharerooms_system.push(o_share);
|
||
}
|
||
}
|
||
}
|
||
|
||
break;
|
||
}
|
||
}
|
||
|
||
//高级选项_房间列表
|
||
youle_agent.advanced_roomlist = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var gameid = pack.data.gameid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return;
|
||
};
|
||
//检查游戏id是否存在
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
return;
|
||
};
|
||
//查找玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return;
|
||
};
|
||
// var videoConfig = youle_room.app.youle_platform.config.method.get_paravalue("videoConfig",agentid,gameid);
|
||
pack.data.shortcode = o_player.shortcode;
|
||
//房间费系统设置的值
|
||
pack.data.tea = null;
|
||
pack.data.roomtype = null;
|
||
pack.data.roomlist = [];
|
||
if (o_player.roomcodes){
|
||
for (var i = 0; i < o_player.roomcodes.length; i++) {
|
||
if (o_player.roomcodes[i].gameid == gameid) {
|
||
pack.data.tea = o_player.roomcodes[i].tea;
|
||
pack.data.roomtype = o_player.roomcodes[i].roomtype;
|
||
pack.data.roomlist = o_player.roomcodes[i].roomlist;
|
||
pack.data.isClose = o_player.roomcodes[i].isClose;
|
||
pack.data.rebateType = o_player.roomcodes[i].rebateType;
|
||
if(o_player.roomcodes[i].videoConfig){
|
||
pack.data.videoConfig = o_player.roomcodes[i].videoConfig;
|
||
}
|
||
if(o_player.roomcodes[i].rebateLimit){
|
||
pack.data.rebateLimit = o_player.roomcodes[i].rebateLimit;
|
||
}
|
||
if(o_player.roomcodes[i].forbidSelect){
|
||
pack.data.forbidSelect = o_player.roomcodes[i].forbidSelect;
|
||
}else{
|
||
pack.data.forbidSelect = 0;
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
return pack;
|
||
}
|
||
//房主开关房间
|
||
youle_agent.switchRoomList = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var gameid = pack.data.gameid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var isClose = 0;
|
||
if(pack.data.isClose){
|
||
isClose = parseInt(pack.data.isClose);
|
||
}else{
|
||
isClose = 0;
|
||
}
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return;
|
||
};
|
||
//检查游戏id是否存在
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
return;
|
||
};
|
||
//查找玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return;
|
||
};
|
||
var o_roomcodes = {};
|
||
var isfound = false;
|
||
for (var i = 0; i < o_player.roomcodes.length; i++) {
|
||
if (o_player.roomcodes[i].gameid == gameid) {
|
||
o_roomcodes.roomlist = o_player.roomcodes[i].roomlist;
|
||
o_player.roomcodes[i].isClose = isClose;
|
||
// o_player.roomcodes[i] = o_roomcodes;
|
||
o_roomcodes = o_player.roomcodes[i];
|
||
isfound = true;
|
||
break;
|
||
}
|
||
}
|
||
if (isfound){
|
||
//console.log(3,JSON.stringify(o_player.roomcodes));
|
||
var sql = "update player set play_roomcodes = ? where play_agentid = ? and play_playerid = ?";
|
||
youle_agent.mysql.execsql("execsql", sql, [JSON.stringify(o_player.roomcodes), agentid, playerid]);
|
||
pack.data.state = 0;
|
||
}else{
|
||
pack.data.state = 1;
|
||
pack.data.error = "未找到您所创建的房间";
|
||
pack.data.showerror = 1;
|
||
//youle_agent.app.SendPack(pack);
|
||
}
|
||
return pack;
|
||
}
|
||
//高级选项_创建固定房间
|
||
youle_agent.advanced_createroom = function(pack,adv){
|
||
var agentid = pack.data.agentid;
|
||
var gameid = pack.data.gameid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var tea = parseInt(pack.data.tea);
|
||
var roomtype = pack.data.roomtype;
|
||
var infinite = 0;
|
||
if (pack.data.infinite){
|
||
infinite = 1;
|
||
}
|
||
var rebateLimit = pack.data.rebateLimit;
|
||
if(rebateLimit){
|
||
rebateLimit = parseInt(rebateLimit);
|
||
}else{
|
||
rebateLimit = 0;
|
||
}
|
||
var forbidSelect = pack.data.forbidSelect;
|
||
if(forbidSelect){
|
||
forbidSelect = parseInt(forbidSelect);
|
||
}else{
|
||
forbidSelect = 0;
|
||
}
|
||
var rebateType = pack.data.rebateType;
|
||
var o_cfg = youle_agent.app.youle_platform.config;
|
||
var rebateConfig = o_cfg.method.get_paravalue("rebateConfig", agentid);
|
||
//扣卡模式
|
||
//var deductMode = youle_agent.import.deduct_roomcard_mode(o_game, roomtype);
|
||
//视频房
|
||
var videoConfig = null;
|
||
if(pack.data.videoConfig){
|
||
videoConfig = pack.data.videoConfig;
|
||
}
|
||
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return;
|
||
};
|
||
//检查游戏id是否存在
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
return;
|
||
};
|
||
//查找玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return;
|
||
};
|
||
|
||
//获取开房所需的房卡数量
|
||
var needroomcard = youle_agent.import.createroom_needroomcard(o_game, roomtype);
|
||
//获取总局数
|
||
var asetcount = youle_agent.import.createroom_asetcount(o_game, roomtype);
|
||
//获取豆豆下限
|
||
var beanfloor = youle_agent.import.createroom_beanfloor(o_game, roomtype);
|
||
//获取房间类型
|
||
var roommode = youle_agent.import.createroom_roommode(o_game, roomtype);
|
||
//获取星星场倍数
|
||
var beanmult = youle_agent.import.createroom_beanmult(o_game, roomtype);
|
||
|
||
//不是星星场
|
||
if (!roommode){
|
||
beanmult = 1;
|
||
}
|
||
|
||
//判断玩家设置的房间费是否符合范围
|
||
|
||
if(rebateConfig){
|
||
var sysTea = parseInt(beanmult * rebateConfig.value/100);
|
||
//if(gameid == "Btke0urRy0cvPd5CIvD5yfhYhKhdSdex"){
|
||
|
||
//}else{
|
||
if(tea < sysTea){
|
||
tea = sysTea;
|
||
}
|
||
//}
|
||
if(!rebateConfig.rebateCharm){
|
||
rebateType = 0;
|
||
}
|
||
}
|
||
|
||
if(roommode){
|
||
rebateType = 0;
|
||
}
|
||
//只有设置了星星限进的房间才有茶水费
|
||
// if (!beanfloor){
|
||
// tea = 0;
|
||
|
||
// }
|
||
|
||
if(needroomcard > 0){
|
||
var vConfig = o_agent.method.alyVideoConfig(videoConfig);
|
||
if(vConfig[0] == 1){
|
||
needroomcard += vConfig[1];
|
||
}
|
||
}
|
||
//玩家是否需要准备
|
||
var needprepare = youle_agent.import.createroom_needprepare(o_game, roomtype);
|
||
|
||
var o_roomcodes = {};
|
||
o_roomcodes.gameid = gameid;
|
||
o_roomcodes.tea = tea;
|
||
o_roomcodes.roomtype = roomtype;
|
||
o_roomcodes.infinite = infinite;
|
||
o_roomcodes.videoConfig = videoConfig;
|
||
o_roomcodes.roommode = roommode;
|
||
o_roomcodes.rebateType = rebateType;
|
||
o_roomcodes.rebateLimit = rebateLimit;
|
||
o_roomcodes.forbidSelect = forbidSelect;
|
||
o_roomcodes.isClose = 0;
|
||
o_roomcodes.roomlist = [];
|
||
var isfound = false;
|
||
for (var i = 0; i < o_player.roomcodes.length; i++) {
|
||
if (o_player.roomcodes[i].gameid == gameid) {
|
||
o_roomcodes.roomlist = o_player.roomcodes[i].roomlist;
|
||
o_player.roomcodes[i] = o_roomcodes;
|
||
if(o_player.roomcodes[i].isClose){
|
||
o_player.roomcodes[i].isClose = 1;
|
||
}else{
|
||
o_player.roomcodes[i].isClose = 0;
|
||
}
|
||
if(o_player.roomcodes[i].forbidSelect){
|
||
o_player.roomcodes[i].forbidSelect = 1;
|
||
}else{
|
||
o_player.roomcodes[i].forbidSelect = 0;
|
||
}
|
||
o_player.roomcodes[i].rebateType = rebateType;
|
||
o_player.roomcodes[i].rebateLimit = rebateLimit;
|
||
isfound = true;
|
||
break;
|
||
}
|
||
}
|
||
if (!isfound){
|
||
o_player.roomcodes.push(o_roomcodes);
|
||
}
|
||
var o_game1 = null;
|
||
var o_agent1 = youle_room.agents.method.find_agent(agentid);
|
||
if (o_agent1){
|
||
o_game1 = o_agent1.method.find_game(gameid);
|
||
}
|
||
//查找游戏
|
||
|
||
|
||
if(o_game1 && !adv){
|
||
//解散已存在的可解散房间
|
||
for(var i = 0; i < o_roomcodes.roomlist.length; i++){
|
||
|
||
//查找房间
|
||
var o_room = o_game1.method.find_room(o_roomcodes.roomlist[i]);
|
||
if(o_room){
|
||
// if(o_room.method.get_playercount() == 0){
|
||
if(o_room.battlestate == 0){
|
||
//通知代理服务器解散房间
|
||
var msg1 = {};
|
||
msg1.app = youle_room.app.appname;
|
||
msg1.route = youle_room.app.youle_agent.routename;
|
||
msg1.rpc = "self_break_room";
|
||
msg1.data = {};
|
||
msg1.data.agentid = agentid;
|
||
msg1.data.gameid = gameid;
|
||
msg1.data.roomcode = o_roomcodes.roomlist[i];
|
||
//玩家列表
|
||
msg1.data.playeridlist = [];
|
||
for (var j = 0; j < o_room.seatlist.length; j++) {
|
||
if (o_room.seatlist[j]){
|
||
msg1.data.playeridlist.push(o_room.seatlist[j].playerid);
|
||
}
|
||
}
|
||
youle_room.app.youle_agent[msg1.rpc](msg1,true);
|
||
var msg2 = {};
|
||
msg2.app = youle_room.app.appname;
|
||
msg2.route = youle_room.routename;
|
||
msg2.rpc = "other_break_room";
|
||
o_room.method.sendpack_toother(msg2, o_player.gameinfo.seat);
|
||
// //解散房间
|
||
// var o_agent = o_room.o_game.o_agent;
|
||
// var o_game = o_room.o_game;
|
||
// var msg1 = {};
|
||
// msg1.app = youle_room.app.appname;
|
||
// msg1.route = youle_room.app.youle_agent.routename;
|
||
// msg1.rpc = "free_room";
|
||
// msg1.data = {};
|
||
// msg1.data.agentid = o_agent.agentid;
|
||
// msg1.data.gameid = o_game.gameid;
|
||
// msg1.data.roomcode = o_room.roomcode;
|
||
// //玩家列表
|
||
// msg1.data.playeridlist = [];
|
||
// for (var i = 0; i < o_room.seatlist.length; i++) {
|
||
// if (o_room.seatlist[i]){
|
||
// msg1.data.playeridlist.push(o_room.seatlist[i].playerid);
|
||
// }
|
||
// }
|
||
// youle_room.app.youle_agent[msg1.rpc](msg1);
|
||
//释放房间
|
||
o_game1.method.free_room(o_room);
|
||
}else{
|
||
youle_room.import.gameBreak(o_room);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
var advan = 0;
|
||
if(adv){
|
||
advan = adv;
|
||
}else{
|
||
advan = o_player.advanced;
|
||
}
|
||
for (var i = 0; i < advan - o_roomcodes.roomlist.length; i++){
|
||
//随机获取新的房号
|
||
var roomcode = o_game.method.new_roomcode(o_player.shortcode);
|
||
|
||
//获取房号对应的房间服务器地址
|
||
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 = 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 = 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 = null;
|
||
msg.data.player.conmode = null;
|
||
msg.data.player.fromid = null;
|
||
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;
|
||
|
||
msg.data.room = {};
|
||
msg.data.room.roomcode = roomcode;
|
||
msg.data.room.roomtype = roomtype;
|
||
msg.data.room.needroomcard = needroomcard;
|
||
msg.data.room.asetcount = asetcount;
|
||
msg.data.room.infinite = infinite;
|
||
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 = 1;
|
||
msg.data.room.advanced_teabean = tea;
|
||
msg.data.room.shortcode = o_player.shortcode;
|
||
|
||
|
||
msg.data.room.videoConfig = videoConfig;
|
||
msg.data.room.rebateType = rebateType;
|
||
msg.data.room.rebateLimit = rebateLimit;
|
||
msg.data.room.forbidSelect = forbidSelect;
|
||
if(o_player.roomcodes[i].isClose == 0){
|
||
msg.data.room.isClose = 0;
|
||
}else if(o_player.roomcodes[i].isClose == 1){
|
||
msg.data.room.isClose = 1;
|
||
}
|
||
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_roomcodes.roomlist.push(roomcode);
|
||
i = i - 1;
|
||
}
|
||
}
|
||
}
|
||
o_roomcodes.roomlist.length = advan;
|
||
pack.data.roommode = roommode;
|
||
pack.data.roomlist = o_roomcodes.roomlist;
|
||
//已存在分享的vip房
|
||
if(o_game.sharerooms_player){
|
||
var findIndex = min_ary_indexof(o_game.sharerooms_player, o_player.shortcode, "roomcode");
|
||
if(findIndex > -1){
|
||
o_game.sharerooms_player[findIndex].roomlist = o_roomcodes.roomlist;
|
||
o_game.sharerooms_player[findIndex].roomtype = roomtype;
|
||
o_game.sharerooms_player[findIndex].destwo = o_player.destwo;
|
||
o_game.sharerooms_player[findIndex].roommode = roommode;
|
||
}
|
||
}
|
||
//修改数据库
|
||
//console.log(2,JSON.stringify(o_player.roomcodes));
|
||
var sql = "update player set play_roomcodes = ? where play_agentid = ? and play_playerid = ?";
|
||
youle_agent.mysql.execsql("execsql", sql, [JSON.stringify(o_player.roomcodes), agentid, playerid]);
|
||
return pack;
|
||
}
|
||
|
||
//自动创建单个固定房号的房间
|
||
youle_agent.advanced_createroom_roomcode = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var gameid = pack.data.gameid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var roomcode = parseInt(pack.data.roomcode);
|
||
var shortcode = pack.data.shortcode;
|
||
|
||
//var videoConfig = pack.data.videoConfig;
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return;
|
||
};
|
||
//检查游戏id是否存在
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
return;
|
||
};
|
||
//查找玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return;
|
||
};
|
||
var o_cfg = youle_agent.app.youle_platform.config;
|
||
var rebateConfig = o_cfg.method.get_paravalue("rebateConfig", agentid);
|
||
var isfound = false;
|
||
var tea;
|
||
var roomtype;
|
||
var infinite = 0;
|
||
var videoConfig = null;
|
||
var rebateType = 0;
|
||
var rebateLimit = 0;
|
||
var forbidSelect = 0;
|
||
// var isClose = 0;
|
||
for (var i = 0; i < o_player.roomcodes.length; i++) {
|
||
if (o_player.roomcodes[i].gameid == gameid) {
|
||
for (var j = 0; j < o_player.roomcodes[i].roomlist.length; j++) {
|
||
if (o_player.roomcodes[i].roomlist[j] == roomcode){
|
||
isfound = true;
|
||
tea = o_player.roomcodes[i].tea;
|
||
roomtype = o_player.roomcodes[i].roomtype;
|
||
if(o_player.roomcodes[i].videoConfig){
|
||
videoConfig = o_player.roomcodes[i].videoConfig;
|
||
}
|
||
// if(o_player.roomcodes[i].isClose){
|
||
// isClose = o_player.roomcodes[i].isClose;
|
||
// }
|
||
if (o_player.roomcodes[i].infinite){
|
||
infinite = o_player.roomcodes[i].infinite;
|
||
}
|
||
if (o_player.roomcodes[i].rebateType){
|
||
rebateType = o_player.roomcodes[i].rebateType;
|
||
}
|
||
if (o_player.roomcodes[i].rebateLimit){
|
||
rebateLimit = o_player.roomcodes[i].rebateLimit;
|
||
}
|
||
if (o_player.roomcodes[i].forbidSelect){
|
||
forbidSelect = o_player.roomcodes[i].forbidSelect;
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
if (isfound){
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
if (!isfound){
|
||
return;
|
||
}
|
||
|
||
|
||
//获取开房所需的房卡数量
|
||
var needroomcard = youle_agent.import.createroom_needroomcard(o_game, roomtype);
|
||
//获取总局数
|
||
var asetcount = youle_agent.import.createroom_asetcount(o_game, roomtype);
|
||
//获取豆豆下限
|
||
var beanfloor = youle_agent.import.createroom_beanfloor(o_game, roomtype);
|
||
//获取房间类型
|
||
var roommode = youle_agent.import.createroom_roommode(o_game, roomtype);
|
||
//获取星星场倍数
|
||
var beanmult = youle_agent.import.createroom_beanmult(o_game, roomtype);
|
||
if (!roommode){
|
||
beanmult = 1;
|
||
}
|
||
//判断玩家设置的房间费是否符合范围
|
||
if(rebateConfig){
|
||
var sysTea = parseInt(beanmult * rebateConfig.value/100);
|
||
//if(gameid == "Btke0urRy0cvPd5CIvD5yfhYhKhdSdex"){
|
||
|
||
//}else{
|
||
if(tea < sysTea){
|
||
tea = sysTea;
|
||
}
|
||
//}
|
||
if(!rebateConfig.rebateCharm){
|
||
rebateType = 0;
|
||
}
|
||
}
|
||
if(roommode){
|
||
rebateType = 0;
|
||
}
|
||
//视频房房卡星星扣除修改
|
||
if(needroomcard>0){
|
||
var vConfig = o_agent.method.alyVideoConfig(videoConfig);
|
||
if(vConfig[0] == 1){
|
||
needroomcard += vConfig[1];
|
||
}
|
||
}
|
||
//不是星星场
|
||
if (!roommode){
|
||
beanmult = 1;
|
||
}
|
||
//玩家是否需要准备
|
||
var needprepare = youle_agent.import.createroom_needprepare(o_game, roomtype);
|
||
//不是星星场
|
||
|
||
|
||
//获取房号对应的房间服务器地址
|
||
o_game.method.new_roomcode(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 = 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 = 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 = null;
|
||
msg.data.player.conmode = null;
|
||
msg.data.player.fromid = null;
|
||
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;
|
||
|
||
msg.data.room = {};
|
||
msg.data.room.roomcode = roomcode;
|
||
msg.data.room.roomtype = roomtype;
|
||
msg.data.room.needroomcard = needroomcard;
|
||
msg.data.room.asetcount = asetcount;
|
||
msg.data.room.infinite = infinite;
|
||
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 = 1;
|
||
msg.data.room.advanced_teabean = tea;
|
||
msg.data.room.shortcode = shortcode;
|
||
|
||
msg.data.room.videoConfig = videoConfig;
|
||
msg.data.room.rebateType = rebateType;
|
||
|
||
msg.data.room.rebateLimit = rebateLimit;
|
||
msg.data.room.forbidSelect = forbidSelect;
|
||
if (o_roomserver.server == o_agent.server){
|
||
//房间服务器与代理商服务器是同一地址
|
||
var roomserver_data = youle_agent.app.youle_room[msg.rpc](msg);
|
||
if (roomserver_data.data.state != 0){
|
||
console.log(min_now() + " 自动创建固定房号房间失败" + roomcode);
|
||
console.log(roomserver_data);
|
||
}
|
||
}
|
||
return pack;
|
||
}
|
||
|
||
youle_agent.query_player2 = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
|
||
var db_callback = function(dbdata){
|
||
pack.data = {};
|
||
if (dbdata.length != 0){
|
||
pack.data.agentid = dbdata[0].play_agentid;
|
||
pack.data.playerid = dbdata[0].play_playerid;
|
||
pack.data.nickname = dbdata[0].play_nickname;
|
||
pack.data.avatar = dbdata[0].play_avatar;
|
||
pack.data.sex = dbdata[0].play_sex;
|
||
pack.data.roomcard = dbdata[0].play_roomcard;
|
||
pack.data.bean = dbdata[0].play_bean;
|
||
}
|
||
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
var sql = "select * from player where play_agentid = ? and play_playerid = ? limit 1";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid, playerid], db_callback, pack);
|
||
}
|
||
|
||
youle_agent.query_player3 = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var unionid = pack.data.unionid;
|
||
|
||
var db_callback = function(dbdata){
|
||
pack.data = {};
|
||
if (dbdata.length != 0){
|
||
pack.data.agentid = dbdata[0].play_agentid;
|
||
pack.data.playerid = dbdata[0].play_playerid;
|
||
pack.data.roomcard = dbdata[0].play_roomcard;
|
||
pack.data.bean = dbdata[0].play_bean;
|
||
}
|
||
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
var sql = "select * from player where play_agentid = ? and play_unionid = ?";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid, unionid], db_callback, pack);
|
||
}
|
||
|
||
youle_agent.query_player4 = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var shortcode = parseInt(pack.data.shortcode);
|
||
|
||
var db_callback = function(dbdata){
|
||
if (dbdata.length == 0){
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
var whitelist = JSON.stringify(youle_agent.deCompressWhiteList(dbdata[0].play_whitelist));
|
||
//var whitelist = dbdata[0].play_whitelist;
|
||
if (!whitelist){
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
|
||
whitelist = JSON.parse(whitelist);
|
||
var idx = -1;
|
||
|
||
idx = min_ary_indexof(whitelist, playerid, "playerid");
|
||
if (idx != -1){
|
||
pack.data.memo = 0;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
|
||
idx = min_ary_indexof(whitelist, playerid);
|
||
if (idx != -1){
|
||
pack.data.memo = 0;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
|
||
for (var i = 0; i < whitelist.length; i++) {
|
||
if (whitelist[i][0] == playerid){
|
||
if (whitelist[i][2]){
|
||
pack.data.memo = whitelist[i][2];
|
||
} else {
|
||
pack.data.memo = 0;
|
||
}
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
}
|
||
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
var sql = "select * from player where play_agentid = ? and play_shortcode = ?";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid, shortcode], db_callback, pack);
|
||
}
|
||
|
||
youle_agent.get_treasurelist = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var db_callback = function(dbdata){
|
||
pack.data.list = [];
|
||
for (var i = 0; i < dbdata.length; i++) {
|
||
var o_player = {};
|
||
o_player.playerid = dbdata[i].play_playerid;
|
||
o_player.headimg = dbdata[i].play_avatar;
|
||
o_player.name = dbdata[i].play_nickname;
|
||
o_player.star = dbdata[i].play_bean;
|
||
o_player.signature = dbdata[i].play_sign;
|
||
pack.data.list.push(o_player);
|
||
}
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
var sql = "select * from player where play_agentid = ? order by play_bean desc limit 10";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid], db_callback, pack);
|
||
}
|
||
|
||
//设置金币银行密码
|
||
youle_agent.set_bankpwd = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var unionid = pack.data.unionid;
|
||
var password = pack.data.password;
|
||
var tel = "";
|
||
if (pack.data.tel){
|
||
tel = pack.data.tel;
|
||
}
|
||
var wechat = "";
|
||
if (pack.data.wechat){
|
||
tel = pack.data.wechat;
|
||
}
|
||
|
||
//检查代理商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;
|
||
};
|
||
if (o_player.unionid != unionid){
|
||
return;
|
||
}
|
||
if (!password){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = "密码不能为空";
|
||
pack.data.showerror = 1;
|
||
return pack;
|
||
}
|
||
if (!o_player.bankpower){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = "没有权限";
|
||
pack.data.showerror = 1;
|
||
return pack;
|
||
}
|
||
|
||
o_player.bankpwd = password;
|
||
var sql = "update player set play_bankpwd=?,play_tel=?,play_wechat=? where play_agentid = ? and play_playerid = ?";
|
||
youle_agent.mysql.execsql("execsql", sql, [password, tel, wechat, agentid, playerid]);
|
||
|
||
pack.data = {};
|
||
pack.data.state = 0;
|
||
pack.data.error = "设置成功";
|
||
pack.data.showerror = 1;
|
||
return pack;
|
||
}
|
||
|
||
//存入或取出金币
|
||
youle_agent.change_star = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var password = pack.data.password;
|
||
var mode = parseInt(pack.data.mode);
|
||
var count = parseInt(pack.data.count);
|
||
|
||
//检查代理商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;
|
||
};
|
||
if (o_player.bankpwd != password){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = "密码不正确";
|
||
pack.data.showerror = 1;
|
||
return pack;
|
||
}
|
||
if ((mode && count > o_player.bank) ||
|
||
(!mode && count > o_player.bean)){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = "数量不够";
|
||
pack.data.showerror = 1;
|
||
return pack;
|
||
}
|
||
var initBean = Number(o_agent.initBean);
|
||
if(!o_agent.initBean){
|
||
initBean = 0;
|
||
}
|
||
var cTemp = false;
|
||
|
||
if(!mode){
|
||
if(o_player.bean < 0){
|
||
if(count > 0){
|
||
cTemp = true;
|
||
}
|
||
count = 0;
|
||
|
||
}else{
|
||
if(o_player.bean < initBean){
|
||
if(count > 0){
|
||
cTemp = true;
|
||
}
|
||
count = 0;
|
||
|
||
}else{
|
||
if(o_player.bean - count <= initBean){
|
||
if(count > o_player.bean - initBean){
|
||
cTemp = true;
|
||
}
|
||
count = o_player.bean - initBean;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
var db_callback = function(dbdata){
|
||
if (dbdata[0].result == 1){
|
||
pack.data = {};
|
||
pack.data.state = 1;
|
||
pack.data.error = dbdata[0].error;
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
} else {
|
||
o_player.bean = parseInt(dbdata[0].play_bean);
|
||
o_player.bank = parseInt(dbdata[0].play_bank);
|
||
|
||
pack.data = {};
|
||
pack.data.state = 0;
|
||
pack.data.mode = mode;
|
||
pack.data.count = count;
|
||
pack.data.star1 = o_player.bean;
|
||
pack.data.star2 = o_player.bank;
|
||
if(cTemp){
|
||
pack.data.msg = "需要保留系统赠送、数值已被调整";
|
||
}
|
||
pack.data.count = count;
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
}
|
||
var sql = "call cp_game_change_bankstar(?,?,?,?,?);";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid, playerid, password, mode, count], db_callback, pack);
|
||
}
|
||
|
||
//比赛列表
|
||
youle_agent.get_matchlist = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var gameid = pack.data.gameid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
|
||
pack.data.matchlist = [];
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
pack.data.state = 1;
|
||
pack.data.error = "agentid不存在";
|
||
return pack;
|
||
};
|
||
//查找游戏
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
pack.data.state = 1;
|
||
pack.data.error = "gameid不存在";
|
||
return pack;
|
||
};
|
||
//检查玩家是否存在
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
pack.data.state = 1;
|
||
pack.data.error = "playerid不存在";
|
||
return pack;
|
||
};
|
||
//检查玩家是否已经在房间内了
|
||
var o_gameinfo = o_player.method.get_gameinfo(o_game);
|
||
if (!o_gameinfo){
|
||
o_player.method.login_game(o_game, pack.ip, pack.conmode, pack.fromid, null, null);
|
||
o_gameinfo = o_player.method.get_gameinfo(o_game);
|
||
}
|
||
if (o_gameinfo && o_gameinfo.roomcode) {
|
||
pack.data.state = 1;
|
||
pack.data.error = "玩家已经在房间内";
|
||
return pack;
|
||
};
|
||
o_gameinfo.match_ip = pack.ip;
|
||
o_gameinfo.match_conmode = pack.conmode;
|
||
o_gameinfo.match_fromid = pack.fromid;
|
||
|
||
if (o_gameinfo.matchid){
|
||
pack.data.matchid = o_gameinfo.matchid;
|
||
pack.data.matchidx = o_gameinfo.matchidx;
|
||
} else {
|
||
pack.data.matchid = null;
|
||
pack.data.matchidx = null;
|
||
}
|
||
|
||
var matchlist = youle_agent.app.youle_platform.config.method.get_paravalue("matchlist", agentid, gameid);
|
||
|
||
// matchlist =
|
||
// [
|
||
// {
|
||
// "id": "2018041102",
|
||
// "roomtype": [1,1,1,2,2,[0,0,[0,0,0],null,null,0],[1,0,5]],
|
||
// "matchname": "有机器人",
|
||
// "imageurl": "",
|
||
// "beginTime": "2018-04-16 15:00",
|
||
// "endTime": "2018-04-16 17:45",
|
||
// "playercount": 7,
|
||
// "playercount2": 6,
|
||
// "bean": 0,
|
||
// "roomcard": 1,
|
||
// "topcount": 6,
|
||
// "circulation": 0,
|
||
// "interval": 0,
|
||
// "gradename": "名称1",
|
||
// "memo1": "第一名:iphone1",
|
||
// "memo2": "2局,扣卡1张,#每局抢庄,牛几几倍,#星星场10倍,茶水费10,#5人场,强制下注5",
|
||
// "memo3": "",
|
||
// "haverobot": 1,
|
||
// "ranking":
|
||
// [
|
||
// {
|
||
// "min": 100,
|
||
// "max": 200,
|
||
// "count": 3
|
||
// },
|
||
// {
|
||
// "min": 200,
|
||
// "max": 300,
|
||
// "count": 2
|
||
// }
|
||
// ]
|
||
// }
|
||
// ];
|
||
|
||
for (var i = 0; i < matchlist.length; i++) {
|
||
o_game.matchlist.method.load_match(matchlist[i]);
|
||
};
|
||
|
||
var do_getmatchinfo = function(obj_match){
|
||
var r = {};
|
||
r.id = obj_match.id;
|
||
r.idx = obj_match.idx;
|
||
r.roomtype = obj_match.roomtype;
|
||
r.matchname = obj_match.matchname;
|
||
r.imageurl = obj_match.imageurl;
|
||
r.playercount = obj_match.playercount;
|
||
r.playercount2= obj_match.playercount2;
|
||
r.beginTime = obj_match.beginTime;
|
||
r.endTime = obj_match.endTime;
|
||
r.bean = obj_match.bean;
|
||
r.roomcard = obj_match.roomcard;
|
||
r.gradename = obj_match.gradename;
|
||
r.memo1 = obj_match.memo1;
|
||
r.memo2 = obj_match.memo2;
|
||
r.memo3 = obj_match.memo3;
|
||
r.isstart = obj_match.isstart;
|
||
r.s_pcount = obj_match.playerlist.length;
|
||
return r;
|
||
}
|
||
|
||
for (var i = 0; i < o_game.matchlist.list.length; i++) {
|
||
var o_match = o_game.matchlist.list[i];
|
||
var found = false;
|
||
for (var j = 0; j < pack.data.matchlist.length; j++) {
|
||
if ((new Date(o_match.beginTime)).getTime() < (new Date(pack.data.matchlist[j].beginTime)).getTime()){
|
||
var o_match_info = do_getmatchinfo(o_match);
|
||
pack.data.matchlist.splice(j, 0, o_match_info);
|
||
found = true;
|
||
break;
|
||
}
|
||
}
|
||
if (!found){
|
||
var o_match_info = do_getmatchinfo(o_match);
|
||
pack.data.matchlist.push(o_match_info);
|
||
}
|
||
};
|
||
return pack;
|
||
}
|
||
|
||
//比赛排队
|
||
youle_agent.lineup = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var gameid = pack.data.gameid;
|
||
var matchid = pack.data.matchid;
|
||
var matchidx = parseInt(pack.data.matchidx);
|
||
var playerid = parseInt(pack.data.playerid);
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
pack.data.state = 1;
|
||
pack.data.error = "agentid不存在";
|
||
return pack;
|
||
};
|
||
//查找游戏
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
pack.data.state = 1;
|
||
pack.data.error = "gameid不存在";
|
||
return pack;
|
||
};
|
||
//检查玩家是否存在
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
pack.data.state = 1;
|
||
pack.data.error = "playerid不存在";
|
||
return pack;
|
||
};
|
||
//检查玩家是否已经在房间内了
|
||
var o_gameinfo = o_player.method.get_gameinfo(o_game);
|
||
if (!o_gameinfo){
|
||
o_player.method.login_game(o_game, pack.ip, pack.conmode, pack.fromid, null, null);
|
||
o_gameinfo = o_player.method.get_gameinfo(o_game);
|
||
}
|
||
if (o_gameinfo && o_gameinfo.roomcode) {
|
||
pack.data.state = 1;
|
||
pack.data.error = "玩家已经在房间内";
|
||
return pack;
|
||
};
|
||
//检查玩家是否已经在排队
|
||
if (o_gameinfo && o_gameinfo.matchid) {
|
||
pack.data.state = 1;
|
||
pack.data.error = "玩家已经在排队";
|
||
return pack;
|
||
};
|
||
//查找比赛
|
||
var o_match = o_game.matchlist.method.find_match(matchid, matchidx);
|
||
if (!o_match){
|
||
pack.data.state = 1;
|
||
pack.data.error = "比赛不存在或已结束";
|
||
return pack;
|
||
}
|
||
|
||
//检查玩家房卡是否够用
|
||
var needroomcard = youle_agent.import.createroom_needroomcard(o_game, o_match.roomtype);
|
||
if (o_player.roomcard < o_match.roomcard){
|
||
var roomCardName = youle_agent.app.youle_platform.config.method.get_paravalue("roomCardName", agentid);
|
||
if (!roomCardName){
|
||
roomCardName = "房卡";
|
||
}
|
||
pack.data.state = 1;
|
||
pack.data.error = roomCardName + "数量不够";
|
||
return pack;
|
||
};
|
||
//检查玩家金币是否够用
|
||
var beanfloor = youle_agent.import.createroom_beanfloor(o_game, o_match.roomtype);
|
||
if (beanfloor != null){
|
||
if (o_player.bean < beanfloor){
|
||
var starName = youle_agent.app.youle_platform.config.method.get_paravalue("starName", agentid);
|
||
if (!starName){
|
||
starName = "星星";
|
||
}
|
||
pack.data.state = 1;
|
||
pack.data.error = starName + "数量不够";
|
||
return pack;
|
||
}
|
||
};
|
||
|
||
var idx = min_ary_indexof(o_match.playerlist, playerid);
|
||
if (idx == -1){
|
||
o_match.playerlist.push(playerid);
|
||
o_gameinfo.matchid = o_match.id;
|
||
o_gameinfo.matchidx = o_match.idx;
|
||
}
|
||
pack.data.state = 0;
|
||
pack.data.s_pcount = o_match.playerlist.length;
|
||
return pack;
|
||
}
|
||
|
||
//取消排队
|
||
youle_agent.lineup_cancel = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var gameid = pack.data.gameid;
|
||
var matchid = pack.data.matchid;
|
||
var matchidx = parseInt(pack.data.matchidx);
|
||
var playerid = parseInt(pack.data.playerid);
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
pack.data.state = 1;
|
||
pack.data.error = "agentid不存在";
|
||
return pack;
|
||
};
|
||
//查找游戏
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
pack.data.state = 1;
|
||
pack.data.error = "gameid不存在";
|
||
return pack;
|
||
};
|
||
//检查玩家是否存在
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
pack.data.state = 1;
|
||
pack.data.error = "playerid不存在";
|
||
return pack;
|
||
};
|
||
//查找比赛
|
||
var o_match = o_game.matchlist.method.find_match(matchid, matchidx);
|
||
if (!o_match){
|
||
pack.data.state = 1;
|
||
pack.data.error = "比赛不存在或已结束";
|
||
return pack;
|
||
}
|
||
|
||
var idx = min_ary_indexof(o_match.playerlist, playerid);
|
||
if (idx > -1){
|
||
o_match.playerlist.splice(idx, 1);
|
||
var o_gameinfo = o_player.method.get_gameinfo(o_game);
|
||
if (o_gameinfo){
|
||
delete o_gameinfo.matchid;
|
||
delete o_gameinfo.matchidx;
|
||
}
|
||
}
|
||
pack.data.state = 0;
|
||
pack.data.s_pcount = o_match.playerlist.length;
|
||
return pack;
|
||
}
|
||
|
||
//获取某个比赛的排行榜
|
||
youle_agent.get_ranklist = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var gameid = pack.data.gameid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var matchid = pack.data.match_id;
|
||
var matchidx = parseInt(pack.data.match_idx);
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
pack.data.state = 1;
|
||
pack.data.error = "agentid不存在";
|
||
return pack;
|
||
};
|
||
//查找游戏
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
pack.data.state = 1;
|
||
pack.data.error = "gameid不存在";
|
||
return pack;
|
||
};
|
||
//检查玩家是否存在
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
pack.data.state = 1;
|
||
pack.data.error = "playerid不存在";
|
||
return pack;
|
||
};
|
||
//查找比赛
|
||
var o_match = o_game.matchlist.method.find_match(matchid, matchidx);
|
||
if (!o_match){
|
||
pack.data.state = 1;
|
||
pack.data.error = "比赛不存在或已结束";
|
||
return pack;
|
||
}
|
||
|
||
pack.data.state = 0;
|
||
pack.data.ranklist = o_match.ranklist;
|
||
return pack;
|
||
}
|
||
|
||
//获取我上榜了的比赛列表
|
||
youle_agent.get_mymatchlist = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var gameid = pack.data.gameid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
pack.data.state = 1;
|
||
pack.data.error = "agentid不存在";
|
||
return pack;
|
||
};
|
||
//查找游戏
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
pack.data.state = 1;
|
||
pack.data.error = "gameid不存在";
|
||
return pack;
|
||
};
|
||
//检查玩家是否存在
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
pack.data.state = 1;
|
||
pack.data.error = "playerid不存在";
|
||
return pack;
|
||
};
|
||
|
||
pack.data.matchlist1 = [];
|
||
for (var i = 0; i < o_game.matchlist.list.length; i++) {
|
||
if (min_ary_indexof(o_game.matchlist.list[i].ranklist, playerid, "playerid") > -1){
|
||
var o_match = {};
|
||
o_match.id = o_game.matchlist.list[i].id;
|
||
o_match.idx = o_game.matchlist.list[i].idx;
|
||
o_match.roomtype = o_game.matchlist.list[i].roomtype;
|
||
o_match.matchname = o_game.matchlist.list[i].matchname;
|
||
o_match.imageurl = o_game.matchlist.list[i].imageurl;
|
||
o_match.playercount = o_game.matchlist.list[i].playercount;
|
||
o_match.beginTime = o_game.matchlist.list[i].beginTime;
|
||
o_match.endTime = o_game.matchlist.list[i].endTime;
|
||
o_match.bean = o_game.matchlist.list[i].bean;
|
||
o_match.roomcard = o_game.matchlist.list[i].roomcard;
|
||
o_match.gradename = o_game.matchlist.list[i].gradename;
|
||
o_match.memo1 = o_game.matchlist.list[i].memo1;
|
||
o_match.memo2 = o_game.matchlist.list[i].memo2;
|
||
o_match.memo3 = o_game.matchlist.list[i].memo3;
|
||
o_match.ranklist = o_game.matchlist.list[i].ranklist;
|
||
pack.data.matchlist1.push(o_match);
|
||
}
|
||
};
|
||
|
||
pack.data.matchlist2 = [];
|
||
var db_callback = function(dbdata){
|
||
for (var i = 0; i < dbdata.length; i++) {
|
||
var o_match = {};
|
||
o_match.id = dbdata[i].matc_matchid;
|
||
o_match.idx = dbdata[i].matc_matchidx;
|
||
o_match.roomtype = dbdata[i].matc_roomtype;
|
||
o_match.matchname = dbdata[i].matc_matchname;
|
||
o_match.imageurl = dbdata[i].matc_imageurl;
|
||
o_match.playercount = dbdata[i].matc_playercount;
|
||
o_match.beginTime = dbdata[i].matc_beginTime;
|
||
o_match.endTime = dbdata[i].matc_endTime;
|
||
o_match.bean = dbdata[i].matc_bean;
|
||
o_match.roomcard = dbdata[i].matc_roomcard;
|
||
o_match.gradename = dbdata[i].matc_gradename;
|
||
o_match.memo1 = dbdata[i].matc_memo1;
|
||
o_match.memo2 = dbdata[i].matc_memo2;
|
||
o_match.memo3 = dbdata[i].matc_memo3;
|
||
o_match.ranklist = JSON.parse(dbdata[i].matc_ranking);
|
||
pack.data.matchlist2.push(o_match);
|
||
}
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
var sql = "select * from `match` " +
|
||
"where exists (select 1 from match_ranking " +
|
||
"where mara_agentid = matc_agentid " +
|
||
"and mara_gameid = matc_gameid " +
|
||
"and mara_matchid = matc_matchid " +
|
||
"and mara_matchidx = matc_matchidx " +
|
||
"and mara_agentid = ? " +
|
||
"and mara_gameid = ? " +
|
||
"and mara_playerid = ?);";
|
||
youle_agent.mysql_grade.execsql("opensql", sql, [agentid, gameid, playerid], db_callback);
|
||
}
|
||
|
||
|
||
|
||
//代理后台-充值房卡
|
||
youle_agent.synch_roomcard = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var opt = parseInt(pack.data.opt);
|
||
var roomcard = parseInt(pack.data.roomcard);
|
||
var change = parseInt(pack.data.change);
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
pack.data.state = 0;
|
||
return pack;
|
||
};
|
||
//检查玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
pack.data.state = 0;
|
||
return pack;
|
||
};
|
||
|
||
o_player.method.update_roomcard(opt, roomcard, change);
|
||
pack.data.state = 0;
|
||
return pack;
|
||
}
|
||
|
||
//代理后台-充值星星
|
||
youle_agent.synch_bean = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var opt = parseInt(pack.data.opt);
|
||
var bean = parseInt(pack.data.bean);
|
||
var change = parseInt(pack.data.change);
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
pack.data.state = 0;
|
||
return pack;
|
||
};
|
||
//检查玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
pack.data.state = 0;
|
||
return pack;
|
||
};
|
||
|
||
o_player.method.update_bean(opt, bean, change);
|
||
pack.data.state = 0;
|
||
return pack;
|
||
}
|
||
|
||
//代理后台-玩家绑定邀请码/解绑邀请码
|
||
youle_agent.synch_invitecode = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var invitecode = parseInt(pack.data.invitecode);
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
pack.data.state = 0;
|
||
return pack;
|
||
};
|
||
//检查玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
pack.data.state = 0;
|
||
return pack;
|
||
};
|
||
|
||
o_player.invitecode = invitecode;
|
||
pack.data.state = 0;
|
||
return pack;
|
||
}
|
||
|
||
//代理后台-封禁玩家/解封玩家
|
||
youle_agent.synch_playerstate = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var state = parseInt(pack.data.state);
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
pack.data.state = 0;
|
||
return pack;
|
||
};
|
||
//检查玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
pack.data.state = 0;
|
||
return pack;
|
||
};
|
||
|
||
o_player.state = state;
|
||
pack.data.state = 0;
|
||
return pack;
|
||
}
|
||
//代理后台-开通短号
|
||
youle_agent.synch_shortcode = function(pack){
|
||
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var shortcode = parseInt(pack.data.shortcode);
|
||
var advanced = parseInt(pack.data.advanced);
|
||
var desone = pack.data.desone;
|
||
var destwo = pack.data.destwo;
|
||
var lower_limit = pack.data.lower_limit;
|
||
var announcement = pack.data.announcement;
|
||
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
pack.data.state = 0;
|
||
return pack;
|
||
};
|
||
|
||
|
||
|
||
|
||
//var db_callback_shortcode = function(dbdata){
|
||
//if(dbdata.length > 0){
|
||
|
||
// if(dbdata[0].play_roomcodes){
|
||
// o_player.roomcodes = JSON.parse(dbdata[0].play_roomcodes);
|
||
// }else{
|
||
// o_player.roomcodes = null;
|
||
// }
|
||
//console.log(o_player.roomcodes);
|
||
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;
|
||
o_oldplayer.lowlimit = null;
|
||
o_oldplayer.notice = null;
|
||
var sql = "update player set play_roomcodes = ? where play_agentid = ? and play_playerid = ?";
|
||
youle_agent.mysql.execsql("execsql", sql,[ "", agentid, old_playerid]);
|
||
}
|
||
}
|
||
}
|
||
var o_shortcode = {};
|
||
o_shortcode.shortcode = shortcode;
|
||
o_shortcode.playerid = playerid;
|
||
o_agent.shortcodes[shortcode] = o_shortcode;
|
||
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (o_player) {
|
||
if (o_player.shortcode && o_player.shortcode != shortcode){
|
||
o_agent.shortcodes[o_player.shortcode] = null;
|
||
|
||
var o_game = null;
|
||
var o_agent1 = youle_room.agents.method.find_agent(agentid);
|
||
if(o_player.roomcodes && o_agent1){
|
||
//更换短号清除之前存在的旧房间
|
||
if(o_player.roomcodes && o_agent1){
|
||
for(var i=0;i<o_player.roomcodes.length;i++){
|
||
o_game = o_agent1.method.find_game(o_player.roomcodes[i].gameid);
|
||
|
||
if(o_game && o_player.roomcodes[i].roomlist.length > 0){
|
||
var o_room = null;
|
||
for(var j = 0;j < o_player.roomcodes[i].roomlist.length;j++){
|
||
o_room = o_game.method.find_room(o_player.roomcodes[i].roomlist[j]);
|
||
if(o_room){
|
||
o_room.shortcode = null;
|
||
o_room.advanced_type = null;
|
||
if(o_room.battlestate == 0){
|
||
//通知代理服务器解散房间
|
||
var msg1 = {};
|
||
msg1.app = youle_room.app.appname;
|
||
msg1.route = youle_room.app.youle_agent.routename;
|
||
msg1.rpc = "self_break_room";
|
||
msg1.data = {};
|
||
msg1.data.agentid = agentid;
|
||
msg1.data.gameid = o_player.roomcodes[i].gameid;
|
||
msg1.data.roomcode = o_player.roomcodes[i].roomlist[j];
|
||
//玩家列表
|
||
msg1.data.playeridlist = [];
|
||
for (var k = 0; k < o_room.seatlist.length; k++) {
|
||
if (o_room.seatlist[k]){
|
||
msg1.data.playeridlist.push(o_room.seatlist[k].playerid);
|
||
}
|
||
}
|
||
youle_room.app.youle_agent[msg1.rpc](msg1,true);
|
||
var msg2 = {};
|
||
msg2.app = youle_room.app.appname;
|
||
msg2.route = youle_room.routename;
|
||
msg2.rpc = "other_break_room";
|
||
o_room.method.sendpack_toother(msg2, o_player.gameinfo.seat);
|
||
//释放房间
|
||
o_game.method.free_room(o_room);
|
||
|
||
}else{
|
||
youle_room.import.gameBreak(o_room);
|
||
}
|
||
|
||
}else{
|
||
console.log("玩家短号房列表出现异常!!");
|
||
}
|
||
}
|
||
o_player.roomcodes[i].roomlist=[];
|
||
|
||
}
|
||
//已存在分享的vip房
|
||
var oGame = o_agent.method.find_game(o_player.roomcodes[i].gameid);
|
||
if(oGame){
|
||
if(oGame.sharerooms_player){
|
||
var findIndex = min_ary_indexof(oGame.sharerooms_player, o_player.shortcode, "roomcode");
|
||
if(findIndex > -1){
|
||
min_ary_delval(oGame.sharerooms_player, o_player.shortcode, "roomcode");
|
||
}
|
||
}
|
||
}
|
||
}
|
||
//修改数据库
|
||
console.log(1,JSON.stringify(o_player.roomcodes));
|
||
var sql = "update player set play_roomcodes = ? where play_agentid = ? and play_playerid = ?";
|
||
youle_agent.mysql.execsql("execsql", sql, [JSON.stringify(o_player.roomcodes), agentid, playerid]);
|
||
}
|
||
}
|
||
}
|
||
var preAdvanced = o_player.advanced;
|
||
o_player.advanced = advanced;
|
||
o_player.shortcode = shortcode;
|
||
o_player.desone = desone;
|
||
o_player.destwo = destwo;
|
||
if (lower_limit != null){
|
||
o_player.lowlimit = parseInt(lower_limit);
|
||
} else {
|
||
o_player.lowlimit = -900000000;
|
||
}
|
||
o_player.notice = announcement;
|
||
//处理已存在的短号房间
|
||
var o_game = null;
|
||
var o_agent1 = youle_room.agents.method.find_agent(agentid);
|
||
if(o_player.roomcodes && o_agent1){
|
||
for(var i=0;i<o_player.roomcodes.length;i++){
|
||
o_game = o_agent1.method.find_game(o_player.roomcodes[i].gameid);
|
||
if(o_game && o_player.roomcodes[i].roomlist.length > 0){
|
||
if(preAdvanced > advanced){//房间数量减少
|
||
var o_room = null;
|
||
for(var j = o_player.roomcodes[i].roomlist.length-1;j >= advanced;j--){
|
||
o_room = o_game.method.find_room(o_player.roomcodes[i].roomlist[j]);
|
||
if(o_room){
|
||
o_room.shortcode = null;
|
||
o_room.advanced_type = null;
|
||
if(o_room.battlestate == 0){
|
||
//通知代理服务器解散房间
|
||
var msg1 = {};
|
||
msg1.app = youle_room.app.appname;
|
||
msg1.route = youle_room.app.youle_agent.routename;
|
||
msg1.rpc = "self_break_room";
|
||
msg1.data = {};
|
||
msg1.data.agentid = agentid;
|
||
msg1.data.gameid = o_player.roomcodes[i].gameid;
|
||
msg1.data.roomcode = o_player.roomcodes[i].roomlist[j];
|
||
//玩家列表
|
||
msg1.data.playeridlist = [];
|
||
for (var k = 0; k < o_room.seatlist.length; k++) {
|
||
if (o_room.seatlist[k]){
|
||
msg1.data.playeridlist.push(o_room.seatlist[k].playerid);
|
||
}
|
||
}
|
||
youle_room.app.youle_agent[msg1.rpc](msg1,true);
|
||
var msg2 = {};
|
||
msg2.app = youle_room.app.appname;
|
||
msg2.route = youle_room.routename;
|
||
msg2.rpc = "other_break_room";
|
||
o_room.method.sendpack_toother(msg2, o_player.gameinfo.seat);
|
||
//释放房间
|
||
o_game.method.free_room(o_room);
|
||
|
||
}else{
|
||
youle_room.import.gameBreak(o_room);
|
||
}
|
||
|
||
}else{
|
||
console.log("玩家短号房列表出现异常!!");
|
||
}
|
||
}
|
||
o_player.roomcodes[i].roomlist.splice(advanced,preAdvanced - advanced);
|
||
var sql = "update player set play_roomcodes = ? where play_agentid = ? and play_playerid = ?";
|
||
youle_agent.mysql.execsql("execsql", sql, [JSON.stringify(o_player.roomcodes), agentid, playerid]);
|
||
//已存在分享的vip房
|
||
var oGame = o_agent.method.find_game(o_player.roomcodes[i].gameid);
|
||
if(oGame){
|
||
if(oGame.sharerooms_player){
|
||
var findIndex = min_ary_indexof(oGame.sharerooms_player, shortcode, "roomcode");
|
||
if(findIndex > -1){
|
||
oGame.sharerooms_player[findIndex].roomlist=o_player.roomcodes[i].roomlist;
|
||
oGame.sharerooms_player[findIndex].destwo=destwo;
|
||
}
|
||
}
|
||
}
|
||
}else if(preAdvanced < advanced){//房间数量增加
|
||
var mg = {};
|
||
mg.data={};
|
||
mg.data.agentid = agentid;
|
||
mg.data.gameid = o_player.roomcodes[i].gameid;
|
||
mg.data.playerid = o_player.playerid;
|
||
mg.data.tea = o_player.roomcodes[i].tea;
|
||
mg.data.roomtype = o_player.roomcodes[i].roomtype;
|
||
mg.data.infinite = o_player.roomcodes[i].infinite;
|
||
mg.data.videoConfig = o_player.roomcodes[i].videoConfig;
|
||
mg.data.rebateLimit = o_player.roomcodes[i].rebateLimit;
|
||
mg.data.forbidSelect = o_player.roomcodes[i].forbidSelect;
|
||
mg.data.rebateType = o_player.roomcodes[i].rebateType;
|
||
try{
|
||
youle_agent.advanced_createroom(mg,advanced);
|
||
}catch(e){
|
||
|
||
}
|
||
}
|
||
//已存在分享的vip房
|
||
var oGame = o_agent.method.find_game(o_player.roomcodes[i].gameid);
|
||
if(oGame){
|
||
if(oGame.sharerooms_player){
|
||
var findIndex = min_ary_indexof(oGame.sharerooms_player, shortcode, "roomcode");
|
||
if(findIndex > -1){
|
||
oGame.sharerooms_player[findIndex].destwo=destwo;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
|
||
// }
|
||
//};
|
||
// sql = "select * from player where play_agentid = ? and play_playerid = ?";
|
||
// youle_agent.mysql.execsql("opensql", sql, [agentid,playerid], db_callback_shortcode);
|
||
// console.log("获取房间");
|
||
|
||
pack.data.state = 0;
|
||
return pack;
|
||
}
|
||
|
||
//代理后台-设置短号白名单
|
||
youle_agent.synch_whitelist = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var whitelist = pack.data.whitelist;
|
||
if(whitelist){
|
||
for(var i=0;i<whitelist.length;i++){
|
||
if(whitelist[i][2]){
|
||
whitelist[i][2] = parseInt(whitelist[i][2]);
|
||
}else{
|
||
whitelist[i][2] = 0;
|
||
}
|
||
}
|
||
}
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
pack.data.state = 0;
|
||
return pack;
|
||
};
|
||
//检查玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
pack.data.state = 0;
|
||
return pack;
|
||
};
|
||
|
||
o_player.whitelist = whitelist;
|
||
pack.data.state = 0;
|
||
return pack;
|
||
}
|
||
|
||
//代理后台-修改短号白名单
|
||
youle_agent.synch_update_whitelist = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var shortcode = parseInt(pack.data.shortcode);
|
||
var whitelist = pack.data.whitelist;
|
||
if(whitelist){
|
||
for(var i=0;i<whitelist.length;i++){
|
||
if(whitelist[i][2]){
|
||
whitelist[i][2] = parseInt(whitelist[i][2]);
|
||
}else{
|
||
whitelist[i][2] = 0;
|
||
}
|
||
}
|
||
}
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
pack.data.state = 0;
|
||
return pack;
|
||
};
|
||
//查找短号
|
||
if (!o_agent.shortcodes){
|
||
pack.data.state = 0;
|
||
return pack;
|
||
}
|
||
var o_shortcode = o_agent.shortcodes[shortcode];
|
||
if (!o_shortcode){
|
||
pack.data.state = 1;
|
||
return pack;
|
||
}
|
||
var playerid = o_shortcode.playerid;
|
||
//检查玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
pack.data.state = 0;
|
||
return pack;
|
||
};
|
||
|
||
o_player.whitelist = whitelist;
|
||
pack.data.state = 0;
|
||
return pack;
|
||
}
|
||
|
||
//代理后台-设置系统星星抽成
|
||
youle_agent.synch_coinrebate = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var mode1 = pack.data.mode1;
|
||
var set1 = pack.data.set1;
|
||
var mode2 = pack.data.mode2;
|
||
var set2 = pack.data.set2;
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
pack.data.state = 0;
|
||
return pack;
|
||
};
|
||
|
||
o_agent.rebate_mode1 = mode1;
|
||
o_agent.rebate_set1 = set1;
|
||
o_agent.rebate_mode2 = mode2;
|
||
o_agent.rebate_set2 = set2;
|
||
pack.data.state = 0;
|
||
return pack;
|
||
}
|
||
//设置签名
|
||
youle_agent.setSign = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var sign = pack.data.sign;
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return false;
|
||
};
|
||
//查找玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return false;
|
||
};
|
||
o_player.sign = sign;
|
||
var sql = "update player set play_sign = ? where play_agentid = ? and play_playerid = ?";
|
||
youle_agent.mysql.execsql("execsql", sql, [sign, agentid, playerid]);
|
||
youle_agent.app.SendPack(pack);
|
||
return pack;
|
||
|
||
}
|
||
//转移仓库金币
|
||
youle_agent.changeBankBean = function(pack){
|
||
|
||
var agentid = pack.data.agentid;
|
||
var password = pack.data.password;
|
||
var newPlayerid = pack.data.newPlayerid;
|
||
var oldPlayerid = pack.data.oldPlayerid;
|
||
|
||
var db_callback = function(dbdata){
|
||
console.log(dbdata);
|
||
}
|
||
var sql_game = "call cp_sales2_change_bank(?,?,?,?)";
|
||
youle_agent.mysql.execsql("opensql", sql_game, [agentid, password, newPlayerid, oldPlayerid], db_callback);
|
||
|
||
}
|
||
youle_agent.compressWhiteList = function(data){
|
||
var dataStr = JSON.stringify(data);
|
||
if(dataStr.length > 6000){//超出
|
||
var cmpStr = LZString.compressToUTF16(dataStr);
|
||
return "zip"+cmpStr;
|
||
}else{
|
||
return dataStr;
|
||
}
|
||
}
|
||
youle_agent.deCompressWhiteList = function(data){
|
||
var dataStr = data;
|
||
if(dataStr.indexOf("zip")==0){//压缩
|
||
var str = dataStr.slice(3,dataStr.length);
|
||
var deStr = LZString.decompressFromUTF16(str);
|
||
return JSON.parse(deStr);
|
||
}else{
|
||
return JSON.parse(dataStr);
|
||
}
|
||
}
|
||
youle_agent.optBanList = function(pack){
|
||
//agent player 下的属性 banList:[];
|
||
var agentid = pack.data.agentid;
|
||
var playerid = pack.data.playerid;
|
||
var gameid = pack.data.gameid;
|
||
var optId = parseInt(pack.data.optId);
|
||
//type 1.获取名单 2.查询单个玩家是否在名单中 3.添加名单 4.删除单个名单 5.清空名单
|
||
var type = pack.data.type;
|
||
var breakRoom = pack.data.breakRoom;
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return false;
|
||
};
|
||
//查找玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return false;
|
||
};
|
||
if(!o_player.banList){
|
||
o_player.banList = [];
|
||
}
|
||
if(type){
|
||
type = Number(type);
|
||
}else{
|
||
type = 0;
|
||
}
|
||
|
||
switch(type){
|
||
//查询名单
|
||
case 1:
|
||
pack.data.banList = o_player.banList;
|
||
break;
|
||
//查询单个玩家是否在名单中
|
||
case 2:
|
||
if(o_player.banList.indexOf(optId) < 0){//不在名单中
|
||
pack.data.message = "玩家"+optId+"不在名单中!";
|
||
}else{
|
||
pack.data.message = "您已添加过玩家:"+optId;
|
||
}
|
||
break;
|
||
//添加名单
|
||
case 3:
|
||
if(o_player.banList.indexOf(optId) < 0){//不在名单中
|
||
o_player.banList.unshift(optId);
|
||
pack.data.message = "玩家"+optId+"已添加!";
|
||
}else{
|
||
pack.data.message = "玩家"+optId+"已在名单中!";
|
||
}
|
||
pack.data.banList = o_player.banList;
|
||
//未开战的该玩家房间解散
|
||
try{
|
||
if(breakRoom){
|
||
var o_player1 = o_agent.method.find_player(optId);
|
||
if (o_player1) {
|
||
var o_agent1 = youle_room.agents.method.find_agent(agentid);
|
||
var o_game = o_agent1.method.find_game(gameid);
|
||
if (o_game) {
|
||
if(o_player1.gameinfo[o_game.idx]){
|
||
var roomcode = o_player1.gameinfo[o_game.idx].roomcode;
|
||
var o_room = o_game.method.find_room(roomcode);
|
||
if(o_room){
|
||
if(o_room.owner.playerid == playerid){
|
||
|
||
if (o_room.battlestate == 1){
|
||
o_room.method.open_free_timer(1);
|
||
} else {
|
||
//o_room.method.sendpack_toother(msg, -1);
|
||
var msg1 = {};
|
||
msg1.app = youle_room.app.appname;
|
||
msg1.route = youle_room.app.youle_agent.routename;
|
||
msg1.rpc = "self_break_room";
|
||
msg1.data = {};
|
||
msg1.data.agentid = agentid;
|
||
msg1.data.gameid = gameid;
|
||
msg1.data.roomcode = roomcode;
|
||
//玩家列表
|
||
msg1.data.playeridlist = [];
|
||
for (var j = 0; j < o_room.seatlist.length; j++) {
|
||
if (o_room.seatlist[j]){
|
||
msg1.data.playeridlist.push(o_room.seatlist[j].playerid);
|
||
}
|
||
}
|
||
youle_room.app.youle_agent[msg1.rpc](msg1,true);
|
||
var msg2 = {};
|
||
msg2.app = youle_room.app.appname;
|
||
msg2.route = youle_room.routename;
|
||
msg2.rpc = "other_break_room";
|
||
o_room.method.sendpack_toother(msg2, o_player.gameinfo.seat);
|
||
}
|
||
|
||
//释放房间
|
||
o_game.method.free_room(o_room);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}catch(e){
|
||
console.log(e);
|
||
}
|
||
|
||
break;
|
||
//删除单个名单
|
||
case 4:
|
||
if(o_player.banList.indexOf(optId) >= 0){//在名单中
|
||
min_ary_delval(o_player.banList,optId);
|
||
pack.data.message = "玩家"+optId+"已删除!";
|
||
|
||
}else{
|
||
pack.data.message = "玩家"+optId+"不在名单中!";
|
||
}
|
||
pack.data.banList = o_player.banList;
|
||
break;
|
||
//清空名单
|
||
case 5:
|
||
o_player.banList = [];
|
||
pack.data.message = "名单已清空!";
|
||
pack.data.banList = o_player.banList;
|
||
break;
|
||
//全部白名单添加入黑名单
|
||
case 6:
|
||
var whitelist = o_player.whitelist;
|
||
if(whitelist){
|
||
for(var i=0;i<whitelist.length;i++){
|
||
var pid = Number(whitelist[i][0]);
|
||
if(o_player.banList.indexOf(pid) < 0){//不在名单中
|
||
o_player.banList.unshift(pid);
|
||
|
||
}
|
||
}
|
||
}
|
||
pack.data.banList = o_player.banList;
|
||
pack.data.message = "所有白名单玩家已添加至黑名单!";
|
||
break;
|
||
default:
|
||
|
||
break;
|
||
}
|
||
return pack;
|
||
}
|
||
youle_agent.getShortCodeRankList = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = Number(pack.data.playerid);
|
||
var shortcode = Number(pack.data.shortcode);
|
||
//类型 0 从大到小 1从小到大
|
||
//var type = pack.data.type;
|
||
//排名总数
|
||
var count = pack.data.count;
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return false;
|
||
};
|
||
//查找玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return false;
|
||
};
|
||
var ownerid = null;
|
||
if(o_agent.shortcodes){
|
||
var idx = -1;//min_ary_indexof(o_agent.shortcodes,shortcode,"shortcode");
|
||
for(var i=0;i<o_agent.shortcodes.length;i++){
|
||
if(o_agent.shortcodes[i]){
|
||
if(o_agent.shortcodes[i].shortcode == shortcode){
|
||
idx = i;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
if(idx > -1){
|
||
ownerid = o_agent.shortcodes[idx].playerid;
|
||
}
|
||
}
|
||
if(!ownerid){
|
||
pack.data.error = 1;
|
||
pack.data.message = "短号不存在";
|
||
return pack;
|
||
}
|
||
var owner = o_agent.method.find_player(ownerid);;
|
||
if(!owner){
|
||
pack.data.error = 1;
|
||
pack.data.message = "房主未登录";
|
||
return pack;
|
||
}
|
||
var whitelist = min_copyjson(owner.whitelist);
|
||
if(whitelist){
|
||
|
||
//将白名单字符串转数字
|
||
for(var i=0;i<whitelist.length;i++){
|
||
whitelist[i][0] = Number(whitelist[i][0]);
|
||
if(whitelist[i][2]){
|
||
whitelist[i][2] = Number(whitelist[i][2]);
|
||
}else{
|
||
whitelist[i][2] = 0;
|
||
}
|
||
}
|
||
if(playerid != ownerid){
|
||
var pidx = min_ary_indexof(whitelist,playerid,"0");
|
||
if(pidx==-1){
|
||
pack.data.message = "您不在白名单中,无法获取排名!";
|
||
pack.data.error = 1;
|
||
return pack;
|
||
}
|
||
}
|
||
//排序
|
||
// if(!type){
|
||
whitelist.sort((val1,val2) => val2[2] - val1[2]);
|
||
// }else{
|
||
// whitelist.sort((val1,val2) => val1[2] - val2[2]);
|
||
// }
|
||
var myRank = min_ary_indexof(whitelist,playerid,"0");
|
||
pack.data.rankList = whitelist;
|
||
pack.data.myRank = myRank + 1;
|
||
if(myRank>-1){
|
||
pack.data.myScore = whitelist[myRank][2];
|
||
}else{
|
||
pack.data.myScore = 0;
|
||
}
|
||
}else{
|
||
//pack.data.rankList = [];
|
||
pack.data.message = "该VIP房无排名信息!";
|
||
pack.data.myRank = 0;
|
||
}
|
||
|
||
return pack;
|
||
}
|
||
youle_agent.setAllCharm = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = pack.data.playerid;
|
||
var gameid = pack.data.gameid;
|
||
var value = pack.data.value;
|
||
if(value){
|
||
value = Number(value);
|
||
}else{
|
||
value = 0;
|
||
}
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return false;
|
||
};
|
||
//查找玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return false;
|
||
};
|
||
var whitelist = o_player.whitelist;
|
||
var shortcode = o_player.shortcode;
|
||
if(whitelist){
|
||
for(var i=0;i<whitelist.length;i++){
|
||
whitelist[i][2] = value;
|
||
}
|
||
var writeDB = true;
|
||
if(gameid){
|
||
var config_vipConfig = youle_agent.app.youle_platform.config.method.get_paravalue("vipConfig", agentid, gameid);
|
||
if(config_vipConfig){
|
||
var vipIndex = min_ary_indexof(config_vipConfig,shortcode,"0");
|
||
if(vipIndex > -1){
|
||
if(config_vipConfig[vipIndex][1]){
|
||
writeDB = false;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
writeDB = true;
|
||
if(writeDB){
|
||
var sql = "update player set play_whitelist = ? where play_agentid = ? and play_playerid = ?";
|
||
|
||
youle_room.mysql.execsql("execsql", sql, [youle_agent.compressWhiteList(o_player.whitelist), agentid, playerid]);
|
||
}
|
||
}else{
|
||
// pack.data.message = "您白名单内还没玩家";
|
||
}
|
||
pack.data.message = "设置成功!";
|
||
|
||
|
||
return pack;
|
||
}
|
||
youle_agent.setUserCharm = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = pack.data.playerid;
|
||
var gameid = pack.data.gameid;
|
||
var userid = pack.data.userid;
|
||
var value = pack.data.value;
|
||
var mode = pack.data.mode;
|
||
if(value){
|
||
value = Number(value);
|
||
}else{
|
||
value = 0;
|
||
}
|
||
if(!mode){
|
||
mode = 0;
|
||
}
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return false;
|
||
};
|
||
//查找玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return false;
|
||
};
|
||
var whitelist = o_player.whitelist;
|
||
var shortcode = o_player.shortcode;
|
||
if(whitelist){
|
||
for(var i=0;i<whitelist.length;i++){
|
||
if(whitelist[i][0] == userid){
|
||
if(mode == 0){
|
||
whitelist[i][2] = value;
|
||
}else{
|
||
whitelist[i][2] += value;
|
||
}
|
||
break;
|
||
}
|
||
|
||
}
|
||
var writeDB = true;
|
||
if(gameid){
|
||
var config_vipConfig = youle_agent.app.youle_platform.config.method.get_paravalue("vipConfig", agentid, gameid);
|
||
if(config_vipConfig){
|
||
var vipIndex = min_ary_indexof(config_vipConfig,shortcode,"0");
|
||
if(vipIndex > -1){
|
||
if(config_vipConfig[vipIndex][1]){
|
||
writeDB = false;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
writeDB = true;
|
||
if(writeDB){
|
||
var sql = "update player set play_whitelist = ? where play_agentid = ? and play_playerid = ?";
|
||
|
||
youle_room.mysql.execsql("execsql", sql, [youle_agent.compressWhiteList(o_player.whitelist), agentid, playerid]);
|
||
}
|
||
}else{
|
||
// pack.data.message = "您白名单内还没玩家";
|
||
}
|
||
pack.data.message = "设置成功!";
|
||
|
||
|
||
return pack;
|
||
}
|
||
//查找玩家是否在白名单中 返回短号数组
|
||
youle_agent.findPlayerInWhiteList = function(agentid,userid){
|
||
//查找代理商
|
||
var res = [];
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return res;
|
||
};
|
||
|
||
|
||
|
||
if(o_agent.players){
|
||
for(var i=0;i<o_agent.players.length;i++){
|
||
if(o_agent.players[i] && o_agent.players[i].whitelist){
|
||
for(var j=0;j<o_agent.players[i].whitelist.length;j++){
|
||
if(o_agent.players[i].whitelist[j][0] == userid){
|
||
res.push(o_agent.players[i].shortcode);
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return res;
|
||
}
|
||
return res;
|
||
}
|
||
youle_agent.optWhiteList1 = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = pack.data.playerid;
|
||
var userid = pack.data.userid;
|
||
var value = pack.data.value;
|
||
//1 添加修改 2 删除
|
||
var mode = pack.data.mode;
|
||
if(value){
|
||
value = Number(value);
|
||
}else{
|
||
value = 0;
|
||
}
|
||
if(!userid){
|
||
pack.data.message = "玩家ID不能为空!";
|
||
return pack;
|
||
}
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return false;
|
||
};
|
||
//查找玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return false;
|
||
};
|
||
var whitelist = o_player.whitelist;
|
||
var shortcode = o_player.shortcode;
|
||
var writeDB = false;
|
||
var isFound = false;
|
||
if(whitelist){
|
||
if(mode == 2){//删除
|
||
try{
|
||
whitelist = whitelist.filter(function(item){
|
||
if(item[0] == userid){
|
||
writeDB = true;
|
||
isFound = true;
|
||
}
|
||
return item[0] != userid;
|
||
});
|
||
if(!isFound){
|
||
pack.data.message = "该玩家不在名单中!";
|
||
}
|
||
|
||
}catch(err){
|
||
console.log(err);
|
||
}
|
||
}else{
|
||
try{
|
||
var wlist = youle_agent.findPlayerInWhiteList(agentid,userid);
|
||
//用来取消一个玩家只能存在一个短号中
|
||
wlist = [];
|
||
//已存在于不属于该短号的白名单中
|
||
if(wlist.length!=0 && wlist.indexOf(shortcode) == -1){
|
||
pack.data.message = "该玩家已存在于其他短号白名单中,无法添加!";
|
||
}else{
|
||
var tmp = false;
|
||
for(var i=0;i<whitelist.length;i++){
|
||
if(whitelist[i][0] == userid){
|
||
tmp = true;
|
||
whitelist[i][2] = value;
|
||
}
|
||
}
|
||
if(!tmp){
|
||
whitelist.push([userid,"",value]);
|
||
}
|
||
writeDB = true;
|
||
}
|
||
|
||
}catch(err){
|
||
console.log(err);
|
||
}
|
||
}
|
||
o_player.whitelist = whitelist;
|
||
|
||
}else{
|
||
// pack.data.message = "您白名单内还没玩家";
|
||
whitelist = [[userid,"",value]];
|
||
o_player.whitelist = whitelist;
|
||
writeDB = true;
|
||
}
|
||
if(writeDB){
|
||
var sql = "update player set play_whitelist = ? where play_agentid = ? and play_playerid = ?";
|
||
|
||
youle_room.mysql.execsql("execsql", sql, [youle_agent.compressWhiteList(o_player.whitelist), agentid, playerid]);
|
||
}
|
||
pack.data.whiteList = whitelist;
|
||
return pack;
|
||
}
|
||
youle_agent.optWhiteList = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = pack.data.playerid;
|
||
var userid = pack.data.userid;
|
||
var value = pack.data.value;
|
||
//1 添加修改 2 删除
|
||
var mode = pack.data.mode;
|
||
if(value){
|
||
value = Number(value);
|
||
}else{
|
||
value = 0;
|
||
}
|
||
if(!userid){
|
||
pack.data.message = "玩家ID不能为空!";
|
||
return pack;
|
||
}
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return false;
|
||
};
|
||
//查找玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return false;
|
||
};
|
||
var whitelist = o_player.whitelist;
|
||
var shortcode = o_player.shortcode;
|
||
var writeDB = false;
|
||
var isFound = false;
|
||
if(whitelist){
|
||
if(mode == 2){//删除
|
||
try{
|
||
whitelist = whitelist.filter(function(item){
|
||
if(item[0] == userid){
|
||
writeDB = true;
|
||
isFound = true;
|
||
}
|
||
return item[0] != userid;
|
||
});
|
||
if(!isFound){
|
||
pack.data.message = "该玩家不在名单中!";
|
||
}
|
||
|
||
}catch(err){
|
||
console.log(err);
|
||
}
|
||
}else{
|
||
try{
|
||
var wlist = youle_agent.findPlayerInWhiteList(agentid,userid);
|
||
//已存在于不属于该短号的白名单中
|
||
if(wlist.length!=0 && wlist.indexOf(shortcode) == -1){
|
||
pack.data.message = "该玩家已存在于其他短号白名单中,无法添加!";
|
||
}else{
|
||
var tmp = false;
|
||
for(var i=0;i<whitelist.length;i++){
|
||
if(whitelist[i][0] == userid){
|
||
tmp = true;
|
||
whitelist[i][2] = value;
|
||
}
|
||
}
|
||
if(!tmp){
|
||
whitelist.push([userid,"",value]);
|
||
}
|
||
writeDB = true;
|
||
}
|
||
|
||
}catch(err){
|
||
console.log(err);
|
||
}
|
||
}
|
||
o_player.whitelist = whitelist;
|
||
|
||
}else{
|
||
// pack.data.message = "您白名单内还没玩家";
|
||
whitelist = [[userid,"",value]];
|
||
o_player.whitelist = whitelist;
|
||
writeDB = true;
|
||
}
|
||
if(writeDB){
|
||
var sql = "update player set play_whitelist = ? where play_agentid = ? and play_playerid = ?";
|
||
|
||
youle_room.mysql.execsql("execsql", sql, [youle_agent.compressWhiteList(o_player.whitelist), agentid, playerid]);
|
||
}
|
||
pack.data.whiteList = whitelist;
|
||
return pack;
|
||
}
|
||
youle_agent.getPlayerWhiteList = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = pack.data.playerid;
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return false;
|
||
};
|
||
//查找玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return false;
|
||
};
|
||
var whitelist = o_player.whitelist;
|
||
pack.data.whiteList = whitelist;
|
||
return pack;
|
||
}
|
||
youle_agent.getVipRankList = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
// var playerid = pack.data.playerid;
|
||
var limit = pack.data.limit;
|
||
if(!limit){
|
||
limit = 10;
|
||
}
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return false;
|
||
};
|
||
var agentid = pack.data.agentid;
|
||
var db_callback = function(dbdata){
|
||
pack.data.list = [];
|
||
for (var i = 0; i < dbdata.length; i++) {
|
||
var o_player = {};
|
||
o_player.playerid = dbdata[i].play_playerid;
|
||
o_player.headimg = dbdata[i].play_avatar;
|
||
o_player.name = dbdata[i].play_nickname;
|
||
o_player.star = dbdata[i].play_bean;
|
||
o_player.signature = dbdata[i].play_sign;
|
||
o_player.destwo = dbdata[i].play_destwo;
|
||
o_player.shortcode = dbdata[i].play_shortcode;
|
||
o_player.notice = dbdata[i].play_notice;
|
||
pack.data.list.push(o_player);
|
||
}
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
var sql = "select * from player where play_agentid = ? and play_shortcode is not null order by play_bean desc limit "+limit;
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid], db_callback, pack);
|
||
//return pack;
|
||
}
|
||
youle_agent.playerBehavior = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var gameid = pack.data.gameid;
|
||
var playerid = Number(pack.data.playerid);
|
||
var tag = pack.data.tag;
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return false;
|
||
};
|
||
//查找玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return false;
|
||
};
|
||
var url = "http://test3.1888day.com/api/gamedo/gamedo";
|
||
var cfg = {};
|
||
cfg.url = url;
|
||
cfg.type = "POST";
|
||
cfg.data = "agentid="+agentid+"&gameid="+gameid+"&playerid="+playerid+"&tag="+tag;
|
||
|
||
cfg.success = function(msg){
|
||
console.log(msg);
|
||
};
|
||
cfg.error = function(msg){
|
||
console.log(msg);
|
||
};
|
||
min_http(cfg);
|
||
|
||
}
|
||
youle_agent.setVipForbidSelect = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var gameid = pack.data.gameid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var forbidSelect = 0;
|
||
if(pack.data.forbidSelect){
|
||
forbidSelect = parseInt(pack.data.forbidSelect);
|
||
}else{
|
||
forbidSelect = 0;
|
||
}
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return;
|
||
};
|
||
//检查游戏id是否存在
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game) {
|
||
return;
|
||
};
|
||
//查找玩家
|
||
var o_player = o_agent.method.find_player(playerid);
|
||
if (!o_player) {
|
||
return;
|
||
};
|
||
var o_roomcodes = {};
|
||
var isfound = false;
|
||
for (var i = 0; i < o_player.roomcodes.length; i++) {
|
||
if (o_player.roomcodes[i].gameid == gameid) {
|
||
o_roomcodes.roomlist = o_player.roomcodes[i].roomlist;
|
||
o_player.roomcodes[i].forbidSelect = forbidSelect;
|
||
// o_player.roomcodes[i] = o_roomcodes;
|
||
o_roomcodes = o_player.roomcodes[i];
|
||
isfound = true;
|
||
break;
|
||
}
|
||
}
|
||
if (isfound){
|
||
//console.log(3,JSON.stringify(o_player.roomcodes));
|
||
var sql = "update player set play_roomcodes = ? where play_agentid = ? and play_playerid = ?";
|
||
youle_agent.mysql.execsql("execsql", sql, [JSON.stringify(o_player.roomcodes), agentid, playerid]);
|
||
pack.data.state = 0;
|
||
}else{
|
||
pack.data.state = 1;
|
||
pack.data.error = "您还未创建房间!";
|
||
pack.data.showerror = 1;
|
||
//youle_agent.app.SendPack(pack);
|
||
}
|
||
return pack;
|
||
}
|
||
//赠送金币(仓库)
|
||
youle_agent.giveCoin = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var toPlayerid = parseInt(pack.data.toPlayerid);
|
||
var count = pack.data.count;
|
||
var password = pack.data.password;
|
||
var gameid = pack.data.gameid;
|
||
|
||
//查找代理商
|
||
var o_agent = youle_agent.agents.method.find_agent(agentid);
|
||
if (!o_agent) {
|
||
return;
|
||
};
|
||
if(toPlayerid == playerid){
|
||
pack.data.state = 1;
|
||
pack.data.error = "不可赠送给自己";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return ;
|
||
}
|
||
//查找玩家
|
||
var invitecode1 = 0;
|
||
var inviteid1 = 0;
|
||
var marketid1 = 0;
|
||
var invitecode2 = 0;
|
||
var inviteid2 = 0;
|
||
var marketid2 = 0;
|
||
var playBean = 0;
|
||
var playBean1 = 0;
|
||
var callbackFun = function(){
|
||
var starName = youle_agent.app.youle_platform.config.method.get_paravalue("starName", agentid);
|
||
if (!starName){
|
||
starName = "星星";
|
||
}
|
||
|
||
if(playBean <= 0){
|
||
pack.data.state = 1;
|
||
pack.data.error = "您没有"+starName+"可赠送!";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return ;
|
||
}
|
||
if(count < 0){
|
||
pack.data.state = 1;
|
||
pack.data.error = "赠送数量必须大于0!";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return ;
|
||
}
|
||
if(count > playBean){
|
||
pack.data.state = 1;
|
||
pack.data.error = "赠送数量超出!";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
return ;
|
||
}
|
||
var uBank1 = Number(playBean) - Number(count);
|
||
var sql = "update player set play_bank = ? where play_agentid = ? and play_playerid = ?";
|
||
youle_agent.mysql.execsql("execsql", sql, [uBank1, agentid, playerid]);
|
||
|
||
var uBank2 = Number(playBean1) + Number(count);
|
||
var sql = "update player set play_bank = ? where play_agentid = ? and play_playerid = ?";
|
||
youle_agent.mysql.execsql("execsql", sql, [uBank2, agentid, toPlayerid]);
|
||
pack.data.state = 0;
|
||
pack.data.showerror = 1;
|
||
pack.data.star2 = uBank1;
|
||
pack.data.error = "成功赠送"+starName+count;
|
||
youle_agent.app.SendPack(pack);
|
||
var sql = "insert into gold_account(goac_id,goac_agentid,goac_gameid,goac_roomcode,goac_roommode,goac_createtime,goac_beanmult,goac_ownerid,goac_shortcode,goac_deduct,goac_roomcard,goac_datatype,goac_asetcount,goac_asetnum,goac_playerid,goac_isrobot,goac_grade,goac_rebatefrom,goac_rebateto,goac_toplayerid,goac_rebatemode,goac_setvalue,goac_rebatevalue,goac_time,goac_invitecode,goac_inviteid,goac_marketid) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
|
||
//房间id = 时间戳 + 4位随机码 + 房号
|
||
var roomid = new Date().getTime() + min_randomChar(4);
|
||
var time = min_now();
|
||
var beanmult = 0;
|
||
|
||
var shortcode = 0;
|
||
|
||
var deductmode = 0;
|
||
|
||
var __o_agentsvr_agent = youle_agent.agents.method.find_agent(agentid);
|
||
var _change = 0;
|
||
_change = -1 * count;
|
||
youle_room.mysql_grade.execsql("execsql", sql, [roomid, agentid, gameid, "", 3, '', beanmult, playerid, shortcode, deductmode, 0, 0, 0, 1, playerid, 0, _change, 0, 0, toPlayerid, 0, 0, 0, time, invitecode1, inviteid1, marketid1]);
|
||
_change = count;
|
||
youle_room.mysql_grade.execsql("execsql", sql, [roomid, agentid, gameid, "", 3, '', beanmult, toPlayerid, shortcode, deductmode, 0, 0, 0, 1, toPlayerid, 0, _change, 0, 0, 0, 0, 0, 0, time, invitecode2, inviteid2, marketid2]);
|
||
/*
|
||
var sql = "insert into gold_account(goac_id,goac_agentid,goac_gameid,goac_roomcode,goac_roommode,goac_createtime,goac_beanmult,goac_ownerid,goac_shortcode,goac_deduct,goac_roomcard,goac_datatype,goac_asetcount,goac_asetnum,goac_playerid,goac_isrobot,goac_grade,goac_rebatefrom,goac_rebateto,goac_toplayerid,goac_rebatemode,goac_setvalue,goac_rebatevalue,goac_time,goac_invitecode,goac_inviteid,goac_marketid) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
|
||
//房间id = 时间戳 + 4位随机码 + 房号
|
||
var roomid = new Date().getTime() + min_randomChar(4);
|
||
var time = min_now();
|
||
var beanmult = 0;
|
||
|
||
var shortcode = 0;
|
||
|
||
var deductmode = 0;
|
||
|
||
var __o_agentsvr_agent = youle_agent.agents.method.find_agent(agentid);
|
||
var _change = 0;
|
||
|
||
//赠送方
|
||
_change = -1 * count;
|
||
var msg = {};
|
||
msg.app = youle_room.app.appname;
|
||
msg.route = youle_room.app.youle_agent.routename;
|
||
msg.rpc = "update_bean";
|
||
msg.data = {};
|
||
msg.data.agentid = agentid;
|
||
msg.data.playerid = playerid;
|
||
msg.data.change = _change;
|
||
msg.data.pushbean = 0;
|
||
msg.data.type = 7;
|
||
msg.data.gameid = gameid;
|
||
youle_room.app.youle_agent[msg.rpc](msg);
|
||
|
||
youle_room.mysql_grade.execsql("execsql", sql, [roomid, agentid, gameid, "", 3, '', beanmult, playerid, shortcode, deductmode, 0, 0, 0, 1, playerid, 0, _change, 0, 0, toPlayerid, 0, 0, 0, time, invitecode1, inviteid1, marketid1]);
|
||
//接收方
|
||
_change = count;
|
||
var msg = {};
|
||
msg.app = youle_room.app.appname;
|
||
msg.route = youle_room.app.youle_agent.routename;
|
||
msg.rpc = "update_bean";
|
||
msg.data = {};
|
||
msg.data.agentid = agentid;
|
||
msg.data.playerid = toPlayerid;
|
||
msg.data.change = _change;
|
||
msg.data.pushbean = 0;
|
||
msg.data.type = 7;
|
||
msg.data.gameid = gameid;
|
||
youle_room.app.youle_agent[msg.rpc](msg);
|
||
|
||
youle_room.mysql_grade.execsql("execsql", sql, [roomid, agentid, gameid, "", 3, '', beanmult, toPlayerid, shortcode, deductmode, 0, 0, 0, 1, toPlayerid, 0, _change, 0, 0, 0, 0, 0, 0, time, invitecode2, inviteid2, marketid2]);
|
||
pack.data.state = 0;
|
||
youle_agent.app.SendPack(pack);
|
||
*/
|
||
|
||
}
|
||
//查找玩家
|
||
var db_callback = function(dbdata){
|
||
pack.data = {};
|
||
if (dbdata.length != 0){
|
||
// pack.data.agentid = dbdata[0].play_agentid;
|
||
// pack.data.playerid = dbdata[0].play_playerid;
|
||
// pack.data.nickname = dbdata[0].play_nickname;
|
||
// pack.data.avatar = dbdata[0].play_avatar;
|
||
// pack.data.sex = dbdata[0].play_sex;
|
||
// pack.data.roomcard = dbdata[0].play_roomcard;
|
||
// pack.data.bean = dbdata[0].play_bean;
|
||
invitecode1 = dbdata[0].play_invitecode;
|
||
inviteid1 = dbdata[0].play_inviteid;
|
||
marketid1 = dbdata[0].play_marketid;
|
||
if(password != dbdata[0].play_bankpwd){
|
||
pack.data.state = 1;
|
||
pack.data.error = "密码不正确!";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
}else{
|
||
playBean = dbdata[0].play_bank;
|
||
var db_callback1 = function(dbdata){
|
||
if (dbdata.length != 0){
|
||
// pack.data.agentid = dbdata[0].play_agentid;
|
||
// pack.data.playerid = dbdata[0].play_playerid;
|
||
// pack.data.nickname = dbdata[0].play_nickname;
|
||
// pack.data.avatar = dbdata[0].play_avatar;
|
||
// pack.data.sex = dbdata[0].play_sex;
|
||
// pack.data.roomcard = dbdata[0].play_roomcard;
|
||
// pack.data.bean = dbdata[0].play_bean;
|
||
playBean1 = dbdata[0].play_bank;
|
||
invitecode2 = dbdata[0].play_invitecode;
|
||
inviteid2 = dbdata[0].play_inviteid;
|
||
marketid2 = dbdata[0].play_marketid;
|
||
callbackFun();
|
||
|
||
}else{
|
||
pack.data.state = 1;
|
||
pack.data.error = "未找到赠送玩家,请确认ID!";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
}
|
||
var sql1 = "select * from player where play_agentid = ? and play_playerid = ? limit 1";
|
||
youle_agent.mysql.execsql("opensql", sql1, [agentid, toPlayerid], db_callback1);
|
||
}
|
||
}else{
|
||
pack.data.state = 1;
|
||
pack.data.error = "账号异常!";
|
||
pack.data.showerror = 1;
|
||
youle_agent.app.SendPack(pack);
|
||
}
|
||
|
||
}
|
||
var sql = "select * from player where play_agentid = ? and play_playerid = ? limit 1";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid, playerid], db_callback);
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
//充值卡充值
|
||
youle_agent.topup_card = function(pack){
|
||
var agentid = pack.data.agentid;
|
||
var playerid = parseInt(pack.data.playerid);
|
||
var cardno = pack.data.cardno;
|
||
|
||
//查找代理商
|
||
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;
|
||
};
|
||
|
||
var db_callback = function(dbdata){
|
||
if (dbdata[0].result == 3){
|
||
pack.rpc = "show_message";
|
||
pack.data = {};
|
||
pack.data.msg = "该卡号不存在";
|
||
pack.data.time = 0;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
if (dbdata[0].result == 4){
|
||
pack.rpc = "show_message";
|
||
pack.data = {};
|
||
pack.data.msg = "该卡号已使用";
|
||
pack.data.time = 0;
|
||
youle_agent.app.SendPack(pack);
|
||
return;
|
||
}
|
||
|
||
var cardtype = parseInt(cardno.substr(32,1));
|
||
var amount = parseInt(cardno.substr(33,20));
|
||
switch(cardtype){
|
||
case 0: //房卡充值
|
||
var msg = {};
|
||
msg.app = "youle";
|
||
msg.route = "agent";
|
||
msg.rpc = "synch_roomcard";
|
||
msg.data = {};
|
||
msg.data.agentid = agentid;
|
||
msg.data.playerid = playerid;
|
||
msg.data.opt = 2;
|
||
msg.data.roomcard = parseInt(dbdata[0].play_roomcard);
|
||
msg.data.change = amount;
|
||
youle_agent.synch_roomcard(msg);
|
||
break;
|
||
case 1: //金币充值
|
||
var msg = {};
|
||
msg.app = "youle";
|
||
msg.route = "agent";
|
||
msg.rpc = "synch_bean";
|
||
msg.data = {};
|
||
msg.data.agentid = agentid;
|
||
msg.data.playerid = playerid;
|
||
msg.data.opt = 2;
|
||
msg.data.bean = parseInt(dbdata[0].play_bean);
|
||
msg.data.change = amount;
|
||
youle_agent.synch_bean(msg);
|
||
break;
|
||
}
|
||
}
|
||
|
||
var sql = "call cp_game_topup_card(?,?,?)";
|
||
youle_agent.mysql.execsql("opensql", sql, [agentid, playerid, cardno], db_callback);
|
||
}
|