так кто знал, что надо с точкой переименовывать
я без точки переименовывал - ругалось: L2ololo.exe
теперь другой вопрос. при открытии инвентаря приходит довольно большой пакет с повторяющимися блоками. подскажите где взять процедуру обработки этих повторяющихся блоков для поиска ид обьекта по ид предмета по базе.
с заточкой там было все просто - инвентори апдейт присылал всего 2 повторяющихся блока - адена, и эта шмотка. бывало что наоборот сперва шмотка, потом адена - и я сделал два сравнения для обоих случаев. в случае же с перебором инвентаря - то там вариаций будет милион и мой способ не подойдет.
тоже самое касается и чтения бафоф у сопати. там тоже повторяющиеся блоки и их тоже надо перебрать. буду очень признателен за пример подобной процедуры перебора повторяющихся блоков
все. кажись придумал. обьясню на примере перебора бафоф - там блоки повторяются через 10 позиций. следовательно надо поставить все в рипит, прибавлять по 10 и проверять соответвует тому, чего мы ищем. но теперь другая проблема - как остановить рипит? я немогу поставить проверку типа:
если значения не существует, то конец проверки
until bufid = ''; или until bufid = '0'; непомогает.
какой синтаксис если мне надо проверить равно ли чему либо мой bufid?
и с этим вроди разобрался. теперь почемуто не проверяет последний баф. я для проверки сделал вв. и ложу 4 бафа - когда вв любой, но не последний четвертый - срабатывает. когда вв лежит последним - тогда не работает:
Код:
if FromServer and (pck[1]=#$EE) //перебор бафоф
then begin
baf1:=14;
baf2:=15;
baf3:=16;
baf4:=17;
idbafa:=pck[baf1]+pck[baf2]+pck[baf3]+pck[baf4];
repeat
if (idbafa=HStr('B4 04 00 00')) //вв для проверки
then begin
idtela:=pck[6]+pck[7]+pck[8]+pck[9];
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS('сработало');
SendToClient;
end;
baf1:= baf1 + 10;
baf2:= baf2 + 10;
baf3:= baf3 + 10;
baf4:= baf4 + 10;
idbafa:=pck[baf1]+pck[baf2]+pck[baf3]+pck[baf4];
until idbafa < '0';
end;