Рейтинг темы:
  • 2 Голос(ов) - 5 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Работа над Goddess of Destruction (part 6)
это 558 чтоли???
а я то спрашиваю 575

Добавлено через 20 минут
ещё несколько пакетов:
ExAcquirableSkillListByClass
ExAcquireAPSkillList
ExPledgeWaitingListAlarm
Hint Написал:Смотрите внимательнее:
https://forum.zone-game.info/showthread....post336559

а ReadBitFlags можно функцию?

или хотя бы что читает и в каком формате возвращает.
Mifesto Написал:а ReadBitFlags можно функцию?

или хотя бы что читает и в каком формате возвращает.

Это побитовое чтение Wink Возвращать может, то что Вы соберете из этих самых битов, любое число или bool-тип. Следуя логике тут читает ~3 байта, я думаю, что можно округлить до int.
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Mifesto Написал:а ReadBitFlags можно функцию?

или хотя бы что читает и в каком формате возвращает.
[src=pascal]function TGamePacket.ReadBitFlags(Count: Integer = 0): TGamePacketBitFlags;
var
N, I: Integer;
B: array of Byte;
begin
N := ReadH;
if (N < 1) or ((Count > 0) and (N <> Count)) then raise Exception.Create('Invalid bit flags count!');
I := Ceil(N / 8);
SetLength(B, I);
Move(FData[FCursor], B[0], I);
Inc(FCursor, I);
SetLength(Result, N);
for I := 0 to N - 1 do
begin
Result[I] := (B[I div 8] shr (7 - (I mod 8))) and 1 = 1;
end;
end;[/src]
hLaPEx, Evermore, hAuthD, L2on, ...
[SRC="pascal"]
Result[I] := (B[I div 8] shr (7 - (I mod 8))) and 1 = 1;
[/SRC]

Вот мне интересно выделенное сравнение, зачем? Или это что бы паскаль записал результат первой операции как bool?
Mifesto Написал:[SRC="pascal"]
Result[I] := (B[I div 8] shr (7 - (I mod 8))) and 1 = 1;
[/SRC]

Вот мне интересно выделенное сравнение, зачем? Или это что бы паскаль записал результат первой операции как bool?
Да, чтобы преобразовать Integer в Boolean.
Код:
TGamePacketBitFlags = array of Boolean;
hLaPEx, Evermore, hAuthD, L2on, ...
Странно, у меня все флаги -1 вот кусочек пакета до ника:
Цитата:FE 5C 01 66 B6 D0 49 87 01 00 00 17 00 FF FF FE
00 00 00 00 1E 00 07

Зеленым выделено количество флагов, а красным 3 байта отвечающие за флаги(если судить по вашему коду).

Вот что получилось у меня на Java:
[SRC="java"]
int N = readH(); // 23

if(N < 1)
new Exception("Incorrect flags count.");

int I = (int) Math.ceil((double) N / 8); // 23 / 8 = 3

byte B[] = new byte[I];

readB(B);

int result[] = new int[N];
for(int i = 0; i < N; i++)
{
result[i] = B[i / 8] >> (7 - (i % 8)); // result[0] = -1 >> 7
}
[/SRC]
Mifesto Написал:Странно, у меня все флаги -1 вот кусочек пакета до ника:


Зеленым выделено количество флагов, а красным 3 байта отвечающие за флаги(если судить по вашему коду).

Вот что получилось у меня на Java:
[SRC="java"]
int N = readH(); // 23

if(N < 1)
new Exception("Incorrect flags count.");

int I = (int) Math.ceil((double) N / 8); // 23 / 8 = 3

byte B[] = new byte[I];

readB(B);

int result[] = new int[N];
for(int i = 0; i < N; i++)
{
result[i] = B[i / 8] >> (7 - (i % 8)); // result[0] = -1 >> 7
}
[/SRC]

Лучше используйте побитовое ИЛИ.
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Эх в битовых операциях я еще мало разобрался(
ExUserInfo 575 протокол:

Код:
        writeEx(0x15C);
        writeD(obj_id);

        /*if(_secondInit)
        {
            writeD(56);

            writeB(new byte[]{(byte) 0x00, (byte) 0x80, (byte) 0x00});
        }
        else if(_init)*/
        {
            writeD(342 + _name.length() * 2 + title.length() * 2);
            writeH(23);

            writeB(new byte[]{(byte) 0xFF, (byte) 0xFF, (byte) 0xFF});

            writeD(_relation);
            writeH(16 + _name.length() * 2);
            writeH(_name.length());
            writeCutS(_name);
            writeC(gm_commands);
            writeC(_race);
            writeC(sex);
            writeD(base_class);
            writeD(class_id);
            writeC(level);

            writeH(14);
            writeH(_str);
            writeH(_dex);
            writeH(_con);
            writeH(_int);
            writeH(_wit);
            writeH(_men);

            writeH(14);
            writeD(maxHp);
            writeD(maxMp);
            writeD(maxCp);

            writeH(38);
            writeD(curHp);
            writeD(curMp);
            writeD(curCp);
            writeQ(_sp);
            writeQ(_exp);
            writeF(_expPercent);

            writeH(4);
            writeH(15); // unk

            writeH(15);
            writeD(hair_style);
            writeD(hair_color);
            writeD(face);
            writeC(1);

            writeH(5);
            writeC(mount_type);
            writeC(private_store);
            writeC(can_crystalize);

            writeH(56);
            writeH(_weaponFlag);
            writeD(_patk);
            writeD(_patkspd);
            writeD(_pdef);
            writeD(_pEvasion);
            writeD(_pAccuracy);
            writeD(_pCrit);
            writeD(_matk);
            writeD(_matkspd);
            writeD(_patkspd);
            writeD(_mdef);
            writeD(_mEvasion);
            writeD(_mAccuracy);
            writeD(_mCrit);

            writeH(14);
            writeH(defenceFire);
            writeH(defenceWater);
            writeH(defenceWind);
            writeH(defenceEarth);
            writeH(defenceHoly);
            writeH(defenceUnholy);

            writeH(18);
            writeD(_loc.x);
            writeD(_loc.y);
            writeD(_loc.z + Config.CLIENT_Z_SHIFT);
            writeD(vehicle_obj_id);

            writeH(18);
            writeH(_runSpd);
            writeH(_walkSpd);
            writeH(_swimRunSpd);
            writeH(_swimWalkSpd);
            writeH(_flRunSpd);
            writeH(_flWalkSpd);
            writeH(_flyRunSpd);
            writeH(_flyWalkSpd);

            writeH(18);
            writeF(move_speed);
            writeF(attack_speed);

            writeH(18);
            writeF(col_radius);
            writeF(col_height);

            writeH(5);
            writeC(attackElement.getId());
            writeH(attackElementValue);

            writeH(32 + title.length() * 2);
            writeH(title.length());
            writeCutS(title);
            writeH(pledge_type);
            writeD(clan_id);
            writeD(large_clan_crest_id);
            writeD(clan_crest_id);
            writeD(ClanPrivs);
            writeC(1);
            writeD(ally_id);
            writeD(ally_crest_id);
            writeC(partyRoom ? 0x01 : 0x00);

            writeH(22);
            writeC(pvp_flag);
            writeD(karma);
            writeC(noble);
            writeC(hero);
            writeC(pledge_class);
            writeD(pk_kills);
            writeD(pvp_kills);
            writeH(rec_left);
            writeH(rec_have);

            writeH(15);
            writeD(vitality);
            writeC(0);
            writeD(fame);
            writeD(0x00); // UNK

            writeH(10);
            writeC(talismans);
            writeC(openCloak);
            writeC(_team.ordinal());
            writeC(0);
            writeC(0);
            writeC(0);
            writeC(0);
            writeC(0);

            writeH(4);
            writeC(isFlying ? 0x02 : 0x00);
            writeC(running);

            writeH(10);
            writeD(name_color);
            writeD(title_color);

            writeH(9);
            writeD(0);
            writeH(InventoryLimit);
            writeC(0);

            writeH(13);
            writeC(1);
            writeH(0);
            writeD(0);
            writeD(0);
        }


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Работа над Goddess of Destruction (part 7) n3k0nation 459 172,932 03-21-2022, 04:21 PM
Последний пост: TieLay
  Помогите с Сервером L2Dream версии 439 для Lineage 2 Gracia Part 2 CAHTEX 4 3,358 10-01-2021, 02:40 PM
Последний пост: tenor
  Работа с камерой и Энтер чат FriendlyGhost 0 1,288 04-29-2018, 06:07 AM
Последний пост: FriendlyGhost
  Goddess of Destruction ( новая ветка от NcSoft ) Bacek 180 58,612 08-22-2017, 12:32 PM
Последний пост: BadStealth
  EmuRT Gracia part 2 ? knaif 3 1,603 02-08-2016, 01:19 PM
Последний пост: knaif
  Gracia Part 1 от l2emu исходы TFH 6 1,936 10-05-2015, 07:53 PM
Последний пост: G1ta0
  Ищу исходы L2-Dream gracia part 2 knaif 1 1,370 10-05-2015, 07:51 PM
Последний пост: G1ta0
  Оплачиваемая работа Grek1993 1 1,333 08-01-2015, 11:29 AM
Последний пост: ztaecz
  Работа с мультиселлом Evencelance 11 2,413 09-19-2014, 12:43 PM
Последний пост: Evencelance
  Работа над Goddess of Destruction (part 5) Ozzy 980 336,153 10-09-2013, 09:13 AM
Последний пост: Ashe

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


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