Хроники Камаель
Столкнулся с тем что команда в пакете RequestBypassToServer все время разная, и передается в предыдущем пакете от сервера NpcHtmlInfo. Вот сваял процедуру запоминающую содержимое и количество этих команд.
delphi Код:
const
name='';
var
kolvocmd,j,x:integer; //-kolvocmd- итоговое количество команд j,x- вспомогательные переменные
CmdNpc:array[1..50] of string; //массив с командами, 50 - взято с большим запасом
// у телепортеров обычно примерно всего 20 команд
findt,oldpck:string; //вспомогательные переменные
//---------------------
procedure SendMsg(msg:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(msg);
SendToClientEx(Name);
end;
//---------------------
procedure CmdNpcParc;
Begin
kolvocmd:=0;
for j:=1 to 50 do begin // предварительная очистка массива
CmdNpc[j]:='';
end;
for j:=1 to length(oldpck) do begin // побуквенная проверка строки oldpck
for x:=0 to 9 do begin
findt:=findt+oldpck[j+x];
end;
if findt='bypass -h ' then begin
for x:=10 to 25 do begin
CmdNpc[kolvocmd+1]:=CmdNpc[kolvocmd+1]+oldpck[j+x];
end;
kolvocmd:=kolvocmd+1;
end;
findt:='';
end;
end;
//---------------------------------
begin
if fromserver and (pck[1]=#$19) then
begin // в процедуру передается содержимое пакета NpcHtmlInfo
oldpck:=ReadS(6);
CmdNpcParc;
SendMsg('Количество- '+inttostr(kolvocmd));
for j:=1 to kolvocmd do begin
SendMsg(inttostr(j)+'ая- '+CmdNpc[j]);
end;
end;
end.
Не зная точно команд работы с частью строки сделал все через циклы, может как то подправить\сократить?
__________________
На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
Последний раз редактировалось Breadfan, 28.08.2008 в 16:28.
|