BvS Quest Hotkeys

Quest hotkeys for BvS

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name		BvS Quest Hotkeys
// @namespace	BvS
// @description	Quest hotkeys for BvS
// @version		4
// @history		4 clicking d also starts the quest "forest of death"
// @history		3 clicking d also starts the quests "Very Tragic Story", "Stalkergirl", "Checkmate", "junk II", "junk III", "junk IV"
// @history		2 added claiming your snow rewards, streamlined code, clicking c when out of stamina should no longer reload page
// @history		1.7 fixed watching your show (watching your shows is now quest44 not quest43)
// @history		1.6 button press will start "watching your shows" if available.
// @history		1.5 on rolling quests, will reattempt with same jutsu choice if available.
// @history		1.4 will not reload page if out of stamina
// @history		1.3 solved problem where clicking d on the quest main page reloaded it. More efficient code. press d to start and skip chunin exam.
// @history		1.2 script termination to prevent performance degredation, and to prevent accidental reloading of quests page mid quest (if clicking d too fast).
// @history		1.1 Added updateURL
// @history		1.0 Initial version
// @match		http://www.animecubed.com/billy/bvs/quest*
// @match		http://animecubed.com/billy/bvs/quest*
// @match		http://www.animecubed.com/billy/bvs/chuninexam*
// @match		http://animecubed.com/billy/bvs/chuninexam*
// ==/UserScript==

function submit_form(form_name)
{
	if (document.forms.namedItem(form_name))
	{
		remove_listener();													//Remove keypress listener before page refresh
		location.assign('javascript:' + form_name + '.submit()');
	}
}

function remove_listener()
{
	window.removeEventListener("keyup", key_press, false); 					// Removes the event listener, this is critically important to prevent "playing too fast" errors when spamming the button.
}

function key_press(event)
{
	if (event.keyCode==68)													//keypress d
	{
		if(0<=document.body.textContent.search("Not Enough Stamina"))		//Check for out of stamina, to avoid reloading on quest fail. Must come before checking for "attack", since out of stamina hide from user but does not disable attack key.
		{
			remove_listener();												//Remove key listener
		}
		else if(document.forms.namedItem("goquest2"))						//Check for quest fail, to avoid reloading on quest fail
		{
			remove_listener();												//Remove key listener
		}
		else if(document.forms.namedItem("attack"))							//checks for a button named "Attack"
		{
			submit_form("attack");
		}
		else if(document.forms.namedItem("goquestgo"))						//Check for reattempt rolling quest with same jutsu
		{
			submit_form("goquestgo");
		}
		else if(document.forms.namedItem("goquest"))						//Check for going to next step in quest is available.
		{
			submit_form("goquest");
		}
		else if(document.forms.namedItem("questcontinue"))					//Check for Continue Quest (when you left the quest menu and came back)
		{
			submit_form("questcontinue");
		}
		else if(document.forms.namedItem("quest44"))						//Check if the "Watching your shows" quest is available.
		{
			submit_form("quest44");											//Start Daily shows quest
		}
		else if(document.forms.namedItem("questchu1"))						//Check if the chunin exam is available.
		{
			submit_form("questchu1");										//Start Chunin Exam quest
		}
		else if(document.forms.namedItem("skipchu"))						//Check for skip chunin exam button
		{
			submit_form("skipchu");											//Skip Chunin Exam
		}
		else if(document.forms.namedItem("quest85"))						//Check for "forest of death"
		{
			submit_form("quest85");
		}
		else if(document.forms.namedItem("quest17"))						//Check for "World Shoveling Association" to collect snow winning
		{
			submit_form("quest17");											//start "World Shoveling Association" quest
		}
		else if(document.forms.namedItem("quest125"))						//Check for "Very Tragic Story" quest
		{
			submit_form("quest125");
		}
		else if(document.forms.namedItem("quest159"))						//Check for "Stalkergirl" quest
		{
			submit_form("quest159");
		}
		else if(document.forms.namedItem("quest165"))						//Check for "Checkmate" quest
		{
			submit_form("quest165");
		}
		else if(document.forms.namedItem("quest94"))						//Check for "Junk II" quest
		{
			submit_form("quest94");
		}
		else if(document.forms.namedItem("quest145"))						//Check for "Junk III" quest
		{
			submit_form("quest145");
		}
		else if(document.forms.namedItem("quest87"))						//Check for "Junk IV" quest
		{
			submit_form("quest87");
		}
		else if(document.forms.namedItem("questhide"))						//Check for the quest hide interface to indicate that the current page is the main quest window, to prevent reloading it
		{
			remove_listener();												//Remove key listener
		}
		else
		{
			remove_listener();												//Remove key listener
			submit_form("minim4");											//Return to Quests menu if quest completed
		}
	}
	else if (event.keyCode==67)												//keypress c
	{
		submit_form("chakra");												//Charge chakra
	}
}

window.addEventListener("keyup", key_press, false);