Untitled
unknown
plain_text
9 months ago
6.3 kB
6
Indexable
// Tworzenie menu do gry i ustawienie jego stylu
const menu = document.createElement('div');
menu.id = 'gameMenu';
Object.assign(menu.style, {
position: 'fixed',
top: '50%', // Ustawienie na środek ekranu w pionie
right: '10px', // Ustawienie na prawą stronę
transform: 'translateY(-50%)', // Przemieszczanie w górę o połowę wysokości menu, żeby wyśrodkować
width: '230px', // Szerokość menu
padding: '15px', // Większy padding dla lepszego wyglądu
background: 'rgba(0, 0, 0, 0.7)', // Trochę ciemniejszy tło, aby było subtelniejsze
color: 'white', // Kolor tekstu
border: '2px solid #444', // Ciemniejsza ramka dla lepszego kontrastu
borderRadius: '12px', // Zaokrąglone rogi
fontFamily: 'Arial, sans-serif', // Dodanie alternatywnej czcionki
fontSize: '14px', // Rozmiar czcionki
boxShadow: '0 4px 8px rgba(0, 0, 0, 0.5)', // Dodanie cienia, by menu wyglądało bardziej elegancko
display: 'block'
});
document.body.appendChild(menu);
// Funkcja do znajdowania gracza o nazwie "raha"
function findPlayer() {
return a0_0x4cd2c3.find(entity => entity && entity.oType === 2 && entity.nickName === "spermojad") || null;
}
// Funkcja do znajdowania najbliższego wroga
function findClosestEnemy(player) {
return a0_0x4cd2c3.reduce((closest, entity) => {
if (entity && entity.oType === 2 && entity.nickName !== "raha" && entity.nickName.trim() !== "") {
const distance = Math.hypot(entity.ox - player.ox, entity.oy - player.oy);
if (distance < (closest.distance || Infinity)) {
return { entity, distance };
}
}
return closest;
}, {}).entity || null;
}
let lockedEnemy = null; // Zmienna przechowująca zablokowanego wroga
let isLocked = false; // Zmienna określająca, czy wróg jest zablokowany
// Funkcja do aktualizacji menu
function updateMenu() {
const player = findPlayer(); // Znajdź gracza
const enemy = isLocked && lockedEnemy ? lockedEnemy : (player ? findClosestEnemy(player) : null); // Znajdź wroga (jeśli zablokowany, to ten zablokowany)
let enemyText = enemy ? `Enemy: ${enemy.nickName}` : 'Enemy: Brak';
// Jeśli wróg jest zablokowany, pokaż go w inny sposób
if (isLocked && lockedEnemy) {
enemyText = `<span style="color: red; font-weight: bold;">ZABLOKOWANO "${lockedEnemy.nickName}"</span>`;
}
if (player) {
// Aktualizowanie treści menu o pozycję gracza i wroga
menu.innerHTML =
`<b>Pozycja nasza:</b><br>
🟢 Twój X: ${Math.round(player.ox)} <br>
🟢 Twój Y: ${Math.round(player.oy)} <br>
<b>Pozycja wroga:</b><br>
🔴 ${enemyText} <br>
🔴 Enemy X: ${enemy ? Math.round(enemy.ox) : 'Brak'} <br>
🔴 Enemy Y: ${enemy ? Math.round(enemy.oy) : 'Brak'}`;
// Jeśli zablokowany wróg zniknął, wyłącz blokadę
if (isLocked && lockedEnemy && !a0_0x4cd2c3.includes(lockedEnemy)) {
lockedEnemy = null;
isLocked = false;
}
} else {
menu.innerHTML = "<b>Brak danych o graczu</b>";
}
}
setInterval(updateMenu, 50); // Odświeżanie menu co 50ms
// Funkcja do przełączania blokady wroga
function toggleLock() {
const player = findPlayer();
if (!player) return;
if (isLocked) {
lockedEnemy = null;
isLocked = false;
} else {
const closestEnemy = findClosestEnemy(player);
if (closestEnemy) {
lockedEnemy = closestEnemy;
isLocked = true;
}
}
}
// Obsługuje naciśnięcie klawisza "N" do przełączania blokady
document.addEventListener('keydown', (event) => {
if ((event.key === 'n' || event.key === 'N')) {
const player = findPlayer();
if (!player) return;
const closestEnemy = findClosestEnemy(player);
if (closestEnemy) {
toggleLock(); // Zmienianie stanu blokady
toggleState = !toggleState; // Zmiana stanu aktywacji śledzenia
}
}
});
let toggleState = false; // Zmienna stanu śledzenia (włączone/wyłączone)
// Funkcja do aktualizacji pozycji celu (gracza lub wroga)
function a0_0x46e041() {
// Sprawdzanie, czy zablokowany wróg nadal istnieje
if (isLocked && lockedEnemy && !a0_0x4cd2c3.includes(lockedEnemy)) {
lockedEnemy = null;
isLocked = false;
toggleState = false;
}
if (a0_0x153da2 || a0_0x54d6b2) {
const _0x254dd4 = a0_0x4cd833[a0_0x19bfe7];
if (_0x254dd4) {
a0_0x37c8e9 = _0x254dd4['x'];
a0_0x4e5c94 = _0x254dd4['y'];
} else if (toggleState && a0_0x153da2) {
a0_0x4e5c94 -= 10000;
} else {
return;
}
}
let targetX, targetY;
if (toggleState && isLocked && lockedEnemy && a0_0x4cd2c3.includes(lockedEnemy)) {
// Jeśli wróg jest zablokowany, śledź jego pozycję
targetX = lockedEnemy.ox;
targetY = lockedEnemy.oy;
} else {
// W przeciwnym razie śledź kursor
targetX = a0_0x37c8e9;
targetY = a0_0x4e5c94;
}
// Przemieszczanie postaci w stronę celu
if (a0_0xd2a4cf() && (a0_0x3f2f7d || a0_0x258499)) {
const currentX = toggleState ? a0_0x37c8e9 : a0_0x4bef11;
const currentY = toggleState ? a0_0x4e5c94 : a0_0x26fd7e;
if (Math.abs(targetX - currentX) > 0.1 || Math.abs(targetY - currentY) > 0.1) {
if (toggleState) {
a0_0x37c8e9 = targetX;
a0_0x4e5c94 = targetY;
} else {
a0_0x4bef11 = targetX;
a0_0x26fd7e = targetY;
}
const mes = new a0_0xf533a9(a0_0x18962f);
mes.writeUInt8(0x5);
mes.writeInt16(targetX);
mes.writeInt16(targetY);
a0_0x23258b(mes); // Wysyłanie danych do serwera gry
}
}
}
setInterval(a0_0x46e041, 1); // Aktualizowanie pozycji celu co 1ms
setInterval(a0_0x3f427c, 1); // Uruchamianie innej funkcji co 1ms
Editor is loading...
Leave a Comment