Cookie Clicker - Admin Panel
?
QR Kód s aktuální adresou
⚙️ Admin Panel
🔄 Reset Hry
Resetovat Hru
🎲 Události
Vyber tým:
🎲 Náhodný tým
🌍 Všichni
🔵 Modrý
🔴 Červený
🟢 Zelený
🟡 Žlutý
✅ Pozitivní události
💰 Bonusová odměna (+50 🍪)
⚡ Turbo pečení (30s x2 🍪)
🎁 Náhodný upgrade
❌ Negativní události
🔥 Požár pekárny (-20% 🍪)
🦠 Epidemie (1 min bez babiček)
🚨 Krádež (-30% 🍪, přerozdělení)
🎁 Darování vylepšení
Vyber upgrade:
Babička
Robot
Pekárna
Továrna
Manager
Vyber cíl:
Všem týmům
Náhodný tým
Blue
Red
Green
Yellow
Darovat upgrade
📢 Poslat zprávu týmům
🌍 Všem týmům
🔵 Blue tým
🔴 Red tým
🟢 Green tým
🟡 Yellow tým
📨 Odeslat
🏆 Leaderboard
Tým
Sušenky 🍪
Babičky 👵
Roboti 🦾
Pekárny 🍞
Továrny 🏭
Manageri 👔
CPM
Upravit obsah stránky
{% extends "templates/base.html" %} {% set game_name = "Cookie Clicker - Admin Panel" %} {% block content %} <style> body { background-color: #333; color: white; text-align: center; font-family: Arial, sans-serif; } .menu { background: rgba(255, 255, 255, 0.2); padding: 15px; margin: 20px auto; width: 60%; border-radius: 10px; } button { margin: 10px; padding: 10px 20px; font-size: 16px; cursor: pointer; } select { padding: 5px; font-size: 16px; } table { margin: 0 auto; width: 80%; border-collapse: collapse; } th, td { padding: 8px; text-align: center; border: 1px solid #555; } </style> <h1>⚙️ Admin Panel</h1> <!-- Reset hry --> <div class="menu"> <h2>🔄 Reset Hry</h2> <button id="resetGame">Resetovat Hru</button> </div> <!-- Posílání událostí --> <div class="menu"> <h2>🎲 Události</h2> <label>Vyber tým:</label> <select id="teamSelect"> <option value="random">🎲 Náhodný tým</option> <option value="all">🌍 Všichni</option> <option value="blue">🔵 Modrý</option> <option value="red">🔴 Červený</option> <option value="green">🟢 Zelený</option> <option value="yellow">🟡 Žlutý</option> </select> <h3>✅ Pozitivní události</h3> <button onclick="sendEvent('bonus')">💰 Bonusová odměna (+50 🍪)</button> <button onclick="sendEvent('turbo')">⚡ Turbo pečení (30s x2 🍪)</button> <button onclick="sendEvent('random_upgrade')">🎁 Náhodný upgrade</button> <h3>❌ Negativní události</h3> <button onclick="sendEvent('fire')">🔥 Požár pekárny (-20% 🍪)</button> <button onclick="sendEvent('epidemic')">🦠 Epidemie (1 min bez babiček)</button> <button onclick="sendEvent('steal')">🚨 Krádež (-30% 🍪, přerozdělení)</button> </div> <!-- Darování vylepšení --> <div class="menu"> <h2>🎁 Darování vylepšení</h2> <label>Vyber upgrade:</label> <select id="upgradeTypeSelect"> <option value="grandma">Babička</option> <option value="robot">Robot</option> <option value="pekárna">Pekárna</option> <option value="továrna">Továrna</option> <option value="manager">Manager</option> </select> <br> <label>Vyber cíl:</label> <select id="upgradeTargetSelect"> <option value="all">Všem týmům</option> <option value="random">Náhodný tým</option> <option value="blue">Blue</option> <option value="red">Red</option> <option value="green">Green</option> <option value="yellow">Yellow</option> </select> <br> <button onclick="giftUpgrade()">Darovat upgrade</button> </div> <h3>📢 Poslat zprávu týmům</h3> <input type="text" id="adminMessage" placeholder="Zadejte zprávu..." style="width: 80%; padding: 10px;"> <select id="messageTarget"> <option value="all">🌍 Všem týmům</option> <option value="blue">🔵 Blue tým</option> <option value="red">🔴 Red tým</option> <option value="green">🟢 Green tým</option> <option value="yellow">🟡 Yellow tým</option> </select> <button onclick="sendCustomMessage()">📨 Odeslat</button> <script> const forrestLib = new ForrestHubLib(); // Reset hry – resetujeme hodnoty pro každý tým zvlášť document.getElementById("resetGame").addEventListener("click", async () => { await forrestLib.setKeyBroadcast('team_cookies', { blue: 0, red: 0, green: 0, yellow: 0 }); await forrestLib.setKeyBroadcast('team_upgrades', { blue: {}, red: {}, green: {}, yellow: {} }); const defaultPrices = { grandma: 10, robot: 30, pekárna: 100, továrna: 500, manager: 3000, steal_grandma: 30, bad_eggs: 20, wolf: 100 }; await forrestLib.setKeyBroadcast('prices_blue', defaultPrices); await forrestLib.setKeyBroadcast('prices_red', defaultPrices); await forrestLib.setKeyBroadcast('prices_green', defaultPrices); await forrestLib.setKeyBroadcast('prices_yellow', defaultPrices); await forrestLib.setKeyBroadcast('game_reset', true); alert("Hra byla resetována!"); }); // Odeslání události function sendEvent(eventType) { const selectedTeam = document.getElementById("teamSelect").value; if (selectedTeam === "random") { const teams = ["blue", "red", "green", "yellow"]; sendEventToTeam(eventType, teams[Math.floor(Math.random() * teams.length)]); } else if (selectedTeam === "all") { ["blue", "red", "green", "yellow"].forEach(team => sendEventToTeam(eventType, team)); } else { sendEventToTeam(eventType, selectedTeam); } } async function sendEventToTeam(eventType, team) { let cookies = await forrestLib.getKey('team_cookies') || {}; switch (eventType) { case "bonus": cookies[team] = (cookies[team] || 0) + 50; await forrestLib.setKeyBroadcast('team_cookies', cookies); alertBothTeams(`💰 ${team.toUpperCase()} tým získal bonus 50 sušenek!`, team); break; case "turbo": await forrestLib.setKeyBroadcast(`turbo_${team}`, true); alertBothTeams(`⚡ ${team.toUpperCase()} tým má turbo pečení na 30 sekund!`, team); setTimeout(async () => { await forrestLib.setKeyBroadcast(`turbo_${team}`, false); alertBothTeams(`⚡ Turbo pečení ${team.toUpperCase()} týmu skončilo!`, team); }, 30000); break; case "random_upgrade": let upgrades = await forrestLib.getKey('team_upgrades') || {}; let upgradeTypes = ["grandma", "robot", "pekárna", "továrna", "manager"]; let randomUpgrade = upgradeTypes[Math.floor(Math.random() * upgradeTypes.length)]; upgrades[team] = upgrades[team] || {}; upgrades[team][randomUpgrade] = (upgrades[team][randomUpgrade] || 0) + 1; await forrestLib.setKeyBroadcast('team_upgrades', upgrades); alertBothTeams(`🎁 ${team.toUpperCase()} tým získal zdarma upgrade: ${randomUpgrade}!`, team); break; case "fire": let lostFire = Math.floor((cookies[team] || 0) * 0.2); cookies[team] = Math.max(0, (cookies[team] || 0) - lostFire); await forrestLib.setKeyBroadcast('team_cookies', cookies); alertBothTeams(`🔥 Požár pekárny! ${team.toUpperCase()} tým přišel o ${lostFire} sušenek!`, team); break; case "epidemic": await forrestLib.setKeyBroadcast(`epidemic_${team}`, true); alertBothTeams(`🦠 Epidemie! Babičky týmu ${team.toUpperCase()} nefungují po dobu 1 minuty!`, team); setTimeout(async () => { await forrestLib.setKeyBroadcast(`epidemic_${team}`, false); alertBothTeams(`✅ Epidemie v týmu ${team.toUpperCase()} skončila!`, team); }, 60000); break; case "steal": let lostSteal = Math.floor((cookies[team] || 0) * 0.3); cookies[team] = Math.max(0, (cookies[team] || 0) - lostSteal); await forrestLib.setKeyBroadcast('team_cookies', cookies); alertBothTeams(`🚨 Krádež! ${team.toUpperCase()} tým přišel o ${lostSteal} sušenek!`, team); break; } } function alertBothTeams(message, targetTeam) { alert(message); forrestLib.setKeyBroadcast(`team_alert_${targetTeam}`, message); } // Funkce pro darování upgradu s odesláním alertu týmům async function giftUpgrade() { let upgradeType = document.getElementById("upgradeTypeSelect").value; let target = document.getElementById("upgradeTargetSelect").value; let upgrades = await forrestLib.getKey('team_upgrades') || {}; const teams = ["blue", "red", "green", "yellow"]; if (target === "all") { teams.forEach(team => { upgrades[team] = upgrades[team] || {}; upgrades[team][upgradeType] = (upgrades[team][upgradeType] || 0) + 1; forrestLib.setKeyBroadcast(`team_alert_${team}`, `🎁 Admin daroval upgrade: ${upgradeType}!`); }); await forrestLib.setKeyBroadcast('team_upgrades', upgrades); alert(`🎁 Upgrade ${upgradeType} darován všem týmům!`); } else if (target === "random") { let randomTeam = teams[Math.floor(Math.random() * teams.length)]; upgrades[randomTeam] = upgrades[randomTeam] || {}; upgrades[randomTeam][upgradeType] = (upgrades[randomTeam][upgradeType] || 0) + 1; await forrestLib.setKeyBroadcast('team_upgrades', upgrades); forrestLib.setKeyBroadcast(`team_alert_${randomTeam}`, `🎁 Admin daroval upgrade: ${upgradeType}!`); alert(`🎁 Upgrade ${upgradeType} darován náhodnému týmu (${randomTeam.toUpperCase()})!`); } else { upgrades[target] = upgrades[target] || {}; upgrades[target][upgradeType] = (upgrades[target][upgradeType] || 0) + 1; await forrestLib.setKeyBroadcast('team_upgrades', upgrades); forrestLib.setKeyBroadcast(`team_alert_${target}`, `🎁 Admin daroval upgrade: ${upgradeType}!`); alert(`🎁 Upgrade ${upgradeType} darován týmu ${target.toUpperCase()}!`); } } async function sendCustomMessage() { let message = document.getElementById("adminMessage").value.trim(); let targetTeam = document.getElementById("messageTarget").value; if (!message) { alert("⚠️ Zadejte zprávu!"); return; } if (targetTeam === "all") { ["blue", "red", "green", "yellow"].forEach(team => { forrestLib.setKeyBroadcast(`team_alert_${team}`, message); }); } else { await forrestLib.setKeyBroadcast(`team_alert_${targetTeam}`, message); } alert(`📢 Odesláno týmu ${targetTeam.toUpperCase()}: ${message}`); document.getElementById("adminMessage").value = ""; } </script> <script> forrestLib.addEventListenerKey(`team_alert_${team}`, (message) => { alert(`📢 Zpráva pro tým ${team.toUpperCase()}: ${message}`); }); forrestLib.addEventListenerKey("global_alert", (message) => { alert(`🌍 Zpráva od admina pro všechny týmy: ${message}`); }); </script> <script> document.addEventListener("DOMContentLoaded", function () { let userPassword = prompt("🔒 Zadejte heslo pro přístup k admin panelu:"); if (userPassword !== "Helceletk@") { alert("⛔ Nesprávné heslo! Přístup odepřen."); window.location.href = "index.html"; } }); </script> <h2>🏆 Leaderboard</h2> <table class="table table-dark"> <thead> <tr> <th>Tým</th> <th>Sušenky 🍪</th> <th>Babičky 👵</th> <th>Roboti 🦾</th> <th>Pekárny 🍞</th> <th>Továrny 🏭</th> <th>Manageri 👔</th> <th>CPM</th> </tr> </thead> <tbody id="leaderboard"></tbody> </table> <script> async function updateLeaderboard() { let cookies = await forrestLib.getKey('team_cookies') || {}; let upgrades = await forrestLib.getKey('team_upgrades') || {}; // Seřadíme týmy podle počtu sušenek (od nejvíce po nejméně) let sortedTeams = Object.entries(cookies).sort((a, b) => b[1] - a[1]); // Upgrade efekty dle aktuální verze hry (cookies za minutu) const upgradeEffects = { grandma: 6, robot: 8, pekárna: 20, továrna: 100, manager: 0 }; let leaderboardHTML = ""; for (let [team, count] of sortedTeams) { let teamUpgrades = upgrades[team] || {}; let baseCPM = 0; for (let upg in upgradeEffects) { let upgradeCount = teamUpgrades[upg] || 0; if (upg === "grandma") { let managerCount = teamUpgrades["manager"] || 0; baseCPM += upgradeCount * upgradeEffects[upg] * (managerCount > 0 ? 2 : 1); } else if (upg !== "manager") { baseCPM += upgradeCount * upgradeEffects[upg]; } } leaderboardHTML += `<tr> <td style="color: ${getTeamColor(team)}; font-weight: bold;">${team.toUpperCase()}</td> <td>${Math.floor(count)}</td> <td>${teamUpgrades.grandma || 0}</td> <td>${teamUpgrades.robot || 0}</td> <td>${teamUpgrades.pekárna || 0}</td> <td>${teamUpgrades.továrna || 0}</td> <td>${teamUpgrades.manager || 0}</td> <td>${baseCPM.toFixed(1)}</td> </tr>`; } document.getElementById("leaderboard").innerHTML = leaderboardHTML; } function getTeamColor(team) { const colors = { blue: "#4d79ff", red: "#ff4d4d", green: "#4caf50", yellow: "#cc9900" }; return colors[team] || "white"; } setInterval(updateLeaderboard, 2000); document.addEventListener("DOMContentLoaded", updateLeaderboard); </script> {% endblock %}