Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » [SOFT] X4:Полезный софт и модули для разработчиков | страница 5
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 5 из 7
На страницу: Пред.  1, 2, 3, 4, 5, 6, 7  След. | Все страницы
Поиск в этой теме:
Канал X4: Foundations: «[SOFT] X4:Полезный софт и модули для разработчиков»
igorVL
 65 EGP

Рейтинг канала: 6(280)
Репутация: 2
Сообщения: 302
Откуда: Москва
Зарегистрирован: 04.08.2023
alexalsp :
нет, в сев модно записать для выбранного в проге корабля.

Ну так можно вообще много всего понакрутить в сейве Хы... . Это не интересно.
А так, получается что пока сам не найдешь объект - будет непонятно где точка отсчета координат в секторе..

Можно так:
- навестись на любую позицию в интересующем секторе
- сохранится
- в сейве найти это наведение и заменить координаты на коорд. брошенки
- запустить игру с этим сейвом.
- наведение (по идее) будет указывать на этот корабль..

В этом мысль поиска была?

добавлено спустя 3 минуты:
А что касается самих ничейных кораблей, так кроме Одиссея - все остальное хлам ненужный. Ради "Оди" - можно и покружить малость, полетать поискать.
А все остальное зачем выискивать самому? Найдутся либо случайно, либо когда флот будет побольше - кто-то по команде "Разведать" наткнется на брошенку и сообщит.. Улыбка

добавлено спустя 43 минуты:
Если наведение сохраняется (а оно должно сохранятся), то можно сделать так:
- найти в сейве где это наведение прописывается.
- добавить в прогу функционал считывания этого места из сейва.

В игре:
- наводимся на любое место и делаем квиксейв.
- в проге читаем только что сохраненный сейв и показываем координаты наведения.
- в игре теперь примерно понимаем куда навелись и куда сделать поправку.

Бинго! Хы...

Последний раз редактировалось: igorVL (15:16 10-06-2026), всего редактировалось 3 раз(а)
    Добавлено: 15:16 10-06-2026   
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 раз
    Добавлено: 15:23 10-06-2026   
igorVL
 65 EGP

Рейтинг канала: 6(280)
Репутация: 2
Сообщения: 302
Откуда: Москва
Зарегистрирован: 04.08.2023
alexalsp :
это слишком много телодвижений

Зато безопасно (без модифиед).

Запустил игру для исследования - началась загрузка обнов. Походу 9-й релиз лезет..

добавлено спустя 15 минут:
Ну да, 9.0 версия игры залетела.
Сохранения от 8-й версии спокойно работают. Кто-то говорил что нужно начинать новую игру..

Последний раз редактировалось: igorVL (16:27 10-06-2026), всего редактировалось 2 раз(а)
    Добавлено: 16:27 10-06-2026   
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 раз(а)
    Добавлено: 17:30 10-06-2026   
Shadowman
 265 EGP


Рейтинг канала: 5(205)
Репутация: 42
Сообщения: 1409
Откуда: Альфа Центавра
Зарегистрирован: 03.12.2003
Приветствую!
Стим версия, обновлена до 9 релиза сегодня.
Вот такую ошибку вижу.
На 8 релизной - та же ошибка была.
При запуске - требует пересканировать. Не получается.
 Cкрытый текст   (кликните здесь для просмотра)



Удалить все моды?
Впрочем, моды только скриптовые, мусора нет, все рабочее.

Последний раз редактировалось: Shadowman (18:15 10-06-2026), всего редактировалось 1 раз
    Добавлено: 18:13 10-06-2026   
alexalsp
 542 EGP


Модератор
Рейтинг канала: 14(2392)
Репутация: 56
Сообщения: 4881

Зарегистрирован: 12.08.2014
Проверил RC2, ошибка подтверждается. Проверялось на чистой игре.

добавлено спустя 7 минут:
igorVL :


Что то в Камасутре ты не так сделал Хы...
_________________
CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6

Пользуйте мои моды как хотите....

Последний раз редактировалось: alexalsp (18:31 10-06-2026), всего редактировалось 4 раз(а)
    Добавлено: 18:31 10-06-2026   
igorVL
 65 EGP

Рейтинг канала: 6(280)
Репутация: 2
Сообщения: 302
Откуда: Москва
Зарегистрирован: 04.08.2023
Shadowman :
Вот такую ошибку вижу.

Такой ошибки у себя не наблюдаю..
Чтобы разобраться - нужен сэйв.

На вскидку, думаю что нет какого-то числа или поменяли формат чего-то.. Обычно, такие ошибки выкидываются при парсинге и преобразованиях типов (числовых).
    Добавлено: 18:33 10-06-2026   
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 раз(а)
    Добавлено: 18:40 10-06-2026   
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 раз
    Добавлено: 19:24 10-06-2026   
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 раз(а)
    Добавлено: 19:54 10-06-2026   
igorVL
 65 EGP

Рейтинг канала: 6(280)
Репутация: 2
Сообщения: 302
Откуда: Москва
Зарегистрирован: 04.08.2023
alexalsp :
datReader.Read(cat) возвращает null

Это нормальное поведение. Результат на null должен проверять внешний код.

Вот здесь да, нужно проверить:
alexalsp :
Код:
if (sectorsCat == null) return; // <--- ДОБАВИТЬ

я почему то забыл. В остальных случаях не нужно.

добавлено спустя 4 минуты:
Но дело в том, что это оригинальные каталоги X4 - они не могут быть NULL. Иначе это уже поломанная игра.
Скорее всего ошибка где-то дальше. Или в самом сейве.

alexalsp :
эта работает без проблем
https://www.elite-games.ru/conference/viewtopic.php?p=3770609#3770609

После этой версии изменился только ридер. Добавилось чтение координат (правильное). Думаю, где-то здесь затык.
Скинь сейв "поломанный".

Последний раз редактировалось: igorVL (20:08 10-06-2026), всего редактировалось 1 раз
    Добавлено: 20:08 10-06-2026   
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 раз
    Добавлено: 20:14 10-06-2026   
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 раз
    Добавлено: 20:49 10-06-2026   
Shadowman
 265 EGP


Рейтинг канала: 5(205)
Репутация: 42
Сообщения: 1409
Откуда: Альфа Центавра
Зарегистрирован: 03.12.2003
Даже без выбора файла сейва ошибка - та же.
Прога предлагает просканировайть файлы игры - ок. И через пару сек - ошибка.
До сейвов дело не доходит.
    Добавлено: 21:48 10-06-2026   
igorVL
 65 EGP

Рейтинг канала: 6(280)
Репутация: 2
Сообщения: 302
Откуда: Москва
Зарегистрирован: 04.08.2023
Shadowman :
Прога предлагает просканировайть файлы игры - ок. И через пару сек - ошибка.

Окей, подумаю над этим..
У меня сканируется без проблем (чистая 9-я версия игры).
    Добавлено: 21:54 10-06-2026   
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 раз(а)
    Добавлено: 22:00 10-06-2026   
igorVL
 65 EGP

Рейтинг канала: 6(280)
Репутация: 2
Сообщения: 302
Откуда: Москва
Зарегистрирован: 04.08.2023
Shadowman :
"Options Helper" author="Chem O`Dun"

Получается, какие-то символы где-то не пролазят...
Нужно понять в каком месте.

добавлено спустя 31 минуту:
Shadowman :

alexalsp :

Запускайте эту версию и покажите текст ошибки:

X4_Aband_Ships_bg_fund.7z
 Описание:
Debug
 Имя файла:  X4_Aband_Ships_bg_fund.7z
 Размер файла:  405.71 KB
 Скачано:  31 раз(а)


Последний раз редактировалось: igorVL (23:10 10-06-2026), всего редактировалось 1 раз
    Добавлено: 23:10 10-06-2026   
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 раз(а)
    Добавлено: 01:33 11-06-2026   
igorVL
 65 EGP

Рейтинг канала: 6(280)
Репутация: 2
Сообщения: 302
Откуда: Москва
Зарегистрирован: 04.08.2023
Да, наверное..

добавлено спустя 2 минуты:
Только Save-файл тут не причем. Как выяснилось, ошибка происходит на этапе сканирования, т.е. чтения DAT-файлов игры. А там ничего не парсится...

добавлено спустя 1 минуту:
alexalsp :
на системе установлена английская/американская локаль (разделитель - точка)

Да, у меня именно так. У любого программера должно быть так по умолчанию Подмигиваю.
Иначе с запятыми воевать устанешь..

Последний раз редактировалось: igorVL (02:01 11-06-2026), всего редактировалось 3 раз(а)
    Добавлено: 02:01 11-06-2026   
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 раз
    Добавлено: 02:02 11-06-2026   
Канал X4: Foundations: «[SOFT] X4:Полезный софт и модули для разработчиков»
На страницу: Пред.  1, 2, 3, 4, 5, 6, 7  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Что молчишь, как будто клавиатуру проглотил.... (BuH)

  » [SOFT] X4:Полезный софт и модули для разработчиков | страница 5
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18