101 lines
3.9 KiB
JavaScript
101 lines
3.9 KiB
JavaScript
//以下代码是什么目的?
|
|
//执行后客户端收到服务器发的包后自动开战
|
|
//以下代码是什么时候执行?
|
|
//房间满足开战人数时自动执行
|
|
//以下代码是还可以做什么?
|
|
//开始游戏需要做内存初始化
|
|
min_loadJsFile(mod_jxmj.roots+"mem/mem_ini_ctrl.js", function () {
|
|
min_loadJsFile(mod_jxmj.roots+"mem/mem_ini_re.js", function () {
|
|
min_loadJsFile(mod_jxmj.roots+"mem/mem_ini_room.js", function () {
|
|
min_loadJsFile(mod_jxmj.roots+"mem/mem_ini_player.js", function () {
|
|
min_loadJsFile(mod_jxmj.roots+"mem/mem_ini_save.js", function () {
|
|
min_loadJsFile(mod_jxmj.roots+"mem/mem_ini_card.js", function () {
|
|
min_loadJsFile(mod_jxmj.roots+"mem/mem_ini_record.js", function () {
|
|
min_loadJsFile(mod_jxmj.roots+"mem/mem_ini_law_sp.js", function () {
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
//创建房间:这里在客户端开战时执行,一般在这里初始化所有数据
|
|
mod_jxmj.makewar = function (o_room, o_game_config) {
|
|
var persons=[4,4,3,2];
|
|
var person=persons[o_room.roomtype[6]] || 4;
|
|
o_room.seatlist.length=person;
|
|
o_room.o_desk=cls_desk.new(o_room);// 新建牌桌对象
|
|
o_room.o_desk.data.asetlist=[];
|
|
// o_room.o_desk.data.asetlist.push({"turn":0});
|
|
var roomcode=o_room.roomcode;
|
|
//mod_jxmj.ini_clear_save(roomcode);
|
|
|
|
//playerRoom.turn[1]=-1;
|
|
mod_jxmj[roomcode]=mod_jxmj[roomcode] || {};
|
|
var playerRoom = mod_jxmj[roomcode];
|
|
playerRoom.roomcode = roomcode;
|
|
playerRoom.asetlist=ExArray.copyArray(o_room.o_desk.data.asetlist);
|
|
|
|
mod_jxmj.ini(playerRoom, o_room);//playerRoom.status = 0;//房间状态
|
|
mod_jxmj.roomconfig(o_room,playerRoom);
|
|
playerRoom.whoready=playerRoom.whoready||[0,0,0,0];
|
|
for (var i = 0; i < person; i++) {
|
|
//playerRoom.whoready[i]=0;
|
|
/*机器人自动准备*/
|
|
if((playerRoom.roomtype[14]==3||playerRoom.roomtype[14]==4)&&o_room.seatlist[i].isrobot){
|
|
mod_jxmj.player_enter(o_room,i);
|
|
playerRoom.whoready[i]=1;
|
|
playerRoom.robot[i]=1;
|
|
}
|
|
}
|
|
|
|
if (playerRoom.offline_alltimer==-1){
|
|
var pack = {
|
|
"app": "youle",
|
|
"route": 'jinxianmj',
|
|
"rpc": "sieves",
|
|
"data": {
|
|
"agentid": o_room.o_game.o_agent.agentid,
|
|
"gameid": o_room.o_game.gameid,
|
|
"roomcode": o_room.roomcode,
|
|
"seat": 0,
|
|
}
|
|
}
|
|
playerRoom.offline_alltimer=setInterval(mod_jxmj.jxUtil.offline_alltimer,1000,o_room,playerRoom,pack);
|
|
playerRoom.offlinetime=0;
|
|
}
|
|
//console.log("makewar");
|
|
return 1;
|
|
};
|
|
//初始化所有数据
|
|
mod_jxmj.ini = function (playerRoom, o_room) {
|
|
mod_jxmj.ini_room_pack(playerRoom, o_room);//房间内存
|
|
mod_jxmj.ini_player_pack(playerRoom, o_room);//用户内存
|
|
mod_jxmj.ini_save_pack(playerRoom, o_room);//保存用户战绩
|
|
mod_jxmj.ini_card_pack(playerRoom, o_room);//牌内存
|
|
mod_jxmj.ini_ctrl_pack(playerRoom, o_room);//控制内存
|
|
mod_jxmj.ini_record_pack(playerRoom, o_room);//记录
|
|
mod_jxmj.ini_law_sp_pack(playerRoom, o_room);//特别玩法
|
|
}
|
|
|
|
mod_jxmj.send_to_self=function(playerRoom,o_room,rpc,who,obj) {
|
|
var pack = {
|
|
"app": "youle",
|
|
"route": 'jinxianmj',
|
|
"rpc": rpc,
|
|
"conmode":o_room.seatlist[who]&&o_room.seatlist[who].conmode,
|
|
"fromid":o_room.seatlist[who]&&o_room.seatlist[who].fromid,
|
|
"data": {
|
|
"agentid": o_room.o_game.o_agent.agentid,
|
|
"gameid": o_room.o_game.gameid,
|
|
"playerid": o_room.seatlist[who]&&o_room.seatlist[who].playerid,
|
|
"roomcode": o_room.roomcode,
|
|
"seat": who,
|
|
}
|
|
}
|
|
for (var op in obj){
|
|
op && (pack.data[op]=obj[op])
|
|
}
|
|
mod_jxmj[rpc] && mod_jxmj[rpc](pack);
|
|
} |