// ==UserScript==
// @name Dead Frontier Auto Bank Standalone
// @namespace http://tampermonkey.net/
// @version 4.6
// @description Self-contained Auto Bank buttons with collapse/remember state (no Browser Implants dependency), positioned under QuickBuy.
// @match https://fairview.deadfrontier.com/onlinezombiemmo/index.php*
// @grant none
// @run-at document-idle
// ==/UserScript==
(function() {
'use strict';
console.log('[AutoBank] initializing');
const origin = window.location.origin;
const path = window.location.pathname;
const params = new URLSearchParams(window.location.search);
const returnPage = params.get('originPage');
const currentPage = params.get('page') || '';
// --- 1) BANK PAGE HANDLER ---
if (currentPage === '15' && params.has('scripts')) {
console.log('[AutoBank] bank action:', params.get('scripts'));
const action = params.get('scripts');
window.addEventListener('load', () => {
setTimeout(() => {
if (action === 'withdraw') {
const amt = params.get('amount') || '50000';
const input = document.querySelector('#withdraw');
const btn = document.querySelector('#wBtn');
if (input && btn) {
input.value = amt;
input.setAttribute('value', amt);
['input','change'].forEach(e => input.dispatchEvent(new Event(e, { bubbles:true })));
(typeof withdraw==='function'? withdraw(): btn.click());
}
} else if (action === 'withdrawAll') {
if (typeof withdraw==='function') withdraw(1);
else document.querySelector("button[onclick='withdraw(1);']")?.click();
} else if (action === 'deposit') {
if (typeof deposit==='function') deposit(1);
else document.querySelector("button[onclick='deposit(1);']")?.click();
}
},200);
setTimeout(() => {
if (returnPage==='35') sessionStorage.setItem('df_auto_restore','1');
window.location.replace(`${origin}${path}?page=${returnPage}`);
},500);
});
return;
}
// --- 2) MAIN PAGE: WAIT FOR QUICKBUY, THEN INJECT PANEL/BUTTONS ---
function injectPanel() {
const qb = document.getElementById('quickbuy-fieldset');
if (!qb) {
console.log('[AutoBank] QuickBuy panel not yet present, retrying...');
return setTimeout(injectPanel,200);
}
console.log('[AutoBank] QuickBuy found, injecting panel');
const rightTd = qb.parentElement;
rightTd.style.position = 'relative';
let panel = document.getElementById('auto-bank-panel');
if (!panel) {
panel = document.createElement('div');
panel.id = 'auto-bank-panel';
Object.assign(panel.style, {
position: 'absolute',
top: `${qb.offsetTop + qb.offsetHeight + 8}px`,
left: qb.style.left || '10px',
background: 'rgba(0,0,0,0.3)',
border: '1px solid #666',
borderRadius: '8px',
color: '#ffd700',
padding: '8px',
width: '180px',
zIndex: '10000'
});
const title = document.createElement('strong');
title.textContent = 'Auto Bank';
title.style.display = 'block';
title.style.textAlign = 'center';
title.style.marginBottom = '6px';
panel.appendChild(title);
rightTd.insertBefore(panel, qb.nextSibling);
console.log('[AutoBank] Panel inserted under QuickBuy');
}
buildButtons(panel);
}
function buildButtons(panel) {
if (document.getElementById('auto-bank-fieldset')) return;
console.log('[AutoBank] Building buttons');
// restore search if returning
if (currentPage==='35' && sessionStorage.getItem('df_auto_restore')) {
sessionStorage.removeItem('df_auto_restore');
const inp = document.getElementById('searchField');
const last = localStorage.getItem('lastDFsearch');
if (inp && last) {
inp.value = last;
inp.dispatchEvent(new Event('input',{bubbles:true}));
setTimeout(()=> document.getElementById('makeSearch')?.click(),50);
}
}
const fieldset = document.createElement('fieldset');
fieldset.id = 'auto-bank-fieldset';
Object.assign(fieldset.style, {
border: '1px solid #666', padding: '6px 10px', margin: '4px 0',
background: 'rgba(0,0,0,0.35)', borderRadius: '6px'
});
panel.appendChild(fieldset);
const legend = document.createElement('legend');
legend.innerHTML = `<span>Controls</span> <button id="collapse-auto-bank" style="background:none;border:none;color:#ffd700;cursor:pointer;">[–]</button>`;
Object.assign(legend.style,{fontSize:'12px',padding:'0 4px'});
fieldset.appendChild(legend);
const container = document.createElement('div');
container.id = 'auto-bank-btn-container';
Object.assign(container.style, { display:'flex', flexDirection:'column', gap:'4px', marginTop:'6px' });
fieldset.appendChild(container);
const collapse = document.getElementById('collapse-auto-bank');
if (localStorage.getItem('autoBankCollapsed')==='true') {
container.style.display='none'; collapse.textContent='[+]';
}
collapse.addEventListener('click',()=>{
const hidden = container.style.display==='none';
container.style.display = hidden?'flex':'none';
collapse.textContent = hidden?'[–]':'[+]';
localStorage.setItem('autoBankCollapsed', hidden?'false':'true');
});
// button definitions
const defs = [
['autoWithdraw50k','Withdraw 50k','withdraw','50000'],
['autoWithdraw150k','Withdraw 150k','withdraw','150000'],
['autoWithdraw5M','Withdraw 5M','withdraw','5000000'],
['autoWithdrawAll','Withdraw All','withdrawAll',null],
['autoDepositAll','Deposit All','deposit',null]
];
defs.forEach(([id,label,act,amt])=>{
const btn = document.createElement('button'); btn.id=id; btn.textContent=label;
Object.assign(btn.style,{width:'100%',padding:'4px 0',background:'#222',color:'#ffd700',border:'1px solid #666',borderRadius:'4px',fontSize:'12px',cursor:'pointer'});
btn.addEventListener('click',()=>{
if (currentPage==='35') {
const si = document.getElementById('searchField'); if(si) localStorage.setItem('lastDFsearch',si.value);
}
let url = `${origin}${path}?page=15&scripts=${act}`;
if (amt) url+=`&amount=${amt}`;
if (currentPage) url+=`&originPage=${currentPage}`;
window.location.replace(url);
});
container.appendChild(btn);
});
}
// initialize
function init(){ injectPanel(); }
if(document.readyState==='loading') document.addEventListener('DOMContentLoaded',init);
else init();
})();