мб кому пригодиться:
Долгое время не мог понять источника "Unknown" пакетов. Недавно нашел.
Для лечения надо:
в функции CallActionFunc добавить проверку на правильную сборку пакетов. Например:
Код:
...
'callnpcinfo':
begin
//params = [ObjId, x,y,z, npcname]
buf := #$0c;
WriteMask('ddddddddddddddddddffffdddcccccssddddddddccffdddd',[params[0], npcconst+PathNodeNpc,0,params[1],params[2],params[3],5000,0,10,10,10,10,10,10,10,10,10,10,1,1,1,22,0,0,0,1,0,0,0,0,params[4],'',0,0,0,0,0,0,0,0,0,0,1,22,0,0,0,0]);
if buf[1] := #$0c then SendToClientCheck;
end;
...
фишка в том что IgExt.dll оч шустрый =) Пока выполняется WriteMask происходит очередное обращение к CallActionFunc и выполняется строчка "buf := '';". Соответсвенно нарушается сборка пакета и получившийся мусор идет на сервер, который отключает флудера.
ПС: Недостаток решения - потеря пакетов, но вроде IgExt "держит руку на пульсе" и имеет от этого защиту. Можно еще конечно поиграть с локальными и глобальными переменными - будет надо напишу пример.