Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
PROTOCOL_BASE_GET_CHARA_INFO_ACK
#1
Секунд 10 идет такая загрузка и закрывается вкладка My_Info
[Изображение: VxuYMpaAUNc.jpg]
[SRC=CSharp]
WriteH(0);
WriteC(_player.CountChara);
for (int i = 0; i < 9; i++)
{
//info
}

for (byte i = 0; i < 9 - _player.CountChara; i++)
{
WriteB(new byte[210]);
}
[/SRC]
Ответ
#2
Что-то ты совсем непонятное циклами сделал. Для чего рисовать все 9 персов, если их нет?

[SRC="csharp"]Write<ushort>(0);
Write<byte>(characters.Count);

foreach (var character in characters)
{
// ...
}

Write<byte>(0);
[/SRC]
Ответ
#3
PROGRAMMATOR Написал:Что-то ты совсем непонятное циклами сделал. Для чего рисовать все 9 персов, если их нет?

[SRC="csharp"]Write<ushort>(0);
Write<byte>(characters.Count);

foreach (var character in characters)
{
// ...
}

Write<byte>(0);
[/SRC]

а это поможет избавиться от ошибки с My_Info?
Ответ
#4
Пока не проверишь - не узнаешь.
Ответ
#5
PROGRAMMATOR Написал:Пока не проверишь - не узнаешь.

не помогло.

Еще вопрос, после слота идут
0x14, 0x61, 0x0A, 0x04, 0x00, //что это за байты?
0xff, 0x6e, 0xca, 0x5f, //дата создания?
0x00, 0x00, 0x00, 0x00, //что это за байты?
0x00, 0x00, 0x00, 0x00 //что это за байты?
//имя персонажа
Ответ
#6
Id, CreatedAt и скорее всего PlayedTime так как меняется после боя.
Ответ
#7
PROGRAMMATOR Написал:Id, CreatedAt и скорее всего PlayedTime так как меняется после боя.

Всего выходит 212 байт на персонажа, но ошибка все равно осталась
[SRC=CSharp]
WriteH(0);
WriteC(_player.CountChara);
for (int i = 0; i < _player.CountChara; i++)
{
WriteC(_chara.CharaSlot);
WriteB(new byte[] {
0x14, 0x61, 0x0A, 0x04, 0x00
");
WriteB(new byte[] {
0xff, 0x6e, 0xca, 0x5f,
});
WriteD(0);
WriteD(0);
WriteUnicode(_chara.Name, 33 * 2);
WriteD(_chara.WEAPON_PRIMARY);
WriteD(_chara.WEAPON_PRIMARY);
WriteD(_chara.WEAPON_SECONDARY)
WriteD(_chara.WEAPON_SECONDARY)
WriteD(_chara.WEAPON_MELEE);
WriteD(_chara.WEAPON_MELEE);
WriteD(_chara.WEAPON_THROWING);
WriteD(_chara.WEAPON_THROWING);
WriteD(_chara.WEAPON_SPECIAL);
WriteD(_chara.WEAPON_SPECIAL);
WriteD(_chara.Character_Id);
WriteD(_chara.Character_Id);
WriteD(_chara.Character_Head);
WriteD(_chara.Character_Head);
WriteD(_chara.Character_Face);
WriteD(_chara.Character_Face);
WriteD(_chara.Character_Jacket);
WriteD(_chara.Character_Jacket);
WriteD(_chara.Character_Poket);
WriteD(_chara.Character_Poket);
WriteD(_chara.Character_Glove);
WriteD(_chara.Character_Glove);
WriteD(_chara.Character_Belt);
WriteD(_chara.Character_Belt);
WriteD(_chara.Character_Holster);
WriteD(_chara.Character_Holster);
WriteD(_chara.Character_Skin);
WriteD(_chara.Character_Skin);
WriteD(_chara.Character_Beret);
WriteD(_chara.Character_Beret);
WriteB(new byte[] { 0x01, 0xff, 0xff, 0xff, 0x00, 0x00 });
WriteH(0);
}
[/SRC]
Ответ
#8
Boris2105, странный цикл, где перечисление персонажей?
И откуда взялся последний WriteH(0)?
Ответ
#9
PROGRAMMATOR Написал:Boris2105, странный цикл, где перечисление персонажей?
И откуда взялся последний WriteH(0)?

У меня почему то всегда он ловит 212 байт.
Там и появляется этот WriteH(0)
[Изображение: yw-sOIXa3Gg.jpg]
Ответ
#10
Я же говорил, что должен остаться 1 байт вне цикла. И вообще CountChara > 0?
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)