chore: 纳入项目全部源码进根仓库统一管理
删除 YouleNexus 内嵌 .git,统一由根仓库唯一管理。提交: - projects/ 旧 H5 模板 Game_Surface_3 与各子游戏源码 - cocoscreator_projects/YouleNexus 工程 + cocos-creator-mcp 扩展源码 - CLAUDE.md、.mcp.json 等配置 library/temp/node_modules/dist 等缓存由 .gitignore 排除。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,757 @@
|
||||
/*
|
||||
点击事件
|
||||
*/
|
||||
function NN_MouseUp(gameid,spid_down,downx,downy,spid_up,upx,upy,timelong){
|
||||
//鼠标弹起
|
||||
switch (NN_GameState){
|
||||
case NN_State.inHall:
|
||||
NN_MouseUp_hall(gameid,spid_down,downx,downy,spid_up,upx,upy,timelong);
|
||||
break;
|
||||
case NN_State.inGame:
|
||||
NN_MouseUp_game(gameid,spid_down,downx,downy,spid_up,upx,upy,timelong);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
NN_MouseUp_other(gameid,spid_down,downx,downy,spid_up,upx,upy,timelong);
|
||||
};
|
||||
|
||||
function NN_MouseDown(gameid,spid,downx,downy,timelong){
|
||||
//鼠标按下
|
||||
if(NN_GameState == NN_State.inHall){//大厅按下事件
|
||||
switch (spid){
|
||||
case 0://
|
||||
//play_ani(1,spid,33,100,110,0,60,0,0,0,1,0,0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}else if(NN_GameState == NN_State.inGame){
|
||||
if(NN_Desk.state == NN_state.robZhuang){
|
||||
if(spid == 706 || spid == 707 || spid == NN_Sprite.btn.noRob || spid == NN_Sprite.btn.rob){
|
||||
NN_clickEffect(spid);
|
||||
}
|
||||
}else if(NN_Desk.state == NN_state.bet){
|
||||
if(spid >= 809 && spid <= 818){
|
||||
NN_clickEffect(spid);
|
||||
}else if((spid >= 946 && spid <= 948) || spid == 955 || spid == 956){
|
||||
NN_clickEffect(spid);
|
||||
}else if(spid >= 1122 && spid <= 1125){
|
||||
NN_clickEffect(spid);
|
||||
}
|
||||
}else if(NN_Desk.state == NN_state.rubCard){
|
||||
if(spid == 750 || spid == 751){
|
||||
NN_UI.rubPutUI_anim(false);
|
||||
NN_UIP.anim.fingerSlide(false);
|
||||
}
|
||||
}else if(NN_Desk.state == NN_state.putCard){
|
||||
if(spid == 807 || spid == 808 || spid == NN_Sprite.btn.sureCattle || spid == NN_Sprite.btn.noCattle){
|
||||
NN_clickEffect(spid);
|
||||
}
|
||||
if(spid >= 725 && spid <= 729 && NN_Desk.pList[NN_Desk.myseat].putcard != 1){
|
||||
NN_moveSelectCard(spid);
|
||||
}
|
||||
}else {
|
||||
if(spid == 851 || spid == 1802 || spid == 925 || spid == 957 || spid == 981 || (spid >= 1000 && spid <= 1004) || spid == 1802 || (spid >= 1933 && spid <= 1942)){
|
||||
NN_clickEffect(spid);
|
||||
}
|
||||
}
|
||||
if(spid == 961 || spid == 962){
|
||||
NN_clickEffect(spid);
|
||||
}
|
||||
}
|
||||
//取消震动
|
||||
if(NN_Desk.state == NN_state.bet && NN_Judge.isVibrator == 1){
|
||||
NN_Judge.isVibrator = -1;
|
||||
Func.canclevibrator();
|
||||
}
|
||||
};
|
||||
function NN_MouseMove(gameid,spid,downx,downy,movex,movey ,timelong,offmovex,offmovey){
|
||||
//鼠标移动
|
||||
if(NN_Desk.state == NN_state.rubCard){
|
||||
if(offmovex != 0 || offmovey != 0){
|
||||
if(spid == 750 || spid == 751){
|
||||
var offx = Math.round((movex - downx)*0.3), offy = Math.round((movey - downy)*0.3);
|
||||
set_self(spid,18,get_self(spid-22,18)+offx,0,0);
|
||||
set_self(spid,19,get_self(spid-22,19)+offy,0,0);
|
||||
//if(offx > 36 || offx < -114 || offy < -162 || offy > 64){
|
||||
//NN_Judge.isRub = 1;
|
||||
//}
|
||||
}
|
||||
}
|
||||
}else if(NN_Desk.state == NN_state.putCard && NN_Desk.pList[NN_Desk.myseat].putcard != 1){
|
||||
//摆牌时移动选牌
|
||||
if(offmovex != 0 || offmovey != 0 ){
|
||||
if(spid >= 725 && spid <= 729){
|
||||
if(movex >= 332 && movex <= 462){
|
||||
if(movey >= get_self(725,19) && movey <= get_self(725,19)+176){
|
||||
NN_moveSelectCard(725);
|
||||
}
|
||||
}else if(movex >= 463 && movex <= 593){
|
||||
if(movey >= get_self(726,19) && movey <= get_self(726,19)+176){
|
||||
NN_moveSelectCard(726);
|
||||
}
|
||||
}else if(movex >= 594 && movex <= 724){
|
||||
if(movey >= get_self(727,19) && movey <= get_self(727,19)+176){
|
||||
NN_moveSelectCard(727);
|
||||
};
|
||||
}else if(movex >= 725 && movex <= 855){
|
||||
if(movey >= get_self(728,19) && movey <= get_self(728,19)+176){
|
||||
NN_moveSelectCard(728);
|
||||
}
|
||||
}else if(movex >= 856 && movex <= 986){
|
||||
if(movey >= get_self(729,19) && movey <= get_self(729,19)+176){
|
||||
NN_moveSelectCard(729);
|
||||
}
|
||||
}else {
|
||||
NN_Judge.boveCardaSpid = -1;
|
||||
}
|
||||
}else {
|
||||
NN_Judge.boveCardaSpid = -1;
|
||||
}
|
||||
}
|
||||
}else if(NN_Desk.state == NN_state.over){
|
||||
// 结算界面移动战绩
|
||||
if(offmovey != 0 && spid == 884){
|
||||
set_self(spid,19,offmovey,1,0);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//移动选牌
|
||||
function NN_moveSelectCard(_spid){
|
||||
if(NN_Judge.boveCardaSpid != _spid){
|
||||
//console.log("判断中。。。");
|
||||
//先判断选择两张以上牌后返回选时,相对最前的牌隐藏,当前位置的牌不变
|
||||
if(NN_Judge.putLoc.length >= 2 && NN_Judge.putLoc[NN_Judge.putLoc.length - 2] == _spid-725 && NN_Judge.putLoc[NN_Judge.putLoc.length -1] == NN_Judge.boveCardaSpid-725 && Math.abs(NN_Judge.boveCardaSpid - _spid) == 1){
|
||||
NN_Judge.putLoc.splice(NN_Judge.putLoc.length - 1,1);
|
||||
NN_UI.cardSelect(NN_Judge.boveCardaSpid - 725,0);
|
||||
NN_Judge.boveCardaSpid = _spid;
|
||||
}else {
|
||||
NN_Judge.boveCardaSpid = _spid;
|
||||
var a = -1;
|
||||
for(var i=0;i<NN_Judge.putLoc.length;i++){
|
||||
if(NN_Judge.putLoc[i] == _spid - 725){
|
||||
NN_Judge.putLoc.splice(i,1);
|
||||
a = 1;
|
||||
if(NN_Judge.putLoc.length == 0){
|
||||
if(NN_Desk.personMax == 10){
|
||||
//搓摆牌提示
|
||||
NN_UIP.show.onRobPutTips(0,0,0,1);
|
||||
}else {
|
||||
set_self(905,37,1,0,0);
|
||||
set_self(769,37,1,0,0);
|
||||
}
|
||||
}
|
||||
NN_UI.cardSelect(_spid - 725,0);
|
||||
//console.log("第 "+(_spid - 725)+" 张牌下去 "+NN_Judge.putLoc);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(a == -1 && NN_Judge.putLoc.length < 3){
|
||||
NN_Judge.putLoc[NN_Judge.putLoc.length] = _spid - 725;
|
||||
//console.log("第 "+(_spid - 725)+" 张牌弹起 "+NN_Judge.putLoc);
|
||||
NN_UI.cardSelect(_spid - 725,1);
|
||||
//选牌提示
|
||||
if(NN_Judge.putLoc.length > 0){
|
||||
if(NN_Desk.personMax == 10){
|
||||
//搓摆牌提示
|
||||
NN_UIP.show.onRobPutTips(0,0,0,0);
|
||||
}else {
|
||||
set_self(905,37,0,0,0);
|
||||
set_self(769,37,0,0,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function NN_MouseUp_hall(gameid,spid_down,downx,downy,spid_up,upx,upy,timelong) {
|
||||
//大厅点击事件
|
||||
|
||||
};
|
||||
|
||||
function NN_MouseUp_game(gameid,spid_down,downx,downy,spid_up,upx,upy,timelong) {
|
||||
//游戏桌点击弹起事件
|
||||
if(spid_down == spid_up){
|
||||
switch (spid_up){
|
||||
case NN_Sprite.btn.noRob:
|
||||
case 706://不抢
|
||||
NN_SendData.robZhuang(-1);
|
||||
NN_clickRecovery(spid_up);
|
||||
break;
|
||||
case NN_Sprite.btn.rob:
|
||||
case 707://抢庄
|
||||
NN_SendData.robZhuang(1);
|
||||
NN_clickRecovery(spid_up);
|
||||
break;
|
||||
case 1802://总结算关闭按钮
|
||||
case 851://总结算关闭按钮
|
||||
//清除桌数据并返回大厅
|
||||
NN_Exit_intoHall();
|
||||
NN_clickRecovery(spid_up);
|
||||
break;
|
||||
case 809:
|
||||
case 810:
|
||||
case 811:
|
||||
case 812:
|
||||
case 813:
|
||||
case 814:
|
||||
case 815:
|
||||
case 816:
|
||||
case 817:
|
||||
case 818://玩家押注
|
||||
if(NN_Desk.state == NN_state.bet){
|
||||
//var arr1 = [1,2,3,4,5,6,7,8,9,10];
|
||||
if(NN_Desk.model == 5 && NN_Desk.zhuang > 0 && NN_Desk.pList[NN_Desk.myseat].betScoreAgain > 0){
|
||||
//隐藏下注栏
|
||||
NN_UIF.btn.betScore();
|
||||
} else {
|
||||
NN_SendData.betScore(spid_up - 808);
|
||||
}
|
||||
}
|
||||
NN_clickRecovery(spid_up);
|
||||
break;
|
||||
case 946:
|
||||
case 947:
|
||||
case 948://玩家押注
|
||||
if(NN_Desk.state == NN_state.bet){
|
||||
NN_SendData.betScore(spid_up - 945);
|
||||
}
|
||||
NN_clickRecovery(spid_up);
|
||||
break;
|
||||
case 1122:
|
||||
case 1123:
|
||||
case 1124:
|
||||
case 1125://玩家押注
|
||||
if(NN_Desk.model_bet == 4 && NN_Desk.state == NN_state.bet){
|
||||
NN_SendData.betScore(spid_up - 1122);
|
||||
}
|
||||
NN_clickRecovery(spid_up);
|
||||
break;
|
||||
case 925://游戏结束时分享好友
|
||||
try{
|
||||
if(NN_Judge.headViewList.length > 0){
|
||||
Func.sharefinend(1,2,"","","",NN_Judge.headViewList);
|
||||
}else {
|
||||
Func.sharefinend(1,2,"","","",[859,860,861,862,863]);
|
||||
}
|
||||
}catch(e){}
|
||||
NN_clickRecovery(spid_up);
|
||||
break;
|
||||
case 957://游戏结束时分享朋友圈
|
||||
try{
|
||||
if(NN_Judge.headViewList.length > 0){
|
||||
Func.sharefinend(2,2,Game_Config.Share.appdownload,Game_Config.Share.title+Game_Config.Share.description);
|
||||
}else {
|
||||
Func.sharefinend(2,2,"","","",[859,860,861,862,863]);
|
||||
}
|
||||
}catch(e){}
|
||||
NN_clickRecovery(spid_up);
|
||||
break;
|
||||
case 954://显示托管提示框
|
||||
if(NN_Desk.pList[NN_Desk.myseat].isAuto == 1){
|
||||
//取消托管
|
||||
NN_SendData.trusteeship(-1);
|
||||
} else {
|
||||
NN_config.auto.mode = [2,2,2];
|
||||
if(NN_config.auto.recode[1] < 1){
|
||||
if(NN_Desk.betRange && NN_Desk.betRange.length > 0){
|
||||
NN_config.auto.betScore = NN_Desk.betRange[NN_Desk.betRange.length - 1];
|
||||
NN_config.auto.recode[1] = NN_Desk.betRange[NN_Desk.betRange.length - 1];
|
||||
} else {
|
||||
NN_config.auto.betScore = NN_Desk.model_bet;
|
||||
NN_config.auto.recode[1] = NN_Desk.model_bet;
|
||||
}
|
||||
}
|
||||
NN_UI.trusteeship(true);
|
||||
}
|
||||
break;
|
||||
case 955://下注按钮显示及隐藏
|
||||
if(NN_Desk.state == NN_state.bet && (NN_Desk.model == 4 || (NN_Desk.model == 5 && NN_Desk.pList[NN_Desk.myseat].cards.cards.length > 0))){
|
||||
var temp = -1;
|
||||
if((NN_Desk.model_bet == 10 || NN_Desk.model_bet == 5) && get_self(892,37) == 1 && get_self(892,19) < 720){
|
||||
temp = 1;
|
||||
}else if(NN_Desk.model_bet == 3 && get_self(924,37) == 1 && get_self(924,19) < 720){
|
||||
temp = 1;
|
||||
}
|
||||
if(temp == -1){
|
||||
NN_UIF.btn.betScore(1, 1, 1, NN_Desk.model_fast);
|
||||
set_self(955,37,0,0,0);
|
||||
}else {
|
||||
NN_UIF.btn.betScore(0,1,0,1);
|
||||
//set_self(955,43,1,0,0);
|
||||
set_self(955,37,0,0,0);
|
||||
}
|
||||
} else {
|
||||
set_self(955,37,0,0,0);
|
||||
}
|
||||
NN_clickRecovery(spid_up);
|
||||
break;
|
||||
case 956://不加注
|
||||
NN_SendData.betScore(0);
|
||||
NN_clickRecovery(spid_up);
|
||||
break;
|
||||
case 964://隐藏管提示框
|
||||
case 962://取消托管
|
||||
//关闭托管提示框
|
||||
NN_UI.trusteeship(false);
|
||||
NN_clickRecovery(spid_down);
|
||||
break;
|
||||
case 961://确认托管-发包
|
||||
NN_SendData.trusteeship(1);
|
||||
NN_clickRecovery(spid_down);
|
||||
break;
|
||||
case 975://托管-抢庄切换
|
||||
if(NN_config.auto.robZhuang == 1){
|
||||
NN_config.auto.robZhuang = -1;
|
||||
set_self(968,43,2,0,0);
|
||||
} else {
|
||||
NN_config.auto.robZhuang = 1;
|
||||
set_self(968,43,1,0,0);
|
||||
}
|
||||
break;
|
||||
case 977://托管-下注分数增加
|
||||
if(NN_Desk.betRange && NN_Desk.betRange.length > 0){
|
||||
if(NN_config.auto.betScore >= NN_Desk.betRange[0] && NN_config.auto.betScore < NN_Desk.betRange[NN_Desk.betRange.length - 1]){
|
||||
var temp = -1;
|
||||
for(var i=0;i<NN_Desk.betRange.length;i++){
|
||||
if(NN_config.auto.betScore == NN_Desk.betRange[i]){
|
||||
temp = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(temp >= 0){
|
||||
NN_config.auto.betScore = NN_Desk.betRange[temp + 1];
|
||||
}
|
||||
}
|
||||
if(NN_config.auto.betScore >= NN_Desk.betRange[NN_Desk.betRange.length - 1]){
|
||||
set_self(977,35,150,0,0);
|
||||
}
|
||||
}else{
|
||||
if(NN_config.auto.betScore > 0 && NN_config.auto.betScore < NN_Desk.model_bet){
|
||||
NN_config.auto.betScore ++;
|
||||
}else{
|
||||
NN_config.auto.betScore = NN_Desk.model_bet;
|
||||
NN_config.auto.recode[1] = NN_Desk.model_bet;
|
||||
}
|
||||
if(NN_config.auto.betScore >= NN_Desk.model_bet){
|
||||
set_self(977,35,150,0,0);
|
||||
}
|
||||
}
|
||||
set_self(969,7,NN_config.auto.betScore,0,0);
|
||||
set_self(969,20,String(NN_config.auto.betScore).length * 30,0,0);
|
||||
set_self(969,18,get_self(979,18) + 55 - String(NN_config.auto.betScore).length * 15,0,0);
|
||||
set_self(978,35,255,0,0);
|
||||
break;
|
||||
case 978://托管-下注分数减小
|
||||
if(NN_Desk.betRange && NN_Desk.betRange.length > 0){
|
||||
if(NN_config.auto.betScore > NN_Desk.betRange[0] && NN_config.auto.betScore <= NN_Desk.betRange[NN_Desk.betRange.length - 1]){
|
||||
var temp = -1;
|
||||
for(var i=0;i<NN_Desk.betRange.length;i++){
|
||||
if(NN_config.auto.betScore == NN_Desk.betRange[i]){
|
||||
temp = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(temp > 0){
|
||||
NN_config.auto.betScore = NN_Desk.betRange[temp - 1];
|
||||
}
|
||||
}
|
||||
if(NN_config.auto.betScore == NN_Desk.betRange[0]){
|
||||
set_self(978,35,150,0,0);
|
||||
}
|
||||
}else{
|
||||
if(NN_config.auto.betScore > 1 && NN_config.auto.betScore <= NN_Desk.model_bet){
|
||||
NN_config.auto.betScore --;
|
||||
}else{
|
||||
NN_config.auto.betScore = 1;
|
||||
NN_config.auto.recode[1] = 1;
|
||||
}
|
||||
if(NN_config.auto.betScore == 1){
|
||||
set_self(978,35,150,0,0);
|
||||
}
|
||||
}
|
||||
set_self(969,7,NN_config.auto.betScore,0,0);
|
||||
set_self(969,20,String(NN_config.auto.betScore).length * 30,0,0);
|
||||
set_self(969,18,get_self(979,18) + 55 - String(NN_config.auto.betScore).length * 15,0,0);
|
||||
set_self(977,35,255,0,0);
|
||||
break;
|
||||
case 1112: //牌型奖励关闭
|
||||
NN_UI.cardTypeReward();
|
||||
break;
|
||||
case 981: //复制总结算内容
|
||||
NN_Desk.copyGameoverData();
|
||||
NN_clickRecovery(spid_up);
|
||||
break;
|
||||
case 1113: //显示发牌按钮勾选
|
||||
if(NN_UIF.disorderDeal.isView){
|
||||
NN_UIF.disorderDeal.isView = false;
|
||||
set_self(1113,43,2,0,0);
|
||||
NN_UIF.disorderDeal.show();
|
||||
}else {
|
||||
NN_UIF.disorderDeal.isView = true;
|
||||
set_self(1113,43,1,0,0);
|
||||
NN_UIF.disorderDeal.show(true);
|
||||
}
|
||||
break;
|
||||
case 1114: //发牌显示框点击
|
||||
if(NN_UIF.disorderDeal.isView){
|
||||
if(NN_UIF.disorderDeal.isDraw){
|
||||
set_self(1115, 7, "此区域显示发给玩家所有的牌\n\n 点击显示发牌", 0, 0 );
|
||||
if(NN_Desk.personMax == 10){ //10
|
||||
set_self(1115, 18, get_self(1114, 18) + 80, 0, 0);
|
||||
set_self(1115, 19, get_self(1114, 19) + 30, 0, 0);
|
||||
}else {
|
||||
set_self(1115, 18, get_self(1114, 18) + 10, 0, 0);
|
||||
set_self(1115, 19, get_self(1114, 19) + 30, 0, 0);
|
||||
}
|
||||
set_self(1115, 37, 1, 0, 0);
|
||||
NN_UIF.disorderDeal.isDraw = false;
|
||||
}else {
|
||||
set_self(1115, 37, 0, 0, 0);
|
||||
NN_UIF.disorderDeal.isDraw = true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if(NN_Desk.state == NN_state.putCard){
|
||||
if(spid_up >= 725 && spid_up <= 729 && NN_Desk.state == NN_state.rubCard && get_self(750,37) == 0 && get_self(751,37) == 0){
|
||||
//牌背搓掉后不可地点牌处理
|
||||
NN_Desk.state = NN_state.putCard;
|
||||
}
|
||||
if(spid_up == 807 || spid_up == NN_Sprite.btn.sureCattle){//确定
|
||||
//判断是否已摆牌
|
||||
//if(NN_Desk.pList[NN_Desk.myseat].putcard == 1){//摆牌
|
||||
//NN_UI.putCard();
|
||||
//return;
|
||||
//}
|
||||
NN_Judge_selectCard();
|
||||
if(NN_Desk.pList[NN_Desk.myseat].cards.type == "wn"){
|
||||
NN_SendData.putCard();
|
||||
}else if(NN_Judge.putLoc.length == 3){
|
||||
if(NN_Judge_putCard()){
|
||||
NN_SendData.putCard();
|
||||
}else {
|
||||
NN_Tips.words("put_error");
|
||||
}
|
||||
}else if(NN_Judge.putLoc.length > 0){
|
||||
NN_Tips.words("put_error");
|
||||
//console.log("请点击选择三张牌选牛!");
|
||||
}
|
||||
//NN_SendData.putCard();
|
||||
NN_clickRecovery(spid_up);
|
||||
}else if(spid_up == 808 || spid_up == NN_Sprite.btn.noCattle){//无牛
|
||||
if(NN_Desk.pList[NN_Desk.myseat].cards.type == "wn"){
|
||||
NN_SendData.putCard();
|
||||
}else{
|
||||
NN_Tips.words("put_cattle");
|
||||
}
|
||||
NN_clickRecovery(spid_up);
|
||||
}
|
||||
}else if(NN_Desk.state == NN_state.over){ //总结算阶段
|
||||
if(spid_up >= 1000 && spid_up <= 1004){ //吱口令
|
||||
var seat = spid_up - 1000;
|
||||
if(Utl.getPayCodeBySeat(seat)){
|
||||
//复制到粘贴板
|
||||
Utl.gameCopytext(Utl.getPayCodeBySeat(seat));
|
||||
//提示复制成功
|
||||
Utl.openTips("吱口令复制成功",1200);
|
||||
}else {
|
||||
set_self(1000+seat,37,0,0,0);
|
||||
}
|
||||
NN_clickRecovery(spid_up);
|
||||
} else if(spid_up >= 1933 && spid_up <= 1942){
|
||||
var seat = spid_up - 1933;
|
||||
if(Utl.getPayCodeBySeat(seat)){
|
||||
//复制到粘贴板
|
||||
Utl.gameCopytext(Utl.getPayCodeBySeat(seat));
|
||||
//提示复制成功
|
||||
Utl.openTips("吱口令复制成功",1200);
|
||||
}else {
|
||||
set_self(1933 + seat,37,0,0,0);
|
||||
}
|
||||
NN_clickRecovery(spid_up);
|
||||
}
|
||||
}
|
||||
}else {
|
||||
if(spid_down == 706 || spid_down == 707 || spid_down == NN_Sprite.btn.noRob || spid_down == NN_Sprite.btn.rob
|
||||
|| spid_down == 808 || spid_down == 807 || spid_down == NN_Sprite.btn.sureCattle || spid_down == NN_Sprite.btn.noCattle
|
||||
|| spid_down == 851 || spid_down == 1802 || (spid_down >= 809 && spid_down <= 818)
|
||||
|| (spid_down >= 946 && spid_down <= 948) || spid_down == 925 || spid_down == 957 || spid_down == 961 || spid_down == 962 || spid_down == 981){
|
||||
NN_clickRecovery(spid_down);
|
||||
}
|
||||
}
|
||||
if(NN_Desk.state == NN_state.rubCard){
|
||||
if(spid_down == 750 || spid_down == 751){
|
||||
NN_SendData.rubCard(spid_down - 747);
|
||||
set_self(spid_down,37,0,0,0);
|
||||
|
||||
//搓牌后显示
|
||||
var loc = spid_down - 747;
|
||||
if(NN_Desk.pList[NN_Desk.myseat].rubcard.length == 0){
|
||||
NN_Desk.pList[NN_Desk.myseat].rubcard[0] = loc;
|
||||
}else if(NN_Desk.pList[NN_Desk.myseat].rubcard.length == 1){
|
||||
if(NN_Desk.pList[NN_Desk.myseat].rubcard[0] != loc){
|
||||
NN_Desk.pList[NN_Desk.myseat].rubcard[1] = loc;
|
||||
}
|
||||
//
|
||||
NN_Desk.state = NN_state.putCard;
|
||||
//搓牌完成-显示自动摆牌
|
||||
if(NN_Desk.pList[NN_Desk.myseat].putcard != 1){
|
||||
NN_putCard_autoSelection(true);
|
||||
}
|
||||
}
|
||||
//显示
|
||||
if(NN_Judge.isDealCards != 1){//判断是否发牌中
|
||||
//logmessage("自己搓牌:"+NN_Desk.pList[NN_Desk.myseat].rubcard,1);
|
||||
if(NN_Desk.model_fast >= 1){
|
||||
if(NN_Desk.personMax == 10){
|
||||
NN_UIP.card.rubCard(1,1,1,NN_Desk.model_fast, NN_Desk.myseat, loc, NN_Desk.pList[NN_Desk.myseat].cards.cards[loc]);
|
||||
}else {
|
||||
NN_UIF.card.rubCard(1,1,1,NN_Desk.model_fast, NN_Desk.myseat, loc, NN_Desk.pList[NN_Desk.myseat].cards.cards[loc]);
|
||||
}
|
||||
}else {
|
||||
NN_UI.rubCard(NN_Desk.myseat,loc,NN_Desk.pList[NN_Desk.myseat].cards.cards[loc]);
|
||||
}
|
||||
}
|
||||
}else {
|
||||
NN_Judge.isRub = -1;
|
||||
}
|
||||
}else if(NN_Desk.state == NN_state.putCard && NN_Desk.pList[NN_Desk.myseat].putcard != 1){
|
||||
if(spid_down >= 725 && spid_down <= 729){
|
||||
NN_Judge.boveCardaSpid = -1;
|
||||
//NN_Judge_selectCard();
|
||||
//logmessage("NN_Judge.putLoc = "+NN_Judge.putLoc,1);
|
||||
}
|
||||
}else if(NN_Desk.state == NN_state.over){
|
||||
if(spid_down == 884){//战绩列表
|
||||
if(get_self(884,19) > 334 || get_self(884,21) < 143){
|
||||
play_ani(1,884,19,get_self(884,19),334,0,400,0,0,0,1,0,0);
|
||||
}else if(get_self(884,19)+get_self(884,21) < 477){
|
||||
play_ani(1,884,19,get_self(884,19),447-get_self(884,21),0,400,0,0,0,1,0,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
function NN_MouseUp_other(gameid,spid_down,downx,downy,spid_up,upx,upy,timelong){
|
||||
//其他点击弹起事件
|
||||
/*
|
||||
if( Utl.getInfMode() == 1 && spid_down == spid_up){
|
||||
//if(spid_down == spid_up){
|
||||
switch (spid_up){
|
||||
case 188://
|
||||
Test.judge.times_click0 ++;
|
||||
break;
|
||||
case 203:
|
||||
Test.judge.times_click1 ++;
|
||||
break;
|
||||
case 698://
|
||||
Test.judge.times_click2 ++;
|
||||
if(Test.judge.times_click0 == Test.judge.triggerMode[0] && Test.judge.times_click2 == Test.judge.triggerMode[2]){
|
||||
//开启
|
||||
if(Test.autoOpt.isOpen){
|
||||
Test.autoOpt.close();
|
||||
}else {
|
||||
//测试用-自动操作
|
||||
Test.autoOpt.open(-1);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
Test.judge.times_click0 = 0;
|
||||
Test.judge.times_click1 = 0;
|
||||
Test.judge.times_click2 = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
*/
|
||||
};
|
||||
|
||||
function NN_Judge_putCard(){
|
||||
//判断摆牌
|
||||
var _cards = NN_Desk.pList[NN_Desk.myseat].cards;
|
||||
if(_cards.niu < 0){
|
||||
return false;
|
||||
}
|
||||
if(_cards.type == "wn"){
|
||||
return true;
|
||||
}else {
|
||||
var c_val = [];
|
||||
for(var i=0;i<3;i++){
|
||||
c_val[i] = NN_Desk.cardList[_cards.cards[NN_Judge.putLoc[i]]].gameval;
|
||||
}
|
||||
if((c_val[0] + c_val[1] + c_val[2])%10 == 0){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
//摆牌自动选中
|
||||
function NN_putCard_autoSelection(isAnim/*是否动画*/){
|
||||
//初始牌上下移动坐标点
|
||||
if(NN_Desk.personMax == 10){ //10人局
|
||||
NN_Judge.putPosY[1] = get_self(NN_Sprite.card.relvSpid[0], 19) + NN_Sprite.card.position[0][1];
|
||||
NN_Judge.putPosY[0] = NN_Judge.putPosY[1] - 30;
|
||||
}else{
|
||||
NN_Judge.putPosY[0] = 490;
|
||||
NN_Judge.putPosY[1] = 522;
|
||||
}
|
||||
|
||||
var _cards = NN_Desk.pList[NN_Desk.myseat].cards;
|
||||
var g_vallist = [];
|
||||
for(var i=0;i<_cards.cards.length;i++){
|
||||
g_vallist[i] = NN_Desk.cardList[_cards.cards[i]].gameval;
|
||||
}
|
||||
NN_Judge.putLoc = [];
|
||||
if(_cards.type == "wn" || _cards.niu < 0){
|
||||
return ;
|
||||
}else {
|
||||
var arr = [];
|
||||
outer:
|
||||
for(var i=0;i<3;i++){
|
||||
for(var j=i+1;j<4;j++){
|
||||
for(var k=j+1;k<=4;k++){
|
||||
if((g_vallist[i] + g_vallist[j] + g_vallist[k])%10 == 0){
|
||||
arr = [i,j,k];
|
||||
break outer;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(arr.length > 0){
|
||||
NN_Judge.putLoc = arr;
|
||||
for(var i=0; i<arr.length; i++){
|
||||
if(get_self(725 + arr[i],19) != NN_Judge.putPosY[0]){
|
||||
if(isAnim){
|
||||
play_ani(1,725 + arr[i],19,get_self(725 + arr[i],19),NN_Judge.putPosY[0],0,80,0,0,0,1,0,0);
|
||||
} else {
|
||||
set_self(725 + arr[i],19,NN_Judge.putPosY[0],0,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(NN_Desk.personMax == 10){ //10人局
|
||||
//隐藏牌背
|
||||
NN_UIP.show.onRobPutTips(0,0,0,0);
|
||||
//隐藏选牌提示
|
||||
NN_UIP.anim.fingerSlide();
|
||||
} else {
|
||||
//隐藏牌背
|
||||
set_self(750,37,0,0,0);
|
||||
set_self(751,37,0,0,0);
|
||||
//隐藏选牌提示
|
||||
set_self(905,37,0,0,0);
|
||||
set_self(769,37,0,0,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function NN_Judge_selectCard(_putLoc){
|
||||
//摆牌时判断选牌是否正常
|
||||
if(_putLoc != null && _putLoc.length > 0){
|
||||
for(var i=0;i<5;i++){
|
||||
set_self(725+i,19,NN_Judge.putPosY[1],0,0);
|
||||
for(var j=0;j<_putLoc.length;j++){
|
||||
if(_putLoc[j] == i){
|
||||
set_self(725+i,19,NN_Judge.putPosY[0],0,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}else {
|
||||
var up_loc = [];
|
||||
var temp = -1,up_num = 0;
|
||||
NN_Judge.putLoc = [];
|
||||
for(var i=0;i<5;i++){
|
||||
if(get_self(725+i,19) < NN_Judge.putPosY[0] + 15){//牌弹起
|
||||
NN_Judge.putLoc.push(i);
|
||||
if(get_self(725+i,19) != NN_Judge.putPosY[0]){
|
||||
play_ani(1,725+i,19,get_self(725+i,19),NN_Judge.putPosY[0],0,80,0,0,0,1,0,0);
|
||||
}
|
||||
}else{//牌未弹起
|
||||
if(get_self(725+i,19) != NN_Judge.putPosY[1]){
|
||||
play_ani(1,725+i,19,get_self(725+i,19),NN_Judge.putPosY[1],0,80,0,0,0,1,0,0);
|
||||
}
|
||||
/*
|
||||
for(var j=0;j<NN_Judge.putLoc.length;j++){
|
||||
if(NN_Judge.putLoc[j] == i){//若选牌数组中有,删掉
|
||||
NN_Judge.putLoc.splice(j,1);
|
||||
//console.log("选牌数组中有,删掉牌"+i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
return NN_Judge.putLoc.length;
|
||||
}
|
||||
};
|
||||
|
||||
function NN_clickEffect(spid){
|
||||
//按钮点击效果
|
||||
set_self(spid,35,200,0,0);
|
||||
set_self(spid,33,105,0,0);
|
||||
};
|
||||
function NN_clickRecovery(spid){
|
||||
//按钮点击恢复
|
||||
set_self(spid,35,255,0,0);
|
||||
set_self(spid,33,100,0,0);
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,923 @@
|
||||
/*data*/
|
||||
var NN_GameModel = 1; //游戏网络0-单机,1网络
|
||||
var NN_GameState = -1; //游戏状态
|
||||
var NN_FS = []; //方位转座位
|
||||
var NN_SF = []; //座位转方位
|
||||
var NN_nowTimeout = 0; //当前倒计时时间-秒
|
||||
var NN_nowTimeoutId = -1;//当前倒计时id
|
||||
var NN_soundState = -1; //音效开关
|
||||
var NN_timeout = 1; //定时器执开关
|
||||
|
||||
//牛牛配置参数
|
||||
var NN_config = {
|
||||
beanDes: "星星", //星星文字显示
|
||||
roomCardDes: "房卡", //房卡显示
|
||||
data : null, //配置文件数据
|
||||
creatRoomMode : [-1, 1], //创建房间类型 [是否区分,当前创建房间模式]
|
||||
room_card : [[[6,1],[12,2]],[[6,1],[12,2]]], //房卡类型
|
||||
mult_bet : [3,3,3], //倍数类型对应下注模式
|
||||
model_bet : 3, //下注模式
|
||||
betRange : [], //下注范围
|
||||
card_mult : [[8,2],[[-1],[1,1,1,1,1,1,1,1,2,3,4,-5,-6,-7,6,5,7,-11,-12],[1,1,2,3,4,5,6,7,8,9,10,-15,-16,-17,12,11,13,-25,-40]]], //牛八2倍类型牌型倍数
|
||||
isOwnerInfinite : -1, //是否有房主无限局
|
||||
isInfinite : 0, //是否无限局
|
||||
force_bet: [-1, -1, -1, -1], //强制操作[是否开启, 是否抢庄,下注分数, 最小下注值]
|
||||
model_bean: [-1,0,1000,10000,0.01], //星星分数显示 [1是否为星星场,星星数限制,星星数最小值,星星数最大值]
|
||||
bean_mult: [1,1,50,0.02], //星星倍数相关[星星倍数,最小倍数,最大倍数,滑动间隔]
|
||||
cfg_bean: [0, 0], //[抢庄限制,下注限制]
|
||||
teaCost: [-1, 0, -1, [0,0], 0, [0,0]], //[是否服务费,服务费值,是否房主服务费(-1、0:无,1:可变动,2:固定服务费值), 服务费值[6局,12局], 服务费最大值模式(1:可变动,2:固定值),服务费最大值[6局,12局]];
|
||||
teaCostRange: [0, 0], //茶水费范围
|
||||
bean_leaveMin: [0.5, 1, [0.5, 1]], //星星场离场星星数 [离场星星,离场设置模式,[相对入场最小值百分比,相对入场最大值百分比]]
|
||||
forceBetType: 2, //强制下注值:1-强制下注,2-最低下注
|
||||
//托管参数
|
||||
auto: {
|
||||
mode: [1,1,1], //托管模式[抢庄,下注,搓摆牌]
|
||||
toTime: 800, //定时延迟操作时间
|
||||
fast_toTime : 700, //快版定时延迟操作时间
|
||||
robZhuang: -1, //抢庄0-未操作,1-抢庄,-1-不抢
|
||||
betScore: -1, //下注分数
|
||||
recode: [-1,-1], //玩家操作记录
|
||||
},
|
||||
//托管提示框描述
|
||||
des_trusteeship: "提示:托管时与最近一局的操作相同,若\n无操作时默认不抢庄,下注分数为最大值。",
|
||||
ui:{
|
||||
sysRoomDes: -1, //系统房间房间类型是否显示,-1为显示
|
||||
}
|
||||
};
|
||||
|
||||
var NN_errorMsg = ""; //最近一次错误信息
|
||||
|
||||
var NN_RevDataRecord = {
|
||||
over:0, //0-断线重连时,-1-本地后台切回,1本地切回画完动画
|
||||
dealCards:null, //发牌数据包记录
|
||||
settlement:null,//结算数据包记录
|
||||
gameover:null //总结算数据包记录
|
||||
};
|
||||
|
||||
var NN_Judge = { //判断时用
|
||||
isRub:-1, //是否搓牌成功
|
||||
putLoc:[], //摆牌选中的位置
|
||||
putPosY:[], //摆牌选中的位置移动Y轴坐标
|
||||
boveCardaSpid:-1, //手是否移动到牌上,上次移动到哪张牌
|
||||
isVibrator:-1, //是否震动
|
||||
isDisband:-1, //是否解散房间
|
||||
isStartWar:-1, //是否开始动画中
|
||||
isOkZhuang:-1, //是否确定抢庄动画中
|
||||
isDealCards:-1, //是否发牌动画中
|
||||
|
||||
headViewList: [], //玩家头像精灵有显示的列表
|
||||
};
|
||||
|
||||
|
||||
var NN_Desk = {};
|
||||
function NN_createDesk(){
|
||||
//创建游戏桌
|
||||
NN_Desk = new NN_deskInfo(room_obj);
|
||||
//NN_Desk.addPlayer();
|
||||
//console.log("桌创建成功");
|
||||
};
|
||||
|
||||
var NN_State = { //游戏各阶段状态
|
||||
inHall:0,
|
||||
inGame:1
|
||||
};
|
||||
|
||||
var NN_state = { //游戏各阶段状态
|
||||
ready:10, //准备
|
||||
robZhuang:1, //抢庄
|
||||
bet:2, //下注状态
|
||||
betAgain:2, //下注状态
|
||||
dealCard:3, //发牌
|
||||
rubput:4, //搓牌和摆牌
|
||||
settlement:5, //结算
|
||||
over:6,
|
||||
|
||||
rubCard:7, //搓牌
|
||||
putCard:8 //摆牌
|
||||
};
|
||||
|
||||
//玩家游戏信息
|
||||
var NN_playerInfo = function(_seat){
|
||||
this.seat = _seat; //座位
|
||||
this.cards = new NN_cardsInfo([]); //玩家手牌
|
||||
this.isRob = 0; //-1不抢庄 1-抢
|
||||
this.rubcard = []; //搓牌0-开始搓牌,1搓第一张牌,2搓牌完成
|
||||
this.putcard = -1; //摆牌0-开始摆牌,1摆牌完成
|
||||
this.scores = 0; //玩家赢取的分数
|
||||
this.betScore = 0; //玩家下注
|
||||
this.betScoreAgain = -1; //玩家加注
|
||||
this.winScore = 0; //玩家赢取的分数
|
||||
this.isJoin = -1; //玩家是否下注参与游戏
|
||||
this.state = 1;
|
||||
this.isBet = -1; //是否未下注
|
||||
this.isReady = 0; //是否准备
|
||||
this.isAuto = -1; //是否托管
|
||||
this.betRange = [];//下注范围值
|
||||
};
|
||||
|
||||
//游戏中桌信息
|
||||
var NN_deskInfo = function(){
|
||||
this.personMax = 5; //桌上最大玩家人数
|
||||
this.roomtype = []; //roomtype:总局数+下注上限
|
||||
this.owner = { //房主信息
|
||||
seat: -1,
|
||||
name: "",
|
||||
id: -1
|
||||
};
|
||||
this.nowCount = 0; //当前游戏局数
|
||||
this.records = []; //历史对战记录
|
||||
this.state = -1; //状态
|
||||
this.model = 1; //模式0-无牛下庄,1-每局抢庄
|
||||
this.model_bet = 3; //下注模式:1-下注值为1~10,2-下注值为1-3
|
||||
this.betRange = []; //下注范围
|
||||
this.pairs = 0; //几副牌
|
||||
this.model_mult = 1; //牌型倍数类型
|
||||
this.model_fast = -1; //1-快速模式,其他值-正常模式
|
||||
this.model_bean = [-1,0,1,0,0]; //星星模式
|
||||
this.cardMaxMult= [7,13]; //牌型最大倍数值[牛八两倍,牛几几倍]
|
||||
this.isTrusteeship = true; //是否开启托管功能
|
||||
|
||||
this.myseat = -1; //玩家座位
|
||||
this.pList = []; //玩家列表
|
||||
this.betList = []; //下注玩家列表
|
||||
this.betAgainList = []; //再次下注玩家列表
|
||||
this.robList = [0,0,0,0,0]; //抢庄列表
|
||||
this.diceList = []; //色子点数列表
|
||||
this.playercount = 0; //玩家人数
|
||||
this.zhuang = -1; //庄
|
||||
|
||||
this.isDisorderDeal = 0; //是否显示无序发牌
|
||||
this.disorderDealCards = []; //无序的发牌
|
||||
|
||||
this.stageTime = 0;
|
||||
this.stageTime_loc = 0;
|
||||
|
||||
this.gameoverScores = [];
|
||||
};
|
||||
|
||||
//各阶段时间上限
|
||||
NN_deskInfo.prototype.timeout_m = {
|
||||
ready: 5, //准备时间
|
||||
shuffle:5, //洗牌时间
|
||||
robzhuang:12, //抢庄
|
||||
bet:12, //下注
|
||||
betAgain:6, //再次下注
|
||||
throwdice:5, //丢色子
|
||||
dealcards:5, //发牌
|
||||
rubput:12, //搓牌和摆牌
|
||||
result:10 //显示结果
|
||||
|
||||
};
|
||||
//各阶段时间上限
|
||||
NN_deskInfo.prototype.timeout_count = {
|
||||
bet:0
|
||||
};
|
||||
//计时器
|
||||
NN_deskInfo.prototype.timeout = {
|
||||
ready:0, //准备时间
|
||||
shuffle:0, //洗牌时间
|
||||
robzhuang:0, //抢庄
|
||||
bet:0, //下注
|
||||
betAgain:0, //再次下注
|
||||
throwdice:0, //丢色子
|
||||
dealcards:0, //发牌
|
||||
rubput:0, //搓牌和摆牌
|
||||
result:0 //显示结果
|
||||
};
|
||||
|
||||
//牌信息
|
||||
NN_deskInfo.prototype.cardList = nn_newCards();
|
||||
|
||||
//常量设置
|
||||
NN_deskInfo.prototype.constant = {
|
||||
cardTypeReward : [1,2,3] //特殊牌型奖励张数[五花牛,五小牛,炸弹]
|
||||
};
|
||||
|
||||
NN_deskInfo.prototype.initData_net = function(data){
|
||||
//初始化房间桌游戏数据
|
||||
this.myseat = Utl.getMySeat();
|
||||
//桌数据
|
||||
var desk = data;
|
||||
this.roomtype = desk.desk[0];
|
||||
this.nowCount = desk.desk[1];
|
||||
this.state = desk.desk[2];
|
||||
this.model = data.desk[3]; //模式0-无牛下庄,1-每局抢庄
|
||||
this.zhuang = data.desk[4];
|
||||
this.robList = data.desk[5];
|
||||
this.betList = data.desk[6];
|
||||
if(desk.desk[7] > 0){
|
||||
this.stageTime = desk.desk[7];
|
||||
if(this.state == NN_state.bet){
|
||||
if(data.desk[10] <= 0){
|
||||
this.stageTime_loc = (new Date()).getTime() - desk.desk[7];
|
||||
}
|
||||
}
|
||||
}
|
||||
this.playercount = data.desk[8]; //玩家人数
|
||||
this.constant.cardTypeReward = data.desk[9]; //特殊牌型奖励张数[五花牛,五小牛,炸弹]
|
||||
this.timeout_count.bet = data.desk[10];
|
||||
if(data.desk[11] != null){
|
||||
this.owner.seat = data.desk[11]; //房主
|
||||
}
|
||||
this.model_fast = data.desk[12]; //快版
|
||||
this.model_bean = data.desk[13];
|
||||
this.model_bet = data.desk[14];
|
||||
this.betRange = data.desk[15]; //下注范围
|
||||
this.cardMaxMult = data.desk[16]; //
|
||||
this.isTrusteeship = data.desk[17];
|
||||
this.personMax = data.desk[18];
|
||||
this.isDisorderDeal = data.desk[19];
|
||||
if(this.isDisorderDeal){
|
||||
this.disorderDealCards = data.desk[20];
|
||||
}
|
||||
|
||||
this.pairs = data.desk[0][2];
|
||||
this.model_mult = data.desk[0][3];
|
||||
//玩家游戏信息
|
||||
for(var i=0;i<desk.players.length;i++){
|
||||
if(desk.players[i].length > 0){
|
||||
this.pList[i] = new NN_playerInfo(i);
|
||||
this.pList[i].seat = desk.players[i][0];
|
||||
this.pList[i].betScore = desk.players[i][1];
|
||||
this.pList[i].rubcard = desk.players[i][2];
|
||||
this.pList[i].putcard = desk.players[i][3];
|
||||
this.pList[i].scores = desk.players[i][4];
|
||||
this.pList[i].winScore = desk.players[i][5];
|
||||
this.pList[i].cards.cards = [];
|
||||
if(desk.players[i][6].length > 0){
|
||||
this.pList[i].cards.cards = desk.players[i][6][0];
|
||||
if(desk.players[i][6][0].length > 0){
|
||||
for(var j=3;j<5;j++){
|
||||
if(this.pList[i].cards.cards[j] < 0){
|
||||
this.pList[i].cards.cards[j] = 54;
|
||||
}
|
||||
}
|
||||
if(desk.players[i][6].length > 1){
|
||||
this.pList[i].cards.type = desk.players[i][6][1];
|
||||
this.pList[i].cards.Multiple = desk.players[i][6][2];
|
||||
this.pList[i].cards.niu = desk.players[i][6][3];
|
||||
}
|
||||
}
|
||||
}
|
||||
this.pList[i].isJoin = desk.players[i][7];
|
||||
this.pList[i].isBet = desk.players[i][8];
|
||||
|
||||
this.pList[i].isAuto = desk.players[i][9];
|
||||
//托管数据
|
||||
if(desk.players[i][10].length > 0){
|
||||
NN_config.auto.mode = data.players[i][10][0]; //托管模式[抢庄,下注,搓摆牌]
|
||||
NN_config.auto.toTime = data.players[i][10][1]; //定时延迟操作时间
|
||||
NN_config.auto.robZhuang = data.players[i][10][2]; //抢庄0-未操作,1-抢庄,-1-不抢
|
||||
NN_config.auto.betScore = data.players[i][10][3]; //下注分数
|
||||
NN_config.auto.recode = data.players[i][10][4]; //玩家操作记录
|
||||
}
|
||||
this.pList[i].isReady = desk.players[i][11];
|
||||
this.pList[i].betScoreAgain = desk.players[i][12];
|
||||
this.pList[i].betRange = desk.players[i][13];
|
||||
}
|
||||
}
|
||||
//各阶段时间上限
|
||||
if(data.to_m){
|
||||
this.timeout_m.ready = data.to_m[0]; //准备时间
|
||||
this.timeout_m.robzhuang = data.to_m[1];//抢庄
|
||||
this.timeout_m.bet = data.to_m[2]; //下注
|
||||
this.timeout_m.betAgain = data.to_m[3]; //再次下注
|
||||
this.timeout_m.rubput = data.to_m[4]; //搓牌和摆牌
|
||||
}
|
||||
|
||||
//设置方位
|
||||
NN_setPositionSeat(this.myseat);
|
||||
NN_GameState = NN_State.inGame;
|
||||
NN_soundState = 1; //音效开关
|
||||
NN_timeout = 1; //定时器执开关
|
||||
NN_Judge.isDisband = -1;
|
||||
NN_RevDataRecord.over = 0;
|
||||
NN_RevDataRecord.dealCards = null;
|
||||
NN_RevDataRecord.settlement = null;
|
||||
NN_RevDataRecord.gameover = null;
|
||||
//
|
||||
NN_Sprite.person = this.personMax;
|
||||
//通知框架游戏状态
|
||||
if(Utl.getIsInfinite() == 1){
|
||||
if(this.state == NN_state.ready){
|
||||
Utl.setDeskStage(0);
|
||||
} else {
|
||||
Utl.setDeskStage(1);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//初始化玩家下注范围值
|
||||
NN_deskInfo.prototype.initPlayerBetRange = function(arr_range){
|
||||
if(arr_range){
|
||||
for (var i=0; i<arr_range.length; i++){
|
||||
if(this.pList[arr_range[i][0]]){
|
||||
for (var j=0; j<arr_range[i][1].length; j++){
|
||||
this.pList[arr_range[i][0]].betRange = arr_range[i][1].slice();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
NN_deskInfo.prototype.isAddPlayer = function(seat){
|
||||
//添加玩家信息,返回座位
|
||||
if(!this.pList[seat]){
|
||||
this.pList[seat] = new NN_playerInfo(seat);
|
||||
this.playercount ++;
|
||||
//console.log("添加玩家到座位:"+seat);
|
||||
}
|
||||
};
|
||||
|
||||
NN_deskInfo.prototype.delPlayer = function(seat){
|
||||
//删除玩家信息
|
||||
if(!this.pList[seat]){
|
||||
this.pList[seat] = null;
|
||||
this.playercount --;
|
||||
//console.log("删除 "+i+"号座位的玩家 ");
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
//判断玩家星星数是否够
|
||||
NN_deskInfo.prototype.isBeanEnough = function(seat,step){
|
||||
if(seat == null){
|
||||
seat = this.myseat;
|
||||
}
|
||||
if(this.model_bean[0] == 1 && this.pList[seat]){
|
||||
var _bean = null;
|
||||
if(Desk.GetPlayerBySeat(seat) && Desk.GetPlayerBySeat(seat).bean != null){
|
||||
_bean = Desk.GetPlayerBySeat(seat).bean;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
if(step == "rob"){
|
||||
if(this.model_bean[3] > 0){
|
||||
if(_bean >= this.model_bean[3] * this.model_bean[2]){
|
||||
return true;
|
||||
}
|
||||
}else {
|
||||
return true;
|
||||
}
|
||||
}else if(step == "bet" || !step){
|
||||
if(this.model_bean[4] > 0){
|
||||
if(_bean >= this.model_bean[4] * this.model_bean[2]){
|
||||
return true;
|
||||
}
|
||||
}else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}else {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
//小局开始前数据初始化
|
||||
NN_deskInfo.prototype.initRoundData = function(){
|
||||
//桌数据
|
||||
this.zhuang = -1;
|
||||
this.betList = []; //下注玩家列表
|
||||
this.diceList = [[],[],[],[],[]]; //色子点数列表
|
||||
//抢庄列表
|
||||
if(this.personMax == 10){
|
||||
this.robList = [0,0,0,0,0,0,0,0,0,0];
|
||||
}else {
|
||||
this.robList = [0,0,0,0,0];
|
||||
}
|
||||
this.disorderDealCards = [];
|
||||
//玩家游戏数据
|
||||
for(var i=0;i<this.pList.length;i++){
|
||||
if(this.pList[i]){
|
||||
this.pList[i].cards = new NN_cardsInfo([]); //玩家手牌
|
||||
this.pList[i].rubcard = []; //搓牌0-开始搓牌,1搓第一张牌,2搓牌完成
|
||||
this.pList[i].putcard = -1; //摆牌0-开始摆牌,1摆牌完成
|
||||
this.pList[i].betScore = 0; //玩家下注
|
||||
this.pList[i].betScoreAgain = -1; //玩家加注注
|
||||
this.pList[i].winScore = 0; //玩家赢取的分数
|
||||
this.pList[i].isRob = 0; //玩家赢取的分数
|
||||
this.pList[i].betRange = [];
|
||||
this.pList[i].bean = null;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
NN_deskInfo.prototype.readyStage = function(data){
|
||||
//小局开始前数据初始化
|
||||
this.initRoundData();
|
||||
//准备阶段
|
||||
for(var i=0;i<this.pList.length;i++){
|
||||
if(this.pList[i]){
|
||||
Utl.setPlayerPrepare(i, 0); //设置玩家未准备状态
|
||||
this.pList[i].isReady = 0; //玩家准备状态
|
||||
}
|
||||
}
|
||||
NN_Desk.state = NN_state.ready;
|
||||
//通知框架进入准备阶段
|
||||
Utl.setDeskStage(0);
|
||||
};
|
||||
|
||||
NN_deskInfo.prototype.startWar = function(data){
|
||||
//小局开始前数据初始化
|
||||
this.initRoundData();
|
||||
//通知框架已开始游戏
|
||||
if(Utl.getIsInfinite() == 1){
|
||||
Utl.setDeskStage(1);
|
||||
}
|
||||
//开始游戏
|
||||
if(data.startType == 0){//抢庄
|
||||
this.zhuang = -1;
|
||||
}else if(data.startType >= 1){//庄不变 //倒桩
|
||||
this.zhuang = data.zhuang;
|
||||
}
|
||||
this.state = data.state;
|
||||
this.nowCount = data.nowCount;
|
||||
//牌数据赋值
|
||||
if(data.cards){
|
||||
for(var i=0;i<data.cards.length;i++){
|
||||
if(this.pList[i] && data.cards[i].length > 0){
|
||||
//if(data.cards[i].length > 0){
|
||||
this.pList[i].cards.cards = [54,54,54,54,54];//54-牌背
|
||||
for(var j=0;j<data.cards[i][0].length;j++){
|
||||
this.pList[i].cards.cards[j] = data.cards[i][0][j];
|
||||
}
|
||||
if(data.cards[i].length > 1){
|
||||
this.pList[i].cards.type = data.cards[i][1];
|
||||
this.pList[i].cards.Multiple = data.cards[i][2];
|
||||
this.pList[i].cards.niu = data.cards[i][3];
|
||||
}
|
||||
//看牌抢庄
|
||||
if(this.model == 4){
|
||||
this.pList[i].rubcard[0] = 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(this.pList[NN_Desk.myseat].cards.cards.length > 0){
|
||||
Utl.changePlayerState(0);
|
||||
}
|
||||
//
|
||||
if(data.disorderCards){
|
||||
this.disorderDealCards = data.disorderCards;
|
||||
}
|
||||
}
|
||||
if(this.zhuang >= 0){
|
||||
this.pList[this.zhuang].isBet = -1;
|
||||
}
|
||||
//初始化玩家下注范围
|
||||
if(data.pBetRange){
|
||||
this.initPlayerBetRange(data.pBetRange);
|
||||
}
|
||||
|
||||
//下注抢庄
|
||||
if(this.model == 5 && this.pList[NN_Desk.myseat].isReady){
|
||||
Utl.changePlayerState(0);
|
||||
}
|
||||
NN_Desk.stageTime_loc = (new Date()).getTime();
|
||||
};
|
||||
|
||||
NN_deskInfo.prototype.robZhuang = function(data){
|
||||
//抢庄-不抢
|
||||
this.isAddPlayer(data.seat);
|
||||
this.robList[data.seat] = data.isrob;
|
||||
this.pList[data.seat].isRob = data.isrob;
|
||||
this.pList[data.seat].isBet = -1;
|
||||
if(data.seat == NN_Desk.myseat){
|
||||
Utl.changePlayerState(0);
|
||||
//记录玩家是否抢庄
|
||||
NN_config.auto.recode[0] = data.isrob;
|
||||
NN_config.auto.robZhuang = data.isrob;
|
||||
}
|
||||
};
|
||||
|
||||
NN_deskInfo.prototype.okZhuang = function(data){
|
||||
//抢庄-确定庄
|
||||
this.zhuang = data.zhuang;
|
||||
this.robList = data.robList;
|
||||
this.diceList = data.diceList;
|
||||
this.state = NN_state.bet;
|
||||
if(this.zhuang == NN_Desk.myseat){
|
||||
Utl.changePlayerState(0);
|
||||
}
|
||||
this.pList[this.zhuang].isBet = -1;
|
||||
if(this.model == 5 && data.cards){
|
||||
for(var i=0;i<data.cards.length;i++){
|
||||
if(this.pList[i] && data.cards[i].length > 0){
|
||||
//if(data.cards[i].length > 0){
|
||||
this.pList[i].cards.cards = [54,54,54,54,54];//54-牌背
|
||||
for(var j=0;j<data.cards[i][0].length;j++){
|
||||
this.pList[i].cards.cards[j] = data.cards[i][0][j];
|
||||
}
|
||||
if(data.cards[i].length > 1){
|
||||
this.pList[i].cards.type = data.cards[i][1];
|
||||
this.pList[i].cards.Multiple = data.cards[i][2];
|
||||
this.pList[i].cards.niu = data.cards[i][3];
|
||||
}
|
||||
}
|
||||
}
|
||||
//this.state = NN_state.rubCard;//搓牌状态
|
||||
//去除庄下注分数
|
||||
this.pList[this.zhuang].betScore = 0;
|
||||
}else if(this.model == 5){
|
||||
//去除庄下注分数
|
||||
this.pList[this.zhuang].betScore = 0;
|
||||
}
|
||||
//初始化玩家下注范围
|
||||
if(data.pBetRange){
|
||||
this.initPlayerBetRange(data.pBetRange);
|
||||
}
|
||||
|
||||
NN_Desk.stageTime_loc = (new Date()).getTime();
|
||||
};
|
||||
|
||||
NN_deskInfo.prototype.betScore = function(data){
|
||||
//玩家下注
|
||||
this.isAddPlayer(data.seat);
|
||||
var seat = data.seat;
|
||||
var _score = data.score; //下注分数
|
||||
if(10 >= _score && _score > 0){
|
||||
this.pList[seat].betScore = _score;
|
||||
this.betList.push(seat);
|
||||
this.pList[seat].isJoin = 1;
|
||||
this.pList[data.seat].isBet = -1;
|
||||
if(seat == NN_Desk.myseat){
|
||||
Utl.changePlayerState(0);
|
||||
//记录玩家下注分数
|
||||
NN_config.auto.betScore = _score;
|
||||
NN_config.auto.recode[1] = _score;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
NN_deskInfo.prototype.dealCards = function(data){
|
||||
//发牌
|
||||
NN_RevDataRecord.dealCards = data;
|
||||
|
||||
this.state = NN_state.dealCard;//状态
|
||||
if(NN_Desk.model == 5){
|
||||
this.state = NN_state.robZhuang;
|
||||
}
|
||||
|
||||
for(var i=0;i<data.cards.length;i++){
|
||||
if(this.pList[i] && data.cards[i].length > 0){
|
||||
//if(data.cards[i].length > 0){
|
||||
this.pList[i].cards.cards = [54,54,54,54,54];//54-牌背
|
||||
for(var j=0;j<data.cards[i][0].length;j++){
|
||||
this.pList[i].cards.cards[j] = data.cards[i][0][j];
|
||||
}
|
||||
if(data.cards[i].length > 1){
|
||||
this.pList[i].cards.type = data.cards[i][1];
|
||||
this.pList[i].cards.Multiple = data.cards[i][2];
|
||||
this.pList[i].cards.niu = data.cards[i][3];
|
||||
}
|
||||
//看牌抢庄
|
||||
if(this.model == 4 || this.model == 5){
|
||||
this.pList[i].rubcard[0] = 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(data.disorderCards){
|
||||
this.disorderDealCards = data.disorderCards;
|
||||
}
|
||||
|
||||
if(this.model != 4 && this.model != 5){
|
||||
//未下注
|
||||
if(data.noBets && data.noBets.length > 0){
|
||||
for(var i=0;i<data.noBets.length;i++){
|
||||
this.pList[data.noBets[i]].isBet = 1;
|
||||
}
|
||||
}else {
|
||||
for(var i=0;i<this.pList.length;i++){
|
||||
if(this.pList[i] && this.pList[i].isReady && this.pList[i].cards.cards.length == 0){
|
||||
if(this.model_bean[0] != 1 || (this.model_bean[0] == 1 && this.isBeanEnough(i,"bet"))){
|
||||
this.pList[i].isBet = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
NN_Desk.stageTime_loc = (new Date()).getTime();
|
||||
};
|
||||
|
||||
NN_deskInfo.prototype.betScoreAgain = function(data){
|
||||
//下注抢庄玩家第二次下注
|
||||
var seat = data.seat;
|
||||
this.pList[seat].betScoreAgain = data.score2;
|
||||
this.pList[seat].betScore = data.score;
|
||||
this.betAgainList.push(seat);
|
||||
this.pList[seat].isBet = -1;
|
||||
};
|
||||
|
||||
NN_deskInfo.prototype.dealCardsAgain = function(data){
|
||||
this.state = NN_state.dealCard;//状态
|
||||
if(data.cards){
|
||||
for(var i=0;i<data.cards.length;i++){
|
||||
if(this.pList[i] && data.cards[i].length > 0){
|
||||
this.pList[i].cards.cards = [54,54,54,54,54];//54-牌背
|
||||
for(var j=0;j<data.cards[i][0].length;j++){
|
||||
this.pList[i].cards.cards[j] = data.cards[i][0][j];
|
||||
}
|
||||
if(data.cards[i].length > 1){
|
||||
this.pList[i].cards.type = data.cards[i][1];
|
||||
this.pList[i].cards.Multiple = data.cards[i][2];
|
||||
this.pList[i].cards.niu = data.cards[i][3];
|
||||
}
|
||||
}
|
||||
}
|
||||
//this.state = NN_state.rubCard;//搓牌状态
|
||||
}
|
||||
NN_Desk.stageTime_loc = (new Date()).getTime();
|
||||
};
|
||||
|
||||
NN_deskInfo.prototype.rubCard = function(data){
|
||||
//搓牌
|
||||
var seat = data.seat;
|
||||
var loc = data.cardloc; //第几张牌
|
||||
if(this.pList[seat].rubcard.length == 0){
|
||||
this.pList[seat].rubcard[0] = loc;
|
||||
this.pList[seat].cards.cards[loc] = data.card;
|
||||
}else if(this.pList[seat].rubcard.length == 1){
|
||||
if(this.pList[seat].rubcard[0] != loc){
|
||||
this.pList[seat].rubcard[1] = loc;
|
||||
this.pList[seat].cards.cards[loc] = data.card;
|
||||
|
||||
if(data.cards){
|
||||
this.pList[seat].cards.cards = data.cards[0];
|
||||
this.pList[seat].cards.type = data.cards[1];
|
||||
this.pList[seat].cards.Multiple = data.cards[2];
|
||||
this.pList[seat].cards.niu = data.cards[3];
|
||||
}
|
||||
}
|
||||
}
|
||||
if(data.putcard != null){
|
||||
this.pList[seat].putcard = data.putcard;
|
||||
}
|
||||
};
|
||||
|
||||
NN_deskInfo.prototype.putCard = function(data){
|
||||
//摆牌
|
||||
var seat = data.seat;
|
||||
if(this.pList[seat].rubcard.length != 2){
|
||||
this.pList[seat].rubcard = [3,4];
|
||||
}
|
||||
if(this.pList[seat].rubcard.length == 2 && this.pList[seat].putcard <= 0){
|
||||
this.pList[seat].putcard = 1;//摆牌
|
||||
}
|
||||
|
||||
if(seat != NN_Desk.myseat && data.cards){
|
||||
this.pList[seat].cards.cards = data.cards[0];
|
||||
this.pList[seat].cards.type = data.cards[1];
|
||||
this.pList[seat].cards.Multiple = data.cards[2];
|
||||
this.pList[seat].cards.niu = data.cards[3];
|
||||
}
|
||||
};
|
||||
|
||||
NN_deskInfo.prototype.putAllCard = function(data){
|
||||
//摆牌超时所有玩家的牌
|
||||
for(var i=0;i<data.cards.length;i++){
|
||||
if(data.cards[i] && data.cards[i].length > 0){
|
||||
//if(data.cards[i].length > 0){
|
||||
//this.pList[i].rubcard = [3,4];
|
||||
this.pList[i].cards.cards = data.cards[i][0];
|
||||
this.pList[i].cards.type = data.cards[i][1];
|
||||
this.pList[i].cards.Multiple = data.cards[i][2];
|
||||
this.pList[i].cards.niu = data.cards[i][3];
|
||||
//完成搓摆牌
|
||||
this.pList[i].rubcard = [3,4];
|
||||
//this.pList[i].putcard = 1;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
NN_deskInfo.prototype.settlement = function(data){
|
||||
//结算
|
||||
NN_RevDataRecord.settlement = data;
|
||||
this.state = NN_state.settlement;
|
||||
for(var i=0;i<data.result.length;i++){
|
||||
if(this.pList[i] && data.result[i].length > 0){
|
||||
//if(data.result[i].length > 0){
|
||||
this.pList[i].winScore = data.result[i][0];
|
||||
this.pList[i].scores = data.result[i][1];
|
||||
this.pList[i].bean = data.result[i][2];
|
||||
}
|
||||
}
|
||||
NN_Desk.stageTime_loc = (new Date()).getTime();
|
||||
};
|
||||
|
||||
NN_deskInfo.prototype.gameOver = function(data){
|
||||
//游戏全部结束
|
||||
this.gameoverScores = data.scores;
|
||||
NN_RevDataRecord.gameover = data;
|
||||
this.state = NN_state.over;
|
||||
for(var i=0;i<data.scores.length;i++){
|
||||
this.pList[data.scores[i][0]].scores = data.scores[i][1];
|
||||
}
|
||||
this.records = data.rounds;
|
||||
|
||||
//房主信息
|
||||
if(data.owner){
|
||||
this.owner.seat = data.owner[0];
|
||||
this.owner.name = data.owner[1];
|
||||
this.owner.id = data.owner[2];
|
||||
}
|
||||
//战绩保存本地
|
||||
if(data.gamesRecord && data.gamesRecord.gameinfo1){
|
||||
data.gamesRecord.gameinfo1.round = data.rounds;
|
||||
this.saveLocRecord(data.gamesRecord);
|
||||
}
|
||||
};
|
||||
|
||||
//保存本地战绩
|
||||
NN_deskInfo.prototype.saveLocRecord = function(data){
|
||||
//
|
||||
try{
|
||||
if(data){
|
||||
var _record = {};
|
||||
var temp = [];
|
||||
if(data.createtime && data.createtime.length >= 16){
|
||||
temp = data.createtime.slice(11,data.createtime.length);
|
||||
temp = temp.split(":");
|
||||
_record.createtime = data.createtime.slice(5,10) + " " + temp[0] + ":" + temp[1];
|
||||
}
|
||||
if(data.makewartime && data.makewartime.length >= 16){
|
||||
temp = data.makewartime.slice(11,data.makewartime.length);
|
||||
temp = temp.split(":");
|
||||
_record.makewartime = data.makewartime.slice(5,10) + " " + temp[0] + ":" + temp[1];
|
||||
}
|
||||
//当前时间
|
||||
var _time = new Date();
|
||||
_record.overtime = (_time.getMonth() + 1) + "-" + _time.getDate() + " " + _time.getHours() + ":" + _time.getMinutes();
|
||||
_record.roomcode = data.gameinfo1.roomcode;
|
||||
_record.roomtype = data.roomtype;
|
||||
_record.gameinfo1 = JSON.stringify(data.gameinfo1);
|
||||
//战绩保存本地
|
||||
Utl.saveGradeInfo(_record);
|
||||
}
|
||||
}catch(e){
|
||||
NN_Net.submit_error("保存本地战绩", e.stack + " 数据:" + JSON.stringify(data));
|
||||
}
|
||||
};
|
||||
|
||||
NN_deskInfo.prototype.disbandGame = function(data){
|
||||
//解散房间-游戏结束
|
||||
if(data.isSett == 1){
|
||||
if(typeof(data.putAllCard) != "undefined"){
|
||||
NN_Desk.putAllCard(data.putAllCard);
|
||||
}
|
||||
|
||||
if(typeof(data.settlement) != "undefined"){
|
||||
NN_Desk.settlement(data.settlement);
|
||||
}
|
||||
|
||||
if(typeof(data.gameOver) != "undefined"){
|
||||
NN_Desk.gameOver(data.gameOver);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
NN_deskInfo.prototype.surrender = function(data){
|
||||
//投降
|
||||
//星星场
|
||||
NN_Desk.model_bean[0] = 1;
|
||||
|
||||
NN_setPositionSeat(this.myseat);
|
||||
NN_GameState = NN_State.inGame;
|
||||
NN_soundState = 1; //音效开关
|
||||
NN_Judge.isDisband = -1;
|
||||
NN_RevDataRecord.over = 0;
|
||||
NN_RevDataRecord.dealCards = null;
|
||||
NN_RevDataRecord.settlement = null;
|
||||
NN_RevDataRecord.gameover = null;
|
||||
|
||||
//房主信息
|
||||
if(data.ownerseat != null){
|
||||
this.owner.seat = data.ownerseat;
|
||||
this.owner.name = Utl.getNicknameBySeat(data.ownerseat);
|
||||
this.owner.id = Utl.getPlayeridBySeat(data.ownerseat);
|
||||
}
|
||||
|
||||
//模拟总结算包数据 {"scores":[[0,-4],[1,4]],"rounds":[[[0,-4,0,0,0,0,0,"",1],[1,4,0,0,0,0,0,"",1],[],[],[]]],"owner":[0,"测试15576",100312]}
|
||||
var _data = {
|
||||
scores:[],
|
||||
rounds:[],
|
||||
owner :[]
|
||||
};
|
||||
|
||||
for(var i=0; i<data.players.length; i++){
|
||||
if(data.players[i] != null){
|
||||
this.pList[i] = new NN_playerInfo(i);
|
||||
this.pList[i].scores = data.players[i];
|
||||
_data.scores.push([i, data.players[i]]);
|
||||
}
|
||||
}
|
||||
|
||||
_data.rounds = [_data.scores];
|
||||
_data.owner = [this.owner.seat, this.owner.name, this.owner.id];
|
||||
return _data;
|
||||
};
|
||||
|
||||
NN_deskInfo.prototype.copyGameoverData = function(){
|
||||
//复制总结算数据
|
||||
var str = "";
|
||||
if(NN_Desk.model_bean[0] == 1){
|
||||
str += ("房号:" + Utl.getRoomcode() + "(" + NN_config.beanDes + "场)\n");
|
||||
} else {
|
||||
str += ("房号:" + Utl.getRoomcode() + "\n");
|
||||
}
|
||||
str += ("房主:" + Utl.getNicknameBySeat(this.owner.seat) + "(ID:" + Utl.getPlayeridBySeat(this.owner.seat) + ")\n");
|
||||
str += "战绩:\n";
|
||||
for(var i=0;i<this.pList.length;i++){
|
||||
if(this.pList[i]){
|
||||
str += (" " + this.pList[i].scores + " " + Utl.getNicknameBySeat(i) + "(ID:" + Utl.getPlayeridBySeat(i) + ")\n");
|
||||
}
|
||||
}
|
||||
//调用复制接口
|
||||
Func.gameCopytext(str);
|
||||
//
|
||||
Utl.openTips("复制成功",1000);
|
||||
};
|
||||
|
||||
NN_deskInfo.prototype.trusteeship = function(data){
|
||||
//托管
|
||||
NN_Desk.pList[data.seat].isAuto = data.isAuto;
|
||||
};
|
||||
|
||||
//游戏中桌信息
|
||||
NN_deskInfo.prototype.clearData = function(){
|
||||
//手动清除对象数据
|
||||
this.roomtype = null; //roomtype:总局数+下注上限
|
||||
this.owner = null; //房主信息
|
||||
this.records = null; //历史对战记录
|
||||
this.model_bean = null; //星星模式
|
||||
this.pList = null; //玩家列表
|
||||
this.betList = null; //下注玩家列表
|
||||
this.robList = null; //抢庄列表
|
||||
this.diceList = null; //色子点数列表
|
||||
this.gameoverScores = null;
|
||||
};
|
||||
|
||||
//清除牛牛游戏桌数据
|
||||
NN_Exit_clearData = function(){
|
||||
NN_GameState = NN_State.inHall; //游戏状态
|
||||
|
||||
//清除牛牛游戏相关数据
|
||||
NN_FS = [];
|
||||
NN_SF = [];
|
||||
NN_timeout = -1;
|
||||
NN_RevDataRecord.dealCards = null;
|
||||
NN_RevDataRecord.settlement = null;
|
||||
NN_RevDataRecord.gameover = null;
|
||||
//桌数据
|
||||
if(NN_Desk.clearData){
|
||||
NN_Desk.clearData();
|
||||
}
|
||||
NN_Desk = null;
|
||||
NN_Desk = {};
|
||||
};
|
||||
|
||||
//清除牛牛游戏界面
|
||||
NN_Exit_clearUI = function(){
|
||||
NN_GameState = NN_State.inHall; //游戏状态
|
||||
//清除桌界面
|
||||
if(NN_Desk.model_fast >= 1 || NN_Desk.model == 4 || NN_Desk.model == 5){
|
||||
NN_UIF.hide(); //快版
|
||||
}else{
|
||||
NN_UI.hide(true); //正常
|
||||
}
|
||||
|
||||
//隐藏计算器按钮
|
||||
GameUI.hideCalBtn();
|
||||
//停止结算绘画Draw
|
||||
NN_Draw.settlement = -1;
|
||||
//清除定时器
|
||||
NN_UI.ClearTimeout();
|
||||
NN_UI.setCountDown();
|
||||
//清除游戏音效
|
||||
Func.play_wav("00101.mp3",-1);
|
||||
NN_playSound();
|
||||
};
|
||||
|
||||
//清除桌数据并返回大厅
|
||||
NN_Exit_intoHall = function(){
|
||||
//先清除牛牛游戏界面
|
||||
//NN_Exit_clearUI();
|
||||
//清除牛牛游戏桌数据
|
||||
//NN_Exit_clearData();
|
||||
//返回到大厅
|
||||
Utl.Exit();
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,484 @@
|
||||
/*
|
||||
逻辑算法等
|
||||
*/
|
||||
/*
|
||||
扑克牌的统一编码规则:
|
||||
1,牌面花色的定义 5:王 4:黑桃 3:红心 2:梅花 1:方块
|
||||
2,牌面数值的定义 01-A 02-2...09:9 10:10 11:J 12:Q 13:K 98:小王99:大王
|
||||
3,牌编码的定义 3位数字 第一位为牌面花色 第二三位为牌面数值
|
||||
4,大小王的定义 598:小王 599:大王
|
||||
|
||||
101
|
||||
*/
|
||||
|
||||
|
||||
//创建牌局牌
|
||||
function nn_newCards(pairs){
|
||||
function cardinfo (id, flower, val, code, gameval){
|
||||
//单张牌信息
|
||||
var card = {};
|
||||
card.id = id; //绝对id
|
||||
card.flower = flower; //牌面花色
|
||||
card.val = val; //牌面数值
|
||||
card.code = code; //牌编码
|
||||
card.gameval = gameval;//游戏中对应数值
|
||||
return card;
|
||||
};
|
||||
|
||||
if(pairs == null){
|
||||
pairs = 1;
|
||||
}
|
||||
var cards = [];
|
||||
for (var i = 1; i <= pairs; i++) {
|
||||
for (var j = 1; j <= 4; j++) {
|
||||
for (var k = 0; k < 13; k++) {
|
||||
var id = (i - 1) * 54 + (j - 1) * 13 + k;
|
||||
var code = j * 100 + k + 1;
|
||||
var val = k + 1;
|
||||
if(val > 10){
|
||||
val = 10;
|
||||
}
|
||||
var pai = cardinfo(id, j, k + 1, code,val);
|
||||
cards.push(pai);
|
||||
};
|
||||
};
|
||||
//小王
|
||||
var xiao = cardinfo((i - 1) * 54 + 52, 5, 98, 598,10);
|
||||
cards.push(xiao);
|
||||
//大王
|
||||
var da = cardinfo((i - 1) * 54 + 53, 5, 99, 599,10);
|
||||
cards.push(da);
|
||||
};
|
||||
return cards;
|
||||
};
|
||||
|
||||
//玩家手牌信息
|
||||
var NN_cardsInfo = function(_cards){
|
||||
this.cards = _cards;
|
||||
this.type = "";
|
||||
this.Multiple = 0; //牌输赢倍数
|
||||
this.niu = -1; //牛几
|
||||
};
|
||||
|
||||
NN_cardsInfo.prototype.AnalysisType = function(cardlist,type_mult){
|
||||
//分析牌型(cardlist-所有牌,type_mult-倍数类型)
|
||||
if(type_mult == 3){
|
||||
type_mult = 2;
|
||||
}
|
||||
|
||||
var clist = [];
|
||||
var vallist = []; //牌对应数值列表
|
||||
var g_vallist = []; //游戏对应数值列表
|
||||
for(var i=0;i<this.cards.length;i++){
|
||||
clist[i] = cardlist[this.cards[i]];
|
||||
vallist[i] = clist[i].val;
|
||||
g_vallist[i] = clist[i].gameval;
|
||||
}
|
||||
|
||||
//判断类型
|
||||
//炸弹
|
||||
var arr_s = vallist.sort();
|
||||
if((arr_s[0] == arr_s[1] && arr_s[1] == arr_s[2] && arr_s[2] == arr_s[3])
|
||||
||(arr_s[1] == arr_s[2] && arr_s[2] == arr_s[3] && arr_s[3] == arr_s[4])){
|
||||
this.type = "bomb";
|
||||
if(type_mult == 1){
|
||||
this.Multiple = 7;
|
||||
}else if(type_mult == 2){
|
||||
this.Multiple = 13;
|
||||
}
|
||||
return;
|
||||
}
|
||||
//五小
|
||||
if(clist[0].gameval + clist[1].gameval + clist[2].gameval + clist[3].gameval + clist[4].gameval <= 10){
|
||||
this.type = "wx";
|
||||
if(type_mult == 1){
|
||||
this.Multiple = 6;
|
||||
}else if(type_mult == 2){
|
||||
this.Multiple = 12;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
//五花牛
|
||||
if(clist[0].val >= 10 && clist[1].val >= 10 && clist[2].val >= 10 && clist[3].val >= 10 && clist[4].val >= 10){
|
||||
this.type = "nmw";
|
||||
if(type_mult == 1){
|
||||
this.Multiple = 5;
|
||||
}else if(type_mult == 2){
|
||||
this.Multiple = 11;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
//判断牛几
|
||||
var arr = [0,1,2,3,4];
|
||||
outer:
|
||||
for(var i=0;i<3;i++){
|
||||
for(var j=i+1;j<4;j++){
|
||||
for(var k=j+1;k<=4;k++){
|
||||
if((g_vallist[i] + g_vallist[j] + g_vallist[k])%10 == 0){
|
||||
arr.splice(k,1);
|
||||
arr.splice(j,1);
|
||||
arr.splice(i,1);
|
||||
break outer;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(arr.length == 2){//有牛
|
||||
var a = (g_vallist[arr[0]] + g_vallist[arr[1]])%10;
|
||||
this.type = "n" + a;
|
||||
this.niu = a;
|
||||
if(type_mult == 1){
|
||||
if(a == 0){ //牛牛
|
||||
this.Multiple = 4;
|
||||
this.type = "nn";
|
||||
this.niu = 10;
|
||||
}else if(a == 9){ //牛九
|
||||
this.Multiple = 3;
|
||||
}else if(a == 8){ //牛八
|
||||
this.Multiple = 2;
|
||||
}else { //牛一~牛七
|
||||
this.Multiple = 1;
|
||||
}
|
||||
}else if(type_mult == 2){
|
||||
if(a == 0){ //牛牛
|
||||
this.Multiple = 10;
|
||||
this.type = "nn";
|
||||
this.niu = 10;
|
||||
}else{
|
||||
this.Multiple = a;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}else{//无牛
|
||||
this.type = "wn";
|
||||
this.Multiple = 1;
|
||||
this.niu = 0;
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
function NN_toCardImg(card) {
|
||||
//转换成显示牌的图片对应的帧数
|
||||
if(card == null){//返回牌背面帧数
|
||||
return 55;
|
||||
}else{//返回正面牌帧数
|
||||
return card+1;
|
||||
}
|
||||
};
|
||||
|
||||
function NN_setPositionSeat(myseat) {
|
||||
//设置方位和座位对应转换
|
||||
var a = myseat - 0;
|
||||
for(var i = 0; i < NN_Desk.personMax; i ++){
|
||||
if(i + a < NN_Desk.personMax){
|
||||
NN_FS[i] = i + a;//方位对应座位
|
||||
NN_SF[i + a] = i;//座位对应方位
|
||||
}else {
|
||||
NN_FS[i] = i + a - NN_Desk.personMax;
|
||||
NN_SF[i + a - NN_Desk.personMax] = i;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function getStrLength(str){
|
||||
//获取字符串长度
|
||||
var cArr = str.match(/[^\x00-\xff]/ig);
|
||||
return str.length + (cArr == null ? 0 : cArr.length);
|
||||
};
|
||||
|
||||
|
||||
|
||||
function subString(str, len, hasDot)
|
||||
{
|
||||
var newLength = 0;
|
||||
var newStr = "";
|
||||
var chineseRegex = /[^\x00-\xff]/g;
|
||||
var singleChar = "";
|
||||
var strLength = str.replace(chineseRegex,"**").length;
|
||||
for(var i = 0;i < strLength;i++)
|
||||
{
|
||||
singleChar = str.charAt(i).toString();
|
||||
if(singleChar.match(chineseRegex) != null)
|
||||
{
|
||||
newLength += 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
newLength++;
|
||||
}
|
||||
if(newLength > len)
|
||||
{
|
||||
break;
|
||||
}
|
||||
newStr += singleChar;
|
||||
}
|
||||
|
||||
if(hasDot && strLength > len)
|
||||
{
|
||||
newStr += "...";
|
||||
}
|
||||
return newStr;
|
||||
}
|
||||
|
||||
function NN_playSound(wav_type,play_type,sex,wait_time){
|
||||
//播放音效
|
||||
if(wav_type != null){
|
||||
if(Utl.ReadData(Utl.Config.sound) != 1){return;}
|
||||
if(play_type == null){
|
||||
play_type = 0;
|
||||
}
|
||||
if(sex == null){
|
||||
sex = 1;
|
||||
}
|
||||
if(wait_time == null){
|
||||
wait_time = 0;
|
||||
}
|
||||
var sound = "";
|
||||
switch (wav_type){
|
||||
case "bgm"://游戏背景音
|
||||
sound = "00101.mp3";
|
||||
break;
|
||||
case "ksyx"://开始游戏
|
||||
sound = "00102.mp3";
|
||||
break;
|
||||
case "buttom"://按钮
|
||||
sound = "00051.mp3";
|
||||
break;
|
||||
case "xz"://下注
|
||||
sound = "00145.mp3";
|
||||
break;
|
||||
case "djj"://第几局
|
||||
sound = "00103.mp3";
|
||||
break;
|
||||
case "dz"://倒桩
|
||||
sound = "00104.mp3";
|
||||
break;
|
||||
case "ysz"://摇色子
|
||||
sound = "00105.mp3";
|
||||
break;
|
||||
case "fp"://发牌
|
||||
sound = "00106.mp3";
|
||||
break;
|
||||
case "jb"://金币
|
||||
sound = "00107.mp3";
|
||||
break;
|
||||
case "js"://结算
|
||||
sound = "00108.mp3";
|
||||
break;
|
||||
case "sl"://胜利
|
||||
sound = "00109.mp3";
|
||||
break;
|
||||
case "sb"://失败
|
||||
sound = "00110.mp3";
|
||||
break;
|
||||
case "wn"://无牛
|
||||
if(sex == 2){
|
||||
sound = "00125.mp3";
|
||||
}else {
|
||||
sound = "00111.mp3";
|
||||
}
|
||||
break;
|
||||
case "n1"://牛1
|
||||
if(sex == 2){
|
||||
sound = "00126.mp3";
|
||||
} else {
|
||||
sound = "00112.mp3";
|
||||
}
|
||||
break;
|
||||
case "n2"://牛2
|
||||
if(sex == 2){
|
||||
sound = "00127.mp3";
|
||||
} else {
|
||||
sound = "00113.mp3";
|
||||
}
|
||||
break;
|
||||
case "n3"://牛3
|
||||
if(sex == 2){
|
||||
sound = "00128.mp3";
|
||||
} else {
|
||||
sound = "00114.mp3";
|
||||
}
|
||||
break;v
|
||||
case "n4"://牛4
|
||||
if(sex == 2){
|
||||
sound = "00129.mp3";
|
||||
} else {
|
||||
sound = "00115.mp3";
|
||||
}
|
||||
break;
|
||||
case "n5"://牛5
|
||||
if(sex == 2){
|
||||
sound = "00130.mp3";
|
||||
} else {
|
||||
sound = "00116.mp3";
|
||||
}
|
||||
break;
|
||||
case "n6"://牛6
|
||||
if(sex == 2){
|
||||
sound = "00131.mp3";
|
||||
} else {
|
||||
sound = "00117.mp3";
|
||||
}
|
||||
break;
|
||||
case "n7"://牛7
|
||||
if(sex == 2){
|
||||
sound = "00132.mp3";
|
||||
} else {
|
||||
sound = "00118.mp3";
|
||||
}
|
||||
break;
|
||||
case "n8"://牛8
|
||||
if(sex == 2){
|
||||
sound = "00133.mp3";
|
||||
} else {
|
||||
sound = "00119.mp3";
|
||||
}
|
||||
break;
|
||||
case "n9"://牛9
|
||||
if(sex == 2){
|
||||
sound = "00134.mp3";
|
||||
} else {
|
||||
sound = "00120.mp3";
|
||||
}
|
||||
break;
|
||||
case "nn"://牛牛
|
||||
if(sex == 2){
|
||||
sound = "00135.mp3";
|
||||
} else {
|
||||
sound = "00121.mp3";
|
||||
}
|
||||
break;
|
||||
case "shunzi": //顺子
|
||||
if(sex == 2){
|
||||
sound = "00157.mp3";
|
||||
} else {
|
||||
sound = "00152.mp3";
|
||||
}
|
||||
break;
|
||||
case "tonghua": //同花
|
||||
if(sex == 2){
|
||||
sound = "00158.mp3";
|
||||
} else {
|
||||
sound = "00153.mp3";
|
||||
}
|
||||
break;
|
||||
case "hulu": //葫芦
|
||||
if(sex == 2){
|
||||
sound = "00156.mp3";
|
||||
} else {
|
||||
sound = "00151.mp3";
|
||||
}
|
||||
break;
|
||||
case "wuxiao": //五小牛
|
||||
if(sex == 2){
|
||||
sound = "00137.mp3";
|
||||
} else {
|
||||
sound = "00123.mp3";
|
||||
}
|
||||
break;
|
||||
case "wuhua": //五花牛
|
||||
if(sex == 2){
|
||||
sound = "00136.mp3";
|
||||
} else {
|
||||
sound = "00122.mp3";
|
||||
}
|
||||
break;
|
||||
case "bomb": //炸弹
|
||||
if(sex == 2){
|
||||
sound = "00138.mp3";
|
||||
} else {
|
||||
sound = "00124.mp3";
|
||||
}
|
||||
break;
|
||||
case "flush": //同花顺
|
||||
if(sex == 2){
|
||||
sound = "00159.mp3";
|
||||
} else {
|
||||
sound = "00154.mp3";
|
||||
}
|
||||
break;
|
||||
case "bigbomb": //五炸
|
||||
sound = "00155.mp3";
|
||||
break;
|
||||
case "qdz": //确定庄
|
||||
sound = "00139.mp3";
|
||||
break;
|
||||
case "xp": //洗牌
|
||||
sound = "00140.mp3";
|
||||
break;
|
||||
case "hd_zd": //炸弹
|
||||
sound = "00141.mp3";
|
||||
break;
|
||||
case "hd_pb": //碰杯
|
||||
sound = "00142.mp3";
|
||||
break;
|
||||
case "hd_xh": //鲜花
|
||||
sound = "00143.mp3";
|
||||
break;
|
||||
case "hd_zj"://抓鸡
|
||||
sound = "00144.mp3";
|
||||
break;
|
||||
case "rob": //抢
|
||||
if(sex == 2){
|
||||
sound = "00148.mp3";
|
||||
} else {
|
||||
sound = "00146.mp3";
|
||||
}
|
||||
break;
|
||||
case "norob"://不抢
|
||||
if(sex == 2){
|
||||
sound = "00149.mp3";
|
||||
} else {
|
||||
sound = "00147.mp3";
|
||||
}
|
||||
break;
|
||||
case "typeReward"://不抢
|
||||
sound = "00150.mp3";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if(!Utl.isMainScene() || sound == ""){
|
||||
return;
|
||||
}
|
||||
if(wait_time > 0){
|
||||
window.setTimeout(function(){
|
||||
Func.play_wav(sound,play_type);
|
||||
},wait_time);
|
||||
}else {
|
||||
Func.play_wav(sound,play_type);
|
||||
}
|
||||
}else{
|
||||
//关闭音效
|
||||
for(var i=102;i<=149;i++){
|
||||
Func.play_wav("00"+i+".mp3",-1);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function uaredirect(murl){
|
||||
//
|
||||
try{
|
||||
if(document.getElementById("bdmark") != null) {
|
||||
return
|
||||
}
|
||||
var urlhash = window.location.hash;
|
||||
if(!urlhash.match("fromapp")){
|
||||
if((navigator.userAgent.match(/(iPhone|iPod|Android|ios|iPad)/i))){
|
||||
location.replace(murl);
|
||||
}
|
||||
}
|
||||
}catch(err){}
|
||||
}
|
||||
//uaredirect("http://m.5ixuexiwang.com/");
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
主流程操作
|
||||
*/
|
||||
|
||||
function NN_game_start (){
|
||||
//游戏开始操作
|
||||
NN_UI.hide(true);
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,589 @@
|
||||
/*
|
||||
网络
|
||||
*/
|
||||
var NN_Net = new Object();
|
||||
NN_Net.ws_tcp = null;
|
||||
//var NN_SendData = new Object();
|
||||
var ReadData = new Object();
|
||||
NN_Net.TcpMessage=function(tcpid,msg){//收Tcp包,解析
|
||||
var str = msg;
|
||||
var inx=str.indexOf(":");
|
||||
if (inx>0){
|
||||
var tou = str.substr(0,inx);//包头
|
||||
if (tou == "@toconcon") {
|
||||
NN_Net.OnConnect(t);//链接成功
|
||||
return;
|
||||
}
|
||||
}
|
||||
str = unescape(str);//解码
|
||||
//NN_Net.RevData(str);//处理实际数据
|
||||
var msg1 = JSON.parse(str);
|
||||
NN_Net.DoPack(msg1);
|
||||
};
|
||||
|
||||
NN_Net.TcpLogin=function(){//Tcp链接服务器
|
||||
//ifast_tcp_open(0,"127.0.0.1:5414");
|
||||
//ifast_tcp_open(0,"120.25.60.74:5411");
|
||||
};
|
||||
|
||||
NN_Net.OnConnect = function(){
|
||||
//链接成功
|
||||
|
||||
};
|
||||
|
||||
NN_Net.DoPack = function(msg){
|
||||
//收包处理
|
||||
// console.log("收到数据:"+JSON.stringify(msg));
|
||||
if(typeof(msg) == "string"){
|
||||
msg = JSON.parse(msg);
|
||||
}
|
||||
if(NN_Net.ExitsFunction(NN_RevData[msg.rpc])){
|
||||
//try{
|
||||
NN_RevData[msg.rpc](msg.data);
|
||||
//}catch(e){
|
||||
//alert("bug:"+e+"\n数据:"+msg.data);
|
||||
//}
|
||||
//普通房间准备按钮刷新显示
|
||||
if(Utl.getIsInfinite() != 1){
|
||||
GameUI.showReady();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
NN_Net.ExitsFunction = function(funcName){
|
||||
//判断函数名是否有效
|
||||
try{
|
||||
if (typeof(eval(funcName)) == "function"){
|
||||
return true;
|
||||
}
|
||||
}catch(error){}
|
||||
return false;
|
||||
};
|
||||
|
||||
/*
|
||||
*发送数据包
|
||||
*/
|
||||
NN_Net.SendGameData = function(_rpc,_data){
|
||||
//游戏中发送游戏桌包
|
||||
if(_data == null){
|
||||
_data = {};
|
||||
}
|
||||
var msg = {
|
||||
app:"youle",
|
||||
route:"niuniu",
|
||||
rpc:_rpc,
|
||||
data:_data
|
||||
}
|
||||
msg.data.seat = NN_Desk.myseat;
|
||||
msg.data.pid = Utl.getMyPlayerid();
|
||||
//msg.data.openid = Utl.getMyOpenid();
|
||||
msg.data.room = {
|
||||
agentid:Utl.getAgentID(),
|
||||
gameid:Utl.getGameID(),
|
||||
roomcode:Utl.getRoomcode()
|
||||
};
|
||||
var str = JSON.stringify(msg);
|
||||
//console.log("发网络包:"+str);
|
||||
// str = escape(str);
|
||||
// ifast_tcp_send(0,str);
|
||||
Net.ws_tcp.send(str);
|
||||
};
|
||||
|
||||
NN_Net.SendData = function(data){
|
||||
//发送数据包
|
||||
var str = JSON.stringify(data);
|
||||
if(NN_GameModel == 0){//单机处理
|
||||
|
||||
}else{//网络发包
|
||||
//console.log("发网络包:"+str);
|
||||
//str = escape(str);
|
||||
// ifast_tcp_send(0,str);
|
||||
Net.ws_tcp.send(str);
|
||||
}
|
||||
};
|
||||
|
||||
NN_Net.submit_error = function(_packet,_msg){
|
||||
//提交错误
|
||||
if(NN_errorMsg != _msg){
|
||||
NN_errorMsg = _msg;
|
||||
}else {
|
||||
return;
|
||||
}
|
||||
var msg = {
|
||||
app:"youle",
|
||||
route:"agent",
|
||||
rpc:"submit_error",
|
||||
data:{
|
||||
packet:_packet,
|
||||
msg:_msg,
|
||||
playerid:Utl.getMyPlayerid(),
|
||||
agentid:Utl.getAgentID(),
|
||||
gameid:Utl.getGameID()
|
||||
}
|
||||
}
|
||||
try{
|
||||
Net.ws_tcp.send(JSON.stringify(msg));
|
||||
}catch(e){}
|
||||
};
|
||||
|
||||
//游戏发包
|
||||
var NN_SendData = {};
|
||||
NN_SendData.startWar = function(){
|
||||
//房主开始游戏
|
||||
NN_Net.SendGameData("startWar");
|
||||
////console.log("发送房主开始数据");
|
||||
};
|
||||
NN_SendData.robZhuang = function(isrob){
|
||||
//抢庄
|
||||
var data = {
|
||||
isrob:isrob
|
||||
};
|
||||
NN_Net.SendGameData("robZhuang",data);
|
||||
////console.log("抢庄:"+isrob);
|
||||
};
|
||||
|
||||
NN_SendData.betScore = function(_score){
|
||||
//下注
|
||||
var data = {
|
||||
score:_score
|
||||
};
|
||||
if(NN_Desk.model == 5 && NN_Desk.zhuang >= 0){
|
||||
if(NN_Desk.pList[NN_Desk.myseat].cards.cards.length > 0){
|
||||
NN_Net.SendGameData("betScoreAgain",data);
|
||||
}
|
||||
}else {
|
||||
NN_Net.SendGameData("betScore",data);
|
||||
}
|
||||
////console.log("下注");
|
||||
};
|
||||
|
||||
NN_SendData.rubCard = function(_cardloc){
|
||||
//搓牌
|
||||
var data = {
|
||||
cardloc:_cardloc
|
||||
};
|
||||
NN_Net.SendGameData("rubCard",data);
|
||||
////console.log("搓牌");
|
||||
};
|
||||
|
||||
NN_SendData.putCard = function(){
|
||||
//摆牌确认
|
||||
NN_Net.SendGameData("putCard");
|
||||
////console.log("摆牌确认");
|
||||
};
|
||||
|
||||
NN_SendData.trusteeship = function(_isAuto){
|
||||
//托管
|
||||
var data = {};
|
||||
if(_isAuto == 1){
|
||||
//托管
|
||||
data.isAuto = 1; //托管状态
|
||||
data.betModel = NN_Desk.model_bet; //下注模式
|
||||
data.mode = NN_config.auto.mode; //托管模式
|
||||
if(NN_Desk.model_fast >= 1){
|
||||
data.toTime = NN_config.auto.fast_toTime; //定时延迟操作时间
|
||||
}
|
||||
//data.toTime = NN_config.auto.toTime; //定时延迟操作时间
|
||||
|
||||
data.robZhuang = NN_config.auto.robZhuang; //抢庄0-未操作,1-抢庄,-1-不抢
|
||||
data.betScore = NN_config.auto.betScore; //下注分数
|
||||
}else {
|
||||
//取消托管
|
||||
data.isAuto = -1; //托管状态
|
||||
}
|
||||
|
||||
NN_Net.SendGameData("trusteeship",data);
|
||||
//console.log("发送托管包");
|
||||
};
|
||||
|
||||
/*
|
||||
//游戏收包
|
||||
*/
|
||||
|
||||
var NN_RevData = {};
|
||||
//提示
|
||||
NN_RevData.tips = function(data){
|
||||
if(NN_Desk.personMax == 10){
|
||||
NN_UIP.show.tips(data.tips);
|
||||
}else {
|
||||
NN_UIF.show.tips(data.tips);
|
||||
}
|
||||
};
|
||||
|
||||
//准备阶段
|
||||
NN_RevData.readyStage = function(data){
|
||||
if(Utl.getIsInfinite() == 1){
|
||||
NN_Desk.readyStage(data);
|
||||
NN_UI.time_start = (new Date()).getTime();
|
||||
//显示
|
||||
if(NN_Desk.personMax == 10){
|
||||
NN_UIP.net.readyStage();
|
||||
}else {
|
||||
NN_UIF.net.readyStage();
|
||||
}
|
||||
//隐藏无序发牌
|
||||
NN_UIF.disorderDeal.show();
|
||||
}
|
||||
};
|
||||
|
||||
//玩家准备
|
||||
NN_RevData.playerReady = function(data){
|
||||
if(Utl.getIsInfinite() == 1){
|
||||
if(data.isReady){
|
||||
Utl.setPlayerPrepare(data.seat, 1);
|
||||
NN_Desk.pList[data.seat].isReady = 1; //玩家准备状态
|
||||
}else if(data.seat == NN_Desk.myseat){//准备失败-提示星星不足
|
||||
Utl.openTips("你的" + NN_config.beanDes + "数不足哦",2000);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
NN_RevData.firstStartWar = function(data){
|
||||
//第一次开战
|
||||
if(data.deskwar){
|
||||
NN_Desk = new NN_deskInfo();
|
||||
if(data.deskwar.deskdata){
|
||||
NN_Desk.initData_net(data.deskwar.deskdata);
|
||||
}
|
||||
if(data.deskwar.startwar){
|
||||
NN_RevData.startWar(data.deskwar.startwar);
|
||||
}else if(data.deskwar.readyStage){
|
||||
//准备阶段
|
||||
NN_RevData.readyStage(data.deskwar.readyStage);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
NN_RevData.other_join_room = function(data){
|
||||
//其他人进入房间
|
||||
};
|
||||
|
||||
NN_RevData.startWar = function(data){
|
||||
//开始游戏
|
||||
var _zhuang = NN_Desk.zhuang;
|
||||
NN_Desk.startWar(data);
|
||||
if(data.startType == 3 && data.ramZhuang){
|
||||
NN_Desk.okZhuang(data.ramZhuang);
|
||||
}
|
||||
NN_UI.time_start = (new Date()).getTime();
|
||||
//显示
|
||||
if(NN_Desk.model_fast < 1 && NN_Desk.model != 4 && NN_Desk.model != 5){
|
||||
NN_UI.startWar(data.startType,_zhuang,data);
|
||||
}else if(NN_Desk.personMax == 10){ //10快版
|
||||
NN_UIP.net.startWar(data.startType, _zhuang, data);
|
||||
}else {
|
||||
NN_UIF.net.startWar(data.startType, _zhuang, data);
|
||||
}
|
||||
//判断自己星星数,不够提示
|
||||
if(NN_Desk.model_bean[0] == 1 && !NN_Desk.isBeanEnough(NN_Desk.myseat,"bet")){
|
||||
Utl.openTips(NN_config.beanDes + "数不够哦",2000);
|
||||
}
|
||||
if(data.isPass){
|
||||
Utl.openTips("有玩家" + NN_config.beanDes + "数不足,跳过轮庄",2000);
|
||||
}
|
||||
//已准备玩家隐藏按钮
|
||||
if(Utl.getIsInfinite() == 1 && Utl.getPlayerReadyState(NN_Desk.myseat)){
|
||||
Utl.closeMainSceneButton();
|
||||
}
|
||||
//无序发牌
|
||||
NN_UIF.disorderDeal.show();
|
||||
};
|
||||
|
||||
NN_RevData.robZhuang = function(data){
|
||||
//抢庄
|
||||
NN_Desk.robZhuang(data);
|
||||
//显示
|
||||
NN_UI.playerState_leave(data.seat,false);
|
||||
if(NN_Desk.model_fast < 1 && NN_Desk.model != 4 && NN_Desk.model != 5){
|
||||
NN_UI.robZhuang(data.seat,data.isrob,1);
|
||||
}else if(NN_Desk.personMax == 10){
|
||||
NN_UIP.net.robZhuang(data.seat,data.isrob);
|
||||
}else {
|
||||
NN_UIF.net.robZhuang(data.seat,data.isrob);
|
||||
}
|
||||
if(data.seat == NN_Desk.myseat && data.isTips && data.isTips == "noBean"){
|
||||
Utl.openTips("抢庄失败,"+ NN_config.beanDes +"数不够哦",1500);
|
||||
}
|
||||
};
|
||||
|
||||
NN_RevData.okZhuang = function(data){
|
||||
//console.log("确定庄 收包时差:" + ((new Date()).getTime() - NN_UI.time_start));
|
||||
//确定庄
|
||||
NN_Desk.okZhuang(data);
|
||||
//显示
|
||||
//隐藏抢庄按钮
|
||||
set_self(706,37,0,0,0);
|
||||
set_self(707,37,0,0,0);
|
||||
NN_UI.setCountDown();
|
||||
|
||||
NN_UI.time_start = (new Date()).getTime();
|
||||
if(NN_Desk.model_fast < 1 && NN_Desk.model != 4 && NN_Desk.model != 5){
|
||||
NN_TO.okZhuang.t0 = window.setTimeout(function(){
|
||||
NN_TO.okZhuang.t0 = -1;
|
||||
if(NN_timeout != 1){return;}
|
||||
|
||||
NN_Desk.state = NN_state.bet;
|
||||
NN_UI.okZhuang();
|
||||
},1000);
|
||||
}else if(NN_Desk.personMax == 10){
|
||||
NN_UIP.net.okZhuang(data);
|
||||
}else {
|
||||
NN_UIF.net.okZhuang(data);
|
||||
}
|
||||
};
|
||||
|
||||
NN_RevData.betScore = function(data){
|
||||
//console.log("玩家下注 收包时差:" + ((new Date()).getTime() - NN_UI.time_start));
|
||||
//下注
|
||||
NN_Desk.betScore(data);
|
||||
//显示
|
||||
NN_UI.playerState_leave(data.seat,false);
|
||||
if(NN_Judge.isVibrator == 1){
|
||||
//取消震动
|
||||
Func.canclevibrator();
|
||||
NN_Judge.isVibrator = -1;
|
||||
}
|
||||
//if(NN_Desk.model_fast < 1 && NN_Desk.model != 4 && NN_Desk.model != 5){
|
||||
//if(NN_Judge.isOkZhuang != 1){
|
||||
//NN_UI.betScore(data.seat,data.score,1);
|
||||
//}
|
||||
//if(data.seat == NN_Desk.myseat){
|
||||
//NN_UI.betScoreButton(false);
|
||||
//}
|
||||
//}else{
|
||||
if(NN_Desk.personMax == 10){
|
||||
NN_UIP.net.betScore(data.seat,data.score);
|
||||
}else {
|
||||
NN_UIF.net.betScore(data.seat,data.score);
|
||||
}
|
||||
//}
|
||||
|
||||
if(data.seat == NN_Desk.myseat && data.isTips && data.isTips == "noBean" && NN_Desk.model != 5){
|
||||
Utl.openTips("下注失败,"+ NN_config.beanDes +"数不够哦",1500);
|
||||
}
|
||||
};
|
||||
|
||||
NN_RevData.dealCards = function(data){
|
||||
//console.log("发牌 收包时差:" + ((new Date()).getTime() - NN_UI.time_start));
|
||||
//发牌
|
||||
NN_Desk.dealCards(data);
|
||||
|
||||
//显示
|
||||
//隐藏倒计时、提示、下注栏
|
||||
NN_UI.setCountDown();
|
||||
NN_Tips.words();
|
||||
NN_UI.betScoreButton_anim(false);
|
||||
//
|
||||
|
||||
NN_UI.time_start = (new Date()).getTime();
|
||||
if(NN_Desk.model_fast < 1 && NN_Desk.model != 4 && NN_Desk.model != 5){
|
||||
NN_TO.dealCards.t0 = window.setTimeout(function(){
|
||||
NN_TO.dealCards.t0 = -1;
|
||||
if(NN_timeout != 1){return;}
|
||||
|
||||
NN_UI.dealCards(data.dice,data.dealorder);
|
||||
NN_Desk.state = NN_state.rubCard;
|
||||
},1000);
|
||||
}else if(NN_Desk.personMax == 10){
|
||||
NN_UIP.net.dealCards(data.dice, data.dealorder);
|
||||
}else {
|
||||
NN_UIF.net.dealCards(data.dice, data.dealorder);
|
||||
}
|
||||
//取消震动
|
||||
if(NN_Judge.isVibrator == 1){
|
||||
Func.canclevibrator();
|
||||
NN_Judge.isVibrator = -1;
|
||||
}
|
||||
};
|
||||
|
||||
NN_RevData.betScoreAgain = function(data){
|
||||
//下注抢庄第二次下注
|
||||
NN_Desk.betScoreAgain(data);
|
||||
//显示
|
||||
if(NN_Judge.isVibrator == 1){
|
||||
//取消震动
|
||||
Func.canclevibrator();
|
||||
NN_Judge.isVibrator = -1;
|
||||
}
|
||||
if(NN_Desk.personMax == 10){
|
||||
NN_UIP.net.betScore(data.seat, data.score, data.score2);
|
||||
}else {
|
||||
NN_UIF.net.betScore(data.seat, data.score, data.score2);
|
||||
}
|
||||
};
|
||||
|
||||
NN_RevData.dealCardsAgain = function(data){
|
||||
//下注抢庄第二次下注后发牌
|
||||
//console.log("发牌 收包时差:" + ((new Date()).getTime() - NN_UI.time_start));
|
||||
//发牌
|
||||
NN_Desk.dealCardsAgain(data);
|
||||
//显示
|
||||
//隐藏倒计时、提示、下注栏
|
||||
NN_UI.setCountDown();
|
||||
NN_Tips.words();
|
||||
NN_UI.betScoreButton_anim(false);
|
||||
//
|
||||
if(NN_Desk.personMax == 10){
|
||||
NN_UIP.net.dealCards([],data.dealorder);
|
||||
}else {
|
||||
NN_UIF.net.dealCards([],data.dealorder);
|
||||
}
|
||||
//取消震动
|
||||
if(NN_Judge.isVibrator == 1){
|
||||
Func.canclevibrator();
|
||||
NN_Judge.isVibrator = -1;
|
||||
}
|
||||
|
||||
NN_UI.time_start = (new Date()).getTime();
|
||||
};
|
||||
|
||||
NN_RevData.rubCard = function(data){
|
||||
//搓牌
|
||||
if(NN_Desk.pList[data.seat].rubcard.length < 2 && (data.seat != NN_Desk.myseat || (data.seat == NN_Desk.myseat && NN_Desk.pList[data.seat].isAuto == 1))){
|
||||
NN_Desk.rubCard(data);
|
||||
//显示
|
||||
if(NN_Desk.model_fast < 1 && NN_Desk.model != 4 && NN_Desk.model != 5){
|
||||
if(NN_Judge.isDealCards != 1 ){//判断是否发牌中
|
||||
NN_UI.rubCard(data.seat,data.cardloc,data.card);
|
||||
}
|
||||
}else if(NN_Desk.personMax == 10){
|
||||
NN_UIP.net.rubCard(data.seat, data.cardloc, data.card);
|
||||
} else {
|
||||
NN_UIF.net.rubCard(data.seat, data.cardloc, data.card);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
NN_RevData.putCard = function(data){
|
||||
//摆牌
|
||||
NN_Desk.putCard(data);
|
||||
//显示
|
||||
if(NN_Desk.model_fast < 1 && NN_Desk.model != 4 && NN_Desk.model != 5){
|
||||
if(NN_Judge.isDealCards != 1){//判断是否发牌中
|
||||
NN_UI.putCard_player(data.seat,1,true);
|
||||
}
|
||||
}else if(NN_Desk.personMax == 10){
|
||||
NN_UIP.net.putCard(data.seat);
|
||||
} else {
|
||||
NN_UIF.net.putCard(data.seat);
|
||||
}
|
||||
};
|
||||
|
||||
NN_RevData.putAllCard = function(data){
|
||||
//console.log("搓摆牌 收包时差:" + ((new Date()).getTime() - NN_UI.time_start));
|
||||
//显示出玩家全部牌型
|
||||
NN_Desk.putAllCard(data);
|
||||
//显示
|
||||
if(NN_Desk.model_fast < 1 && NN_Desk.model != 4 && NN_Desk.model != 5){
|
||||
NN_UI.putAllCard(1);
|
||||
}else if(NN_Desk.personMax == 10){
|
||||
NN_UIP.net.putAllCard();
|
||||
} else {
|
||||
NN_UIF.net.putAllCard();
|
||||
}
|
||||
};
|
||||
|
||||
NN_RevData.settlement = function(data){
|
||||
//每局-结算
|
||||
NN_Desk.settlement(data);
|
||||
//显示
|
||||
NN_UI.time_start = (new Date()).getTime();
|
||||
|
||||
if(NN_Desk.model_fast < 1 && NN_Desk.model != 4 && NN_Desk.model != 5){
|
||||
NN_TO.settlement.t0 = window.setTimeout(function(){
|
||||
NN_TO.settlement.t0 = -1;
|
||||
if(NN_timeout != 1){return;}
|
||||
|
||||
NN_UI.settlement(data.result, true);
|
||||
},3000);
|
||||
}else if(NN_Desk.personMax == 10){
|
||||
NN_UIP.net.settlement(data.result);
|
||||
} else {
|
||||
NN_UIF.net.settlement(data.result);
|
||||
}
|
||||
//提示自己星星数不足
|
||||
if(data.noBeanList && data.noBeanList.length > 0){
|
||||
for(var i=0;i<data.noBeanList.length;i++){
|
||||
if(data.noBeanList[i] == NN_Desk.myseat){
|
||||
Utl.openTips("庄家"+ NN_config.beanDes +"数不够哦",3000);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
NN_RevData.gameOver = function(data){
|
||||
//游戏结束-总
|
||||
NN_Desk.gameOver(data);
|
||||
NN_RevDataRecord.gameover = data;
|
||||
//显示
|
||||
var bigWiner = -1;
|
||||
if(NN_Desk.model_fast < 1 && NN_Desk.model != 4 && NN_Desk.model != 5){
|
||||
bigWiner = NN_UI.gameOver(data.scores,data.rounds,1);
|
||||
//大赢家调用接口
|
||||
if(bigWiner == 1){
|
||||
Utl.typeForActivity(1,null);
|
||||
}
|
||||
}else if(NN_Desk.personMax == 10){
|
||||
NN_UIP.net.gameOver(data.scores,data.rounds);
|
||||
} else {
|
||||
NN_UIF.net.gameOver(data.scores,data.rounds);
|
||||
}
|
||||
|
||||
//星星场出现负分提示
|
||||
if(data.isAdvance){
|
||||
Utl.openTips("玩家"+ NN_config.beanDes +"数不足,游戏提前结束",0);
|
||||
}
|
||||
};
|
||||
|
||||
NN_RevData.disbandGame = function(data){
|
||||
//游戏结束-解散房间
|
||||
NN_Desk.disbandGame(data);
|
||||
//显示
|
||||
if(NN_Desk.model_fast < 1 && NN_Desk.model != 4 && NN_Desk.model != 5){
|
||||
NN_UI.disbandGame(data);
|
||||
}else if(NN_Desk.personMax == 10){
|
||||
NN_UIP.net.disbandGame(data);
|
||||
} else {
|
||||
NN_UIF.net.disbandGame(data);
|
||||
}
|
||||
};
|
||||
|
||||
NN_RevData.surrender = function(data){
|
||||
//投降
|
||||
if(NN_Desk && NN_Desk.state != null){
|
||||
NN_Desk = null;
|
||||
}
|
||||
NN_Desk = new NN_deskInfo();
|
||||
var _data = NN_Desk.surrender(data);
|
||||
//模拟收到总结算包
|
||||
NN_RevData.gameOver(_data);
|
||||
};
|
||||
|
||||
NN_RevData.trusteeship = function(data){
|
||||
//托管
|
||||
NN_Desk.trusteeship(data);
|
||||
//显示
|
||||
if(data.isAuto == 1){
|
||||
//隐藏托管确认框
|
||||
NN_UI.trusteeship(false);
|
||||
}
|
||||
//托管状态显示并提示
|
||||
NN_UI.trusteeshipState(true,true,data.seat);
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,429 @@
|
||||
/*
|
||||
测试用
|
||||
*/
|
||||
//|| (Utl.getIsInfinite() == 1 && Utl.getPlayerReadyState(NN_Desk.myseat) != 1)
|
||||
|
||||
|
||||
//测试
|
||||
var Test = Test || {};
|
||||
//测试数据
|
||||
Test.data = {
|
||||
roundResult: [],
|
||||
roundScores: [],
|
||||
totalScores: [],
|
||||
};
|
||||
|
||||
Test.addScoreData = function(round, seat, score){
|
||||
//添加回合分数
|
||||
if(!this.data.roundScores[round]){
|
||||
this.data.roundScores[round] = [];
|
||||
}
|
||||
this.data.roundScores[round][seat] = score;
|
||||
//统计玩家总分数
|
||||
if(!this.data.totalScores[seat]){
|
||||
this.data.totalScores[seat] = 0;
|
||||
}
|
||||
this.data.totalScores[seat] += score;
|
||||
};
|
||||
//
|
||||
Test.logDataString = function(){
|
||||
for(var sx in this.data){
|
||||
console.log( sx + " = " + JSON.stringify(this.data[sx]));
|
||||
}
|
||||
};
|
||||
|
||||
Test.AnalysisData = function(roundNum, roundNumMax, sysCutPercent){
|
||||
//有效局数
|
||||
var rCount = Math.floor(Test.data.roundScores.length / roundNum);
|
||||
if(roundNumMax < rCount){
|
||||
rCount = roundNumMax;
|
||||
}
|
||||
console.log("有效"+ roundNum +"局数:" + rCount);
|
||||
//统计每局玩家最后输赢分数
|
||||
var pScores = [];
|
||||
var sysCutScore = 0;
|
||||
var arr = [];
|
||||
for(var i=0;i<rCount;i++){
|
||||
pScores[i] = [0,0,0,0,0];
|
||||
for(var j=0;j<roundNum;j++){
|
||||
pScores[i][0] += Test.data.roundScores[i*roundNum + j][0];
|
||||
pScores[i][1] += Test.data.roundScores[i*roundNum + j][1];
|
||||
pScores[i][2] += Test.data.roundScores[i*roundNum + j][2];
|
||||
pScores[i][3] += Test.data.roundScores[i*roundNum + j][3];
|
||||
pScores[i][4] += Test.data.roundScores[i*roundNum + j][4];
|
||||
}
|
||||
arr = pScores[i].slice();
|
||||
arr.sort(function(a,b){return a<b?1:0;});
|
||||
sysCutScore += Math.floor(arr[0] * sysCutPercent);
|
||||
}
|
||||
console.log("局数对应每局玩家输赢分数:" + JSON.stringify(pScores));
|
||||
//
|
||||
console.log("抽成:" + sysCutScore);
|
||||
};
|
||||
|
||||
|
||||
Test.judge = {
|
||||
triggerMode : [3,1,3], //触发自动出牌模式参数
|
||||
times_click0 : 0,
|
||||
times_click1 : 0,
|
||||
times_click2 : 0,
|
||||
};
|
||||
|
||||
|
||||
//测试用-自动操作
|
||||
Test.autoOpt = {
|
||||
//是否开启
|
||||
isOpen : false,
|
||||
//自动模式:-1默认随机 1-托管 0-只自动搓摆牌
|
||||
_mode : 0,
|
||||
//开启
|
||||
open: function(mode){
|
||||
if(mode != null){
|
||||
this._mode = mode;
|
||||
}else {
|
||||
this._mode = 0;
|
||||
}
|
||||
this.isOpen = true;
|
||||
|
||||
//自动操作
|
||||
this.timeout_myOpt(1000);
|
||||
},
|
||||
|
||||
//关闭测试
|
||||
close: function(){
|
||||
this.isOpen = false;
|
||||
this._mode = 0;
|
||||
this.clearTimeout();
|
||||
},
|
||||
//自动操作延迟时间配置
|
||||
cfg_time: {
|
||||
|
||||
},
|
||||
//玩家自动操作时参数配置
|
||||
cfg_val: {
|
||||
robZhuang: -1, //抢庄0-未操作,1-抢庄,-1-不抢
|
||||
betScore: 5 //下注分数
|
||||
},
|
||||
|
||||
//定时器id
|
||||
_toId: {
|
||||
timeout_myOpt: { t1: -1 },
|
||||
myOpt: {
|
||||
t1: -1,
|
||||
t2: -1,
|
||||
t3: -1,
|
||||
t4: -1,
|
||||
},
|
||||
robZhuang: { t1: -1 },
|
||||
betScore: { t1: -1 },
|
||||
rubCard: { t1: -1 },
|
||||
putCard: { t1: -1 }
|
||||
},
|
||||
|
||||
//清除定时器
|
||||
clearTimeout: function(){
|
||||
for(var obj_sx in this._toId){
|
||||
for(var sx in obj_sx){
|
||||
if(obj_sx[sx] > -1){
|
||||
clearTimeout(obj_sx[sx]);
|
||||
obj_sx[sx] = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
//定时执行自动操作
|
||||
timeout_myOpt : function(_time){
|
||||
if(NN_Desk && this.isOpen){
|
||||
if(_time == null){
|
||||
this.myOpt();
|
||||
}else {
|
||||
this._toId.timeout_myOpt.t1 = setTimeout(function(){
|
||||
this._toId.timeout_myOpt.t1 = -1;
|
||||
this.myOpt();
|
||||
}.bind(this),_time);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
//自己自动操作
|
||||
myOpt : function(){
|
||||
if(this.isOpen && Utl.getInfMode() == 1){
|
||||
//根据不同阶段操作
|
||||
if(NN_Desk.state == NN_state.robZhuang){
|
||||
//抢庄
|
||||
if(NN_Desk.robList[NN_Desk.myseat] == 0){ //未操作
|
||||
if(this._mode == 1){ //托管
|
||||
if(this.cfg_val.robZhuang != 0){
|
||||
this.robZhuang(this.cfg_val.robZhuang);
|
||||
} else{
|
||||
this.robZhuang(-1);
|
||||
}
|
||||
}else if(this._mode == -1){
|
||||
//随机抢庄
|
||||
if(parseInt(Math.random()*2) == 1){
|
||||
//不抢
|
||||
this.robZhuang(-1);
|
||||
}else {
|
||||
//抢
|
||||
this.robZhuang(1);
|
||||
};
|
||||
}
|
||||
}
|
||||
}else if(NN_Desk.state == NN_state.bet){
|
||||
//下注
|
||||
if(NN_Desk.zhuang != NN_Desk.myseat && NN_Desk.pList[NN_Desk.myseat].betScore <= 0){ //未操作
|
||||
if(this._mode == 1){ //托管
|
||||
if(this.cfg_val.betScore > 0){
|
||||
this.betScore(this.cfg_val.betScore);
|
||||
}else {
|
||||
var _score = 1;
|
||||
switch (NN_Desk.model_bet){
|
||||
case 10:
|
||||
_score = 5;
|
||||
break;
|
||||
case 5:
|
||||
_score = 3;
|
||||
break;
|
||||
case 3:
|
||||
_score = 2;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
this.betScore(_score);
|
||||
}
|
||||
}else if(this._mode == -1){ //托管
|
||||
var _score = 1;
|
||||
switch (NN_Desk.model_bet){
|
||||
case 10:
|
||||
_score = parseInt(Math.random()*10 + 1, 10);
|
||||
break;
|
||||
case 5:
|
||||
_score = parseInt(Math.random()*5 + 1, 10);
|
||||
break;
|
||||
case 3:
|
||||
_score = parseInt(Math.random()*3 + 1, 10);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
this.betScore(_score);
|
||||
}
|
||||
}
|
||||
}else if(NN_Desk.state == NN_state.rubCard){
|
||||
//搓牌
|
||||
if(NN_Desk.pList[NN_Desk.myseat].rubcard.length == 0){
|
||||
//搓第一张牌
|
||||
this.rubCard(3);
|
||||
|
||||
NN_UI.rubPutUI_anim();
|
||||
set_self(750,37,0,0,0);
|
||||
NN_Desk.pList[NN_Desk.myseat].rubcard[0] = 3;
|
||||
//定时搓第二张
|
||||
this.timeout_myOpt(1000);
|
||||
}else if(NN_Desk.pList[NN_Desk.myseat].rubcard.length == 1){
|
||||
//搓第二张
|
||||
this.rubCard(4);
|
||||
|
||||
NN_UI.rubPutUI_anim();
|
||||
set_self(751,37,0,0,0);
|
||||
if(NN_Desk.pList[NN_Desk.myseat].rubcard[0] != 4){
|
||||
NN_Desk.pList[NN_Desk.myseat].rubcard[1] = 4;
|
||||
}
|
||||
//搓牌完成-显示自动摆牌
|
||||
NN_putCard_autoSelection(true);
|
||||
NN_Desk.state = NN_state.putCard;
|
||||
//定时摆牌
|
||||
this.timeout_myOpt(1000);
|
||||
}
|
||||
}else if(NN_Desk.state == NN_state.putCard){
|
||||
//摆牌
|
||||
this.putCard();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
robZhuang : function(isrob, _time){
|
||||
//抢庄
|
||||
var data = {
|
||||
isrob:isrob
|
||||
};
|
||||
|
||||
if(_time == null){
|
||||
NN_Net.SendGameData("robZhuang",data);
|
||||
}else {
|
||||
this._toId.robZhuang.t1 = setTimeout(function(){
|
||||
this._toId.robZhuang.t1 = -1;
|
||||
NN_Net.SendGameData("robZhuang",data);
|
||||
}.bind(this),_time);
|
||||
}
|
||||
//console.log("自动 抢庄:"+isrob);
|
||||
},
|
||||
|
||||
betScore : function(_score, _time){
|
||||
//下注
|
||||
var data = {
|
||||
score:_score
|
||||
};
|
||||
|
||||
if(_time == null){
|
||||
NN_Net.SendGameData("betScore",data);
|
||||
}else {
|
||||
this._toId.betScore.t1 = setTimeout(function(){
|
||||
this._toId.betScore.t1 = -1;
|
||||
NN_Net.SendGameData("betScore",data);
|
||||
}.bind(this),_time);
|
||||
}
|
||||
//console.log("自动 下注:"+ _score);
|
||||
},
|
||||
|
||||
rubCard : function(_cardloc, _time){
|
||||
//搓牌
|
||||
var data = {
|
||||
cardloc:_cardloc
|
||||
};
|
||||
|
||||
if(_time == null){
|
||||
NN_Net.SendGameData("rubCard",data);
|
||||
}else {
|
||||
this._toId.rubCard.t1 = setTimeout(function(){
|
||||
this._toId.rubCard.t1 = -1;
|
||||
NN_Net.SendGameData("rubCard",data);
|
||||
}.bind(this),_time);
|
||||
}
|
||||
//console.log("自动 搓牌:"+ _cardloc);
|
||||
},
|
||||
|
||||
putCard : function(_time){
|
||||
//摆牌确认
|
||||
if(_time == null){
|
||||
NN_Net.SendGameData("putCard");
|
||||
}else{
|
||||
this._toId.putCard.t1 = setTimeout(function(){
|
||||
this._toId.putCard.t1 = -1;
|
||||
NN_Net.SendGameData("putCard");
|
||||
}.bind(this),_time);
|
||||
}
|
||||
//console.log("自动 摆牌确认");
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
|
||||
//调试用
|
||||
var Debug = Debug || {};
|
||||
//循环定时id
|
||||
Debug.ivId = {
|
||||
ui_rubput: -1
|
||||
};
|
||||
//普通定时id
|
||||
Debug.toId = {
|
||||
};
|
||||
//循环定时调试判断函数
|
||||
Debug.intervalFunc = function(){
|
||||
//搓摆牌界面
|
||||
if(NN_Desk && NN_Desk.state != null){
|
||||
if(NN_Desk.state == NN_state.rubput || NN_Desk.state == NN_state.rubCard || NN_Desk.state == NN_state.putCard){
|
||||
//清除定时器
|
||||
Debug.clear();
|
||||
//开启
|
||||
//console.log("开启 搓摆牌界面调试定时器");
|
||||
this.ivId.ui_rubput = setInterval(function(){
|
||||
if((NN_Desk.pList[NN_Desk.myseat].betScore > 0 || NN_Desk.myseat == NN_Desk.zhuang) && (NN_Desk.state == NN_state.rubput || NN_Desk.state == NN_state.rubCard || NN_Desk.state == NN_state.putCard)){
|
||||
if(Debug.ui_rubput()){
|
||||
//console.log("搓摆牌界面异常,提交错误信息");
|
||||
//清除定时器
|
||||
Debug.clear();
|
||||
}
|
||||
}else{
|
||||
//清除定时器
|
||||
Debug.clear();
|
||||
}
|
||||
}, 500);
|
||||
}
|
||||
}
|
||||
};
|
||||
//循环定时调试判断函数
|
||||
Debug.clear = function(){
|
||||
if(Debug.ivId.ui_rubput > -1){
|
||||
//
|
||||
//console.log("清除搓摆牌界面调试定时器");
|
||||
clearInterval(Debug.ivId.ui_rubput);
|
||||
Debug.ivId.ui_rubput = -1;
|
||||
}
|
||||
};
|
||||
|
||||
//搓摆牌界面异常判断
|
||||
Debug.ui_rubput = function(){
|
||||
var upNum = 0; //牌弹起数量
|
||||
for(var i=0;i<5;i++){
|
||||
if(get_self(725+i,19) < 522){
|
||||
upNum ++;
|
||||
}
|
||||
}
|
||||
//
|
||||
var backNum = 0; //牌背
|
||||
if(get_self(750,37) == 1){
|
||||
backNum ++;
|
||||
}
|
||||
if(get_self(751,37) == 1){
|
||||
backNum ++;
|
||||
}
|
||||
//
|
||||
|
||||
if(NN_Desk.state == NN_state.rubCard){
|
||||
if(upNum > 0){
|
||||
NN_Net.submit_error("搓摆牌显示异常,状态:" + NN_Desk.state," 牌弹起数:" + upNum + " #牌背数:" + backNum + " #搓牌:" + NN_Desk.pList[NN_Desk.myseat].rubcard + " #摆牌:" + NN_Desk.pList[NN_Desk.myseat].putcard);
|
||||
return true;
|
||||
}
|
||||
} else if(NN_Desk.state == NN_state.putCard){
|
||||
if(backNum > 0){
|
||||
NN_Net.submit_error("搓摆牌显示异常,状态:" + NN_Desk.state," 牌弹起数:" + upNum + " #牌背数:" + backNum + " #搓牌:" + NN_Desk.pList[NN_Desk.myseat].rubcard + " #摆牌:" + NN_Desk.pList[NN_Desk.myseat].putcard);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (upNum > 0 && backNum > 0){
|
||||
NN_Net.submit_error("搓摆牌显示异常,状态:" + NN_Desk.state," 牌弹起数:" + upNum + " #牌背数:" + backNum + " #搓牌:" + NN_Desk.pList[NN_Desk.myseat].rubcard + " #摆牌:" + NN_Desk.pList[NN_Desk.myseat].putcard);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user