GameMale
登陆 / 注册 搜索

USERCENTER

SEARCHSITE

搜索

查看: 1337|回复: 62
收起左侧

[实用工具] 【梅克军团】免操作避税神器,合理避税不求人!油猴批量血液献祭脚本2.0再升级!

    [复制链接] |关注本帖

Lvl. 8

Act of Ultimate Trust遗留之人的城堡人到中年丹·雷诺斯.王者之盾风物长宜Vergil

     楼主| 源子 发表于 2024-11-4 14:03:29 | 显示全部楼层 |阅读模式 |取消关注该作者的回复
    本帖最后由 源子 于 2024-11-6 12:21 编辑

    前情提要:血液批量献祭油猴脚本——合理避税,从我做起

    避税的原理不再过多赘述,之前的脚本只是随手写的,有种力大砖飞的美感,也就可能随机吞掉你几次兑换量罢了。另外操作界面还是太复杂了,还要看使用说明才知道怎么用,这样不好不好。@Name
    本次脚本主要有以下几项改动:
    1、本次的2.0版本不再采用模拟点击的方式,直接在后端提交请求,实现了数量更精准的献祭。
    2、兑换界面与泥潭原页面基本一致,仅将兑换按钮的文本修改成了“批量兑换”,方便区分脚本是否成功运行。
    3、新增了提示文本,方便直观比较税前税后价。
    已知BUG:因为浮点计算的问题,泥潭的计算公式在计算某些数值时会出现误差。例如兑换100旅程,实际应该消耗3500血液,但是泥潭的计算公式错误地计算成了3449。虽然无伤大雅,但是如果管理看到这里的话可以考虑修改一下计算公式,先将税率0.15放大100倍,计算完成后再截位,规避浮点计算,就不会出现这种问题。不过这跟咱的脚本没啥关系,咱们逃税只需要3400。

    使用说明:最好的使用说明就是没有使用说明!看看这个界面,还需要我说明什么吗!只管放心大胆地填,逃税的事就交给脚本去执行!
    万一被抓,逃税是脚本做的,关我周树人什么事?
    PS:楼主的血液量较少,测试量不足,如果使用过程发现有什么BUG,不妨给楼主点个免费的评分补点血,才能更好地修BUG,这不是骗
    赞,真的不是骗赞!

    逃税完成展示:



    用了chatGPT重构了变量名并添加注释,方便有志之士复用,不得不说chatGPT在这方面真挺方便的,让我打那么老长一段变量名那可真是会要老命的
    1. // ==UserScript==
    2. // @name         批量血液献祭2.0
    3. // @namespace    http://tampermonkey.net/
    4. // @version      2.0
    5. // @description  替换原网页功能,批量血液献祭
    6. // @match        https://www.gamemale.com/home.php?mod=spacecp&ac=credit&op=exchange
    7. // @author       源子
    8. // ==/UserScript==

    9. (function() {
    10.     'use strict';

    11.     function showInfo(message) {
    12.         console.log(message); // 输出到控制台
    13.         showError(message);    // 在前端显示消息
    14.     }

    15.     // 获取表单元素
    16.     const form = document.querySelector('#exchangeform'); // 兑换表单
    17.     const submitButton = document.querySelector('#exchangesubmit_btn'); // 提交按钮
    18.     const exchangeAmountInput = document.querySelector('#exchangeamount'); // 兑换数量输入框
    19.     const toCreditsSelect = document.querySelector('#tocredits'); // 目标积分选择框
    20.     const taxPercentDisplay = document.querySelector('#taxpercent'); // 显示原价、含税价和现价的区域
    21.     const exchangedesamountInput = document.querySelector('#exchangedesamount'); // 现价显示框

    22.     const TAX_RATE = 0.15; // 税率为 15%

    23.     // 禁用网页自带的 exchangecalcredit 计算逻辑
    24.     exchangeAmountInput.removeAttribute('onkeyup');
    25.     toCreditsSelect.removeAttribute('onchange');

    26.     // 设置提交按钮文本为“批量兑换”
    27.     if (submitButton) {
    28.         const buttonText = submitButton.querySelector('em');
    29.         if (buttonText) {
    30.             buttonText.textContent = "批量兑换";
    31.         }
    32.     }

    33.     // 更新显示原价、含税价和现价的函数
    34.     function updatePriceDisplay() {
    35.         const exchangeAmount = parseInt(exchangeAmountInput.value) || 1;
    36.         const selectedOption = toCreditsSelect.options[toCreditsSelect.selectedIndex];
    37.         const ratio = parseFloat(selectedOption.getAttribute('ratio'));

    38.         const originalPrice = exchangeAmount * ratio; // 原价
    39.         const taxIncludedUnitPrice = Math.floor(ratio * (1 + TAX_RATE)); // 含税单价取整
    40.         const finalPrice = Math.floor(originalPrice * (1 + TAX_RATE)); // 含税总价
    41.         const roundedTotalPrice = taxIncludedUnitPrice * exchangeAmount; // 现价:含税单价的整数部分乘数量

    42.         // 更新税率显示区域,显示原价、 泥潭含税价和逃税价
    43.         taxPercentDisplay.textContent = `原价: ${originalPrice}, 泥潭含税价: ${finalPrice}, 逃税价: ${roundedTotalPrice}`;
    44.         exchangedesamountInput.value = roundedTotalPrice;
    45.     }

    46.     // 添加监听器以在输入和选择变化时更新价格显示
    47.     exchangeAmountInput.addEventListener('input', updatePriceDisplay);
    48.     toCreditsSelect.addEventListener('change', updatePriceDisplay);

    49.     // 替换提交按钮行为
    50.     function replaceSubmitButton() {
    51.         if (submitButton) {
    52.             submitButton.onclick = (event) => {
    53.                 event.preventDefault(); // 阻止默认提交
    54.                 submitFormMultipleTimes(); // 调用自定义的提交函数
    55.             };
    56.             showInfo("兑换功能已升级为批量兑换");
    57.         } else {
    58.             console.warn("未找到提交按钮,检查选择器是否正确");
    59.         }
    60.     }

    61.     // 多次提交
    62.     async function submitFormMultipleTimes() {
    63.         const repeatCount = parseInt(exchangeAmountInput.value) || 1;
    64.         const actionUrl = form.action;
    65.         const headers = {
    66.             "User-Agent": "Mozilla/5.0",
    67.             "Cookie": document.cookie
    68.         };
    69.         const exchangeAmount = parseInt(exchangeAmountInput.value) || 1;
    70.         const totalExchangeAmount = exchangeAmount * repeatCount; // 总兑换量
    71.         let successCount = 0; // 初始化成功次数计数器

    72.         for (let i = 0; i < repeatCount; i++) {
    73.             try {
    74.                 const formData = new FormData(form);
    75.                 formData.set('exchangeamount', 1); // 每次提交的 exchangeamount 值设为 1

    76.                 const response = await fetch(actionUrl, {
    77.                     method: 'POST',
    78.                     headers: headers,
    79.                     body: formData,
    80.                 });
    81.                 if (!response.ok) {
    82.                     console.error(`兑换失败:第${i + 1}次`);
    83.                 } else {
    84.                     successCount++; // 增加成功计数
    85.                     showInfo(`兑换成功:第${i + 1}次`);
    86.                 }
    87.             } catch (error) {
    88.                 console.error(`兑换错误:第${i + 1}次`, error);
    89.             }
    90.         }

    91.         // 延时 1 秒提示兑换总量、成功次数并刷新页面
    92.         setTimeout(() => {
    93.             alert(`兑换完成!成功次数/兑换量:${successCount}/${repeatCount},获得${toCreditsSelect.options[toCreditsSelect.selectedIndex].getAttribute('title')}:${successCount},消耗血液:${exchangedesamountInput.value}`);
    94.             location.reload();
    95.         }, 1000); // 延时 1 秒
    96.     }


    97.     // 初始化替换按钮
    98.     replaceSubmitButton();
    99.     // 初始化价格显示
    100.     updatePriceDisplay();

    101. })();
    复制代码

    最后附上一个乞讨用的附件,走过路过不要错过~



    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x

    评分

    参与人数 19血液 +29 追随 +18 堕落 +6 收起 理由
    cuchulainn + 1 + 1 很给力!
    wubingyonglei + 3 + 1 + 1 很给力!
    黑达克 + 3 + 1 + 1 赞一个!
    肥鱼 + 6 + 1 赞一个!
    七号风球 + 1 很给力!
    RaSharim + 1 很给力!
    Culles + 1
    书の妖怪 + 3 很给力!
    KarKiv + 1
    咸鱼鱼 + 1

    查看全部评分

    回复

    使用道具 举报

    Lvl. 10 max

    GM活动员

    金猪猪储蓄罐㊖『随时随地开启!』漂洋小船『随时随地开启!』冒险用指南针破损的旧书丛林的鸟飞走了雪王的心脏人鱼之泪幽灵竹筒

      回复

      使用道具 举报

      『圣洁化身』虚空之海的鲸泰比里厄斯岛田源氏超人.杰森‧斯坦森.月光骑士月光骑士安杜因·乌瑞恩丹妮莉丝·坦格利安

        回复

        使用道具 举报

        辐射:新维加斯特殊-家园卫士Ⓛ崭新的白袜牧羊人枕套幽灵生化危机:复仇

          回复

          使用道具 举报

          我的天使GM吸血伯爵吃饱金币的Doge阿拉喵?神灯和你一起飞行的皮卡丘小小舞台永浴爱河

            回复

            使用道具 举报

            小丑与格雷与星光璀璨碎裂的储蓄罐诺克提斯·路西斯·伽拉姆康纳‧沃什.塞巴斯蒂安·斯坦.『灰域来音』御医神兔劫掠核芯幸运女神的微笑

              很好用,一点一点旅程兑换起来确实更划算……首先我得有那么多血液ヘ(;´Д`ヘ)所以我选择靠勋章回帖加旅程
              回复

              使用道具 举报

              幸运女神的微笑『南瓜拿铁』『逆境中的幸运女神』『钟楼盐水棒冰』御医神兔冒险专用绳索神人的编制发Forever Titanic金牌矿工无尽的怀表

                回复

                使用道具 举报

                没有梦想的咸鱼诺克提斯·路西斯·伽拉姆杰森‧斯坦森.远行刀锋女王 - 归宿官复原职叶卡捷琳娜大帝骑士遗盔最终幻想XIV

                  回复

                  使用道具 举报

                  男巫之歌業火死鬥山村贞子月影狼

                    回复

                    使用道具 举报

                    炽天使之拥GHOST幸运女神的微笑官复原职丹妮莉丝·坦格利安普隆普特·阿金塔姆克莱夫・罗兹菲尔德骑兽之子不朽之恋赛博朋克2077

                      回复

                      使用道具 举报

                      百相千面-晦永远的克叔業火死鬥实现梦想官复原职虚空之海的鲸Zootopia幸运女神的微笑『逆境中的幸运女神』御医神兔

                        回复

                        使用道具 举报

                        BIG BOSS肥皂铁牛泰比里厄斯吃饱金币的Doge亚瑟‧摩根自由克里斯·埃文斯艾吉奥杰森‧斯坦森.

                          回复

                          使用道具 举报

                          石肤术小小安全帽魔眼护符骑兽之子召唤古代战士近地夜航元气菠菜人烈焰天使弓龙血指环『灰域来音』

                            回复

                            使用道具 举报

                            实现梦想性感男神GM人到中年卡洛斯·奥利维拉史莱姆牧场霍格沃兹魔法学校Forever Titanic官复原职

                              回复

                              使用道具 举报

                              猩红魔鹫裸体克里斯永远的克叔不朽之恋

                                回复

                                使用道具 举报

                                驯化红龙幼崽森林羊男牧羊人【新手友好】昆進龙腾世纪:审判瑞雪兆丰年,生灵万物新山猫图腾

                                  回复

                                  使用道具 举报

                                  BIG BOSS虚空之海的鲸雄躯的昇格爬行植物Ⓛ粉猪猪储蓄罐㊖爬行植物Ⓡ

                                    回复

                                    使用道具 举报

                                    瑞雪兆丰年,生灵万物新山猫图腾猎鹰图腾眼镜蛇图腾森林羊男

                                      回复

                                      使用道具 举报

                                      『南瓜拿铁』新手蛋小丑与格雷与星光璀璨寶可夢 Pokémon

                                        回复

                                        使用道具 举报

                                        20x43 隐形➀吃饱金币的Doge冒险用指南针金牌矿工小小安全帽小小舞台阿拉喵?神灯金猪猪储蓄罐㊖『梦旅存根』

                                          回复

                                          使用道具 举报

                                          您需要登录后才可以回帖 登录 | 立即注册

                                          本版积分规则

                                          文字版|手机版|小黑屋|GameMale

                                          GMT+8, 2024-11-21 16:43 , Processed in 0.176301 second(s), 145 queries , Redis On.

                                          Copyright © 2013-2024 GameMale

                                          All Rights Reserved.

                                          快速回复 返回列表