Скриптинг Форум посвещенный созданию скриптов для L2PacketHack
16.01.2009, 12:13
#61
Рыцарь
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
-=[B1@©k}{ac]{e®]=-™ , если скрипт грамотно написан и заточен на то, чтоб работать даже без клиента - то да.
16.01.2009, 13:00
#62
Новичок
Регистрация: 17.12.2008
Сообщений: 12
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
QaK , пытался править скрипт бота-бафера...
Оффтоп
delphi Код:
//by vimin
//Скрипт для SE, чтобы бегал, лечил и бафал по команде от командира.
const //баффы
b1='2F 10 04 00 00 00 00 00 00 00' ; // Shield
b2='2F 0B 04 00 00 00 00 00 00 00' ; // Mental Shield
b3='2F 23 04 00 00 00 00 00 00 00' ; // Empower
b4='2F B4 04 00 00 00 00 00 00 00' ; // Wind Walk
b5='2F 36 04 00 00 00 00 00 00 00' ; // Concentration
var
IDPartyMember, IDAssistTarget: String ; //ИД командира и ИД его таргета и Собственный ИД
CoordBufX, CoordBufY, CoordBufZ :String ; //координаты бота
NameBuffer, NameKomandos : String ; // Имена
x: integer ;
timer1: TTimer;
procedure OnTimer( Sender: TObject ) ;
begin
case x of
1 : begin
//выделяем командира, эмулируя щелчек мыши
buf:=hstr( '04' ) + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr( '00' ) ;
SendToServerEX( NameBuffer) ;
buf:=hstr( b1) ;
SendToServerEx( NameBuffer) ;
x:=x+1 ;
end ;
2 : begin
buf:=hstr( b2) ;
SendToServerEx( NameBuffer) ;
x:=x+1 ;
end ;
3 : begin
buf:=hstr( b3) ;
SendToServerEx( NameBuffer) ;
x:=x+1 ;
end ;
4 : begin
buf:=hstr( b4) ;
SendToServerEx( NameBuffer) ;
x:=x+1 ;
end ;
5 : begin
buf:=hstr( b5) ;
SendToServerEx( NameBuffer) ;
x:=0 ;
timer1.enabled :=false ;
end ;
end ;
end ;
procedure bRun;
begin
if ( CoordBufX <> '' ) and ( IDPartyMember <> '' ) then
begin
//выделяем командира, эмулируя щелчек мыши
buf:=hstr( '04' ) + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr( '00' ) ;
SendToServerEX( NameBuffer) ;
//бежим за командиром эмулируя повторный щелчек мыши по таргету
buf:=hstr( '04' ) + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr( '00' ) ;
SendToServerEX( NameBuffer) ;
end ;
end ;
procedure bHeal;
begin
if ( CoordBufX <> '' ) and ( IDPartyMember <> '' ) then
//if (IDPartyMember <> '') then
begin
//выделяем командира, эмулируя щелчек мыши
buf:=hstr( '04' ) + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr( '00' ) ;
SendToServerEx( NameBuffer) ;
// хил
buf:=hstr( '2F C1 04 00 00 00 00 00 00 00' ) ; // Greater Heal
//отправляем пакет серваку
SendToServerEx( NameBuffer) ;
end ;
end ;
procedure bRecharge;
begin
// таргет командира
buf:=hstr( '04' ) + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr( '00' ) ;
SendToServerEx( NameBuffer) ;
// речарж
buf:=hstr( '2F F5 03 00 00 00 00 00 00 00' ) ; // Recharge
//отправляем пакет серваку
SendToServerEx( NameBuffer) ;
//Say('Make recharge');
end ;
procedure Init; //Вызывается при включении скрипта
begin
NameBuffer:='Buffer' ;
NameKomandos:='Komandos' ;
timer1:=TTimer.Create ( nil ) ;
timer1.OnTimer :=@OnTimer;
timer1.enabled :=false ;
timer1.interval :=5000 ;
x:=0 ;
end ;
procedure Free; //Вызывается при выключении скрипта
begin
timer1.Free ;
end ;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if pck='' then exit ;
//если от сервака принят пакет с ИД и Координатами членов пати то
if FromServer and ( pck[1 ]=#$a7) then
begin
//запоминаем ИД командира
IDPartyMember:=pck[6 ] + pck[7 ] + pck[8 ] + pck[9 ];
end ;
//если принят пакет от клиента с кординатами бафера то
if FromClient and ( ConnectName=NameBuffer) and ( pck[1 ]=#$48 ) then
begin
//запоминаем координаты
CoordBufX:= pck[6 ] + pck[7 ] + pck[8 ] + pck[9 ];
CoordBufY:= pck[10 ] + pck[11 ] + pck[12 ] + pck[13 ];
CoordBufZ:= pck[14 ] + pck[15 ] + pck[16 ] + pck[17 ];
end ;
//далее идут управляющие команды
//если КОМАНДИР пишет в любой чат цифру "1" (код "#$31 #$00" в юникоде (в юникоде под 1 символ используются 2 байта) я так понял) то
if FromClient and ( ConnectName=NameKomandos) and ( pck[1 ]=#$38 ) then
if ( pck[2 ]=#$31 ) and ( pck[3 ]=#$00 ) then
begin
//убиваем этот пакет, чтоб сервер его не получил
pck:='' ;
//Бафер БЕЖИТ за КОМАНДИРОМ
bRun;
//выйти из рабочей части скрипта чтобы другие услови не проверяли убитый пакет нулевой длинны
exit ;
end ;
// если КОМАНДИР пишет в любой чат цифру "2"
if FromClient and ( ConnectName=NameKomandos) and ( pck[1 ]=#$38 ) then
if ( pck[2 ]=#$32 ) and ( pck[3 ]=#$00 ) then
begin
//убиваем этот пакет, чтоб сервер его не получил
pck:='' ;
bHeal;
exit ;
end ;
// если КОМАНДИР пишет в любой чат цифру "3" (речардж)
if FromClient and ( ConnectName=NameKomandos) and ( pck[1 ]=#$38 ) then
if ( pck[2 ]=#$33 ) and ( pck[3 ]=#$00 ) then
begin
//убиваем этот пакет, чтоб сервер его не получил
pck:='' ;
bRecharge;
exit ;
end ;
// если КОМАНДИР пишет в любой чат цифру "4" (ребаф)
if FromClient and ( ConnectName=NameKomandos) and ( pck[1 ]=#$38 ) then
if ( pck[2 ]=#$34 ) and ( pck[3 ]=#$00 ) then
begin
//убиваем этот пакет, чтоб сервер его не получил
pck:='' ;
// бафы
timer1.enabled :=true ;
x:=1 ;
exit ;
end ;
end .
нужно было, что бы чар кидал Seed of fire... поправил на
Оффтоп
delphi Код:
const //баффы
b1='2F 05 05 00 00 00 00 00 00 00' ; // Seed of fire
var
IDPartyMember, IDAssistTarget: String ; //ИД командира и ИД его таргета и Собственный ИД
CoordBufX, CoordBufY, CoordBufZ :String ; //координаты бота
NameBuffer, NameKomandos : String ; // Имена
x: integer ;
timer1: TTimer;
procedure OnTimer( Sender: TObject ) ;
begin
if x=1 then
begin
//выделяем командира, эмулируя щелчек мыши
buf:=hstr( '04' ) + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr( '00' ) ;
SendToServerEX( NameBuffer) ;
x:=2 ;
end
else if x=2 then
begin
buf:=hstr( b1) ;
SendToServerEx( NameBuffer) ;
x:=0 ;
end ;
end ;
procedure bRun;
begin
if ( CoordBufX <> '' ) and ( IDPartyMember <> '' ) then
begin
//выделяем командира, эмулируя щелчек мыши
buf:=hstr( '04' ) + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr( '00' ) ;
SendToServerEX( NameBuffer) ;
//бежим за командиром эмулируя повторный щелчек мыши по таргету
buf:=hstr( '04' ) + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr( '00' ) ;
SendToServerEX( NameBuffer) ;
end ;
end ;
procedure bHeal;
begin
if ( CoordBufX <> '' ) and ( IDPartyMember <> '' ) then
//if (IDPartyMember <> '') then
begin
//выделяем командира, эмулируя щелчек мыши
buf:=hstr( '04' ) + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr( '00' ) ;
SendToServerEx( NameBuffer) ;
// хил
buf:=hstr( '2F C1 04 00 00 00 00 00 00 00' ) ; // Greater Heal
//отправляем пакет серваку
SendToServerEx( NameBuffer) ;
end ;
end ;
procedure bRecharge;
begin
// таргет командира
buf:=hstr( '04' ) + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr( '00' ) ;
SendToServerEx( NameBuffer) ;
// речарж
buf:=hstr( '2F F5 03 00 00 00 00 00 00 00' ) ; // Recharge
//отправляем пакет серваку
SendToServerEx( NameBuffer) ;
//Say('Make recharge');
end ;
procedure Init; //Вызывается при включении скрипта
begin
NameBuffer:='BlackStyle' ;
NameKomandos:='GamellOver' ;
timer1:=TTimer.Create ( nil ) ;
timer1.OnTimer :=@OnTimer;
timer1.enabled :=false ;
timer1.interval :=5000 ;
x:=0 ;
end ;
procedure Free; //Вызывается при выключении скрипта
begin
timer1.Free ;
end ;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if pck='' then exit ;
//если от сервака принят пакет с ИД и Координатами членов пати то
if FromServer and ( pck[1 ]=#$a7) then
begin
//запоминаем ИД командира
IDPartyMember:=pck[6 ] + pck[7 ] + pck[8 ] + pck[9 ];
end ;
//если принят пакет от клиента с кординатами бафера то
if FromClient and ( ConnectName=NameBuffer) and ( pck[1 ]=#$48 ) then
begin
//запоминаем координаты
CoordBufX:= pck[6 ] + pck[7 ] + pck[8 ] + pck[9 ];
CoordBufY:= pck[10 ] + pck[11 ] + pck[12 ] + pck[13 ];
CoordBufZ:= pck[14 ] + pck[15 ] + pck[16 ] + pck[17 ];
end ;
//далее идут управляющие команды
//если КОМАНДИР пишет в любой чат цифру "1" (код "#$31 #$00" в юникоде (в юникоде под 1 символ используются 2 байта) я так понял) то
if FromClient and ( ConnectName=NameKomandos) and ( pck[1 ]=#$38 ) then
if ( pck[2 ]=#$31 ) and ( pck[3 ]=#$00 ) then
begin
//убиваем этот пакет, чтоб сервер его не получил
pck:='' ;
//Бафер БЕЖИТ за КОМАНДИРОМ
bRun;
// бафы
timer1.enabled :=true ;
x:=1 ;
exit ;
//выйти из рабочей части скрипта чтобы другие услови не проверяли убитый пакет нулевой длинны
exit ;
end ;
end .
но неработает... все ли я правильно сделал ?.. если нет, поправьте плз..
Последний раз редактировалось QaK, 16.01.2009 в 13:33 .
16.01.2009, 13:33
#63
Рыцарь
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
Поправил второй твой скрипт, проверь.
За это сообщение QaK нажился спасибкой от:
18.01.2009, 13:47
#64
Новичок
Регистрация: 17.12.2008
Сообщений: 12
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
не работает... не происходит выделение основного чара... если через бота выделить, то норм.... а так неработает..
Последний раз редактировалось -=[B1@©k}{ac]{e®]=-™, 20.01.2009 в 05:53 .
18.02.2009, 01:25
#65
Новичок
Регистрация: 13.12.2008
Сообщений: 4
Сказал Спасибо: 3
Имеет 0 спасибок в 0 сообщенях
Код:
if ((FromClient) and (pck[1]=#$1F) and (ConnectName='Nick') and (NSetup=0)) then
begin
MyID:=ReadD(2);
NSetup:=1;
pck:='';
end;
phx выдает ошибку и пакет не блокируется. Подскажите почему.
18.02.2009, 19:23
#66
Пользователь
Регистрация: 05.02.2009
Сообщений: 62
Сказал Спасибо: 1
Имеет 18 спасибок в 9 сообщенях
Snat4 , Вроде нормально все. Попробуй перед этим кодом добавить:
Код:
if pck = '' then exit;
Да, и написал бы еще какая ошибка хоть.
18.02.2009, 21:47
#67
Рыцарь
Регистрация: 29.02.2008
Сообщений: 928
Сказал Спасибо: 127
Имеет 130 спасибок в 93 сообщенях
Snat4 , а выложи полностью пакет. и что это за пакет хотя б какие хроники.
19.02.2009, 01:26
#68
Новичок
Регистрация: 13.12.2008
Сообщений: 4
Сказал Спасибо: 3
Имеет 0 спасибок в 0 сообщенях
Такая ошибка:
Код:
Access violation at address 00550C21 in module 'l2pbx.exe'. Read of address 00000000.
#$1F - пакет от клиента "Action" (в основном выбор таргета).
К примеру такой:
Код:
1F BD D8 00 4B C2 6D 00 00 C8 2A 00 00 77 EF FF FF 00
Основная прелесть в том, что даже если я пишу вот такое, то та же ошибка:
Код:
if ((FromClient) and (pck[1]=#$19) and (NSetup=1)) then
begin
ItemWindStrike:=ReadD(2);
pck:='';
NSetup:=2;
Mess('Blah-Blah-Blah');
end;
Где #$19 - от клиента UseItem пакет.
ItemWindStrike, MyID: integer;
Хроники - камаэль Хэллбаунд. В настройках пнх у меня стоит галочка на Kamael и снята с Gracia. Версия пнх - L2phx 3.4.1.61.
ЗЫ: прошу прощения что сразу не все написал подробно.
Последний раз редактировалось Snat4, 19.02.2009 в 01:31 .
19.02.2009, 14:10
#69
Пользователь
Регистрация: 05.02.2009
Сообщений: 62
Сказал Спасибо: 1
Имеет 18 спасибок в 9 сообщенях
Snat4 , Тут уже похоже дело не в скрипте а пакетхаке. У меня бывает слетает так же, рестарт PHX помогает.
Если вообще этот код убрать, ошибка вылетает?
19.02.2009, 15:09
#70
Новичок
Регистрация: 13.12.2008
Сообщений: 4
Сказал Спасибо: 3
Имеет 0 спасибок в 0 сообщенях
Цитата:
Сообщение от
lexayar
Snat4 , Тут уже похоже дело не в скрипте а пакетхаке. У меня бывает слетает так же, рестарт PHX помогает.
Если вообще этот код убрать, ошибка вылетает?
Если убрать строчку
, тогда все нормально работает. Но мне желательно бы блокировать эти пакеты
Есть нъюанс: Если нажать на кнопочку "Ок" когда вылетает эта ошибка в РНХ, то скрипт продолжает нормально работать, при этом пакет, которых я хотел блокировать, все-таки проходит. Что-то похоже на Delay но только пока не нажму на кнопку "Ок"))
Еще нъюансик: когда вылетает эта ошибка - клиент полностью зависает и ни на что не реагирует. После нажатия на кнопочке "Ок" все продолжает нормально работать.
Последний раз редактировалось Snat4, 19.02.2009 в 15:16 .
Опции темы
Опции просмотра
Линейный вид
Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
Часовой пояс GMT +4, время: 08:43 .
vBulletin style designed by
MSC Team .
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод:
zCarot
Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!