您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Longtail AutoHorn
当前为
- // ==UserScript==
- // @name Mousehunt AutoHorn
- // @namespace http://userscripts.org/scripts/show/74721
- // @description Longtail AutoHorn
- // @version 4.2.1
- // @include http://*.mousehuntgame.com/*
- // @include https://*.mousehuntgame.com/*
- // @exclude http://*.mousehuntgame.com/images/*
- // @exclude https://*.mousehuntgame.com/images/*
- // @grant GM_getValue
- // @grant GM_setValue
- // @require http://code.jquery.com/jquery.min.js
- // @author are
- // ==/UserScript==
- /* Global Variables */
- var defaultpage = 'http://www.mousehuntgame.com';
- var hornpage = 'http://www.mousehuntgame.com/turn.php';
- var origtitle = document.title;
- var timerEvent;
- var timerTitle;
- var timerTrapCheck;
- var waktuTrapCheck;
- var waktuNextHorn;
- var waktuRandom;
- var waktuTitle;
- var waktuTournament;
- var msgTitle = 'Sound The Horn';
- var alertShown = false;
- var hornAllowed = false;
- var currentTrap = {weapon:0, base:0, trinket:0, bait:0, cached:false, busy:false, effmeter:null};
- var trapConfig = {TrapCheck:{enable:false,min:0,sec:5},SeasonalGarden:{autoTravel:false,'wr':{weapon:-1,base:-1,trinket:-1,bait:-1},'sg':{weapon:-1,base:-1,trinket:-1,bait:-1},'sr':{weapon:-1,base:-1,trinket:-1,bait:-1},'fl':{weapon:-1,base:-1,trinket:-1,bait:-1}},ZugzwangTower:{enabled:0,target:0,pawn:{weapon:-1,base:-1,trinket:-1,bait:-1},knight:{weapon:-1,base:-1,trinket:-1,bait:-1},bishop:{weapon:-1,base:-1,trinket:-1,bait:-1},rook:{weapon:-1,base:-1,trinket:-1,bait:-1},queen:{weapon:-1,base:-1,trinket:-1,bait:-1},king:{weapon:-1,base:-1,trinket:-1,bait:-1},chessmaster:{weapon:-1,base:-1,trinket:-1,bait:-1},minAmplifier:0},Iceberg:{enabled:0,altGeneralEnable:0,slushy_shoreline:{weapon:-1,base:-1,trinket:-1,bait:-1},phase1:{weapon:-1,base:-1,trinket:-1,bait:-1},phase2:{weapon:-1,base:-1,trinket:-1,bait:-1},phase3:{weapon:-1,base:-1,trinket:-1,bait:-1},phase4:{weapon:-1,base:-1,trinket:-1,bait:-1},phase5:{weapon:-1,base:-1,trinket:-1,bait:-1},generals:{weapon:-1,base:-1,trinket:-1,bait:-1},altgenerals:{weapon:-1,base:-1,trinket:-1,bait:-1}},BalackCove:{enabled:0,travel:0,jod:{weapon:-1,base:-1,trinket:-1,bait:98},low:{weapon:38,base:-1,trinket:-1,bait:119},mid:{weapon:38,base:-1,trinket:-1,bait:119},high:{weapon:38,base:-1,trinket:-1,bait:118}},FieryWarpath:{enabled:0,general:{weapon:-1,base:-1,trinket:-1,bait:-1},physical:{weapon:-1,base:-1,trinket:-1,bait:-1},tactical:{weapon:-1,base:-1,trinket:-1,bait:-1},hydro:{weapon:-1,base:-1,trinket:-1,bait:-1},arcane:{weapon:-1,base:-1,trinket:-1,bait:-1},gargantua:{weapon:-1,base:-1,trinket:-1,bait:-1},warden:{weapon:-1,base:-1,trinket:-1,bait:-1},warmonger:{weapon:-1,base:-1,trinket:-1,bait:-1},wave1:{superBrie:0,maxStreak:9,superCharm:0,gargantua:true,minGeneral:99,targetPhysical:true,charmNonPhysical:false,openSelection:true},wave2:{superBrie:0,maxStreak:9,superCharm:0,gargantua:true,minGeneral:99,targetPhysical:true,charmNonPhysical:true,targetNonPhysical:false,allowNonPhysical:false},wave3:{superBrie:0,maxStreak:9,superCharm:0,gargantua:true,minGeneral:99,targetPhysical:true,charmNonPhysical:true,targetNonPhysical:false,allowNonPhysical:false}}};
- var availableTraps = {};
- var AUDIO = {
- reward: 'data:audio/mid;base64,TVRoZAAAAAYAAQAQAeBNVHJrAAAAMAD/WAQBAhgIAP9ZAgAAAP9ZAgAAAP9UBSAAAAAAAP9RAwOpgINg/1EDBYx0AP8vAE1UcmsAAAAyAP8DCygxKSBPY2FyaW5hAP8ECkF1dG9t YXRpb24A/wENKEMpMjAwMSBOb2tpYQD/LwBNVHJrAAAAfgD/IAEBAP8DCygxKSBPY2FyaW5hAP8ECCpOZXcgICAgALF5AHjBSQWxB38ACkABC38EW38AXQBkZQAFZAAFBgcFZX8F ZH+BZpFaWQDhAECBQzVFD2FJDyJQDw5mgXB0f4FwAECBQzVFD2FJD01UDy9mgXB/f4NggVoAAP8vAE1UcmsAAACBAP8gAQIA/wMMKDEpIE9jYXJpbmEyAP8ECCpOZXcgICAgALJ5 AIFwwkkFsgt/AApAAQdaBF0AAFsogRFlAAVkAAUGBwVlfwVkf4Ixklo+AOIAQIFDNUUPYUkPIlAPDmaBcHR/gXAAQIFDNUUPYUkPTVQPL2aBcH9/g2CCWgAA/y8ATVRyawAAAH8A /yABAwD/AwwoMSkgT2NhcmluYTMA/wQIKk5ldyAgICAAs3kAeMNJBbMLfwAKQAEHQARdAABbKHhlAAVkAAUGBwVlfwVkf4Uyk1ouAOMAQIFDNUUPYUkPIlAPDmaBcHR/gXAAQIFD NUUPYUkPTVQPL2aBcH9/g2CDWgAA/y8ATVRyawAAAH8A/yABBAD/AwwoMSkgT2NhcmluYTQA/wQIKk5ldyAgICAAtHkAeMRJBbQLfwAKQAEHMgRdAABbKF9lAAVkAAUGBwVlfwVk f4c7lFogAOQAQIFDNUUPYUkPIlAPDmaBcHR/gXAAQIFDNUUPYUkPTVQPL2aBcH9/g2CEWgAA/y8ATVRyawAAAH8A/yABBQD/AwwoMSkgT2NhcmluYTkA/wQIKk5ldyAgICAAtXkA eMVJBbULfwAKQAEHKARdAABbKF9lAAVkAAUGBwVlfwVkf5BrlVoqAOUAQIFDNUUPYUkPIlAPDmaBcHR/gXAAQIFDNUUPYUkPTVQPL2aBcH9/g2CFWgAA/y8ATVRyawAAAIAA/yAB BgD/Aw0oMSkgT2NhcmluYTEwAP8ECCpOZXcgICAgALZ5AHjGSQW2C38ACkABBx4EXQAAWyhfZQAFZAAFBgcFZX8FZH+SW5ZaFgDmAECBQzVFD2FJDyJQDw5mgXB0f4FwAECBQzVF D2FJD01UDy9mgXB/f4NghloAAP8vAE1UcmsAAACAAP8gAQcA/wMNKDEpIE9jYXJpbmExMQD/BAgqTmV3ICAgIAC3eQB4x0kFtwt/AApAAQcUBF0AAFsoX2UABWQABQYHBWV/BWR/ lEuXWgIA5wBAgUM1RQ9hSQ8iUA8OZoFwdH+BcABAgUM1RQ9hSQ9NVA8vZoFwf3+DYIdaAAD/LwBNVHJrAAAAgAD/IAEIAP8DDSgxKSBPY2FyaW5hMTIA/wQIKk5ldyAgICAAuHkA eMhJBbgLfwAKQAEHFARdAABbKF9lAAVkAAUGBwVlfwVkf5Y7mFoBAOgAQIFDNUUPYUkPIlAPDmaBcHR/gXAAQIFDNUUPYUkPTVQPL2aBcH9/g2CIWgAA/y8ATVRyawAAAH4A/yAB CgD/AwsoMSkgT2NhcmluYQD/BAgqTmV3ICAgIAC6eQB4ylgFugd/AApAAQt/BFt/AF0AZGUABWQABQYHBWV/BWR/kGaaWlwA6gBAgUM1RQ9hSQ8iUA8OZoFwdH+BcABAgUM1RQ9h SQ9NVA8vZoFwf3+DYIpaAAD/LwBNVHJrAAAAgQD/IAELAP8DDCgxKSBPY2FyaW5hMgD/BAgqTmV3ICAgIAC7eQCBcMtYBbsLfwAKQAEHWgRdAABbKIERZQAFZAAFBgcFZX8FZH+R MZtaSADrAECBQzVFD2FJDyJQDw5mgXB0f4FwAECBQzVFD2FJD01UDy9mgXB/f4Ngi1oAAP8vAE1UcmsAAAB/AP8gAQwA/wMMKDEpIE9jYXJpbmEzAP8ECCpOZXcgICAgALx5AHjM WAW8C38ACkABB0AEXQAAWyh4ZQAFZAAFBgcFZX8FZH+UMpxaNADsAECBQzVFD2FJDyJQDw5mgXB0f4FwAECBQzVFD2FJD01UDy9mgXB/f4NgjFoAAP8vAE1UcmsAAAB/AP8gAQ0A /wMMKDEpIE9jYXJpbmE0AP8ECCpOZXcgICAgAL15AHjNWAW9C38ACkABBzIEXQAAWyhfZQAFZAAFBgcFZX8FZH+WO51aIADtAECBQzVFD2FJDyJQDw5mgXB0f4FwAECBQzVFD2FJ D01UDy9mgXB/f4NgjVoAAP8vAE1UcmsAAAB/AP8gAQ4A/wMMKDEpIE9jYXJpbmE5AP8ECCpOZXcgICAgAL55AHjOWAW+C38ACkABBygEXQAAWyhfZQAFZAAFBgcFZX8FZH+fa55a KgDuAECBQzVFD2FJDyJQDw5mgXB0f4FwAECBQzVFD2FJD01UDy9mgXB/f4NgjloAAP8vAE1UcmsAAACAAP8gAQ8A/wMNKDEpIE9jYXJpbmExMAD/BAgqTmV3ICAgIAC/eQB4z1gF vwt/AApAAQceBF0AAFsoX2UABWQABQYHBWV/BWR/oVufWhYA7wBAgUM1RQ9hSQ8iUA8OZoFwdH+BcABAgUM1RQ9hSQ9NVA8vZoFwf3+DYI9aAAD/LwA='
- }
- /* Begin script function list */
- function tulisWaktu(){
- if (timerTitle) clearTimeout(timerTitle);
- var sekarang = new Date();
- if (loadParam('updateWindowTitle', true) && waktuTitle) {
- if ($('div#mobileHorn').length > 0) {
- if (sekarang >= waktuNextHorn)
- document.title = msgTitle + ' | ' + origtitle;
- else
- document.title = msgWaktu(sekarang, waktuNextHorn) + ' | ' + origtitle;
- } else {
- if (sekarang >= waktuTitle)
- document.title = msgTitle + ' | ' + origtitle;
- else
- document.title = msgWaktu(sekarang, waktuTitle) + ' | ' + origtitle;
- }
- }
- if (waktuNextHorn && sekarang <= waktuNextHorn) $('div#AutoHorn li span[name="hornTime"]').html(msgWaktu(sekarang, waktuNextHorn));
- else $('div#AutoHorn li span[name="hornTime"]').html("00:00");
- if (waktuRandom && sekarang <= waktuRandom)
- $('div#AutoHorn li span[name="randomTime"]').html(msgWaktu(sekarang, waktuRandom));
- if (waktuTournament && sekarang < waktuTournament && $('div#tournamentStatusHud div.timer').length > 0){
- var tmp = msgWaktu(sekarang, waktuTournament, 1);
- try {
- if (unsafeWindow.user.viewing_atts.tournament.status == 'pending')
- tmp = 'Starts in: ' + tmp;
- else if (unsafeWindow.user.viewing_atts.tournament.status == 'active')
- tmp = tmp + ' remaining';
- } catch (err) {
- }
- $('div#tournamentStatusHud div.timer').html(tmp);
- }
- if (waktuTrapCheck && sekarang <= waktuTrapCheck) $('div#AutoHorn li span[name="trapCheckTime"]').html(msgWaktu(sekarang, waktuTrapCheck));
- else $('div#AutoHorn li span[name="trapCheckTime"]').html("00:00");
- timerTitle = setTimeout(function() { tulisWaktu(); } , 1000);
- }
- function openLink(link){
- if ($('a[href="' + link + '"]').length > 0) $('a[href="' + link + '"]').first().click();
- window.location.href = link;
- }
- function msgWaktu(awal, akhir, panjang){
- panjang = typeof panjang != "undefined" ? panjang : false;
- var detik = Math.round((akhir - awal) / 1000);
- var jam = Math.floor(detik / 3600);
- var menit = Math.floor(detik / 60);
- if (jam == 0) jam = null;
- menit = menit % 60;
- if (menit < 10) menit = '0' + menit;
- detik = detik % 60;
- if (detik < 10) detik = '0' + detik;
- if (jam) return (panjang ? jam + ' hrs ' + menit + ' mins ' + detik + ' secs' : jam + ':' + menit + ':' + detik);
- else return (panjang ? menit + ' mins ' + detik + ' secs' : menit + ':' + detik);
- }
- function soundAlarm(){
- var alarm = document.getElementById('alarm');
- if (!alarm) {
- alarm = document.createElement("span");
- alarm.id = 'alarm';
- $('body').append(alarm);
- }
- alarm.innerHTML = '<embed src="' + AUDIO.reward + '" height="50" width="200" hidden="true" autostart="true" loop="true" volume="' + loadParam('alertVolume', 100) + '"></embed>';
- }
- function calculateRandomPage(){
- if (typeof unsafeWindow.user == 'undefined') { setTimeout(function() { calculateRandomPage(); }, 1000); return; }
- var mintime = loadParam('minRandomPage', 10) * 60000;
- var maxtime = loadParam('maxRandomPage', 20) * 60000;
- var timeoutvalue = Math.random() * (maxtime - mintime) + mintime;
- setTimeout(function() { randomLinks(); }, timeoutvalue);
- waktuRandom = new Date(new Date().getTime() + timeoutvalue);
- }
- function calculateTrapCheck(){
- if (timerTrapCheck) clearTimeout(timerTrapCheck);
- var sekarang = new Date();
- var checkTime = new Date();
- checkTime.setMinutes(trapConfig.TrapCheck.min, trapConfig.TrapCheck.sec, 0);
- if (checkTime < sekarang) checkTime.setTime(checkTime.getTime() + 3600000);
- timerTrapCheck = setTimeout(function() {
- if (trapConfig.TrapCheck.enable) {
- if (currentTrap.bait > 0) randomLinks();
- else openLink('http://www.mousehuntgame.com/index.php');
- } else calculateTrapCheck();
- }, checkTime.getTime() - sekarang.getTime());
- waktuTrapCheck = checkTime;
- }
- function randomLinks(){
- if ($('div#mobileHorn').length > 0) {
- openLink(defaultpage);
- return;
- }
- var daftar = new Array();
- daftar.push('http://www.mousehuntgame.com/journal.php');
- daftar.push('http://www.mousehuntgame.com/profile.php');
- $('a[href*="www.mousehuntgame.com/inventory.php"]').add('a[href*="www.mousehuntgame.com/shops.php"]').add('a[href*="www.mousehuntgame.com/adversaries.php?"]').add('a[href*="www.mousehuntgame.com/item.php"]').add('a[href*="www.mousehuntgame.com/journal.php"]').add('a[href*="www.mousehuntgame.com/profile.php"]').add('a[href*="www.mousehuntgame.com/hunterprofile.php"]').add('a[href*="www.mousehuntgame.com/tournament.php"]').add('a[href*="www.mousehuntgame.com/tournamentlist.php"]').not('a[href*="&"]').not('a[href*="#"]').each(function(i){
- var link = $(this).attr('href');
- var sudahada = false;
- for (var x = 0; x < daftar.length; x++) if (daftar[x] == link) { sudahada = true; break; }
- if (!sudahada) daftar.push(link);
- });
- if (daftar.length > 0){
- var x = Math.floor(Math.random() * daftar.length);
- openLink(daftar[x]);
- }
- }
- function warpathGetTrinket(subgroup, useSuper){
- if (typeof subgroup == 'undefined') return 0;
- if (typeof useSuper == 'undefined') useSuper = false;
- if (subgroup == 'Warrior') {
- if (useSuper && getComponentQuantity(544) > 0) return 544;
- else if (getComponentQuantity(539) > 0) return 539;
- } else if (subgroup == 'Scout') {
- if (useSuper && getComponentQuantity(543) > 0) return 543;
- else if (getComponentQuantity(538) > 0) return 538;
- } else if (subgroup == 'Archer') {
- if (useSuper && getComponentQuantity(540) > 0) return 540;
- else if (getComponentQuantity(534) > 0) return 534;
- } else if (subgroup == 'Cavalry') {
- if (useSuper && getComponentQuantity(541) > 0) return 541;
- else if (getComponentQuantity(535) > 0) return 535;
- } else if (subgroup == 'Mage') {
- if (useSuper && getComponentQuantity(542) > 0) return 542;
- else if (getComponentQuantity(537) > 0) return 537;
- } else if (subgroup == 'Commander') {
- if (useSuper && getComponentQuantity(615) > 0) return 615;
- else if (getComponentQuantity(536) > 0) return 536;
- }
- return 0;
- }
- function warpathGetNumRetreat(){
- var streak = parseInt(unsafeWindow.user.viewing_atts.desert_warpath.streak.quantity);
- if (streak < 1) streak = 1;
- var pop = unsafeWindow.user.viewing_atts.desert_warpath.wave_population;
- var hasil = 0;
- for (var nama in pop){
- hasil += (parseInt(pop[nama].population) > streak ? streak : parseInt(pop[nama].population));
- }
- return hasil;
- }
- function warpathGetPhysical(isMax, isReverse, trywithtrinket){
- var pop = unsafeWindow.user.viewing_atts.desert_warpath.wave_population;
- var hasil;
- if (typeof trywithtrinket=='undefined') trywithtrinket = true;
- // try with trinket
- if (trywithtrinket) for (var nama in pop){
- if (parseInt(pop[nama].population) < 1 || warpathGetTrinket(pop[nama].subgroup, true) < 1) continue;
- if (!hasil || ((isReverse ^ (pop[nama].weakness.name == 'Physical')) && (!isMax ^ (parseInt(pop[nama].population) > parseInt(pop[hasil].population))))) hasil = nama;
- }
- // try without trinket
- if (!hasil) for (var nama in pop){
- if (parseInt(pop[nama].population) < 1) continue;
- if (!hasil || ((isReverse ^ (pop[nama].weakness.name == 'Physical')) && (!isMax ^ (parseInt(pop[nama].population) > parseInt(pop[hasil].population))) && pop[nama].subgroup != 'Artillery')) hasil = nama;
- }
- return hasil;
- }
- function warpathGetGroupLeft(){
- var pop = unsafeWindow.user.viewing_atts.desert_warpath.wave_population;
- var hasil = 0;
- for (var nama in pop){
- if (parseInt(pop[nama].population) > 0) hasil++;
- }
- return hasil;
- }
- function checkLocation(){
- if (unsafeWindow.user.environment_id == 31 && trapConfig.ZugzwangTower.enabled) { // seasonal_garden
- if (trapConfig.SeasonalGarden.autoTravel && unsafeWindow.user.viewing_atts.zzt_amplifier >= unsafeWindow.user.viewing_atts.zzt_max_amplifier)
- return travelTo('seasonal_garden', 'zugzwang_tower');
- else
- return changeTrap(trapConfig.SeasonalGarden[unsafeWindow.user.viewing_atts.season]);
- } else if (unsafeWindow.user.environment_id == 14 && trapConfig.BalackCove.enabled) { // jungle_of_dread
- if (trapConfig.BalackCove.travel && (getComponentQuantity(119) > 0 || getComponentQuantity(118) > 0)) return travelTo('jungle_of_dread', 'balacks_cove');
- else return changeTrap(trapConfig.BalackCove.jod);
- } else if (unsafeWindow.user.environment_id == 2 && trapConfig.BalackCove.enabled) { // balacks_cove
- var desired = {base:-1,weapon:-1,trinket:-1,bait:-1};
- if (unsafeWindow.user.viewing_atts.tide == 'high') desired = trapConfig.BalackCove.high;
- else if (unsafeWindow.user.viewing_atts.tide == 'low') desired = trapConfig.BalackCove.low;
- else desired = trapConfig.BalackCove.mid;
- if (desired.bait > 0 && getComponentQuantity(desired.bait) < 1){
- if (desired.bait == 119 && getComponentQuantity(118) > 0) desired.bait = 118;
- else if (desired.bait == 118 && getComponentQuantity(119) > 0) desired.bait = 119;
- else return travelTo('balacks_cove', 'jungle_of_dread');
- }
- return changeTrap(desired);
- } else if (unsafeWindow.user.environment_id == 32 && trapConfig.ZugzwangTower.enabled) { // zugzwang_tower
- var zzt_mage_progress = unsafeWindow.user.viewing_atts.zzt_mage_progress;
- var zzt_tech_progress = unsafeWindow.user.viewing_atts.zzt_tech_progress;
- var zzt_progress = Math.max(zzt_mage_progress, zzt_tech_progress);
- if (trapConfig.ZugzwangTower.target == 1) zzt_progress = zzt_tech_progress;
- else if (trapConfig.ZugzwangTower.target == 2) zzt_progress = zzt_mage_progress;
- else if (trapConfig.ZugzwangTower.target == 3 && zzt_progress >= 16) zzt_progress = Math.min(zzt_mage_progress, zzt_tech_progress);
- var desired;
- if (zzt_progress < 8) desired = jQuery.extend(true, {}, trapConfig.ZugzwangTower.pawn);
- else if (zzt_progress < 10) desired = jQuery.extend(true, {}, trapConfig.ZugzwangTower.knight);
- else if (zzt_progress < 12) desired = jQuery.extend(true, {}, trapConfig.ZugzwangTower.bishop);
- else if (zzt_progress < 14) desired = jQuery.extend(true, {}, trapConfig.ZugzwangTower.rook);
- else if (zzt_progress < 15) desired = jQuery.extend(true, {}, trapConfig.ZugzwangTower.queen);
- else if (zzt_progress < 16) desired = jQuery.extend(true, {}, trapConfig.ZugzwangTower.king);
- else desired = jQuery.extend(true, {}, trapConfig.ZugzwangTower.chessmaster);
- if (waktuTournament && unsafeWindow.user.viewing_atts.tournament.status == 'active' && waktuTrapCheck < waktuTitle && zzt_progress > 7) // jika mau trap check, lepas bait
- desired.bait = 0;
- if (trapConfig.ZugzwangTower.target == 3 && (desired.weapon == 354 || desired.weapon == 356) && zzt_mage_progress != zzt_tech_progress){
- if (zzt_mage_progress == zzt_progress && getComponentQuantity(354) > 0) desired.weapon = 354;
- if (zzt_tech_progress == zzt_progress && getComponentQuantity(356) > 0) desired.weapon = 356;
- } else if (trapConfig.ZugzwangTower.target == 3 && (desired.weapon == 369 || desired.weapon == 370) && zzt_mage_progress != zzt_tech_progress){
- if (zzt_mage_progress == zzt_progress && getComponentQuantity(369) > 0) desired.weapon = 369;
- if (zzt_tech_progress == zzt_progress && getComponentQuantity(370) > 0) desired.weapon = 370;
- }
- if (desired.bait == 371 && Math.max(zzt_mage_progress, zzt_tech_progress) >= 16 && getComponentQuantity(678) > 0) desired.trinket = 678;
- if (desired) return changeTrap(desired);
- } else if (unsafeWindow.user.environment_id == 33 && trapConfig.FieryWarpath.enabled) { // desert_warpath
- var wave = parseInt(unsafeWindow.user.viewing_atts.desert_warpath.wave);
- var pop = unsafeWindow.user.viewing_atts.desert_warpath.wave_population;
- var waveConf = trapConfig.FieryWarpath['wave' + wave];
- var sumPhysical = 0;
- if (wave < 4) for (var nama in pop){
- if (pop[nama].weakness.name == 'Physical') sumPhysical += parseInt(pop[nama].population);
- }
- $('div#hudLocationContent div[class^="opponent "][class$=" active"] img').css("border","none");
- if (wave == 4){
- var jum = 0;
- for (var boss in pop) if (parseInt(pop[boss].population) > 0) jum++;
- if (jum > 1) return changeTrap(trapConfig.FieryWarpath.warden);
- else return changeTrap(trapConfig.FieryWarpath.warmonger);
- }
- var streak = unsafeWindow.user.viewing_atts.desert_warpath.streak;
- var numStreak = parseInt(streak.quantity);
- var target;
- var jendral = unsafeWindow.user.viewing_atts.desert_warpath.common_population.desert_general;
- var weakness = 'Physical';
- if (!target) {
- if (jendral.status == 'active' && warpathGetTrinket('Commander', true) > 0 && warpathGetNumRetreat() >= waveConf.minGeneral){
- target = 'desert_general';
- } else if (numStreak > 0){
- weakness = pop[streak.mouse_type].weakness.name;
- if (numStreak < waveConf.maxStreak && parseInt(pop[streak.mouse_type].population) > 0){
- if ((weakness == 'Physical' || sumPhysical < 1 || (waveConf.allowNonPhysical && warpathGetTrinket(pop[streak.mouse_type].subgroup, true) > 0)) && weakness != 'Arcane')
- target = streak.mouse_type;
- } else if (waveConf.gargantua && numStreak > 6) target = 'Gargantua';
- }
- if (!target){
- if (sumPhysical > 0) {
- if (waveConf.targetPhysical) target = warpathGetPhysical(true, false);
- else target = warpathGetPhysical(false, false);
- } else {
- if (waveConf.targetNonPhysical) target = warpathGetPhysical(true, true, waveConf.charmNonPhysical);
- else target = warpathGetPhysical(false, true, waveConf.charmNonPhysical);
- }
- }
- }
- if (target=='Gargantua') {
- return changeTrap(jQuery.extend(true, {}, trapConfig.FieryWarpath.gargantua));
- }
- $('div#hudLocationContent div[class="opponent ' + target + ' active"] img').first().css("border","2px solid red");
- if (target=='desert_general') {
- var dt = jQuery.extend(true, {}, trapConfig.FieryWarpath.general);
- var x = warpathGetTrinket('Commander', true);
- if (x > 0) dt.trinket = x;
- return changeTrap(dt);
- } else {
- var dt = {weapon:-1, base:-1, trinket:-1, bait:-1};
- weakness = pop[target].weakness.name;
- var subgroup = pop[target].subgroup;
- if (weakness == 'Physical') dt = jQuery.extend(true, {}, trapConfig.FieryWarpath.physical);
- else if (weakness == 'Tactical') dt = jQuery.extend(true, {}, trapConfig.FieryWarpath.tactical);
- else if (weakness == 'Hydro') dt = jQuery.extend(true, {}, trapConfig.FieryWarpath.hydro);
- else if (weakness == 'Arcane') dt = jQuery.extend(true, {}, trapConfig.FieryWarpath.arcane);
- if (warpathGetGroupLeft() > 1) {
- var tr = 0;
- if (wave == 1 && numStreak < 1 && waveConf.openSelection){
- } else if (wave > 1 && weakness != 'Physical' && !waveConf.charmNonPhysical) {
- } else if (Math.pow(2,numStreak) & waveConf.superCharm) tr = warpathGetTrinket(subgroup, true);
- else tr = warpathGetTrinket(subgroup, false);
- if (tr > 0) dt.trinket = tr;
- }
- if ((Math.pow(2,numStreak) & waveConf.superBrie) && getComponentQuantity(114) > 0) dt.bait = 114;
- return changeTrap(dt);
- }
- } else if (unsafeWindow.user.environment_id == 39 && trapConfig.Iceberg.enabled) { // slushy_shoreline
- return changeTrap(trapConfig.Iceberg.slushy_shoreline);
- } else if (unsafeWindow.user.environment_id == 40 && trapConfig.Iceberg.enabled) { // iceberg
- var nextGeneral = 0;
- for (var x = 1; x <= 4 ; x++) {
- nextGeneral += unsafeWindow.user.quests.QuestIceberg.phases[x].length;
- if (unsafeWindow.user.quests.QuestIceberg.user_progress < nextGeneral) {
- switch (x) {
- case 1 : return changeTrap(trapConfig.Iceberg.phase1);
- case 2 : return changeTrap(trapConfig.Iceberg.phase2);
- case 3 : return changeTrap(trapConfig.Iceberg.phase3);
- case 4 : return changeTrap(trapConfig.Iceberg.phase4);
- }
- } else if (unsafeWindow.user.quests.QuestIceberg.user_progress == nextGeneral) {
- var dt = trapConfig.Iceberg.generals;
- if (trapConfig.Iceberg.altGeneralEnable) {
- if (!currentTrap.effmeter) {
- ajaxRequestEffMeter();
- return false;
- } else {
- dt = trapConfig.Iceberg.altgenerals;
- var count = 0;
- var mice;
- for (var d in currentTrap.effmeter){
- var diff = currentTrap.effmeter[d].mice;
- for (var m in diff) {
- count ++;
- mice = diff[m];
- if (count > 1) break;
- }
- if (count > 1) break;
- }
- if (count == 1 && mice.name==trapConfig.Iceberg.altGeneralEnable) dt = trapConfig.Iceberg.generals;
- }
- }
- return changeTrap(dt);
- }
- }
- return changeTrap(trapConfig.Iceberg.phase5);
- }
- return true;
- }
- function changeTrap(desired){
- var salah;
- if (desired.weapon > 0 && desired.weapon != currentTrap.weapon && getComponentQuantity(desired.weapon) > 0) salah = 'weapon';
- else if (desired.base > 0 && desired.base != currentTrap.base && getComponentQuantity(desired.base) > 0) salah = 'base';
- else if (desired.trinket > -1 && desired.trinket != currentTrap.trinket && getComponentQuantity(desired.trinket) > 0) salah = 'trinket';
- else if (desired.bait > -1 && desired.bait != currentTrap.bait && getComponentQuantity(desired.bait) > 0) salah = 'bait';
- if (salah) {
- if ($('div#mobileHorn').length > 0) {
- openLink('http://www.mousehuntgame.com/?switch_to=standard');
- return false;
- }
- if (typeof unsafeWindow.userTrapSelector == "undefined") {
- openLink('http://www.mousehuntgame.com/index.php');
- return false;
- }
- if (unsafeWindow.userTrapSelector.selectedComponentClass != salah) {
- if (salah === "weapon") {
- $('a#trapSelector-viewWeapon img').click();
- } else if (salah === "base") {
- $('a#trapSelector-viewBase img').click();
- } else if (salah === "trinket") {
- if ($('a#trapSelector-viewtrinket div.empty').length > 0) $('a#trapSelector-viewtrinket div.empty').click();
- else $('a#trapSelector-viewtrinket img').click();
- } else if (salah === "bait") {
- if ($('a#trapSelector-viewBait div.empty').length > 0) $('a#trapSelector-viewBait div.empty').click();
- else $('a#trapSelector-viewBait img').click();
- }
- }
- if (unsafeWindow.userTrapSelector.componentsCached == false) return false;
- var xDesired = desired[salah];
- var xCurrent = currentTrap[salah];
- if (xDesired == 0) {
- $('div[id="trapSelectorSelectedComponent"] div.content').click();
- } else {
- var nama = getComponentName(xDesired);
- if (nama){
- $('div[id="trapSelectorBrowser"] a[id="selectComponent-' + nama + '"] div.content').click();
- }
- }
- return false;
- }
- return true;
- }
- function getComponentQuantity(itemid){
- if (itemid == 0) return 1;
- for (var nama in availableTraps){
- if (availableTraps[nama].item_id == itemid) {
- return availableTraps[nama].quantity;
- }
- }
- return 0;
- }
- function getComponentName(itemid){
- if (typeof unsafeWindow.userTrapSelector == "undefined" || typeof unsafeWindow.userTrapSelector.availableComponents == "undefined") return null;
- for (var nama in unsafeWindow.userTrapSelector.availableComponents){
- if (unsafeWindow.userTrapSelector.availableComponents[nama].item_id == itemid) {
- return unsafeWindow.userTrapSelector.availableComponents[nama].type;
- }
- }
- return null;
- }
- function travelTo(origin, destination) {
- if (origin === destination) return true;
- if ($('div#mobileHorn').length > 0) {
- openLink('http://www.mousehuntgame.com/?switch_to=standard');
- return false;
- }
- if (destination === 'meadow') {
- openLink('http://www.mousehuntgame.com/travel.php?freeTravel=true?&uh=' + unsafeWindow.user.unique_hash);
- return false;
- } else {
- var ajax=new unsafeWindow.Ajax();
- ajax.requireLogin=true;
- ajax.responseType=unsafeWindow.Ajax.JSON;
- ajax.ondone=function(resp){
- if(resp.success){
- try{
- unsafeWindow.eventRegistry.doEvent('ajax_response',resp);
- unsafeWindow.eventRegistry.doEvent('travel_complete',{'old':origin,'new':destination});
- } catch (err) {
- }
- try{
- unsafeWindow.app.views.HeadsUpDisplayView.hud.render(resp.user);
- } catch (err) {
- }
- }
- }
- var params={"origin":origin,"destination":destination,'uh':unsafeWindow.user.unique_hash};
- ajax.post(unsafeWindow.callbackurl+"managers/ajax/users/changeenvironment.php",params);
- return false;
- }
- }
- function soundTheHorn(){
- if (typeof unsafeWindow.user == 'undefined' || unsafeWindow.user.has_puzzle || !hornAllowed) return;
- if ($('div#hornArea div.hornbutton').css('display')=='block')
- if (document.location.pathname == '/') document.location = hornpage;
- else $('div#hornArea div.hornbutton a').click();
- else if ($('div#mobileHorn').css('display')=='block') openLink(hornpage);
- else randomLinks();
- }
- function mulai(){
- clearTimeout(timerEvent);
- if (typeof unsafeWindow.user == "undefined") { setTimeout(function() { mulai(); }, 1000); return; }
- var waktu;
- var isKR = true;
- var userid = 0;
- var bait_quantity = 0;
- try {
- if (typeof unsafeWindow.HuntersHorn != "undefined")
- waktu = unsafeWindow.HuntersHorn.getSecondsRemaining();
- else
- waktu = parseInt(unsafeWindow.user.next_activeturn_seconds);
- isKR = unsafeWindow.user.has_puzzle;
- userid = parseInt(unsafeWindow.user.user_id);
- bait_quantity = parseInt(unsafeWindow.user.bait_quantity);
- } catch (err) {
- setTimeout(function() { mulai(); }, 1000);
- return;
- }
- if (isNaN(userid) || userid < 1) {
- setTimeout(function() {
- openLink(defaultpage);
- } , 60000);
- return;
- }
- if (waktu > 0) waktuTitle = new Date(new Date().getTime() + waktu * 1000);
- cleanupLink();
- if ($('div#tournamentStatusHud div.timer').length > 0){
- waktuTournament = new Date(new Date().getTime() + unsafeWindow.user.viewing_atts.tournament.seconds_remaining * 1000);
- }
- if (isKR==true) {
- if (!alertShown) {
- alertShown = true;
- if (loadParam('enableAlert', false)) soundAlarm(); else alert('King Reward');
- }
- var timeoutvalue = Math.round(Math.random() * Math.abs((loadParam('maxKRWait', 180) - loadParam('minKRWait', 180)) * 60000)) + loadParam('minKRWait', 180) * 60000;
- timerEvent = setTimeout(function() { randomLinks(); } , timeoutvalue);
- waktuRandom = new Date(new Date().getTime() + timeoutvalue);
- waktuNextHorn = null;
- msgTitle = 'King Reward';
- waktuTitle = new Date();
- return;
- }
- currentTrap.weapon = unsafeWindow.user.weapon_item_id;
- currentTrap.base = unsafeWindow.user.base_item_id;
- currentTrap.trinket = (parseInt(unsafeWindow.user.trinket_item_id) > 0 ? parseInt(unsafeWindow.user.trinket_item_id) : 0);
- currentTrap.bait = (parseInt(unsafeWindow.user.bait_item_id) > 0 ? parseInt(unsafeWindow.user.bait_item_id) : 0);
- if (currentTrap.trinket == 0) {
- $('span#hud_trinketName a').html('None ');
- $('span#hud_trinketQuantity').html('0');
- } else {
- $('span#hud_trinketName a').html(unsafeWindow.user.trinket_name + ' ');
- $('span#hud_trinketQuantity').html(unsafeWindow.user.trinket_quantity);
- }
- calculateTrapCheck();
- $('span#hud_titlePercentage').html(unsafeWindow.user.title_percentage);
- hornAllowed = checkLocation();
- if (bait_quantity < 1) hornAllowed = false;
- if (waktu == 0 && hornAllowed) {
- soundTheHorn();
- return;
- } else if (waktu > 0){
- msgTitle = 'Sound The Horn';
- var timeoutvalue = waktu + Math.round(Math.random() * Math.abs(loadParam('maxHornDelay', 120) - loadParam('minHornDelay', 30))) + loadParam('minHornDelay', 30);
- waktuNextHorn = new Date(new Date().getTime() + timeoutvalue * 1000);
- timerEvent = setTimeout(function() {
- if (!hornAllowed) return;
- if ($('div#hornArea div.hornbutton').css('display') == 'block' || $('div#mobileHorn').css('display') == 'block') {
- soundTheHorn();
- } else
- randomLinks();
- }, timeoutvalue * 1000);
- }
- }
- function populateComboTrap(obj){
- var list = [];
- for (var x in obj) list.push(obj[x]);
- list.sort(function(a, b){
- return a.name.toLowerCase().localeCompare(b.name.toLowerCase());
- });
- for (var nama in list){
- var id = list[nama].item_id;
- var name = list[nama].name;
- var classification = list[nama].classification;
- if (classification === 'base')
- $('div#AutoHornWindow select[name^="cbo"][name$="Base"]').each(function(){
- $(this).append('<option value="' + id + '" title="' + name + '">' + name + '</option>');
- });
- else if (classification === 'weapon')
- $('div#AutoHornWindow select[name^="cbo"][name$="Weapon"]').each(function(){
- $(this).append('<option value="' + id + '" title="' + name + '">' + name + '</option>');
- });
- else if (classification === 'trinket')
- $('div#AutoHornWindow select[name^="cbo"][name$="Trinket"]').each(function(){
- $(this).append('<option value="' + id + '" title="' + name + '">' + name + ' (' + list[nama].quantity + ')</option>');
- });
- else if (classification === 'bait')
- $('div#AutoHornWindow select[name^="cbo"][name$="Bait"]').each(function(){
- $(this).append('<option value="' + id + '" title="' + name + '">' + name + ' (' + list[nama].quantity + ')</option>');
- });
- }
- }
- function setSelectionComboTrap(name, trap){
- $('div#AutoHornWindow select[name="cbo' + name + 'Base"] option[value="' + trap.base + '"]').attr('selected', 'selected');
- $('div#AutoHornWindow select[name="cbo' + name + 'Weapon"] option[value="' + trap.weapon + '"]').attr('selected', 'selected');
- $('div#AutoHornWindow select[name="cbo' + name + 'Trinket"] option[value="' + trap.trinket + '"]').attr('selected', 'selected');
- $('div#AutoHornWindow select[name="cbo' + name + 'Bait"] option[value="' + trap.bait + '"]').attr('selected', 'selected');
- }
- function getSelectionComboTrap(name, trap){
- trap.base = $('div#AutoHornWindow select[name="cbo' + name + 'Base"]').val();
- trap.weapon = $('div#AutoHornWindow select[name="cbo' + name + 'Weapon"]').val();
- trap.trinket = $('div#AutoHornWindow select[name="cbo' + name + 'Trinket"]').val();
- trap.bait = $('div#AutoHornWindow select[name="cbo' + name + 'Bait"]').val();
- }
- function generateTrapSetupCombo(mid){
- return '<select name="cbo' + mid + 'Base"><option value="-1">Any</option></select> <select name="cbo' + mid + 'Weapon"><option value="-1">Any</option></select> <select name="cbo' + mid + 'Trinket"><option value="-1">Any</option><option value="0">None</option></select> <select name="cbo' + mid + 'Bait"><option value="-1">Any</option></select>';
- }
- function showBalackPage(){
- $('div#AutoHornWindow a[href="#save"]').unbind('click');
- $('div#AutoHornWindow a[href="#default"]').unbind('click');
- $('div#AutoHornWindow div[name="top"]').html('Balack\'s Cove Configuration');
- $('div#AutoHornWindow div[name="main"]').html('<ul><span class="groupTitle">General</span>' +
- '<li tittle="toggle enable/disable setup on this page"><span class="paramDesc">Enable</span><input type="checkbox" name="chkEnable" />Use setup below for each conditions</li>' +
- '<li tittle="Auto travel to Balack Cove"><span class="paramDesc">Auto Travel</span><input type="checkbox" name="chkTravel" />Travel to Balack Cove when washed to JoD</li>' +
- '</ul><ul><span class="groupTitle">Trap Setup</span>' +
- '<li title="You won\'t transferred automatically to Cove if you don\'t have Vengeful or Vanilla Stilton, hunt in JoD with this setup"><span class="paramDesc">Jungle of Dread</span>' + generateTrapSetupCombo('Jungle') + '</li>' +
- '<li title="Trap setup when high tide"><span class="paramDesc">High Tide</span>' + generateTrapSetupCombo('high') + '</li>' +
- '<li title="Trap setup when mid tide"><span class="paramDesc">Mid Tide</span>' + generateTrapSetupCombo('mid') + '</li>' +
- '<li title="Trap setup when low tide"><span class="paramDesc">Low Tide</span>' + generateTrapSetupCombo('low') + '</li>' +
- '</ul><br>');
- $('div#AutoHornWindow div[name="main"]').css({'overflow-y':'auto', 'height':'350px'});
- $('div#AutoHornWindow div[name="main"] ul').css({'list-style-type':'none','margin':'0px'});
- $('div#AutoHornWindow div[name="main"] .groupTitle').css({'font-weight':'bold','font-size':'1.2em'});
- $('div#AutoHornWindow div[name="main"] .paramDesc').css({'font-weight':'bold','float':'left','width':'150', 'padding-left':'20px'});
- $('div#AutoHornWindow div[name="main"] select').css({'width':'300px'});
- $('div#AutoHornWindow div[name="main"] input.short').css({'width':'20px'});
- $('div#AutoHornWindow div[name="main"] br').css({'clear':'left'});
- populateComboTrap(availableTraps);
- $('div#AutoHornWindow div[name="main"] select').css({'width':'100px'});
- if (trapConfig.BalackCove.enabled) $('div#AutoHornWindow input[name="chkEnable"]').attr('checked', 'checked');
- if (trapConfig.BalackCove.travel) $('div#AutoHornWindow input[name="chkTravel"]').attr('checked', 'checked');
- setSelectionComboTrap('Jungle', trapConfig.BalackCove.jod);
- setSelectionComboTrap('high', trapConfig.BalackCove.high);
- setSelectionComboTrap('mid', trapConfig.BalackCove.mid);
- setSelectionComboTrap('low', trapConfig.BalackCove.low);
- $('div#AutoHornWindow a[href="#save"]').click(function(e){
- e.preventDefault();
- trapConfig.BalackCove.enabled = $('div#AutoHornWindow input[name="chkEnable"]:checked').length;
- trapConfig.BalackCove.travel = $('div#AutoHornWindow input[name="chkTravel"]:checked').length;
- getSelectionComboTrap('Jungle', trapConfig.BalackCove.jod);
- getSelectionComboTrap('high', trapConfig.BalackCove.high);
- getSelectionComboTrap('mid', trapConfig.BalackCove.mid);
- getSelectionComboTrap('low', trapConfig.BalackCove.low);
- var str = JSON.stringify(trapConfig);
- saveParam('trapConfig', str);
- $('div#AutoHornWindow').hide();
- $('div#AutoHornMask').hide();
- checkLocation();
- });
- $('div#AutoHornWindow a[href="#default"]').click(function(e){
- e.preventDefault();
- $('div#AutoHornWindow input[name="chkEnable"]').removeAttr('checked');
- $('div#AutoHornWindow input[name="chkTravel"]').removeAttr('checked');
- $('div#AutoHornWindow select[name^="cbo"] option').each(function(){ $(this).removeAttr('selected'); });
- });
- var winH = $(window).height();
- var winW = $(window).width();
- $('div#AutoHornWindow').css({'top':(winH - $('div#AutoHornWindow').height())/2, 'left':(winW - $('div#AutoHornWindow').width())/2});
- $('div#AutoHornMask').css({'top':'0', 'left':'0', 'width':winW, 'height':winH});
- $('div#AutoHornMask').fadeTo(0,0.8);
- $('div#AutoHornWindow').fadeIn(2000);
- }
- function showWarpathPage(){
- $('div#AutoHornWindow a[href="#save"]').unbind('click');
- $('div#AutoHornWindow a[href="#default"]').unbind('click');
- $('div#AutoHornWindow div[name="top"]').html('Warpath Configuration');
- $('div#AutoHornWindow div[name="main"]').html('<ul><span class="groupTitle">General</span>' +
- '<li tittle="toggle enable/disable setup on this page"><span class="paramDesc">Enable</span><input type="checkbox" name="chkEnable" />Use setup below for each conditions</li>' +
- '</ul><ul><span class="groupTitle">Trap Setup</span>' +
- '<li title="Against Warrior, Scout, and Archer"><span class="paramDesc">Physical</span>' + generateTrapSetupCombo('Physical') + '</li>' +
- '<li title="Tactical setup against Cavalry"><span class="paramDesc">Cavalry</span>' + generateTrapSetupCombo('Tactical') + '</li>' +
- '<li title="Hydro setup against Mage"><span class="paramDesc">Mage</span>' + generateTrapSetupCombo('Hydro') + '</li>' +
- '<li title="Arcane setup against Artillery"><span class="paramDesc">Artillery</span>' + generateTrapSetupCombo('Arcane') + '</li>' +
- '<li title="Trap setup against Commander"><span class="paramDesc">Commander</span>' + generateTrapSetupCombo('General') + '</li>' +
- '<li title="Trap setup against Gargantua"><span class="paramDesc">Gargantua</span>' + generateTrapSetupCombo('Gargantua') + '</li>' +
- '<li title="Trap setup against Theurgy Warden"><span class="paramDesc">Theurgy Warden</span>' + generateTrapSetupCombo('Warden') + '</li>' +
- '<li title="Trap setup against Warmonger"><span class="paramDesc">Warmonger</span>' + generateTrapSetupCombo('Warmonger') + '</li>' +
- '</ul><ul><span class="groupTitle">Wave 1</span>' +
- '<li title="Strategy used when no streak"><span class="paramDesc">No Streak</span><input type="radio" name="wave1openSelection" value="true" />don\'t waste charm <input type="radio" name="wave1openSelection" value="false" />use charm</li>' +
- '<li title="Strategy used against physical mouse"><span class="paramDesc">Physical Targeting</span><input type="radio" name="wave1targetPhysical" value="true" />max population <input type="radio" name="wave1targetPhysical" value="false" />min population</li>' +
- '<li title="Streak to use SuperBrie (if available)" class="wave1superBrie-eachstreak"><span class="paramDesc">SuperBrie</span></li>' +
- '<li title="Streak to use Super version of charm (if available)" class="wave1superCharm-eachstreak"><span class="paramDesc">SuperCharm</span></li>' +
- '<li title="Commander Charm use"><span class="paramDesc">Commander</span>Aim for commander if at least <input type="text" name="wave1minGeneral" class="short" /> mouse will retreat</li>' +
- '<li title="Target maximum streak"><span class="paramDesc">Max Streak</span><input type="text" name="wave1maxStreak" class="short" /> streaks, then <input type="radio" name="wave1gargantua" value="true" />aim for gargantua <input type="radio" name="wave1gargantua" value="false" />continue next cycle</li>' +
- '</ul><ul><span class="groupTitle">Wave 2</span>' +
- '<li title="Strategy used against physical mouse"><span class="paramDesc">Physical Targeting</span><input type="radio" name="wave2targetPhysical" value="true" />max population <input type="radio" name="wave2targetPhysical" value="false" />min population</li>' +
- '<li title="Strategy used against non-physical mouse"><span class="paramDesc">Non-Physical Targeting</span><input type="radio" name="wave2targetNonPhysical" value="true" />max population <input type="radio" name="wave2targetNonPhysical" value="false" />min population</li>' +
- '<li title="Should cham used against non-physical mouse if any"><span class="paramDesc">Non-Physical Charm</span><input type="radio" name="wave2charmNonPhysical" value="true" />Yes, use charms <input type="radio" name="wave2charmNonPhysical" value="false" />No, keep those charms</li>' +
- '<li title="Allow targeting non-physical when accidentally cathed even if physical exist"><span class="paramDesc">Allow Non-Physical Streak</span><input type="radio" name="wave2allowNonPhysical" value="true" />Yes, only if I have required charm <input type="radio" name="wave2allowNonPhysical" value="false" />No, physical first</li>' +
- '<li title="Streak to use SuperBrie (if available)" class="wave2superBrie-eachstreak"><span class="paramDesc">SuperBrie</span></li>' +
- '<li title="Streak to use Super version of charm (if available)" class="wave2superCharm-eachstreak"><span class="paramDesc">SuperCharm</span></li>' +
- '<li title="Commander Charm use"><span class="paramDesc">Commander</span>Aim for commander if at least <input type="text" name="wave2minGeneral" class="short" /> mouse will retreat</li>' +
- '<li title="Target maximum streak"><span class="paramDesc">Max Streak</span><input type="text" name="wave2maxStreak" class="short" /> streaks, then <input type="radio" name="wave2gargantua" value="true" />aim for gargantua <input type="radio" name="wave2gargantua" value="false" />continue next cycle</li>' +
- '</ul><ul><span class="groupTitle">Wave 3</span>' +
- '<li title="Strategy used against physical mouse"><span class="paramDesc">Physical Targeting</span><input type="radio" name="wave3targetPhysical" value="true" />max population <input type="radio" name="wave3targetPhysical" value="false" />min population</li>' +
- '<li title="Strategy used against non-physical mouse"><span class="paramDesc">Non-Physical Targeting</span><input type="radio" name="wave3targetNonPhysical" value="true" />max population <input type="radio" name="wave3targetNonPhysical" value="false" />min population</li>' +
- '<li title="Should cham used against non-physical mouse if any"><span class="paramDesc">Non-Physical Charm</span><input type="radio" name="wave3charmNonPhysical" value="true" />Yes, use charms <input type="radio" name="wave3charmNonPhysical" value="false" />No, keep those charms</li>' +
- '<li title="Allow targeting non-physical when accidentally cathed even if physical exist"><span class="paramDesc">Allow Non-Physical Streak</span><input type="radio" name="wave3allowNonPhysical" value="true" />Yes, only if I have required charm <input type="radio" name="wave3allowNonPhysical" value="false" />No, physical first</li>' +
- '<li title="Streak to use SuperBrie (if available)" class="wave3superBrie-eachstreak"><span class="paramDesc">SuperBrie</span></li>' +
- '<li title="Streak to use Super version of charm (if available)" class="wave3superCharm-eachstreak"><span class="paramDesc">SuperCharm</span></li>' +
- '<li title="Commander Charm use"><span class="paramDesc">Commander</span>Aim for commander if at least <input type="text" name="wave3minGeneral" class="short" /> mouse will retreat</li>' +
- '<li title="Target maximum streak"><span class="paramDesc">Max Streak</span><input type="text" name="wave3maxStreak" class="short" /> streaks, then <input type="radio" name="wave3gargantua" value="true" />aim for gargantua <input type="radio" name="wave3gargantua" value="false" />continue next cycle</li>' +
- '</ul><br>');
- for (var i = 0; i < 13; i++){
- $('div#AutoHornWindow div[name="main"] li[class$="-eachstreak"]').each(function(){
- var kelas = $(this).attr('class');
- kelas = kelas.substring(0,kelas.lastIndexOf('-'));
- var checked = trapConfig.FieryWarpath[kelas.substring(0,5)][kelas.substring(5)] & Math.pow(2,i);
- $(this).append('<input type="checkbox" name="' + (kelas + '-' + i) + '" ' + (checked ? 'checked="checked" ' : "") + '/>' + i + ' ');
- });
- }
- $('div#AutoHornWindow div[name="main"]').css({'overflow-y':'auto', 'height':'350px'});
- $('div#AutoHornWindow div[name="main"] ul').css({'list-style-type':'none','margin':'0px'});
- $('div#AutoHornWindow div[name="main"] .groupTitle').css({'font-weight':'bold','font-size':'1.2em'});
- $('div#AutoHornWindow div[name="main"] .paramDesc').css({'font-weight':'bold','float':'left','width':'150', 'padding-left':'20px'});
- $('div#AutoHornWindow div[name="main"] select').css({'width':'300px'});
- $('div#AutoHornWindow div[name="main"] input.short').css({'width':'20px'});
- $('div#AutoHornWindow div[name="main"] br').css({'clear':'left'});
- populateComboTrap(availableTraps);
- $('div#AutoHornWindow div[name="main"] select').css({'width':'100px'});
- if (trapConfig.FieryWarpath.enabled) $('div#AutoHornWindow input[name="chkEnable"]').attr('checked', 'checked');
- setSelectionComboTrap('Physical', trapConfig.FieryWarpath.physical);
- setSelectionComboTrap('Tactical', trapConfig.FieryWarpath.tactical);
- setSelectionComboTrap('Hydro', trapConfig.FieryWarpath.hydro);
- setSelectionComboTrap('Arcane', trapConfig.FieryWarpath.arcane);
- setSelectionComboTrap('General', trapConfig.FieryWarpath.general);
- setSelectionComboTrap('Gargantua', trapConfig.FieryWarpath.gargantua);
- setSelectionComboTrap('Warden', trapConfig.FieryWarpath.warden);
- setSelectionComboTrap('Warmonger', trapConfig.FieryWarpath.warmonger);
- $('div#AutoHornWindow div[name="main"] input[name^="wave"]').not('li[class$="-eachstreak"] input').each(function(){
- var nilai = trapConfig.FieryWarpath[$(this).attr('name').substring(0,5)][$(this).attr('name').substring(5)];
- if ($(this).attr('type') == "text") {
- $(this).val(nilai);
- } else if ($(this).attr('type') == "radio"){
- if (new String(nilai) == $(this).val()) $(this).attr("checked","checked");
- }
- });
- $('div#AutoHornWindow a[href="#save"]').click(function(e){
- e.preventDefault();
- trapConfig.FieryWarpath.enabled = $('div#AutoHornWindow input[name="chkEnable"]:checked').length;
- getSelectionComboTrap('Physical', trapConfig.FieryWarpath.physical);
- getSelectionComboTrap('Tactical', trapConfig.FieryWarpath.tactical);
- getSelectionComboTrap('Hydro', trapConfig.FieryWarpath.hydro);
- getSelectionComboTrap('Arcane', trapConfig.FieryWarpath.arcane);
- getSelectionComboTrap('General', trapConfig.FieryWarpath.general);
- getSelectionComboTrap('Gargantua', trapConfig.FieryWarpath.gargantua);
- getSelectionComboTrap('Warden', trapConfig.FieryWarpath.warden);
- getSelectionComboTrap('Warmonger', trapConfig.FieryWarpath.warmonger);
- $('div#AutoHornWindow div[name="main"] input[name^="wave"]').not('li[class$="-eachstreak"] input').each(function(){
- var nilai;
- if ($(this).attr('type') == "text") {
- nilai = (isNaN($(this).val()) ? $(this).val() : parseInt($(this).val()));
- trapConfig.FieryWarpath[$(this).attr('name').substring(0,5)][$(this).attr('name').substring(5)] = nilai;
- } else if ($(this).attr('type') == "radio" && $(this).attr('checked')){
- if ($(this).val() == 'true') nilai = true;
- else if ($(this).val() == 'false') nilai = false;
- else nilai = $(this).val();
- trapConfig.FieryWarpath[$(this).attr('name').substring(0,5)][$(this).attr('name').substring(5)] = nilai;
- }
- });
- var tmp = {wave1:{superBrie:0,superCharm:0},wave2:{superBrie:0,superCharm:0},wave3:{superBrie:0,superCharm:0}};
- $('div#AutoHornWindow div[name="main"] li[class$="-eachstreak"] input:checked').each(function(){
- var nama = $(this).attr('name');
- tmp[nama.substring(0,5)][nama.substring(5, nama.lastIndexOf('-'))] += Math.pow(2,parseInt(nama.substring(nama.lastIndexOf('-') + 1)));
- });
- jQuery.extend(true, trapConfig.FieryWarpath, tmp);
- var str = JSON.stringify(trapConfig);
- saveParam('trapConfig', str);
- $('div#AutoHornWindow').hide();
- $('div#AutoHornMask').hide();
- checkLocation();
- });
- $('div#AutoHornWindow a[href="#default"]').click(function(e){
- e.preventDefault();
- $('div#AutoHornWindow input[name="chkEnable"]').removeAttr('checked');
- $('div#AutoHornWindow select[name^="cbo"] option').each(function(){ $(this).removeAttr('selected'); });
- var def = {wave1:{maxStreak:9,gargantua:true,minGeneral:99,targetPhysical:true,charmNonPhysical:false,openSelection:true},wave2:{maxStreak:9,gargantua:true,minGeneral:99,targetPhysical:true,charmNonPhysical:true,targetNonPhysical:false,allowNonPhysical:false},wave3:{maxStreak:9,gargantua:true,minGeneral:99,targetPhysical:true,charmNonPhysical:true,targetNonPhysical:false,allowNonPhysical:false}};
- $('div#AutoHornWindow div[name="main"] input[name^="wave"]').not('li[class$="-eachstreak"] input').each(function(){
- var nilai = def[$(this).attr('name').substring(0,5)][$(this).attr('name').substring(5)];
- if ($(this).attr('type') == "text") {
- $(this).val(nilai);
- } else if ($(this).attr('type') == "radio"){
- if (new String(nilai) == $(this).val()) $(this).attr("checked","checked");
- }
- });
- $('div#AutoHornWindow div[name="main"] li[class$="-eachstreak"] input').each(function(){
- $(this).removeAttr('checked');
- });
- });
- var winH = $(window).height();
- var winW = $(window).width();
- $('div#AutoHornWindow').css({'top':(winH - $('div#AutoHornWindow').height())/2, 'left':(winW - $('div#AutoHornWindow').width())/2});
- $('div#AutoHornMask').css({'top':'0', 'left':'0', 'width':winW, 'height':winH});
- $('div#AutoHornMask').fadeTo(0,0.8);
- $('div#AutoHornWindow').fadeIn(2000);
- }
- function showIcebergPage(){
- $('div#AutoHornWindow a[href="#save"]').unbind('click');
- $('div#AutoHornWindow a[href="#default"]').unbind('click');
- $('div#AutoHornWindow div[name="top"]').html('Iceberg Configuration');
- $('div#AutoHornWindow div[name="main"]').html('<ul><span class="groupTitle">General</span>' +
- '<li tittle="toggle enable/disable setup on this page"><span class="paramDesc">Enable</span><input type="checkbox" name="chkEnable" />Use setup below for each conditions</li>' +
- '</ul><ul><span class="groupTitle">Trap Setup</span>' +
- '<li title="Trap setup for Slushy Shoreline"><span class="paramDesc">Slushy Shoreline</span>' + generateTrapSetupCombo('Slushy') + '</li>' +
- '<li title="Trap setup for phase 1 (Treacherous Tunnels)"><span class="paramDesc">Treacherous Tunnels</span>' + generateTrapSetupCombo('Phase1') + '</li>' +
- '<li title="Trap setup for phase 2 (Brutal Bulwark)"><span class="paramDesc">Brutal Bulwark</span>' + generateTrapSetupCombo('Phase2') + '</li>' +
- '<li title="Trap setup for phase 3 (Bombing Run)"><span class="paramDesc">Bombing Run</span>' + generateTrapSetupCombo('Phase3') + '</li>' +
- '<li title="Trap setup for phase 4 (The Mad Depths)"><span class="paramDesc">The Mad Depths</span>' + generateTrapSetupCombo('Phase4') + '</li>' +
- '<li title="Trap setup for phase 5 (Icewing\'s Lair)"><span class="paramDesc">Icewing\'s Lair</span>' + generateTrapSetupCombo('Phase5') + '</select></li>' +
- '<li title="Trap setup when meeting generals"><span class="paramDesc">Generals</span>' + generateTrapSetupCombo('General') + '</li>' +
- '</ul><ul><span class="groupTitle">Iceberg Generals</span>' +
- '<li title="Try to catch specific general"><span class="paramDesc">Specific General</span><input type="checkbox" name="chkAltGeneral" />Try to get <select name="cboAltGeneral"><option value="General Drheller">General Drheller</option><option value="Princess Fist">Princess Fist</option><option value="Lady Coldsnap">Lady Coldsnap</option><option value="Lord Splodington">Lord Splodington</option></select></li>' +
- '<li title="Trap setup for general evasion, should be non-hydro"><span class="paramDesc">Evasion Setup</span>' + generateTrapSetupCombo('AltGeneral') + '</li>' +
- '</ul><br>');
- $('div#AutoHornWindow div[name="main"]').css({'overflow-y':'auto', 'height':'350px'});
- $('div#AutoHornWindow div[name="main"] ul').css({'list-style-type':'none','margin':'0px'});
- $('div#AutoHornWindow div[name="main"] .groupTitle').css({'font-weight':'bold','font-size':'1.2em'});
- $('div#AutoHornWindow div[name="main"] .paramDesc').css({'font-weight':'bold','float':'left','width':'150', 'padding-left':'20px'});
- $('div#AutoHornWindow div[name="main"] select').css({'width':'300px'});
- $('div#AutoHornWindow div[name="main"] br').css({'clear':'left'});
- populateComboTrap(availableTraps);
- $('div#AutoHornWindow div[name="main"] select').css({'width':'100px'});
- if (trapConfig.Iceberg.enabled) $('div#AutoHornWindow input[name="chkEnable"]').attr('checked', 'checked');
- if (trapConfig.Iceberg.altGeneralEnable) {
- $('div#AutoHornWindow input[name="chkAltGeneral"]').attr('checked', 'checked');
- $('div#AutoHornWindow select[name="cboAltGeneral"] option[value="' + trapConfig.Iceberg.altGeneralEnable + '"]').attr('selected', 'selected');
- }
- setSelectionComboTrap('Slushy', trapConfig.Iceberg.slushy_shoreline);
- setSelectionComboTrap('Phase1', trapConfig.Iceberg.phase1);
- setSelectionComboTrap('Phase2', trapConfig.Iceberg.phase2);
- setSelectionComboTrap('Phase3', trapConfig.Iceberg.phase3);
- setSelectionComboTrap('Phase4', trapConfig.Iceberg.phase4);
- setSelectionComboTrap('Phase5', trapConfig.Iceberg.phase5);
- setSelectionComboTrap('General', trapConfig.Iceberg.generals);
- setSelectionComboTrap('AltGeneral', trapConfig.Iceberg.altgenerals);
- $('div#AutoHornWindow a[href="#save"]').click(function(e){
- e.preventDefault();
- trapConfig.Iceberg.enabled = $('div#AutoHornWindow input[name="chkEnable"]:checked').length;
- if ($('div#AutoHornWindow input[name="chkAltGeneral"]:checked').length > 0)
- trapConfig.Iceberg.altGeneralEnable = $('div#AutoHornWindow select[name="cboAltGeneral"]').val();
- else
- trapConfig.Iceberg.altGeneralEnable = 0;
- getSelectionComboTrap('Slushy', trapConfig.Iceberg.slushy_shoreline);
- getSelectionComboTrap('Phase1', trapConfig.Iceberg.phase1);
- getSelectionComboTrap('Phase2', trapConfig.Iceberg.phase2);
- getSelectionComboTrap('Phase3', trapConfig.Iceberg.phase3);
- getSelectionComboTrap('Phase4', trapConfig.Iceberg.phase4);
- getSelectionComboTrap('Phase5', trapConfig.Iceberg.phase5);
- getSelectionComboTrap('General', trapConfig.Iceberg.generals);
- getSelectionComboTrap('AltGeneral', trapConfig.Iceberg.altgenerals);
- var str = JSON.stringify(trapConfig);
- saveParam('trapConfig', str);
- $('div#AutoHornWindow').hide();
- $('div#AutoHornMask').hide();
- checkLocation();
- });
- $('div#AutoHornWindow a[href="#default"]').click(function(e){
- e.preventDefault();
- $('div#AutoHornWindow input[name="chkEnable"]').removeAttr('checked');
- $('div#AutoHornWindow input[name="chkAltGeneral"]').removeAttr('checked');
- $('div#AutoHornWindow select[name^="cbo"] option').each(function(){ $(this).removeAttr('selected'); });
- });
- var winH = $(window).height();
- var winW = $(window).width();
- $('div#AutoHornWindow').css({'top':(winH - $('div#AutoHornWindow').height())/2, 'left':(winW - $('div#AutoHornWindow').width())/2});
- $('div#AutoHornMask').css({'top':'0', 'left':'0', 'width':winW, 'height':winH});
- $('div#AutoHornMask').fadeTo(0,0.8);
- $('div#AutoHornWindow').fadeIn(2000);
- }
- function showZugzwangPage(){
- $('div#AutoHornWindow a[href="#save"]').unbind('click');
- $('div#AutoHornWindow a[href="#default"]').unbind('click');
- $('div#AutoHornWindow div[name="top"]').html('Zugzwang Configuration');
- $('div#AutoHornWindow div[name="main"]').html('<ul><span class="groupTitle">General</span>' +
- '<li tittle="toggle enable/disable setup on this page"><span class="paramDesc">Enable</span><input type="checkbox" name="chkEnable" />Use setup below</li>' +
- '</ul><ul><span class="groupTitle">Seasonal Garden</span>' +
- '<li tittle="Automatically Travel to tower when amplifier full"><span class="paramDesc">Auto Travel</span><input type="radio" name="autoTravel" value="true" />Yes, travel when my amplifier full <input type="radio" name="autoTravel" value="false" />No, thanks</li>' +
- '<li title="Trap setup for winter season (hydro)"><span class="paramDesc">Winter</span>' + generateTrapSetupCombo('Winter') + '</li>' +
- '<li title="Trap setup for spring season (physical)"><span class="paramDesc">Spring</span>' + generateTrapSetupCombo('Spring') + '</li>' +
- '<li title="Trap setup for summer season (tactical)"><span class="paramDesc">Summer</span>' + generateTrapSetupCombo('Summer') + '</li>' +
- '<li title="Trap setup for fall season (shadow)"><span class="paramDesc">Fall</span>' + generateTrapSetupCombo('Fall') + '</li>' +
- '</ul><ul><span class="groupTitle">Zugzwang Tower</span>' +
- '<li title="Side to determine phase"><span class="paramDesc">Side</span><input type="radio" name="optTarget" value="0" />Highest Progress <input type="radio" name="optTarget" value="1" />Technic <input type="radio" name="optTarget" value="2" />Mystic <input type="radio" name="optTarget" value="3" />Both Side</li>' +
- '<li title="Trap setup for pawn"><span class="paramDesc">Pawn</span>' + generateTrapSetupCombo('Pawn') + '</li>' +
- '<li title="Trap setup for knight"><span class="paramDesc">Knight</span>' + generateTrapSetupCombo('Knight') + '</li>' +
- '<li title="Trap setup for bishop"><span class="paramDesc">Bishop</span>' + generateTrapSetupCombo('Bishop') + '</li>' +
- '<li title="Trap setup for rook"><span class="paramDesc">Rook</span>' + generateTrapSetupCombo('Rook') + '</li>' +
- '<li title="Trap setup for queen"><span class="paramDesc">Queen</span>' + generateTrapSetupCombo('Queen') + '</li>' +
- '<li title="Trap setup for king"><span class="paramDesc">King</span>' + generateTrapSetupCombo('King') + '</li>' +
- '<li title="Trap setup for chessmaster"><span class="paramDesc">Chessmaster</span>' + generateTrapSetupCombo('Chessmaster') + '</li>' +
- '</ul><br>');
- $('div#AutoHornWindow div[name="main"]').css({'overflow-y':'auto', 'height':'350px'});
- $('div#AutoHornWindow div[name="main"] ul').css({'list-style-type':'none','margin':'0px'});
- $('div#AutoHornWindow div[name="main"] .groupTitle').css({'font-weight':'bold','font-size':'1.2em'});
- $('div#AutoHornWindow div[name="main"] .paramDesc').css({'font-weight':'bold','float':'left','width':'150', 'padding-left':'20px'});
- $('div#AutoHornWindow div[name="main"] select').css({'width':'300px'});
- $('div#AutoHornWindow div[name="main"] br').css({'clear':'left'});
- populateComboTrap(availableTraps);
- $('div#AutoHornWindow div[name="main"] select').css({'width':'100px'});
- // set selected values
- if (trapConfig.ZugzwangTower.enabled) $('div#AutoHornWindow input[name="chkEnable"]').attr('checked', 'checked');
- if (trapConfig.SeasonalGarden.autoTravel) $('div#AutoHornWindow input[name="autoTravel"][value="true"]').attr('checked', 'checked');
- else $('div#AutoHornWindow input[name="autoTravel"][value="false"]').attr('checked', 'checked');
- $('div#AutoHornWindow input[name="optTarget"][value="' + trapConfig.ZugzwangTower.target + '"]').attr('checked', 'checked');
- setSelectionComboTrap('Winter', trapConfig.SeasonalGarden.wr);
- setSelectionComboTrap('Spring', trapConfig.SeasonalGarden.sg);
- setSelectionComboTrap('Summer', trapConfig.SeasonalGarden.sr);
- setSelectionComboTrap('Fall', trapConfig.SeasonalGarden.fl);
- setSelectionComboTrap('Pawn', trapConfig.ZugzwangTower.pawn);
- setSelectionComboTrap('Knight', trapConfig.ZugzwangTower.knight);
- setSelectionComboTrap('Bishop', trapConfig.ZugzwangTower.bishop);
- setSelectionComboTrap('Rook', trapConfig.ZugzwangTower.rook);
- setSelectionComboTrap('Queen', trapConfig.ZugzwangTower.queen);
- setSelectionComboTrap('King', trapConfig.ZugzwangTower.king);
- setSelectionComboTrap('Chessmaster', trapConfig.ZugzwangTower.chessmaster);
- $('div#AutoHornWindow a[href="#save"]').click(function(e){
- e.preventDefault();
- trapConfig.ZugzwangTower.enabled = $('div#AutoHornWindow input[name="chkEnable"]:checked').length;
- if ($('div#AutoHornWindow input[name="autoTravel"]:checked').val() == 'true') trapConfig.SeasonalGarden.autoTravel = true;
- else trapConfig.SeasonalGarden.autoTravel = false;
- trapConfig.ZugzwangTower.target = parseInt($('div#AutoHornWindow input[name="optTarget"]:checked').val());
- getSelectionComboTrap('Winter', trapConfig.SeasonalGarden.wr);
- getSelectionComboTrap('Spring', trapConfig.SeasonalGarden.sg);
- getSelectionComboTrap('Summer', trapConfig.SeasonalGarden.sr);
- getSelectionComboTrap('Fall', trapConfig.SeasonalGarden.fl);
- getSelectionComboTrap('Pawn', trapConfig.ZugzwangTower.pawn);
- getSelectionComboTrap('Knight', trapConfig.ZugzwangTower.knight);
- getSelectionComboTrap('Bishop', trapConfig.ZugzwangTower.bishop);
- getSelectionComboTrap('Rook', trapConfig.ZugzwangTower.rook);
- getSelectionComboTrap('Queen', trapConfig.ZugzwangTower.queen);
- getSelectionComboTrap('King', trapConfig.ZugzwangTower.king);
- getSelectionComboTrap('Chessmaster', trapConfig.ZugzwangTower.chessmaster);
- var str = JSON.stringify(trapConfig);
- saveParam('trapConfig', str);
- $('div#AutoHornWindow').hide();
- $('div#AutoHornMask').hide();
- checkLocation();
- });
- $('div#AutoHornWindow a[href="#default"]').click(function(e){
- e.preventDefault();
- $('div#AutoHornWindow input[name="chkEnable"]').removeAttr('checked');
- $('div#AutoHornWindow input[name="autoTravel"][value="false"]').attr('checked', 'checked');
- $('div#AutoHornWindow input[name="optTarget"][value="0"]').attr('checked', 'checked');
- $('div#AutoHornWindow select[name^="cbo"] option').each(function(){ $(this).removeAttr('selected'); });
- });
- var winH = $(window).height();
- var winW = $(window).width();
- $('div#AutoHornWindow').css({'top':(winH - $('div#AutoHornWindow').height())/2, 'left':(winW - $('div#AutoHornWindow').width())/2});
- $('div#AutoHornMask').css({'top':'0', 'left':'0', 'width':winW, 'height':winH});
- $('div#AutoHornMask').fadeTo(0,0.8);
- $('div#AutoHornWindow').fadeIn(2000);
- }
- function showConfigPage(){
- $('div#AutoHornWindow a[href="#save"]').unbind('click');
- $('div#AutoHornWindow a[href="#default"]').unbind('click');
- $('div#AutoHornWindow div[name="top"]').html('AutoHorn Configuration');
- $('div#AutoHornWindow div[name="main"]').html('<ul><span class="groupTitle">General</span><li title="extra time to be added to horn time"><span class="paramDesc">Horn Delay</span>min <input type="text" name="txtMinHorn" class="short" /> max <input type="text" name="txtMaxHorn" class="short" /> seconds</li><li title="time to opening random link"><span class="paramDesc">Random Delay</span>min <input type="text" name="txtMinRandom" class="short" /> max <input type="text" name="txtMaxRandom" class="short" /> minutes</li><li title="When to checking page for TrapCheck (mm:ss). This will using your local time."><span class="paramDesc">Trap Check</span><input type="radio" name="optTrapCheck" value="true" />Enable at <input type="text" name="txtTrapCheckMin" class="short" /> : <input type="text" name="txtTrapCheckSec" class="short" /><input type="radio" name="optTrapCheck" value="false" />Disable</li><li title="time to wait when king\'s reward appears before opening random link"><span class="paramDesc">KR Delay</span>min <input type="text" name="txtMinKR" class="short" /> max <input type="text" name="txtMaxKR" class="short" /> minutes</li><li title="toggle update timer on window title"><span class="paramDesc">Update Window Title</span><input type="radio" name="optWinTitle" value="true" />Yes <input type="radio" name="optWinTitle" value="false" />No</li></ul><ul><span class="groupTitle">Sound</span><li title="use sound as king\'s reward alert"><span class="paramDesc">Alert Sound</span><input type="radio" name="optAlert" value="true" />Yes <input type="radio" name="optAlert" value="false" />No <input type="button" name="testSound" value="Test" /></li><li title="volume for alert"><span class="paramDesc">Sound Volume</span><input type="text" name="txtVolume" class="short" /></li></ul><br />');
- $('div#AutoHornWindow div[name="main"]').css({'overflow-y':'auto', 'height':'350px'});
- $('div#AutoHornWindow div[name="main"] ul').css({'list-style-type':'none','margin':'0px'});
- $('div#AutoHornWindow div[name="main"] .groupTitle').css({'font-weight':'bold','font-size':'1.2em'});
- $('div#AutoHornWindow div[name="main"] .paramDesc').css({'font-weight':'bold','float':'left','width':'150', 'padding-left':'20px'});
- $('div#AutoHornWindow div[name="main"] input.short').css({'width':'30px','text-align':'right'});
- $('div#AutoHornWindow div[name="main"] input.long').css({'width':'150px'});
- $('div#AutoHornWindow div[name="main"] br').css({'clear':'left'});
- $('div#AutoHornWindow div[name="main"] input[name="txtMinHorn"]').val(loadParam('minHornDelay', 30));
- $('div#AutoHornWindow div[name="main"] input[name="txtMaxHorn"]').val(loadParam('maxHornDelay', 120));
- $('div#AutoHornWindow div[name="main"] input[name="txtMinKR"]').val(loadParam('minKRWait', 180));
- $('div#AutoHornWindow div[name="main"] input[name="txtMaxKR"]').val(loadParam('maxKRWait', 210));
- $('div#AutoHornWindow div[name="main"] input[name="txtMinRandom"]').val(loadParam('minRandomPage', 10));
- $('div#AutoHornWindow div[name="main"] input[name="txtMaxRandom"]').val(loadParam('maxRandomPage', 20));
- $('div#AutoHornWindow div[name="main"] input[name="txtTrapCheckMin"]').val(trapConfig.TrapCheck.min);
- $('div#AutoHornWindow div[name="main"] input[name="txtTrapCheckSec"]').val(trapConfig.TrapCheck.sec);
- $('div#AutoHornWindow div[name="main"] input[name="txtVolume"]').val(loadParam('alertVolume', 100));
- if (loadParam('enableAlert', false)) $('div#AutoHornWindow div[name="main"] input[name="optAlert"][value="true"]').prop("checked", true);
- else $('div#AutoHornWindow div[name="main"] input[name="optAlert"][value="false"]').prop("checked", true);
- if (loadParam('updateWindowTitle', true)) $('div#AutoHornWindow div[name="main"] input[name="optWinTitle"][value="true"]').prop("checked", true);
- else $('div#AutoHornWindow div[name="main"] input[name="optWinTitle"][value="false"]').prop("checked", true);
- if (trapConfig.TrapCheck.enable) $('div#AutoHornWindow div[name="main"] input[name="optTrapCheck"][value="true"]').prop("checked", true);
- else $('div#AutoHornWindow div[name="main"] input[name="optTrapCheck"][value="false"]').prop("checked", true);
- $('div#AutoHornWindow div[name="main"] input[name="testSound"]').click(function(){
- if ($(this).val() == 'Test'){
- soundAlarm();
- $(this).val('Stop');
- } else {
- $('span#alarm').remove();
- $(this).val('Test');
- }
- });
- $('div#AutoHornWindow a[href="#save"]').click(function(e){
- e.preventDefault();
- saveParam('minHornDelay', parseInt($('div#AutoHornWindow div[name="main"] input[name="txtMinHorn"]').val()));
- saveParam('maxHornDelay', parseInt($('div#AutoHornWindow div[name="main"] input[name="txtMaxHorn"]').val()));
- saveParam('minKRWait', parseInt($('div#AutoHornWindow div[name="main"] input[name="txtMinKR"]').val()));
- saveParam('maxKRWait', parseInt($('div#AutoHornWindow div[name="main"] input[name="txtMaxKR"]').val()));
- saveParam('alertVolume', parseInt($('div#AutoHornWindow div[name="main"] input[name="txtVolume"]').val()));
- saveParam('minRandomPage', parseInt($('div#AutoHornWindow div[name="main"] input[name="txtMinRandom"]').val()));
- saveParam('maxRandomPage', parseInt($('div#AutoHornWindow div[name="main"] input[name="txtMaxRandom"]').val()));
- saveParam('enableAlert', $('div#AutoHornWindow div[name="main"] input[name="optAlert"]:checked').val()=="true" ? true : false);
- saveParam('updateWindowTitle', $('div#AutoHornWindow div[name="main"] input[name="optWinTitle"]:checked').val()=="true" ? true : false);
- trapConfig.TrapCheck.enable = ($('div#AutoHornWindow div[name="main"] input[name="optTrapCheck"]:checked').val()=="true" ? true : false);
- trapConfig.TrapCheck.min = parseInt($('div#AutoHornWindow div[name="main"] input[name="txtTrapCheckMin"]').val());
- trapConfig.TrapCheck.sec = parseInt($('div#AutoHornWindow div[name="main"] input[name="txtTrapCheckSec"]').val());
- var str = JSON.stringify(trapConfig);
- saveParam('trapConfig', str);
- calculateTrapCheck();
- $('div#AutoHornWindow').hide();
- $('div#AutoHornMask').hide();
- });
- $('div#AutoHornWindow a[href="#default"]').click(function(e){
- e.preventDefault();
- $('div#AutoHornWindow div[name="main"] input[name="txtMinHorn"]').val(30);
- $('div#AutoHornWindow div[name="main"] input[name="txtMaxHorn"]').val(120);
- $('div#AutoHornWindow div[name="main"] input[name="txtMinKR"]').val(180);
- $('div#AutoHornWindow div[name="main"] input[name="txtMaxKR"]').val(210);
- $('div#AutoHornWindow div[name="main"] input[name="txtMinRandom"]').val(10);
- $('div#AutoHornWindow div[name="main"] input[name="txtMaxRandom"]').val(20);
- $('div#AutoHornWindow div[name="main"] input[name="txtTrapCheckMin"]').val(0);
- $('div#AutoHornWindow div[name="main"] input[name="txtTrapCheckSec"]').val(0);
- $('div#AutoHornWindow div[name="main"] input[name="txtVolume"]').val(100);
- $('div#AutoHornWindow div[name="main"] input[name="optAlert"][value="false"]').prop("checked", true);
- $('div#AutoHornWindow div[name="main"] input[name="optWinTitle"][value="true"]').prop("checked", true);
- $('div#AutoHornWindow div[name="main"] input[name="optTrapCheck"][value="false"]').prop("checked", true);
- });
- var winH = $(window).height();
- var winW = $(window).width();
- $('div#AutoHornWindow').css({'top':(winH - $('div#AutoHornWindow').height())/2, 'left':(winW - $('div#AutoHornWindow').width())/2});
- $('div#AutoHornMask').css({'top':'0', 'left':'0', 'width':winW, 'height':winH});
- $('div#AutoHornMask').fadeTo(0,0.8);
- $('div#AutoHornWindow').fadeIn(2000);
- }
- function cleanupLink(){
- $("a[href*='apps.facebook.com/mousehunt/profile.php']").add("a[href*='apps.facebook.com/mousehunt/adversaries.php?']").add("a[href*='apps.facebook.com/mousehunt/item.php']").add("a[href*='apps.facebook.com/mousehunt/inventory.php']").each(function(i){
- var link = $(this).attr('href');
- link = link.replace('apps.facebook.com/mousehunt/', 'www.mousehuntgame.com/');
- $(this).attr('href', link);
- });
- $("a[href^='https:\/\/www.mousehuntgame.com']").each(function() {
- var link = $(this).attr('href');
- link = link.replace('https:\/\/', 'http://');
- $(this).attr('href', link);
- });
- $("img[src^='https:\/\/www.mousehuntgame.com\/images\/']").each(function() {
- var link = $(this).attr('src');
- link = link.replace('https:\/\/', 'http://');
- $(this).attr('src', link);
- });
- }
- function saveParam(name, val){
- if (typeof unsafeWindow.user == "undefined") return;
- GM_setValue(unsafeWindow.user.user_id + ':' + name, val);
- }
- function loadParam(name, def){
- if (typeof unsafeWindow.user == "undefined" || typeof GM_getValue=="undefined") return def;
- return GM_getValue(unsafeWindow.user.user_id + ':' + name, def);
- }
- function updateAvailableTraps(newTrap){
- var tmp = {};
- for (var x in newTrap){
- if (newTrap[x].is_hidden) continue;
- tmp[newTrap[x].type] = {
- item_id : newTrap[x].item_id,
- name : newTrap[x].name,
- classification : newTrap[x].classification,
- quantity : newTrap[x].quantity
- };
- if (newTrap[x].power_type_name) tmp[newTrap[x].type].power_type_name = newTrap[x].power_type_name;
- }
- availableTraps = tmp;
- saveParam('availableTraps', JSON.stringify(availableTraps));
- }
- function updateAvailableQuantity(newTrap){
- var tmp = {};
- for (var x in newTrap){
- if (newTrap[x].classification != 'bait' && newTrap[x].classification != 'trinket' && newTrap[x].classification != 'weapon' && newTrap[x].classification != 'base') continue;
- if (newTrap[x].is_hidden) continue;
- tmp[newTrap[x].type] = {
- item_id : newTrap[x].item_id,
- name : newTrap[x].name,
- classification : newTrap[x].classification,
- quantity : newTrap[x].quantity
- };
- if (newTrap[x].power_type_name) tmp[newTrap[x].type].power_type_name = newTrap[x].power_type_name;
- }
- jQuery.extend(true, availableTraps, tmp);
- saveParam('availableTraps', JSON.stringify(availableTraps));
- }
- function ajaxRequestEffMeter(todo) {
- if (unsafeWindow.user.has_puzzle==true || currentTrap.busy) return;
- if (currentTrap.effmeter) { if (todo != undefined) todo(); return; }
- if (currentTrap.busy) setTimeout(ajaxRequestEffMeter(todo), 5000);
- currentTrap.busy = true;
- var ajax=new unsafeWindow.Ajax();
- ajax.requireLogin=true;
- ajax.responseType=unsafeWindow.Ajax.JSON;
- ajax.ondone = function(resp){
- currentTrap.busy = false;
- currentTrap.effmeter = resp.effectiveness;
- if (todo != undefined) todo();
- }
- var params={'uh':unsafeWindow.user.unique_hash};
- ajax.post(unsafeWindow.callbackurl+"managers/ajax/users/getmiceeffectiveness.php",params);
- }
- function ajaxRequestAvailableTraps(){
- if (unsafeWindow.user.has_puzzle==true) return;
- var ajax=new unsafeWindow.Ajax();
- ajax.requireLogin=true;
- ajax.responseType=unsafeWindow.Ajax.JSON;
- var params={'uh':unsafeWindow.user.unique_hash};
- ajax.post(unsafeWindow.callbackurl+"managers/ajax/users/gettrapcomponents.php",params);
- }
- function loadInitialParameters(){
- if (typeof unsafeWindow.user == "undefined") { setTimeout(function() { loadInitialParameters(); }, 500); return; }
- if (loadParam('trapConfig', null) == null) {
- saveParam('trapConfig', JSON.stringify(trapConfig));
- } else {
- jQuery.extend(true, trapConfig, jQuery.parseJSON(loadParam('trapConfig', null)));
- }
- if (loadParam('availableTraps', null) == null) {
- ajaxRequestAvailableTraps();
- } else {
- jQuery.extend(true, availableTraps, jQuery.parseJSON(loadParam('availableTraps', null)));
- }
- }
- function endsWith(str, suffix) {
- return str.indexOf(suffix, str.length - suffix.length) !== -1;
- }
- $(document).ready(function(){
- cleanupLink();
- if ($('a[href$="turn.php"]').length < 1 && $('div#mobilePuzzle').length < 1){
- setTimeout(function() { document.location = defaultpage; } , 3*60*1000);
- return;
- } else {
- loadInitialParameters();
- setTimeout(function() { mulai(); } , 1000);
- }
- if ($('div#header div.headsup div.hudstatlist').length > 2) {
- $('div#header div.headsup div.hudstatlist:last li:last').before('<li><span class="hudstatlabel">Charm:</span> <span id="hud_trinketName"><a href="http://www.mousehuntgame.com/inventory.php?tab=1">None </a></span><span id="hud_trinketQuantityLabel">(<span id="hud_trinketQuantity">0</span>)</span></li>');
- }
- $('div.hgSideBar').prepend('<div id="AutoHorn"><ul><li><a href="#conf">AutoHorn Setting</a></li><li>Horn Timer<span name="hornTime">00:00</span></li><li>Random Timer<span name="randomTime">00:00</span></li><li>Trap Check<span name="trapCheckTime">00:00</span></li></ul></div>');
- $('div#AutoHorn').append('<br><ul id="seqConfig">Defined Trap Setup');
- $('div#AutoHorn').append('<li><a href="#balack">Balack\'s Cove</a></li>');
- $('div#AutoHorn a[href="#balack"]').click(function(e){
- e.preventDefault();
- showBalackPage();
- });
- $('div#AutoHorn').append('<li><a href="#zugzwang">Seasonal Garden - Zugzwang</a></li>');
- $('div#AutoHorn a[href="#zugzwang"]').click(function(e){
- e.preventDefault();
- showZugzwangPage();
- });
- $('div#AutoHorn').append('<li><a href="#iceberg">Slushy - Iceberg</a></li>');
- $('div#AutoHorn a[href="#iceberg"]').click(function(e){
- e.preventDefault();
- showIcebergPage();
- });
- $('div#AutoHorn').append('<li><a href="#warpath">Fiery Warpath</a></li>');
- $('div#AutoHorn a[href="#warpath"]').click(function(e){
- e.preventDefault();
- showWarpathPage();
- });
- $('div#AutoHorn').append('</ul><br>');
- $('div#hgAppContainer').append('<div id="AutoHornWindow"><div name="top"></div><div name="main"></div><div name="bottom" style="position:absolute;bottom:10px;right:10px;"><a href="#save">Save</a> | <a href="#default">Restore Default</a> | <a href="#close">Close</a></div></div>');
- $('div#hgAppContainer').append('<div id="AutoHornMask"></div>');
- $('div#AutoHornWindow').css({'background-color':'#ffffff', 'position':'fixed', 'width':'600px', 'height':'400px', 'display':'none', 'z-index':'9999', 'padding':'20px'});
- $('div#AutoHornMask').css({'background-color':'#000', 'position':'fixed', 'display':'none', 'z-index':'9998', 'padding':'0px'});
- $(window).resize(function() {
- var winH = $(window).height();
- var winW = $(window).width();
- $('div#AutoHornWindow').css({'top':(winH - $('div#AutoHornWindow').height())/2, 'left':(winW - $('div#AutoHornWindow').width())/2});
- $('div#AutoHornMask').css({'top':'0', 'left':'0', 'width':winW, 'height':winH});
- });
- $('div#AutoHornWindow div[name="top"]').css({'font-weight':'bold','font-size':'18','text-align':'center','padding-bottom':'10px'});
- $('div#AutoHorn').css({'padding-bottom':'20px', 'margin-bottom':'20px', 'border-bottom':'2px solid black'});
- $('div#AutoHorn br').css({'clear':'right'});
- $('div#AutoHorn li span').css({'float':'right'});
- $('div#AutoHorn a[href="#conf"]').click(function(e){
- e.preventDefault();
- showConfigPage();
- });
- $('div#AutoHornWindow a[href="#close"]').click(function(e){
- e.preventDefault();
- $('div#AutoHornWindow').hide();
- $('div#AutoHornMask').hide();
- });
- unsafeWindow.$(document).ajaxSuccess(function(e, xhr, opt) {
- var obj = jQuery.parseJSON(xhr.responseText);
- if (obj.components) setTimeout(function() { updateAvailableTraps(obj.components); }, 1);
- else if (obj.inventory) setTimeout(function() { updateAvailableQuantity(obj.inventory); }, 1);
- if (obj.user.has_puzzle && !alertShown) {
- alertShown = true;
- setTimeout(function() {
- if (GM_getValue(obj.user.user_id + ':enableAlert', false)) soundAlarm(); else alert('King Reward');
- }, 1);
- }
- if (endsWith(opt.url, 'activeturn.php')) {
- currentTrap.effmeter = null;
- }
- if (obj.user.user_id) {
- if (!obj.user.has_puzzle && alertShown) {
- $('span#alarm').remove();
- alertShown = false;
- }
- setTimeout(function() { mulai(); }, 1000);
- }
- });
- calculateRandomPage();
- tulisWaktu();
- });