Скриптинг Форум посвещенный созданию скриптов для L2PacketHack
08.06.2009, 15:24
#1
Местный
Регистрация: 05.11.2008
Сообщений: 168
Сказал Спасибо: 35
Имеет 139 спасибок в 66 сообщенях
Вот как должен выглядеть твой скрипт
Оффтоп
delphi Код:
const
Name='fuck' ;
max =200 ; //Слотов в инвентаре
var
ItemBase: array[1 ..4 ,1 ..max ] of integer ;
ready:boolean ;
procedure Init;
begin
ready:=false ;
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;
if OID=arItemOID[arNum] then CurEnchLvl:=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 SumItem( Item: integer ) :integer ;
var
sum , i : integer ;
begin
result:=0 ;
for i:=1 to max do begin
if ( ItemBase[2 ,i]=item) then begin
result:=result+ItemBase[3 ,i];
end ;
end ;
end ;
BEGIN
//--- INVENTORY BEGIN ---//
if FromServer and ( ConnectName=Name) then case pck[1 ] of
#$1B: begin
CreateItemBase;
ready:=true ;
end ;
#$27 : begin
InventoryUpdate;
ready:=true ;
end ;
end ;
//--- INVENTORY END ---//
if ( SumItem( 6577 ) <=5 ) and ( ready=true ) then begin
buf:=HStr( '1F 9F 6E 05 00 1C 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 B1 19 00 00 01 00 00 00 ' ) ;
SendToServerEx( Name) ;
ready:=false ;
end ;
END .
Последний раз редактировалось Fer123, 08.06.2009 в 22:24 .
За это сообщение Fer123 нажился 3 спасибками от:
08.06.2009, 15:53
#2
Новичок
Регистрация: 26.05.2009
Сообщений: 11
Сказал Спасибо: 6
Имеет 0 спасибок в 0 сообщенях
Огромнейшее спасибо ! единственое этот скрипт я так понял поддержует только 80 слотов .. есди да то что мне изменить чтобы поддерживал 200
08.06.2009, 15:58
#3
Рыцарь
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
akkerman , поправил скрипт в посте Fer123 , там вначале SlotCount = количество слотов в инвентаре вычесть единицу.
За это сообщение QaK нажился спасибкой от:
08.06.2009, 17:16
#4
Новичок
Регистрация: 26.05.2009
Сообщений: 11
Сказал Спасибо: 6
Имеет 0 спасибок в 0 сообщенях
спасибо вам за ваш труд .. но у меня проблема когда я включаю скрипт
Он полностью игнорируя проверку начинает истерически посылать этот пакет! Забивая тем самым весь инвентарь .
Мне надо чтобы он проверял меньше ли 5 точек
и чтобы он отсылал данный пакет только 1 раз а не так много...
Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
Часовой пояс GMT +4, время: 19:04 .
vBulletin style designed by
MSC Team .
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод:
zCarot
Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!