目录结构调整
This commit is contained in:
404
codes/games/sales_service/youle/server_agent/class.player.js
Normal file
404
codes/games/sales_service/youle/server_agent/class.player.js
Normal file
@@ -0,0 +1,404 @@
|
||||
///////////////////////////////////////////////////
|
||||
///////// cls_youle_agent_player: 玩家 /////////
|
||||
///////////////////////////////////////////////////
|
||||
var cls_youle_agent_player = cls_youle_agent_player || {
|
||||
//构造函数
|
||||
new: function(o_agent, playerid, roomcard, bean, openid, unionid, nickname, avatar, sex, playertype, invitecode) {
|
||||
var player = {};
|
||||
//基本信息
|
||||
player.o_agent = o_agent; //代理商
|
||||
player.playerid = playerid; //玩家id
|
||||
player.roomcard = roomcard; //房卡数量
|
||||
player.bean = bean; //星星数量
|
||||
player.openid = openid;
|
||||
player.unionid = unionid;
|
||||
player.nickname = nickname;
|
||||
player.avatar = avatar;
|
||||
player.sex = sex;
|
||||
player.playertype = playertype; //0:普通用户 1:vip开房不扣房卡
|
||||
player.invitecode = invitecode; //绑定的邀请码
|
||||
player.freetimer = null; //释放玩家的定时器
|
||||
//登录的游戏列表
|
||||
player.gameinfo = [];
|
||||
|
||||
//方法
|
||||
player.method = {};
|
||||
|
||||
//登录游戏
|
||||
player.method.login_game = function(o_game, ip, conmode, fromid, machineid, machineroom){
|
||||
cls_youle_agent_player.login_game(player, o_game, ip, conmode, fromid, machineid, machineroom);
|
||||
}
|
||||
|
||||
//获取玩家某个游戏的游戏信息
|
||||
player.method.get_gameinfo = function(o_game){
|
||||
return cls_youle_agent_player.get_gameinfo(player, o_game);
|
||||
}
|
||||
|
||||
//修改玩家房卡数量
|
||||
player.method.update_roomcard = function(type, newroomcrad, change, memo){
|
||||
cls_youle_agent_player.update_roomcard(player, type, newroomcrad, change, memo);
|
||||
}
|
||||
|
||||
//修改玩家豆豆数量
|
||||
player.method.update_bean = function(type, newbean, change, push, showrebate){
|
||||
cls_youle_agent_player.update_bean(player, type, newbean, change, push, showrebate);
|
||||
}
|
||||
|
||||
//打开释放玩家的定时器
|
||||
player.method.open_free_timer = function(){
|
||||
cls_youle_agent_player.open_free_timer(player);
|
||||
}
|
||||
|
||||
//关闭释放玩家的定时器
|
||||
player.method.close_free_timer = function(){
|
||||
cls_youle_agent_player.close_free_timer(player);
|
||||
}
|
||||
|
||||
return player;
|
||||
},
|
||||
|
||||
//登录游戏
|
||||
login_game: function(o_player, o_game, ip, conmode, fromid, machineid, machineroom){
|
||||
if (o_player.gameinfo.length <= o_game.idx) {
|
||||
o_player.gameinfo.length = o_game.idx + 1;
|
||||
}
|
||||
var _game_info = o_player.gameinfo[o_game.idx];
|
||||
if (!_game_info){
|
||||
//初始化游戏信息
|
||||
_game_info = {};
|
||||
_game_info.conmode = conmode;
|
||||
_game_info.fromid = fromid;
|
||||
_game_info.fromidtime = (new Date()).getTime();
|
||||
_game_info.ip = ip;
|
||||
_game_info.machineid = machineid;
|
||||
_game_info.machineroom = machineroom;
|
||||
_game_info.roomcode = null;
|
||||
o_player.gameinfo[o_game.idx] = _game_info;
|
||||
//统计在线玩家数
|
||||
o_game.method.online_p_chang(1);
|
||||
} else {
|
||||
//踢原有连接下线
|
||||
if (fromid && o_game.gameid != "G2hw0ubng0zcoI0r4mx3H2yr4GejidwO"){
|
||||
// if (fromid){
|
||||
if (_game_info.conmode == "tcp" && _game_info.fromid && _game_info.fromid != fromid){
|
||||
var msg = {};
|
||||
msg.app = youle_agent.app.appname;
|
||||
msg.route = youle_agent.routename;
|
||||
msg.rpc = "kick_offline";
|
||||
msg.conmode = _game_info.conmode;
|
||||
msg.fromid = _game_info.fromid;
|
||||
youle_agent.app.SendPack(msg);
|
||||
|
||||
//测试用
|
||||
// var agent_kick_offline = {};
|
||||
// agent_kick_offline.agentid = o_game.o_agent.agentid;
|
||||
// agent_kick_offline.gameid = o_game.gameid;
|
||||
// agent_kick_offline.playerid = o_player.playerid;
|
||||
// agent_kick_offline.oldfromid = _game_info.fromid;
|
||||
// agent_kick_offline.oldtime = _game_info.fromidtime;
|
||||
// agent_kick_offline.oldmachineid = _game_info.machineid;
|
||||
// agent_kick_offline.oldmachineroom = _game_info.machineroom;
|
||||
// agent_kick_offline.newfromid = fromid;
|
||||
// agent_kick_offline.newtime = (new Date()).getTime();
|
||||
// agent_kick_offline.newmachineid = machineid;
|
||||
// agent_kick_offline.newmachineroom = machineroom;
|
||||
// console.log(min_now() + " agentserver kick_offline");
|
||||
// console.log(agent_kick_offline);
|
||||
}
|
||||
|
||||
//更新游戏信息
|
||||
_game_info.conmode = conmode;
|
||||
_game_info.fromid = fromid;
|
||||
_game_info.fromidtime = (new Date()).getTime();
|
||||
_game_info.ip = ip;
|
||||
}
|
||||
}
|
||||
|
||||
//更新tcp连接列表
|
||||
if (conmode == "tcp"){
|
||||
youle_agent.tcps.method.load_tcp(fromid, o_player, o_game.idx);
|
||||
}
|
||||
},
|
||||
|
||||
//获取玩家某个游戏的游戏信息
|
||||
get_gameinfo: function(o_player, o_game){
|
||||
if (o_player.gameinfo.length <= o_game.idx){
|
||||
return null;
|
||||
}
|
||||
return o_player.gameinfo[o_game.idx];
|
||||
},
|
||||
|
||||
//修改玩家房卡数量
|
||||
update_roomcard: function(o_player, type, newroomcard, change, memo){
|
||||
var roomCardName = youle_agent.app.youle_platform.config.method.get_paravalue("roomCardName", o_player.o_agent.agentid);
|
||||
if (!roomCardName){
|
||||
roomCardName = "房卡";
|
||||
}
|
||||
o_player.roomcard = newroomcard;
|
||||
//通知游戏前端
|
||||
for (var i = 0; i < o_player.gameinfo.length; i++) {
|
||||
var _game_info = o_player.gameinfo[i];
|
||||
if (_game_info){
|
||||
if (_game_info.roomcode){
|
||||
//获取房号对应的房间服务器地址
|
||||
var o_game = o_player.o_agent.games[i];
|
||||
if (!o_game) {
|
||||
continue;
|
||||
}
|
||||
var o_roomserver = o_game.method.get_roomserver(_game_info.roomcode);
|
||||
|
||||
//通过房间服务器发送修改房卡的消息
|
||||
var msg = {};
|
||||
msg.app = youle_agent.app.appname;
|
||||
msg.route = youle_agent.app.youle_room.routename;
|
||||
msg.rpc = "update_roomcard";
|
||||
msg.data = {};
|
||||
msg.data.agentid = o_player.o_agent.agentid;
|
||||
msg.data.playerid = o_player.playerid;
|
||||
msg.data.gameid = o_game.gameid;
|
||||
msg.data.roomcode = _game_info.roomcode;
|
||||
msg.data.roomcard = newroomcard;
|
||||
// msg.data.type = type;
|
||||
// msg.data.change = change;
|
||||
switch(type){
|
||||
case 0:
|
||||
msg.data.text = "扣除" + roomCardName + ":" + change;
|
||||
if (memo){
|
||||
msg.data.text = memo + msg.data.text;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
msg.data.text = "购买" + roomCardName + ":" + change;
|
||||
break;
|
||||
case 2:
|
||||
msg.data.text = roomCardName + "充值:" + change;
|
||||
break;
|
||||
case 3:
|
||||
msg.data.text = "领取" + roomCardName + "奖励:" + change;
|
||||
break;
|
||||
case 4:
|
||||
msg.data.text = "修改" + roomCardName + ":" + change;
|
||||
break;
|
||||
}
|
||||
|
||||
if (o_roomserver.server == o_player.o_agent.server){
|
||||
//房间服务器与代理商服务器是同一地址
|
||||
youle_agent.app.youle_room[msg.rpc](msg);
|
||||
msg.data.issameserver = 1;
|
||||
} else {
|
||||
//房间服务器与代理商服务器不是同一地址
|
||||
msg.data.issameserver = 0;
|
||||
var cfg = {};
|
||||
cfg.url = "http://" + o_roomserver.server + ":" + o_roomserver.httpport + "/index.html";
|
||||
cfg.type = "POST";
|
||||
cfg.data = JSON.stringify(msg);
|
||||
cfg.success = function(str){};
|
||||
cfg.error = function(str){};
|
||||
min_http(cfg);
|
||||
}
|
||||
} else if (_game_info.conmode && _game_info.fromid){
|
||||
var msg = {};
|
||||
msg.app = youle_agent.app.appname;
|
||||
msg.route = youle_agent.routename;
|
||||
msg.rpc = "update_roomcard";
|
||||
msg.conmode = _game_info.conmode;
|
||||
msg.fromid = _game_info.fromid;
|
||||
msg.data = {};
|
||||
msg.data.roomcard = newroomcard;
|
||||
// msg.data.type = type;
|
||||
// msg.data.change = change;
|
||||
switch(type){
|
||||
case 0:
|
||||
msg.data.text = "扣除" + roomCardName + ":" + change;
|
||||
if (memo){
|
||||
msg.data.text = memo + msg.data.text;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
msg.data.text = "购买" + roomCardName + ":" + change;
|
||||
break;
|
||||
case 2:
|
||||
msg.data.text = roomCardName + "充值:" + change;
|
||||
break;
|
||||
case 3:
|
||||
msg.data.text = "领取" + roomCardName + "奖励:" + change;
|
||||
break;
|
||||
case 4:
|
||||
msg.data.text = "修改" + roomCardName + ":" + change;
|
||||
break;
|
||||
}
|
||||
youle_agent.app.SendPack(msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
//修改玩家豆豆数量
|
||||
update_bean: function(o_player, type, newbean, change, push, showrebate){
|
||||
o_player.bean = parseInt(newbean);
|
||||
var starName = youle_agent.app.youle_platform.config.method.get_paravalue("starName", o_player.o_agent.agentid);
|
||||
if (!starName){
|
||||
starName = "星星";
|
||||
}
|
||||
//通知游戏前端
|
||||
for (var i = 0; i < o_player.gameinfo.length; i++) {
|
||||
var _game_info = o_player.gameinfo[i];
|
||||
if (_game_info){
|
||||
if (_game_info.roomcode){
|
||||
//获取房号对应的房间服务器地址
|
||||
var o_game = o_player.o_agent.games[i];
|
||||
var o_roomserver = o_game.method.get_roomserver(_game_info.roomcode);
|
||||
|
||||
//通过房间服务器发送修改星星的消息
|
||||
var msg = {};
|
||||
msg.app = youle_agent.app.appname;
|
||||
msg.route = youle_agent.app.youle_room.routename;
|
||||
msg.rpc = "update_bean";
|
||||
msg.data = {};
|
||||
msg.data.agentid = o_player.o_agent.agentid;
|
||||
msg.data.playerid = o_player.playerid;
|
||||
msg.data.gameid = o_game.gameid;
|
||||
msg.data.roomcode = _game_info.roomcode;
|
||||
msg.data.bean = parseInt(newbean);
|
||||
switch(type){
|
||||
case 0: //游戏输赢豆豆
|
||||
var _text = "";
|
||||
if (!showrebate){
|
||||
if (change > 0){
|
||||
_text = "游戏赢取" + starName + ":" + change;
|
||||
} else if (change < 0) {
|
||||
_text = "游戏扣除" + starName + ":" + change;
|
||||
}
|
||||
var _showrebate_setting = youle_agent.app.youle_platform.config.method.get_paravalue("shieldShowRebate", o_player.o_agent.agentid);
|
||||
if (!_showrebate_setting){
|
||||
if (push > 0){
|
||||
_text = _text + " 获取" + starName + "房间费:" + push;
|
||||
} else if (push < 0) {
|
||||
_text = _text + " 扣除" + starName + "房间费:" + push;
|
||||
}
|
||||
}
|
||||
} else if (showrebate == 1){
|
||||
if (change + push > 0){
|
||||
_text = "游戏赢取" + starName + ":" + (change + push);
|
||||
} else if (change + push < 0) {
|
||||
_text = "游戏扣除" + starName + ":" + (change + push);
|
||||
}
|
||||
} else if (showrebate == 2){
|
||||
var _showrebate_setting = youle_agent.app.youle_platform.config.method.get_paravalue("shieldShowRebate", o_player.o_agent.agentid);
|
||||
if (!_showrebate_setting){
|
||||
if(push){
|
||||
_text = "扣除房间费:" + push + starName;
|
||||
}
|
||||
}
|
||||
}
|
||||
msg.data.text = _text;
|
||||
break;
|
||||
case 1:
|
||||
msg.data.text = "购买" + starName + ":" + change;
|
||||
break;
|
||||
case 2:
|
||||
msg.data.text = starName + "充值:" + change;
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
case 4:
|
||||
// msg.data.text = "扣除发送系统消息费用:" + change + starName;
|
||||
msg.data.text="";
|
||||
break;
|
||||
case 5:
|
||||
msg.data.text = "扣除比赛报名费用:" + push + starName;
|
||||
break;
|
||||
}
|
||||
|
||||
if (o_roomserver.server == o_player.o_agent.server){
|
||||
//房间服务器与代理商服务器是同一地址
|
||||
youle_agent.app.youle_room[msg.rpc](msg);
|
||||
} else {
|
||||
//房间服务器与代理商服务器不是同一地址
|
||||
var cfg = {};
|
||||
cfg.url = "http://" + o_roomserver.server + ":" + o_roomserver.httpport + "/index.html";
|
||||
cfg.type = "POST";
|
||||
cfg.data = JSON.stringify(msg);
|
||||
cfg.success = function(str){};
|
||||
cfg.error = function(str){};
|
||||
min_http(cfg);
|
||||
}
|
||||
} else if (_game_info.conmode && _game_info.fromid){
|
||||
var msg = {};
|
||||
msg.app = youle_agent.app.appname;
|
||||
msg.route = youle_agent.routename;
|
||||
msg.rpc = "update_bean";
|
||||
msg.conmode = _game_info.conmode;
|
||||
msg.fromid = _game_info.fromid;
|
||||
msg.data = {};
|
||||
msg.data.bean = parseInt(newbean);
|
||||
switch(type){
|
||||
case 0: //游戏输赢豆豆
|
||||
var _text = "";
|
||||
if (!showrebate){
|
||||
if (change > 0){
|
||||
_text = "游戏赢取" + starName + ":" + change;
|
||||
} else if (change < 0) {
|
||||
_text = "游戏扣除" + starName + ":" + change;
|
||||
}
|
||||
var _showrebate_setting = youle_agent.app.youle_platform.config.method.get_paravalue("shieldShowRebate", o_player.o_agent.agentid);
|
||||
if(!_showrebate_setting){
|
||||
if (push > 0){
|
||||
_text = _text + " 获取" + starName + "房间费:" + push;
|
||||
} else if (push < 0) {
|
||||
_text = _text + " 扣除" + starName + "房间费:" + push;
|
||||
}
|
||||
}
|
||||
} else if (showrebate == 1){
|
||||
if (change + push > 0){
|
||||
_text = "游戏赢取" + starName + ":" + (change + push);
|
||||
} else if (change + push < 0) {
|
||||
_text = "游戏扣除" + starName + ":" + (change + push);
|
||||
}
|
||||
} else if (showrebate == 2){
|
||||
var _showrebate_setting = youle_agent.app.youle_platform.config.method.get_paravalue("shieldShowRebate", o_player.o_agent.agentid);
|
||||
if (!_showrebate_setting){
|
||||
if(push){
|
||||
_text = "扣除房间费:" + push + starName;
|
||||
}
|
||||
}
|
||||
}
|
||||
msg.data.text = _text;
|
||||
break;
|
||||
case 1:
|
||||
msg.data.text = "购买" + starName + ":" + change;
|
||||
break;
|
||||
case 2:
|
||||
msg.data.text = starName + "充值:" + change;
|
||||
break;
|
||||
case 3:
|
||||
msg.data.text = "领取" + starName +"奖励:" + change;
|
||||
break;
|
||||
}
|
||||
youle_agent.app.SendPack(msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
//打开释放玩家的定时器
|
||||
open_free_timer: function(o_player){
|
||||
var do_freeplayer = function(){
|
||||
o_player.freetimer = null;
|
||||
o_player.o_agent.players[o_player.playerid - 100001] = null;
|
||||
}
|
||||
|
||||
if (!o_player.advanced){
|
||||
//4小时后释放玩家
|
||||
o_player.freetimer = min_ontimeout(do_freeplayer, 7 * 24 * 60 * 60 * 1000);
|
||||
}
|
||||
},
|
||||
|
||||
//关闭释放玩家的定时器
|
||||
close_free_timer: function(o_player){
|
||||
if (o_player.freetimer){
|
||||
min_closetime(o_player.freetimer);
|
||||
o_player.freetimer = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user