Цитата:
Сообщение от alexteam
стало не так увлекательно. правда ?
|
Сути не меняет. Только номера от 0 и выше, а не задом наперёд.
Добавлено через 3 минуты
ExNPCInfo пока так:
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;Code: Pascal