// ==UserScript== // @name 宝可梦点击(Poke Clicker)辅助脚本 [额外设定] Script // @namespace PokeClickerHelper // @version 0.1.7 // @description 在 开始菜单 => 设置 => 新增了一些额外设定的功能可自行开启! // @author 苍猫 // @match https://www.pokeclicker.com // @match https://g8hh.github.io/pokeclicker/ // @match https://pokeclicker.g8hh.com // @match https://yx.g8hh.com/pokeclicker/ // @match https://dreamnya.github.io/pokeclicker/ // @icon data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/319hf99fYX/fX2F/319hf8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////99fYX/fX2F/319hf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////wAAAP8AAAD/fX2F/319hf99fYX/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////8AAAD/AAAA/wAAAP99fYX/fX2F/wAAAP8AAAD/AAAA/319hf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/HBT//xwU//8AAAD//////319hf8AAAD/Dgim/w4Ipv8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/HBT//xwU//8cFP//HBT//wAAAP8AAAD/Dgim/w4Ipv8OCKb/Dgim/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/xwU//8cFP//HBT//xwU/44cFP//HBT//xwU//8cFP//Dgim/w4Ipv8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/HBT//xwU/47/////HBT/jhwU//8cFP//HBT//w4Ipv8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/xwU//8cFP//HBT/jhwU//8OCKb/Dgim/w4Ipv8OCKb/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/xwU//8OCKb/Dgim/w4Ipv8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAPw/AADwDwAA4AcAAOAHAADAAwAAwAMAAMADAADAAwAA4AcAAOAHAADwDwAA/D8AAP//AAD//wAA//8AAA== // @grant none // @license MIT // @run-at document-end // ==/UserScript== /* global App, $, PokeClickerHelper, GameConstants, player, PokemonShops:true, Shop, ItemList, MapHelper, TownList, EvolutionStone, pokeLeagueShop*/ if (typeof PokeClickerHelper == typeof void 0) { alert('宝可梦点击(Poke Clicker)辅助脚本 [额外设定] Script加载失败\n\n未找到核心模块,需要先安装核心模块才可正常使用\n\n论坛主页:https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=3842') window.open("https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=3842") return } const NotifierBak = Notifier.notify; // UI相关 PokeClickerHelper.UIScript.push(` 宝可梦商店区域设置(售卖当前或全部区域物品 => 带有#符号的功能有效): `) // 初始化后加载功能 客户端模式 JSON.parse(PokeClickerHelper.get('ClientStatus', 'false')) ? App.isUsingClient = true : App.isUsingClient = false let fuc = () => { // 初始化 ScriptSetting.initialize('ClientStatus', '#PokeClickerHelperClientStatus')//客户端模式 ScriptSetting.initialize('PokeShopStatus', '#PokeClickerHelperPokeShopStatus')//宝可梦商店 ScriptSetting.initialize('SettingRegionStatus', '#PokeClickerHelperSettingRegionStatus', 'select')//宝可梦商店区域设置 ScriptSetting.initialize('WharfStatus', '#PokeClickerHelperWharfStatus')//码头 ScriptSetting.initialize('HideWildPokemonStatus', '#PokeClickerHelperHideWildPokemonStatus')//隐藏道路宝可梦信息 ScriptSetting.initialize('BattleFrontierStatus', '#PokeClickerHelperBattleFrontierStatus')//自动对战开拓区 ScriptSetting.initialize('BattleFrontierQuitStatus', '#PokeClickerHelperBattleFrontierQuitStatus')//*对战开拓区(中途结算退出) ScriptSetting.initialize('CloseNotifierStatus', '#PokeClickerHelperCloseNotifierStatus')//屏蔽所有通知 ScriptSetting.initialize('TradingCenterStatus', '#PokeClickerHelperTradingCenterStatus')//浆果大师/交易中心/宝石大师 ScriptSetting.initialize('DiscordPokemonStatus', '#PokeClickerHelperDiscordPokemonStatus')//便捷兑换Discord宝可梦 $('#PokeClickerHelperDeleteMissingNo').click(ScriptSetting.DeleteMissingNo)//删除非法的宝可梦 // 初始化商店数据 ConvenientStore.initialize()//宝可梦商店 TalentMarket.initialize()//人才市场 ScriptSetting.HighestRegion = player.highestRegion();//初始化记录玩家最高区域 用于生成最高区域商店总物品 ConvenientStore.getHeadOfficeItem()//首次获取最高区域的商店物品 TradingCenter.initialize()//浆果大师和交易中心 TradingCenter.getHeadOffice()//生成最高区域交易中心 // 初始化后加载功能 if (JSON.parse(PokeClickerHelper.get('PokeShopStatus', 'false'))) ConvenientStore.LoadFunction()//宝可梦商店 if (JSON.parse(PokeClickerHelper.get('WharfStatus', 'false'))) ScriptSetting.LoadWharf()//码头 if (JSON.parse(PokeClickerHelper.get('HideWildPokemonStatus', 'false'))) PokeClickerHelper.hookGameTickList.add(ScriptSetting.HideWildPokemon)//隐藏道路宝可梦信息 if (JSON.parse(PokeClickerHelper.get('BattleFrontierStatus', 'false'))) PokeClickerHelper.hookGameTickList.add(BattleFrontier.AutoBattle)//自动对战开拓区 if (JSON.parse(PokeClickerHelper.get('BattleFrontierQuitStatus', 'false'))) PokeClickerHelper.hookGameTickList.add(BattleFrontier.LoadQuit)//*对战开拓区(中途结算退出) if (JSON.parse(PokeClickerHelper.get('CloseNotifierStatus', 'false'))) ScriptSetting.CloseNotifier('remove')//屏蔽所有通知 if (JSON.parse(PokeClickerHelper.get('TradingCenterStatus', 'false'))) ScriptSetting.LoadTradingCenter()//浆果大师和交易中心 if (JSON.parse(PokeClickerHelper.get('DiscordPokemonStatus', 'false'))) ScriptSetting.LoadDiscordPokemon()//便捷兑换Discord宝可梦 ScriptSetting.SettingRegionStatus = JSON.parse(PokeClickerHelper.get('SettingRegionStatus', '0'))//读取宝可梦商店区域设置 } const listener = () => { // 客户端模式 checkbox 监听 $('#PokeClickerHelperClientStatus').on('change', function () { if (JSON.parse(PokeClickerHelper.get('ClientStatus', 'false'))) { PokeClickerHelper.set('ClientStatus', 'false') } else { PokeClickerHelper.set('ClientStatus', 'true') } PokeClickerHelper.Notify({ title: '宝可梦点击(Poke Clicker)辅助脚本', message: "客户端模式设置成功,请重新刷新游戏!" }); }) // 宝可梦商店 checkbox 监听 $('#PokeClickerHelperPokeShopStatus').on('change', function () { if (JSON.parse(PokeClickerHelper.get('PokeShopStatus', 'false'))) { PokeClickerHelper.set('PokeShopStatus', 'false') ConvenientStore.LoadFunction('remove') } else { PokeClickerHelper.set('PokeShopStatus', 'true') ConvenientStore.LoadFunction() } }) // 浆果大师和交易中心 checkbox 监听 $('#PokeClickerHelperTradingCenterStatus').on('change', function () { if (JSON.parse(PokeClickerHelper.get('TradingCenterStatus', 'false'))) { PokeClickerHelper.set('TradingCenterStatus', 'false') ScriptSetting.LoadTradingCenter('remove') } else { PokeClickerHelper.set('TradingCenterStatus', 'true') ScriptSetting.LoadTradingCenter() } }) // 功能区域设置 select 监听 $('#PokeClickerHelperSettingRegionStatus').on('change', function () { ScriptSetting.SettingRegionStatus = +this.value PokeClickerHelper.set('SettingRegionStatus', ScriptSetting.SettingRegionStatus.toString()) }) // 人才市场 checkbox 监听 $('#PokeClickerHelperTalentMarketStatus').on('change', function () { if (this.checked) { TalentMarket.LoadFunction() } else { TalentMarket.LoadFunction('remove') } }) // 码头 checkbox 监听 $('#PokeClickerHelperWharfStatus').on('change', function () { if (JSON.parse(PokeClickerHelper.get('WharfStatus', 'false'))) { PokeClickerHelper.set('WharfStatus', 'false') ScriptSetting.LoadWharf('remove') } else { PokeClickerHelper.set('WharfStatus', 'true') ScriptSetting.LoadWharf() } }) // 隐藏道路宝可梦信息 checkbox 监听 $('#PokeClickerHelperHideWildPokemonStatus').on('change', function () { if (JSON.parse(PokeClickerHelper.get('HideWildPokemonStatus', 'false'))) { PokeClickerHelper.set('HideWildPokemonStatus', 'false') PokeClickerHelper.hookGameTickList.delete(ScriptSetting.HideWildPokemon) } else { PokeClickerHelper.set('HideWildPokemonStatus', 'true') PokeClickerHelper.hookGameTickList.add(ScriptSetting.HideWildPokemon) } }) // 屏蔽所有通知 checkbox 监听 $('#PokeClickerHelperCloseNotifierStatus').on('change', function () { if (JSON.parse(PokeClickerHelper.get('CloseNotifierStatus', 'false'))) { PokeClickerHelper.set('CloseNotifierStatus', 'false') ScriptSetting.CloseNotifier('load') } else { PokeClickerHelper.set('CloseNotifierStatus', 'true') ScriptSetting.CloseNotifier('remove') } }) // 便捷兑换Discord宝可梦 checkbox 监听 $('#PokeClickerHelperDiscordPokemonStatus').on('change', function () { if (JSON.parse(PokeClickerHelper.get('DiscordPokemonStatus', 'false'))) { PokeClickerHelper.set('DiscordPokemonStatus', 'false') ScriptSetting.LoadDiscordPokemon('remove') } else { PokeClickerHelper.set('DiscordPokemonStatus', 'true') ScriptSetting.LoadDiscordPokemon('load') } }) // 自动对战开拓区 checkbox 监听 $('#PokeClickerHelperBattleFrontierStatus').on('change', function () { if (JSON.parse(PokeClickerHelper.get('BattleFrontierStatus', 'false'))) { PokeClickerHelper.set('BattleFrontierStatus', 'false') PokeClickerHelper.hookGameTickList.delete(BattleFrontier.AutoBattle) // 移除自定义层数控件 和 自动挑战 if (App.game.gameState == GameConstants.GameState.battleFrontier) { if (document.getElementById('PokeClickerHelperSetQuitStage') != null) $("#PokeClickerHelperSetQuitStage").parent().remove() if (document.getElementById('PokeClickerHelperBattleFrontierRepeatStart') != null) $("#PokeClickerHelperBattleFrontierRepeatStart").remove() } } else { PokeClickerHelper.set('BattleFrontierStatus', 'true') PokeClickerHelper.hookGameTickList.add(BattleFrontier.AutoBattle) } }) // *对战开拓区(中途结算退出) checkbox 监听 $('#PokeClickerHelperBattleFrontierQuitStatus').on('change', function () { if (JSON.parse(PokeClickerHelper.get('BattleFrontierQuitStatus', 'false'))) { PokeClickerHelper.set('BattleFrontierQuitStatus', 'false') PokeClickerHelper.hookGameTickList.delete(BattleFrontier.LoadQuit) // 移除自定义层数控件 if (App.game.gameState == GameConstants.GameState.battleFrontier) { if (document.getElementById('PokeClickerHelperSetQuitStage') != null) $("#PokeClickerHelperSetQuitStage").parent().remove() } } else { PokeClickerHelper.set('BattleFrontierQuitStatus', 'true') PokeClickerHelper.hookGameTickList.add(BattleFrontier.LoadQuit) } }) } PokeClickerHelper.UIContainerID.push("#PokeClickerHelperWharf"); PokeClickerHelper.UIContainerID.push("#PokeClickerHelperPokemonShops"); PokeClickerHelper.UICustomFuc.push(fuc); PokeClickerHelper.UIlistener.push(listener); // 暴露对象方法到全局 const ScriptSetting = {}; //脚本设置变量 ScriptSetting.SettingRegionStatus = 0; //设置的区域状态 ScriptSetting.HighestRegion = -1; //玩家最高区域 const ConvenientStore = {}; //宝可梦超市变量 const BattleFrontier = {}; //对战开拓区变量 BattleFrontier.ReStartStatus = false; //自动挑战状态变量,用于判断是否自动挑战 const TalentMarket = {}; //人才市场变量 const TradingCenter = {}; //交易中心变量 PokeClickerHelper.BattleFrontier = BattleFrontier; PokeClickerHelper.ConvenientStore = ConvenientStore; PokeClickerHelper.ScriptSetting = ScriptSetting; PokeClickerHelper.TalentMarket = TalentMarket; PokeClickerHelper.TradingCenter = TradingCenter; // 初始化的函数 用于初始化赋值 和 检查功能的状态 checked/select ScriptSetting.initialize = (key, id, type = 'checked') => { if (type == 'checked') { // 初始化赋值 if (PokeClickerHelper.get(key, '') === '') PokeClickerHelper.set(key, 'false') // 检查功能状态 JSON.parse(PokeClickerHelper.get(key, 'false')) ? $(id).prop('checked', true) : $(id).prop('checked', false) } else if (type == 'select') { // 初始化赋值 if (PokeClickerHelper.get(key, '') === '') PokeClickerHelper.set(key, '0') // 检查功能状态 $(id).prop('value', JSON.parse(PokeClickerHelper.get(key, '0'))) } } // 加载码头功能 可空 默认加载 cmd = 'remove' 移除 ScriptSetting.LoadWharf = (cmd = 'load') => { if (cmd == 'load') { let text = `` $('#townMap').append(text) // 码头 button 监听 => 由于在html元素未append之前设置监听会导致监听无效,所以append后加入 document.getElementById('PokeClickerHelperWharf').addEventListener('click', MapHelper.openShipModal, false) } else if (cmd = 'remove') { document.getElementById('PokeClickerHelperWharf').removeEventListener('click', MapHelper.openShipModal, false) $("#PokeClickerHelperWharf").remove() } } // 加载兑换Discord宝可梦功能 可空 默认加载 cmd = 'remove' 移除 ScriptSetting.LoadDiscordPokemon = (cmd = 'load') => { if (cmd == 'load') { let text = `` $('#saveTab .btn.btn-primary.btn-block').eq(0).before(text) document.getElementById('PokeClickerHelperClaimDiscord').addEventListener('click', PokeClickerHelper.ScriptSetting.ClaimDiscord, false) } else if (cmd = 'remove') { $('#PokeClickerHelperClaimDiscord').remove() } } // 隐藏道路宝可梦信息功能 ScriptSetting.HideWildPokemon = () => { // 移除击败动画 暂时废除,开启后会导致道路击杀数不见 //if ($('knockout[data-bind*="App.game.statistics.routeKills"]').length > 0) $('knockout[data-bind*="App.game.statistics.routeKills"]')[0].remove() // 移除宝可梦图片 if ($('img.enemy').length > 0) $('img.enemy').parent().remove() // 移除宝可梦血条 if ($('.progress.hitpoints').length > 0) $('.progress.hitpoints')[0].remove() // 移除宝可梦名字、性别 if ($('knockout[data-bind*="template: { name: \'pokemonNameTemplate\', data: { \'pokemon\': Battle.enemyPokemon() } }"]').length > 0) $('knockout[data-bind*="template: { name: \'pokemonNameTemplate\', data: { \'pokemon\': Battle.enemyPokemon() } }"]')[0].remove() // 移除宝可梦捕获图标 if ($('knockout[data-bind*="caughtStatusTemplate"').length > 0) $('knockout[data-bind*="caughtStatusTemplate"')[0].remove() // 移除宝可梦病毒图标 if ($('knockout[data-bind*="if: App.game.party.getPokemonByName(Battle.enemyPokemon().name)?.pokerus > GameConstants.Pokerus.Uninfected"]').length > 0) $('knockout[data-bind*="if: App.game.party.getPokemonByName(Battle.enemyPokemon().name)?.pokerus > GameConstants.Pokerus.Uninfected"]')[0].remove() // 移除捕获动画 if ($('div .catchChance').length > 0) $('div .catchChance')[0].remove() // 移除道馆的npc图 if ($('.trainer').length > 0) $('.trainer').remove() } // 屏蔽所有通知功能 可空 默认屏蔽通知 cmd = 'remove' 屏蔽 / cmd = 'load' 取消屏蔽 ScriptSetting.CloseNotifier = (cmd = 'remove') => { if (cmd == 'remove') { // if ($('#toaster').length > 0) $('#toaster').remove() Notifier.notify = function (message) { const sound = message.sound; if (typeof sound != 'undefined') { sound.play(); } } } else if (cmd == 'load') { // if ($('#toaster').length == 0) $('#dynamic-background').after('
') Notifier.notify = NotifierBak; } } // 一键兑换Discord宝可梦功能 ScriptSetting.ClaimDiscord = () => { var codes = App.game.discord.codes.length;//获取可兑换宝可梦数量 if (App.game.discord.ID() == null) { App.game.discord.ID(Math.floor((Math.random() * 65536) + 1));//生成Discord登录账号ID for (let i = 0; i < codes; i++) { document.getElementById("redeemable-code-input").value = App.game.discord.calcCode(App.game.discord.codes[i]);//自动填写兑换码 RedeemableCodeController.enterCode();//兑换 } App.game.discord.logout();//退出登录 } else { for (let i = 0; i < codes; i++) { document.getElementById("redeemable-code-input").value = App.game.discord.calcCode(App.game.discord.codes[i]); RedeemableCodeController.enterCode(); } App.game.discord.logout(); } } // 加载宝可梦商店功能 可空 默认加载 cmd = 'remove' 移除 ScriptSetting.LoadTradingCenter = (cmd = 'load') => { if (cmd == 'load') { let text = ` ` $("#shortcutsBody tbody").append(text) // 可梦商店 button 监听 => 由于在html元素未append之前设置监听会导致监听无效,所以append后加入 document.getElementById('PokeClickerHelperBerryMaster').addEventListener('click', PokeClickerHelper.TradingCenter.OpenBerryMaster, false) document.getElementById('PokeClickerHelperShardTrader').addEventListener('click', PokeClickerHelper.TradingCenter.OpenTradingCenter, false) document.getElementById('PokeClickerHelperGemMaster').addEventListener('click', PokeClickerHelper.TradingCenter.OpenGemMasterMaster, false) } else if (cmd = 'remove') { document.getElementById('PokeClickerHelperBerryMaster').removeEventListener('click', PokeClickerHelper.TradingCenter.OpenBerryMaster, false) document.getElementById('PokeClickerHelperShardTrader').removeEventListener('click', PokeClickerHelper.TradingCenter.OpenTradingCenter, false) document.getElementById('PokeClickerHelperGemMaster').removeEventListener('click', PokeClickerHelper.TradingCenter.OpenGemMasterMaster, false) $("#PokeClickerHelperBerryMaster").parent().parent().remove() } } // 删除非法的宝可梦 ScriptSetting.DeleteMissingNo = () => { var PlayercaughtPokemon = App.game.party.caughtPokemon; var DeletePM_ID = new Array; for (let i = 0; i < PlayercaughtPokemon.length; i++) { if (PlayercaughtPokemon[i].id == 0) { DeletePM_ID[DeletePM_ID.length] = i; } } if (DeletePM_ID.length > 0) { for (let i = 0; i < DeletePM_ID.length; i++) { PlayercaughtPokemon.splice(DeletePM_ID[i] - i, 1); } Save.store(); location.reload(); } else { Notifier.notify({ message: `不存在MissingNo的宝可梦!`, type: NotificationConstants.NotificationOption.danger }); } } // 自动对战开拓区功能 BattleFrontier.AutoBattle = () => { // 秒杀过层 if (BattleFrontierRunner.started()) { // 计算无属性克制的伤害>宝可梦的血量 直接跳过该层 否者 计算属性克制后的伤害>宝可梦的血量 跳过该宝可梦 if (App.game.party.calculatePokemonAttack(Battle.enemyPokemon().None, Battle.enemyPokemon().None, true) > PokemonFactory.routeHealth(BattleFrontierRunner.stage() + 10, GameConstants.Region.none)) { BattleFrontierRunner.nextStage(); } else if (App.game.party.calculatePokemonAttack(Battle.enemyPokemon().type1, Battle.enemyPokemon().type2, true) > PokemonFactory.routeHealth(BattleFrontierRunner.stage() + 10, GameConstants.Region.none)) { BattleFrontierBattle.defeatPokemon(); } } // 创建 自动挑战 标签 if (App.game.gameState == GameConstants.GameState.battleFrontier && document.getElementById('PokeClickerHelperBattleFrontierRepeatStart') == null) { const RepeatStartText = `自动挑战 [OFF]` $('#battleFrontierInformation .card-header').eq(0).after(RepeatStartText) BattleFrontier.ReStartStatus = false; //初始化自动挑战状态 document.getElementById('PokeClickerHelperBattleFrontierRepeatStart').addEventListener('click', () => { PCH.BattleFrontier.ReStartStatus ? PCH.BattleFrontier.ReStartStatus = false : PCH.BattleFrontier.ReStartStatus = true PCH.BattleFrontier.ReStartStatus ? $('#PokeClickerHelperBattleFrontierRepeatStart').text('自动挑战 [ON]') : $('#PokeClickerHelperBattleFrontierRepeatStart').text('自动挑战 [OFF]') PCH.BattleFrontier.ReStartStatus ? $('#PokeClickerHelperBattleFrontierRepeatStart')[0].classList.replace('btn-danger', 'btn-success') : $('#PokeClickerHelperBattleFrontierRepeatStart')[0].classList.replace('btn-success', 'btn-danger') PCH.BattleFrontier.ReStartStatus ? PokeClickerHelper.hookGameTickList.add(PCH.BattleFrontier.ReStart) : PokeClickerHelper.hookGameTickList.delete(PCH.BattleFrontier.ReStart) }, false) } } // 自动对战开拓区功能 自动挑战 如果开启*对战开拓区(中途结算退出)可根据设定的自定义层数退出重新挑战 BattleFrontier.ReStart = () => { if (PCH.BattleFrontier.ReStartStatus) { if (!BattleFrontierRunner.started() && BattleFrontierRunner.hasCheckpoint()) return BattleFrontierRunner.start(true)//有些判断是否有历史挑战 if (!BattleFrontierRunner.started()) return BattleFrontierRunner.start(false)//无历史挑战从新开始挑战 //获取 设置的循环层数 let stage = +PokeClickerHelper.get('SetQuitStage', '0') if (BattleFrontierRunner.stage() > stage && stage != 0 && BattleFrontierRunner.started() && JSON.parse(PokeClickerHelper.get('BattleFrontierQuitStatus', 'false'))) return BattleFrontierRunner.battleLost() } } // 加载*对战开拓区(中途结算退出)功能 ==> 开始战斗后新增 结算退出按钮 BattleFrontier.LoadQuit = () => { // 创建 结算退出 按钮 if (BattleFrontierRunner.started() && document.getElementById('PokeClickerHelperQuitBattleFrontier') == null) { const QuitText = `结算退出` $('#battleFrontierInformation .card-body').append(QuitText) document.getElementById('PokeClickerHelperQuitBattleFrontier').addEventListener('click', PokeClickerHelper.BattleFrontier.battleLost, false) } // 创建 自定义层数 输入框 if (JSON.parse(PokeClickerHelper.get('BattleFrontierStatus', 'false')) && document.getElementById('PokeClickerHelperSetQuitStage') == null && App.game.gameState == GameConstants.GameState.battleFrontier) { const text = `
自动挑战层数(超过该层结算退出):
` $('#battleFrontierInformation .card-header').after(text) $('#PokeClickerHelperSetQuitStage').on('change', event => { let SetQuitStage = +event.target.value.replace(/[A-Za-z!@#$%^&*()]/g, '').replace(/[,]/g, ""); !isNaN(SetQuitStage) ? PokeClickerHelper.set('SetQuitStage', SetQuitStage) : PokeClickerHelper.set('SetQuitStage', SetQuitStage = 0) event.target.value = SetQuitStage.toLocaleString('en-US'); }); $('#PokeClickerHelperSetQuitStage')[0].value = PokeClickerHelper.get('SetQuitStage', '0') $('#PokeClickerHelperSetQuitStage').change() } if (!JSON.parse(PokeClickerHelper.get('BattleFrontierStatus', 'false')) && document.getElementById('PokeClickerHelperSetQuitStage') != null && App.game.gameState == GameConstants.GameState.battleFrontier) { $("#PokeClickerHelperSetQuitStage").parent().remove() } } // 结算退出方法 BattleFrontier.battleLost = () => { BattleFrontierRunner.battleLost(); } // 加载宝可梦商店功能 可空 默认加载 cmd = 'remove' 移除 ConvenientStore.LoadFunction = (cmd = 'load') => { if (cmd == 'load') { let text = `` $("#shortcutsBody tbody").append(text) // 可梦商店 button 监听 => 由于在html元素未append之前设置监听会导致监听无效,所以append后加入 document.getElementById('PokeClickerHelperPokemonShops').addEventListener('click', PokeClickerHelper.ConvenientStore.OpenShops, false) } else if (cmd = 'remove') { document.getElementById('PokeClickerHelperPokemonShops').removeEventListener('click', PokeClickerHelper.ConvenientStore.OpenShops, false) $("#PokeClickerHelperPokemonShops").parent().parent().remove() } } // 初始化商店物品数据 ConvenientStore.initialize = () => { ConvenientStore.PokeShopItem = new Array;//商店物品 存放该地区 蛋物品、宝可梦物品、进化物品、联盟物品 ConvenientStore.PokemonItem = new Array;//宝可梦物品数据 一维数组 ConvenientStore.EvolutionStone = new Array;//进化物品数据 一维数组 ConvenientStore.PokeLeagueItem = new Array;//联盟物品数据 ConvenientStore.EggsItem = new Array;//蛋物品数据 Object.keys(GameConstants.Region).filter(stone => isNaN(stone) && stone !== 'none').forEach(RegionNmae => { ConvenientStore.EvolutionStone[GameConstants.Region[RegionNmae]] = new Array; //进化物品数据 二维数组 ConvenientStore.PokemonItem[GameConstants.Region[RegionNmae]] = new Array;//宝可梦物品数据 二维数组 后面调用 //遍历 进化道具 存储变量 ConvenientStore.EvolutionStone[地区编号] Object.values(TownList).filter(t => t.region === GameConstants.Region[RegionNmae] && t.constructor.name === 'Town').forEach(p => { for (let i = 0; i < p.content.length; i++) { if (p.content[i] instanceof Shop) { for (let j = 0; j < p.content[i].items.length; j++) { if (p.content[i].items[j] instanceof EvolutionStone) ConvenientStore.EvolutionStone[GameConstants.Region[RegionNmae]].push(p.content[i].items[j]) } } } }) }) //遍历 蛋 存储变量 ConvenientStore.PokeEggsItem Object.values(ItemList).filter(({ name }) => name.includes('egg') && name != 'Lucky_egg' && name != 'Pokemon_egg').forEach(egg => { ConvenientStore.EggsItem.push(egg) }) //遍历 宝可梦 存储变量 ConvenientStore.PokemonItem[地区编号] ==> 1.5 移除条件 town.constructor.name == 'Town' Object.values(TownList).filter(town => town.content.length > 0).forEach(city => { city.content.filter(p => p.constructor.name == 'Shop').forEach(shop => { for (let i = 0; i < shop.items.length; i++) { if (shop.items[i].constructor.name == 'PokemonItem') ConvenientStore.PokemonItem[city.region].push(shop.items[i]) } }) }) //遍历 联盟商店 存储变量 ConvenientStore.PokeLeagueItem for (let i = 0; i < pokeLeagueShop().items.length; i++) { ConvenientStore.PokeLeagueItem.push(pokeLeagueShop().items[i]) } //地区区域物品拼接 存储变量 ConvenientStore.PokeShopItem Object.keys(GameConstants.Region).filter(stone => isNaN(stone) && stone !== 'none').forEach(RegionNmae => { ConvenientStore.PokeShopItem[GameConstants.Region[RegionNmae]] = ConvenientStore.EggsItem.concat(ConvenientStore.PokemonItem[GameConstants.Region[RegionNmae]], ConvenientStore.EvolutionStone[GameConstants.Region[RegionNmae]], ConvenientStore.PokeLeagueItem) }) } // 获取最高地区的商店总物品 存储变量 ConvenientStore.HeadOffice ConvenientStore.getHeadOfficeItem = () => { ConvenientStore.HeadOffice = new Array; //拷贝蛋物品数据 ConvenientStore.HeadOffice = ConvenientStore.HeadOffice.concat(ConvenientStore.EggsItem) //拷贝宝可梦物品数据 for (let i = 0; i < ScriptSetting.HighestRegion; i++) { ConvenientStore.HeadOffice = ConvenientStore.HeadOffice.concat(ConvenientStore.PokemonItem[i]) } //拷贝进化物品数据 => 去重 for (let i = 0; i < ScriptSetting.HighestRegion; i++) { for (item1 of ConvenientStore.EvolutionStone[i]) { let flag = true; for (item2 of ConvenientStore.HeadOffice) { if (item1.name == item2.name) flag = false } if (flag) { ConvenientStore.HeadOffice.push(item1) } } } //拷贝联盟物品数据 ConvenientStore.HeadOffice = ConvenientStore.HeadOffice.concat(ConvenientStore.PokeLeagueItem) } // 打开商店方法 根据玩家所在区域进行读取商店物品数据 ConvenientStore.OpenShops = () => { if (ScriptSetting.SettingRegionStatus == 0) { PokemonShops = new Shop(ConvenientStore.PokeShopItem[player.region], GameConstants.camelCaseToString(GameConstants.Region[player.region]) + '(⁎˃ᴗ˂⁎)宝可梦商店'); } else if (ScriptSetting.SettingRegionStatus == 1) { if (player.highestRegion() == ScriptSetting.HighestRegion) { PokemonShops = new Shop(ConvenientStore.HeadOffice, '宝可梦商店(⁎˃ᴗ˂⁎)总店'); } else { ScriptSetting.HighestRegion = player.highestRegion(); ConvenientStore.getHeadOfficeItem(); PokemonShops = new Shop(ConvenientStore.HeadOffice, '宝可梦商店(⁎˃ᴗ˂⁎)总店'); } } PokemonShops.protectedOnclick(); } // 初始化人才市场数据 TalentMarket.initialize = () => { TalentMarket.TalentsShop = new Array; Object.keys(ItemList).filter(name => name.includes('FarmHand') || name.includes('HatcheryHelper')).forEach(p => { TalentMarket.TalentsShop.push(ItemList[p]) }) } // 加载人才市场功能 可空 默认加载 cmd = 'remove' 移除 TalentMarket.LoadFunction = (cmd = 'load') => { if (cmd == 'load') { let text = `` $("#shortcutsBody tbody").append(text) // 可梦商店 button 监听 => 由于在html元素未append之前设置监听会导致监听无效,所以append后加入 document.getElementById('PokeClickerHelperTalentMarket').addEventListener('click', PokeClickerHelper.TalentMarket.OpenShops, false) } else if (cmd = 'remove') { document.getElementById('PokeClickerHelperTalentMarket').removeEventListener('click', PokeClickerHelper.TalentMarket.OpenShops, false) $("#PokeClickerHelperTalentMarket").parent().parent().remove() } } // 打开商店方法 TalentMarket.OpenShops = () => { TalentsShop = new Shop(TalentMarket.TalentsShop, '世界顶尖(⁎˃ᴗ˂⁎)招聘市场'); TalentsShop.protectedOnclick(); } // 初始化交易中心数据 TradingCenter.initialize = () => { //初始化浆果大师BerryMaster BerryDeal.list[1000] = ko.observableArray(); for (let i = 0; i < Object.keys(BerryDeal.list).length - 1; i++) { for (let j = 0; j < BerryDeal.list[i]().length; j++) { BerryDeal.list[1000]().push(BerryDeal.list[i]()[j]) } } TradingCenter.BerryMasterShop = new BerryMasterShop(1000, Object.values(ItemList).filter(item => item.constructor.name == 'MulchShovelItem' || item.constructor.name == 'MulchItem' || item.constructor.name == 'ShovelItem')); //初始化交易中心ShardTrader TradingCenter.TradingCenterShop = new Array; Object.keys(GameConstants.Region).filter(stone => isNaN(stone) && stone !== 'none').forEach(RegionNmae => { ShardDeal.list[1000 + GameConstants.Region[RegionNmae]] = ko.observableArray(); TradingCenter.TradingCenterShop[GameConstants.Region[RegionNmae]] = new Array; }) Object.values(TownList).filter(town => town.constructor.name == 'Town' && town.content.length > 0).forEach(city => { for (let i = 0; i < city.content.length; i++) { if (city.content[i].constructor.name == 'ShardTraderShop') { for (let j = 0; j < ShardDeal.list[city.content[i].location]?.().length; j++) { ShardDeal.list[1000 + city.region]().push(ShardDeal.list[city.content[i].location]()[j]) } } } }) Object.keys(GameConstants.Region).filter(stone => isNaN(stone) && stone !== 'none').forEach(RegionNmae => { TradingCenter.TradingCenterShop[GameConstants.Region[RegionNmae]] = new ShardTraderShop(1000 + GameConstants.Region[RegionNmae], '地区(⁎˃ᴗ˂⁎)交易中心') }) } // 获取最高区域交易中心数据 TradingCenter.getHeadOffice = () => { let ShardItem = new Array; ShardDeal.list[999] = ko.observableArray(); Object.values(TownList).filter(town => town.constructor.name == 'Town' && town.content.length > 0).forEach(city => { if (city.region <= ScriptSetting.HighestRegion) { for (let i = 0; i < city.content.length; i++) { if (city.content[i].constructor.name == 'ShardTraderShop') { for (let j = 0; j < ShardDeal.list[city.content[i].location]().length; j++) { if (!ShardItem.includes(ShardDeal.list[city.content[i].location]()[j].item.itemType.name)) { ShardItem.push(ShardDeal.list[city.content[i].location]()[j].item.itemType.name); ShardDeal.list[999]().push(ShardDeal.list[city.content[i].location]()[j]); } } } } } }) TradingCenter.HeadOfficeShop = new ShardTraderShop(999, '世界(⁎˃ᴗ˂⁎)交易中心') } // 打开商店 浆果大师 TradingCenter.OpenBerryMaster = () => { TradingCenter.BerryMasterShop.protectedOnclick(); } // 打开商店 交易中心 TradingCenter.OpenTradingCenter = () => { if (ScriptSetting.SettingRegionStatus == 0) { TradingCenter.TradingCenterShop[player.region].protectedOnclick() } else if (ScriptSetting.SettingRegionStatus == 1) { if (player.highestRegion() == ScriptSetting.HighestRegion) { TradingCenter.HeadOfficeShop.protectedOnclick() } else { ScriptSetting.HighestRegion = player.highestRegion(); TradingCenter.getHeadOffice() TradingCenter.HeadOfficeShop.protectedOnclick() } } } // 打开交易 宝石大师 TradingCenter.OpenGemMasterMaster = () => { if (ScriptSetting.GemMasterShop === undefined) ScriptSetting.GemMasterShop = new GemMasterShop(); ScriptSetting.GemMasterShop.onclick(); }