L2PacketHackФорум программы L2PacketHack, всё что с ней связано находится тут.
Правила раздела!
Категорически запрещено:
* Просить пакеты/скрипты на шмот/адену/другие вещи;
* Просить (помочь) взломать/сломать сервак/аккаунт или раздеть/наказать кого-то на любом серваке;
* Просить научить работать с программой, если не понимаете элементарных вещей в отношениях клиент-сервер (так как, если вы их понимаете, то вопросов по основным возможностям программы быть недолжно);
* Все посты не удовлетворяющие этим запретам, а так же не относящиеся к теме будут удаляться при первой возможности.
* Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы.
* Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
* Данные запреты неподлежат обсуждению.
Если есть у кого кусок кода, прошу скинуть... Желательно, если он будет простенький и небольшой, т.к. пытался разобраться в куске кода из скрипта на заточку - не особо получилось... (Ну, хотя, было 4 часа ночи где-то... ).
Суть вопроса: в инвентаре есть вещь, например, адена, OID которой нужно определить при включении скрипта, допустим. ID адены известен.
procedure SetItem(var PckPos:integer;ItemIndex:byte);
begin
Inventory[ItemIndex].ObjectID:=ps.ReadDEx(ppck^,PckPos); //OID
inc(PckPos,4);
end;
Или писать полностью всю процедуру?
Эту процедуру запускаем при получении пакета InventoryInit, правильно?:
Код:
procedure ExtractInvInfo;
var c1,c2:integer;
begin SetLength(Inventory,ps.ReadHEx(ppck^,5)); //Определяем кол-во вещей?
if Length(Inventory)<>0 then
c2:=7;
for c1:=0 to Length(Inventory)-1 do //пробегаем по всем предметам
begin SetItem(c2,c1); //считываем параметры одного предмета
end;
end;
В итоге, он ОИД пишет в Inventory[номер айтима].ObjectID ?
Последний раз редактировалось ERASE, 27.01.2009 в 20:24.
ERASE, ты определись сначала ты скрипт пишешь или длл? сразу объясняю в чем разница в скриптах пакет хак передает строки байт а в длл массивы т.е. в скрипте 1-й байт типа пакета, а в длл 2-й байт тип пакета и 2 байта перед ним размер этого пакета так что procedure ExtractInvInfo; надо перешать смещение, и в скрипте масив объявить да и в длл не забудь. и определись с хрониками это кусочег особенно procedure SetItem(var PckPos:integer;ItemIndex:byte); для ОФФ сервера Грации пат1.