Показать сообщение отдельно
Старый 12.11.2007, 18:33   #72
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию Re: ТОчка хлапой

Цитата:
Сообщение от Druids
l2phx наезжает на строчку в этой строке:
ListCount:=ReadH(j); //количество итемов не должно превышать max!
И что это значит?это он выделяет когда ещё неподключился к клиенту,а когда подключается,то постоянно выдаёт ошибки
У тебя какие хроники? Для С4 и Интерлюдии отличается скрипт.
Скопируй в свой скрипт взамен своего, и расскоментируй нужную часть, закоменти ненужную:
Код:
procedure CreateItemBase; //пакет 1B, Создает базу ObjectID по ItemID
var
  i, ss, ww, j, ObjID, ItemID, lvl, ListCount: integer;
begin
  ss:=1; //индекс в массиве скроллов
  ww:=1; //индекс в массиве предметов
  j:=4; //смещение для ListCount
  ListCount:=ReadH(j);                   //количество итемов не должно превышать значение в константе max!
  if ListCount>max then ListCount:=max; //если больше, то игнорируем и используем значение из max!
  j:=8; //смещение для ObjectID
  //Пробегаем по Инвентарю и сохраняем ObjectID соответствующие необходимым ItemID
  for i:=1 to ListCount do begin
     ObjID:=ReadD(j);      //ObjectID
     ItemID:=ReadD(j);    //ItemID
     j:=j+14;
     Lvl:=ReadD(j);    //Level
     case ItemID of
        scroll: begin
            ScrlBase[ss]:=ObjID;
            inc(ss);
        end;
        weapon: begin
            WpnBase[1,ww]:=ObjID;
            WpnBase[2,ww]:=lvl;
            inc(ww);
        end;
     end;
    //для С4
    j:=j+2;
   //для Интерлюдии
   //j:=j+10;
  end;
  dec(ColvoWpn);
  dec(ColvoScrl);
end;
Замени у себя еще проедуру INIT на эту, здесь сразу запрашивается список предметов:
Код:
procedure Init; //Вызывается при включении скрипта
var
  i:integer;
begin
  CurEnchLvl:=0;
  timer:=TTimer.Create(nil);
  timer.OnTimer:=@OnTimerHP;
  timer.enabled:=false;
  timer.interval:=5000; //время задержки
  add:=false;
  //RequestItemList запрашиваем пакет списка предметов
  buf:=hstr('0F');
  SendToServerEx(Name);
end;
Добавлено спустя 17 минут 25 секунд:
Цитата:
Сообщение от Druids
l2phx наезжает на строчку в этой строке:
ListCount:=ReadH(j); //количество итемов не должно превышать max!
И что это значит?это он выделяет когда ещё неподключился к клиенту,а когда подключается,то постоянно выдаёт ошибки
Не забудь поправить под себя вот эти константы:
Код:
const
  Name='NLObP';  //заменить на имя своего чара
  Scroll=957; // чем будем точить, например 957 - ItemID Crystall Scroll Enchant Weapon (Grade D)
  Weapon=129; //что будем точить, например  129 - ItemID Sword of Revolution
  MaxEnchLvl=21; //поставить максимальный желаемый уровень заточки, не факт что доточится =)
Добавлено спустя 7 минут 56 секунд:
Re: Re:
Цитата:
Сообщение от PunkRediska
я разабрался в чём там праблема.....там кагда хп моба=0 вылетают паакеты нескалько из каторых дроп айтим причём они идут падрят с интервалам в t причём t стремиться к нулю и t> чем время обработки скрипта вобшем праблема в движке он запускает скрипт для первого пакета а, пака скрипт выпалняеться приходят несколко других пакетав.Вот и палучяеться что кагда скрипт атправляет пакет паднять кол-во пришедших на клиент паетав дроп айтим>1ого,но следуйший абрабатываемый пакет это не тот пакет каторый был после 1ого дроп айтима а тот пакет каторый идёт за пакетам каторый атаслал скрипт.
Все верно пишешь. Только надо учесть, что сама прога успевает посмотреть все пакеты, так как она их шифрует/дешифрует. Не успевает клиент за скриптом. Для этого пакетики мы в базу складываем, а потом заставляем клиента все пакетики исполнить. У меня лично, все предметы собирает, но бывает и подглючивает.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием