СПРОСИ ПРОФИ
👍
0
👎 02

Swf

У меня есть приватный сервер, все файлы доступны. Но столкнулся с такой проблемой: при запуске игры у пользователя появляется ошибка, связанная с работой с социальной сетью. Весь проект заточен под swf-файлы, есть лаунчер, веб-сервер работает нормально, игровой сервер тоже функционирует. Но несмотря на это, у пользователя всё равно возникает сообщение об ошибке — кажется, система не видит пользователя и продолжает ждать взаимодействия с социальной сетью.

При этом человек, который дал мне эти файлы, ничего не объяснил и не подсказал, в чем может быть причина. Хотелось бы понять, как исправить эту проблему.

программисты IT     #1   02 ноя 2025 22:58   Увидели: 5 клиентов, 1 специалист   Ответить
👍
0
👎 0

Ответ Грока:

Причина ошибки и как исправить


Ошибка «система не видит пользователя и продолжает ждать взаимодействия с социальной сетью» возникает потому, что SWF-игра (Flash) интегрирована с социальной сетью (скорее всего VK или Odnoklassniki — популярно для русских SWF-игр 2010-х). Игра ожидает авторизации через API соцсети (OAuth, токен, профиль пользователя) для:

  • Загрузки аватара/ID.
  • Друзей/достижений.
  • Лидербордов/постинга.


На приватном сервере API VK/OK недоступно (нет реального логина), поэтому SWF «застревает» на экране ожидания. Лаунчер/веб-сервер работают, но клиентская часть (SWF) требует соцсеть.

Решение: Эмулировать соцсеть на вашем сервере или деコンパилировать SWF и патчить (байпас). Самый простой — деコンパйл + патч (JPEXS Free Flash Decompiler, бесплатно).

Пошаговое решение: Деコンパйл SWF и байпас авторизации

Инструменты (бесплатно):

  • JPEXS Free Flash Decompiler (github.com/jindrapetrik/jpexs-decompiler) — лучший для редактирования AS3.
  • Ruffle (ruffle.rs) — для тестирования патченного SWF (замена Flash Player).


Шаг Действие Почему?
1. Скачайте JPEXS github.com/jindrapetrik/jpexs-decompiler/releases → ffdec_12.3.2.zip (Windows/Linux/Mac). Разархивируйте, запустите ffdec.bat. Деコンパйлит SWF, редактирует ActionScript (код игры).
2. Откройте SWF File → Open → Выберите главный .swf (main.swf или loader.swf из лаунчера). Ждите деコンパйл (1–5 мин). Извлечёт код, ресурсы, скрипты авторизации.
3. Найдите код соцсети 1. ПКМ на Scripts → Search → Ищите: vk.com, api.vk.com, login.vk.com, ok.ru, connect.ok.ru, ExternalInterface.call, navigateToURL, Social, Auth, VKInit, OKAuth. 2. Откройте найденные скрипты (двойной клик). Код ожидания авторизации — в функциях типа initSocial(), vkAuth(), checkLogin().
4. Патчите код 1. В скрипте авторизации: Найдите проверки if (!vkLoggedIn) или waitForAuth().<br>2. Замените на return true; или vkLoggedIn = true; userId = 1; (фейковый ID).<br>3. ПКМ на функции → Edit → Вставьте код.<br>4. Ctrl+S → Save Modified SWF. Байпас: Игра думает, что авторизован (фейковый профиль).
5. Тестируйте 1. Замените SWF в лаунчере/папке игры.<br>2. Запустите лаунчер → Игра должна пропустить авторизацию.<br>3. Если застряло — повторите поиск по логам (в JPEXS: Tools → Tracer). Если ошибка persists — патчите все SWF (mainlogin.swf и т.д.).


Пример патча (AS3 код):

actionscript
// Было:
if (!VK.Auth.getLoginStatus()) {
    waitForSocialAuth();
}

// Стало:
VK.Auth.setLoginStatus(true);
VK.Auth.getCurrentUser().id = 1;  // Фейк
initGame();

Альтернатива: Эмулятор соцсети (если патч сложный)

1. Настройте прокси/VPN для VK/OK: Используйте ngrok (ngrok.com) — туннелирует локальный сервер под публичный домен (api.yourserver.ngrok.io).
2. Создайте фейк API: Node.js/Express — мок-эндпоинты для /method/auth.signIn, возвращающие токен/ID.

javascript
   app.get('/method/auth.signIn', (req, res) => {
     res.json({ response: { user_id: 1, access_token: 'fake' } });
   });
   

3. В лаунчере укажите ваш ngrok-URL вместо api.vk.com.

Дополнительные фиксы
  • Flash Player Standalone: Для теста SWF — adobe.com (архив Flash Player Projector 32-bit).
  • Ruffle: ruffle.rs/desktop — современный Flash-эмулятор (байпасит локальные ограничения).
  • Если VK/OK заблокированы: VPN (ProtonVPN) или зеркала (vk.com → зеркало).


Тестируйте на локалхосте (XAMPP) — SWF часто требует «сетевой режим» (local-only flag). Если нужны файлы/скрины JPEXS — уточните! Удачи с сервером! 🚀

👍
0
👎 0

Нет это не работает, мне пришлось в принципее делать так чтоб tcp сервер сразу авторизовывал, но скорее всего сама проблема в swf файле.
А это именно сам пнз сити.

`actionscript
override protected function getParams(param1:Object) : Object {
return {
«auth_key»: §-73e§.§-1Ag§(«auth_key», param1),
«access_token»: §-73e§.§-1Ag§(«access_token», param1)
};
}
Нужна прям помощь который сможет помочь, народ найдитесь.

  #3   03 ноя 2025 14:01   Ответить

Задайте свой вопрос программистам –
профессионалам

Сейчас онлайн 75 программистов
Получите ответ профи быстро и бесплатно
ASK.PROFI.RU © 2020-2025