/////////////////////////////////////////////////// ///////// cls_youle_room_player: 玩家 ///////// /////////////////////////////////////////////////// var cls_youle_room_player = cls_youle_room_player || { //构造函数 new: function(playerid, nickname, avatar, sex, playertype, ip, onstate, conmode, fromid){ var player = {}; //基本信息 player.playerid = playerid; //玩家id player.nickname = nickname; player.avatar = avatar; player.sex = sex; player.playertype = playertype; player.ip = ip; player.onstate = onstate; //在线状态 null未连接 0在线 1离线 2电话中 player.conmode = conmode; //连接方式 player.fromid = fromid; //连接id //初始化游戏数据 player.gameinfo = {}; player.gameinfo.o_game = null; //所在的游戏 player.gameinfo.o_room = null; //所在的房间 player.gameinfo.seat = -1; //房间内的位置 player.gameinfo.isowner = -1; //房主标志 0:非房主 1:是房主 player.gameinfo.agree = -1; //是否同意解散房间 0:申请解散 1:同意解散 player.gameinfo.isbet = -1; //下注标志 0:未下注可离开房间 1:已下注不可离开房间 player.gameinfo.grade = 0; //在房间内的得分 //在定义中没有写入的后加属性 //player.gameinfo.isprepare = 0; //是否准备 //方法 player.method = {}; //获取玩家的基础信息 player.method.get_info = function(){ return cls_youle_room_player.get_info(player); } //进入房间 player.method.enter_room = function(o_room, seat, isowner){ cls_youle_room_player.enter_room(player, o_room, seat, isowner); } //退出房间 player.method.exit_room = function(){ cls_youle_room_player.exit_room(player); } return player; }, //获取玩家的基础信息 get_info: function(o_player){ var info = {}; info.playerid = o_player.playerid; info.nickname = o_player.nickname; info.avatar = o_player.avatar; info.sex = o_player.sex; info.ip = o_player.ip; info.onstate = o_player.onstate; info.isprepare= o_player.gameinfo.isprepare; if (o_player.isrobot){ info.bean = o_player.bean; } else { info.bean = null; } if (o_player.paycode) { info.paycode = o_player.paycode; } info.bean = o_player.bean; return info; }, //进入房间 enter_room: function(o_player, o_room, seat, isowner){ o_player.gameinfo.o_game = o_room.o_game; o_player.gameinfo.o_room = o_room; o_player.gameinfo.seat = seat; o_player.gameinfo.isowner = isowner; o_player.gameinfo.isbet = 0; o_player.gameinfo.agree = -1; o_player.gameinfo.grade = 0; if (o_room.needprepare){ o_player.gameinfo.isprepare = 0; } else { o_player.gameinfo.isprepare = 1; } o_room.seatlist[seat] = o_player; if (isowner){ o_room.owner = o_player; } //更新tcp连接列表 if (o_player.conmode == "tcp"){ youle_room.tcps.method.load_tcp(o_player.fromid, o_player); } //记录当前机器人数量 if (o_player.isrobot){ if (o_room.roommode){ if (!o_room.o_game.robotcount){ o_room.o_game.robotcount = 1; } else { o_room.o_game.robotcount = o_room.o_game.robotcount + o_room.beanmult; } // console.log('++机器人: ' + o_room.o_game.robotcount); } } else { if (o_room.sysroom){ if (!o_room.o_game.sysroom_playercount){ o_room.o_game.sysroom_playercount = []; } for (var i = 0; i < o_room.o_game.sysroom_playercount.length; i++) { if (JSON.stringify(o_room.o_game.sysroom_playercount[i].roomtype) == JSON.stringify(o_room.roomtype)){ o_room.o_game.sysroom_playercount[i].playercount = o_room.o_game.sysroom_playercount[i].playercount + 1; return; } }; var _v = {}; _v.roomtype = o_room.roomtype; _v.playercount = 1; o_room.o_game.sysroom_playercount.push(_v); } } }, //退出房间 exit_room: function(o_player){ //更新tcp连接列表 if (o_player.conmode == "tcp"){ youle_room.tcps.method.delete_tcp(o_player.fromid); } o_player.gameinfo.o_room.seatlist[o_player.gameinfo.seat] = null; //记录当前机器人数量 if (o_player.isrobot){ if (o_player.gameinfo.o_room.roommode){ o_player.gameinfo.o_game.robotcount = o_player.gameinfo.o_game.robotcount - o_player.gameinfo.o_room.beanmult; // console.log('--机器人: ' + o_player.gameinfo.o_room.o_game.robotcount); } } else { if (o_player.gameinfo.o_room.sysroom){ for (var i = 0; i < o_player.gameinfo.o_game.sysroom_playercount.length; i++) { if (JSON.stringify(o_player.gameinfo.o_game.sysroom_playercount[i].roomtype) == JSON.stringify(o_player.gameinfo.o_room.roomtype)){ o_player.gameinfo.o_game.sysroom_playercount[i].playercount = o_player.gameinfo.o_game.sysroom_playercount[i].playercount - 1; break; } } } } } }