目录结构调整
This commit is contained in:
193
codes/games/server/youle/server_room/class.game.js
Normal file
193
codes/games/server/youle/server_room/class.game.js
Normal file
@@ -0,0 +1,193 @@
|
||||
///////////////////////////////////////////////////
|
||||
////////// cls_youle_room_game: 游戏 //////////
|
||||
///////////////////////////////////////////////////
|
||||
var cls_youle_room_game = cls_youle_room_game || {
|
||||
//构造函数
|
||||
new: function(o_agent, gameid, gameidx, gamename, seatcount, makewar, modename, roomserver, tcpport, httpport, minroomcode, maxroomcode){
|
||||
var game = {};
|
||||
//基本信息
|
||||
game.o_agent = o_agent; //代理商
|
||||
game.gameid = gameid; //游戏id
|
||||
game.idx = gameidx; //游戏的数组下标
|
||||
game.gamename = gamename; //游戏名称
|
||||
game.seatcount = seatcount; //房间内的座位数量
|
||||
game.makewar = makewar; //达成开战条件的人数
|
||||
game.modename = modename; //游戏服务器模块名称
|
||||
game.roomserver = roomserver; //房间服务器地址
|
||||
game.tcpport = tcpport; //房间服务器tcp端口
|
||||
game.httpport = httpport; //房间服务器http端口
|
||||
game.minroomcode = minroomcode; //房间服务器最小房号
|
||||
game.maxroomcode = maxroomcode; //房间服务器最大房号
|
||||
|
||||
//房间列表
|
||||
game.rooms = [];
|
||||
game.rooms.length = maxroomcode - minroomcode + 1;
|
||||
|
||||
//方法
|
||||
game.method = {};
|
||||
|
||||
//创建房间
|
||||
game.method.create_room = function(roomcode, roomtype, needroomcard, asetcount){
|
||||
return cls_youle_room_game.create_room(game, roomcode, roomtype, needroomcard, asetcount);
|
||||
}
|
||||
|
||||
//查找房间
|
||||
game.method.find_room = function(roomcode){
|
||||
return cls_youle_room_game.find_room(game, roomcode);
|
||||
}
|
||||
|
||||
//释放房间
|
||||
game.method.free_room = function(o_room){
|
||||
cls_youle_room_game.free_room(game, o_room);
|
||||
}
|
||||
|
||||
//调试状态
|
||||
game.method.isdebugger = function(){
|
||||
return cls_youle_room_game.isdebugger(game);
|
||||
}
|
||||
return game;
|
||||
},
|
||||
|
||||
//创建房间
|
||||
create_room: function(o_game, roomcode, roomtype, needroomcard, asetcount){
|
||||
//判断房号是否在范围内
|
||||
if (roomcode < o_game.minroomcode || roomcode > o_game.maxroomcode){
|
||||
return null;
|
||||
}
|
||||
|
||||
//判断房间是否已经存在
|
||||
var idx = cls_youle_room_game.aryidx_room(o_game, roomcode);
|
||||
if (o_game.rooms[idx]){
|
||||
return null;
|
||||
}
|
||||
|
||||
var o_room = cls_youle_room_room.new(o_game, roomcode, roomtype, needroomcard, asetcount);
|
||||
o_game.rooms[idx] = o_room;
|
||||
|
||||
return o_room;
|
||||
},
|
||||
|
||||
//查找房间
|
||||
find_room: function(o_game, roomcode){
|
||||
var idx = cls_youle_room_game.aryidx_room(o_game, roomcode);
|
||||
if (o_game.rooms.length <= idx) {
|
||||
return null;
|
||||
}
|
||||
return o_game.rooms[idx];
|
||||
},
|
||||
|
||||
//释放房间
|
||||
free_room: function(o_game, o_room){
|
||||
var idx = cls_youle_room_game.aryidx_room(o_game, o_room.roomcode);
|
||||
|
||||
//更新tcp连接列表
|
||||
var o_room = o_game.rooms[idx];
|
||||
if (o_room){
|
||||
for (var i = 0; i < o_room.seatlist.length; i++) {
|
||||
if (o_room.seatlist[i]) {
|
||||
var o_player = o_room.seatlist[i];
|
||||
if (o_player.conmode == "tcp"){
|
||||
youle_room.tcps.method.delete_tcp(o_player.fromid, o_player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
try{
|
||||
if (o_room.game){//针对牛牛写的
|
||||
if (o_room.game.room){
|
||||
o_room.game.room = null;
|
||||
}
|
||||
if (o_room.game.pList){
|
||||
o_room.game.pList = null;
|
||||
}
|
||||
o_room.game = null;
|
||||
}
|
||||
if (o_room.o_desk){//通用
|
||||
if (o_room.o_desk.o_room){
|
||||
o_room.o_desk.o_room = null;
|
||||
}
|
||||
o_room.o_desk = null;
|
||||
}
|
||||
|
||||
for (var i = 0; i < o_room.seatlist.length; i++) {
|
||||
if (o_room.seatlist[i]){
|
||||
o_room.seatlist[i].seat = null;
|
||||
o_room.seatlist[i].cards = null;
|
||||
o_room.seatlist[i].rubcard = null;
|
||||
o_room.seatlist[i].putcard = null;
|
||||
o_room.seatlist[i].scores = null;
|
||||
o_room.seatlist[i].betScore = null;
|
||||
o_room.seatlist[i].winScore = null;
|
||||
o_room.seatlist[i].isJoin = null;
|
||||
o_room.seatlist[i].isBet = null;
|
||||
o_room.seatlist[i].isAuto = null;
|
||||
o_room.seatlist[i].auto = null;
|
||||
o_room.seatlist[i] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(e){}
|
||||
|
||||
if (o_room.freetimer){
|
||||
min_closetime(o_room.freetimer);
|
||||
o_room.freetimer = null;
|
||||
}
|
||||
if (o_room.freetimer24){
|
||||
min_closetime(o_room.freetimer24);
|
||||
o_room.freetimer24 = null;
|
||||
}
|
||||
if (o_room.timer_robot){
|
||||
min_closetime(o_room.timer_robot);
|
||||
o_room.timer_robot = null;
|
||||
}
|
||||
if (o_room.timer_robot_active){
|
||||
min_closetime(o_room.timer_robot_active);
|
||||
o_room.timer_robot_active = null;
|
||||
}
|
||||
if (o_room.timer_robot_passive){
|
||||
for (var i = 0; i < o_room.timer_robot_passive.length; i++) {
|
||||
min_closetime(o_room.timer_robot_passive[i]);
|
||||
}
|
||||
o_room.timer_robot_passive = [];
|
||||
}
|
||||
}
|
||||
|
||||
o_game.rooms[idx] = null;
|
||||
|
||||
//固定房号的房间需要自动再次创建
|
||||
if (o_room.advanced_type){
|
||||
var msg = {};
|
||||
msg.app = youle_room.app.appname;
|
||||
msg.route = youle_room.app.youle_agent.routename;
|
||||
msg.rpc = "advanced_createroom_roomcode";
|
||||
msg.data = {};
|
||||
msg.data.agentid = o_room.o_game.o_agent.agentid;
|
||||
msg.data.playerid = o_room.owner.playerid;
|
||||
msg.data.gameid = o_room.o_game.gameid;
|
||||
msg.data.roomcode = o_room.roomcode;
|
||||
msg.data.shortcode = o_room.shortcode;
|
||||
//msg.data.rebateType = o_room.rebateType;
|
||||
youle_room.app.youle_agent[msg.rpc](msg);
|
||||
}else{
|
||||
//非vip房且有需要更新的roomtype自动创建
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
//调试状态
|
||||
isdebugger: function(o_game){
|
||||
var o_cfg = youle_room.app.youle_platform.config;
|
||||
var re = o_cfg.method.get_paravalue("isdebugger", o_game.o_agent.agentid, o_game.gameid);
|
||||
if (!re){
|
||||
return 0; //正式
|
||||
} else {
|
||||
return 1; //调试
|
||||
}
|
||||
},
|
||||
|
||||
//计算房间的数组下标
|
||||
aryidx_room: function(o_game, roomcode){
|
||||
return roomcode - o_game.minroomcode;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user