로유에스의 개발 회피 블로그

붕괴 스타레일 2.2 버전 퀘스트 안차는 오류 해결법 본문

돈미쨩 게임 :스타레일

붕괴 스타레일 2.2 버전 퀘스트 안차는 오류 해결법

로유에스 2024. 5. 9. 18:11
728x90
반응형

https://blog.naver.com/rkdrlgh22/223441563808

 

붕괴 스타레일 2.2 버전 퀘스트 안차는 오류 해결법

이 개같은 디스코드 문제인건지 아니면 개같이 관리자 권한을 요구하는 스타레일이 문제인지 모름 그래서 ...

blog.naver.com

 

  1. 이 개같은 디스코드 문제인건지 아니면 개같이 관리자 권한을 요구하는 스타레일이 문제인지 모름 그래서 둘중하나 이상해서 생긴 버그임

 

해결법

https://gist.github.com/aamiaa/204cd9d42013ded9faf646fae7f89fbb

 

Complete Recent Discord Quest

Complete Recent Discord Quest. GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

 

여기로 부터 해결법을 찾음

평소대로 퀘스트를 수락하고

아무거나 화면공유를 한다.

Ctrl+Shift+I 키를 눌러 개발자 도구를 연다

 

그리고 Console 탭에간다

 

먼저 디스코드에 복사 붙혀넣기가 안되기떄문에 아래의 명령어를 치고

allow pasting

 

이 명령어를 치면 해결이 된다.

let wpRequire;
window.webpackChunkdiscord_app.push([[ Math.random() ], {}, (req) => { wpRequire = req; }]);

let ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getStreamerActiveStreamMetadata).exports.default;
let QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getQuest).exports.default;
let FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.default?.flushWaitQueue).exports.default;

let quest = [...QuestsStore.quests.values()].find(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now())
let isApp = navigator.userAgent.includes("Electron/")
if(!isApp) {
	console.log("This no longer works in browser. Use the desktop app!")
} else if(!quest) {
	console.log("You don't have any uncompleted quests!")
} else {
	let pid = Math.floor(Math.random() * 30000) + 1000
	ApplicationStreamingStore.getStreamerActiveStreamMetadata = () => ({
		id: quest.config.applicationId,
		pid,
		sourceName: null
	})
	
	let secondsNeeded = quest.config.streamDurationRequirementMinutes * 60
	let fn = data => {
		let progress = data.userStatus.streamProgressSeconds
		console.log(`Quest progress: ${progress}/${secondsNeeded}`)
		
		if(progress >= secondsNeeded) {
			console.log("Quest completed!")
			FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
		}
	}
	FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
	
	console.log(`Spoofed your stream to ${quest.config.applicationName}. Stay in vc for ${Math.ceil(quest.config.streamDurationRequirementMinutes - (quest.userStatus?.streamProgressSeconds ?? 0) / 60)} more minutes.`)
	console.log("Remember that you need at least 1 other person to be in the vc!")
}
 

 

또 개같은 류웨이 덕분에 유저가 힘을 들게한다.

 

그러면 어느걸 틀어도 퀘스트는 클리어된다.

 

벤코드 유저면

(() => {
    const ApplicationStreamingStore = Vencord.Webpack.findStore(
        "ApplicationStreamingStore"
    );
    const QuestsStore = Vencord.Webpack.findStore("QuestsStore");
    const { FluxDispatcher } = Vencord.Webpack.Common;

    let quest = [...QuestsStore.quests.values()].find(
        x =>
            x.userStatus?.enrolledAt &&
            !x.userStatus?.completedAt &&
            new Date(x.config.expiresAt).getTime() > Date.now()
    );

    let isApp = navigator.userAgent.includes("Electron/");
    if (!isApp) {
        console.log("This no longer works in browser. Use the desktop app!");
    } else if (!quest) {
        console.log("You don't have any uncompleted quests!");
    } else {
        let pid = Math.floor(Math.random() * 30000) + 1000;
        ApplicationStreamingStore.getStreamerActiveStreamMetadata = () => ({
            id: quest.config.applicationId,
            pid,
            sourceName: null,
        });

        let secondsNeeded = quest.config.streamDurationRequirementMinutes * 60;
        let fn = data => {
            let progress = data.userStatus.streamProgressSeconds;
            console.log(`Quest progress: ${progress}/${secondsNeeded}`);

            if (progress >= secondsNeeded) {
                console.log("Quest completed!");
                FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn);
            }
        };
        FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn);

        console.log(
            `Spoofed your stream to ${
                quest.config.applicationName
            }. Stay in vc for ${Math.ceil(
                quest.config.streamDurationRequirementMinutes -
                    (quest.userStatus?.streamProgressSeconds ?? 0) / 60
            )} more minutes.`
        );
        console.log(
            "Remember that you need at least 1 other person to be in the vc!"
        );
    }
})();
 

이 내용을 타이핑 할것

 

728x90
반응형