Сообщений: 17
Тем: 2
Зарегистрирован: Dec 2012
Репутация:
13
у кого-то готов сервер? я не очень в программировании но пб люблю. Играть на руофе стыд, на европе читы, на домашнем играть не очень. Мб поделитесь инфой, с чего начать чтоб уметь собирать сервак, что полезно знать и т.д.
Сообщений: 538
Тем: 76
Зарегистрирован: Aug 2012
Репутация:
7
Awiion Написал:Boris2105, Ох блин , ты извращенец 99 уровень.
Клац
Код: public static object LoadXml(Type type, string filename)
{
object result = null;
using (StreamReader reader = new StreamReader(filename))
{
try
{
XmlSerializer serializer = new XmlSerializer(type);
result = serializer.Deserialize(reader);
}
catch (Exception e)
{
// Логирование
}
finally
{
reader.Close();
}
}
return result;
}
Item obj = LoadXml(typeof(Класс), "Путь до xml") as Item;
Не много подправь, в шапке все описана, тебе только надо заполнить.
Хрена си, ты велосипед городить
это писать в Program.cs или в пакет где использую?
Сообщений: 322
Тем: 6
Зарегистрирован: Nov 2015
Репутация:
505
08-12-2016, 06:45 PM
(Сообщение последний раз редактировалось: 08-12-2016, 08:04 PM Awiion.)
Boris2105, где тебе, проще будет...
У меня отдельный,
Код: LoadParser(Rank, "Rank.xml");
LoadParser(Channel, "Channel.xml");
LoadParser(Tutorial, "Tutorial.xml");
Сообщений: 538
Тем: 76
Зарегистрирован: Aug 2012
Репутация:
7
08-12-2016, 06:47 PM
(Сообщение последний раз редактировалось: 08-12-2016, 08:05 PM Awiion.)
Awiion Написал:Boris2105, где тебе, проще будет...
У меня отдельный,
Код: LoadParser(Rank, "Rank.xml");
LoadParser(Channel, "Channel.xml");
LoadParser(Tutorial, "Tutorial.xml");
Все понял, спасибо.
А использовать его в пакете как?
Сообщений: 6,450
Тем: 262
Зарегистрирован: Nov 2007
Репутация:
44,165
Boris2105, менеджер напиши и юзай в пакетах.
Можно немного усложнить(?), и добавить генериков. kappa
[SRC="csharp"]public class XmlParser<T> where T : class
{
public static T LoadFrom(string filename)
{
try
{
using (var reader = XmlReader.Create(filename))
{
// ...
return (T)serializer.Deserialize(reader);
}
}
catch (Exception ex)
{
// log.Error(ex);
return default(T);
}
}
}
[/SRC]
[SRC="csharp"]public class RankUpData : XmlParser<RankUpData>
{
[XmlElement("Rank")]
public List<Rank> Ranks = new List<Rank>();
}
[/SRC]
Ну и юзать:
[SRC="csharp"]var rankUpData = RankUpData.LoadFrom("Foo/Bar.xml");
[/SRC]
Сообщений: 322
Тем: 6
Зарегистрирован: Nov 2015
Репутация:
505
PROGRAMMATOR, ну теперь, чета совсем все усложнил
Сообщений: 538
Тем: 76
Зарегистрирован: Aug 2012
Репутация:
7
PROGRAMMATOR,
Rank rank = RankSerializer.Load();
заюзан в CM пакете
Ошибка почему то в красном
Код: WriteC(51);
for (int i = 0; i < 51; i++)
{
WriteC(_rank.Id);
for (int o = 0; o < 4; o++)
{
[color=red]WriteD(_rank.Reward.Items[o]);[/color]
}
}
Сообщений: 322
Тем: 6
Зарегистрирован: Nov 2015
Репутация:
505
Boris2105, Я же тебе объяснял, у тебя даже ошибка указана .
Ссылка на объекта не указывает на экземпляр объекта
Смысл, была тебе делать логирования, если ты даже этого понять не можешь .....
Код: [SRC="csharp"][XmlElement("Rank")]
public List<Rank> Ranks;[/SRC]
Сделай так, и не будет больше у тебя ошибки.
Сообщений: 538
Тем: 76
Зарегистрирован: Aug 2012
Репутация:
7
Awiion Написал:Boris2105, Я же тебе объяснял, у тебя даже ошибка указана .
Ссылка на объекта не указывает на экземпляр объекта
Смысл, была тебе делать логирования, если ты даже этого понять не можешь .....
Код: [SRC="csharp"][XmlElement("Rank")]
public List<Rank> Ranks;[/SRC]
Сделай так, и не будет больше у тебя ошибки.
у меня это прописано, программатор же кидал.
но он все равно почему то так ругается
Сообщений: 322
Тем: 6
Зарегистрирован: Nov 2015
Репутация:
505
Boris2105,
Смотри
Boris2105,
Да не может быть, вот пример рабочий.
Код: [SRC="xml"]<RankData>
<Rank Id="0" Title="Trainee" ToNextLevel="1200" RequiredExp="0">
<Reward Points="10000">
<Items>
<Item>200010051</Item>
<Item>10309410</Item>
<Item>70003008</Item>
<Item>110000408</Item>
</Items>
</Reward>
</Rank>
<Rank Id="1" Title="Private Rank 1" ToNextLevel="2400" RequiredExp="1200">
<Reward Points="10000">
<Items>
<Item>200010051</Item>
<Item>10309410</Item>
<Item>70003008</Item>
<Item>110000408</Item>
</Items>
</Reward>
</Rank>
</RankData>[/SRC]
Код: public class Rank
{
[XmlAttribute]
public uint Id;
[XmlAttribute]
public string Title;
[XmlAttribute]
public uint ToNextLevel;
[XmlAttribute]
public uint RequiredExp;
public RankReward Reward;
[XmlElement("Rank")]
public List<Rank> Ranks;
public class RankReward
{
[XmlAttribute]
public uint Points;
[XmlArrayItem("Item")]
public List<uint> Items;
}
}
Код: public class RankSerializer
{
public static Rank Load()
{
using (var reader = XmlReader.Create("data/Rank.xml"))
{
var serializer = new XmlSerializer(typeof(Rank), new XmlRootAttribute("RankData"));
try
{
var RankObject = (Rank)serializer.Deserialize(reader);
return RankObject;
}
catch (Exception ex)
{
//Логирование
}
}
return null;
}
}
Код: [SRC="csharp"]class Program
{
static void Main(string[] args)
{
var rank = RankSerializer.Load();
foreach (var Rank in rank.Ranks)
{
Console.WriteLine("ID {0}", Rank.Id);
Console.WriteLine("Title {0}", Rank.Title);
Console.WriteLine("RequiredExp {0}", Rank.RequiredExp);
Console.WriteLine("Point {0}", Rank.Reward.Points);
Console.WriteLine("Items {0}", Rank.Reward.Items.Count);
foreach (var Item in Rank.Reward.Items)
{
Console.WriteLine("Item {0}", Item);
}
Console.WriteLine("--------------------");
}
Console.ReadKey();
}
}[/SRC]
И хватит юзать for, зачем они тебе kappa
Научись пользоваться MSD или Google
|