384 lines
11 KiB
JavaScript
384 lines
11 KiB
JavaScript
var mod_doudizhu= mod_doudizhu || cls_mod.new("mod_doudizhu", "doudizhu", youle_app);
|
|
////////////////////////////////
|
|
min_loadJsFile("games7/Doudizhu/class.import.js", function(){
|
|
min_loadJsFile("games7/Doudizhu/class.export.js", function(){
|
|
min_loadJsFile("games7/Doudizhu/class.aset2.ddz.js", function(){
|
|
min_loadJsFile("games7/Doudizhu/class.card2.ddz.js", function(){
|
|
min_loadJsFile("games7/Doudizhu/desk.ddz.js", function(){
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
min_loadJsFile("games7/Doudizhu/arith/arith.ddz.playcards.js", function(){
|
|
min_loadJsFile("games7/Doudizhu/arith/arith.ddz.score.js", function(){
|
|
min_loadJsFile("games7/Doudizhu/send/ddz.send.js", function(){
|
|
min_loadJsFile("games7/Doudizhu/save/ddz.save.js", function(){
|
|
min_loadJsFile("games7/Doudizhu/arith/arith.ddz.robot.js", function(){
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
min_loadJsFile("games7/Doudizhu/method/method.ddz.enough.js", function(){
|
|
min_loadJsFile("games7/Doudizhu/method/method.ddz.time.js", function(){
|
|
});
|
|
});
|
|
min_loadJsFile("games7/Doudizhu/process/process.ddz.begin.js", function(){
|
|
min_loadJsFile("games7/Doudizhu/process/process.ddz.dealcards.js", function(){
|
|
min_loadJsFile("games7/Doudizhu/process/process.ddz.end.js", function(){
|
|
min_loadJsFile("games7/Doudizhu/process/process.ddz.lootbanket.js", function(){
|
|
min_loadJsFile("games7/Doudizhu/process/process.ddz.playcards.js", function(){
|
|
min_loadJsFile("games7/Doudizhu/process/process.ddz.help_play.js", function(){
|
|
min_loadJsFile("games7/Doudizhu/process/process.ddz.control.js", function(){
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
mod_doudizhu.import = null;
|
|
mod_doudizhu.export = null;
|
|
mod_doudizhu.zidong = 1;
|
|
mod_doudizhu.sudu = 1;
|
|
//抢庄
|
|
mod_doudizhu.lootbanket = function(pack){
|
|
var agentid = pack.data.agentid;
|
|
var playerid = parseInt(pack.data.playerid);
|
|
var gameid = pack.data.gameid;
|
|
var roomcode = parseInt(pack.data.roomcode);
|
|
var seat = parseInt(pack.data.seat);
|
|
var score = pack.data.score;
|
|
var o_room = mod_doudizhu.import.check_player(agentid, gameid, roomcode, seat, playerid, pack.conmode, pack.fromid);
|
|
if (!o_room){
|
|
return;
|
|
}
|
|
//通过房间找牌桌
|
|
var o_desk = o_room.o_desk;
|
|
if (!o_desk){
|
|
//没找到牌桌
|
|
return;
|
|
}
|
|
//找到牌桌后一定要调用牌桌的.method.save_receivepack方法
|
|
o_desk.debug.save_receivepack(pack, seat, playerid);
|
|
if(o_room.battlestate!=1){ ////不是开战
|
|
return;
|
|
}
|
|
//获取当前小局对象
|
|
var o_aset=o_desk.method.CurrAset();
|
|
if(o_aset.playerlist[3][seat]!=-1){//抢了庄
|
|
return ;
|
|
}
|
|
if(o_aset.stage!=0){ //是不是抢庄阶段
|
|
return ;
|
|
}
|
|
if(score<o_aset.down_score[0]&&score>0){ //
|
|
return ;
|
|
}
|
|
clearTimeout(o_desk.timer.ds[1]);
|
|
//
|
|
o_desk.flow.lootbanket(seat,score);
|
|
}
|
|
//加倍
|
|
mod_doudizhu.more = function(pack){
|
|
var agentid = pack.data.agentid;
|
|
var playerid = parseInt(pack.data.playerid);
|
|
var gameid = pack.data.gameid;
|
|
var roomcode = parseInt(pack.data.roomcode);
|
|
var seat = parseInt(pack.data.seat);
|
|
var more = pack.data.more;
|
|
var o_room = mod_doudizhu.import.check_player(agentid, gameid, roomcode, seat, playerid, pack.conmode, pack.fromid);
|
|
if (!o_room){
|
|
return;
|
|
}
|
|
//通过房间找牌桌
|
|
var o_desk = o_room.o_desk;
|
|
if (!o_desk){
|
|
//没找到牌桌
|
|
return;
|
|
}
|
|
//找到牌桌后一定要调用牌桌的.method.save_receivepack方法
|
|
o_desk.debug.save_receivepack(pack, seat, playerid);
|
|
if(o_room.battlestate!=1){ ////不是开战
|
|
return;
|
|
}
|
|
//获取当前小局对象
|
|
var o_aset=o_desk.method.CurrAset();
|
|
if(o_aset.playerlist[4][seat]!=-1){//加倍了
|
|
return ;
|
|
}
|
|
if(o_aset.stage!=1){ //是不是加倍阶段
|
|
return ;
|
|
}
|
|
clearTimeout(o_desk.timer.dingshi[seat]);
|
|
//
|
|
o_desk.flow.more(seat,more);
|
|
}
|
|
//包庄
|
|
mod_doudizhu.baozhuang = function(pack){
|
|
var agentid = pack.data.agentid;
|
|
var playerid = parseInt(pack.data.playerid);
|
|
var gameid = pack.data.gameid;
|
|
var roomcode = parseInt(pack.data.roomcode);
|
|
var seat = parseInt(pack.data.seat);
|
|
var more = pack.data.more;
|
|
var o_room = mod_doudizhu.import.check_player(agentid, gameid, roomcode, seat, playerid, pack.conmode, pack.fromid);
|
|
if (!o_room){
|
|
return;
|
|
}
|
|
//通过房间找牌桌
|
|
var o_desk = o_room.o_desk;
|
|
if (!o_desk){
|
|
//没找到牌桌
|
|
return;
|
|
}
|
|
//找到牌桌后一定要调用牌桌的.method.save_receivepack方法
|
|
o_desk.debug.save_receivepack(pack, seat, playerid);
|
|
if(o_room.battlestate!=1){ ////不是开战
|
|
return;
|
|
}
|
|
//获取当前小局对象
|
|
var o_aset=o_desk.method.CurrAset();
|
|
if(o_aset.playerlist[4][seat]!=-1){//加倍了
|
|
return ;
|
|
}
|
|
if(o_aset.stage!=1){ //是不是加倍阶段
|
|
return ;
|
|
}
|
|
clearTimeout(o_desk.timer.dingshi[seat]);
|
|
//
|
|
o_desk.flow.baozhuang(seat,more);
|
|
}
|
|
//出牌
|
|
mod_doudizhu.playcards = function(pack){
|
|
var agentid = pack.data.agentid;
|
|
var playerid = parseInt(pack.data.playerid);
|
|
var gameid = pack.data.gameid;
|
|
var roomcode = parseInt(pack.data.roomcode);
|
|
var seat = parseInt(pack.data.seat);
|
|
var cards = pack.data.cards;
|
|
var caozuo = pack.data.caozuo;
|
|
var o_room = mod_doudizhu.import.check_player(agentid, gameid, roomcode, seat, playerid, pack.conmode, pack.fromid);
|
|
if (!o_room){
|
|
return;
|
|
}
|
|
//通过房间找牌桌
|
|
var o_desk = o_room.o_desk;
|
|
if (!o_desk){
|
|
//没找到牌桌
|
|
return;
|
|
}
|
|
//找到牌桌后一定要调用牌桌的.method.save_receivepack方法
|
|
o_desk.debug.save_receivepack(pack, seat, playerid);
|
|
if(o_room.battlestate!=1){ ////不是开战
|
|
return;
|
|
}
|
|
//获取当前小局对象
|
|
var o_aset=o_desk.method.CurrAset();
|
|
if(o_aset.stage!=2){ //是不是当前阶段
|
|
return ;
|
|
}
|
|
if(caozuo!=o_aset.caozuo){//是不是当前操作
|
|
return;
|
|
}
|
|
if(seat!=o_aset.control){//控制权不是自己
|
|
return;
|
|
}
|
|
//
|
|
o_desk.flow.playcards(seat,cards);
|
|
}
|
|
//不出
|
|
mod_doudizhu.display = function(pack){
|
|
var agentid = pack.data.agentid;
|
|
var playerid = parseInt(pack.data.playerid);
|
|
var gameid = pack.data.gameid;
|
|
var roomcode = parseInt(pack.data.roomcode);
|
|
var seat = parseInt(pack.data.seat);
|
|
var caozuo = pack.data.caozuo;
|
|
var o_room = mod_doudizhu.import.check_player(agentid, gameid, roomcode, seat, playerid, pack.conmode, pack.fromid);
|
|
if (!o_room){
|
|
return;
|
|
}
|
|
//通过房间找牌桌
|
|
var o_desk = o_room.o_desk;
|
|
if (!o_desk){
|
|
//没找到牌桌
|
|
return;
|
|
}
|
|
//找到牌桌后一定要调用牌桌的.method.save_receivepack方法
|
|
o_desk.debug.save_receivepack(pack, seat, playerid);
|
|
if(o_room.battlestate!=1){ ////不是开战
|
|
return;
|
|
}
|
|
//获取当前小局对象
|
|
var o_aset=o_desk.method.CurrAset();
|
|
if(o_aset.stage!=2){ //是不是当前阶段
|
|
return ;
|
|
}
|
|
if(caozuo!=o_aset.caozuo){//是不是当前操作
|
|
return;
|
|
}
|
|
if(seat!=o_aset.control){//控制权不是自己
|
|
return;
|
|
}
|
|
if(seat==o_aset.maxplayer){//自己是最大
|
|
return ;
|
|
}
|
|
//
|
|
o_desk.flow.display(seat);
|
|
}
|
|
//托管
|
|
mod_doudizhu.help_play = function(pack){
|
|
var agentid = pack.data.agentid;
|
|
var playerid = parseInt(pack.data.playerid);
|
|
var gameid = pack.data.gameid;
|
|
var roomcode = parseInt(pack.data.roomcode);
|
|
var seat = parseInt(pack.data.seat);
|
|
var o_room = mod_doudizhu.import.check_player(agentid, gameid, roomcode, seat, playerid, pack.conmode, pack.fromid);
|
|
if (!o_room){
|
|
return;
|
|
}
|
|
//通过房间找牌桌
|
|
var o_desk = o_room.o_desk;
|
|
if (!o_desk){
|
|
//没找到牌桌
|
|
return;
|
|
}
|
|
//找到牌桌后一定要调用牌桌的.method.save_receivepack方法
|
|
o_desk.debug.save_receivepack(pack, seat, playerid);
|
|
if(o_room.battlestate!=1){ ////不是开战
|
|
return;
|
|
}
|
|
//获取当前小局对象
|
|
var o_aset=o_desk.method.CurrAset();
|
|
if(o_aset.stage!=2){ //不是打牌
|
|
return;
|
|
}
|
|
//
|
|
o_desk.flow.help_play(seat);
|
|
}
|
|
//明牌
|
|
mod_doudizhu.mingpai = function(pack){
|
|
var agentid = pack.data.agentid;
|
|
var playerid = parseInt(pack.data.playerid);
|
|
var gameid = pack.data.gameid;
|
|
var roomcode = parseInt(pack.data.roomcode);
|
|
var seat = parseInt(pack.data.seat);
|
|
var o_room = mod_doudizhu.import.check_player(agentid, gameid, roomcode, seat, playerid, pack.conmode, pack.fromid);
|
|
if (!o_room){
|
|
return;
|
|
}
|
|
//通过房间找牌桌
|
|
var o_desk = o_room.o_desk;
|
|
if (!o_desk){
|
|
//没找到牌桌
|
|
return;
|
|
}
|
|
//找到牌桌后一定要调用牌桌的.method.save_receivepack方法
|
|
o_desk.debug.save_receivepack(pack, seat, playerid);
|
|
if(o_room.battlestate!=1){ ////不是开战
|
|
return;
|
|
}
|
|
//获取当前小局对象
|
|
var o_aset=o_desk.method.CurrAset();
|
|
if(o_aset.stage!=2){ //是不是当前阶段
|
|
return ;
|
|
}
|
|
var result = false ;
|
|
for(var i=0;i<o_aset.maxman;i++){
|
|
if(o_desk.data.mp_zt[i]==1){
|
|
result = true ;
|
|
}
|
|
}
|
|
//之前叫过地主了
|
|
if(result){
|
|
return ;
|
|
}
|
|
//
|
|
o_desk.flow.mingpai(seat);
|
|
}
|
|
//准备
|
|
mod_doudizhu.ready = function(pack){
|
|
var agentid = pack.data.agentid;
|
|
var playerid = parseInt(pack.data.playerid);
|
|
var gameid = pack.data.gameid;
|
|
var roomcode = parseInt(pack.data.roomcode);
|
|
var seat = parseInt(pack.data.seat);
|
|
var mingpai = pack.data.mingpai;
|
|
var o_room = mod_doudizhu.import.check_player(agentid, gameid, roomcode, seat, playerid, pack.conmode, pack.fromid);
|
|
if (!o_room){
|
|
return;
|
|
}
|
|
//通过房间找牌桌
|
|
var o_desk = o_room.o_desk;
|
|
if (!o_desk){
|
|
//没找到牌桌
|
|
return;
|
|
}
|
|
//找到牌桌后一定要调用牌桌的.method.save_receivepack方法
|
|
o_desk.debug.save_receivepack(pack, seat, playerid);
|
|
if(o_room.battlestate!=1){ ////不是开战
|
|
return;
|
|
}
|
|
//获取当前小局对象
|
|
var o_aset=o_desk.method.CurrAset();
|
|
//
|
|
if(o_aset.playerlist[1][seat]!=-1){//是不是准备状态
|
|
return;
|
|
}
|
|
if(o_desk.o_room.infinite!=1){
|
|
if(o_aset.stage!=3){ //是不是当前阶段
|
|
return ;
|
|
}
|
|
}
|
|
var guo = false;
|
|
if(mingpai==1){
|
|
for(var i=0;i<3;i++){
|
|
if(o_desk.data.mp_zt[i]==1){
|
|
guo = true;
|
|
}
|
|
}
|
|
if(guo){
|
|
return;
|
|
}
|
|
}
|
|
clearTimeout(o_room.o_desk.timer.own[seat]);
|
|
//
|
|
o_desk.flow.ready(seat,mingpai);
|
|
}
|
|
//玩家准备
|
|
mod_doudizhu.wx_zb = function(pack){
|
|
var agentid = pack.data.agentid;
|
|
var playerid = parseInt(pack.data.playerid);
|
|
var gameid = pack.data.gameid;
|
|
var roomcode = parseInt(pack.data.roomcode);
|
|
var seat = parseInt(pack.data.seat);
|
|
|
|
var o_room = mod_doudizhu.import.check_player(agentid, gameid, roomcode, seat, playerid, pack.conmode, pack.fromid);
|
|
if (!o_room){
|
|
return;
|
|
}
|
|
|
|
var o_desk = o_room.o_desk;
|
|
if (!o_desk){
|
|
return;
|
|
}
|
|
var o_aset = o_desk.method.CurrAset();
|
|
o_desk.debug.save_receivepack(pack, seat, playerid);
|
|
//
|
|
if(o_room.seatlist[seat].gameinfo.isprepare == 0){
|
|
o_room.seatlist[seat].gameinfo.isprepare = 1;
|
|
}
|
|
mod_doudizhu.export.player_prepare(o_room, seat);
|
|
o_desk.debug.save_sendpack(pack, seat, playerid);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|