Скриптинг Форум посвещенный созданию скриптов для 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 , вообще не блочил пакеты, хотя поидее он должен работать.
08.02.2010, 17:39
#4
Пользователь
Регистрация: 03.09.2009
Сообщений: 63
Сказал Спасибо: 19
Имеет 5 спасибок в 3 сообщенях
delphi Код:
function GetInv( obj,up,down:integer ) : integer ; // up и down не проверяются
var // 0-itemType1, 1-ObjectId, 2-ItemID, 3-count, 4-itemType2, 5-CustType1, 6-isEquipped, 7-BodyPart, 8-EnchantLevel, 9-CustType2
i: integer ;
begin
for i:=0 to CurrentInvRazmer do if ( Inventory[i,up]=obj) then
begin
Result:=Inventory[i,down];
exit ;
end ;
Result:=-1 ;
end ;
procedure UseItemObjID( ItemObjID:integer ) ; //Использовать предмет с заданным ItemID
begin
buf:=#$19 ;
WriteD( ItemObjID) ;
WriteD( 0 ) ;
SendToServerEx( NickName) ;;
end ;
procedure UserInfo; // обновление донных о себе
var
i:word ;
begin
MyID:=ReadD( 18 ) ;
MyX:=ReadD( 2 ) ;
MyY:=ReadD( 6 ) ;
MyZ:=ReadD( 10 ) ;
i:=22 ;
ReadS( i) ;
i:=i+48 ;
MyMaxHP:=ReadD( i) ;
MyHP:=ReadD( i) ;
MyMaxMP:=ReadD( i) ; // чисто информативно
MyMP:=ReadD( i) ;
end ;
procedure StatusUpdate; // обновление данных о себе
var
i:integer ;
begin
for i:=0 to ReadD( 6 ) -1 do
case pck[i*8 +10 ] of
#$09 : MyHP:=ReadD( i*8 +14 ) ;
#$0A: MyMaxHP:=ReadD( i*8 +14 ) ;
#$0B: MyMP:=ReadD( i*8 +14 ) ;
#$0C: MyMaxMP:=ReadD( i*8 +14 ) ;
end ;
if MyMaxHP > 0 then HPlevelProcent:= Round ( ( MyMaxHP/100 ) *HPlevelProcent) ;
end ;
procedure DrinkBottle; // пьем бутылки и следим за их количеством
begin
if ( HPBottleCount > 0 ) and ( HPBottleObjID > 0 ) then
begin
UseItemObjID( HPBottleObjID) ;
UseItemID( HPBottleID) ;
dec ( HPBottleCount) ;
end ;
end ;
begin // Далее обработка входящих пакетов
if pck = '' then exit ;
if ( ConnectName = NickName) and FromServer then
case pck[1 ] of
#$32 : if ReadS( 22 ) = NickName then UserInfo;
#$18 : if MyID=ReadD( 2 ) then // StatusUpdate:h(ObjectID)d(Attributes)
begin
StatusUpdate;
if ( MyHP > 0 ) and ( MyHP < HPlevelProcent) then if Wait( time1, DrinkDelay) then DrinkBottle; // пьем бутылки с интервалом в 19 сек
if ( MyHP > 0 ) and ( MyHP > HPlevelProcent) then time1:=1 ;
end ;
#$11 : begin
InventoryCreate; // Инвентарь
if HPBottleID <> 0 then
begin
HPBottleObjID:= getinv( HPBottleID, 2 ,1 ) ;
HPBottleCount:= getinv( HPBottleID, 2 ,3 ) ;
end ;
end ;
#$21 : begin
InventoryUpdate;
if HPBottleID <> 0 then
begin
HPBottleObjID:= getinv( HPBottleID, 2 ,1 ) ;
HPBottleCount:= getinv( HPBottleID, 2 ,3 ) ;
end ;
end ;
end ;
end .
//nlobp: заключайте код в теги [ HIGHLIGHT = "delphi" ][ / HIGHLIGHT ] (самая правая решетка, параметр delphi)
Последний раз редактировалось NLObP, 09.02.2010 в 00:34 .
09.02.2010, 03:18
#5
Пользователь
Регистрация: 03.09.2009
Сообщений: 63
Сказал Спасибо: 19
Имеет 5 спасибок в 3 сообщенях
Дык закоменчена она а скрипт не хилит((( Я просто хочу написать автохил минимального размера. но что-то даже это пока не идет. Помочь может кто?
11.02.2010, 18:29
#6
Рыцарь
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
скрипт на коленке писался.. самим тяжело догадаться что надо ?
case readd(10) of
__________________
L2Ext - project closed.
За это сообщение alexteam нажился 2 спасибками от:
11.02.2010, 18:53
#7
Новичок
Регистрация: 23.01.2010
Сообщений: 7
Сказал Спасибо: 3
Имеет 0 спасибок в 0 сообщенях
Цитата:
Сообщение от
alexteam
скрипт на коленке писался.. самим тяжело догадаться что надо ?
case readd(10) of
и правда, так гораздо лучше.
10.04.2010, 19:23
#8
Новичок
Регистрация: 10.04.2010
Сообщений: 2
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
Люди добрые! Никак не могу найти скрипт на авто-рыбалку для л2пх 3.5.33.164... Пробовал изданные раньше скрипты, не работают. Помогите пожалуйста!
10.04.2010, 19:29
#9
Рыцарь
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
Михаил111 , учиться, учиться, и еще раз учиться. Бери скрипты, какие есть - правь сам под свой сервак.
За это сообщение QaK нажился спасибкой от:
10.04.2010, 19:37
#10
Новичок
Регистрация: 10.04.2010
Сообщений: 2
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
Не умею, пардоньте... Может подскажете как? У нас на сервере есть Рыболов-Бот, но покупать его за бешенные цены... серв l2rx.com
Добавлено через 4 минуты
Ах да, еще нашел тему со скриптами на рыбалку, но вот незадача - немогу скачать, пишет:
Warning: copy(./downloads///ec_tmp/fishing_by_NLObP.zip) [function.copy]: failed to open stream: Permission denied in /downloads.php on line 700
ERROR: File not found.
Последний раз редактировалось Михаил111, 10.04.2010 в 19:37 .
Причина: Добавлено сообщение
Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
Часовой пояс GMT +4, время: 10:38 .
vBulletin style designed by
MSC Team .
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод:
zCarot
Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!