You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
675 lines
27 KiB
675 lines
27 KiB
import { assetManager, Button, color, sys } from 'cc';
|
|
import { Label } from 'cc';
|
|
import { EventTouch } from 'cc';
|
|
import { instantiate } from 'cc';
|
|
import { EditBox } from 'cc';
|
|
import { _decorator, Component, Node } from 'cc';
|
|
import { Prefab } from 'cc';
|
|
import { isValid } from 'cc';
|
|
import { GBundle, GPath, UIID } from './ConfigRes';
|
|
import { UILayer } from '../../mx/module/ui/UIManager';
|
|
import { ItemNumType, OtherDataType, StatisticsType } from './GameData';
|
|
import { GEvent } from '../../mx/module/event/GEvent';
|
|
import { TableNames } from './ConfigTableData';
|
|
import { BattleType, ChapterDataManager, ChapterDifficulty } from '../manager/ChapterDataManager';
|
|
import { IBattleSkill } from '../ui/BattleGame/BattleDataManager';
|
|
import MTools from '../../mx/tools/MTools';
|
|
import { LangType } from '../../mx/module/lang/Lang';
|
|
import { sdkConfig } from '../sdk/sdkConfig';
|
|
const { ccclass, property } = _decorator;
|
|
|
|
@ccclass('GM')
|
|
export class GM extends Component {
|
|
|
|
static Instance: GM;
|
|
static ShowGM = false;
|
|
|
|
static show() {
|
|
this.ShowGM = !this.ShowGM;
|
|
if (GM.Instance && isValid(GM.Instance.node)) {
|
|
GM.Instance.node.active = this.ShowGM;
|
|
return;
|
|
}
|
|
if (this.ShowGM) {
|
|
let res = gg.res.getNode(GPath.UIPrefab, "gm", GBundle.First);
|
|
gg.ui.showNode(res, UILayer.DeBug);
|
|
GM.Instance = res.getComponent(GM);
|
|
}
|
|
}
|
|
|
|
|
|
@property(EditBox)
|
|
eb_prama: EditBox;
|
|
@property(Node)
|
|
ui_quickBtns: Node;
|
|
@property(Node)
|
|
ui_paramBtns: Node;
|
|
@property(Node)
|
|
ui_help: Node;
|
|
@property(Label)
|
|
lb_help: Label;
|
|
|
|
|
|
content: Node;
|
|
btnGM: Node;
|
|
btnClear: Button;
|
|
btnClose: Button;
|
|
btnHelp: Button;
|
|
|
|
protected onLoad(): void {
|
|
this.content = this.node.find("content");
|
|
this.btnGM = this.node.find("btnGM");
|
|
this.btnClear = this.content.find("ui_content/ui_head/btnClear").getComponent(Button);
|
|
this.btnClose = this.content.find("ui_content/ui_head/btnClose").getComponent(Button);
|
|
this.btnHelp = this.content.find("ui_content/ui_head/btnHelp").getComponent(Button);
|
|
}
|
|
|
|
protected onEnable(): void {
|
|
this.btnGM.on(Button.EventType.CLICK, this.onOpenGM, this);
|
|
this.btnClear.node.on(Button.EventType.CLICK, this.onClear, this);
|
|
this.btnClose.node.on(Button.EventType.CLICK, this.onClose, this);
|
|
this.btnHelp.node.on(Button.EventType.CLICK, this.onHelp, this);
|
|
this.ui_help.on(Button.EventType.CLICK, this.onHelpUI, this);
|
|
this.btnGM.active = false;
|
|
this.onOpenGM();
|
|
this.initBtnEvents();
|
|
this.lb_help.string = this._helpStr;
|
|
this.ui_help.active = false;
|
|
}
|
|
|
|
protected onDisable(): void {
|
|
this.btnGM.off(Button.EventType.CLICK, this.onOpenGM, this);
|
|
this.btnClear.node.off(Button.EventType.CLICK, this.onClear, this);
|
|
this.btnClose.node.off(Button.EventType.CLICK, this.onClose, this);
|
|
this.btnHelp.node.off(Button.EventType.CLICK, this.onHelp, this);
|
|
this.ui_help.off(Button.EventType.CLICK, this.onHelpUI, this);
|
|
this.ui_quickBtns.children.map(x => x.off(Node.EventType.TOUCH_END, this.onQuickBtnClick, this));
|
|
this.ui_paramBtns.children.map(x => x.off(Node.EventType.TOUCH_END, this.onParamBtnClick, this));
|
|
}
|
|
|
|
initBtnEvents() {
|
|
for (let i = 0; i < this.quickBtns.length; i++) {
|
|
let btn: Node = null;
|
|
if (i < this.ui_quickBtns.children.length)
|
|
btn = this.ui_quickBtns.children[i];
|
|
else
|
|
btn = instantiate(this.ui_quickBtns.children[0]);
|
|
btn.active = true;
|
|
btn.name = this.quickBtns[i];
|
|
btn.setParent(this.ui_quickBtns);
|
|
btn.getComponentInChildren(Label).string = this.quickBtns[i];
|
|
btn.getComponentInChildren(Label).outlineColor = color().fromHEX(this.colors[i % this.colors.length]);
|
|
btn.on(Node.EventType.TOUCH_END, this.onQuickBtnClick, this);
|
|
}
|
|
|
|
for (let i = 0; i < this.paramBtns.length; i++) {
|
|
let btn = null;
|
|
if (i < this.ui_paramBtns.children.length)
|
|
btn = this.ui_paramBtns.children[i];
|
|
else
|
|
btn = instantiate(this.ui_paramBtns.children[0]);
|
|
btn.active = true;
|
|
let [name, desc] = this.paramBtns[i].split("|");
|
|
btn.name = name;
|
|
btn.setParent(this.ui_paramBtns);
|
|
btn.getChildByName("lb1").getComponent(Label).string = name;
|
|
btn.getChildByName("lb1").getComponent(Label).outlineColor = color().fromHEX(this.colors[i % this.colors.length]);
|
|
btn.getChildByName("lb2").getComponent(Label).string = "参数:" + desc;
|
|
btn.on(Node.EventType.TOUCH_END, this.onParamBtnClick, this);
|
|
}
|
|
|
|
this.scheduleOnce(() => {
|
|
this.refreshparamBtns()
|
|
}, 1)
|
|
|
|
|
|
}
|
|
|
|
|
|
refreshparamBtns() {
|
|
//
|
|
for (let i = 0; i < this.ui_paramBtns.children.length; i++) {
|
|
let btn = this.ui_paramBtns.children[i];
|
|
if (btn.name == "设置金钱") {
|
|
let myMoney = gg.data.getItemNum(ItemNumType.money)
|
|
btn.getChildByName("lb2").getComponent(Label).string = "参数:" + myMoney;
|
|
} else if (btn.name == "设置体力") {
|
|
let myEnergy = gg.data.getItemNum(ItemNumType.vigour)
|
|
btn.getChildByName("lb2").getComponent(Label).string = "参数:" + myEnergy;
|
|
} else if (btn.name == "设置钻石") {
|
|
let myDiamond = gg.data.getItemNum(ItemNumType.diamond)
|
|
btn.getChildByName("lb2").getComponent(Label).string = "参数:" + myDiamond;
|
|
} else if (btn.name == "设置关卡解锁") {
|
|
let maxChapter = gg.data.doc.chapter
|
|
btn.getChildByName("lb2").getComponent(Label).string = "参数:" + maxChapter;
|
|
} else if (btn.name == "设置玩家局内血量") {
|
|
let myHp = gg.game.playerHp
|
|
btn.getChildByName("lb2").getComponent(Label).string = "参数:" + myHp;
|
|
} else if (btn.name == "关卡初始银币") {
|
|
let initSilver = gg.game.playerCoinNum
|
|
btn.getChildByName("lb2").getComponent(Label).string = "参数:" + initSilver;
|
|
} else if (btn.name == "关卡怪物倍数") {
|
|
let initMonsterNum = gg.game.monsterNumScale
|
|
btn.getChildByName("lb2").getComponent(Label).string = "参数:" + initMonsterNum;
|
|
} else if (btn.name == "设置玩家武器") {
|
|
let myWeapon = gg.game.playerWeaponIdArray.join("|")
|
|
btn.getChildByName("lb2").getComponent(Label).string = "参数:" + myWeapon;
|
|
} else if (btn.name == "设置玩家技能") {
|
|
//技能的id gg.game.playerSkillIdArray
|
|
let mySkill = ""
|
|
for (let i = 0; i < gg.game.playerSkillIdArray.length; i++) {
|
|
mySkill = mySkill + gg.game.playerSkillIdArray[i].id + '|'
|
|
}
|
|
|
|
btn.getChildByName("lb2").getComponent(Label).string = "参数:" + mySkill;
|
|
} else if (btn.name == "设置玩家技能组") {
|
|
let mySkillGroup = ''
|
|
for (let i = 0; i < gg.game.playerSkillGroupIdArray.length; i++) {
|
|
let groupList = gg.game.playerSkillGroupIdArray[i]
|
|
for (let j = 0; j < groupList.length; j++) {
|
|
|
|
if (j == groupList.length - 1) {
|
|
mySkillGroup = mySkillGroup + groupList[j].id + '|'
|
|
} else {
|
|
mySkillGroup = mySkillGroup + groupList[j].id + ','
|
|
}
|
|
}
|
|
}
|
|
|
|
btn.getChildByName("lb2").getComponent(Label).string = "参数:" + mySkillGroup;
|
|
} else if (btn.name == "设置玩家武器组") {
|
|
let myWeaponGroup = ''
|
|
for (let i = 0; i < gg.game.playerWeaponGroupIdArray.length; i++) {
|
|
let groupList = gg.game.playerWeaponGroupIdArray[i]
|
|
for (let j = 0; j < groupList.length; j++) {
|
|
|
|
if (j == groupList.length - 1) {
|
|
myWeaponGroup = myWeaponGroup + groupList[j].weaponid + '|'
|
|
|
|
} else {
|
|
myWeaponGroup = myWeaponGroup + groupList[j].weaponid + ','
|
|
}
|
|
}
|
|
}
|
|
btn.getChildByName("lb2").getComponent(Label).string = "参数:" + myWeaponGroup;
|
|
}else if(btn.name == "设置倍速"){
|
|
btn.getChildByName("lb2").getComponent(Label).string = "参数:" + gg.game.tetriGameSpeed;
|
|
}else if(btn.name == "设置怪物的攻击和血量百分比"){
|
|
btn.getChildByName("lb2").getComponent(Label).string = "参数:" + gg.game.monsterAttackPercent*100 + '%';
|
|
|
|
}else if(btn.name == "设置无重力墙权重值"){
|
|
btn.getChildByName("lb2").getComponent(Label).string = "参数:" + gg.game.noGravityWallProbability;
|
|
}
|
|
}
|
|
}
|
|
|
|
onClear() {
|
|
gg.ui.closeAllPanel();
|
|
GEvent.Ins.emit(GEvent.GameRestart);
|
|
gg.game.reset('GM重置');
|
|
}
|
|
|
|
onOpenGM() {
|
|
this.content.active = true;
|
|
this.btnGM.active = false;
|
|
}
|
|
|
|
onHelp() {
|
|
this.ui_help.active = !this.ui_help.active;
|
|
}
|
|
|
|
onHelpUI() {
|
|
this.ui_help.active = false;
|
|
}
|
|
|
|
onClose() {
|
|
GM.show();
|
|
// this.content.active = false;
|
|
// this.btnGM.active = true;
|
|
}
|
|
|
|
isShowFps = true;
|
|
|
|
|
|
colors = ["#21F018", "#05DBF8", "#EF9EFF", "#FFFF00", "#FFE09E", "#E8FF9E", "#47CA14", "#3CDCF1", "#E0FF00", "#20FA80"];
|
|
quickBtns = [
|
|
"关卡障碍物关闭",
|
|
"关卡障碍物开启",
|
|
"关卡怪物倍数清除",
|
|
"清除血量和障碍物",
|
|
'清除副本次数难度全开',
|
|
"今日首次登录(每日重置)",
|
|
"复制存档",
|
|
"设置武器等级",
|
|
"设置武器和技能",
|
|
'设置方块手指释放处掉落',
|
|
'设置关卡不出怪'
|
|
];
|
|
paramBtns = [
|
|
"设置金钱|金币数量",
|
|
"设置体力|体力数量",
|
|
"设置钻石|钻石数量",
|
|
"设置关卡解锁|关卡解锁",
|
|
"设置玩家局内血量|血量数量",
|
|
"设置玩家等级|玩家等级",
|
|
"关卡初始银币|银币数量",
|
|
'设置玩家存档|设置玩家存档',
|
|
"设置无重力墙权重值|越大越容易出现无重力墙",
|
|
"设置倍速|最高3倍",
|
|
"设置怪物的攻击和血量百分比|攻击和血量"
|
|
];
|
|
|
|
onQuickBtnClick(event: EventTouch) {
|
|
switch (event.target.name) {
|
|
|
|
case "关闭广告":
|
|
gg.sdk.showAd = false;
|
|
break;
|
|
case "显示广告":
|
|
gg.sdk.showAd = true;
|
|
break;
|
|
case "关卡障碍物关闭":
|
|
gg.game.isShowObstacle = false;
|
|
break;
|
|
case "关卡障碍物开启":
|
|
gg.game.isShowObstacle = true;
|
|
break;
|
|
case "关卡怪物倍数清除":
|
|
gg.game.monsterNumScale = 1;
|
|
break;
|
|
case "玩家技能清除":
|
|
gg.game.playerSkillIdArray = [];
|
|
break;
|
|
case "玩家武器清除":
|
|
gg.game.playerWeaponIdArray = [];
|
|
break;
|
|
case "清除血量和障碍物":
|
|
gg.game.playerHp = 0;
|
|
gg.game.playerCoinNum = 0;
|
|
break;
|
|
case "清除玩家技能组和武器组":
|
|
gg.game.playerSkillGroupIdArray = [];
|
|
gg.game.playerWeaponGroupIdArray = [];
|
|
gg.game.setPlayerWeaponGroupIdArray = false;
|
|
gg.game.setPlayerSkillGroupIdArray = false;
|
|
break;
|
|
case "清除副本次数难度全开":
|
|
//BoxChallengeCount
|
|
gg.data.setStatistics(StatisticsType.BoxChallengeCount, 0)
|
|
//抽卡挑战模式
|
|
gg.data.setStatistics(StatisticsType.gachaChallengeModeCount, 0)
|
|
gg.data.setStatistics(StatisticsType.InfiniteChallengeCount, 0)
|
|
//道具挑战次数
|
|
gg.data.setStatistics(StatisticsType.PropChallengeCount, 0)
|
|
gg.data.setStatistics(StatisticsType.WeaponChallengeCount, 0)
|
|
|
|
//BoxModelLevel
|
|
gg.data.setStatistics(StatisticsType.BoxModelLevel, 5)
|
|
gg.data.setStatistics(StatisticsType.InfiniteModelLevel, 5)
|
|
gg.data.setStatistics(StatisticsType.PropModelLevel, 5)
|
|
gg.data.setStatistics(StatisticsType.WeaponModelLevel, 5)
|
|
//抽卡挑战模式
|
|
gg.data.setStatistics(StatisticsType.GachaChallengeModeLevel, 5)
|
|
|
|
//Boss挑战次数
|
|
gg.data.setStatistics(StatisticsType.BossChallengeCount, 0)
|
|
break;
|
|
case "今日首次登录(每日重置)":
|
|
gg.data.onFirstLoginToday();
|
|
gg.ui.showToast("今日首次登录(每日重置)成功");
|
|
GM.show();
|
|
break;
|
|
case "复制存档":
|
|
let data = JSON.stringify(gg.data.doc);
|
|
//设置到剪贴板
|
|
MTools.CopyTextEvent(data);
|
|
gg.ui.showToast("复制存档成功");
|
|
GM.show();
|
|
break;
|
|
case "中文":
|
|
gg.lang.Current = LangType.zh;
|
|
GM.show();
|
|
break;
|
|
case "英文":
|
|
gg.lang.Current = LangType.en;
|
|
GM.show();
|
|
break;
|
|
case "打开内购":
|
|
sdkConfig.isIAPVersion = true;
|
|
GM.show();
|
|
break;
|
|
case "关闭内购":
|
|
sdkConfig.isIAPVersion = false;
|
|
GM.show();
|
|
break;
|
|
case "设置武器和技能":
|
|
gg.ui.openPanel(UIID.PopGM, { data: 2 });
|
|
GM.show();
|
|
break;
|
|
case "设置武器等级":
|
|
gg.ui.openPanel(UIID.PopGM, { data: 1 });
|
|
GM.show();
|
|
break;
|
|
case "设置方块手指释放处掉落":
|
|
gg.game.isShowBlockDrop = true;
|
|
break;
|
|
case "设置关卡不出怪":
|
|
gg.game.noMonsterShow = true;
|
|
break;
|
|
}
|
|
this.refreshparamBtns()
|
|
}
|
|
|
|
onParamBtnClick(event: EventTouch) {
|
|
switch (event.target.name) {
|
|
case "设置道具数量":
|
|
let id = Number(this.eb_prama.string.split(' ')[0]);
|
|
let num = Number(this.eb_prama.string.split(' ')[1]);
|
|
gg.data.setItemNum(id, num);
|
|
gg.data.saveToServer();
|
|
break;
|
|
case "设置金钱":
|
|
gg.data.setItemNum(ItemNumType.money, Number(this.eb_prama.string));
|
|
gg.data.saveToServer();
|
|
break;
|
|
case "设置体力":
|
|
gg.data.setItemNum(ItemNumType.vigour, Number(this.eb_prama.string));
|
|
gg.data.saveToServer();
|
|
break;
|
|
case "设置钻石":
|
|
gg.data.setItemNum(ItemNumType.diamond, Number(this.eb_prama.string));
|
|
gg.data.saveToServer();
|
|
break;
|
|
case "设置关卡解锁":
|
|
gg.data.doc.chapter = Number(this.eb_prama.string);
|
|
let max = ChapterDataManager.getAllChapterAccount();
|
|
if (gg.data.doc.chapter >= max) {
|
|
gg.data.doc.chapter = max;
|
|
}
|
|
|
|
for (let i = 0; i < gg.data.doc.chapter - 1; i++) {
|
|
let chapterId = i + 1;
|
|
for (let j = 0; j < 3; j++) {
|
|
let index = j;
|
|
gg.data.project.setChapterStatus(chapterId, ChapterDifficulty.Normal, index, 1);
|
|
// gg.data.project.setChapterStatus(chapterId, ChapterDifficulty.Hard, index, 1);
|
|
// gg.data.project.setChapterStatus(chapterId, ChapterDifficulty.Hell, index, 1);
|
|
}
|
|
}
|
|
gg.data.saveToServer();
|
|
break;
|
|
case "设置玩家局内血量":
|
|
gg.game.playerHp = Number(this.eb_prama.string);
|
|
break;
|
|
case "关卡初始银币":
|
|
gg.game.playerCoinNum = Number(this.eb_prama.string);
|
|
break;
|
|
case "关卡怪物倍数":
|
|
gg.game.monsterNumScale = Number(this.eb_prama.string);
|
|
if (gg.game.monsterNumScale <= 0) {
|
|
gg.game.monsterNumScale = 1;
|
|
} else if (gg.game.monsterNumScale >= 20) {
|
|
gg.game.monsterNumScale = 20;
|
|
}
|
|
console.log(gg.game.monsterNumScale);
|
|
break;
|
|
case "设置玩家武器":
|
|
let array = this.eb_prama.string.split(",");
|
|
gg.game.playerWeaponIdArray = array.map((item) => Number(item));
|
|
//删除不存在的武器目前武器ID是1到100
|
|
|
|
let arraynew = []
|
|
for (let i = 0; i < gg.game.playerWeaponIdArray.length; i++) {
|
|
let id = gg.game.playerWeaponIdArray[i];
|
|
if (id >= 1 && id <= 100) {
|
|
//去掉重复的
|
|
if (arraynew.indexOf(id) == -1) {
|
|
arraynew.push(id);
|
|
}
|
|
|
|
}
|
|
}
|
|
gg.game.playerWeaponIdArray = arraynew;
|
|
|
|
console.log(gg.game.playerWeaponIdArray);
|
|
|
|
break;
|
|
case "设置玩家技能":
|
|
let array2 = this.eb_prama.string.split(",");
|
|
gg.game.playerSkillIdArray = array2.map((item) => Number(item));
|
|
console.log(gg.game.playerSkillIdArray);
|
|
|
|
let list = gg.data.table.getTableList<ITableSkill>(TableNames.Skill);
|
|
|
|
//通过id 获取技能配置
|
|
// 生成对象 id: 601, type: 1, limit_num: 1
|
|
|
|
let objArray = []
|
|
for (let i = 0; i < gg.game.playerSkillIdArray.length; i++) {
|
|
let id = gg.game.playerSkillIdArray[i];
|
|
//找出技能配置,如果没有这个技能就不加入数组,(如果这个技能的武器不存在也不加入数组之后处理)
|
|
let skillConfig = list.find((item) => item.id == id);
|
|
if (skillConfig) {
|
|
//如果objArray已经有这个id的对象,就查看limit_num的值如果是1不加入,否则limit_num数量加1直到配置的数量上限
|
|
if (objArray.find((item) => item.id == skillConfig.id)) {
|
|
//不添加
|
|
} else {
|
|
let obj: IBattleSkill = {
|
|
weaponId: skillConfig.weapon,
|
|
id: skillConfig.id,
|
|
type: skillConfig.type,
|
|
limit_num: skillConfig.limit_num,
|
|
};
|
|
objArray.push(obj);
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
gg.game.playerSkillIdArray = objArray
|
|
console.log(gg.game.playerSkillIdArray);
|
|
|
|
break;
|
|
case "设置玩家技能组":
|
|
gg.game.setPlayerSkillGroupIdArray = true;
|
|
this.setSkillGroup();
|
|
break;
|
|
case "设置玩家武器组":
|
|
gg.game.setPlayerWeaponGroupIdArray = true;
|
|
this.setWeaponGroup();
|
|
break;
|
|
case "设置玩家武器升级":
|
|
|
|
|
|
break;
|
|
case "设置玩家等级":
|
|
let curData = gg.data.getStringData(OtherDataType.UserLevelupData)
|
|
if (curData == '') {
|
|
gg.data.setStringData(OtherDataType.UserLevelupData, '0&10&0&0&0&0&0')
|
|
curData = '0&10&0&0&0&0&0'
|
|
}
|
|
let curDataArray = curData.split('&');
|
|
|
|
let arrayPlayer = this.eb_prama.string
|
|
curDataArray[0] = arrayPlayer;
|
|
curDataArray[1] = (Number(curDataArray[1]) + Number(arrayPlayer)) + '';
|
|
curDataArray[2] = (Number(curDataArray[2]) + Number(arrayPlayer) * 10) + '';
|
|
curDataArray[3] = (Number(curDataArray[3]) + Number(arrayPlayer) * 50) + '';
|
|
|
|
gg.data.setStringData(OtherDataType.UserLevelupData, curDataArray.join('&'))
|
|
GEvent.Ins.emit(GEvent.UpdateCombatPower);
|
|
break;
|
|
case "设置玩家存档":
|
|
if (JSON.parse(this.eb_prama.string)) {
|
|
gg.data.doc = JSON.parse(this.eb_prama.string);
|
|
GM.show();
|
|
gg.ui.showToast("设置成功");
|
|
gg.data["_IsFirstLogin"] = false;
|
|
gg.game.init();
|
|
GEvent.Ins.emit(GEvent.UpdateItemNum);
|
|
} else {
|
|
gg.ui.showToast("存档格式错误");
|
|
}
|
|
break;
|
|
case "设置通关怪物数量":
|
|
sdkConfig.isDebugFastWinMonsterNum = Number(this.eb_prama.string);
|
|
break;
|
|
case "设置无重力墙权重值":
|
|
if(this.eb_prama.string == ''){
|
|
|
|
}else{
|
|
gg.game.noGravityWallProbability = Number(this.eb_prama.string);
|
|
|
|
|
|
}
|
|
|
|
console.log(gg.game.noGravityWallProbability);
|
|
break;
|
|
case "设置倍速":
|
|
if(this.eb_prama.string == ''){
|
|
|
|
}else{
|
|
gg.game.tetriGameSpeed = Number(this.eb_prama.string);
|
|
if(gg.game.tetriGameSpeed>=3){
|
|
gg.game.tetriGameSpeed = 3;
|
|
}else if(gg.game.tetriGameSpeed<=0){
|
|
gg.game.tetriGameSpeed = 1;
|
|
}
|
|
}
|
|
|
|
console.log(gg.game.tetriGameSpeed);
|
|
|
|
break;
|
|
case "设置怪物的攻击和血量百分比":
|
|
if(this.eb_prama.string == '' ){
|
|
|
|
}else{
|
|
gg.game.monsterAttackPercent = Number(this.eb_prama.string)/100;
|
|
gg.game.monsterHpPercent = Number(this.eb_prama.string)/100;
|
|
if(gg.game.monsterAttackPercent<=0){
|
|
gg.game.monsterAttackPercent = 1;
|
|
gg.game.monsterHpPercent = 1;
|
|
}
|
|
}
|
|
console.log(gg.game.monsterAttackPercent,gg.game.monsterHpPercent);
|
|
break;
|
|
}
|
|
|
|
gg.data.saveLocal();
|
|
this.refreshparamBtns()
|
|
}
|
|
|
|
setWeaponGroup() {
|
|
let array3 = this.eb_prama.string.split(",");
|
|
|
|
let array33 = []
|
|
let array333 = []
|
|
//一维数组改二维数组, 3个一组,不足三个补齐三个
|
|
for (let i = 0; i < array3.length; i++) {
|
|
if (Number(array3[i]) >= 1 && Number(array3[i]) <= 100) {
|
|
array333.push(Number(array3[i]));
|
|
if (i % 3 == 2) {
|
|
if (array333.length == 3) {
|
|
array33.push(array333);
|
|
}
|
|
array333 = []
|
|
}
|
|
}
|
|
}
|
|
let allList = gg.data.project.getWeaponDataList()
|
|
let objArray = []
|
|
for (let i = 0; i < array33.length; i++) {
|
|
let objArray2 = []
|
|
let array = array33[i];
|
|
for (let j = 0; j < array.length; j++) {
|
|
let id = array[j];
|
|
let obj = allList.find((item) => item.weaponid == id);
|
|
if (obj) {
|
|
objArray2.push(obj);
|
|
}
|
|
}
|
|
if (objArray2.length == 3) {
|
|
objArray.push(objArray2);
|
|
}
|
|
|
|
}
|
|
gg.game.playerWeaponGroupIdArray = objArray;
|
|
console.log(gg.game.playerWeaponGroupIdArray);
|
|
}
|
|
setSkillGroup() {
|
|
let array4 = this.eb_prama.string.split(",");
|
|
let array44 = []
|
|
let array333 = []
|
|
//一维数组改二维数组, 3个一组,不足三个补齐三个
|
|
for (let i = 0; i < array4.length; i++) {
|
|
|
|
array333.push(Number(array4[i]));
|
|
if (i % 3 == 2) {
|
|
array44.push(array333);
|
|
array333 = []
|
|
}
|
|
|
|
}
|
|
console.log(array44);
|
|
let list44 = gg.data.table.getTableList<ITableSkill>(TableNames.Skill);
|
|
//把数组id变成对象
|
|
// let obj = {};
|
|
// obj["id"] = skillConfig.id;
|
|
// obj["type"] = skillConfig.type;
|
|
// obj["limit_num"] = skillConfig.limit_num;
|
|
// objArray.push(obj);
|
|
let objArray2 = []
|
|
for (let i = 0; i < array44.length; i++) {
|
|
let array333 = array44[i];
|
|
let objArray = []
|
|
for (let j = 0; j < array333.length; j++) {
|
|
let id = array333[j];
|
|
|
|
let skillConfig = list44.find((item) => item.id == id);
|
|
if (skillConfig) {
|
|
let obj = {};
|
|
obj["id"] = skillConfig.id;
|
|
obj["type"] = skillConfig.type;
|
|
obj["limit_num"] = skillConfig.limit_num;
|
|
objArray.push(obj);
|
|
}
|
|
}
|
|
if (objArray.length == 3) {
|
|
objArray2.push(objArray);
|
|
}
|
|
|
|
}
|
|
gg.game.playerSkillGroupIdArray = objArray2;
|
|
console.log(gg.game.playerSkillGroupIdArray);
|
|
}
|
|
|
|
private _helpStr = `GM 工具帮助说明:
|
|
|
|
一、快速按钮功能
|
|
1. 加10万金钱:直接给角色增加10万金钱
|
|
2. 下一任务:完成当前任务并关闭GM界面
|
|
3. 显示FPS-隐藏FPS:切换FPS显示状态
|
|
4. 暂停秒赚:暂停秒赚功能
|
|
5. 恢复秒赚:恢复秒赚功能
|
|
6. 关闭广告:禁用广告显示
|
|
7. 显示广告:启用广告显示
|
|
8. 删除仅存本地数据:清空仅存储在本地的数据
|
|
|
|
二、参数按钮功能及参数格式
|
|
1. 设置金钱:输入单个数值,如 "1000" 可设置金钱数量
|
|
2. 增加道具:输入格式 "道具ID 数量",如 "1001 5" 表示增加ID为1001的道具5个
|
|
3. 跳转指定任务:输入任务ID,如 "5" 可跳转到ID为5的任务
|
|
4. 播放剧情:输入剧情ID,如 "3" 可播放ID为3的剧情
|
|
5. 激活产业:输入产业ID,如 "2" 可激活ID为2的产业
|
|
6. 设置产业等级:输入格式 "产业ID 等级",如 "3 5" 表示设置ID为3的产业等级为5
|
|
7. 设置产业星级:输入格式 "产业ID 星级",如 "4 3" 表示设置ID为4的产业星级为3
|
|
8. 播放引导剧情:输入引导剧情ID,如 "1" 可播放ID为1的引导剧情
|
|
9. 设置宣传关卡:输入格式 "宣传类型 关卡等级",如 "1 2" 表示设置宣传类型1的关卡为2
|
|
10. 设置产业关卡:输入格式 "产业类型 关卡等级",如 "2 3" 表示设置产业类型2的关卡为3
|
|
|
|
使用方法:
|
|
1. 在编辑框输入对应参数
|
|
2. 点击相应功能按钮执行操作
|
|
`;
|
|
|
|
} |