|
|
|
|
Канал X4: Foundations: «[SOFT] X4:Полезный софт и модули для разработчиков» |
|
|
|
igorVL
65 EGP Рейтинг канала: 6(280) Репутация: 2 Сообщения: 302 Откуда: Москва Зарегистрирован: 04.08.2023
 |
|
| alexalsp : |
|
нет, в сев модно записать для выбранного в проге корабля.
|
Ну так можно вообще много всего понакрутить в сейве . Это не интересно.
А так, получается что пока сам не найдешь объект - будет непонятно где точка отсчета координат в секторе..
Можно так:
- навестись на любую позицию в интересующем секторе
- сохранится
- в сейве найти это наведение и заменить координаты на коорд. брошенки
- запустить игру с этим сейвом.
- наведение (по идее) будет указывать на этот корабль..
В этом мысль поиска была?
добавлено спустя 3 минуты:
А что касается самих ничейных кораблей, так кроме Одиссея - все остальное хлам ненужный. Ради "Оди" - можно и покружить малость, полетать поискать.
А все остальное зачем выискивать самому? Найдутся либо случайно, либо когда флот будет побольше - кто-то по команде "Разведать" наткнется на брошенку и сообщит..
добавлено спустя 43 минуты:
Если наведение сохраняется (а оно должно сохранятся), то можно сделать так:
- найти в сейве где это наведение прописывается.
- добавить в прогу функционал считывания этого места из сейва.
В игре:
- наводимся на любое место и делаем квиксейв.
- в проге читаем только что сохраненный сейв и показываем координаты наведения.
- в игре теперь примерно понимаем куда навелись и куда сделать поправку.
Бинго!
Последний раз редактировалось: igorVL (15:16 10-06-2026), всего редактировалось 3 раз(а) |
|
|
|
alexalsp
542 EGP
      Рейтинг канала: 14(2392) Репутация: 56 Сообщения: 4881
Зарегистрирован: 12.08.2014
 |
|
это слишком много телодвижений
сев открыл показал корабль сохранил наведение на координаты корабля загрузил сев
Но я не знаю как он пишет наведение в сев, пол часа рылся , не нашел.
добавлено спустя 41 секунду:
Короче сев это сейв , кнопка иногда не пробивает ))
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6
Пользуйте мои моды как хотите....
Последний раз редактировалось: alexalsp (15:23 10-06-2026), всего редактировалось 1 раз |
|
|
|
igorVL
65 EGP Рейтинг канала: 6(280) Репутация: 2 Сообщения: 302 Откуда: Москва Зарегистрирован: 04.08.2023
 |
|
| alexalsp : |
|
это слишком много телодвижений
|
Зато безопасно (без модифиед).
Запустил игру для исследования - началась загрузка обнов. Походу 9-й релиз лезет..
добавлено спустя 15 минут:
Ну да, 9.0 версия игры залетела.
Сохранения от 8-й версии спокойно работают. Кто-то говорил что нужно начинать новую игру..
Последний раз редактировалось: igorVL (16:27 10-06-2026), всего редактировалось 2 раз(а) |
|
|
|
alexalsp
542 EGP
      Рейтинг канала: 14(2392) Репутация: 56 Сообщения: 4881
Зарегистрирован: 12.08.2014
 |
|
Да, много изменений, лучше с нуля начать.
добавлено спустя 1 минуту:
| igorVL : |
|
Зато безопасно (без модифиед).
|
Как по мне , надо если делать, то для всех)) Кто захочет. внесет в сев изменения , кто не захочет, так искать будет. Но, как говорится, разработчику виднее, мы свои мысли высказали
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6
Пользуйте мои моды как хотите....
Последний раз редактировалось: alexalsp (17:30 10-06-2026), всего редактировалось 2 раз(а) |
|
|
|
Shadowman
265 EGP
   Рейтинг канала: 5(205) Репутация: 42 Сообщения: 1409 Откуда: Альфа Центавра Зарегистрирован: 03.12.2003
 |
|
Приветствую!
Стим версия, обновлена до 9 релиза сегодня.
Вот такую ошибку вижу.
На 8 релизной - та же ошибка была.
При запуске - требует пересканировать. Не получается.
|
Cкрытый текст (кликните здесь для просмотра)
|
Удалить все моды?
Впрочем, моды только скриптовые, мусора нет, все рабочее.
Последний раз редактировалось: Shadowman (18:15 10-06-2026), всего редактировалось 1 раз |
|
|
|
alexalsp
542 EGP
      Рейтинг канала: 14(2392) Репутация: 56 Сообщения: 4881
Зарегистрирован: 12.08.2014
 |
|
Проверил RC2, ошибка подтверждается. Проверялось на чистой игре.
добавлено спустя 7 минут:
Что то в Камасутре ты не так сделал
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6
Пользуйте мои моды как хотите....
Последний раз редактировалось: alexalsp (18:31 10-06-2026), всего редактировалось 4 раз(а) |
|
|
|
igorVL
65 EGP Рейтинг канала: 6(280) Репутация: 2 Сообщения: 302 Откуда: Москва Зарегистрирован: 04.08.2023
 |
|
| Shadowman : |
|
Вот такую ошибку вижу.
|
Такой ошибки у себя не наблюдаю..
Чтобы разобраться - нужен сэйв.
На вскидку, думаю что нет какого-то числа или поменяли формат чего-то.. Обычно, такие ошибки выкидываются при парсинге и преобразованиях типов (числовых).
|
|
|
|
alexalsp
542 EGP
      Рейтинг канала: 14(2392) Репутация: 56 Сообщения: 4881
Зарегистрирован: 12.08.2014
 |
|
Я проверил на своей альфе, которую в начале скидывал, прочла сейв без проблем.
Смотри у себя и вроде перед RC2 тоже все нормально работало.
добавлено спустя 4 минуты:
эта работает без проблем
https://www.elite-games.ru/conference/viewtopic.php?p=3770609#3770609
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6
Пользуйте мои моды как хотите....
Последний раз редактировалось: alexalsp (18:40 10-06-2026), всего редактировалось 2 раз(а) |
|
|
|
igorVL
65 EGP Рейтинг канала: 6(280) Репутация: 2 Сообщения: 302 Откуда: Москва Зарегистрирован: 04.08.2023
 |
|
| alexalsp : |
|
эта работает без проблем
|
Посмотрю потом что произошло...
К вопросу о взятии координат наведения: я выяснил где они сохраняются и как их интерпретировать:
|
Cкрытый текст (кликните здесь для просмотра)
|
добавлено спустя 34 минуты:
По ошибке: у меня все работает без проблем. На 9-й версии игры увеличилось кол-во кораблей.
В остальном все находит и читает без ошибок:
|
Cкрытый текст (кликните здесь для просмотра)
|
Читалка сейвов тоже все в порядке:
|
Cкрытый текст (кликните здесь для просмотра)
|
В софт нужно встроить механизм записи лога (или вывода сообщения) - в каком месте возникает ошибка и почему.
Очевидно, что чего-то либо нет в БД игры, что хочет прочитать сейв, либо изменен формат/нахождение/уровень вложенности, а может быть и сам DAT каким-то модом, и т.п..
Сложно найти то чего нет (ошибку) - нужно что-то исходное. Save-файл хотя бы.
Последний раз редактировалось: igorVL (19:24 10-06-2026), всего редактировалось 1 раз |
|
|
|
alexalsp
542 EGP
      Рейтинг канала: 14(2392) Репутация: 56 Сообщения: 4881
Зарегистрирован: 12.08.2014
 |
|
Смотри паресе , у меня нет последних исходников
Скорее всего ошибка возникает при попытке преобразовать строку в число, когда строка не соответствует числовому формату.
X4CatParser.LoadShips()
| Код: |
| foreach (XElement root in XDocument.Load(new MemoryStream(datReader.Read(cat))).Root.Elements()) |
Проблема: datReader.Read(cat) возвращает null или пустой массив, но код не проверяет.
|
Cкрытый текст (кликните здесь для просмотра)
| Код: |
private void LoadShips()
{
if (catDataList.LoadByRegex(x4Path + "\\01.cat", new Regex("^assets/units/size_.+/macros/ship")) == 0)
return;
foreach (CatData cat in (List<CatData>)(object)catDataList)
{
byte[] data = datReader.Read(cat);
if (data == null || data.Length == 0) continue; // <--- ДОБАВИТЬ ЭТУ ПРОВЕРКУ
var root = XDocument.Load(new MemoryStream(data)).Root;
if (root == null) continue; // <--- И ЭТУ
foreach (XElement rootElement in root.Elements())
{
// остальной код...
}
}
} |
|
LoadSectors()
|
Cкрытый текст (кликните здесь для просмотра)
| Код: |
private void LoadSectors()
{
catDataList.LoadCatFile(x4Path + "\\08.cat");
CatData sectorsCat = catDataList.Search("libraries", "mapdefaults");
if (sectorsCat == null) return; // <--- ДОБАВИТЬ
byte[] data = datReader.Read(sectorsCat);
if (data == null || data.Length == 0) return; // <--- ДОБАВИТЬ
var root = XDocument.Load(new MemoryStream(data)).Root;
if (root == null) return; // <--- ДОБАВИТЬ
foreach (XElement item in root.Elements())
{
// остальной код...
}
}
|
|
XDocument.Load получает пустой или поврежденный MemoryStream и вместо нормальной XML-ошибки выбрасывает FormatException с текстом "входная строка имеет неверный формат".
или что то другое , более банальное.
добавлено спустя 1 минуту:
пока сочинял , ты уже проверил ))
добавлено спустя 3 минуты:
Не знаю, я на всех севах и старыз и новых проверил , одна и та же ошибка
добавлено спустя 21 минуту:
скинь исходники, у себя скомпильну ))
добавлено спустя 1 минуту:
сейвы в 90 одинаковые, смыл в них .
ща ради интереса еще раз загружу игру и сделаю пару сейвов ))
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6
Пользуйте мои моды как хотите....
Последний раз редактировалось: alexalsp (19:54 10-06-2026), всего редактировалось 4 раз(а) |
|
|
|
igorVL
65 EGP Рейтинг канала: 6(280) Репутация: 2 Сообщения: 302 Откуда: Москва Зарегистрирован: 04.08.2023
 |
|
| alexalsp : |
|
datReader.Read(cat) возвращает null
|
Это нормальное поведение. Результат на null должен проверять внешний код.
Вот здесь да, нужно проверить:
| alexalsp : |
| Код: |
| if (sectorsCat == null) return; // <--- ДОБАВИТЬ |
|
я почему то забыл. В остальных случаях не нужно.
добавлено спустя 4 минуты:
Но дело в том, что это оригинальные каталоги X4 - они не могут быть NULL. Иначе это уже поломанная игра.
Скорее всего ошибка где-то дальше. Или в самом сейве.
После этой версии изменился только ридер. Добавилось чтение координат (правильное). Думаю, где-то здесь затык.
Скинь сейв "поломанный".
Последний раз редактировалось: igorVL (20:08 10-06-2026), всего редактировалось 1 раз |
|
|
|
alexalsp
542 EGP
      Рейтинг канала: 14(2392) Репутация: 56 Сообщения: 4881
Зарегистрирован: 12.08.2014
 |
|
кстати , проверь еще на сейвах от Настраиваемой игры.
| igorVL : |
Скинь сейв "поломанный".
|
Они не поломанные ))
Вот сейвый свежие, то же самое
https://www.mediafire.com/file/6e9mv8u3ai8baq6/quicksave.xml.gz/file
https://www.mediafire.com/file/rcp9ads6s6y7386/save_001.xml.gz/file
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6
Пользуйте мои моды как хотите....
Последний раз редактировалось: alexalsp (20:16 10-06-2026), всего редактировалось 1 раз |
|
|
|
igorVL
65 EGP Рейтинг канала: 6(280) Репутация: 2 Сообщения: 302 Откуда: Москва Зарегистрирован: 04.08.2023
 |
|
| alexalsp : |
|
Они не поломанные ))
|
Ну, в смысле те, на которых прога сыпется в ошибку. Не то что сами сейвы поломанные..
Оба твоих сэйва спокойно прочитаны. В коде ничего не менял:
|
Cкрытый текст (кликните здесь для просмотра)
|
добавлено спустя 16 минут:
В шапке темы самая последняя версия X4 Abandoned Ships (v.3), которая у меня работает без проблем, даже на чужих сэйвах. Проверяем!
Последний раз редактировалось: igorVL (20:49 10-06-2026), всего редактировалось 1 раз |
|
|
|
Shadowman
265 EGP
   Рейтинг канала: 5(205) Репутация: 42 Сообщения: 1409 Откуда: Альфа Центавра Зарегистрирован: 03.12.2003
 |
|
Даже без выбора файла сейва ошибка - та же.
Прога предлагает просканировайть файлы игры - ок. И через пару сек - ошибка.
До сейвов дело не доходит.
|
|
|
|
igorVL
65 EGP Рейтинг канала: 6(280) Репутация: 2 Сообщения: 302 Откуда: Москва Зарегистрирован: 04.08.2023
 |
|
| Shadowman : |
|
Прога предлагает просканировайть файлы игры - ок. И через пару сек - ошибка.
|
Окей, подумаю над этим..
У меня сканируется без проблем (чистая 9-я версия игры).
|
|
|
|
Shadowman
265 EGP
   Рейтинг канала: 5(205) Репутация: 42 Сообщения: 1409 Откуда: Альфа Центавра Зарегистрирован: 03.12.2003
 |
|
Таки в папке extensions что-то мешало.
Удалил все, оставил только ДЛЦ оригинала - просканировало
UPD: Вычислил, что у меня мешает загрузиться.
"Options Helper" author="Chem O`Dun"
UPD: Попробовал загрузить сейв - та же ошибка.
И мои сейвы, и Алекса выше скачал и попробовал.
Прога именно из шапки, скачивал полчаса-час назад.
Последний раз редактировалось: Shadowman (22:20 10-06-2026), всего редактировалось 4 раз(а) |
|
|
|
igorVL
65 EGP Рейтинг канала: 6(280) Репутация: 2 Сообщения: 302 Откуда: Москва Зарегистрирован: 04.08.2023
 |
|
| Shadowman : |
|
"Options Helper" author="Chem O`Dun"
|
Получается, какие-то символы где-то не пролазят...
Нужно понять в каком месте.
добавлено спустя 31 минуту:
Запускайте эту версию и покажите текст ошибки:
Последний раз редактировалось: igorVL (23:10 10-06-2026), всего редактировалось 1 раз |
|
|
|
alexalsp
542 EGP
      Рейтинг канала: 14(2392) Репутация: 56 Сообщения: 4881
Зарегистрирован: 12.08.2014
 |
|
тоже самое , сделай лог в файл что бы видно было проблемы
FindAbandonedShips
| Код: |
coordinates = new Coordinates
{
X = float.Parse(((string)xElement2.Attribute("x")) ?? "0"),
Y = float.Parse(((string)xElement2.Attribute("y")) ?? "0"),
Z = float.Parse(((string)xElement2.Attribute("z")) ?? "0")
}; |
TryParse вместо Parse для избежания исключений:
Попробуй на это
| Код: |
coordinates = new Coordinates
{
X = float.Parse(((string)xElement2.Attribute("x")) ?? "0", System.Globalization.CultureInfo.InvariantCulture),
Y = float.Parse(((string)xElement2.Attribute("y")) ?? "0", System.Globalization.CultureInfo.InvariantCulture),
Z = float.Parse(((string)xElement2.Attribute("z")) ?? "0", System.Globalization.CultureInfo.InvariantCulture)
};
|
или с TryParse
| Код: |
float x = 0, y = 0, z = 0;
float.TryParse((string)xElement2.Attribute("x") ?? "0", System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out x);
float.TryParse((string)xElement2.Attribute("y") ?? "0", System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out y);
float.TryParse((string)xElement2.Attribute("z") ?? "0", System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out z);
coordinates = new Coordinates { X = x, Y = y, Z = z };
|
Региональные настройки пойди поймай у кого какие.
| Код: |
| <position x="123.456" y="789.012" z="345.678"/> |
Когда float.Parse() выполняется на системе с русской локалью, он ожидает запятую, а встречает точку - и выбрасывает исключение "Входная строка имела неверный формат"
В файлах сохранения X4 координаты записаны с точкой в качестве десятичного разделителя (например, x="123.456"). Но float.Parse() без указания культуры использует текущие региональные настройки системы.
У пользователей с русской, немецкой, французской и другими локалями (где десятичный разделитель - запятая) парсинг чисел с точкой вызывает исключение "Входная строка имела неверный формат".
Возможно у тебя работает, потому что на системе установлена английская/американская локаль (разделитель - точка).
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6
Пользуйте мои моды как хотите....
Последний раз редактировалось: alexalsp (01:56 11-06-2026), всего редактировалось 7 раз(а) |
|
|
|
igorVL
65 EGP Рейтинг канала: 6(280) Репутация: 2 Сообщения: 302 Откуда: Москва Зарегистрирован: 04.08.2023
 |
|
Да, наверное..
добавлено спустя 2 минуты:
Только Save-файл тут не причем. Как выяснилось, ошибка происходит на этапе сканирования, т.е. чтения DAT-файлов игры. А там ничего не парсится...
добавлено спустя 1 минуту:
| alexalsp : |
|
на системе установлена английская/американская локаль (разделитель - точка)
|
Да, у меня именно так. У любого программера должно быть так по умолчанию .
Иначе с запятыми воевать устанешь..
Последний раз редактировалось: igorVL (02:01 11-06-2026), всего редактировалось 3 раз(а) |
|
|
|
alexalsp
542 EGP
      Рейтинг канала: 14(2392) Репутация: 56 Сообщения: 4881
Зарегистрирован: 12.08.2014
 |
|
На чтении сейва ошибка. Даты читаются и создаются списки, на этом чтение датов закончена до обновления нового или мода. Работа с севом использует списки. Или полсе этого где то даты читаются еще при сканировании сейва?
Я такого не помню...
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6
Пользуйте мои моды как хотите....
Последний раз редактировалось: alexalsp (02:05 11-06-2026), всего редактировалось 1 раз |
|
|
|
|
|
|
|
|
Канал X4: Foundations: «[SOFT] X4:Полезный софт и модули для разработчиков» |
|
|