Вот попробуй что то вроде этого, кстати наверно интересный будет эффект наблюдаемый в клиенте
delphi Код:
var
mas: array of integer;
objID, i: integer;
function FindCharByObjID(searchObjID: integer): integer;
var
i: integer;
begin
Result:= -1;
for i:= 0 to Length(mas)-1 do
begin
if mas[i] = searchObjID then
begin
Result:= i;
break;
end;
end;
end;
begin
if FromServer and (pck[1]=#$31) then // CharInfo
begin
i := 18; //В етой позиции находиться ObjectID в пакете CharInfo
objID := ReadD(i);
if FindCharByObjID(objID) <> -1 then
begin
//если попали сюда значит такой objID уже был
pck:= '';//обнуляем пакет
Exit;
end;
SetLength(mas, Length(mas) + 1);
mas[Length(mas) - 1]:= objID;
end;
end.