目录结构调整

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,242 @@
var Game_Config = Game_Config||{};//相关配置
Game_Config.Debugger={//调试配置
isDebugger : false,// debugger模式下会将所有收发的包输出到控制台(正式发布改为false)
AutoLogin : true,//debugger模式下是否需要记住登录状态自动登录(正式发布改为true)
isSubmitError : true,//是否需要服务器收集错误信息调试时可根据需要正式发布改为true
visitorLogin : true,//隐藏式游客登录
visiblePay:true,//审核通过后是否显示支付按钮
serverType:0,//0->正式服务器 1->测试服务器 2->本地服务器
//gameserver:"http://testgame.youlehdyx.com/update_json/ceshi_json.txt"
gameserver:"https://tsgames.daoqi88.cn/config/update_jsonv2.txt"
};
Game_Config.Max = {
SumOfRoomtype:3,//创建时房间类型roomtype数组长度
ShowChat:2000,//聊天停留时间
PlayerCnt:3,//房间最大人数
group:500,//游戏最大群组号
showtime:10,//加载等待最少时间
reconnecttime:30000,//唤醒游戏间隔(超过间隔断线重连)
Mainnickname:10,//主界面玩家昵称显示长度(字符长度)
Infonickname:16//个人信息显示长度(字符长度)
};
Game_Config.Combat = {
height:80,//战绩页单行高度高度
up_y:190,//战绩页裁剪y坐标
bannerheight:60,//战绩横幅高度
bannery:80,//战绩横幅Y左边相对48精灵
btnbg:50
};
Game_Config.Info = {
Mainnickname:6,//游戏主界面玩家信息显示最大长度(字符)
textwidth_1:12.5,//聊天显示文字的宽度(未改动聊天显示文字大小无需改动无需修改)
textwidth_2:12.5,//聊天显示文字的宽度(未改动聊天显示文字大小无需改动无需修改)
otherPositionDefault:true,//其他主界面玩家信息(昵称、积分)是否采用默认对齐方式对齐居中点为头像中点
myPositionDefault:true,//其他主界面玩家信息(昵称、积分)是否采用默认对齐方式对齐居中点为头像中点
myPosition:75,//自己信息对齐点(根据游戏界面自行修改)
position:[],//其他主界面玩家信息昵称、积分居中对齐的x坐标 注意是其他玩家不包括自己从下家开始
TextContent:["嫩真好喂打牌!","打的恶过下特!","晓得的嫩狼打牌个!","快级出牌、快级出牌哦,等的压里!","笔想恰愣里!","有奖放奖和!","不好意思,等两分钟马上来!"],//常用语内容
TextContentMp3:["","","","","","",""],//常用语对应音效
};
Game_Config.Share={//分享参数
appdownload:"",//下载链接(无需配置,从服务器获取)
title:"关牌",//(分享标题)
description:"关牌",//分享描述
gameTitle:"",//游戏中的分享标题模板工程会自动将游戏名字分享出去、不必写在这个变量里
gameDescription:""//游戏中分享描述
};
Game_Config.Chat={//游戏内聊天配置信息
LimitLength:40,//聊天最大长度(字节长度)
textwidth:12.5,//聊天显示文字的宽度(未改动聊天显示文字大小无需改动无需修改)
ChatDis:[30,12],//聊天气泡与内容的间隔0位置左右间隔(最好不要低于30)1位置上下间隔
isLeft:[1,0,1,1,1],//聊天气泡是否为以左边为基准线
ChatLoc:[[100,480],[1180,153],[93,153],[185,192],[175,315]]//聊天气泡的基准点位置(注意是基准点位置!)
};
Game_Config.Voice={//游戏内聊天配置信息
VoiceTime:600,//播放语音动画的时间一般情况无需无需修改
VoiceDis:[30,12],//语音气泡与内容的间隔0位置左右间隔(最好不要低于30)1位置上下间隔
isLeft:[1,0,1,1,1],//气泡是否为以左边为基准线
VoiceLoc:[[100,480],[1180,153],[93,153],[185,192],[175,315]]//气泡的基准点位置(注意是基准点位置!)
};
Game_Config.Setting={
Ads1:"本游戏仅为娱乐休\n闲使用房卡所有\n 游戏通用\n\n游戏问题请联系微\n 信公众号:\n",
//Ads2:"\n 或客服号:\n",
board:"",//从后台获取设置无效
//info:[" 客服信息","QQ:","",""],//客服QQ提醒
info:[" 客服信息","QQ:","手机:","微信:"],//客服QQ提醒
board_blength:24,//通知页面一行最大字节数(无需设置)
charge:"关注友乐微信公众号充值",//充值提示
};
Game_Config.Protocol={
x:270,//协议图片初始x坐标
y:70,//协议图片初始y坐标
h:560,//协议图片显示高度
w:729//协议图片显示宽度
};
Game_Config.Help={//帮助
x:240,//帮助图片初始x坐标
y:170,//帮助图片初始y坐标
w:820,//帮助图片显示高度
h:460//帮助图片显示宽度
};
Game_Config.Notice={//滚动公告
x1:0,//无需设置
x2:0,//无需设置
y:0,//无需设置
h:0,//无需设置
//以上参数用来截取滚动公告的显示,截取位置是与滚动公告底大小位置一致
speed:0.1,//滚动公告的滚动速度
width:15//滚动公告的内容字体的字节长度(汉字是两个字节)
};
Game_Config.Feedback = {//反馈配置
maxLen:250 //反馈内容最大长度
};
Game_Config.shakeList ={//摇一摇事件的回调ID、需要添加时在此处添加回调事件写在Utl_Input.js中的Utl.shakeEvent()中
nil:0,
startwar:1
};
Game_Config.soundList ={//声音资源名
MenuSceneMusic:"00188.mp3",//大厅界面背景音
MainSceneMusic:"00187.mp3"//游戏主界面背景音
//Button:""//按钮音效
};
Game_Config.ClickButton = {//需要设置点击音效的按钮(只有有弹窗的按钮设置此音效有效、按钮已经设置好、子游戏不允许修改)
src_1:"",//点击时播放的声音资源文件( 不需要播放则不填,下同)
src_2:""//弹窗时播放的音效
}
//Game_Config.gameConfig = {//游戏配置
//gameMode:0,//游戏模式
//};
Game_Config.loginButton = {//登录按钮信息
x1:415,//非审核版本微信登录按钮x
x2:113,//审核版本微信登录按钮x
x3:488,//审核版本游客登录按钮x
};
Game_Config.sysConfig = {
mainMenuButton:false,//是否进入主菜单界面隐藏四个按钮
mainScenePlayerInfo:false,//是否隐藏主界面玩家信息
mainSceneButton:false,//是否隐藏主界面按钮
shareRoom:false,//接收到星星场是否屏蔽平台框架显示
changeSeat:false,//是否屏蔽平台自动刷新换座后界面
hideNotice:false,//隐藏公告栏
vipInfinite:false,//vip房是否默认开启无限局
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,451 @@
Game_Modify.StartWar=function(_msg){//开战
gp_ui_kaizhan();
Utl.changePlayerState(0);
huifang=0;
}
Game_Modify._ReceiveData=function(_msg){//接收数据包
set_level (101,1);
gp_sfb(_msg);
}
Game_Modify.createRoom=function(_roomtype,_infinite){//创建房间
GameUI.openRoomInfo();
}
Game_Modify.myJoinRoom=function(_msg){//自己进入房间
if (Utl.getIsInfinite() == 1) {//如果是无限局
for (var i = 0; i < _msg.data.players.length; i++) {
Utl.setGrade(i,Desk.GetPlayerBySeat(i).bean);
}
}
GameUI.openRoomInfo();
}
Game_Modify.Reconnect=function(_deskinfo){//重连
set_self(291,57,35,0,0);
game = _deskinfo;
game.suoyoupai = _deskinfo.pai;
if(Utl.getIsDebugger() == 1)
{
game.pai = _deskinfo.pai[Utl.getMySeat()];
}
game.tuoguan = game.tuoguan[Utl.getMySeat()];
//game.difen = GameData.gameConfig.difen[_deskinfo.leixing[4]-1];
game.xs_paishu = [];
for(var i = 0;i<_deskinfo.carlen.length;i++){
game.xs_paishu[i] = _deskinfo.carlen[i];
}
game.ersansi = [1017,1034,1051,1068];
if ( game.leixing[3]==2) {
if (game.laizi ==14 ) {
game.laizi = 1;
}else if(game.laizi ==15 ) {
game.laizi = 2;
}
}else {
game.laizi = 0;
game.laizi_bian = [[],[],[]]
}
if (Utl.getIsInfinite() == 1) {//如果是无限局
if(_deskinfo.zhuangtai == 1){
Utl.setDeskStage(1);
}else{
Utl.setDeskStage(0);
for (var i = 0; i < 3; i++) {
if (Utl.getPlayerReadyState(i) == 1) {//是否准备
Utl.setPlayerPrepare(i,1);
}
}
}
for (var i = 0; i < game.people; i++) {
Utl.setGrade(i,Desk.GetPlayerBySeat(i).bean);
}
}
if (game.zhuangtai>0&&game.zhuangtai<4) {
huifang=0;
}
gp_chonglian();
}
Game_Modify.stopAllSounds=function(){//关闭所有声音 (游戏声音)
}
Game_Modify.Free=function(_msg){//投票解散结果为同意时,点击结果界面确认的按钮时触发
if (game.zhuangtai == 1) {
game.jushu[0] = game.jushu[0]-1;
}
game.zhuangtai = 3;
kg=2;
game.grade = _msg.data.grade;
game.quanbufen = _msg.data.quanbufen;
gp_ui_daju();
}
Game_Modify.DeskInfo=function(_msg){//开战状态下自己加入是牌桌数据
if(_msg.zhuangtai == 1){
Utl.setDeskStage(1);
}else{
Utl.setDeskStage(0);
Utl.setPlayerPrepare(Utl.getMySeat(), 0);
}
}
Game_Modify.breakRoom=function(){//游戏已开局情况下自己退出房间触发
}
Game_Modify.playerJoinRoom=function(seat){//其他玩家加入房间
if (Utl.getIsInfinite() == 0) {//如果bu是无限局
if (seat == 0) {
set_group(219,37,0,0,0);
set_self(1135+Utl.changeToStatus(0),37,1,0,0);
}
}else {
Utl.setGrade(seat,Desk.GetPlayerBySeat(seat).bean);
if (Utl.getPlayerReadyState(seat) == 1) {//是否准备
Utl.setPlayerPrepare(seat,1);
}else {
Utl.setPlayerPrepare(seat,0);
}
}
}
Game_Modify.playerLeaveRoom=function(seat){//其他玩家离开房间
if (seat == 0) {
set_group(219,37,0,0,0);
//set_self(1135+Utl.changeToStatus(0),37,1,0,0);
}
}
Game_Modify.updateScene = function(){//更新游戏界面
//根据本地数据重新显示界面
if (huifang == 0) {
gp_chonglian();
}
}
Game_Modify.closeGameScene=function(){//关闭游戏界面
}
Game_Modify.playerOffline = function(seat){//玩家离线
}
Game_Modify.playerOnline = function(seat){//玩家上线
}
Game_Modify.playerphonestate = function(seat,type){//玩家电话状态type->挂断1->接打电话、有电话进来的状态
}
Game_Modify.shakeEvent = function(){
switch(GameData.shakeID){
case Game_Config.shakeList.startwar://摇一摇开战(如果有主动开战)
var data={};
data.agentid=GameData.AgentId;
data.gameid=GameData.GameId;
data.playerid=C_Player.playerid;
data.roomcode=Desk.roomcode;
Net.Send_self_makewar(data);
Func.stopshake();
GameData.shakeID=Game_Config.shakeList.nil;
break;
}
}
Game_Modify.calResult = function(inputArr){
var xsd = [];
for (var i=0;i<game.people;i++) {
xsd[i] = min_replaceAll(String(ifast_abs(inputArr[i])),'\\.', 'b', '');
}
var input_mul = min_replaceAll(String(GameData.Multiple), "b", ".", false);
input_mul = Number(input_mul);
if(input_mul==0){
input_mul = 1;
}
for (var i=0;i<game.people;i++) {
//xsd[i]=game.grade[i]*input_mul;
set_self(1541+i,20,30*ifast_inttostr(xsd[i]).length,0,0);
set_self(1541+i,7,xsd[i]);
set_self(1541+i,18,get_self(1537+i,18)+36-15*ifast_inttostr(ifast_abs(inputArr[i])).length,0,0);
set_self(1545+i,7,"x"+input_mul);
set_self(1545+i,18,375+334*i-7*ifast_inttostr(input_mul).length,0,0);
if(inputArr[i]<0) //显示zong分
{
set_self(1549+i,37,1);
set_self(1549+i,18,get_self(1541+i,18)-30,0,0);
}
else
{
set_self(1549+i,37,0);
}
}
}
Game_Modify.onEnterMainScene = function(roomtype){//进入游戏主场景
set_group(219,37,0,0,0);
if (Utl.getIsInfinite() == 1) {//如果是无限局
var jbc=1;
set_self(1480,7,"("+roomtype[6][0]+"倍;限制"+roomtype[6][1]+")",0,0);
set_self(1479,43,jbc,0,0);
set_self(1480,37,1,0,0);
set_self(1479,37,1,0,0);
} else {
set_self(1135+Utl.changeToStatus(0),37,1,0,0);
}
set_self(291,57,35,0,0);
}
Game_Modify.onExitMainScene = function(){//退出游戏主场景
if (Utl.getIsInfinite() == 1) {//如果是无限局
Utl.setPlayerPrepare(Utl.getMySeat(), 0);
}
console.log("退出游戏主场景");
}
Game_Modify.onGameConfig = function(_gameConfig){//获取到游戏配置时调用(只在game_config有数据时才调用)
zhadanfen = _gameConfig.zha;
//game.hf_difen = _gameConfig.difen;
Game_Modify.Type_1 = [
{id:0,des:_gameConfig.numbergames[0]+"局"+"(房卡X"+_gameConfig.buckle[0]+")",roomcard:1,type:1},
{id:1,des:_gameConfig.numbergames[1]+"局"+"(房卡X"+_gameConfig.buckle[1]+")",roomcard:2,type:2}
];
Game_Modify.Type_2 = [
{id:0,des:_gameConfig.people[0]+"人",type:1},
{id:1,des:_gameConfig.people[1]+"人",type:2}
//{id:2,des:_gameConfig.people[2]+"人",type:3}
];
Game_Modify.Type_3 = [
{id:0,des:_gameConfig.zha[0]+"分",type:1},
{id:1,des:_gameConfig.zha[1]+"分",type:2},
{id:2,des:_gameConfig.zha[2]+"分",type:3},
{id:3,des:_gameConfig.zha[3]+"分",type:4}
];
//Game_Modify.Type_5 = [
//{id:0,des:_gameConfig.difen[0]+"分",type:1},
//{id:1,des:_gameConfig.difen[1]+"分",type:2}
//{id:2,des:_gameConfig.difen[2]+"分",type:3}
//];
dfpeizhi = _gameConfig.difen; //低分配置
xxcbs = _gameConfig.beishu; //星星场倍数
xxcxz = _gameConfig.xianzhi; //星星场限制
}
Game_Modify.onEnterVideo = function(){//进入牌局回放触发
huifang = 1;
set_level (101,1);
for ( var i=1001;i<=1068;i++) {
set_self(i,33,50,0,0);
}
set_self(291,7,Game_Modify.roomDes,0,0);
var aaa = game.hf_huifang[game.hf_ju].pai;
var bbb = game.hf_playerid.length;
var ccc = game.hf_huifang[game.hf_ju].kaijufen;
var ddd = game.hf_huifang[game.hf_ju].zhuang;
baipai(aaa,bbb);
game.jushu = game.hf_huifang[game.hf_ju].jushu;
gp_ui_xs_jushu();
xs_zongfen(ccc,bbb);
hf_shizhong(ddd);
set_self(1054,57,2000,0,0);
set_self(1139,37,1,0,0);
set_self(1140,37,1,0,0);
set_self(1140,43,2,0,0);
set_self(1141,37,1,0,0);
if (game.hf_huifang[game.hf_ju].laizi.length == 0) {
set_self(1143,37,0,0,0);
}else {
set_self(1143,43,(game.hf_huifang[game.hf_ju].laizi-1)%13+1,0,0);
set_self(1143,18,567,0,0);
set_self(1143,19,-10,0,0);
set_self(1143,33,45,0,0);
set_self(1143,1,567,0,0);
set_self(1143,37,1,0,0);
}
}
Game_Modify.onSurrender = function(_msg){//收到投降回包
}
Game_Modify.onReady = function(seat){//玩家准备触发
if (Utl.getIsInfinite() == 1) {//如果是无限局
Utl.setPlayerPrepare(seat, 1);
}
}
Game_Modify.getRoomInfo = function(roomtype,type,tea){//tea为茶水费如有此属性且不为undefined或者null茶水费以此为准
//通过roomtype获取房间描述每行最多18个字符超过需要自己换行type1系统房间2非系统房间
console.log("Game_Modify.getRoomInfo:"+roomtype);
return Game_Modify.Type_2[roomtype[1]-1].des+" 底"+roomtype[4]+"分"+
" 炸"+Game_Modify.Type_3[roomtype[2]-1].des + " "+Game_Modify.Type_4[roomtype[3]-1].des;
}
Game_Modify.getStarLimit = function(roomtype){//通过roomtype获取房间星星场下限数量
console.log("Game_Modify.getStarLimit:"+roomtype);
return roomtype[6][1];
}
Game_Modify.getMult = function(roomtype,type){//通过roomtype获取房间星星场倍数
if(type == 1){
return roomtype[6][0];
}else{
return 1;
}
}
Game_Modify.getFullRoomInfo = function(roomtype){//通过roomtype获取房间全部信息描述 每行最多26个字符超过需要自己换行
console.log("Game_Modify.getFullRoomInfo:"+roomtype);
var xxcjiesao="";
if (roomtype[5] == 2) {
//xxcjiesao = "\n星星场\n("+roomtype[6][0]+"倍;限制"+roomtype[6][1]+")";
}
return Game_Modify.Type_1[roomtype[0]-1].des +'\n'+ Game_Modify.Type_2[roomtype[1]-1].des +"\n炸"+Game_Modify.Type_3[roomtype[2]-1].des+" 底"+roomtype[4]+"分"+xxcjiesao
+ "\n"+Game_Modify.Type_4[roomtype[3]-1].des + "\n"+Game_Modify.Type_6[roomtype[7]-1].des;;
}
Game_Modify.onOpenHelp = function(spid){//打开帮助页面触发
}
//显示大厅界面触发
Game_Modify.onMainMenuScene = function(){
set_self(1054,57,0,0,0);
set_self(1075,57,0,0,0);
set_self(1061,57,0,0,0);
set_self(1060,57,0,0,0);
set_self(1053,57,0,0,0);
for (var i = 201; i < 223; i++) {
set_group(i,37,0,0,0);
}for (var i = 301; i < 305; i++) {
set_group(i,37,0,0,0);
}for (var i = 501; i < 510; i++) {
set_group(i,37,0,0,0);
}gp_ui_paihuanyuan();
}
//确认数字输入框回调
Game_Modify.onCheckInput = function(_result){
console.log(_result);
Utl.closeInputPanel();
switch (tanchuang){
case 0:
if(_result<=1)
{
difen = 1;
}
else if(_result >= dfpeizhi)
{
difen = dfpeizhi;
}
else
{
difen = _result;
}
set_self(1392,7,difen+"分"+"(1分~"+dfpeizhi+"分)");
break;
case 1:
if(_result<=xxcbs[0])
{
xxcshuju[0] = xxcbs[0];
xsxianzhi[0] = xxcshuju[0]*xxcxz[0];
xsxianzhi[1] = xxcshuju[0]*xxcxz[1];
}
else if(_result >= xxcbs[1])
{
xxcshuju[0] = xxcbs[1];
xsxianzhi[0] = xxcshuju[0]*xxcxz[0];
xsxianzhi[1] = xxcshuju[0]*xxcxz[1];
}
else
{
xxcshuju[0] = _result;
xsxianzhi[0] = xxcshuju[0]*xxcxz[0];
xsxianzhi[1] = xxcshuju[0]*xxcxz[1];
}
if (xxcshuju[1]<=xsxianzhi[0]) {
xxcshuju[1] = xxcshuju[0]*xxcxz[0];
}else if (xxcshuju[1]>=xsxianzhi[1]) {
xxcshuju[1] = xxcshuju[0]*xxcxz[1];
}
set_self(1482,7,xxcshuju[0]);
set_self(1482,20,24*ifast_inttostr(xxcshuju[0]).length,0,0);
set_self(1475,7,"(最小:"+xsxianzhi[0]+"最大:"+xsxianzhi[1]+")",0,0);
set_self(1483,7,xxcshuju[1]);
set_self(1483,20,24*ifast_inttostr(xxcshuju[1]).length,0,0);
break;
case 2:
if(_result<=xsxianzhi[0])
{
xxcshuju[1] = xsxianzhi[0];
}
else if(_result >= xsxianzhi[1])
{
xxcshuju[1] = xsxianzhi[1];
}
else
{
xxcshuju[1] = _result;
}
set_self(1483,7,xxcshuju[1]);
set_self(1483,20,24*ifast_inttostr(xxcshuju[1]).length,0,0);
break;
case 3:
if(_result<=0)
{
xxcshuju[2] = 0;
}
else if(_result >= xxccsf)
{
xxcshuju[2] = xxccsf;
}
else
{
xxcshuju[2] = _result;
}
set_self(1484,7,xxcshuju[2]);
set_self(1484,20,24*ifast_inttostr(xxcshuju[2]).length,0,0);
break;
}
}
Game_Modify.onCreateRoom = function(_data){//无限局创建新桌时返回游戏数据
if (Utl.getIsInfinite() == 1) {//如果是无限局
Utl.setGrade(Utl.getMySeat(),Desk.GetPlayerBySeat(Utl.getMySeat()).bean);
}
}
Game_Modify.getLeaveLimit = function(roomtype){//获取星星场离场限制
return roomtype[6][1];
}
//成功获取定位信息触发
Game_Modify.onLocationInfo = function(_locationInfo){
}
//进入游戏界面创建牌桌之前调用
Game_Modify.onCreateDesk = function(roomtype){
console.log("onCreateDesk:"+roomtype);
}
//通过roomtype获取是否开启视频功能0->不开启1->开启
Game_Modify.getVideoByRoomType = function(roomtype){
return 1;
}
Game_Modify.getRoomTopDescAry = function(roomtype){
//return ["牛几几倍","一副牌","特色玩特色玩法"];
if (Utl.getIsInfinite() != 1) {//如果不是无限局
if(Game_Modify.roomDes && Game_Modify.roomDes.length>0)
{
var s=Game_Modify.roomDes.split(") ");
s=s[1].split(" ");
return [zongju+"局",s[0]+" ",s[1],s[2],s[3],s[4]];
}
return [""];
}else {
var roomdes =Game_Modify.Type_2[roomtype[1]-1].des+"关牌 底"+roomtype[4]+"分"+
" 炸"+Game_Modify.Type_3[roomtype[2]-1].des + " "+Game_Modify.Type_4[roomtype[3]-1].des ;//+ " "+Game_Modify.Type_6[roomtype[7]-1].des
var s=roomdes.split(" ");
return [s[0]+" ",s[1],s[2],s[3]];//,s[4]
}
}
//星星场房间列表
Game_Modify.getShareRoom = function(_msg){
}
//玩家自己退出房间
Game_Modify.myExitRoom = function(seat){
}
//接收到换座包触发
Game_Modify.changeSeat = function(seat1,seat2){
}
//关闭vip选项时调用
Game_Modify.onCloseVip = function(){
}
//判断房间是否为金币场(是金币场返回1否则返回0)
Game_Modify.getRoomMode = function(roomtype){
return 0;
}