Files
youlegames/codes/games/server/games/jinxian_mj/mem/mem_ini.js
2026-02-04 23:47:45 +08:00

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);
}