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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 30.12.2010, 10:04   #11
Местный
 
Аватар для Nickers
 
Регистрация: 23.11.2009
Сообщений: 574
Сказал Спасибо: 134
Имеет 117 спасибок в 82 сообщенях
Nickers пока неопределено
По умолчанию

Гдет ж был скрипт под ПХ через создание базы инвентаря...
На форуме поиск не помог...

Вот он (Из ПХ своего взял):
delphi Код:
Const IDofItem='58'; Name='Nickers'; Max=80; var   ItemBase : array[1..4,1..max] of integer; //ItemOID, ItemID, Kol-vo, ItemLvl   timer:TTimer; IDindex:boolean;   p,p1,p2,x,y,z,i,f:integer; procedure Init; //Вызывается при включении скрипта begin   timer:=TTimer.Create(nil);   timer.OnTimer:=@OnTimer;   timer.enabled:=false;   timer.interval:=1000; //время задержки buf:=#$0F; SendToServerEx(Name); end; procedure CreateItemBase; var   i, j, ListCount: integer; begin   for i:=1 to max do begin     //очищаем масив     ItemBase[1,i]:=0;     //OID     ItemBase[2,i]:=0;    //ID     ItemBase[3,i]:=0;   //kol-vo     ItemBase[4,i]:=0//lvl   end;   j:=4;   ListCount:=ReadH(j);   j:=8;   for i:=1 to ListCount do begin     itemBase[1,i]:=ReadD(j);    //OID     itemBase[2,i]:=ReadD(j);   //ItemID     itemBase[3,i]:=ReadD(j)//кол-во     inc(j,10);     itemBase[4,i]:=ReadH(j);//EnchantLevel     inc(j,12);   end; end; //...................................... //****************************************************************************** procedure InventoryUpdate; //пакет 27, обновляет базу ObjectID по ItemID var   i, ii, j, OID, ID, Count, ListCount, UpdType, lvl: integer;   add : boolean; begin   add:=false;   ListCount:=ReadH(2);   j:=4;   for ii:=1 to ListCount do begin     add:=false; //Ели додумался изза чего не добавляет сразу несколько предметов в базу     UpdType:=ReadH(j);     ReadH(j);               //ItemType1     OID:=ReadD(j);     //ObjectID     ID:=ReadD(j);     //ItemID     Count:=ReadD(j); //кол-во     inc(j,10);     lvl:=ReadH(j);     case UpdType of       1: begin          for i:=1 to max do begin            if (ItemBase[1,i]=0) and (add=false) then begin              ItemBase[1,i]:=OID;              ItemBase[2,i]:=ID;              ItemBase[3,i]:=Count;              ItemBase[4,i]:=lvl;              add:=true;            end;          end;       end;       2: begin          for i:=1 to max do begin            if ItemBase[1,i]=OID then begin              ItemBase[3,i]:=Count;              ItemBase[4,i]:=lvl;            end;          end;       end;       3: begin          for i:=1 to max do begin            if ItemBase[1,i]=OID then begin              ItemBase[1,i]:=0;              ItemBase[2,i]:=0;              ItemBase[3,i]:=0;              ItemBase[4,i]:=0;            end;          end;       end;     end;     inc(j,10);   end; end; function GetItem(ID, FieldIn, FieldOut : integer) : integer; var   i : integer; begin   for i:=1 to max do     if ItemBase[FieldIn,i]=ID then begin       result:=ItemBase[FieldOut,i]; // itemOID       exit;     end;   result:=0; end; procedure OnTimer(Sender: TObject); begin    if GetItem(57,2,3)>2000000000 then //57 - ID Аденки...       begin          buf:= Сюда пакетег) (На Юз скилла)          SendToServer;       end; end; begin   if FromServer and (ConnectName=Name) then   case pck[1] of      //......................................     //Пакет ItemList     #$1B: CreateItemBase; //создание базы предметов      //......................................     #$27: InventoryUpdate; //Обновление базы   end; //end от case!!! end.

Добавлено через 24 минуты
Вроде так... Ток нужен пакет на юз скилла Клиент->Сервер Чтобы отправную часть доделать... (Процедура ОнТаймер)
__________________
Пишу что думаю, но ничего не знаю...
[LameGuard|Скрипты l2phx]

Последний раз редактировалось Nickers, 30.12.2010 в 10:04. Причина: Добавлено сообщение
Nickers вне форума   Ответить с цитированием
За это сообщение Nickers нажился спасибкой от:
Старый 30.12.2010, 11:06   #12
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

да нахрен тут массив то, если одна адена нужна)
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
Старый 30.12.2010, 13:58   #13
Местный
 
Аватар для Nickers
 
Регистрация: 23.11.2009
Сообщений: 574
Сказал Спасибо: 134
Имеет 117 спасибок в 82 сообщенях
Nickers пока неопределено
По умолчанию

Хз)) Можно облегчить)) Но мне влом))
Прост процедуры Создания и Обновления ставим с условием занесения "Если ID=57"(Если кусок пакета принадлежит Аденке) и чтоб заносилось не в Матрицу, а просто в массив из 2х-3х переменных(Ну там ID, OID и Count)... Я могу сделать, но влом))

Перебор i Через For или Until прыжок = отступу байтов (От ID 1го итема в пакете до ID 2го и т.д.) И в цикле проверка на if ReadD(i)==ID, Если да то заносим данные
delphi Код:
//Пример Записи в 1о мерный массив: //Если Нашли Адену, считываем все Данные с нее... j вычисляется из i (-4 наверн)... Adena[1]:=Read(j); inc(j,4); Adena[2]:=Read(j); inc(j,4); Adena[3]:=Read(j);
__________________
Пишу что думаю, но ничего не знаю...
[LameGuard|Скрипты l2phx]

Последний раз редактировалось Nickers, 30.12.2010 в 14:15.
Nickers вне форума   Ответить с цитированием
Старый 30.12.2010, 14:11   #14
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

нече не понял о чем ты, нормальные люди делают так:

delphi Код:
for i:=0 to ReadH(4)-1 do if ReadD(i*offset+12)=57 then begin //OIDadena:=ReadD(i*offset+8); Countadena:=ReadD(i*offset+16); exit; end;

где offset - размер блока для вещи, для ил щас скажу скока...

36 офсет для ИЛа
__________________
Начало.

Последний раз редактировалось supernewbie, 30.12.2010 в 14:49.
supernewbie вне форума   Ответить с цитированием
Старый 30.12.2010, 14:26   #15
Местный
 
Аватар для Nickers
 
Регистрация: 23.11.2009
Сообщений: 574
Сказал Спасибо: 134
Имеет 117 спасибок в 82 сообщенях
Nickers пока неопределено
По умолчанию

Ну дык я примерно это и описывал)) Только у меня не переменные а Массив переменных Adena[1] это ID, 2 - OID, 3- Count)) Офф сет у меня прост через Inc'и =)

Массив то как раз и не двумерный, потому что адена тока одна))
Весь массив принадлежит адене и ее хар-кам...
__________________
Пишу что думаю, но ничего не знаю...
[LameGuard|Скрипты l2phx]

Последний раз редактировалось Nickers, 30.12.2010 в 14:38.
Nickers вне форума   Ответить с цитированием
Старый 30.12.2010, 14:49   #16
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

какие тут впринципе нужны характеристики кроме количества, хм
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
Старый 31.12.2010, 02:40   #17
Местный
 
Регистрация: 11.06.2010
Сообщений: 644
Сказал Спасибо: 119
Имеет 85 спасибок в 77 сообщенях
dyh9l пока неопределено
По умолчанию

Nickers, я бы с ним не спорил
__________________
dyh9l вне форума   Ответить с цитированием
Старый 31.12.2010, 16:05   #18
Местный
 
Аватар для Nickers
 
Регистрация: 23.11.2009
Сообщений: 574
Сказал Спасибо: 134
Имеет 117 спасибок в 82 сообщенях
Nickers пока неопределено
По умолчанию

Цитата:
Ну дык я примерно это и описывал)) Только у меня не переменные а Массив переменных Adena[1] это ID, 2 - OID, 3- Count)) Офф сет у меня прост через Inc'и =)
Я и не спорил, что мой вариант лучше или что-то типо того...

Цитата:
нече не понял о чем ты
Прост объяснил то, как у меня было (В голове, а он не понял)
Прост и так нормально...
(Мне нравятся массивы =Р и когда подробная инфа тоже =РРРР)
__________________
Пишу что думаю, но ничего не знаю...
[LameGuard|Скрипты l2phx]

Последний раз редактировалось Nickers, 31.12.2010 в 16:07.
Nickers вне форума   Ответить с цитированием
Старый 20.01.2012, 18:47   #19
Пользователь
 
Регистрация: 18.09.2011
Сообщений: 88
Сказал Спасибо: 59
Имеет 2 спасибок в 2 сообщенях
Roman32 пока неопределено
По умолчанию

Да тут всё намного проще)заходиш в пх жмёш вкладку просмотр,юзаеш этот скил В Л2и он появиться логе в пх там будет requestmagicskilluse.жмёш правой кнопкой по нему будет отправить в посылки,потом во вкладке посылка"жмёш на часики и чтоб отправлял каждые 5 ссек и готово)должен понять что я написал хД
Roman32 вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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