斗鱼鱼塘商城自动兑换工具 (注意手动设置个人用户ID以及房间号)
唔 两个版本都会自动获取ID 可是如果过期了会获取失败 要手动钓鱼刷新
多选版 虽然能多选可是。。好像没什么屌用 (我已经忘了效果了 不过最近都是用多多选版)
并发请求了后 前面几个请求能成功 后面的请求都会因为请求频繁被拒绝 拒绝太多次还会拉黑几分钟 不能访问钓鱼活动
最新版本的正在测试 整理 想办法解决这问题🤣
弄好后会更新到多房间钓鱼那个脚本整合在一起 (虽然大概率弄不好 就单纯上一个整合版本的😭)
好的!谢谢大佬解答,我看到您评论中v1.4多选版和v1.3的脚本在简介里都提到自动兑换功能有点问题导致不能准点开始兑换,请问如果要用自动兑换的话是用v1.4还是v1.3来自动兑换可以持续更长时间不出现bug,这两个版本大概可以挂几个小时不出问题?另外提一个小建议如果兑换鱼翅这个脚本更新了的话可以独立更新在这个脚本页面作为一个单独的脚本吗,因为基本上大多数人还是不会多房间钓鱼的 <3
好的!谢谢大佬解答,我看到您评论中v1.4多选版和v1.3的脚本在简介里都提到自动兑换功能有点问题导致不能准点开始兑换,请问如果要用自动兑换的话是用v1.4还是v1.3来自动兑换可以持续更长时间不出现bug,这两个版本大概可以挂几个小时不出问题?另外提一个小建议如果兑换鱼翅这个脚本更新了的话可以独立更新在这个脚本页面作为一个单独的脚本吗,因为基本上大多数人还是不会多房间钓鱼的 <3
1.3 1.4都一样, 只要你浏览器窗口没有单独拉出来 你正在使用浏览器的其他标签页, 其他东西全屏,电脑黑屏,锁屏,切换桌面 巴拉巴拉的 因为浏览器为了替你节省资源都会导致延迟 1分钟1次 因为本来这玩意就得卡点嘛 1分钟检测一次基本等到检测的时候都凉凉了
多房间那个其实也可以单房间, 是优化版本的 之前版本是模拟点击按钮 会遇到卡顿 请刷新重试的提示 有时候不刷新他就真卡在一个页面了 脚本无效了, 新版本的就不用担心这个问题完全通过网络请求 就算出现提示了也会自动重试 检测钓鱼状态 继续抛竿收杆
好的!谢谢大佬解答,我看到您评论中v1.4多选版和v1.3的脚本在简介里都提到自动兑换功能有点问题导致不能准点开始兑换,请问如果要用自动兑换的话是用v1.4还是v1.3来自动兑换可以持续更长时间不出现bug,这两个版本大概可以挂几个小时不出问题?另外提一个小建议如果兑换鱼翅这个脚本更新了的话可以独立更新在这个脚本页面作为一个单独的脚本吗,因为基本上大多数人还是不会多房间钓鱼的 <3
所以目前的钓鱼 兑换 脚本, 想要挂机的话 最好的办法是将那个标签页单独拉出来 然后自己拉窗口大小到最小, 放到角落去(有分屏也能丢分屏(忘了测试丢分屏 其他分屏能不能全屏 最大化了..)) 如果经常想要打游戏 或者看视频 全屏 最大化啥的功能 就下载个能将窗口置顶的软件 将那个标签页置顶 然后只要不锁屏黑屏最小化该窗口 基本其他操作不会影响
今天斗鱼更新鱼塘商城过后好像多选版手动点开始抢,抢不到办卡了? 我抢了好几次都抢不到,是脚本需要更新一下还是单纯我运气不好呢。另外斗鱼好像把鱼翅可兑换的数量都减少了,1鱼翅x3,
0.5鱼翅x6 0.1鱼翅x20,5鱼翅碎片x4,2鱼翅碎片x5,办卡还是2张没变,每天换完只要7050斤了
刚刚斗鱼又改商店物品了,把初级水手,精英水手,心动卡,鱼翅,鱼翅碎片那些兑换物品都删了。。。
就刚刚,几分钟前改的,我还有2张心动卡,2个鱼翅没换完T T
就刚刚,几分钟前改的,我还有2张心动卡,2个鱼翅没换完T T
哈哈哈哈哈 真的是🐶🐠 明明都有设置每人上限, 每次刷新提供的额度 可是就是玩不起
可不嘛,要不用脚本顶多抢得到初级水手,0.1鱼翅,2鱼翅碎片。其他的贵的一个都抢不到。不行留着换换鱼丸,换换亲密度道具得了,就不买鱼饵了。买鱼饵钓回本不可能的
今天的鱼翅还没换完就没了,不可能再充钱买饵了
能看看2W鱼丸和1W那个鱼丸的兑换码嘛_(:з」∠)_,那俩正常手动也是抢不到的。
能看看2W鱼丸和1W那个鱼丸的兑换码嘛_(:з」∠)_,那俩正常手动也是抢不到的。
就刚刚,几分钟前改的,我还有2张心动卡,2个鱼翅没换完T T
昨天一觉睡了14小时 本来能换完的 狗鱼卧曹 哈哈哈
鱼丸的从 YW_1 到 YW_6
{
"index": "YW_1",
"awardInfo": {
"awardType": 10002,
"awardId": 0,
"awardNum": 200,
"awardNum2": 0,
"awardName": "鱼丸",
"awardPic": "https://sta-op.douyucdn.cn/dygev/2024/12/19/4955b27fc2281ff7318f69cbef2a565f.png",
"awardSort": 1,
"awardNumShow": 200
},
"type": 1,
"badgeLimit": 0,
"consumeNum": 50,
"giftId": 0,
"giftNum": 0,
"giftPrice": 0,
"status": 1,
"circle": 1
},
{
"index": "YW_2",
"awardInfo": {
"awardType": 10002,
"awardId": 0,
"awardNum": 500,
"awardNum2": 0,
"awardName": "鱼丸",
"awardPic": "https://sta-op.douyucdn.cn/dygev/2024/12/19/4955b27fc2281ff7318f69cbef2a565f.png",
"awardSort": 1,
"awardNumShow": 500
},
"type": 1,
"badgeLimit": 0,
"consumeNum": 100,
"giftId": 0,
"giftNum": 0,
"giftPrice": 0,
"status": 1,
"circle": 1
},
{
"index": "YW_3",
"awardInfo": {
"awardType": 10002,
"awardId": 0,
"awardNum": 1000,
"awardNum2": 0,
"awardName": "鱼丸",
"awardPic": "https://sta-op.douyucdn.cn/dygev/2024/12/19/4955b27fc2281ff7318f69cbef2a565f.png",
"awardSort": 1,
"awardNumShow": 1000
},
"type": 1,
"badgeLimit": 0,
"consumeNum": 200,
"giftId": 0,
"giftNum": 0,
"giftPrice": 0,
"status": 1,
"circle": 1
},
{
"index": "YW_4",
"awardInfo": {
"awardType": 10002,
"awardId": 0,
"awardNum": 3000,
"awardNum2": 0,
"awardName": "鱼丸",
"awardPic": "https://sta-op.douyucdn.cn/dygev/2024/12/19/4955b27fc2281ff7318f69cbef2a565f.png",
"awardSort": 1,
"awardNumShow": 3000
},
"type": 1,
"badgeLimit": 0,
"consumeNum": 500,
"giftId": 0,
"giftNum": 0,
"giftPrice": 0,
"status": 3,
"circle": 1,
"convertCycle": {
"startTime": 1737360000,
"endTime": 1737363600
}
},
{
"index": "YW_5",
"awardInfo": {
"awardType": 10002,
"awardId": 0,
"awardNum": 10000,
"awardNum2": 0,
"awardName": "鱼丸",
"awardPic": "https://sta-op.douyucdn.cn/dygev/2024/12/19/4955b27fc2281ff7318f69cbef2a565f.png",
"awardSort": 1,
"awardNumShow": 10000
},
"type": 1,
"badgeLimit": 0,
"consumeNum": 1500,
"giftId": 0,
"giftNum": 0,
"giftPrice": 0,
"status": 3,
"circle": 1,
"convertCycle": {
"startTime": 1737360000,
"endTime": 1737363600
}
},
{
"index": "YW_6",
"awardInfo": {
"awardType": 10002,
"awardId": 0,
"awardNum": 20000,
"awardNum2": 0,
"awardName": "鱼丸",
"awardPic": "https://sta-op.douyucdn.cn/dygev/2024/12/19/4955b27fc2281ff7318f69cbef2a565f.png",
"awardSort": 1,
"awardNumShow": 20000
},
"type": 1,
"badgeLimit": 0,
"consumeNum": 2500,
"giftId": 0,
"giftNum": 0,
"giftPrice": 0,
"status": 3,
"circle": 1,
"convertCycle": {
"startTime": 1737360000,
"endTime": 1737363600
}
},
// ==UserScript==
// @name 斗鱼鱼塘商城兑换工具(多选版)
// @namespace YourNamespaceHere
// @version 1.4
// @description 斗鱼鱼塘商城自动兑换工具 (注意手动设置个人用户ID以及房间号),支持下拉菜单多选兑换
// @match https://www.douyu.com/pages/fish-act/mine*
// @grant GM_addStyle
// @grant GM_xmlhttpRequest
// @license MIT
// ==/UserScript==
(function () {
'use strict';
// ---------- 重要 ----------//
let previousAcfCcnValue = null;
let ctnid = '112233'; ///用户ID 在发送请求的时候会自动在Cookies获取最新的ID
const roomid = '534740'; //房间ID
// 用于判断页面是否加载完成的标志变量
let pageLoaded = false;
// 监听页面加载状态改变事件
window.addEventListener('load', function () {
pageLoaded = true;
initScript();
});
// 初始化脚本的函数,在页面加载完成后执行具体操作
function initScript() {
// 添加悬浮窗样式
GM_addStyle(`
#overlay {
position: fixed;
top: 26%;
left: 50%;
transform: translate(-50%, -50%);
background-color: rgba(255, 255, 255, 0.9);
padding: 20px;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
display: none;
z-index: 9999;
}
button {
margin: 5px;
padding: 10px 20px;
font-size: 16px;
cursor: pointer;
border: none;
border-radius: 5px;
}
button.controlExchange {
background-color: red;
color: white;
margin: 5px;
padding: 10px 20px;
font-size: 16px;
cursor: pointer;
border: none;
border-radius: 5px;
}
button.autoExchange {
background-color: red;
color: white;
margin: 5px;
padding: 10px 20px;
font-size: 16px;
cursor: pointer;
border: none;
border-radius: 5px;
}
select {
margin: 5px;
padding: 10px;
font-size: 16px;
border: 1px solid #ccc;
border-radius: 5px;
height: auto; /* 调整高度以适应多选展示 */
overflow-y: auto; /* 出现滚动条 */
width: 200px; /* 设置合适宽度 */
-webkit-appearance: none; /* 去除默认样式(webkit浏览器) */
-moz-appearance: none; /* 去除默认样式(firefox浏览器) */
appearance: none; /* 去除默认样式 */
}
`);
// 创建悬浮窗元素及按钮
const overlay = document.createElement('div');
overlay.id = 'overlay';
// 创建控制兑换的按钮(集成启动和停止功能)
const controlExchangeButton = document.createElement('button');
controlExchangeButton.textContent = '启动兑换 ✔';
controlExchangeButton.className = 'controlExchange';
// 创建自动兑换按钮
const autoExchangeButton = document.createElement('button');
autoExchangeButton.textContent = '自动兑换 ✖';
autoExchangeButton.className = 'autoExchange';
// 创建下拉菜单元素,设置为多选模式(multiple属性)
const selectMenu = document.createElement('select');
selectMenu.setAttribute('multiple', 'multiple');
// 我只换了每种类型的第一个 再根据斗鱼的尿性推算的后面几个数字
const items = [
{ value: 'hahahahha', text: '请选择需要兑换的奖品' },
//{ value: 'PROP_1', text: '3级粉丝牌 初级水手' },
//{ value: 'PROP_2', text: '3级粉丝牌 精英士官' },
//{ value: 'PROP_3', text: '6级粉丝牌 心动卡' },
{ value: 'FREE_PROP_1', text: '10 陪伴印章' },
{ value: 'FREE_PROP_2', text: '30 陪伴印章' },
{ value: 'FREE_PROP_3', text: '50 陪伴印章' },
//{ value: 'YC_TY_1', text: '0.1 鱼翅' },
//{ value: 'YC_TY_2', text: '0.5 鱼翅' },
//{ value: 'YC_TY_3', text: '1 鱼翅' },
//{ value: 'YW_1', text: '200 鱼丸' },
//{ value: 'YW_2', text: '500 鱼丸' },
//{ value: 'YW_3', text: '1000 鱼丸' },
//{ value: 'YW_4', text: '3000 鱼丸' },
{ value: 'YW_5', text: '10000 鱼丸' },
{ value: 'YW_6', text: '20000 鱼丸' },
//{ value: 'YC_CHIP_1', text: '2 鱼翅碎片' },
//{ value: 'YC_CHIP_2', text: '5 鱼翅碎片' }
];
// 循环创建下拉菜单选项
items.forEach(item => {
const option = document.createElement('option');
option.value = item.value;
option.textContent = item.text;
selectMenu.appendChild(option);
});
overlay.appendChild(controlExchangeButton);
overlay.appendChild(autoExchangeButton);
overlay.appendChild(selectMenu);
document.body.appendChild(overlay);
// 用于记录鼠标按下时的坐标以及悬浮窗初始坐标
let startX, startY, offsetX, offsetY;
// 为悬浮窗添加鼠标按下事件监听器
overlay.addEventListener('mousedown', function (e) {
startX = e.pageX;
startY = e.pageY;
offsetX = overlay.offsetLeft;
offsetY = overlay.offsetTop;
document.addEventListener('mousemove', drag);
document.addEventListener('mouseup', stopDrag);
});
// 拖动时的处理函数
function drag(e) {
overlay.style.left = offsetX + e.pageX - startX + 'px';
overlay.style.top = offsetY + e.pageY - startY + 'px';
}
// 停止拖动的处理函数
function stopDrag() {
document.removeEventListener('mousemove', drag);
document.removeEventListener('mouseup', stopDrag);
}
// 用于存储当前选中的多个选项值的数组
let selectedIndexValues = [];
// 监听下拉菜单选项改变事件,更新选中的多个选项值
selectMenu.addEventListener('change', function () {
selectedIndexValues = Array.from(selectMenu.selectedOptions).map(option => option.value);
console.log(`目前选择的奖品:`, selectedIndexValues.map(value => {
const selectedOption = Array.from(selectMenu.options).find(opt => opt.value === value);
return selectedOption.textContent;
}));
});
// 用于控制兑换代码是否执行的标志变量,初始设为false表示未运行
let isRunning = false;
// 用于标记自动兑换功能是否开启,初始设为false
let autoExchangeEnabled = false;
// 显示悬浮窗
function showOverlay() {
overlay.style.display = 'block';
}
// 隐藏悬浮窗
function hideOverlay() {
overlay.style.display = 'none';
}
// 点击控制兑换按钮的处理函数
controlExchangeButton.addEventListener('click', function () {
if (isRunning) {
isRunning = false;
this.textContent = '启动兑换 ✔';
this.style.backgroundColor ='red';
console.log(`停止兑换 ${isRunning}`);
} else {
isRunning = true;
this.textContent = '停止兑换 ✖';
this.style.backgroundColor = 'green';
console.log(`开始兑换 ${isRunning}`);
runExchangeLoop();
}
});
// 点击自动兑换按钮的处理函数
autoExchangeButton.addEventListener('click', function () {
autoExchangeEnabled =!autoExchangeEnabled;
if (autoExchangeEnabled) {
this.textContent = '自动兑换中 ✔';
this.style.backgroundColor = 'green';
startAutoExchange();
} else {
this.textContent = '自动兑换 ✖';
this.style.backgroundColor = 'red';
stopAutoExchange();
}
});
// 获取当前时间的分钟和秒数
function getCurrentTime() {
const now = new Date();
const minutes = now.getMinutes();
const seconds = now.getSeconds();
return { minutes, seconds };
}
// 模拟兑换代码执行的函数(这里简化了之前的fetch请求,实际要替换成完整准确的)
async function exchange(selectedIndexValue) {
try {
const cookies = document.cookie;
const acf_ccn = cookies.split('; ').find(cookie => cookie.startsWith('acf_ccn='));
if (acf_ccn) {
let acf_ccnValue = acf_ccn.split('=')[1];
if (previousAcfCcnValue!== acf_ccnValue) {
console.log(`CtnID 已经刷新 \n 旧ID:${ctnid} \n 新ID:${acf_ccnValue}`);
previousAcfCcnValue = acf_ccnValue;
ctnid = acf_ccnValue;
}
}
console.log(`兑换请求属性设置 ctn=${ctnid}&rid=${roomid}&index=${selectedIndexValue}`);
await fetch("https://www.douyu.com/japi/revenuenc/web/actfans/convert/convertOpt", {
"headers": {
"accept": "application/json, text/plain, */*",
"accept-language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7",
"content-type": "application/x-www-form-urlencoded",
"priority": "u=1, i",
"sec-ch-ua": "\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"Windows\"",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin"
},
"referrer": "https://www.douyu.com/pages/fish-act/shop",
"referrerPolicy": "strict-origin-when-cross-origin",
"body": `ctn=${ctnid}&rid=${roomid}&index=${selectedIndexValue}`,
"method": "POST",
"mode": "cors",
"credentials": "include"
});
} catch (error) {
console.error('兑换出现错误:', error);
}
await sleep(50); //0.1 秒运行一次 避免CPU占用过高崩溃
}
// 循环执行兑换代码的函数(根据标志变量控制)
async function runExchangeLoop() {
let count = 1;
let targetCount = 400 //0,1秒运行一次 10次=1秒 100次=10秒 默认200次= 20秒 建议在 59分50秒点击启动, 会在大约00分10~13秒结束
while (isRunning) {
for (const selectedIndexValue of selectedIndexValues) {
//await
exchange(selectedIndexValue);
}
await sleep(50);
console.log(`目前兑换请求发送次数 ${count}`);
count++;
updateControlExchangeButton(isRunning, targetCount - count);
if (count - 1 >= targetCount) {
isRunning = false;
updateControlExchangeButton(isRunning, targetCount - count);
}
}
}
let autoExchangeCount = 0;
let lastTriggerTime = 0;
const countdownElement = document.querySelector('div[class*="time--"]');
function autoExchangeObserver(callback) {
const targetNode = countdownElement; // 使用获取到的倒计时元素
//const targetNode = document.body;
const observer = new MutationObserver((mutationsList, observer) => {
const currentTime = performance.now();
const currentTtime = getCurrentTime();
console.log(`测试 ${currentTtime.seconds}`);
if (currentTime - lastTriggerTime >= 1000) {
lastTriggerTime = currentTime;
callback();
}
});
const config = {
characterData: true, // 监听文本节点内容变化,因为倒计时文本会改变
subtree: true, // 子树变化也监听,以防倒计时元素内部结构有变化影响文本显示
};
//const config = { attributes: true, childList: true, subtree: true };
observer.observe(targetNode, config);
}
autoExchangeObserver(autoExchangeCallback);
function autoExchangeCallback() {
const currentTime = getCurrentTime();
if (isInTimeRange() && autoExchangeEnabled) {
for (let i = 0; i < 20; i++) {
for (const selectedIndexValue of selectedIndexValues) {
console.log(`目前时间 ${currentTime.minutes}分${currentTime.seconds}秒 发送兑换请求(奖品:${selectedIndexValue})`);
exchange(selectedIndexValue);
console.log(`目前时间 ${currentTime.minutes}分${currentTime.seconds}秒 发送兑换请求结束(奖品:${selectedIndexValue})`);
}
}
} else {
autoExchangeCount++;
if (autoExchangeCount % 60 === 0) {
console.log(`自动兑换运行中 每分钟提示一次 ${autoExchangeCount / 60} 目前时间 ${currentTime.minutes}分${currentTime.seconds}秒`);
}
}
}
// 启动自动兑换循环
function startAutoExchange() {
//autoExchangeLoop();
autoExchangeCallback();
console.log(`开始自动兑换${autoExchangeEnabled}`);
}
// 停止自动兑换循环
function stopAutoExchange() {
autoExchangeEnabled = false;
console.log(`停止自动兑换${autoExchangeEnabled}`);
}
// 判断当前时间是否在指定时间区间内(59分58秒 - 00分05秒)
function isInTimeRange() {
const currentTime = getCurrentTime();
return (currentTime.minutes === 59 && currentTime.seconds >= 58) || (currentTime.minutes === 0 && currentTime.seconds <= 5);
}
// 简单的异步等待函数(以毫秒为单位)
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
function updateControlExchangeButton(isRunning, countLeft) {
if (isRunning) {
controlExchangeButton.textContent = `停止兑换 ✖ 剩余请求 ${countLeft}`;
controlExchangeButton.style.backgroundColor = 'green';
} else {
controlExchangeButton.textContent = '启动兑换 ✔';
controlExchangeButton.style.backgroundColor ='red';
}
}
// 页面加载完成后显示悬浮窗
showOverlay();
}
})();
是不是这么写就可以了我把YW后边的补上了。
是不是这么写就可以了我把YW后边的补上了。
其实我想问一下那个榜一是怎么1分钟钓几百条鱼的
是不是这么写就可以了我把YW后边的补上了。
Value格式对了 可以了 虽然我懒得改 直接console用这段代码了..
// 定义常量 items,存储可兑换的奖品信息
const items = [
//{ value: 'PROP_1', text: '3 级粉丝牌 初级水手 上限10' },
// { value: 'PROP_2', text: '3 级粉丝牌 精英士官 上限5' },
// { value: 'PROP_3', text: '6 级粉丝牌 心动卡 上限2' },
// { value: 'FREE_PROP_1', text: '10 陪伴印章' },
// { value: 'FREE_PROP_2', text: '30 陪伴印章' },
// { value: 'FREE_PROP_3', text: '50 陪伴印章' },
// { value: 'YC_TY_1', text: '0.1 鱼翅 上限50' },
// { value: 'YC_TY_2', text: '0.5 鱼翅 上限10' },
// { value: 'YC_TY_3', text: '1 鱼翅 上限5' },
// { value: 'YW_1', text: '100 鱼丸' },
// { value: 'YW_2', text: '200 鱼丸' },
// { value: 'YW_3', text: '500 鱼丸' },
// { value: 'YC_CHIP_1', text: '2 鱼翅碎片 上限5' },
// { value: 'YC_CHIP_2', text: '5 鱼翅碎片 上限4' },
{ value: 'YW_4', text: '200 鱼丸' },
{ value: 'YW_5', text: '200 鱼丸' },
{ value: 'YW_6', text: '500 鱼丸' }
];
// 存储选中的奖品的 value
const selectedIndexValues = items.map(item => item.value);
let count = 1;
const targetCount = 50;
const rid = '11410656'; // 请替换为实际的房间号
async function main() {
while (count <= targetCount) {
const currentTime = getCurrentTime();
// const promises = [];
console.log(`当前兑换循环次数: ${count} 目前时间 ${currentTime.minutes}:${currentTime.seconds}`);
// 并发发送所有选中商品的兑换请求
for (const selectedIndexValue of selectedIndexValues) {
for (let i = 0; i < 1; i++) { // 每个商品发送 1 次请求
try {
const currentTime = getCurrentTime();
const response = await fetch(API_ENDPOINTS.FISH_SHOP, {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
body: `ctn=${getCCN()}&rid=${rid}&index=${selectedIndexValue}`,
credentials: "include"
});
const data = await response.json();
if (data.error === -1) {
console.log('操作频繁 等待 300 毫秒');
await sleep(300);
} else if (data.error === 30002) {
console.warn(`${selectedIndexValue} 奖品库存不足 目前时间 ${currentTime.minutes}:${currentTime.seconds}`);
} else {
console.log(`${selectedIndexValue} 兑换成功 目前时间 ${currentTime.minutes}:${currentTime.seconds}`);
await sleep(50);
}
} catch (error) {
console.error('兑换请求失败:', error);
}
}
}
// 等待所有请求完成
// await Promise.all(promises);
count++;
}
}
function getCurrentTime() {
const now = new Date();
return {
minutes: now.getMinutes(),
seconds: now.getSeconds()
};
}
function isRunning() {
const currentTime = getCurrentTime();
return (currentTime.minutes === 59 && currentTime.seconds >= 58) ||
(currentTime.minutes === 0 && currentTime.seconds <= 2);
}
function getCCN() {
let ccn = getCookie("acf_ccn");
if (!ccn) {
setCookie("acf_ccn", "1");
ccn = "1";
}
return ccn;
}
function getCookie(name) {
const reg = new RegExp(`(^| )${name}=([^;]*)(;|$)`);
const arr = document.cookie.match(reg);
return arr? unescape(arr[2]) : null;
}
function setCookie(name, value) {
document.cookie = `${name}=${value}`;
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
const API_ENDPOINTS = {
HOMEPAGE: 'https://www.douyu.com/japi/revenuenc/web/actfans/fishing/homePage',
FISH_SHOP: 'https://www.douyu.com/japi/revenuenc/web/actfans/convert/convertOpt'
};
// 定时器,每秒检查一次是否在时间范围内
const intervalId = setInterval(() => {
if (isRunning()) {
count = 1;
main();
}
}, 1000);
刚刚成功了 目前看来上限是 10个3000鱼丸 5个 1w 5个 2w
是不是这么写就可以了我把YW后边的补上了。
其实我想问一下那个榜一是怎么1分钟钓几百条鱼的
脚本氪金战士吧, 我同时挂7个直播间发现, 就只计算单个直播间的.. 我25级琉璃鱼娘 钓鱼时间缩短12% 4星以上1.4倍 也得53秒.. 半小时不算抛竿收杆延迟 30*60=1800秒/ 才33.9x条
印象中 没有钓到大赛的鱼是不算的, 所以他可能鱼竿椅子拉满 要么手动一直点提前收杆(我上次点过10分钟好像也没那么多) 要么脚本一直无限提前收杆抛竿收杆叭叭叭
点进去看了下 99级形象.. 今天5点16分 313x鱼 3w3斤.. 满级座椅 满级形象 鱼竿不知道,反正我截图3119 打字的时候头上一直冒出钓到的鱼 疯狂弹.. 然后就3138了....... 手动钓..也可能脚本频繁了?
想想 3143鱼 现在17点19分 17*60=1020 1020+19 1039 1039分钟钓3143鱼 平均 19.222941720629秒一条.. 又挂机看了一下 又突然头上一直冒鱼了22分 3189鱼 哈哈哈
是不是这么写就可以了我把YW后边的补上了。
其实我想问一下那个榜一是怎么1分钟钓几百条鱼的
脚本氪金战士吧, 我同时挂7个直播间发现, 就只计算单个直播间的.. 我25级琉璃鱼娘 钓鱼时间缩短12% 4星以上1.4倍 也得53秒.. 半小时不算抛竿收杆延迟 30*60=1800秒/ 才33.9x条
印象中 没有钓到大赛的鱼是不算的, 所以他可能鱼竿椅子拉满 要么手动一直点提前收杆(我上次点过10分钟好像也没那么多) 要么脚本一直无限提前收杆抛竿收杆叭叭叭
点进去看了下 99级形象.. 今天5点16分 313x鱼 3w3斤.. 满级座椅 满级形象 鱼竿不知道,反正我截图3119 打字的时候头上一直冒出钓到的鱼 疯狂弹.. 然后就3138了....... 手动钓..也可能脚本频繁了?
想想 3143鱼 现在17点19分 17*60=1020 1020+19 1039 1039分钟钓3143鱼 平均 19.222941720629秒一条.. 又挂机看了一下 又突然头上一直冒鱼了22分 3189鱼 哈哈哈
斗鱼有内鬼的,反正之前一起修炼那个游戏,我都不想玩了。之前他们测试人员无限鱼丸无限道具,恶心都恶心死。
不用买鱼饵挂了,铁亏本了现在,每天免费鱼饵用完就是了
其实我现在观察了几天,每天买足够挂满从12点到0点的中级鱼饵,还是比较大概率回本的。斗鱼现在把钓鱼大赛的奖励改了,那种0.1、0.2、0.5鱼翅,还有2-3鱼翅碎片一天挂满还有好几个鱼翅。
我今天运气挺好的,2个心动卡,1个卡丁车,截止到现在6.7鱼翅挂到11.4鱼翅,0点买前是10.7鱼翅的,然后现在饵都还没用完。
我的角色是50级的喵叽鱼娘+每天排名第一名奖励的王座。
————————————————————————————————————————————————————————————————————————
然后如果是要亲密度的话,把那几个陪伴礼物换完就行,如果是还要经验的,就屯着换2W鱼丸/2500分的,然后等亲密度加倍至少0.3-0.5的时候再送合适。
现在鱼丸也基本不用抢了,早几天能换的基本都换完了。
其实我现在观察了几天,每天买足够挂满从12点到0点的中级鱼饵,还是比较大概率回本的。斗鱼现在把钓鱼大赛的奖励改了,那种0.1、0.2、0.5鱼翅,还有2-3鱼翅碎片一天挂满还有好几个鱼翅。
我今天运气挺好的,2个心动卡,1个卡丁车,截止到现在6.7鱼翅挂到11.4鱼翅,0点买前是10.7鱼翅的,然后现在饵都还没用完。
我的角色是50级的喵叽鱼娘+每天排名第一名奖励的王座。
————————————————————————————————————————————————————————————————————————
然后如果是要亲密度的话,把那几个陪伴礼物换完就行,如果是还要经验的,就屯着换2W鱼丸/2500分的,然后等亲密度加倍至少0.3-0.5的时候再送合适。
现在鱼丸也基本不用抢了,早几天能换的基本都换完了。
请问大佬有没有试过高级鱼饵,斗鱼改商城之前我挂都是用的高级鱼饵,12点到0点的中级鱼饵大概要4鱼翅就是4000个?,我现在是46级喵叽鱼娘,没有每日排名第一的王座,但是开始挂的话就能拿到,大佬是从12点挂到0点不停还是只在钓鱼大赛的时候开始钓
其实我现在观察了几天,每天买足够挂满从12点到0点的中级鱼饵,还是比较大概率回本的。斗鱼现在把钓鱼大赛的奖励改了,那种0.1、0.2、0.5鱼翅,还有2-3鱼翅碎片一天挂满还有好几个鱼翅。
我今天运气挺好的,2个心动卡,1个卡丁车,截止到现在6.7鱼翅挂到11.4鱼翅,0点买前是10.7鱼翅的,然后现在饵都还没用完。
我的角色是50级的喵叽鱼娘+每天排名第一名奖励的王座。
————————————————————————————————————————————————————————————————————————
然后如果是要亲密度的话,把那几个陪伴礼物换完就行,如果是还要经验的,就屯着换2W鱼丸/2500分的,然后等亲密度加倍至少0.3-0.5的时候再送合适。
现在鱼丸也基本不用抢了,早几天能换的基本都换完了。请问大佬有没有试过高级鱼饵,斗鱼改商城之前我挂都是用的高级鱼饵,12点到0点的中级鱼饵大概要4鱼翅就是4000个?,我现在是46级喵叽鱼娘,没有每日排名第一的王座,但是开始挂的话就能拿到,大佬是从12点挂到0点不停还是只在钓鱼大赛的时候开始钓
就中级,就挂12-0点每个小时前半小时。
大佬,我看这个脚本只更新到v1.3,多选版那个是v1.4,请问您推荐用哪一个抢鱼塘商城的鱼翅,然后这个v1.3 和v1.4多选版都是自动获取ctn不需要手动设置的吗,只需要在脚本编辑界面填入房间号?