Files
youle_cocos/projects/guanpai-jx/js/01_SubGame/02_SubGame_Input.js
T
joywayerandClaude Opus 4.8 7ab748919a chore: 纳入项目全部源码进根仓库统一管理
删除 YouleNexus 内嵌 .git,统一由根仓库唯一管理。提交:
- projects/ 旧 H5 模板 Game_Surface_3 与各子游戏源码
- cocoscreator_projects/YouleNexus 工程 + cocos-creator-mcp 扩展源码
- CLAUDE.md、.mcp.json 等配置
library/temp/node_modules/dist 等缓存由 .gitignore 排除。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 11:55:13 +08:00

452 lines
13 KiB
JavaScript

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;
}