Долго искал готовый скрипт для перебора МС под комьюнити борд для ХФ серверов. Готового решения так и не нашел, по этому слепил свой из кусков других скриптов.
Скрипт создает файл по указанному адресу (изначально C:\GoodId.txt) со всеми id рабочих мультиселлов. Запускается любым соц действием.
Это позволяет вытащить на хот бар соц действие, и зажав кнопку на клавиатуре собрать все мультиселлы сервера. Потом отключив скрипт можно просматривать рабочие мультиселлы и перебирать вручную.
Такая структура запроса МС попадается очень часто на серверах ХФ, если нужно будет добавлю пример где проверял.
Код:
var i:integer;
Stream:TFileStream;
procedure Init; //Вызывается при включении скрипта
begin;
i:=9000; //С какого мс начинать!!!!!
try //пытаемся создать файл, но если такой существует то открываем его
Stream := TFileStream.Create('C:\GoodId.txt', fmOpenReadWrite);
except
Stream := TFileStream.Create('C:\GoodId.txt', fmCreate);
end;
end;
procedure Free; //Вызывается при выключении скрипта
begin
Stream.free;
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if FromClient and (pck[1]=#$56) then begin //Ловим пакет соц действия
i:=i+1;
buf:=#$23;
Writes('_bbsmultisell:'+inttostr(i)+';_bbspage:shop'); //Тут пишем то на что должен быть похож пакет
sendtoserver;
end;
if (pck[1]+pck[6]=#$D0#$01) then
Stream.Write(inttostr(Readd(2))+' ',10);
end.
Как вообще скриптами пользоваться? Вот скопировал скрипт в 3-ю вкладку дополнительно, жму выполнить и всегда ошибка вылазит, первая строчка горит желтым.
Acess violation at address 132A61E9 in module l2ph.exe