Рейтинг темы:
  • 5 Голос(ов) - 4.2 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Работа над Goddess of Destruction (part 5)
Кто может скинуть рабочие пакеть UserInfo и CharInfo?
Подскажите пожалуйста, какой пакетик отвечает за то, что когда персонаж получает 4 профессию он подлетает вверх.
Помог не забудь "Спасибо" Smile
обычный пакет использования социалки
Gaikotsu Написал:обычный пакет использования социалки

Спасибо нашел Smile
Помог не забудь "Спасибо" Smile
Ребята может кто дать ссылку на папку system с devmode для LineageII Goddess of Destruction - Epeisodion
буду благодарен!
Пакет ExUserInfo. Разбирал "на глаз", анализируя трафик, поэтому мог где-нибудь ошибиться. Если заполните пробелы, буду благодарен.

[SRC="pascal"]procedure TGameStream.ExUserInfoPacket(Packet: TGamePacket);
var
I, Flags, Size: Integer;
Clan: TClan;

function ReadBlockSize(Fixed: Integer = 0): Integer;
begin
Result := Packet.ReadH;
if (Fixed > 0) and (Result <> Fixed) then raise EBadPacket.Create('Invalid block size!');
end;

begin
with Packet do
begin
Player.ObjectId := ReadD;
ReadH; // Size
ReadH;
ReadC;
Flags := ReadD;

if ((Flags shr 15) and 1) = 1 then
begin
ReadD;
end;

if ((Flags shr 14) and 1) = 1 then // 12, 14?
begin
ReadBlockSize;

Player.Name := ReadS2;
ReadC;
Player.Race := ReadC;
Player.Sex := ReadC;
Player.BaseClassId := ReadD;
Player.ClassId := ReadD;
Player.Level := ReadC;
end;

if ((Flags shr 13) and 1) = 1 then
begin
ReadBlockSize(14);

Player.Str := ReadH;
Player.Dex := ReadH;
Player.Con := ReadH;
Player.Int := ReadH;
Player.Wit := ReadH;
Player.Men := ReadH;
end;

if ((Flags shr 12) and 1) = 1 then // 12, 14?
begin
ReadBlockSize(14);

Player.MaxHP := ReadD;
Player.MaxMP := ReadD;
Player.MaxCP := ReadD;
end;

if ((Flags shr 11) and 1) = 1 then
begin
ReadBlockSize(38);

Player.HP := ReadD;
Player.MP := ReadD;
Player.CP := ReadD;
Player.SP := ReadQ;
Player.Exp := ReadQ;
Player.ExpProgress := ReadF;
end;

if ((Flags shr 10) and 1) = 1 then
begin
ReadBlockSize(3);

ReadC;
end;

if ((Flags shr 9) and 1) = 1 then // ?
begin
ReadBlockSize(15);

Skip(13);
end;

if ((Flags shr 8) and 1) = 1 then
begin
ReadBlockSize(5);

ReadC;
Player.PrivateStoreType := ReadC;
ReadC;
end;

if ((Flags shr 23) and 1) = 1 then
begin
ReadBlockSize(56);

ReadH;
Player.PAtk := ReadD;
Player.PAtkSpd := ReadD;
Player.PDef := ReadD;
Player.EvasionRate := ReadD;
Player.Accuracy := ReadD;
Player.CriticalHit := ReadD;
Player.MAtk := ReadD;
Player.MAtkSpd := ReadD;
Player.PAtkSpd := ReadD;
Player.MAccuracy := ReadD;
Player.MDef := ReadD;
Player.MEvasionRate := ReadD;
Player.MCriticalHit := ReadD;
end;

if ((Flags shr 22) and 1) = 1 then // 17 or 22
begin
ReadBlockSize(14);

Player.Elements.Fire := ReadH;
Player.Elements.Water := ReadH;
Player.Elements.Wind := ReadH;
Player.Elements.Earth := ReadH;
Player.Elements.Holy := ReadH;
Player.Elements.Dark := ReadH;
end;

if ((Flags shr 21) and 1) = 1 then
begin
ReadBlockSize(18);

Player.Pos.X := ReadD;
Player.Pos.Y := ReadD;
Player.Pos.Z := ReadD;
ReadD;
end;

if ((Flags shr 20) and 1) = 1 then // ?
begin
ReadBlockSize(18);

for I := 1 to 4 do
begin
ReadH; // Run Speed
ReadH; // Walk Speed
end;
end;

if ((Flags shr 19) and 1) = 1 then
begin
ReadBlockSize(18);

ReadF;
ReadF;
end;

if ((Flags shr 18) and 1) = 1 then // ?
begin
ReadBlockSize(18);

ReadF;
ReadF;
end;

if ((Flags shr 17) and 1) = 1 then // 17 or 22
begin
ReadBlockSize(5);

Player.Elements.AttackType := ReadC;
Player.Elements.AttackPower := ReadH;
end;

if ((Flags shr 16) and 1) = 1 then
begin
ReadBlockSize;

Player.Title := ReadS2;
ReadH; // Subdivision
Player.Clan.Id := ReadD;
ReadD;
Player.Clan.CrestId := ReadD;
ReadD;
ReadC;
Player.Clan.AllyId :=ReadD;
Player.Clan.AllyCrestId := ReadD;
ReadC; // PartyRoom
end;

if ((Flags shr 31) and 1) = 1 then
begin
ReadBlockSize(22);

Skip(12);
Player.PvP := ReadD;
Player.Recomendations := ReadH;
ReadH;
end;

if ((Flags shr 30) and 1) = 1 then // ?
begin
Size := ReadBlockSize;

Skip(Size - 2);
end;

if ((Flags shr 29) and 1) = 1 then // ?
begin
Size := ReadBlockSize;

Skip(Size - 2);
end;

if ((Flags shr 28) and 1) = 1 then
begin
ReadBlockSize(4);

ReadC;
Player.IsStanding := ReadBoolC;
end;

if ((Flags shr 27) and 1) = 1 then // ?
begin
ReadBlockSize(10);

Player.NameColor := ReadD;
Player.TitleColor := ReadD;
end;

if ((Flags shr 26) and 1) = 1 then // ?
begin
Size := ReadBlockSize;

Skip(Size - 2);
end;

if ((Flags shr 25) and 1) = 1 then // ?
begin
Size := ReadBlockSize;

Skip(Size - 2);
end;

EndOfPacket;
end;

...
end;[/SRC]
hLaPEx, Evermore, hAuthD, L2on, ...
Кто может поделится рабочим shuttle_data ?
remove this post.
alexteam Написал:стало не так увлекательно. правда ?
Сути не меняет. Только номера от 0 и выше, а не задом наперёд.

Добавлено через 3 минуты
ExNPCInfo пока так:
[SRC="pascal"]procedure TGameStream.ExNPCInfoPacket(Packet: TGamePacket);
var
I, Count, Flags: Integer;
NPC: TNPC;
Clan: TClan;
begin
with Packet do
begin
NPC.ObjectId := ReadD;
NPCs.Get(NPC.ObjectId, NPC);

ReadC; // Packet Type (0, 1, 2)
ReadH; // $25
ReadC; // $ED or $60
Flags := ReadD;
ReadC;
NPC.IsAttackable := ReadBoolC;
ReadH;
NPC.Name := ReadS;
NPC.Title := ReadS;
ReadH; // Data Size

if ((Flags shr 27) and 1) = 1 then
begin
NPC.ClassId := ReadD - 1000000;
NPC.Pos.X := ReadD;
NPC.Pos.Y := ReadD;
NPC.Pos.Z := ReadD;
NPC.Heading := ReadD;
NPC.MAtkSpd := ReadD;
NPC.PAtkSpd := ReadD;
ReadH;
ReadH;
ReadH;
ReadH;
end;

if ((Flags shr 6) and 1) = 1 then
begin
ReadD;
ReadD;
ReadD;
end;

if ((Flags shr 27) and 1) = 1 then
begin
NPC.VisibleName := ReadBoolC;
NPC.IsRunning := ReadBoolC;
NPC.IsInCombat := ReadBoolC;
NPC.IsAlikeDead := ReadBoolC;
NPC.Invisible := ReadBoolC;
Skip(6);
NPC.CurHP := ReadD;
NPC.MaxHP := ReadD;
ReadC;

Count := ReadH;
for I := 1 to Count do ReadH;
end;
end;[/SRC]
hLaPEx, Evermore, hAuthD, L2on, ...
Цитата:Сути не меняет
ну если то откуда можно взять длину битовой маски и то как клиент ее чекает сути не меняет. то считайте что вы ничего не видели.

п.с.
Цитата:ReadH; // $25
ReadC; // $ED or $60
Flags := ReadD;
по тем же причинам. заведомо неправильно.


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Работа над Goddess of Destruction (part 7) n3k0nation 459 184,140 03-21-2022, 04:21 PM
Последний пост: TieLay
  Помогите с Сервером L2Dream версии 439 для Lineage 2 Gracia Part 2 CAHTEX 4 3,801 10-01-2021, 02:40 PM
Последний пост: tenor
  Работа с камерой и Энтер чат FriendlyGhost 0 1,470 04-29-2018, 06:07 AM
Последний пост: FriendlyGhost
  Goddess of Destruction ( новая ветка от NcSoft ) Bacek 180 63,439 08-22-2017, 12:32 PM
Последний пост: BadStealth
  EmuRT Gracia part 2 ? knaif 3 1,856 02-08-2016, 01:19 PM
Последний пост: knaif
  Gracia Part 1 от l2emu исходы TFH 6 2,280 10-05-2015, 07:53 PM
Последний пост: G1ta0
  Ищу исходы L2-Dream gracia part 2 knaif 1 1,647 10-05-2015, 07:51 PM
Последний пост: G1ta0
  Оплачиваемая работа Grek1993 1 1,517 08-01-2015, 11:29 AM
Последний пост: ztaecz
  Работа над Goddess of Destruction (part 6) Ashe 1,274 499,764 07-11-2015, 08:00 PM
Последний пост: n3k0nation
  Работа с мультиселлом Evencelance 11 2,919 09-19-2014, 12:43 PM
Последний пост: Evencelance

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


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