Вход

Просмотр полной версии : Скриптоспам


Breadfan
17.11.2010, 08:58
to Dyh9l:const
name = 'Lonny';
flood = '.....';

var
nik : string;
NickBase: TStringList; // - база ников

//проц-ра получения значения
function GetValue(ValName: string): string;
begin
result:=NickBase.Values[ValName];
end;
// запись переменной\значения
procedure SetValue(ValName: string; Value: string);
begin
NickBase.Values[ValName]:=Value;
end;

procedure Init;
begin
NickBase:=TStringList.create;
end;

procedure Free;
begin
NickBase.free;
end;

procedure pmattack;
begin
buf:=#$38;
WriteS(flood);
WriteD(2);
WriteS(Nik);
SendToServerEx(name);
end;

begin
if FromServer and (connectname=name) and (pck[1]=#$03) then begin
Nik:=ReadS(22);
if (getvalue(nik)<>'on') then begin
pmattack;
SendMsg(nik);
SetValue(Nik,'on');
end;
end;
end.
Вобщем ведется база ников, при приходе очередного CharInfo с ником который отсутствует в БД - ему отправляется пм с текстом flood, а ник заносится в базу в качестве имени переменной со значением on, для исключения последующего спама. Если разбирать конкретнее пакет CharInfo - то возможно слать по каким-либо определанным параметрам (есть\нет клана, раса, шмот, и прочее чего там приходит из статов). База обнуляется при перезапуске скрипта (вроде)

dyh9l
17.11.2010, 17:01
<3