您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
19/09/2024, 12:33:17
// ==UserScript== // @name New script pklucid.github.io // @namespace Violentmonkey Scripts // @match https://pklucid.github.io/Pokemon-Lucid-Calc/* // @grant none // @version 1.01 // @author - Lynn // @license MIT // @description 19/09/2024, 12:33:17 // ==/UserScript== $(".set-selector").change(function () { window.NO_CALC = true; var fullSetName = $(this).val(); if ($(this).hasClass('opposing')) { topPokemonIcon(fullSetName, $("#p2mon")[0]) CURRENT_TRAINER_POKS = get_trainer_poks(fullSetName) var next_poks = CURRENT_TRAINER_POKS.sort(sortmons) var trpok_html = "" for (i in next_poks) { if (next_poks[i][0].includes($('input.opposing').val())) { continue } var pok_name = next_poks[i].split("]")[1].split(" (")[0] if (pok_name == "Zygarde-10%") { pok_name = "Zygarde-10%25" } if (pok_name == "Tauros-Paldea-Water") { pok_name = "Tauros-Paldea-Aqua" } if (pok_name == "Tauros-Paldea-Fire") { pok_name = "Tauros-Paldea-Blaze" } if (pok_name == "Tauros-Paldea") { pok_name = "Tauros-Paldea-Combat" } if (pok_name == "Wooper-Paldea") { pok_name = "WooperPaldea" } if (pok_name == "Pumpkaboo-Super") { pok_name = "Pumpkaboo" } if (pok_name == "Mime Jr.") { pok_name = "Mime%20Jr" } //this ruined my day var pok = `<img class="trainer-pok right-side" src="http://raw.githubusercontent.com/May8th1995/sprites/master/${pok_name}.png" data-id="${CURRENT_TRAINER_POKS[i].split("]")[1]}" title="${next_poks[i]}, ${next_poks[i]} BP">` trpok_html += pok } } else { topPokemonIcon(fullSetName, $("#p1mon")[0]) } $('.trainer-pok-list-opposing').html(trpok_html) var pokemonName = fullSetName.substring(0, fullSetName.indexOf(" (")); var setName = fullSetName.substring(fullSetName.indexOf("(") + 1, fullSetName.lastIndexOf(")")); var pokemon = pokedex[pokemonName]; if (pokemon) { var pokeObj = $(this).closest(".poke-info"); if (stickyMoves.getSelectedSide() === pokeObj.prop("id")) { stickyMoves.clearStickyMove(); } pokeObj.find(".teraToggle").prop("checked", false); pokeObj.find(".analysis").attr("href", smogonAnalysis(pokemonName)); pokeObj.find(".type1").val(pokemon.types[0]); pokeObj.find(".type2").val(pokemon.types[1]); pokeObj.find(".hp .base").val(pokemon.bs.hp); var i; for (i = 0; i < LEGACY_STATS[gen].length; i++) { pokeObj.find("." + LEGACY_STATS[gen][i] + " .base").val(pokemon.bs[LEGACY_STATS[gen][i]]); } pokeObj.find(".boost").val(0); pokeObj.find(".percent-hp").val(100); pokeObj.find(".status").val("Healthy"); $(".status").change(); var moveObj; var abilityObj = pokeObj.find(".ability"); var itemObj = pokeObj.find(".item"); var randset = $("#randoms").prop("checked") ? randdex[pokemonName] : undefined; var regSets = pokemonName in setdex && setName in setdex[pokemonName]; if (randset) { var listItems = randdex[pokemonName].items ? randdex[pokemonName].items : []; var listAbilities = randdex[pokemonName].abilities ? randdex[pokemonName].abilities : []; if (gen >= 3) $(this).closest('.poke-info').find(".ability-pool").show(); $(this).closest('.poke-info').find(".extraSetAbilities").text(listAbilities.join(', ')); if (gen >= 2) $(this).closest('.poke-info').find(".item-pool").show(); $(this).closest('.poke-info').find(".extraSetItems").text(listItems.join(', ')); if (gen >= 9) { $(this).closest('.poke-info').find(".role-pool").show(); $(this).closest('.poke-info').find(".tera-type-pool").show(); } var listRoles = randdex[pokemonName].roles ? Object.keys(randdex[pokemonName].roles) : []; $(this).closest('.poke-info').find(".extraSetRoles").text(listRoles.join(', ')); var listTeraTypes = []; if (randdex[pokemonName].roles) { for (var roleName in randdex[pokemonName].roles) { var role = randdex[pokemonName].roles[roleName]; for (var q = 0; q < role.teraTypes.length; q++) { if (listTeraTypes.indexOf(role.teraTypes[q]) === -1) { listTeraTypes.push(role.teraTypes[q]); } } } } pokeObj.find(".teraType").val(listTeraTypes[0] || pokemon.types[0]); $(this).closest('.poke-info').find(".extraSetTeraTypes").text(listTeraTypes.join(', ')); } else { $(this).closest('.poke-info').find(".ability-pool").hide(); $(this).closest('.poke-info').find(".item-pool").hide(); $(this).closest('.poke-info').find(".role-pool").hide(); $(this).closest('.poke-info').find(".tera-type-pool").hide(); } if (regSets || randset) { var set = regSets ? correctHiddenPower(setdex[pokemonName][setName]) : randset; if (regSets) { pokeObj.find(".teraType").val(set.teraType || pokemon.types[0]); } pokeObj.find(".level").val(set.level); if(pokeObj.find(".level").val() <= 0){ pokeObj.find(".level").attr('at_cap', pokeObj.find(".level").val()) pokeObj.find(".level").val(parseInt($('.level-cap').val()) + parseInt(pokeObj.find(".level").val())) } else{ pokeObj.find(".level").attr('at_cap', 'None') } pokeObj.find(".hp .evs").val((set.evs && set.evs.hp !== undefined) ? set.evs.hp : 0); pokeObj.find(".hp .ivs").val((set.ivs && set.ivs.hp !== undefined) ? set.ivs.hp : 31); pokeObj.find(".hp .dvs").val((set.dvs && set.dvs.hp !== undefined) ? set.dvs.hp : 15); pokeObj.find(".status").val(set.status); for (i = 0; i < LEGACY_STATS[gen].length; i++) { pokeObj.find("." + LEGACY_STATS[gen][i] + " .evs").val( (set.evs && set.evs[LEGACY_STATS[gen][i]] !== undefined) ? set.evs[LEGACY_STATS[gen][i]] : ($("#randoms").prop("checked") ? 84 : 0)); pokeObj.find("." + LEGACY_STATS[gen][i] + " .ivs").val( (set.ivs && set.ivs[LEGACY_STATS[gen][i]] !== undefined) ? set.ivs[LEGACY_STATS[gen][i]] : 31); pokeObj.find("." + LEGACY_STATS[gen][i] + " .dvs").val( (set.dvs && set.dvs[LEGACY_STATS[gen][i]] !== undefined) ? set.dvs[LEGACY_STATS[gen][i]] : 15); } setSelectValueIfValid(pokeObj.find(".nature"), set.nature, "Hardy"); var abilityFallback = (typeof pokemon.abilities !== "undefined") ? pokemon.abilities[0] : ""; if ($("#randoms").prop("checked")) { setSelectValueIfValid(abilityObj, randset.abilities && randset.abilities[0], abilityFallback); setSelectValueIfValid(itemObj, randset.items && randset.items[0], ""); } else { setSelectValueIfValid(abilityObj, set.ability, abilityFallback); setSelectValueIfValid(itemObj, set.item, ""); } var setMoves = set.moves; if (randset) { if (gen < 9) { setMoves = randset.moves; } else { setMoves = []; for (var role in randset.roles) { for (var q = 0; q < randset.roles[role].moves.length; q++) { var moveName = randset.roles[role].moves[q]; if (setMoves.indexOf(moveName) === -1) setMoves.push(moveName); } } } } var moves = selectMovesFromRandomOptions(setMoves); for (i = 0; i < 4; i++) { moveObj = pokeObj.find(".move" + (i + 1) + " select.move-selector"); moveObj.attr('data-prev', moveObj.val()); setSelectValueIfValid(moveObj, moves[i], "(No Move)"); moveObj.change(); } if (randset) { $(this).closest('.poke-info').find(".move-pool").show(); $(this).closest('.poke-info').find(".extraSetMoves").html(formatMovePool(setMoves)); } } else { pokeObj.find(".teraType").val(pokemon.types[0]); pokeObj.find(".level").val(100); pokeObj.find(".hp .evs").val(0); pokeObj.find(".hp .ivs").val(31); pokeObj.find(".hp .dvs").val(15); for (i = 0; i < LEGACY_STATS[gen].length; i++) { pokeObj.find("." + LEGACY_STATS[gen][i] + " .evs").val(0); pokeObj.find("." + LEGACY_STATS[gen][i] + " .ivs").val(31); pokeObj.find("." + LEGACY_STATS[gen][i] + " .dvs").val(15); } pokeObj.find(".nature").val("Hardy"); setSelectValueIfValid(abilityObj, pokemon.ab, ""); itemObj.val(""); for (i = 0; i < 4; i++) { moveObj = pokeObj.find(".move" + (i + 1) + " select.move-selector"); moveObj.attr('data-prev', moveObj.val()); moveObj.val("(No Move)"); moveObj.change(); } if ($("#randoms").prop("checked")) { $(this).closest('.poke-info').find(".move-pool").hide(); } } if (typeof getSelectedTiers === "function") { // doesn't exist when in 1vs1 mode var format = getSelectedTiers()[0]; var is50lvl = startsWith(format, "VGC") || startsWith(format, "Battle Spot"); //var isDoubles = format === 'Doubles' || has50lvl; *TODO* if (format === "LC") pokeObj.find(".level").val(5); if (is50lvl) pokeObj.find(".level").val(50); //if (isDoubles) field.gameType = 'Doubles'; *TODO* } var formeObj = $(this).siblings().find(".forme").parent(); itemObj.prop("disabled", false); var baseForme; if (pokemon.baseSpecies && pokemon.baseSpecies !== pokemon.name) { baseForme = pokedex[pokemon.baseSpecies]; } if (pokemon.otherFormes) { showFormes(formeObj, pokemonName, pokemon, pokemonName); } else if (baseForme && baseForme.otherFormes) { showFormes(formeObj, pokemonName, baseForme, pokemon.baseSpecies); } else { formeObj.hide(); } calcHP(pokeObj); calcStats(pokeObj); abilityObj.change(); itemObj.change(); if (pokemon.gender === "N") { pokeObj.find(".gender").parent().hide(); pokeObj.find(".gender").val(""); } else pokeObj.find(".gender").parent().show(); } window.NO_CALC = false; }); let label = document.createElement('label') $(label).text('Cap is at:') let input = document.createElement('input') $(input).attr('type', 'number') $(input).addClass('level-cap') $(input).val(50) let host = $('.info-group.top.i-f-o-type').children().get(-2) host.append(label) host.append(input) let vanilla_level = $($(host).children('input').get(0)) if(vanilla_level.val() <= 0){ vanilla_level.val(parseInt($('.level-cap').val()) + parseInt(vanilla_level.val())) } $('.level-cap').on('input', function(){ if($('#levelR1').attr('at_cap') != "None") $('#levelR1').val(parseInt($('.level-cap').val()) + parseInt($('#levelR1').attr('at_cap'))) $(".level").trigger('keyup') }) $('.level-cap').trigger('input')