Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 0
nexusik1994

проблема с лаунчером

здраствуйте! нашел лаунчер с автообновлением  на просторах гитхаба 
но при запуске возникает проблема с обновлением файлов 

лаунчер просит файл version.xml 
и проблема в том что неизвостно наполнение данного файла чтоб он загружал мой мод клиентам 

файл main.cs прилаживаю

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Share this post


Link to post
Share on other sites

19 answers to this question

Recommended Posts

  • 0
58 минут назад, nexusik1994 сказал:

здраствуйте! нашел лаунчер с автообновлением  на просторах гитхаба 
но при запуске возникает проблема с обновлением файлов 

лаунчер просит файл version.xml 
и проблема в том что неизвостно наполнение данного файла чтоб он загружал мой мод клиентам 

файл main.cs прилаживаю

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

 0

Dictionary<string, string> tmp = new Dictionary<string, string>();
                    string innerText = xmlNodeList.Item(index).SelectSingleNode("name").InnerText;
                    tmp["md5"] = xmlNodeList.Item(index).SelectSingleNode("md5").InnerText;
                    tmp["path"] = xmlNodeList.Item(index).SelectSingleNode("path").InnerText;

Share this post


Link to post
Share on other sites









  • 0
34 минуты назад, r1s1us сказал:

Dictionary<string, string> tmp = new Dictionary<string, string>();
                    string innerText = xmlNodeList.Item(index).SelectSingleNode("name").InnerText;
                    tmp["md5"] = xmlNodeList.Item(index).SelectSingleNode("md5").InnerText;
                    tmp["path"] = xmlNodeList.Item(index).SelectSingleNode("path").InnerText;

ответ лаунчера 

недопустимые данные на корневом уровне строка 1 позиция 1

Share this post


Link to post
Share on other sites
  • 0

nexusik1994 смотрим дословно:

 xmlDocument.Load(UpdatesURL + "version.xml");

по указанной URL-ссылке открыть version.xml

XmlNodeList xmlNodeList = xmlDocument.SelectNodes("/updates/data");

в открытом файле выбрать и перейти в раздел xml: updates - data

далее

for (int index = 0; index < xmlNodeList.Count; ++index)

цикл, т.е. для каждого элемента изв data в открывшемся разделе выполнить следующее:

создаем массив (словарь из записей)

Dictionary<string, string> tmp = new Dictionary<string, string>();
string innerText = xmlNodeList.Item(index).SelectSingleNode("name").InnerText;

выбираем первый попавшийся объект по тексту name

 tmp["md5"] = xmlNodeList.Item(index).SelectSingleNode("md5").InnerText;
                    tmp["path"] = xmlNodeList.Item(index).SelectSingleNode("path").InnerText;

выбираем первый попавшийся объект по тексту md5 и path, и записываем в соответствующие блоки нашего словаря(массива)

 versionsList[innerText] = tmp;

присваиваем переменной значение нашего словаря из элементов md5 и patch

 return versionsList;

возвращаем функции корректное значение.
Т.е. чисто в теории нужно что-то типа такого

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<updates>
	<data>
		<name>1</name>
        <md5>1111</md5>
        <path>51</path>
	</data>
	<data>
		<name>2</name>
        <md5>2222</md5>
        <path>52</path>
	</data>
	<data>
		<name>3</name>
        <md5>3333</md5>
        <path>53</path>
	</data>
	<data>
		<name>4</name>
        <md5>4444</md5>
        <path>54</path>
	</data>	
</updates>

P.S. я не знаток, могу ошибаться

Edited by 123new (see edit history)

Share this post


Link to post
Share on other sites
  • 0

123new мой пример 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<updates>
    <data>
        <name>dayz.pbo</name>
        <md5>84E1000731B4BE72F8D4046E53AEEB76</md5>
        <path>@dayz_epoch/addons/</path>
    </data>
</updates>

но при запуске визуал начинает ругатся  на  main.cs

                    if (localFiles == null || !localFiles.ContainsKey(srvFile) || serverVersion[srvFile]["md5"] != localFiles[srvFile])

исключение не обработано

 

System.Collections.Generic.KeyNotFoundException: "Данный ключ отсутствует в словаре."
 

Share this post


Link to post
Share on other sites
  • 0

Ну лаунчер собирается без каких либо ошибок, а то что не хватает тебе version в ней должна иметь инфу о обнове для клиента и тд если это лаунчер с автообнов.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Share this post


Link to post
Share on other sites
  • 0

Ищи полноценную версию со всеми недостающими деталями конструктора либо сам посмотри гайды и пересобери данный конструктор на своё усмотрение.

Share this post


Link to post
Share on other sites
  • 0

DimitriPokki то что нашел это все тот недостающий файл был у автора на хостинге и доступа к нему уже нету вот и прошу помощи  как сделать этот недостающий файл(

Share this post


Link to post
Share on other sites
  • 0

nexusik1994 Ну таких файлов по крайней мере должны быть 2, 1 на стороне хостинга в которой будет инфа о новой версии доступной а другой на клиенте что будет информировать что у вас старая версия и вы должны обновится.

Share this post


Link to post
Share on other sites
  • 0

действительно сейчас попробую перенести файл в директорию с лаунчером

Share this post


Link to post
Share on other sites
  • 0

У тебя какими-то данными об обновлениях должен твой version.xml заполняться. Причем не абы какой, а верной, т.е. где-то еще и папки с файлами соответствующие быть для возможности скачивания.
А раз программа работает, но выдает такую ошибку - это говорит об одном - файлы где-то не лежат. Что и где - тут виднее лишь тому, кто лаунчер пишет этот. В идеале это поискать на странице автора лаунчера с инструкцией.

Share this post


Link to post
Share on other sites
  • 0

nexusik1994 не знаю точно в чем дело, но что-то мне подсказывает, что в

<path>@dayz_epoch/addons/</path>

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

private Dictionary<string, string> ArmaPaths = new Dictionary<string, string>()
        {
          {"main", ArmaBasePath },
          {"mod", ArmaBasePath + "\\@dayzmod" },
          {"addon", ArmaBasePath + "\\@dayzmod\\addons" },
          {"keys", ArmaBasePath + "\\keys" }
        };

возможно, что-то типа такого подойдет

<path>mod/@dayz_epoch/addons/</path>

Share this post


Link to post
Share on other sites
  • 0
18 часов назад, 123new сказал:

nexusik1994 не знаю точно в чем дело, но что-то мне подсказывает, что в

<path>@dayz_epoch/addons/</path>

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


private Dictionary<string, string> ArmaPaths = new Dictionary<string, string>()
        {
          {"main", ArmaBasePath },
          {"mod", ArmaBasePath + "\\@dayzmod" },
          {"addon", ArmaBasePath + "\\@dayzmod\\addons" },
          {"keys", ArmaBasePath + "\\keys" }
        };

возможно, что-то типа такого подойдет

<path>mod/@dayz_epoch/addons/</path>

та же самая ошибка в визуале if (localFiles == null || !localFiles.ContainsKey(srvFile) || serverVersion[srvFile]["md5"] != localFiles[srvFile]) 

походу не суждено мне сделать этот аптейдер(

Share this post


Link to post
Share on other sites
  • 0

nexusik1994 суждено, если понять логику работы автора данного лаунчера. Все что надо для понимания есть, осталось допетрить только.

Share this post


Link to post
Share on other sites
  • 0

123new я уже нашел другой лаунчер  и с технической документацией  и прогой для сжатия в Lzma формат теперь то может и приступлю к внедрению сталкера в епотч))

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.