Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг
Войти через OpenID

Скриптинг Форум посвещенный созданию скриптов для L2PacketHack

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 29.03.2011, 17:53   #1
Местный
 
Регистрация: 11.06.2010
Сообщений: 644
Сказал Спасибо: 119
Имеет 85 спасибок в 77 сообщенях
dyh9l пока неопределено
По умолчанию База инвертаря шоле

помогите, цель скрипта, что я пытаюсь снять с чара все сомы +17, проблема в том, что 1 сом снимается, я удаляю его с массива, но следующий сом он пытается мне засунуть с 0-ым ObjID
delphi Код:
Тип: 0x16 (AddTradeItem) Размер: 13+2 Время прихода: 16:50:15:484 0002 d  TradeID: 1 (0x00000001) 0006 d  ObjectID: 0 (0x00000000) 000A d  Count: 1 (0x00000001)
сам скрипт вот:
delphi Код:
const     NameTocher = '~VIP~Dunyaxa' ;     NameOsn = 'eXploidsInMyLife';     max = 80;      var     ItemBasa:array[1..3,1..max] of integer;     ObjectIDosv,Count:integer;     procedure Init;     begin         buf:=#$0F;         SendToServerEx(NameTocher);     end;                  procedure ItemPacketList;     var         i:word;     begin         Count:=ReadH(2);         for i:=1 to Count do             begin                 ItemBasa[1,i]:=ReadD(i*28+8) ;//ObjectID                 ItemBasa[2,i]:=ReadD(i*28+12);//Item ID                 ItemBasa[3,i]:=ReadH(i*28+30);//EnchLvl             end;        end;      procedure InvertoryUpdate;     var         i:word;     begin         SendMsg('Начинаю процедуру InvertoryUpdate');         if (ReadH(4)=3) then             begin                 SendMsg('Предмет удаляется');                 for i:=1 to Count do                     begin                         SendMsg('Циклим в поисках нужного ObjectID');                         if ItemBasa[1,i]=ReadD(8) then                             begin                                 SendMsg('ObjectID найден в массиве и обнулился');                                 ItemBasa[1,i]:=0;                                 ItemBasa[2,i]:=0;                                 ItemBasa[3,i]:=0;                             end;                     end;             end;         end;            procedure CharInfo;     begin         if (ReadS(22)=NameOsn) then ObjectIDosv:=ReadD(18);     end;     procedure TradeOk;     begin         if (ReadD(2)=ObjectIDosv) then             begin                 buf:=#$44;                 WriteD(1);                 SendToServerEx(NameTocher);             end;     end;     procedure zabiray;     begin         buf:=#$16;         WriteD(1);         WriteD(GetItem(5643,17));         WriteD(1);         SendToServerEx(NameTocher);            end;        function GetItem(item:integer; lvl:integer) : integer;     var         i : integer;     begin         for i:=1 to max do             begin                 if ItemBasa[1,i]<>0 then                     if (ItemBasa[2,i]=item) and (ItemBasa[3,i]=lvl) then                         begin                             result:=ItemBasa[1,i];                             exit;                         end;             end;     end;                  begin     if (connectname=NameTocher) and (fromserver) then         case pck[1] of             #$1B: ItemPacketList;             #$27: InvertoryUpdate;             #$03: CharInfo;             #$5E: TradeOk;         end;     if (connectname=NameOsn) and (fromclient) then         case pck[1] of             #$38: if (ReadS(2)='1') then zabiray;         end;        end.
__________________

Последний раз редактировалось dyh9l, 29.03.2011 в 18:56.
dyh9l вне форума   Ответить с цитированием
Старый 30.03.2011, 05:17   #2
Местный
 
Регистрация: 04.11.2009
Адрес: Где-то в жопе европы
Сообщений: 316
Сказал Спасибо: 32
Имеет 42 спасибок в 39 сообщенях
wimax пока неопределено
По умолчанию

все соммы в масив потом создаешь очередность и забераеш сомы из масива по 1 яб так зделол
wimax вне форума   Ответить с цитированием
Старый 05.04.2011, 15:55   #3
Местный
 
Аватар для Nickers
 
Регистрация: 23.11.2009
Сообщений: 574
Сказал Спасибо: 134
Имеет 117 спасибок в 82 сообщенях
Nickers пока неопределено
По умолчанию

dyh9l, Сам скрипт только глазами просмотрел...
Но на словах нужно искать в пакете инвентари апдейт СОМ, смотреть Энчант лвл и если он +17 то заносить в базу, потом составлять пакет (Обжект Ид можно взять от туда же) и выкладывать этот сом... Если скрипт будет работать вместе с АвтоЕнчантом, то пакет буит приходить после заточки и этот скрипт буит его скидывать) Но это в теории...
__________________
Пишу что думаю, но ничего не знаю...
[LameGuard|Скрипты l2phx]
Nickers вне форума   Ответить с цитированием
Старый 09.04.2011, 23:19   #4
Пользователь
 
Регистрация: 04.11.2009
Сообщений: 44
Сказал Спасибо: 57
Имеет 3 спасибок в 2 сообщенях
vahes пока неопределено
По умолчанию

могу ошибатьcя, но думаю что ошибка сдесь

ItemBasa[1,i]:=ReadD(i*28+8) ;//ObjectID
ItemBasa[2,i]:=ReadD(i*28+12);//Item ID
ItemBasa[3,i]:=ReadH(i*28+30);//EnchLvl

формирование масива происходит со 2го итема, мое предложение

ItemBasa[1,i]:=ReadD((i-1)*28+8) ;//ObjectID
ItemBasa[2,i]:=ReadD((i-1)*28+12);//Item ID
ItemBasa[3,i]:=ReadH((i-1)*28+30);//EnchLvl
vahes вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 03:33.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!