Underground 2 Revived
Chrome과 Firefox에서 Need for Speed Underground 2를 WebGPU로 두고 팬 프로젝트입니다
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Український фан-сайт для гравців Aion: онлайн серверів, розклад подій, калькулятори, лічильники для стріму
й локалізація. Відкривається на https://juniorapi.github.io/aionua/ (GitHub Pages з гілки main).
З 5.10.2026 це нова версія (дизайн «Безодня»): вона переїхала з папки v2/ у корінь, на старі адреси
сторінок. Старий дизайн лишився в історії git.
| Сторінка | Файл | Що вміє |
|---|---|---|
| Головна | index.html | онлайн трьох серверів наживо, найближчі події, пошук інструментів (клавіша /), покажчик усіх інструментів, банер локалізації |
| Розклад | schedule/index.html | шкала «Сьогодні» з лінією поточного часу, тижнева таблиця, перемикач EuroAion / Origin Aion / AionDestiny, фільтри категорій; сервер у посиланні: schedule/?server=origin |
| Кристали, стрижні, божики | crystal_crafting/index.html | три калькулятори рецептів: матеріали на один крафт і на партію до 999 крафтів |
| Біжутерія | craft/index.html | калькулятори біжутерії й матеріалів, точки збору дарриту, опалу, сераміуму, давнього ефіру й фоніки |
| Сувої, зілля, їжа | spc/index.html | чотири калькулятори з ефектами предметів; однакові назви рецептів підписані матеріалом чи пропорцією |
| Енергокінез, ефірокінез | essencetapping/, aethertapping/ | ресурси за расою, регіоном і рівнем навички, пошук, координати [pos:…] з кнопкою копіювання |
| Стигми 4.6 і 4.8 | stigma/, stigmas/ | сторінки в дизайні сайту, а сам калькулятор — оригінальний, у рамці: перемикач версії й мови, для 4.8 — ряд класів; збірка живе в адресі сторінки (stigma/#код, stigmas/#клас/код); на телефоні 4.6 зменшується цілком, а 4.8 ставить слоти над списком |
| Калькулятор чар | aion-4.6-enchantment-calculator/index.html | шанс для кожного з 41 рівня каменю за рідкістю, рівнем предмета й зачаруванням |
| Конвертер ефіру | efir/index.html | сяючий, чистий і очищений ефір у звичайному магічному |
| Solution / Hammer Counter | tempering-solution-counter/, ice-hammer-counter/ | налаштування оверлею (мова підпису, фон, свій підпис), посилання для OBS, прев'ю з кнопками; сам оверлей — overlay.html |
| Локалізація | localization/index.html | інсталятори клієнтів із версією, розміром і датою з релізу GitHub, скрипти перекладу сайтів, інструкція |
Калькулятори стигм — оригінали з stigma/calculator/ і stigmas/<клас>/ у рамці. Усередині рамки вони
ховають власний фон, кнопку «Назад» і підвал (embed.js у їхніх папках), а посилання на збірку беруть
у сторінки через window.stigmaShareLink. Відкриті напряму (старі закладки), вони переходять на сторінку
сайту з тією самою збіркою. Нові сторінки збираються з компонентів DESIGN.md.
euroaion/, originaion/, aiondestiny/ ведуть на schedule/?server=euro|origin|destiny;
файли schedule.json у цих папках лишаються — їх пише збирач;v2/… веде на ту саму сторінку без v2/, з параметрами й #збіркою (у v2/ лише перенаправлення);tempering-solution-counter/ і ice-hammer-counter/ в OBS (window.obsstudio) одразу показують
overlay.html?lang=en з тим самим числом: так джерела «Браузер», налаштовані на стару сторінку,
працюють без змін;stigma/calculator/ і stigmas/<клас>/, відкриті напряму, — див. вище.Сторінки нічого не збирають самі:
aionua-online.borsay86.workers.dev (код у worker/), запасний варіант data.json;euroaion/schedule.json, originaion/schedule.json, aiondestiny/schedule.json
(їх оновлюють fetch_online.py і destiny_schedule.py у GitHub Actions, .github/workflows/fetch.yml);<інструмент>/data.json, перенесені зі скриптів старих сторінок;
іконки предметів — у <інструмент>/images/;localStorage під ключами старих сторінок (waterCount, hammerCount),
тож рахунок переходить разом зі стрімером;localization/dates.js (його оновлюють разом
із релізом), справжні — з релізу localization через GitHub API; скрипти *.user.js
лежать у localization/, бо їхні @updateURL ведуть на
raw.githubusercontent.com/juniorapi/aionua/main/localization/…, тобто саме на цей шлях
у репозиторії. Через raw, а не Pages: Pages розгортається GitHub Actions, і під час збою
Actions (5.10.2026) оновлення стояли в черзі; raw віддає файл із гілки за ~5 хв без Actions.Правила відображення онлайну (коли ховати число, коли стверджувати «офлайн») пояснені в коментарях
assets/js/online.js.
├── index.html головна
├── schedule/index.html розклад
├── crystal_crafting/, craft/, spc/ крафт: index.html + data.json
├── essencetapping/, aethertapping/ збирання: index.html + data.json
├── aion-4.6-enchantment-calculator/, efir/ калькулятори без даних
├── tempering-solution-counter/, ice-hammer-counter/ index.html + overlay.html для OBS
├── localization/ сторінка локалізації, dates.js, скрипти *.user.js, логотипи
├── stigma/, stigmas/ сторінки стигм 4.6 і 4.8; оригінальні калькулятори — stigma/calculator/, stigmas/<клас>/
├── euroaion/, originaion/, aiondestiny/ schedule.json + перенаправлення на розклад
├── v2/ лише перенаправлення зі старих адрес нової версії
├── data.json онлайн для запасного варіанта
├── fetch_online.py, destiny_schedule.py збирачі онлайну й розкладів (GitHub Actions)
├── worker/ воркер Cloudflare з онлайном наживо
├── DESIGN.md дизайн-система «Безодня»: токени, компоненти, правила
└── assets/
├── css/v2.css усі стилі й токени
├── css/overlay.css оверлей лічильника: окремо, щоб OBS не тягнув увесь сайт
├── img/favicon.svg
└── js/
├── home.js точка входу головної
├── schedule-page.js точка входу розкладу
├── online.js сервери й фракції
├── events.js «Найближчі події»
├── search.js пошук інструментів
├── schedule-model.js спільна модель розкладу й переклади назв
├── header.js меню на телефоні
├── format.js множини, час, тривалість
└── tools/ сторінки інструментів
├── craft-page.js точка входу крафту
├── tapping-page.js точка входу збирання
├── recipes.js калькулятор рецепта
├── gathering.js список ресурсів і координати
├── enchant.js калькулятор чар
├── ether.js конвертер ефіру
├── stigma-embed.js рамка калькулятора стигм: адреса, класи, мова, масштаб
├── counter.js сторінка лічильника для стріму
├── counter-overlay.js оверлей для OBS
├── counter-core.js спільне для лічильника й оверлею
├── localization.js реліз і скрипти локалізації
└── common.js лічильник, копіювання, іконки
Без збірки й залежностей: звичайні HTML, CSS і модулі JavaScript.
Мова перемикається кнопками UA/EN у шапці. Вибір лежить у ?lang=en (посиланням можна поділитися)
і в localStorage під ключем aionua:lang, тож решта сторінок відкривається тією ж мовою.
Українська — мова за замовчуванням і живе в самому HTML.
data-en (текст), data-en-html
(розмітка з тегами), data-en-aria-label, data-en-title, data-en-placeholder, data-en-alt,
data-en-content (для <meta name="description">). Їх застосовує localizePage() з
assets/js/i18n.js, яку викликає initHeader().tr("українською", "in English") з assets/js/i18n.js; формати чисел і дат у
format.js уже беруть мову сайту.nameEn, titleEn, labelEn, descriptionEn,
regionEn поруч з українськими. Назви предметів — офіційні з англійського клієнта (звірено з
Aion Codex за ID предмета).assets/js/lang-boot.js у <head> ховає англійську сторінку, доки її не перекладено, щоб вона не
блимала українською.Додаючи текст на сторінку, одразу додайте data-en або tr(): tests/i18n.e2e.mjs падає, якщо
англійська сторінка показує хоч одну українську літеру.
Сторінки чекають, що сайт лежить у підпапці /aionua/, як на GitHub Pages. Найпростіше:
mkdir -p /tmp/site && ln -sfn "$PWD" /tmp/site/aionua
npx http-server /tmp/site -p 8080
# відкрити http://localhost:8080/aionua/
Воркер онлайну відповідає на localhost:8080, тож онлайн буде живий і локально.
node --test tests/*.e2e.mjs
python3 -m unittest tests/test_destiny_schedule.py
Потрібен Playwright. site.e2e.mjs (головна й розклад) підставляє власні дані й фіксує час, тож не
залежить від того, що зараз у data.json і розкладах; tools.e2e.mjs звіряє розрахунки інструментів з їхніми
data.json; stigma-calculators.e2e.mjs перевіряє сторінки стигм з оригінальними калькуляторами (збірку
в адресі, класи, мову, заточку, українські підказки, телефон); redirects.e2e.mjs — старі адреси; i18n.e2e.mjs —
перемикач мови й те, що англійські сторінки (і на телефоні) не мають жодного українського слова.