6 Jun, 2013 @ 9:30am
bad serial number given in setup как исправить?!
От имени админестратора запускал! Кэш проверял, но ничего не помогло… только сегодня купил игру и очень хочу поиграть, но ни одна игра (Arma 2, Arma 2 Oa, Arma 2 Day Z) не запускается и выдает ошибку: “bad serial number given in setup”
Date Posted: 6 Jun, 2013 @ 9:30am
Posts: 7
С основами по использованию Wine можно ознакомиться здесь: https://noostyche.ru/blog/2020/04/30/ispolzovanie-wine-dlya-zapuska-windows-programm-v-linux/
На Wine и Proton проблема характерна для Arma: Cold War Assault (Operation Flashpoint), Arma 1 и 2, кроме Arma 2: Operation Arrowhead (с ней всё в порядке). Она заключается в том, что установочный скрипт (xxxxx_install.vdf) не может сгенерировать специальный код в шестнадцатеричной системе счисления из ключа (серийного номера) игры и подставить его в реестр Windows, то есть в файл реестра в префиксе. Решение заключается в генерации кода из лицензионного ключа и добавлении его в реестр вручную.
Генератор кода из ключа можно подсмотреть здесь: https://github.com/ValveSoftware/Proton/issues/767#issuecomment-508957522
Альтернативный вариант решения проблемы: https://github.com/ValveSoftware/Proton/issues/1308
Генератор кода представлен скриптом на языке perl:
echo 1234-56789-ABCDE-FGHIJ-KLMNO | perl -ne 's/-//g; tr/IO/10/; for $i (0..2) { $res = 0; for $j (0..7) { $res += index("0123456789ABCDEFGHJKLMNPRSTVWXYZ", substr($_, $i * 8 + $j, 1)) << (5 * $j); }; printf("%010x", $res); }; print("n");'
Примечание: Интерпретатор perl всё ещё присутствует во многих дистрибутивах Linux, поэтому команду можно выполнить в терминале и сразу получить результат. Альтернативным вариантом является возможность воспользоваться онлайн-сервисом.
В первом фрагменте команды можно увидеть буквенно-цифровую строку из 24 символов — здесь должен быть ваш лицензионный ключ игры, который можно посмотреть в Steam: ПКМ на игре в «Библиотеке» / Управление / Цифровые ключи.
После выполнения команды в выводе терминала окажется код подобный этому: 41cc520c4183dcd62d4905ab49c831
Это 15 пар символов в шестнадцатеричной системе счисления. Именно этот код необходимо добавить в реестр префикса игры.
Чтобы префикс был создан, нужно запустить игру один раз, полюбоваться на ошибку и закрыть её.
Для Arma: Cold War Assault префикс и файл реестра по умолчанию располагаются здесь:
/home/$USER/.local/share/Steam/steamapps/compatdata/65790/pfx/system.reg
Для обычной Arma 2:
/home/$USER/.local/share/Steam/steamapps/compatdata/33910/pfx/system.reg
Примечание: Номером префикса является ID игры в Steam.
Отредактировать файл реестра можно двумя способами: через графическую Wine-программу regedit и через редактирование обычным текстовым редактором (nano, gedit, kate и подобными).
Примечание по Arma 2.
С этой игрой есть довольно неприятная особенность. Установочно-конфигурационный скрипт 33910_install.vdf, который находится в корневом каталоге игры, при запуске игры каждый раз стирает(!) запись ключа (шестнадцатеричное значение) из реестра, что приводит к той самой «Bad serial given in setup». Чтобы он не осуществлял эту диверсию, необходимо лишить пользователя прав его выполнять и читать. Пример:
sudo chmod 000 "/home/$USER/.local/share/Steam/steamapps/common/Arma 2/33910_install.vdf"
Или через графический интерфейс:
Всё, диверсионная деятельность скрипта пресечена. Теперь можно приступить к редактированию реестра.
Wine. Редактирование файла реестра с помощью regedit.
Начнём с Arma 2.
WINEPREFIX="/home/$USER/.local/share/Steam/steamapps/compatdata/33910/pfx" wine regedit
Примечание: Если будет предложено установить в префикс Mono и Gecko — отказываемся, для префикса игры это ни к чему.
- Перейти в HKEY_LOCAL_MACHINESoftwareWow6432Nodebohemia interactive studioarma 2
- Выбрать строку key.
- ПКМ / Изменить…
- В появившемся окне в текстовое поле переписать сгенерированный код. В данном примере это 41cc520c4183dcd62d4905ab49c831.
- Подтвердить изменения.
- Закрыть окно «Редактора реестра».
Теперь можно запустить игру и ошибки «Bad serial given in setup» более не будет.
Для Arma: Cold War Assault алгоритм действий тот же. Разница только в пути до префикса и до записи в реестре.
WINEPREFIX="/home/$USER/.local/share/Steam/steamapps/compatdata/65790/pfx" wine regedit
Путь до записи в реестре: HKEY_LOCAL_MACHINESoftwareWow6432Nodebohemia interactive studiocoldwarassault
Редактирование реестра текстовым редактором.
Для Arma 2.
Открываем файл реестра, как текстовый документ:
/home/$USER/.local/share/Steam/steamapps/compatdata/33910/pfx/system.reg
Необходимо найти строку:
[Software\Wow6432Node\bohemia interactive studio\arma 2]
Ниже будет строка:
«key»=hex:
Это то самое место, куда нужно скопировать сгенерированный код. Пример записи:
«key»=hex:41,cc,52,0c,41,83,dc,d6,2d,49,05,ab,49,c8,31
Важно обратить внимание, что код разбит на пары символов, которые отделены запятой без пробела.
Сохранить изменения в файле.
Теперь проблема с «Bad serial given in setup» решена.
Для Arma: Cold War Assault.
/home/$USER/.local/share/Steam/steamapps/compatdata/65790/pfx/system.reg
Искомый блок в реестре:
[Software\Wow6432Node\bohemia interactive studio\coldwarassault]
В строку «KEY»=hex: прописать сгенерированный код:
«KEY»=hex:41,cc,52,0c,41,83,dc,d6,2d,49,05,ab,49,c8,31
Сохранить изменения в файле.
Готово.
Теперь можно без проблем наслаждаться играми серии Arma на Linux.
- Home
- Arma 2: British Armed Forces
-
Steam
Arma 2: British Armed Forces
Steam
There are several possible fixes for this issue.
First, run Arma 2 once. Then try to run Arma BAF(without beta or DayZ). If that won’t help you can try to verify game cache of the Arma 2 and Arma OA.
1.) If that will not help, follow this guide:
- RUN STEAM AS ADMINISTRATOR
- Exit Steam.
- Right-click on Steam icon.
- Left-click on “Run As Administrator”.
- If the problem persists, reboot your computer and try the procedure again.
2.) DELETE ARMA 2 BAF REGISTRY ENTRIES
- Exit Steam, open Start menu and type this directly into the menu (in Windows XP, you will have to click on “Run” first) regedit
- Press Enter.
- In regedit window, click on HKEY_LOCAL_MACHINE.
- Press CTRL+F to bring up search.
- Look for “ArmA” (without the quotes).
- Delete all the “ArmA” entries you find from the registry.
- Run Steam as Administrator.
- Right-click on the game in Steam Library.
- Click on “Properties”.
- Select “Local files” tab and click on “Verify integrity of game cache files” button.
- Please wait, the process can take several minutes.
3) REINSTALL STEAM
- Go to Steam’s installation folder.
- Delete everything there except “steam.exe” and “steamapps” folder.
- Run “steam.exe” – Steam will reinstall itself automatically.
gagarin126rus
Ученик
(172),
закрыт
10 лет назад
У меня лецензия arma 2 Oa и arma2 пробовал заходить и выдаёт ошибку.
Лучший ответ
Владимир Шеховцов
Ученик
(119)
10 лет назад
Неправильно установлен мод или данный ключ игры уже используется. Попробуйте отключить интернет и запустить игру если выдаст эту ошибку то
1. Необходимо выйти из Steam,
2. Запустить его заново с правами администратора.
3. Все можно запускать.
Остальные ответы
Похожие вопросы
using System;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Windows.Forms;
public class KeyConverter {
private static readonly String szTemplate = "0123456789ABCDEFGHJKLMNPRSTVWXYZ";
public String getHexKey(String arma2key) {
var upperkey = arma2key.Trim().ToUpper().Replace('O', '0').Replace('I', '1').Replace("-", "");
var bResult = new Byte[15];
if (upperkey.Length != 24)
throw new Exception("Invalid key length");
for (var i = 0; i < 3; ++i) {
UInt64 qwResult = 0;
for (var j = 0; j < 8; ++j) {
var cChar = upperkey[i * 8 + j];
var szPos = szTemplate.IndexOf(cChar);
qwResult |= (UInt64)szPos << (j * 5);
}
for (var j = 0; j < 5; ++j) {
bResult[i * 5 + 5 - 1 - j] = (Byte)(qwResult & 0xFF);
qwResult >>= 8;
}
}
return BitConverter.ToString(bResult); ;
}