目录结构调整

This commit is contained in:
2026-02-04 23:47:45 +08:00
parent 6938c911c3
commit 6b22238c6e
8780 changed files with 15333 additions and 574 deletions

View File

@@ -0,0 +1,426 @@
///////////////////////////////////////////////////
///////// 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;
msg.data={};
msg.data.fromOther = 0;
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);
msg.data.type = type;
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;
//需要语音提示的房主抽成金币到账
case 6:
//msg.data.text = "扣除比赛报名费用:" + push + starName;
break;
case 7:
if(change > 0){
msg.data.text = "获赠" + change + starName;
}else{
msg.data.text = "送出" + Math.abs(change) + 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);
msg.data.type=type;
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;
case 7:
if(change > 0){
msg.data.text = "获赠" + change + starName;
}else{
msg.data.text = "送出" + Math.abs(change) + starName;
}
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;
}
}
}