Показать сообщение отдельно
Старый 21.01.2010, 17:36   #7
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

Цитата:
Сообщение от SeregaZ Посмотреть сообщение
перебор инвентаря обсуждался. где-то тут примеры от alexteam были
я пока плюнул на этот перебор. мне нужен был id свитка пробуждения - пока каждый раз запуская скрипт - тыкаю вручную свиток и он запоминает его айди и дальше уже сам будит на пвп воротах сопати от слипа:
PHP код:
  if FromServer and (pck[1]=#$27) and (idsvitka = '0') //чтение id свитка
  
then begin 
     iditema
:=pck[12]+pck[13]+pck[14]+pck[15];
     if (
iditema=HStr('95 17 00 00'))  //свиток пробуждения
     
then begin 
        idsvitka
:=pck[8]+pck[9]+pck[10]+pck[11];
        
buf:=#$4A;
        
WriteD(0);
        
WriteD(10);
        
WriteS('');
        
WriteS('айди свитка определен: ' idsvitka);
        
SendToClient;
     
end;
  
end
сам пакет инвентори апдейт:
27 01 00 02 00 04 00 13 08 76 40 95 17 00 00 7E 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00

95 17 00 00 это айди свитка по базе
13 08 76 40 это айди предмета в игре

реад конечно круче, чем всякие мазохизмы с pck[8]+pck[9]+pck[10]+pck[11] - зато сам делал и мне все понятно
что-то я не понял что он делает, мне надо чтобы он читал из инвенторя по ИДу итема ид объекта. И потом вставить этот ИД в другой пакет. И что за пакет 27? Я просто вообще ничего не знаю

Добавлено через 4 минуты
Блин, а теперь и вовсе ругается(

PHP код:
const
     
Name='10';
var
   
timer:TTimer;
procedure Init;
begin
     timer
:=TTimer.Create(nil);
     
timer.interval:=2000;
     
timer.OnTimer:=@fireTimer;
     
timer.enabled:=true;
end;
procedure Free;
begin
     timer
.free;
end;
procedure fireTimer(SenderTObject);
begin

  
end
;
begin
  
if FromServer and (pck[1]=#$14) and (idsvitka = '0') //чтение id свитка <<<< Вот на эту строку
  
then begin 
     iditema
:=pck[12]+pck[13]+pck[14]+pck[15];
     if (
iditema=HStr('B6 05 00 00'))  //свиток пробуждения
     
then begin 
        idsvitka
:=pck[8]+pck[9]+pck[10]+pck[11];
        
buf:=#$17;
        
WriteD(idsvitka);
        
WriteD(1);
        
WriteD(115176);
        
WriteD(-178666); 
        
WriteD(-937);
        
SendToServer;    

  
end;  
    
timer.enabled:=false;       
    

end;


end
Что не так тут?(

Добавлено через 1 час 38 минут
Вообщем мне надо сделать чтобы у меня сканировался инвентарь, и выбрасывался предмет с 1 идом.

Последний раз редактировалось supernewbie, 21.01.2010 в 17:36. Причина: Добавлено сообщение
supernewbie вне форума   Ответить с цитированием