Скриптинг Форум посвещенный созданию скриптов для L2PacketHack
21.05.2009, 11:19
#1
Рыцарь
Регистрация: 21.09.2007
Сообщений: 376
Сказал Спасибо: 11
Имеет 218 спасибок в 106 сообщенях
Автозаточка, просто и сердито!
Расчитано на пвп серваки и изобилие блес точек...
Использование: включаем скрипт,
включаем скрипт << СМОТРЕТЬ
забиваем ник и уровень точки, точим нужную шмотку на +1(не важно со скольки), скрипт запоминает необходимые данные, 1е соц действие включает и выключает автозаточку.
1е соц действие << СМОТРЕТЬ
Скорость заточки выставлена 500мс(+2 в секунду), можно ускорять или замедлять в зависимости от сервака...
>>>
1-й скрипт от mks
delphi Код:
const
nik='xxxx' ;
Enchant=13 ;
var
UseItem, EnchantItem: string ;
Count, CurrentEnch: integer ;
Timer01: TTimer;
procedure Init;
begin
Timer01:=TTimer.Create ( nil ) ;
Timer01.OnTimer :=@OnTimer01;
Timer01.enabled :=false ;
Timer01.interval :=500 ;
end ;
procedure OnTimer01( Sender: TObject ) ;
begin
buf:=UseItem;
SendToServerEx( nik) ;
buf:=EnchantItem;
SendToServerEx( nik) ;
end ;
procedure Free;
begin
Timer01.free ;
count:=0 ;
CurrentEnch:=0 ;
end ;
begin
if FromServer and ( pck[1 ]=#$87 ) then
begin
CurrentEnch:=ReadD( 2 ) ;
if CurrentEnch=Enchant then Timer01.enabled :=false ;
end ;
if FromClient and ( pck[1 ]=#$19 ) then UseItem:=pck;
if FromClient and ( pck[1 ]=#$5F) then EnchantItem:=pck;
if FromClient and ( pck=#$34 #$02 #$00 #$00 #$00 ) then
begin
pck:='' ;
Timer01.enabled :=not ( Timer01.enabled ) ;
end ;
end .
<<<
Переделал для тех у кого 1й скрипт работает, но не останавливается заточив до указанного уровня:
>>>
2-й скрипт от mks
delphi Код:
const
nik='xxxx' ;
Enchant=30 ;
var
UseItem, EnchantItem: string ;
Count, CurrentEnch: integer ;
Timer01: TTimer;
procedure Init;
begin
Timer01:=TTimer.Create ( nil ) ;
Timer01.OnTimer :=@OnTimer01;
Timer01.enabled :=false ;
Timer01.interval :=500 ;
end ;
procedure OnTimer01( Sender: TObject ) ;
begin
buf:=UseItem;
SendToServerEx( nik) ;
buf:=EnchantItem;
SendToServerEx( nik) ;
end ;
procedure Free;
begin
Timer01.free ;
count:=0 ;
CurrentEnch:=0 ;
end ;
begin
if FromServer and ( pck[1 ]=#$87 ) then case ReadD( 2 ) of
0 : begin
CurrentEnch:=CurrentEnch+1 ;
if CurrentEnch=Enchant then Timer01.enabled :=false ;
end ;
2 : CurrentEnch:=0 ;
end ;
if FromClient and ( pck[1 ]=#$19 ) then UseItem:=pck;
if FromClient and ( pck[1 ]=#$5F) then EnchantItem:=pck;
if FromClient and ( pck=#$34 #$02 #$00 #$00 #$00 ) then
begin
pck:='' ;
Timer01.enabled :=not ( Timer01.enabled ) ;
end ;
end .
<<<
Переделал слегка для Грации Файнал.
Холява закончилась, если выставляешь интервал заточки меньше чем 2100мс получаешь авто-бан(возможно не везде так)
>>>
3-й скрипт от mks
delphi Код:
const
nik='xxxx' ;
Enchant=16 ;
var
UseItem, SelectItem, EnchantItem: string ;
Count, CurrentEnch, key, ItemID: integer ;
Timer01: TTimer;
procedure Init;
begin
Timer01:=TTimer.Create ( nil ) ;
Timer01.OnTimer :=@OnTimer01;
Timer01.enabled :=false ;
Timer01.interval :=2100 ;
end ;
procedure OnTimer01( Sender: TObject ) ;
begin
case key of
1 : begin
buf:=UseItem;
SendToServerEx( nik) ;
buf:=SelectItem;
SendToServerEx( nik) ;
end ;
2 : begin
buf:=EnchantItem;
SendToServerEx( nik) ;
end ;
end ;
end ;
procedure Free;
begin
Timer01.free ;
count:=0 ;
CurrentEnch:=0 ;
end ;
begin
if FromServer and ( pck[1 ]=#$87 ) then case ReadD( 2 ) of
0 : begin
CurrentEnch:=CurrentEnch+1 ;
if CurrentEnch=Enchant then Timer01.enabled :=false ;
end ;
3 : CurrentEnch:=0 ;
end ;
if FromServer and ( pck[1 ]=#$FE) then
if ReadD( 4 ) =ItemID then key:=2 else key:=1 ;
if FromClient and ( pck[1 ]=#$19 ) then UseItem:=pck;
if FromClient and ( pck[1 ]=#$D0) then
begin
ItemID:=ReadD( 4 ) ;
SelectItem:=pck;
end ;
if FromClient and ( pck[1 ]=#$5F) then EnchantItem:=pck;
if FromClient and ( pck[1 ]+pck[2 ]=#$56 #$0C) then
begin
pck:='' ;
Timer01.enabled :=not ( Timer01.enabled ) ;
end ;
end .
<<<
для Грации Файнал.
4-й скрипт от mks
добавлен 2й таймер
Последний раз редактировалось NLObP, 08.12.2009 в 23:07 .
За это сообщение mks нажился 41 спасибками от:
1oO ,
Acdsee ,
Amorality ,
Boom ,
Breadfan ,
DarkSnake ,
DenisTalipov ,
dev ,
Devik ,
DrBro ,
EnD1 ,
Foil ,
GvozD ,
HORSE ,
Hwoarang ,
Imperial2008 ,
Insane* ,
KaBa ,
kai5510 ,
leto ,
LOOOOO ,
Lukito ,
makrops ,
motograd ,
Nikit0s ,
NLObP ,
Pinko ,
pmen ,
Random-al ,
Red[SD] ,
TAMBIK ,
Tanuxa ,
Trayel ,
uFoZz ,
Universee ,
vasiliy ,
Xeff ,
zotrussia ,
Алексей ,
][_,~][][~][_, ,
°Exzest°
16.07.2009, 00:36
#141
Местный
Регистрация: 11.10.2007
Сообщений: 144
Сказал Спасибо: 44
Имеет 7 спасибок в 7 сообщенях
mks ,
Жду с нетерпением.)
Добавлено через 2 часа 16 минут
Еси не секрет, когда ждать выкладывания скрипта? Это сегодня будет?
Последний раз редактировалось Amorality, 16.07.2009 в 00:36 .
Причина: Добавлено сообщение
16.07.2009, 02:38
#142
Рыцарь
Регистрация: 21.09.2007
Сообщений: 376
Сказал Спасибо: 11
Имеет 218 спасибок в 106 сообщенях
Amorality , ой.. сори задержался)
собственно вот, пробуй:
скрипт для грации файнал
delphi Код:
const
nik='xxxx' ;
Enchant=16 ;
var
UseItem, SelectItem, EnchantItem: string ;
CurrentEnch: integer ;
key: boolean ;
Timer01: TTimer;
procedure Init;
begin
Timer01:=TTimer.Create ( nil ) ;
Timer01.OnTimer :=@OnTimer01;
Timer01.enabled :=false ;
Timer01.interval :=3000 ;
end ;
procedure OnTimer01( Sender: TObject ) ;
begin
case key of
false : begin
buf:=UseItem;
SendToServerEx( nik) ;
buf:=SelectItem;
SendToServerEx( nik) ;
end ;
true : begin
buf:=EnchantItem;
SendToServerEx( nik) ;
end ;
end ;
key:=not ( key) ;
end ;
procedure Free;
begin
Timer01.free ;
CurrentEnch:=0 ;
key:=false ;
end ;
begin
if FromServer and ( pck[1 ]=#$87 ) then case ReadD( 2 ) of
0 : begin
CurrentEnch:=CurrentEnch+1 ;
if CurrentEnch=Enchant then Timer01.enabled :=false ;
end ;
3 : CurrentEnch:=0 ;
end ;
if FromClient and ( pck[1 ]=#$19 ) then UseItem:=pck;
if FromClient and ( pck[1 ]=#$D0) then SelectItem:=pck;
if FromClient and ( pck[1 ]=#$5F) then EnchantItem:=pck;
if FromClient and ( pck[1 ]+pck[2 ]=#$56 #$0C) then
begin
pck:='' ;
Timer01.enabled :=not ( Timer01.enabled ) ;
end ;
end .
За это сообщение mks нажился 3 спасибками от:
16.07.2009, 05:43
#143
Местный
Регистрация: 11.10.2007
Сообщений: 144
Сказал Спасибо: 44
Имеет 7 спасибок в 7 сообщенях
mks ,
В целом механизм работает, но так, что смысла от него мало..
ТОчит несколько раз, а потом забывает положить в отсек вещь и меня кикает с сервера со словами "Гм вкурсе, удачи". Может потому что он слишком быстро отправляет пакеты? Увеличение задержки вплоть до 5 сек. проблему не решило.. Однако может стоит еще добавить задержку в пол секунды перед тем, как ПНХ ложит вещь в отсек? А то мне кажется он просто не успевает.
Или проверять, лежить ли вещь в отсеке, если лежит, то только тогда нажимать "Точить", если нет, то ложить снова.. иначе будет кикать.
Попровь плз скрипт, надеюсь поможешь.
16.07.2009, 10:53
#144
Рыцарь
Регистрация: 21.09.2007
Сообщений: 376
Сказал Спасибо: 11
Имеет 218 спасибок в 106 сообщенях
Amorality ,
Цитата:
Однако может стоит еще добавить задержку в пол секунды перед тем, как ПНХ ложит вещь в отсек?
Да попробуй, изначально я делал там задержку, но при тестах убедился что на моем сервере она не нужна.
Цитата:
Или проверять, лежить ли вещь в отсеке, если лежит, то только тогда нажимать "Точить", если нет, то ложить снова.. иначе будет кикать.
можно и так попробовать
у меня ща нет возможности тестить, так что пробуй, если че получаться не будет я помогу
За это сообщение mks нажился спасибкой от:
16.07.2009, 12:14
#145
Рыцарь
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
Уважаемые! Вам дали отправную точку. Остальные исправления для конкретного сервера делайте сами. Почему не можете понять, что у топискастера может не быть возможности, времени или желания править каждую запятую?
PS: От полученных результатов не откажемся.
За это сообщение NLObP нажился спасибкой от:
16.07.2009, 18:23
#146
Местный
Регистрация: 11.10.2007
Сообщений: 144
Сказал Спасибо: 44
Имеет 7 спасибок в 7 сообщенях
Дайте плз какие-нить советы чтоли, куда вообще копать для проверки нахождения вещи в отсеке точки..
Ну или как добавить промежуток в данном скрипте, если он уже реализован через Timer, not и case?
16.07.2009, 18:35
#147
Рыцарь
Регистрация: 21.09.2007
Сообщений: 376
Сказал Спасибо: 11
Имеет 218 спасибок в 106 сообщенях
Ну поскольку этот промежуток я думаю не следует делать таким же большим как и в основном таймере, считаю будет лучше добавить второй таймер, ща сотрудники свалят попробуем
За это сообщение mks нажился спасибкой от:
16.07.2009, 19:01
#148
Местный
Регистрация: 11.10.2007
Сообщений: 144
Сказал Спасибо: 44
Имеет 7 спасибок в 7 сообщенях
mks ,
Ну а проверить наличие в слоте похоже невозможно.. ничего подобного не приходит и не уходит в пакетах.
16.07.2009, 19:24
#149
Рыцарь
Регистрация: 21.09.2007
Сообщений: 376
Сказал Спасибо: 11
Имеет 218 спасибок в 106 сообщенях
Amorality , добавил 2й таймер, в данном скрипте получается идет пакет UseItem, 500ms, SelectItem, 2500ms(этот интервал равен интервал 1го таймера минус интервал 2го), EnchantItem.
Пробуй, скрипт в блокноте писал)
delphi Код:
const
nik='xxxx' ;
Enchant=16 ;
var
UseItem, SelectItem, EnchantItem: string ;
CurrentEnch: integer ;
key: boolean ;
Timer01, Timer02: TTimer;
procedure Init;
begin
Timer01:=TTimer.Create ( nil ) ;
Timer01.OnTimer :=@OnTimer01;
Timer01.enabled :=false ;
Timer01.interval :=3000 ;
Timer02:=TTimer.Create ( nil ) ;
Timer02.OnTimer :=@OnTimer02;
Timer02.enabled :=false ;
Timer02.interval :=500 ;
end ;
procedure OnTimer01( Sender: TObject ) ;
begin
case key of
false : begin
buf:=UseItem;
SendToServerEx( nik) ;
Timer02.enabled :=true ;
end ;
true : begin
buf:=EnchantItem;
SendToServerEx( nik) ;
end ;
end ;
key:=not ( key) ;
end ;
procedure OnTimer02( Sender: TObject ) ;
begin
buf:=SelectItem;
SendToServerEx( nik) ;
Timer02.enabled :=false ;
end ;
procedure Free;
begin
Timer01.free ;
Timer02.free ;
CurrentEnch:=0 ;
key:=false ;
end ;
begin
if FromServer and ( pck[1 ]=#$87 ) then case ReadD( 2 ) of
0 : begin
CurrentEnch:=CurrentEnch+1 ;
if CurrentEnch=Enchant then Timer01.enabled :=false ;
end ;
3 : CurrentEnch:=0 ;
end ;
if FromClient and ( pck[1 ]=#$19 ) then UseItem:=pck;
if FromClient and ( pck[1 ]=#$D0) then SelectItem:=pck;
if FromClient and ( pck[1 ]=#$5F) then EnchantItem:=pck;
if FromClient and ( pck[1 ]+pck[2 ]=#$56 #$0C) then
begin
pck:='' ;
Timer01.enabled :=not ( Timer01.enabled ) ;
end ;
end .
Последний раз редактировалось mks, 16.07.2009 в 19:35 .
За это сообщение mks нажился 5 спасибками от:
17.07.2009, 00:52
#150
Местный
Регистрация: 11.10.2007
Сообщений: 144
Сказал Спасибо: 44
Имеет 7 спасибок в 7 сообщенях
mks ,
Все пашет, спасибо большое
Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
Часовой пояс GMT +4, время: 22:00 .
vBulletin style designed by
MSC Team .
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод:
zCarot
Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!