2085 lines
73 KiB
JavaScript
2085 lines
73 KiB
JavaScript
///////////////////////////////////////////////////
|
||
/////// cls_youle_room_export: 输出接口 ///////
|
||
///////////////////////////////////////////////////
|
||
var cls_youle_room_export = cls_youle_room_export || {
|
||
|
||
new: function() {
|
||
|
||
var exp = {};
|
||
|
||
//检查玩家的位置是否正确,检查tcp连接是否正确,返回房间对象
|
||
exp.check_player = function(agentid, gameid, roomcode, seat, playerid, conmode, fromid){
|
||
//查找代理商
|
||
var o_agent = youle_room.agents.method.find_agent(agentid);
|
||
if (!o_agent){
|
||
return null;
|
||
}
|
||
//查找游戏
|
||
var o_game = o_agent.method.find_game(gameid);
|
||
if (!o_game){
|
||
return null;
|
||
}
|
||
//查找房间
|
||
var o_room = o_game.method.find_room(roomcode);
|
||
if (!o_room){
|
||
return null;
|
||
}
|
||
//查找玩家
|
||
var o_player = o_room.seatlist[seat];
|
||
if (!o_player){
|
||
return null;
|
||
}
|
||
//检查座位
|
||
if (o_player.playerid != playerid) {
|
||
return null;
|
||
};
|
||
//检查tcp连接
|
||
if (o_player.conmode != conmode || o_player.fromid != fromid) {
|
||
return null;
|
||
}
|
||
return o_room;
|
||
}
|
||
|
||
//扣除房主的房卡
|
||
exp.deduct_roomcard = function(o_room){
|
||
if (!o_room){
|
||
return;
|
||
}
|
||
//系统房间写死不要房卡
|
||
if (o_room.infinite){
|
||
return;
|
||
}
|
||
if (o_room.roommode){
|
||
//sss
|
||
var xxroomdeduct = youle_room.app.youle_platform.config.method.get_paravalue("xxroomdeduct", o_room.o_game.o_agent.agentid);
|
||
if (!xxroomdeduct){
|
||
return;
|
||
}
|
||
}
|
||
|
||
var deductmode = youle_room.import.deduct_roomcard_mode(o_room.o_game, o_room.roomtype);
|
||
if (deductmode == 2){
|
||
//大赢家扣卡
|
||
return;
|
||
}
|
||
// var extcard = 0;
|
||
// if(o_room.videoConfig){
|
||
// var o_agent1 = youle_agent.agents.method.find_agent(o_room.o_game.o_agent.agentid);
|
||
// var vConfig = o_agent1.method.alyVideoConfig(o_room.videoConfig);
|
||
// if(vConfig[0] == 1){
|
||
// extcard = vConfig[1];
|
||
// }
|
||
// }
|
||
|
||
for (var i = 0; i < o_room.seatlist.length; i++) {
|
||
var o_player = o_room.seatlist[i];
|
||
if (!o_player){
|
||
continue;
|
||
}
|
||
if (o_player.gameinfo.isowner == 1){ //房主
|
||
if (o_room.wasdeduct){
|
||
continue;
|
||
}
|
||
if (o_room.needroomcard == 0){
|
||
continue;
|
||
}
|
||
if (o_player.gameinfo.isbet != 1){
|
||
continue;
|
||
}
|
||
//vip不扣房卡
|
||
if (o_player.playertype == 1){
|
||
continue;
|
||
}
|
||
|
||
o_room.wasdeduct = true;
|
||
//通知代理商服务器修改房卡
|
||
var o_game = o_room.o_game;
|
||
var o_agent = o_game.o_agent;
|
||
var msg = {};
|
||
msg.app = youle_room.app.appname;
|
||
msg.route = youle_room.app.youle_agent.routename;
|
||
msg.rpc = "deduct_roomcard";
|
||
msg.data = {};
|
||
msg.data.agentid = o_agent.agentid;
|
||
msg.data.playerid = o_player.playerid;
|
||
msg.data.needroomcard = o_room.needroomcard;
|
||
msg.data.gameid = o_room.o_game.gameid;
|
||
msg.data.roomcode = o_room.roomcode;
|
||
if (o_agent.server == o_game.roomserver){
|
||
//房间服务器与代理商服务器是同一地址
|
||
msg.data.issameserver = 1;
|
||
youle_room.app.youle_agent[msg.rpc](msg);
|
||
} else {
|
||
//房间服务器与代理商服务器不是同一地址
|
||
msg.data.issameserver = 0;
|
||
var cfg = {};
|
||
cfg.url = "http://" + o_agent.server + ":" + o_agent.httpport + "/index.html";
|
||
cfg.type = "POST";
|
||
cfg.data = JSON.stringify(msg);
|
||
cfg.success = function(str){};
|
||
cfg.error = function(str){
|
||
o_room.wasdeduct = false;
|
||
};
|
||
min_http(cfg);
|
||
}
|
||
} else if (o_player.gameinfo.isowner == 0){ //非房主
|
||
if (o_player.wasdeduct){
|
||
continue;
|
||
}
|
||
if (o_player.needroomcard == 0){
|
||
continue;
|
||
}
|
||
if (o_player.gameinfo.isbet != 1){
|
||
continue;
|
||
}
|
||
//vip不扣房卡
|
||
if (o_player.playertype == 1){
|
||
continue;
|
||
}
|
||
|
||
o_player.wasdeduct = true;
|
||
//通知代理商服务器修改房卡
|
||
var o_game = o_player.gameinfo.o_game;
|
||
var o_agent = o_game.o_agent;
|
||
var msg = {};
|
||
msg.app = youle_room.app.appname;
|
||
msg.route = youle_room.app.youle_agent.routename;
|
||
msg.rpc = "deduct_roomcard";
|
||
msg.data = {};
|
||
msg.data.agentid = o_agent.agentid;
|
||
msg.data.playerid = o_player.playerid;
|
||
msg.data.needroomcard = o_player.needroomcard;
|
||
msg.data.gameid = o_room.o_game.gameid;
|
||
msg.data.roomcode = o_room.roomcode;
|
||
if (o_agent.server == o_game.roomserver){
|
||
//房间服务器与代理商服务器是同一地址
|
||
msg.data.issameserver = 1;
|
||
youle_room.app.youle_agent[msg.rpc](msg);
|
||
} else {
|
||
//房间服务器与代理商服务器不是同一地址
|
||
msg.data.issameserver = 0;
|
||
var cfg = {};
|
||
cfg.url = "http://" + o_agent.server + ":" + o_agent.httpport + "/index.html";
|
||
cfg.type = "POST";
|
||
cfg.data = JSON.stringify(msg);
|
||
cfg.success = function(str){};
|
||
cfg.error = function(str){
|
||
o_player.wasdeduct = false;
|
||
};
|
||
min_http(cfg);
|
||
}
|
||
}
|
||
}
|
||
|
||
//群主开房,房主没在房间内也要扣房卡
|
||
var o_player = o_room.owner;
|
||
var deductmode = youle_room.import.deduct_roomcard_mode(o_room.o_game, o_room.roomtype);
|
||
if (o_player && !o_room.wasdeduct && o_room.needroomcard != 0 && o_player.playertype != 1 && deductmode == 0){
|
||
o_room.wasdeduct = true;
|
||
//通知代理商服务器修改房卡
|
||
// var extcard = 0;
|
||
// if(o_room.videoConfig){
|
||
// var o_agent1 = youle_agent.agents.method.find_agent(o_room.o_game.o_agent.agentid);
|
||
// var vConfig = o_agent1.method.alyVideoConfig(o_room.videoConfig);
|
||
// if(vConfig[0] == 1){
|
||
// extcard = vConfig[1];
|
||
// }
|
||
// }
|
||
var o_game = o_room.o_game;
|
||
var o_agent = o_game.o_agent;
|
||
var msg = {};
|
||
msg.app = youle_room.app.appname;
|
||
msg.route = youle_room.app.youle_agent.routename;
|
||
msg.rpc = "deduct_roomcard";
|
||
msg.data = {};
|
||
msg.data.agentid = o_agent.agentid;
|
||
msg.data.playerid = o_player.playerid;
|
||
msg.data.needroomcard = o_room.needroomcard;
|
||
msg.data.gameid = o_room.o_game.gameid;
|
||
msg.data.roomcode = o_room.roomcode;
|
||
if (o_agent.server == o_game.roomserver){
|
||
//房间服务器与代理商服务器是同一地址
|
||
msg.data.issameserver = 1;
|
||
youle_room.app.youle_agent[msg.rpc](msg);
|
||
} else {
|
||
//房间服务器与代理商服务器不是同一地址
|
||
msg.data.issameserver = 0;
|
||
var cfg = {};
|
||
cfg.url = "http://" + o_agent.server + ":" + o_agent.httpport + "/index.html";
|
||
cfg.type = "POST";
|
||
cfg.data = JSON.stringify(msg);
|
||
cfg.success = function(str){};
|
||
cfg.error = function(str){
|
||
o_room.wasdeduct = false;
|
||
};
|
||
min_http(cfg);
|
||
}
|
||
}
|
||
}
|
||
|
||
//小局结算系统抽成,ary_grade为与座位一一对应的本小局得分,格式如[100,null,-100,null]。函数返回抽成后的得分
|
||
exp.save_grade_aset = function(o_room, ary_grade, asetnumber, ary_pond){
|
||
//累计池子输赢
|
||
if (ary_pond){
|
||
var __o_agentsvr_agent = youle_agent.agents.method.find_agent(o_room.o_game.o_agent.agentid);
|
||
var __o_agentsvr_game = __o_agentsvr_agent.method.find_game(o_room.o_game.gameid);
|
||
for (var i = 0; i < ary_pond.length; i++) {
|
||
if (ary_pond[i][1]){
|
||
var _found = false;
|
||
for (var j = 0; j < __o_agentsvr_game.pondlist.length; j++) {
|
||
if (ary_pond[i][0] == __o_agentsvr_game.pondlist[j][0]) {
|
||
__o_agentsvr_game.pondlist[j][1] = __o_agentsvr_game.pondlist[j][1] + ary_pond[i][1];
|
||
_found = true;
|
||
break;
|
||
}
|
||
};
|
||
if (!_found){
|
||
var info = [ary_pond[i][0], ary_pond[i][1]];
|
||
__o_agentsvr_game.pondlist.push(info);
|
||
}
|
||
var sql = "call cp_game_update_pond(?,?,?,?)";
|
||
youle_room.mysql.execsql("execsql", sql, [o_room.o_game.o_agent.agentid, o_room.o_game.gameid, ary_pond[i][0], ary_pond[i][1]]);
|
||
}
|
||
};
|
||
}
|
||
|
||
//只有星星场才有小局结算和小局抽成
|
||
var isFree = 0;
|
||
// if(o_room.isFree){
|
||
// isFree = 1;
|
||
// }
|
||
if(o_room.sysroom && !isFree){
|
||
var sysRoomConfig = youle_room.app.youle_platform.config.method.get_paravalue("system_room", o_room.o_game.o_agent.agentid, o_room.o_game.gameid);
|
||
if(sysRoomConfig){
|
||
for(var i=0;i<sysRoomConfig.length;i++){
|
||
if(JSON.stringify(sysRoomConfig[i].roomtype) == JSON.stringify(o_room.roomtype)){
|
||
if(sysRoomConfig[i].isFree){
|
||
isFree = 1;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if(isFree){
|
||
|
||
var rAry = [];
|
||
rAry.length = ary_grade.length;
|
||
for(var i=0;i<ary_grade.length;i++){
|
||
if(ary_grade[i] != null){
|
||
rAry[i]=0;
|
||
}else{
|
||
rAry[i] = null;
|
||
}
|
||
}
|
||
//console.log(JSON.stringify(ary_grade),JSON.stringify(rAry));
|
||
return rAry;
|
||
}
|
||
var breakTemp = false;
|
||
var reTemp = false;
|
||
if (!o_room.roommode){
|
||
//非星星场短号房要结算魅力值
|
||
try{
|
||
if (o_room.shortcode){
|
||
var o_agentsvr_agent = youle_agent.agents.method.find_agent(o_room.o_game.o_agent.agentid);
|
||
var o_agentsvr_owner = o_agentsvr_agent.method.find_player(o_room.owner.playerid);
|
||
if (o_agentsvr_owner.whitelist && o_agentsvr_owner.whitelist.length > 0){
|
||
// var rebateConfig = youle_room.app.youle_platform.config.method.get_paravalue("rebateConfig", o_room.o_game.o_agent.agentid);
|
||
// var rCharm = 0;
|
||
// var maxgrade1 = 0;
|
||
// var maxseat1 = [];
|
||
// var rcTemp = false;
|
||
//if(gameid == "Btke0urRy0cvPd5CIvD5yfhYhKhdSdex"){
|
||
|
||
//if(rebateConfig.rebateCharm && o_room.rebateType){
|
||
|
||
// for (var i = 0; i < ary_grade.length; i++){
|
||
// if (ary_grade[i]){
|
||
// ary_grade[i] = Number(ary_grade[i]);
|
||
// if (ary_grade[i] > maxgrade1){
|
||
// maxgrade1 = ary_grade[i];
|
||
// maxseat1 = [i];
|
||
// } else if (ary_grade[i] == maxgrade1){
|
||
// maxseat1.push(i);
|
||
// }
|
||
// }
|
||
// }
|
||
// console.log("maxseat1",JSON.stringify(maxseat1));
|
||
// console.log("maxgrade1",maxgrade1);
|
||
//rcTemp = true;
|
||
// if(maxseat1.length>0){
|
||
// rCharm = parseInt(o_room.rebateNumber/maxseat1.length);
|
||
// }else{
|
||
// rCharm = parseInt(o_room.rebateNumber);
|
||
// }
|
||
//}
|
||
//}
|
||
// if(rebateConfig){
|
||
// if(rebateConfig.rebateCharm && o_room.rebateType){
|
||
// rcTemp = true;
|
||
// }
|
||
// //抽金币
|
||
// if(!o_room.rebateType){
|
||
// reTemp = true;
|
||
// }
|
||
// }
|
||
|
||
var _seatlist = [];
|
||
// console.log("ary_grade",ary_grade);
|
||
// console.log("333",JSON.stringify(o_agentsvr_owner.whitelist));
|
||
// console.log("rCharm",rCharm);
|
||
for (var i = 0; i < ary_grade.length; i++) {
|
||
if (ary_grade[i] != null){
|
||
if (o_room.seatlist[i]){
|
||
var _player = {};
|
||
_player.seat = i;
|
||
_player.playerid = o_room.seatlist[i].playerid;
|
||
_player.change = ary_grade[i];
|
||
// for(var k=0;k<o_agentsvr_owner.whitelist.length;k++){
|
||
// if(o_agentsvr_owner.whitelist[k][2]){
|
||
// o_agentsvr_owner.whitelist[k][2] = parseInt(o_agentsvr_owner.whitelist[k][2]);
|
||
// }else{
|
||
// o_agentsvr_owner.whitelist[k][2] = 0;
|
||
// }
|
||
// }
|
||
for (var j = 0; j < o_agentsvr_owner.whitelist.length; j++) {
|
||
if (o_agentsvr_owner.whitelist[j][0] == _player.playerid){
|
||
if (o_agentsvr_owner.whitelist[j][2]){
|
||
|
||
o_agentsvr_owner.whitelist[j][2] = parseInt(o_agentsvr_owner.whitelist[j][2]) + ary_grade[i];
|
||
// if(rcTemp && ary_grade[i] == maxgrade1){
|
||
// o_agentsvr_owner.whitelist[j][2] = parseInt(o_agentsvr_owner.whitelist[j][2]) - rCharm;
|
||
// }
|
||
} else {
|
||
o_agentsvr_owner.whitelist[j][2] = ary_grade[i];
|
||
// if(rcTemp && ary_grade[i] == maxgrade1){
|
||
// o_agentsvr_owner.whitelist[j][2] = parseInt(o_agentsvr_owner.whitelist[j][2]) - rCharm;
|
||
// }
|
||
}
|
||
_player.charm = o_agentsvr_owner.whitelist[j][2];
|
||
break;
|
||
}
|
||
}
|
||
_seatlist.push(_player);
|
||
}
|
||
}
|
||
}
|
||
|
||
var msg = {};
|
||
msg.app = "youle";
|
||
msg.route = "agent";
|
||
msg.rpc = "update_charm";
|
||
msg.data = {};
|
||
msg.data.seatlist = _seatlist;
|
||
o_room.method.sendpack_toother(msg, -1);
|
||
//console.log("222",JSON.stringify(o_agentsvr_owner.whitelist));
|
||
var writeDB = true;
|
||
if(o_room.o_game.gameid){
|
||
var config_vipConfig = youle_agent.app.youle_platform.config.method.get_paravalue("vipConfig", o_room.o_game.o_agent.agentid, o_room.o_game.gameid);
|
||
if(config_vipConfig){
|
||
var vipIndex = min_ary_indexof(config_vipConfig,o_room.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_agentsvr_owner.whitelist), o_room.o_game.o_agent.agentid, o_room.owner.playerid]);
|
||
}
|
||
}
|
||
}
|
||
}catch(e){
|
||
console.log("结算短号魅力值发生错误");
|
||
console.log(e);
|
||
}
|
||
var ary = xRebate.gameRebate2(o_room,ary_grade);
|
||
// console.log("ary",ary);
|
||
return ary;
|
||
}
|
||
//小局抽成设置
|
||
var aset_rebate = youle_room.app.youle_platform.config.method.get_paravalue("aset_rebate", o_room.o_game.o_agent.agentid);
|
||
var setting;
|
||
if (o_room.infinite){
|
||
//无限局
|
||
if (aset_rebate && aset_rebate.infinite){
|
||
setting = aset_rebate.infinite; //无限局设置
|
||
} else {
|
||
setting = [0];
|
||
}
|
||
} else {
|
||
//有限局
|
||
if (aset_rebate && aset_rebate.finitude){
|
||
setting = aset_rebate.finitude; //有限局设置
|
||
} else {
|
||
return ary_grade;
|
||
}
|
||
}
|
||
|
||
//是否有真实玩家
|
||
var haveplayer = false;
|
||
for (var i = 0; i < ary_grade.length; i++) {
|
||
if (ary_grade[i] != null){
|
||
if (o_room.seatlist[i]){
|
||
if (!o_room.seatlist[i].isrobot){
|
||
haveplayer = true;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
var do_save_coin_rebate = function(seat, isrobot){
|
||
var agentid = o_room.o_game.o_agent.agentid;
|
||
var gameid = o_room.o_game.gameid;
|
||
var roomcode = o_room.roomcode;
|
||
var roommode = 0; //玩家房间
|
||
o_room.asetRebate = true;
|
||
if (o_room.sysroom) {
|
||
roommode = 1; //系统房间
|
||
}
|
||
var createtime = o_room.createtime;
|
||
var beanmult = 0;
|
||
if (o_room.beanmult){
|
||
beanmult = o_room.beanmult;
|
||
}
|
||
var ownerid = o_room.owner.playerid;
|
||
var shortcode = 0;
|
||
if (o_room.shortcode){
|
||
shortcode = o_room.shortcode;
|
||
}
|
||
var deductmode = youle_room.import.deduct_roomcard_mode(o_room.o_game, o_room.roomtype);
|
||
var playerid = o_room.seatlist[seat].playerid;
|
||
var roomcard = 0;
|
||
if (playerid == o_room.owner.playerid){
|
||
roomcard = youle_room.import.createroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||
} else {
|
||
roomcard = youle_room.import.joinroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||
}
|
||
var asetcount = o_room.asetcount;
|
||
if (!isrobot){
|
||
isrobot = 0;
|
||
} else {
|
||
isrobot = 1;
|
||
}
|
||
var grade = ary_grade[seat];
|
||
var push = 0;
|
||
switch (parseInt(setting[1])){
|
||
case 1: //按得分的百分比抽成
|
||
push = parseInt(ary_grade[seat] * parseInt(setting[2]) / 100);
|
||
break;
|
||
case 2: //按倍数的百分比抽成
|
||
push = parseInt(o_room.beanmult * parseInt(setting[2]) / 100);
|
||
break;
|
||
}
|
||
var invitecode = null;
|
||
var inviteid = null;
|
||
var marketid = null;
|
||
if (!isrobot){
|
||
var __o_agentsvr_agent = youle_agent.agents.method.find_agent(agentid);
|
||
var __o_agentsvr_player = __o_agentsvr_agent.method.find_player(playerid);
|
||
invitecode = __o_agentsvr_player.invitecode;
|
||
inviteid = __o_agentsvr_player.inviteid;
|
||
marketid = __o_agentsvr_player.marketid;
|
||
}
|
||
|
||
if (haveplayer){
|
||
//有真实玩家才保存数据
|
||
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(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
|
||
youle_room.mysql_grade.execsql("execsql", sql, [roomid, agentid, gameid, roomcode, roommode, createtime, beanmult, ownerid, shortcode, deductmode, roomcard, 1, asetcount, asetnumber, playerid, isrobot, grade, parseInt(setting[0]), 0, "", parseInt(setting[1]), parseInt(setting[2]), push, datatime, invitecode, inviteid, marketid]);
|
||
}
|
||
|
||
do_update_bean(playerid, grade, push, isrobot, false);
|
||
|
||
return grade - push;
|
||
}
|
||
|
||
var do_update_bean = function(playerid, grade, push, isrobot, save_gold_account){
|
||
//游戏输赢设置 玩家输赢存在玩家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 getGameWinLose = function(gameid,type,oPlayer){
|
||
// var key;
|
||
// 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]){
|
||
// return oPlayer.winLose[gameid][key];
|
||
// }else{
|
||
|
||
// }
|
||
// }else{
|
||
|
||
// }
|
||
// }else{
|
||
|
||
// }
|
||
// return null;
|
||
// }
|
||
if (!isrobot){
|
||
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 = o_room.o_game.o_agent.agentid;
|
||
msg.data.playerid = playerid;
|
||
msg.data.change = grade;
|
||
msg.data.pushbean = -1 * push;
|
||
msg.data.gameid = o_room.o_game.gameid;
|
||
msg.data.showrebate = 2;
|
||
youle_room.app.youle_agent[msg.rpc](msg);
|
||
|
||
if (o_room.roommode){
|
||
var sql = ' update agent_game_player ' +
|
||
' set agpl_playset_xx = agpl_playset_xx + 1, ' +
|
||
' agpl_winlose_xx = agpl_winlose_xx + (? div ?), ' +
|
||
' agpl_winlose_x2 = agpl_winlose_x2 + ? ' +
|
||
' where agpl_agentid = ? ' +
|
||
' and agpl_gameid = ? ' +
|
||
' and agpl_playerid = ?';
|
||
youle_room.mysql.execsql("execsql", sql, [grade, o_room.beanmult, grade, o_room.o_game.o_agent.agentid, o_room.o_game.gameid, playerid]);
|
||
|
||
|
||
|
||
var o_agentsvr_agent = youle_agent.agents.method.find_agent(o_room.o_game.o_agent.agentid);
|
||
var o_agentsvr_player = o_agentsvr_agent.method.find_player(playerid);
|
||
if (o_agentsvr_player){
|
||
if (!o_agentsvr_player.nn_winlose_xx){
|
||
if (o_room.beanmult){
|
||
o_agentsvr_player.nn_winlose_xx = parseInt(grade / o_room.beanmult);
|
||
}
|
||
} else {
|
||
if (o_room.beanmult){
|
||
o_agentsvr_player.nn_winlose_xx = o_agentsvr_player.nn_winlose_xx + parseInt(grade / o_room.beanmult);
|
||
}
|
||
}
|
||
|
||
if (!o_agentsvr_player.nn_winlose_x2){
|
||
o_agentsvr_player.nn_winlose_x2 = grade;
|
||
} else {
|
||
o_agentsvr_player.nn_winlose_x2 = o_agentsvr_player.nn_winlose_x2 + grade;
|
||
}
|
||
if (o_room.beanmult){
|
||
updateGameWinLose(o_room.o_game.gameid,2,parseInt(grade / o_room.beanmult),o_agentsvr_player);
|
||
}
|
||
updateGameWinLose(o_room.o_game.gameid,3,grade,o_agentsvr_player);
|
||
}
|
||
}
|
||
} else {
|
||
//记录机器人的累积输赢
|
||
if (o_room.roommode){
|
||
var o_agentsvr_agent = youle_agent.agents.method.find_agent(o_room.o_game.o_agent.agentid);
|
||
var o_agentsvr_game = o_agentsvr_agent.method.find_game(o_room.o_game.gameid);
|
||
if (!o_agentsvr_game.robot_xx){
|
||
if (o_room.beanmult){
|
||
o_agentsvr_game.robot_xx = parseInt(grade / o_room.beanmult);
|
||
}
|
||
} else {
|
||
if (o_room.beanmult){
|
||
o_agentsvr_game.robot_xx = o_agentsvr_game.robot_xx + parseInt(grade / o_room.beanmult);
|
||
}
|
||
}
|
||
if (!o_agentsvr_game.robot_x2){
|
||
o_agentsvr_game.robot_x2 = grade;
|
||
} else {
|
||
o_agentsvr_game.robot_x2 = o_agentsvr_game.robot_x2 + grade;
|
||
}
|
||
|
||
if (haveplayer){
|
||
//有真实玩家才保存数据
|
||
var sql = "call cp_game_grade_robot(?,?,?,?);";
|
||
youle_room.mysql.execsql("execsql", sql, [o_room.o_game.o_agent.agentid, o_room.o_game.gameid, grade, o_room.beanmult]);
|
||
}
|
||
}
|
||
}
|
||
|
||
if (save_gold_account){
|
||
var agentid = o_room.o_game.o_agent.agentid;
|
||
var gameid = o_room.o_game.gameid;
|
||
var roomcode = o_room.roomcode;
|
||
var roommode = 0; //玩家房间
|
||
if (o_room.sysroom) {
|
||
roommode = 1; //系统房间
|
||
}
|
||
var createtime = o_room.createtime;
|
||
var beanmult = 0;
|
||
if (o_room.beanmult){
|
||
beanmult = o_room.beanmult;
|
||
}
|
||
var ownerid = o_room.owner.playerid;
|
||
var shortcode = 0;
|
||
if (o_room.shortcode){
|
||
shortcode = o_room.shortcode;
|
||
}
|
||
var deductmode = youle_room.import.deduct_roomcard_mode(o_room.o_game, o_room.roomtype);
|
||
var roomcard = 0;
|
||
if (playerid == o_room.owner.playerid){
|
||
roomcard = youle_room.import.createroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||
} else {
|
||
roomcard = youle_room.import.joinroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||
}
|
||
var asetcount = o_room.asetcount;
|
||
if (!isrobot){
|
||
isrobot = 0;
|
||
} else {
|
||
isrobot = 1;
|
||
}
|
||
var invitecode = null;
|
||
var inviteid = null;
|
||
var marketid = null;
|
||
if (!isrobot){
|
||
var __o_agentsvr_agent = youle_agent.agents.method.find_agent(agentid);
|
||
var __o_agentsvr_player = __o_agentsvr_agent.method.find_player(playerid);
|
||
invitecode = __o_agentsvr_player.invitecode;
|
||
inviteid = __o_agentsvr_player.inviteid;
|
||
marketid = __o_agentsvr_player.marketid;
|
||
}
|
||
if (haveplayer){
|
||
//有真实玩家才保存数据
|
||
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(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
|
||
var __o_agentsvr_agent = youle_agent.agents.method.find_agent(agentid);
|
||
var __o_agentsvr_player = __o_agentsvr_agent.method.find_player(playerid);
|
||
youle_room.mysql_grade.execsql("execsql", sql, [roomid, agentid, gameid, roomcode, roommode, createtime, beanmult, ownerid, shortcode, deductmode, roomcard, 1, asetcount, asetnumber, playerid, isrobot, grade, parseInt(setting[0]), 0, "", parseInt(setting[1]), parseInt(setting[2]), 0, datatime, invitecode, inviteid, marketid]);
|
||
}else{
|
||
//读取是否纯机器人保存金币变动
|
||
var o_cfg = youle_agent.app.youle_platform.config;
|
||
var reportRobotGold = o_cfg.method.get_paravalue("reportRobotGold", agentid, gameid);
|
||
if(reportRobotGold){
|
||
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(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
|
||
youle_room.mysql_grade.execsql("execsql", sql, [roomid, agentid, gameid, roomcode, roommode, createtime, beanmult, ownerid, shortcode, deductmode, roomcard, 1, asetcount, asetnumber, playerid, isrobot, grade, parseInt(setting[0]), 0, "", parseInt(setting[1]), parseInt(setting[2]), 0, datatime, invitecode, inviteid, marketid]);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
//房间id = 时间戳 + 4位随机码 + 房号
|
||
var roomid = new Date().getTime() + min_randomChar(4) + o_room.roomcode;
|
||
var datatime = min_now();
|
||
|
||
switch (parseInt(setting[0])){
|
||
case 0: //无限局没有小局系统抽成
|
||
for (var i = 0; i < ary_grade.length; i++) {
|
||
if (ary_grade[i] != null){
|
||
do_update_bean(o_room.seatlist[i].playerid, ary_grade[i], 0, o_room.seatlist[i].isrobot, true);
|
||
}
|
||
}
|
||
return ary_grade;
|
||
case 1: //对大赢家抽成
|
||
var maxwingrade = -1;
|
||
for (var i = 0; i < ary_grade.length; i++) {
|
||
if (ary_grade[i] != null){
|
||
if (ary_grade[i] > maxwingrade){
|
||
maxwingrade = ary_grade[i];
|
||
}
|
||
}
|
||
}
|
||
|
||
for (var i = 0; i < ary_grade.length; i++) {
|
||
if (ary_grade[i] != null){
|
||
if (ary_grade[i] == maxwingrade){
|
||
ary_grade[i] = do_save_coin_rebate(i, o_room.seatlist[i].isrobot);
|
||
} else {
|
||
do_update_bean(o_room.seatlist[i].playerid, ary_grade[i], 0, o_room.seatlist[i].isrobot, true);
|
||
}
|
||
}
|
||
}
|
||
|
||
return ary_grade;
|
||
case 2: //对所有赢的人抽成
|
||
for (var i = 0; i < ary_grade.length; i++) {
|
||
if (ary_grade[i] != null){
|
||
if (ary_grade[i] > 0){
|
||
ary_grade[i] = do_save_coin_rebate(i, o_room.seatlist[i].isrobot);
|
||
} else {
|
||
do_update_bean(o_room.seatlist[i].playerid, ary_grade[i], 0, o_room.seatlist[i].isrobot, true);
|
||
}
|
||
}
|
||
}
|
||
return ary_grade;
|
||
case 3: //对所有人抽成
|
||
for (var i = 0; i < ary_grade.length; i++) {
|
||
if (ary_grade[i] != null){
|
||
ary_grade[i] = do_save_coin_rebate(i, o_room.seatlist[i].isrobot);
|
||
}
|
||
}
|
||
return ary_grade;
|
||
default:
|
||
return ary_grade;
|
||
}
|
||
|
||
}
|
||
|
||
//一局游戏结束保存战绩并释放房间(不用通知前端游戏,因为游戏服务器已经通知了前端)
|
||
exp.save_grade = function(o_room, o_gameinfo1, o_gameinfo2, freeroomflag){
|
||
//游戏输赢设置 玩家输赢存在玩家winLose属性中
|
||
//console.log(o_room, o_gameinfo1, o_gameinfo2, freeroomflag);
|
||
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 getGameWinLose = function(gameid,type,oPlayer){
|
||
// var key;
|
||
// 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]){
|
||
// return oPlayer.winLose[gameid][key];
|
||
// }else{
|
||
|
||
// }
|
||
// }else{
|
||
|
||
// }
|
||
// }else{
|
||
|
||
// }
|
||
// return null;
|
||
// }
|
||
//需要子游戏设置玩家的gameinfo.isbet和gameinfo.grade属性
|
||
if (o_gameinfo1){
|
||
try
|
||
{
|
||
cls_youle_room_backup.deletebackup_room(o_room);
|
||
|
||
var agentid = o_room.o_game.o_agent.agentid;
|
||
var gameid = o_room.o_game.gameid;
|
||
var roomcode = o_room.roomcode;
|
||
var createtime = o_room.createtime;
|
||
var makewartime = o_room.makewartime;
|
||
var overtime = min_now();
|
||
|
||
//星星场房间是否和普通房间一样扣房卡
|
||
var xxroomdeduct = youle_room.app.youle_platform.config.method.get_paravalue("xxroomdeduct", o_room.o_game.o_agent.agentid);
|
||
//小局抽成设置
|
||
// var aset_rebate = youle_room.app.youle_platform.config.method.get_paravalue("aset_rebate", o_room.o_game.o_agent.agentid);
|
||
//抽成到的玩家id
|
||
// var pushtoplayerid_setting = youle_room.app.youle_platform.config.method.get_paravalue("pushtoplayerid", o_room.o_game.o_agent.agentid);
|
||
//是否抽成到玩家id对应的代理账号上
|
||
// var pushto_setting = youle_room.app.youle_platform.config.method.get_paravalue("pushto", o_room.o_game.o_agent.agentid);
|
||
|
||
//大赢家扣卡
|
||
var needdeduct = false;
|
||
var deductmode = youle_room.import.deduct_roomcard_mode(o_room.o_game, o_room.roomtype);
|
||
if (deductmode == 2){
|
||
needdeduct = true;
|
||
}
|
||
if (o_room.roommode){
|
||
//星星场不扣房卡
|
||
if (!xxroomdeduct){
|
||
needdeduct = false;
|
||
}
|
||
}
|
||
if (needdeduct){
|
||
var deductcard = youle_room.import.joinroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||
if (deductcard > 0){
|
||
var maxgrade = 0;
|
||
var maxseat = [];
|
||
for (var i = 0; i < o_room.seatlist.length; i++){
|
||
if (o_room.seatlist[i] && o_room.seatlist[i].gameinfo.isbet){
|
||
if (o_room.seatlist[i].gameinfo.grade > maxgrade){
|
||
maxgrade = parseInt(o_room.seatlist[i].gameinfo.grade);
|
||
maxseat = [i];
|
||
} else if (o_room.seatlist[i].gameinfo.grade == maxgrade){
|
||
maxseat.push(i);
|
||
}
|
||
}
|
||
}
|
||
// if(o_room.videoConfig){
|
||
// var o_agent1 = youle_agent.agents.method.find_agent(o_room.o_game.o_agent.agentid);
|
||
// var vConfig = o_agent1.method.alyVideoConfig(o_room.videoConfig);
|
||
// if(vConfig[0] == 1){
|
||
// deductcard += vConfig[1];
|
||
// }
|
||
// }
|
||
var msg = {};
|
||
msg.app = youle_room.app.appname;
|
||
msg.route = youle_room.app.youle_agent.routename;
|
||
msg.rpc = "deduct_roomcard";
|
||
msg.data = {};
|
||
msg.data.agentid = agentid;
|
||
msg.data.needroomcard = deductcard;
|
||
msg.data.gameid = gameid;
|
||
msg.data.roomcode = roomcode;
|
||
msg.data.issameserver = 1;
|
||
for (var i = 0; i < maxseat.length; i++){
|
||
msg.data.playerid = o_room.seatlist[maxseat[i]].playerid;
|
||
youle_room.app.youle_agent[msg.rpc](msg);
|
||
}
|
||
}
|
||
}
|
||
/*
|
||
var rebatefrom = 0;
|
||
var rebateto = 0;
|
||
var toplayerid = "";
|
||
var rebatemode;
|
||
var setvalue;
|
||
|
||
//如果设置了星星场限进,计算大赢家的房主抽成数量
|
||
if (o_room.beanfloor){
|
||
//大赢家抽成星星数
|
||
var maxwiner_setting = 0;
|
||
if (!o_room.advanced_type){
|
||
//普通星星场房间
|
||
maxwiner_setting = youle_room.import.owner_beanpush(o_room.o_game, o_room.roomtype);
|
||
if (maxwiner_setting){
|
||
maxwiner_setting = parseInt(maxwiner_setting);
|
||
rebatefrom = 1;
|
||
rebateto = 1;
|
||
if (pushtoplayerid_setting){
|
||
if (pushtoplayerid_setting[0]){
|
||
rebateto = 2;
|
||
toplayerid = pushtoplayerid_setting[0];
|
||
|
||
if (pushto_setting == 1){
|
||
rebateto = 3;
|
||
} else if (pushto_setting == 2){
|
||
rebateto = 4;
|
||
toplayerid = o_room.owner.playerid;
|
||
}
|
||
}
|
||
}
|
||
rebatemode = 3;
|
||
setvalue = maxwiner_setting;
|
||
}
|
||
} else {
|
||
//短号星星场房间
|
||
if (o_room.advanced_teabean){
|
||
maxwiner_setting = o_room.advanced_teabean;
|
||
rebatefrom = 1;
|
||
rebateto = 1;
|
||
if (pushtoplayerid_setting){
|
||
if (pushtoplayerid_setting[1]){
|
||
rebateto = 2;
|
||
toplayerid = pushtoplayerid_setting[1];
|
||
if (pushto_setting == 1){
|
||
rebateto = 3;
|
||
} else if (pushto_setting == 2){
|
||
rebateto = 4;
|
||
toplayerid = o_room.owner.playerid;
|
||
}
|
||
}
|
||
}
|
||
rebatemode = 3;
|
||
setvalue = maxwiner_setting;
|
||
}
|
||
}
|
||
if (maxwiner_setting){
|
||
//房主得分
|
||
var ownergarde = 0;
|
||
//房主抽成星星数量
|
||
var ownerpush = 0;
|
||
//大赢家得分
|
||
var maxgrade = 0;
|
||
//大赢家数量
|
||
var maxcount = 0;
|
||
for (var i = 0; i < o_room.seatlist.length; i++){
|
||
if (o_room.seatlist[i] && o_room.seatlist[i].gameinfo.isbet){
|
||
if (o_room.seatlist[i].gameinfo.grade > maxgrade){
|
||
maxgrade = parseInt(o_room.seatlist[i].gameinfo.grade);
|
||
maxcount = 1;
|
||
} else if (o_room.seatlist[i].gameinfo.grade == maxgrade){
|
||
maxcount = maxcount + 1;
|
||
}
|
||
}
|
||
}
|
||
//大赢家实际抽成星星数
|
||
var maxwiner_pushbean = parseInt(maxwiner_setting / maxcount);
|
||
}
|
||
}
|
||
*/
|
||
//比赛数据
|
||
var match_data = {};
|
||
match_data.agent_id = agentid;
|
||
match_data.game_id = gameid;
|
||
match_data.game_infos = [];
|
||
|
||
var aryplayerid = "";
|
||
var arygrade = "";
|
||
var aryroomcard = "";
|
||
var aryisrobot = "";
|
||
var o_agentsvr_agent = youle_agent.agents.method.find_agent(agentid);
|
||
var arywinner = "";
|
||
var winscore = -100000;
|
||
var aryscore = "";
|
||
//大赢家标志
|
||
var getResult1 = youle_room.import.getWinnerByGameInfo1(o_room,o_gameinfo1);
|
||
|
||
var getResult2 = youle_room.import.getScoreByGameInfo1(o_room,o_gameinfo1);
|
||
if(getResult1){
|
||
arywinner = getResult1.join(",");
|
||
}else{
|
||
if(o_gameinfo1.playerlist){
|
||
|
||
for(var k=0;k<o_gameinfo1.playerlist.length;k++){
|
||
if(o_gameinfo1.playerlist[k]){
|
||
if(Number(o_gameinfo1.playerlist[k][1]) > winscore){
|
||
winscore = Number(o_gameinfo1.playerlist[k][1]);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if(getResult2){
|
||
aryscore = getResult2.join(",");
|
||
}
|
||
|
||
//房间id = 时间戳 + 4位随机码 + 房号
|
||
var roomid = new Date().getTime() + min_randomChar(4) + o_room.roomcode;
|
||
var datatime = min_now();
|
||
|
||
for (var i = 0; i < o_room.seatlist.length; i++) {
|
||
if (o_room.seatlist[i]){
|
||
var o_player = o_room.seatlist[i];
|
||
if (o_gameinfo1.playerlist[i]) {
|
||
var o_agentsvr_player = o_agentsvr_agent.method.find_player(o_player.playerid);
|
||
if (aryplayerid){
|
||
aryplayerid = aryplayerid + "," + o_player.playerid;
|
||
|
||
if (o_player.isrobot){
|
||
aryisrobot = aryisrobot + ",1";
|
||
} else {
|
||
aryisrobot = aryisrobot + ",0";
|
||
}
|
||
if(!getResult1){
|
||
try{
|
||
if(o_gameinfo1.playerlist){
|
||
if(Number(o_gameinfo1.playerlist[i][1]) == winscore &&
|
||
Number(o_gameinfo1.playerlist[i][3]) == Number(o_player.playerid)){
|
||
arywinner = arywinner + "," + 1;
|
||
|
||
}else{
|
||
arywinner = arywinner + "," + 0;
|
||
}
|
||
}else{
|
||
arywinner = arywinner + "," + 0;
|
||
}
|
||
}catch(err){
|
||
console.log("战绩结算大赢家出错!");
|
||
console.log(o_gameinfo1);
|
||
console.log(err);
|
||
}
|
||
}
|
||
if(!getResult2){
|
||
try{
|
||
if(o_gameinfo1.playerlist){
|
||
if(Number(o_gameinfo1.playerlist[i][3]) == Number(o_player.playerid)){
|
||
aryscore = aryscore + "," + o_gameinfo1.playerlist[i][1];
|
||
}else{
|
||
aryscore = aryscore + "," + 0;
|
||
}
|
||
}else{
|
||
aryscore = aryscore + "," + 0;
|
||
}
|
||
}catch(err){
|
||
console.log("战绩结算分数出错!");
|
||
console.log(o_gameinfo1);
|
||
console.log(err);
|
||
}
|
||
}
|
||
if (gameid == "8x4l0rGjf026f60c48h0mbUAhK5vV16f"){
|
||
var recordflag = true;
|
||
// if (o_room.game.model == 4 || o_room.game.model == 5){
|
||
// recordflag = false;
|
||
// }
|
||
try{
|
||
if (NN_control){
|
||
if (NN_control.kanpaiqz){
|
||
recordflag = true;
|
||
}
|
||
}
|
||
}catch(e){}
|
||
if (o_player.isrobot){
|
||
recordflag = true;
|
||
}
|
||
if (recordflag){
|
||
arygrade = arygrade + "," + o_player.gameinfo.grade;
|
||
} else {
|
||
arygrade = arygrade + ",0";
|
||
}
|
||
} else {
|
||
arygrade = arygrade + "," + o_player.gameinfo.grade;
|
||
}
|
||
|
||
if (o_agentsvr_player) {
|
||
aryroomcard = aryroomcard + "," + o_agentsvr_player.roomcard;
|
||
} else {
|
||
aryroomcard = aryroomcard + ",-99999";
|
||
}
|
||
} else {
|
||
aryplayerid = o_player.playerid;
|
||
if (o_player.isrobot){
|
||
aryisrobot = "1";
|
||
} else {
|
||
aryisrobot = "0";
|
||
}
|
||
if(!getResult1){
|
||
try{
|
||
if(o_gameinfo1.playerlist){
|
||
if(Number(o_gameinfo1.playerlist[i][1]) == winscore &&
|
||
Number(o_gameinfo1.playerlist[i][3]) == Number(o_player.playerid)){
|
||
arywinner = "1";
|
||
|
||
}else{
|
||
arywinner = "0";
|
||
}
|
||
}else{
|
||
arywinner = "0";
|
||
}
|
||
}catch(err){
|
||
console.log("战绩结算大赢家出错!");
|
||
console.log(o_gameinfo1);
|
||
console.log(err);
|
||
}
|
||
}
|
||
if(!getResult2){
|
||
try{
|
||
if(o_gameinfo1.playerlist){
|
||
if(Number(o_gameinfo1.playerlist[i][3]) == Number(o_player.playerid)){
|
||
aryscore = o_gameinfo1.playerlist[i][1];
|
||
}else{
|
||
aryscore = "0" ;
|
||
}
|
||
}else{
|
||
aryscore = "0" ;
|
||
}
|
||
}catch(err){
|
||
console.log("战绩结算分数出错!");
|
||
console.log(o_gameinfo1);
|
||
console.log(err);
|
||
}
|
||
}
|
||
if (gameid == "8x4l0rGjf026f60c48h0mbUAhK5vV16f"){
|
||
var recordflag = true;
|
||
// if (o_room.game.model == 4 || o_room.game.model == 5){
|
||
// recordflag = false;
|
||
// }
|
||
try{
|
||
if (NN_control){
|
||
if (NN_control.kanpaiqz){
|
||
recordflag = true;
|
||
}
|
||
}
|
||
}catch(e){}
|
||
if (o_player.isrobot){
|
||
recordflag = true;
|
||
}
|
||
if (recordflag){
|
||
arygrade = o_player.gameinfo.grade;
|
||
} else {
|
||
arygrade = 0;
|
||
}
|
||
} else {
|
||
arygrade = o_player.gameinfo.grade;
|
||
}
|
||
|
||
if (o_agentsvr_player){
|
||
aryroomcard = o_agentsvr_player.roomcard;
|
||
} else {
|
||
aryroomcard = "-99999";
|
||
}
|
||
}
|
||
|
||
//统计牛牛的输赢总分
|
||
if (gameid == "8x4l0rGjf026f60c48h0mbUAhK5vV16f"){
|
||
var recordflag = true;
|
||
try{
|
||
if (NN_control){
|
||
if (NN_control.kanpaiqz){
|
||
recordflag = true;
|
||
}
|
||
}
|
||
}catch(e){}
|
||
if (recordflag){
|
||
if (o_room.roommode){
|
||
if (!o_agentsvr_player.nn_winlose_xx){
|
||
o_agentsvr_player.nn_winlose_xx = 0;
|
||
}
|
||
if (!o_room.beanmult){
|
||
o_agentsvr_player.nn_winlose_xx = o_agentsvr_player.nn_winlose_xx + o_player.gameinfo.grade;
|
||
} else {
|
||
o_agentsvr_player.nn_winlose_xx = o_agentsvr_player.nn_winlose_xx + parseInt(o_player.gameinfo.grade / o_room.beanmult);
|
||
}
|
||
if (!o_agentsvr_player.nn_winlose_x2){
|
||
o_agentsvr_player.nn_winlose_x2 = 0;
|
||
}
|
||
o_agentsvr_player.nn_winlose_x2 = o_agentsvr_player.nn_winlose_x2 + o_player.gameinfo.grade;
|
||
|
||
} else {
|
||
if (!o_agentsvr_player.nn_winlose){
|
||
o_agentsvr_player.nn_winlose = 0;
|
||
}
|
||
o_agentsvr_player.nn_winlose = o_agentsvr_player.nn_winlose + o_player.gameinfo.grade;
|
||
}
|
||
}
|
||
}
|
||
if (gameid){
|
||
var recordflag = true;
|
||
try{
|
||
if (NN_control){
|
||
if (NN_control.kanpaiqz){
|
||
recordflag = true;
|
||
}
|
||
}
|
||
}catch(e){}
|
||
if (recordflag){
|
||
if (o_room.roommode){
|
||
if (!o_agentsvr_player.nn_winlose_xx){
|
||
o_agentsvr_player.nn_winlose_xx = 0;
|
||
}
|
||
if (!o_room.beanmult){
|
||
o_agentsvr_player.nn_winlose_xx = o_agentsvr_player.nn_winlose_xx + o_player.gameinfo.grade;
|
||
} else {
|
||
o_agentsvr_player.nn_winlose_xx = o_agentsvr_player.nn_winlose_xx + parseInt(o_player.gameinfo.grade / o_room.beanmult);
|
||
}
|
||
if (!o_agentsvr_player.nn_winlose_x2){
|
||
o_agentsvr_player.nn_winlose_x2 = 0;
|
||
}
|
||
o_agentsvr_player.nn_winlose_x2 = o_agentsvr_player.nn_winlose_x2 + o_player.gameinfo.grade;
|
||
if (!o_room.beanmult){
|
||
updateGameWinLose(gameid,2,o_player.gameinfo.grade,o_agentsvr_player);
|
||
} else {
|
||
updateGameWinLose(gameid,2,parseInt(o_player.gameinfo.grade / o_room.beanmult),o_agentsvr_player);
|
||
}
|
||
updateGameWinLose(gameid,3,o_player.gameinfo.grade,o_agentsvr_player);
|
||
} else {
|
||
if (!o_agentsvr_player.nn_winlose){
|
||
o_agentsvr_player.nn_winlose = 0;
|
||
}
|
||
o_agentsvr_player.nn_winlose = o_agentsvr_player.nn_winlose + o_player.gameinfo.grade;
|
||
updateGameWinLose(gameid,1,o_player.gameinfo.grade,o_agentsvr_player);
|
||
}
|
||
}
|
||
}
|
||
/*
|
||
//如果是豆豆场则通知代理服务器修改豆豆数量
|
||
if (o_room.roommode){
|
||
//当前玩家被抽成的星星数
|
||
var _pushbean = 0;
|
||
//是否不提示茶水费抽成
|
||
var showrebate = 0;
|
||
if (maxwiner_setting){ //有房主抽成
|
||
if (o_player.playerid == o_room.owner.playerid) {
|
||
ownergarde = o_player.gameinfo.grade;
|
||
continue;
|
||
} else {
|
||
if (o_player.gameinfo.grade == maxgrade) {
|
||
_pushbean = maxwiner_pushbean;
|
||
ownerpush = ownerpush + maxwiner_pushbean;
|
||
}
|
||
}
|
||
} else {
|
||
if (o_room.advanced_type){
|
||
switch (o_agentsvr_agent.rebate_mode2){
|
||
case 1: //按比例抽成
|
||
rebatefrom = 2;
|
||
rebateto = 0;
|
||
toplayerid = "";
|
||
rebatemode = 1;
|
||
setvalue = o_agentsvr_agent.rebate_set2;
|
||
break;
|
||
case 2: //按固定值抽
|
||
rebatefrom = 2;
|
||
rebateto = 0;
|
||
toplayerid = "";
|
||
rebatemode = 3;
|
||
setvalue = o_agentsvr_agent.rebate_set2;
|
||
break;
|
||
default://不抽
|
||
rebatefrom = 0;
|
||
rebateto = 0;
|
||
toplayerid = "";
|
||
rebatemode = 0;
|
||
setvalue = 0;
|
||
break;
|
||
}
|
||
} else {
|
||
switch (o_agentsvr_agent.rebate_mode1){
|
||
case 1: //按比例抽成
|
||
rebatefrom = 2;
|
||
rebateto = 0;
|
||
toplayerid = "";
|
||
rebatemode = 1;
|
||
setvalue = o_agentsvr_agent.rebate_set1;
|
||
break;
|
||
case 2: //按固定值抽
|
||
rebatefrom = 2;
|
||
rebateto = 0;
|
||
toplayerid = "";
|
||
rebatemode = 3;
|
||
setvalue = o_agentsvr_agent.rebate_set1;
|
||
break;
|
||
default://不抽
|
||
rebatefrom = 0;
|
||
rebateto = 0;
|
||
toplayerid = "";
|
||
rebatemode = 0;
|
||
setvalue = 0;
|
||
break;
|
||
}
|
||
}
|
||
|
||
//所有赢家系统抽成处理
|
||
if (o_player.gameinfo.grade > 0) {
|
||
if (!o_room.advanced_type){ //普通星星场房间
|
||
switch (o_agentsvr_agent.rebate_mode1){
|
||
case 1: //按比例抽成
|
||
_pushbean = parseInt(o_player.gameinfo.grade * o_agentsvr_agent.rebate_set1 / 100);
|
||
break;
|
||
case 2: //按固定值抽
|
||
_pushbean = o_agentsvr_agent.rebate_set1;
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
} else { //短号星星场房间
|
||
switch (o_agentsvr_agent.rebate_mode2){
|
||
case 1: //按比例抽成
|
||
_pushbean = parseInt(o_player.gameinfo.grade * o_agentsvr_agent.rebate_set2 / 100);
|
||
break;
|
||
case 2: //按固定值抽
|
||
_pushbean = o_agentsvr_agent.rebate_set2;
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
if (_pushbean){
|
||
showrebate = 1;
|
||
}
|
||
}
|
||
}
|
||
|
||
if (!aset_rebate || !aset_rebate.finitude) {
|
||
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 = o_player.playerid;
|
||
msg.data.change = o_player.gameinfo.grade;
|
||
msg.data.pushbean = -1 * _pushbean;
|
||
msg.data.gameid = gameid;
|
||
msg.data.showrebate = showrebate;
|
||
youle_room.app.youle_agent[msg.rpc](msg);
|
||
|
||
var roommode = 0; //玩家房间
|
||
if (o_room.sysroom) {
|
||
roommode = 1; //系统房间
|
||
}
|
||
var createtime = o_room.createtime;
|
||
var beanmult = 0;
|
||
if (o_room.beanmult){
|
||
beanmult = o_room.beanmult;
|
||
}
|
||
var ownerid = o_room.owner.playerid;
|
||
var shortcode = 0;
|
||
if (o_room.shortcode){
|
||
shortcode = o_room.shortcode;
|
||
}
|
||
var deductmode = youle_room.import.deduct_roomcard_mode(o_room.o_game, o_room.roomtype);
|
||
var playerid = o_player.playerid;
|
||
var grade = o_player.gameinfo.grade;
|
||
var roomcard = 0;
|
||
if (playerid == o_room.owner.playerid){
|
||
roomcard = youle_room.import.createroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||
} else {
|
||
roomcard = youle_room.import.joinroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||
}
|
||
|
||
var asetcount = o_room.asetcount;
|
||
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) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
|
||
youle_room.mysql_grade.execsql("execsql", sql, [roomid, agentid, gameid, roomcode, roommode, createtime, beanmult, ownerid, shortcode, deductmode, roomcard, 0, asetcount, 0, playerid, 0, grade, rebatefrom, rebateto, toplayerid, rebatemode, setvalue, _pushbean, datatime]);
|
||
}
|
||
} else if (o_room.beanfloor) {
|
||
//当前玩家被抽成的星星数
|
||
var _pushbean = 0;
|
||
//是否不提示茶水费抽成
|
||
var showrebate = 0;
|
||
if (maxwiner_setting){ //有房主抽成
|
||
if (o_player.playerid == o_room.owner.playerid) {
|
||
ownergarde = 0;
|
||
|
||
//if (!aset_rebate || !aset_rebate.finitude) {
|
||
if (o_player.gameinfo.grade == maxgrade) {
|
||
_pushbean = maxwiner_pushbean;
|
||
var pushtoplayerid;
|
||
if (pushtoplayerid_setting){
|
||
if (!o_room.advanced_type){
|
||
//普通房间
|
||
pushtoplayerid = pushtoplayerid_setting[0];
|
||
} else {
|
||
//短号房间
|
||
pushtoplayerid = pushtoplayerid_setting[1];
|
||
}
|
||
}
|
||
if (pushtoplayerid && (pushtoplayerid != o_room.owner.playerid || pushto_setting)){
|
||
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 = o_player.playerid;
|
||
msg.data.change = 0;
|
||
msg.data.pushbean = -1 * _pushbean;
|
||
msg.data.gameid = gameid;
|
||
msg.data.showrebate = showrebate;
|
||
youle_room.app.youle_agent[msg.rpc](msg);
|
||
|
||
if (!pushto_setting){
|
||
ownerpush = ownerpush + maxwiner_pushbean;
|
||
}
|
||
}
|
||
}
|
||
var roommode = 2;
|
||
var createtime = o_room.createtime;
|
||
var beanmult = 0;
|
||
var ownerid = o_room.owner.playerid;
|
||
var shortcode = 0;
|
||
if (o_room.shortcode){
|
||
shortcode = o_room.shortcode;
|
||
}
|
||
var deductmode = youle_room.import.deduct_roomcard_mode(o_room.o_game, o_room.roomtype);
|
||
var playerid = o_player.playerid;
|
||
var grade = o_player.gameinfo.grade;
|
||
var roomcard = 0;
|
||
if (playerid == o_room.owner.playerid){
|
||
roomcard = youle_room.import.createroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||
} else {
|
||
roomcard = youle_room.import.joinroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||
}
|
||
|
||
var asetcount = o_room.asetcount;
|
||
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) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
|
||
youle_room.mysql_grade.execsql("execsql", sql, [roomid, agentid, gameid, roomcode, roommode, createtime, beanmult, ownerid, shortcode, deductmode, roomcard, 0, asetcount, 0, playerid, 0, grade, rebatefrom, rebateto, toplayerid, rebatemode, setvalue, _pushbean, datatime]);
|
||
//}
|
||
continue;
|
||
} else {
|
||
if (o_player.gameinfo.grade == maxgrade) {
|
||
_pushbean = maxwiner_pushbean;
|
||
ownerpush = ownerpush + maxwiner_pushbean;
|
||
}
|
||
}
|
||
|
||
//if (!aset_rebate || !aset_rebate.finitude) {
|
||
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 = o_player.playerid;
|
||
msg.data.change = 0;
|
||
msg.data.pushbean = -1 * _pushbean;
|
||
msg.data.gameid = gameid;
|
||
msg.data.showrebate = showrebate;
|
||
youle_room.app.youle_agent[msg.rpc](msg);
|
||
|
||
var roommode = 2;
|
||
var createtime = o_room.createtime;
|
||
var beanmult = 0;
|
||
var ownerid = o_room.owner.playerid;
|
||
var shortcode = 0;
|
||
if (o_room.shortcode){
|
||
shortcode = o_room.shortcode;
|
||
}
|
||
var deductmode = youle_room.import.deduct_roomcard_mode(o_room.o_game, o_room.roomtype);
|
||
var playerid = o_player.playerid;
|
||
var grade = o_player.gameinfo.grade;
|
||
var roomcard = 0;
|
||
if (playerid == o_room.owner.playerid){
|
||
roomcard = youle_room.import.createroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||
} else {
|
||
roomcard = youle_room.import.joinroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||
}
|
||
var asetcount = o_room.asetcount;
|
||
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) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
|
||
youle_room.mysql_grade.execsql("execsql", sql, [roomid, agentid, gameid, roomcode, roommode, createtime, beanmult, ownerid, shortcode, deductmode, roomcard, 0, asetcount, 0, playerid, 0, grade, rebatefrom, rebateto, toplayerid, rebatemode, setvalue, _pushbean, datatime]);
|
||
//}
|
||
}
|
||
}
|
||
*/
|
||
//比赛数据
|
||
var match_player = {};
|
||
match_player.player_id = o_player.playerid;
|
||
match_player.score = o_player.gameinfo.grade;
|
||
match_player.nickname = o_player.nickname;
|
||
match_player.avatar = o_player.avatar;
|
||
match_data.game_infos.push(match_player);
|
||
}
|
||
}
|
||
}
|
||
/*
|
||
//如果是星星场,房主获得抽成星星
|
||
if (o_room.beanfloor && maxwiner_setting){
|
||
if (!aset_rebate || !aset_rebate.finitude || !o_room.roommode) {
|
||
var pushtoplayerid;
|
||
if (pushtoplayerid_setting){
|
||
if (!o_room.advanced_type){
|
||
//普通房间
|
||
pushtoplayerid = pushtoplayerid_setting[0];
|
||
} else {
|
||
//短号房间
|
||
pushtoplayerid = pushtoplayerid_setting[1];
|
||
}
|
||
}
|
||
if (!pushtoplayerid || (pushtoplayerid == o_room.owner.playerid && !pushto_setting)){
|
||
if (ownergarde || ownerpush) {
|
||
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 = o_room.owner.playerid;
|
||
msg.data.change = ownergarde;
|
||
msg.data.pushbean = ownerpush;
|
||
msg.data.gameid = gameid;
|
||
youle_room.app.youle_agent[msg.rpc](msg);
|
||
}
|
||
|
||
if (ownergarde){
|
||
var roommode = 0; //玩家房间
|
||
if (o_room.sysroom) {
|
||
roommode = 1; //系统房间
|
||
}
|
||
var createtime = o_room.createtime;
|
||
var beanmult = 0;
|
||
if (o_room.beanmult){
|
||
beanmult = o_room.beanmult;
|
||
}
|
||
var ownerid = o_room.owner.playerid;
|
||
var shortcode = 0;
|
||
if (o_room.shortcode){
|
||
shortcode = o_room.shortcode;
|
||
}
|
||
var deductmode = youle_room.import.deduct_roomcard_mode(o_room.o_game, o_room.roomtype);
|
||
var grade = o_player.gameinfo.grade;
|
||
var roomcard = 0;
|
||
if (playerid == o_room.owner.playerid){
|
||
roomcard = youle_room.import.createroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||
} else {
|
||
roomcard = youle_room.import.joinroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||
}
|
||
var asetcount = o_room.asetcount;
|
||
var _ownerpushbean = 0;
|
||
if (ownergarde == maxgrade) {
|
||
_ownerpushbean = maxwiner_pushbean;
|
||
}
|
||
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) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
|
||
youle_room.mysql_grade.execsql("execsql", sql, [roomid, agentid, gameid, roomcode, roommode, createtime, beanmult, ownerid, shortcode, deductmode, roomcard, 0, asetcount, 0, o_room.owner.playerid, 0, ownergarde, rebatefrom, rebateto, toplayerid, rebatemode, setvalue, _ownerpushbean, datatime]);
|
||
}
|
||
} else {
|
||
if (ownergarde){
|
||
var _ownerpushbean = 0;
|
||
if (ownergarde == maxgrade) {
|
||
_ownerpushbean = maxwiner_pushbean;
|
||
ownerpush = ownerpush + _ownerpushbean;
|
||
}
|
||
|
||
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 = o_room.owner.playerid;
|
||
msg.data.change = ownergarde;
|
||
msg.data.pushbean = -1 * _ownerpushbean;
|
||
msg.data.gameid = gameid;
|
||
youle_room.app.youle_agent[msg.rpc](msg);
|
||
|
||
var roommode = 0; //玩家房间
|
||
if (o_room.sysroom) {
|
||
roommode = 1; //系统房间
|
||
}
|
||
var createtime = o_room.createtime;
|
||
var beanmult = 0;
|
||
if (o_room.beanmult){
|
||
beanmult = o_room.beanmult;
|
||
}
|
||
var ownerid = o_room.owner.playerid;
|
||
var shortcode = 0;
|
||
if (o_room.shortcode){
|
||
shortcode = o_room.shortcode;
|
||
}
|
||
var deductmode = youle_room.import.deduct_roomcard_mode(o_room.o_game, o_room.roomtype);
|
||
var grade = o_player.gameinfo.grade;
|
||
var roomcard = 0;
|
||
if (playerid == o_room.owner.playerid){
|
||
roomcard = youle_room.import.createroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||
} else {
|
||
roomcard = youle_room.import.joinroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||
}
|
||
var asetcount = o_room.asetcount;
|
||
var _ownerpushbean = 0;
|
||
if (ownergarde == maxgrade) {
|
||
_ownerpushbean = maxwiner_pushbean;
|
||
}
|
||
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) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
|
||
youle_room.mysql_grade.execsql("execsql", sql, [roomid, agentid, gameid, roomcode, roommode, createtime, beanmult, ownerid, shortcode, deductmode, roomcard, 0, asetcount, 0, o_room.owner.playerid, 0, ownergarde, rebatefrom, rebateto, toplayerid, rebatemode, setvalue, _ownerpushbean, datatime]);
|
||
}
|
||
|
||
if (!pushto_setting){
|
||
if (ownerpush){
|
||
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 = pushtoplayerid;
|
||
msg.data.change = 0;
|
||
msg.data.pushbean = ownerpush;
|
||
msg.data.gameid = gameid;
|
||
youle_room.app.youle_agent[msg.rpc](msg);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
*/
|
||
try{
|
||
xRebate.gameRebate(o_room);
|
||
}catch(e){
|
||
console.log("抽成异常");
|
||
console.log(e);
|
||
}
|
||
//保存战绩到数据库
|
||
var sql = "call cp_game_grade_save(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
|
||
youle_room.mysql.execsql("execsql", sql, [agentid, aryplayerid, gameid, roomcode, JSON.stringify(o_room.roomtype), createtime, makewartime, overtime, null, null, o_room.owner.playerid, arygrade, o_room.roommode, o_room.beanmult, o_room.shortcode, aryisrobot]);
|
||
|
||
var o_agentsvr_owner = o_agentsvr_agent.method.find_player(o_room.owner.playerid);
|
||
if (o_agentsvr_owner){
|
||
var ownerroomcard = o_agentsvr_owner.roomcard;
|
||
} else {
|
||
var ownerroomcard = -99999;
|
||
}
|
||
|
||
var shortcode = o_room.shortcode;
|
||
var deducttype = youle_room.import.deduct_roomcard_mode(o_room.o_game, o_room.roomtype);
|
||
var deductcard;
|
||
if (deducttype == 0){
|
||
deductcard = youle_room.import.createroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||
} else {
|
||
deductcard = youle_room.import.joinroom_needroomcard(o_room.o_game, o_room.roomtype);
|
||
}
|
||
var asetcount = youle_room.import.createroom_asetcount(o_room.o_game, o_room.roomtype);
|
||
|
||
sql = "call cp_game_grade_save4(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
|
||
youle_room.mysql_grade.execsql("execsql", sql, [agentid, aryplayerid, gameid, roomcode, JSON.stringify(o_room.roomtype), createtime, makewartime, overtime, JSON.stringify(o_gameinfo1), JSON.stringify(o_gameinfo2), o_room.owner.playerid, arygrade, aryroomcard, ownerroomcard, shortcode, deducttype, deductcard, asetcount, o_room.roommode, aryisrobot,arywinner,aryscore]);
|
||
|
||
//发送比赛数据
|
||
var match_url = youle_room.app.youle_platform.config.method.get_paravalue("url_match2", agentid, gameid);
|
||
if (match_url){
|
||
if (o_room.match_data){
|
||
match_data.match_data = o_room.match_data;
|
||
}
|
||
var cfg = {};
|
||
cfg.url = match_url;
|
||
cfg.type = "POST";
|
||
cfg.data = "data=" + JSON.stringify(match_data);
|
||
cfg.success = function(str){};
|
||
cfg.error = function(str){
|
||
console.log(min_now() + " 发送比赛数据失败!");
|
||
console.log(match_data);
|
||
};
|
||
min_http(cfg);
|
||
}
|
||
|
||
|
||
//比赛&排行榜(何朝阳版)
|
||
if (o_room.match_id){
|
||
var ary_playergrade = [];
|
||
for (var i = 0; i < o_room.seatlist.length; i++) {
|
||
if (o_room.seatlist[i]){
|
||
if (o_room.seatlist[i].gameinfo.isbet) {
|
||
var obj_player = {};
|
||
obj_player.playerid = o_room.seatlist[i].playerid;
|
||
obj_player.nickname = o_room.seatlist[i].nickname;
|
||
obj_player.avatar = o_room.seatlist[i].avatar;
|
||
obj_player.roomcode = o_room.roomcode;
|
||
obj_player.overtime = overtime;
|
||
obj_player.grade = o_room.seatlist[i].gameinfo.grade;
|
||
if (o_room.seatlist[i].isrobot){
|
||
obj_player.isr = 1;
|
||
} else {
|
||
obj_player.isr = 0;
|
||
}
|
||
ary_playergrade.push(obj_player);
|
||
} else {
|
||
ary_playergrade.push(null);
|
||
}
|
||
} else {
|
||
ary_playergrade.push(null);
|
||
}
|
||
}
|
||
youle_room.export.match_ranklist(agentid, gameid, o_room.match_id, o_room.match_idx, ary_playergrade);
|
||
}
|
||
}
|
||
catch(e){
|
||
console.log(e);
|
||
}
|
||
}
|
||
|
||
//释放房间
|
||
if (freeroomflag){
|
||
//通知代理商服务器解散房间
|
||
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);
|
||
}
|
||
}
|
||
|
||
if (o_agent.server == o_game.roomserver){
|
||
//房间服务器与代理商服务器是同一地址
|
||
youle_room.app.youle_agent[msg1.rpc](msg1);
|
||
//释放房间
|
||
o_game.method.free_room(o_room);
|
||
} else {
|
||
//房间服务器与代理商服务器不是同一地址
|
||
var cfg = {};
|
||
cfg.url = "http://" + o_agent.server + ":" + o_agent.httpport + "/index.html";
|
||
cfg.type = "POST";
|
||
cfg.data = JSON.stringify(msg1);
|
||
cfg.success = function(str){
|
||
//通知前端房间内的所有人需要断开房间服务器,连接代理服务器
|
||
for (var i = 0; i < o_room.seatlist.length; i++) {
|
||
if (o_room.seatlist[i]) {
|
||
var msg2 = {};
|
||
msg2.app = youle_room.app.appname;
|
||
msg2.route = youle_room.routename;
|
||
msg2.rpc = "connect_agentserver";
|
||
msg2.data = {};
|
||
msg2.data.agentserver = o_agent.server + ":" + o_agent.tcpport;
|
||
msg2.data.data = {};
|
||
msg2.data.data.opt = "game_over";
|
||
msg2.data.data.playerid = o_room.seatlist[i].playerid;
|
||
msg2.data.data.agentid = agentid;
|
||
msg2.data.data.gameid = gameid;
|
||
msg2.conmode = o_room.seatlist[i].conmode;
|
||
msg2.fromid = o_room.seatlist[i].fromid;
|
||
//此处conmode = null是为了避免触发玩家离线通知其他玩家事件
|
||
o_room.seatlist[i].conmode = null;
|
||
o_room.seatlist[i].fromid = null;
|
||
youle_room.app.SendPack(msg2);
|
||
}
|
||
}
|
||
//释放房间
|
||
o_game.method.free_room(o_room);
|
||
};
|
||
cfg.error = function(str){};
|
||
min_http(cfg);
|
||
}
|
||
}
|
||
}
|
||
|
||
//把系统庄的输赢也算到机器人的输赢里面
|
||
exp.save_system_zhuang = function(o_room, winvalue){
|
||
var sql = "update agent_game_player set agpl_winlose_x2 = agpl_winlose_x2 + ? where agpl_agentid = ? and agpl_gameid = ?";
|
||
youle_room.mysql.execsql("execsql", sql, [winvalue, o_room.o_game.o_agent.agentid, o_room.o_game.gameid]);
|
||
}
|
||
|
||
//完成游戏里的任务
|
||
exp.finish_gametask = function(agentid, o_player, taskid, finishamount){
|
||
var db_callback = function(dbdata){
|
||
//通知前端
|
||
var msg = {};
|
||
msg.app = youle_room.app.appname;
|
||
msg.route = youle_room.routename;
|
||
msg.rpc = "player_finish_task";
|
||
msg.conmode = o_player.conmode;
|
||
msg.fromid = o_player.fromid;
|
||
msg.data = {};
|
||
msg.data.taskid = taskid;
|
||
msg.data.total = dbdata[0].tasktotal;
|
||
msg.data.award = dbdata[0].taskaward;
|
||
msg.data.finish = dbdata[0].taskfinish;
|
||
msg.data.state = dbdata[0].taskstate;
|
||
youle_room.app.SendPack(msg);
|
||
}
|
||
if (!finishamount){
|
||
finishamount = 1;
|
||
}
|
||
var sql = "call cp_game_task_finish(?,?,?,?,1);";
|
||
youle_room.mysql.execsql("opensql", sql, [agentid, o_player.playerid, taskid, finishamount], db_callback);
|
||
}
|
||
|
||
//全服通告
|
||
exp.game_broadcast = function(agentid, gameid, msgtype, msgcontent){
|
||
var msg = {};
|
||
msg.data = {};
|
||
msg.data.agentid = agentid;
|
||
msg.data.gameid = gameid;
|
||
msg.data.msgtype = msgtype;
|
||
msg.data.msgcontent = msgcontent;
|
||
youle_room.broadcast(msg);
|
||
}
|
||
|
||
//小局结算备份牌桌数据
|
||
exp.backup_room = function(o_room, o_deskinfo){
|
||
cls_youle_room_backup.backup_room(o_room, o_deskinfo);
|
||
}
|
||
|
||
//踢玩家离开房间
|
||
exp.kickplayer_inroom = function(o_room, seat){
|
||
if (!o_room){
|
||
return 0;
|
||
}
|
||
if (!o_room.seatlist[seat]){
|
||
return 0;
|
||
}
|
||
var o_player = o_room.seatlist[seat];
|
||
|
||
var msg1 = {};
|
||
msg1.app = youle_room.app.appname;
|
||
msg1.route = youle_room.app.youle_agent.routename;
|
||
msg1.rpc = "self_exit_room";
|
||
msg1.data = {};
|
||
msg1.data.agentid = o_room.o_game.o_agent.agentid;
|
||
msg1.data.gameid = o_room.o_game.gameid;
|
||
msg1.data.playerid = o_player.playerid;
|
||
youle_room.app.youle_agent[msg1.rpc](msg1);
|
||
|
||
o_player.method.exit_room();
|
||
if (o_room.battlestate == 1){
|
||
youle_room.import.player_leave(o_room, seat);
|
||
}
|
||
|
||
var msg2 = {};
|
||
msg2.app = youle_room.app.appname;
|
||
msg2.route = youle_room.routename;
|
||
msg2.rpc = "other_exit_room";
|
||
msg2.data = {};
|
||
msg2.data.seat = seat;
|
||
o_room.method.sendpack_toother(msg2, seat);
|
||
|
||
var msg3 = {};
|
||
msg3.app = youle_room.app.appname;
|
||
msg3.route = youle_room.routename;
|
||
msg3.rpc = "self_exit_room";
|
||
msg3.data = {};
|
||
msg3.data.roomcode = o_room.roomcode;
|
||
if (o_room.owner.playerid == o_player.playerid){
|
||
msg3.data.isowner = 1;
|
||
} else {
|
||
msg3.data.isowner = 0;
|
||
}
|
||
msg3.conmode = o_player.conmode;
|
||
msg3.fromid = o_player.fromid;
|
||
youle_room.app.SendPack(msg3);
|
||
return 1;
|
||
}
|
||
|
||
//互换位置
|
||
exp.change_seat = function(o_room, seat1, seat2){
|
||
var o_player1 = o_room.seatlist[seat1];
|
||
var o_player2 = o_room.seatlist[seat2];
|
||
o_room.seatlist[seat1] = o_player2;
|
||
if (o_player2){
|
||
o_player2.gameinfo.seat = seat1;
|
||
}
|
||
o_room.seatlist[seat2] = o_player1;
|
||
if (o_player1){
|
||
o_player1.gameinfo.seat = seat2;
|
||
}
|
||
var msg = {};
|
||
msg.app = youle_room.app.appname;
|
||
msg.route = youle_room.routename;
|
||
msg.rpc = "change_seat";
|
||
msg.data = {};
|
||
msg.data.agentid = o_room.o_game.o_agent.agentid;
|
||
msg.data.gameid = o_room.o_game.gameid;
|
||
msg.data.roomcode = o_room.roomcode;
|
||
msg.data.seat1 = seat1;
|
||
msg.data.seat2 = seat2;
|
||
o_room.method.sendpack_toother(msg, -1);
|
||
}
|
||
|
||
//比赛&排行榜
|
||
exp.match_ranklist = function(agentid, gameid, matchid, matchidx, ary_playergrade){
|
||
var o_agentsvr_agent = youle_agent.agents.method.find_agent(agentid);
|
||
var o_agentsvr_game = o_agentsvr_agent.method.find_game(gameid);
|
||
|
||
var match_idx = min_ary_indexof(o_agentsvr_game.matchlist.list, matchid, "id");
|
||
if (match_idx > -1){
|
||
var match_object = o_agentsvr_game.matchlist.list[match_idx];
|
||
if (match_object.idx == matchidx){
|
||
var ischange = false;
|
||
for (var i = 0; i < ary_playergrade.length; i++) {
|
||
if (ary_playergrade[i] == null){
|
||
continue;
|
||
}
|
||
if (match_object.ranklist.length >= parseInt(match_object.topcount)){
|
||
if (ary_playergrade[i].grade < match_object.ranklist[match_object.ranklist.length - 1].grade){
|
||
continue;
|
||
}
|
||
}
|
||
|
||
var idx_player = min_ary_indexof(match_object.ranklist, ary_playergrade[i].playerid, "playerid");
|
||
if (idx_player > -1){
|
||
if (ary_playergrade[i].grade <= match_object.ranklist[idx_player].grade){
|
||
continue;
|
||
} else {
|
||
match_object.ranklist.splice(idx_player, 1);
|
||
ischange = true;
|
||
}
|
||
}
|
||
var isfound = false;
|
||
for (var j = 0; j < match_object.ranklist.length; j++) {
|
||
if (ary_playergrade[i].grade > match_object.ranklist[j].grade){
|
||
match_object.ranklist.splice(j, 0, ary_playergrade[i]);
|
||
if (match_object.ranklist.length > parseInt(match_object.topcount)){
|
||
match_object.ranklist.length = parseInt(match_object.topcount);
|
||
}
|
||
ischange = true;
|
||
isfound = true;
|
||
break;
|
||
}
|
||
}
|
||
if (!isfound){
|
||
if (match_object.ranklist.length < parseInt(match_object.topcount)){
|
||
match_object.ranklist.push(ary_playergrade[i]);
|
||
ischange = true;
|
||
}
|
||
}
|
||
}
|
||
|
||
if (match_object.sysgrade){
|
||
match_object.method.start_add_sysgrade_timer();
|
||
}
|
||
|
||
if (ischange){
|
||
cls_youle_room_backup.backup_match(match_object);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
//获取机器人总体输赢type 1星星场分数 1输赢星星数
|
||
exp.getRobotWinLose = function(o_room,type){
|
||
var rValue;
|
||
var o_agent = youle_agent.agents.method.find_agent(o_room.o_game.o_agent.agentid);
|
||
var o_game = o_agent.method.find_game(o_room.o_game.gameid);
|
||
switch(type){
|
||
case 2:
|
||
rValue = o_game.robot_xx;
|
||
break;
|
||
case 3:
|
||
rValue = o_game.robot_x2;
|
||
break;
|
||
default:
|
||
rValue = o_game.robot_x2;
|
||
break;
|
||
}
|
||
if(!rValue){rValue = 0;}
|
||
return rValue;
|
||
|
||
}
|
||
//获取玩家总体输赢type 1星星场分数 1输赢星星数
|
||
exp.getPlayerWinLoseBySeat = function(o_room,seat,type){
|
||
try{
|
||
var o_player1 = o_room.seatlist[seat];
|
||
}catch(e){
|
||
|
||
}
|
||
if(!o_player1){ return 0;}
|
||
var o_agent = youle_agent.agents.method.find_agent(o_room.o_game.o_agent.agentid);
|
||
var o_player = o_agent.method.find_player(o_player1.playerid);
|
||
//读取输赢
|
||
var getGameWinLose = function(gameid,type,oPlayer){
|
||
var key;
|
||
switch(type){
|
||
case 1:
|
||
key = "game_winlose";
|
||
break;
|
||
case 2:
|
||
key = "game_winlose_xx";
|
||
break;
|
||
case 3:
|
||
key = "game_winlose_x2";
|
||
break;
|
||
default:
|
||
key = "game_winlose_xx";
|
||
break;
|
||
}
|
||
if(oPlayer.winLose){//判断是否有此属性
|
||
if(oPlayer.winLose[gameid]){
|
||
if(oPlayer.winLose[gameid][key]){
|
||
return oPlayer.winLose[gameid][key];
|
||
}else{
|
||
|
||
}
|
||
}else{
|
||
|
||
}
|
||
}else{
|
||
|
||
}
|
||
return 0;
|
||
}
|
||
return getGameWinLose(o_room.o_game.gameid,type,o_player);
|
||
|
||
}
|
||
//判断该玩家是否满足踢出条件 true 踢出玩家;(只处理vip房)
|
||
exp.checkKick = function(o_room,seat){
|
||
try{
|
||
var rValue = false;
|
||
var rCount = o_room.rebateNumber;
|
||
var oCount = 0;
|
||
var o_agentsvr_agent = youle_agent.agents.method.find_agent(o_room.o_game.o_agent.agentid);
|
||
if(!o_agentsvr_agent){
|
||
return rValue;
|
||
}
|
||
|
||
if(!o_room.seatlist[seat]){
|
||
return rValue;
|
||
}
|
||
// var o_player = o_agentsvr_agent.method.find_player(o_room.seatlist[seat].playerid);
|
||
var o_player = o_room.seatlist[seat];
|
||
if(!o_player){
|
||
return rValue;
|
||
}
|
||
if(!o_room.owner){
|
||
return rValue;
|
||
}
|
||
// var o_owner = o_agentsvr_agent.method.find_player(owner.playerid);
|
||
var o_owner = o_room.owner;
|
||
if(!o_owner){
|
||
return rValue;
|
||
}
|
||
// var rebateConfig = youle_room.app.youle_platform.config.method.get_paravalue("rebateConfig", o_room.o_game.o_agent.agentid);
|
||
// var rebateFrom = rebateConfig.from;
|
||
// if(rebateConfig){
|
||
|
||
// }
|
||
if(o_room.o_game.gameid == "Btke0urRy0cvPd5CIvD5yfhYhKhdSdex"){
|
||
var brNumber = youle_room.app.youle_platform.config.method.get_paravalue("brNumber",o_room.o_game.o_agent.agentid);
|
||
if(brNumber){
|
||
brNumber = Number(brNumber);
|
||
oCount = brNumber;
|
||
}
|
||
}
|
||
//console.log(oCount,rCount,o_player,o_owner);
|
||
//vip房
|
||
if(o_room.advanced_type){
|
||
//抽金币
|
||
if(!o_room.rebateType){
|
||
if(o_player.playerid == o_owner.playerid){
|
||
if(o_player.bean < oCount + rCount){
|
||
rValue = true;
|
||
}
|
||
}else{
|
||
if(o_player.bean < rCount){
|
||
rValue = true;
|
||
}
|
||
}
|
||
}else{//抽魅力值
|
||
|
||
}
|
||
}
|
||
return rValue;
|
||
}catch(e){
|
||
console.log("exp.checkKick",e);
|
||
return false;
|
||
}
|
||
}
|
||
return exp;
|
||
}
|
||
}
|
||
|
||
//对内输出接口
|
||
youle_room.export = cls_youle_room_export.new(); |