Скриптинг Форум посвещенный созданию скриптов для L2PacketHack
08.02.2010, 17:39
#1
Пользователь
Регистрация: 03.09.2009
Сообщений: 63
Сказал Спасибо: 19
Имеет 5 спасибок в 3 сообщенях
Подскажите где ошибка пжл. сервер грация
delphi Код:
const
NickName = '3ayp' ;
HPMedium = 95 ;
HPBottleID = 1061 ; //1061=Healing Potion;
DrinkDelay = 14 ;
InvRazmer = 79 ;
var
MyX, MyY,MyZ : integer ;
MyID, MyHP, MyMaxHP: integer ;
MyMP, MyMaxMP : integer ;
HPlevelProcent : integer ;
CurrentInvRazmer : integer ;
TargetID : integer ;
time1: integer ;
Inventory: array[0 ..InvRazmer , 0 ..9 ] of integer ;
HPBottleObjID: integer ;
HpBottleCount: integer ;
procedure Init; //Вызывается при включении скрипта
begin
MyID:= 0 ;
MyX:= 0 ;
MyY:= 0 ;
MyZ:= 0 ;
MyID:= 0 ;
MyHP:= 0 ;
MyMaxHP:= 0 ;
MyMP:= 0 ;
MyMaxMP:= 0 ;
TargetID:=0 ;
time1:=1 ;
buf:= #$14 ;
SendToServerEx( NickName) ;
end ;
function Wait( var tick: integer ;Timewait: Integer ) : Boolean ; // сквозная проверка без остановки скрипта (c)dmitry501, modifed by Sh00rGo
var
t: integer ;
begin
result:=false ;
t:=Round ( Time *86400 ) ;
if t>( tick+Timewait) then begin
if tick>0 then result:=true ;
tick:=t;
end ;
end ;
procedure UseItemID( ItemID:integer ) ; //Использовать предмет с заданным ItemID
var
ObjItemID : integer ;
begin
ObjItemID:= GetInv( ItemID,2 ,1 ) ;
if ObjItemID = -1 then exit ;
buf:=#$19 ;
WriteD( ObjItemID) ;
WriteD( 0 ) ;
SendToServerEx( NickName) ;;
end ;
procedure InventoryCreate;
var
i,k, offset : integer ;
begin
offset:= 76 ;
CurrentInvRazmer:=ReadH( 4 ) ;
for i:=0 to InvRazmer do
if i < CurrentInvRazmer then begin
Inventory[i,0 ]:=ReadH( i*( 28 +offset) +6 ) ; // itemType1
Inventory[i,1 ]:=ReadD( i*( 28 +offset) +8 ) ; // ObjectId
Inventory[i,2 ]:=ReadD( i*( 28 +offset) +12 ) ; // ItemID
Inventory[i,3 ]:=ReadD( i*( 28 +offset) +16 ) ; // count
Inventory[i,4 ]:=ReadH( i*( 28 +offset) +20 ) ; // itemType2
Inventory[i,5 ]:=ReadH( i*( 28 +offset) +22 ) ; // CustType1
Inventory[i,6 ]:=ReadH( i*( 28 +offset) +24 ) ; // isEquipped
Inventory[i,7 ]:=ReadD( i*( 28 +offset) +26 ) ; // BodyPart
Inventory[i,8 ]:=ReadH( i*( 28 +offset) +30 ) ; // EnchantLevel
Inventory[i,9 ]:=ReadH( i*( 28 +offset) +32 ) ; // CustType2
end else
for k:=0 to 9 do Inventory[i,k]:=0 ; // забиваем нулями
end ;
procedure InventoryUpdate;
var
i,j,k, offset: integer ;
begin
offset:= 82 ;
for j:=0 to ( ReadH( 2 ) -1 ) do
begin
case pck[j*offset+4 ] of
#$01 : k:=0 ; // add item, запишет на пустую ячейку
#$02 : k:=ReadD( j*offset+8 ) ; // mod item
#$03 : begin // remove item, обнулит ячейки удаленного предмета
k:=ReadD( j*offset+8 ) ;
for i:=0 to InvRazmer do if ( Inventory[i,1 ]=k) then
begin
for k:=0 to 9 do Inventory[i,k]:=0 ;
exit ;
end ;
end ;
end ;
for i:=0 to InvRazmer do if ( Inventory[i,1 ]=k) then
begin
Inventory[i,0 ]:=ReadH( j*offset+6 ) ; // itemType1
Inventory[i,1 ]:=ReadD( j*offset+8 ) ; // ObjectId
Inventory[i,2 ]:=ReadD( j*offset+12 ) ; // ItemID
Inventory[i,3 ]:=ReadD( j*offset+20 ) ; // count
Inventory[i,4 ]:=ReadH( j*offset+24 ) ; // itemType2
Inventory[i,5 ]:=ReadH( j*offset+26 ) ; // CustType1
Inventory[i,6 ]:=ReadH( j*offset+28 ) ; // isEquipped
Inventory[i,7 ]:=ReadD( j*offset+30 ) ; // BodyPart
Inventory[i,8 ]:=ReadH( j*offset+34 ) ; // EnchantLevel
Inventory[i,9 ]:=ReadH( j*offset+36 ) ; // CustType2
break ;
end ;
end ;
end ;
Последний раз редактировалось NLObP, 09.02.2010 в 00:32 .
09.02.2010, 00:31
#2
Рыцарь
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
tiranosaur , заремь строку
PS: проверяйте код в редакторе скриптов пакетхака, строки с ошибками он покажет.
Последний раз редактировалось NLObP, 09.02.2010 в 00:36 .
За это сообщение NLObP нажился спасибкой от:
11.02.2010, 18:16
#3
Новичок
Регистрация: 23.01.2010
Сообщений: 7
Сказал Спасибо: 3
Имеет 0 спасибок в 0 сообщенях
Код:
begin
if FromServer then
begin
case pck[1] of
#$05 : //пакет 05=SpawnItem
begin
case pck[10] of //по смещению 10 находится ItemID
17, 57, 1341..1345: pck:=''; //дропаем стрелы, адену, деревянные и т.д. стрелы
end;
end;
#$16 : //пакет 16=DropItem
begin
case pck[6] of //по смещению 06 находится ItemID
17, 57, 1341..1345: pck:=''; //дропаем стрелы, адену, деревянные и т.д. стрелы
end;
end;
end;
end;
end.
в общем сегодня выдался день потестить скрипты.
у
NLObP , сразу заметил что итемид в пакетах дропитем и спавнитем перепутаны местами, но самая печаль, то что скрипт выдает ошибку
Could not convert variant of type (String) into type (Double).
скрипт
tiranosaur , вообще не блочил пакеты, хотя поидее он должен работать.
Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
Часовой пояс GMT +4, время: 09:12 .
vBulletin style designed by
MSC Team .
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод:
zCarot
Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!