L2PacketHackФорум программы L2PacketHack, всё что с ней связано находится тут.
Правила раздела!
Категорически запрещено:
* Просить пакеты/скрипты на шмот/адену/другие вещи;
* Просить (помочь) взломать/сломать сервак/аккаунт или раздеть/наказать кого-то на любом серваке;
* Просить научить работать с программой, если не понимаете элементарных вещей в отношениях клиент-сервер (так как, если вы их понимаете, то вопросов по основным возможностям программы быть недолжно);
* Все посты не удовлетворяющие этим запретам, а так же не относящиеся к теме будут удаляться при первой возможности.
* Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы.
* Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
* Данные запреты неподлежат обсуждению.
Прошу, мне не жалко, это старая версия моего ПВП скрипта.
Правда комментариев почти нет, но переменные сами за себя говорят.
И да кстати, С6 не существует, хроники заканчиваются либо на 4 либо 5.
delphi Код:
Const
Name='ник';
Health= 80;
ResCP= 35;
GCP= 5592;//Greater CP Potion
GHP= 1539;//Greater Healing Potion
SHP= 1061;
Var
NSHP, NGCP, NGHP, CharID, OidSHP, OidGHP, OidGCP,
MaxHP, CurHP, MaxCP, CurCP, FirTargID, SecTargID, i, HP: Integer;
TimerHP, TimerCP: TTimer;
PressCTRL, Res, Switch: boolean;
//******************************************************************************// Вызывается при включении скрипта//******************************************************************************procedure Init;
begin
PressCTRL:= False;
Res:= False;
Switch:= False;
FirTargID:= 0;
SecTargID:= 0;
NGCP:= 0;
NGHP:= 0;
NSHP:= 0;
MaxHP:= 1;
MaxCP:= 1;
HP:= Round((MaxHP/100)*Health);
TimerHP:=TTimer.Create(nil);
TimerHP.OnTimer:=@OnTimerHP;
TimerHP.enabled:= False;
TimerHP.interval:=15000;
TimerCP:=TTimer.Create(nil);
TimerCP.OnTimer:=@OnTimerCP;
TimerCP.Enabled:= False;
TimerCP.Interval:= 1000;
buf:=#$0F;
SendToServerEx(Name);
Say ('Cпам ЦП и ХП выключен');
Say ('ПВП режим не активен');
end;
//******************************************************************************//******************************************************************************// Вызывается при выключении скрипта//******************************************************************************procedure Free;
begin
TimerHP.Free;
TimerCP.Free;
end;
//******************************************************************************//******************************************************************************// Посылаем сообщение, которое видно только в окне бота//******************************************************************************Procedure Say(msg:string);
begin
buf:=hstr('4A 00 00 00 00');
WriteD(2);
WriteS(Name);
WriteS(msg);
SendToClientEx(Name);
end;
//******************************************************************************//******************************************************************************// Использование Вещей//******************************************************************************Procedure UseItem(OID: Integer);
begin
buf:= #$14;
WriteD(OID);
WriteD(00);
SendToServerEx(Name)end;
//******************************************************************************//******************************************************************************// Востановление ХП//******************************************************************************Procedure OnTimerHP(Sender: TObject);
beginif Switch thenbegin
UseItem (OidGHP);
Dec(NGHP);
endelsebegin
UseItem (OidSHP);
Dec(NSHP);
end;
end;
//******************************************************************************//******************************************************************************// Востановление ЦП//******************************************************************************Procedure OnTimerCP(Sender: TObject);
begin
UseItem (OidGCP);
Dec(NGCP);
end;
//******************************************************************************//******************************************************************************// Вызывается при приходе каждого пакета, если скрипт включен//******************************************************************************Begin//****************************************************************************//****************************************************************************//Не обрабатываем пустые пакетыIf pck=''thenexit;
//****************************************************************************//****************************************************************************//****************************************************************************//****************************************************************************//Обрабатываем пакеты от сервераIf FromServer and(ConnectName=Name)thenbegin//**************************************************************************//Если от сервака принят пакет UserInfo.If(pck[1]=#$04)thenbegin
CharID:= ReadD(18);
i:= 2*(Length(Name))+ 72;
MaxHP:= ReadD(i);
CurHP:= ReadD(i);
MaxCP:= ReadD(length(pck)-49);
CurCP:= ReadD(length(pck)-45);
end;
//**************************************************************************//**************************************************************************//Если от сервака принят пакет StatusUpdate.if(pck[1]=#$0E)and(pck[6]=#$04)thenbegin
CurHP:=ReadD(14);
MaxHP:=ReadD(22);
CurCP:=ReadD(30);
MaxCP:=ReadD(38);
end;
//**************************************************************************//**************************************************************************//Записываем ObjectID всех нужных предметовif pck[1]=#$1B thenbeginfor i:= 0toround(length(pck)/36)dobeginif(ReadH(i*36+4+8) = GCP)thenbegin
OidGCP:= ReadD(i*36+8);
NGCP:= ReadH(i*36+4+4+8);
end;
if(ReadH(i*36+4+8) = GHP)thenbegin
OidGHP:= ReadD(i*36+8);
NGHP:= ReadH(i*36+4+4+8);
end;
if(ReadH(i*36+4+8) = SHP)thenbegin
OidSHP:= ReadD(i*36+8);
NSHP:= ReadH(i*36+4+4+8);
end;
end;
end;
//**************************************************************************end;
//****************************************************************************//****************************************************************************//****************************************************************************//****************************************************************************//Обрабатываем пакеты от клиентаIf FromClient and(ConnectName=Name)thenbegin//**************************************************************************//Уменьшеньки счетчика банок при использовании в игреif(pck[1]= #$14)thenbegincase ReadD(2)of
OidGCP: Dec(NGCP);
OidGHP: Dec(NGHP);
OidSHP: Dec(NSHP);
end;
end;
//**************************************************************************//**************************************************************************//Авто CTRLif PressCTRL thenbeginIf(pck[1]=#$2F)then pck[6]:=#$01;
If(pck[1]= #$04)or(pck[1]= #$0A)thenbegin
FirTargID:= SecTargID;
SecTargID:= ReadD(2);
if(FirTargID = SecTargID)and(FirTargID<> 0)then pck[1]:=#$0A;
end;
end;
//**************************************************************************//**************************************************************************//Управлениеif(pck[1]=#$38)and(pck[10]=#$03)thenbegincase ReadS(2)of'234': if Switch thenbegin
Say ('Врубили маленькие бутылки');
Switch:= False;
endelsebegin
Say ('Врубили большие бутылки');
UseItem(OidGHP);
Switch:= True;
end;
'123': if Res thenbegin
Say ('Cпам ЦП и ХП выключен');
TimerHP.Enabled:= False;
TimerCP.Enabled:= False;
Res:= False;
endelsebegin
Say ('Cпам ЦП и ХП включен');
Res:= True;
end;
end;
pck:='';
exit;
end;
//**************************************************************************//**************************************************************************//Активация ПВП режимаif(pck[1]=#$57)thenbeginif PressCTRL thenbegin
PressCTRL:= False;
Say ('ПВП режим не активен');
endelsebegin
PressCTRL:= True;
Say ('ПВП режим активен');
end;
pck:='';
exit;
end;
//**************************************************************************//**************************************************************************//Уменьшеньки счетчика банок при использовании в игреif(pck[1]= #$14)thencase ReadD(2)of
OidGCP: Dec(NGCP);
OidGHP: Dec(NGHP);
OidSHP: Dec(NSHP);
end;
//**************************************************************************end;
//****************************************************************************//****************************************************************************//****************************************************************************//****************************************************************************//Условия начала востановления, запуск вотсановления//****************************************************************************If Res thenbegin//**************************************************************************//Активация востановления ЦПif PressCTRL thenbeginIf(((CurHP+CurCP)/(MaxHP+MaxCP)*100)<= ResCP)thenif(CurCP>0)and(NGCP>0)thenbeginifnot TimerCP.Enabledthenbegin
TimerCP.Enabled:= True;
UseItem (OidGCP);
Dec(NGCP);
end;
end;
If(CurCP>=(MaxCP-200))thenif TimerCP.Enabledthen TimerCP.Enabled:= False;
end;
//**************************************************************************//**************************************************************************//Активация востановления ХПif(CurHP <= HP)and(CurHP>0)thenbeginif(not TimerHP.Enabled)thenif Switch thenbeginif(NGHP>0)thenbegin
TimerHP.Enabled:= True;
UseItem (OidGHP);
Dec(NGHP);
end;
endelseif(NSHP>0)thenbegin
TimerHP.Enabled:= True;
UseItem (OidSHP);
Dec(NSHP);
end;
endelseIf TimerHP.Enabledthen TimerHP.Enabled:= False;
//**************************************************************************end;
//****************************************************************************//****************************************************************************//****************************************************************************End.
//******************************************************************************
Добавлено через 7 минут
А да чуть не забыл.
Управление:
123 в пати чат включение/выключение слежения за ЦП иХП
234 опять же в пати чат переключение между обычными НР и GHP банками (всё можно забить в макрос для удобства)
Клавиша B активация ПВП режима (не надо CTRL нажимать)
Последний раз редактировалось APXAHGEJI, 13.05.2008 в 19:06.
Причина: Добавлено сообщение
За это сообщение APXAHGEJI нажился 2 спасибками от:
Прошу, мне не жалко, это старая версия моего ПВП скрипта.
Правда комментариев почти нет, но переменные сами за себя говорят.
И да кстати, С6 не существует, хроники заканчиваются либо на 4 либо 5.
delphi Код:
Const
Name='ник';
Health= 80;
ResCP= 35;
GCP= 5592;//Greater CP Potion
GHP= 1539;//Greater Healing Potion
SHP= 1061;
Var
NSHP, NGCP, NGHP, CharID, OidSHP, OidGHP, OidGCP,
MaxHP, CurHP, MaxCP, CurCP, FirTargID, SecTargID, i, HP: Integer;
TimerHP, TimerCP: TTimer;
PressCTRL, Res, Switch: boolean;
//******************************************************************************// Вызывается при включении скрипта//******************************************************************************procedure Init;
begin
PressCTRL:= False;
Res:= False;
Switch:= False;
FirTargID:= 0;
SecTargID:= 0;
NGCP:= 0;
NGHP:= 0;
NSHP:= 0;
MaxHP:= 1;
MaxCP:= 1;
HP:= Round((MaxHP/100)*Health);
TimerHP:=TTimer.Create(nil);
TimerHP.OnTimer:=@OnTimerHP;
TimerHP.enabled:= False;
TimerHP.interval:=15000;
TimerCP:=TTimer.Create(nil);
TimerCP.OnTimer:=@OnTimerCP;
TimerCP.Enabled:= False;
TimerCP.Interval:= 1000;
buf:=#$0F;
SendToServerEx(Name);
Say ('Cпам ЦП и ХП выключен');
Say ('ПВП режим не активен');
end;
//******************************************************************************//******************************************************************************// Вызывается при выключении скрипта//******************************************************************************procedure Free;
begin
TimerHP.Free;
TimerCP.Free;
end;
//******************************************************************************//******************************************************************************// Посылаем сообщение, которое видно только в окне бота//******************************************************************************Procedure Say(msg:string);
begin
buf:=hstr('4A 00 00 00 00');
WriteD(2);
WriteS(Name);
WriteS(msg);
SendToClientEx(Name);
end;
//******************************************************************************//******************************************************************************// Использование Вещей//******************************************************************************Procedure UseItem(OID: Integer);
begin
buf:= #$14;
WriteD(OID);
WriteD(00);
SendToServerEx(Name)end;
//******************************************************************************//******************************************************************************// Востановление ХП//******************************************************************************Procedure OnTimerHP(Sender: TObject);
beginif Switch thenbegin
UseItem (OidGHP);
Dec(NGHP);
endelsebegin
UseItem (OidSHP);
Dec(NSHP);
end;
end;
//******************************************************************************//******************************************************************************// Востановление ЦП//******************************************************************************Procedure OnTimerCP(Sender: TObject);
begin
UseItem (OidGCP);
Dec(NGCP);
end;
//******************************************************************************//******************************************************************************// Вызывается при приходе каждого пакета, если скрипт включен//******************************************************************************Begin//****************************************************************************//****************************************************************************//Не обрабатываем пустые пакетыIf pck=''thenexit;
//****************************************************************************//****************************************************************************//****************************************************************************//****************************************************************************//Обрабатываем пакеты от сервераIf FromServer and(ConnectName=Name)thenbegin//**************************************************************************//Если от сервака принят пакет UserInfo.If(pck[1]=#$04)thenbegin
CharID:= ReadD(18);
i:= 2*(Length(Name))+ 72;
MaxHP:= ReadD(i);
CurHP:= ReadD(i);
MaxCP:= ReadD(length(pck)-49);
CurCP:= ReadD(length(pck)-45);
end;
//**************************************************************************//**************************************************************************//Если от сервака принят пакет StatusUpdate.if(pck[1]=#$0E)and(pck[6]=#$04)thenbegin
CurHP:=ReadD(14);
MaxHP:=ReadD(22);
CurCP:=ReadD(30);
MaxCP:=ReadD(38);
end;
//**************************************************************************//**************************************************************************//Записываем ObjectID всех нужных предметовif pck[1]=#$1B thenbeginfor i:= 0toround(length(pck)/36)dobeginif(ReadH(i*36+4+8) = GCP)thenbegin
OidGCP:= ReadD(i*36+8);
NGCP:= ReadH(i*36+4+4+8);
end;
if(ReadH(i*36+4+8) = GHP)thenbegin
OidGHP:= ReadD(i*36+8);
NGHP:= ReadH(i*36+4+4+8);
end;
if(ReadH(i*36+4+8) = SHP)thenbegin
OidSHP:= ReadD(i*36+8);
NSHP:= ReadH(i*36+4+4+8);
end;
end;
end;
//**************************************************************************end;
//****************************************************************************//****************************************************************************//****************************************************************************//****************************************************************************//Обрабатываем пакеты от клиентаIf FromClient and(ConnectName=Name)thenbegin//**************************************************************************//Уменьшеньки счетчика банок при использовании в игреif(pck[1]= #$14)thenbegincase ReadD(2)of
OidGCP: Dec(NGCP);
OidGHP: Dec(NGHP);
OidSHP: Dec(NSHP);
end;
end;
//**************************************************************************//**************************************************************************//Авто CTRLif PressCTRL thenbeginIf(pck[1]=#$2F)then pck[6]:=#$01;
If(pck[1]= #$04)or(pck[1]= #$0A)thenbegin
FirTargID:= SecTargID;
SecTargID:= ReadD(2);
if(FirTargID = SecTargID)and(FirTargID<> 0)then pck[1]:=#$0A;
end;
end;
//**************************************************************************//**************************************************************************//Управлениеif(pck[1]=#$38)and(pck[10]=#$03)thenbegincase ReadS(2)of'234': if Switch thenbegin
Say ('Врубили маленькие бутылки');
Switch:= False;
endelsebegin
Say ('Врубили большие бутылки');
UseItem(OidGHP);
Switch:= True;
end;
'123': if Res thenbegin
Say ('Cпам ЦП и ХП выключен');
TimerHP.Enabled:= False;
TimerCP.Enabled:= False;
Res:= False;
endelsebegin
Say ('Cпам ЦП и ХП включен');
Res:= True;
end;
end;
pck:='';
exit;
end;
//**************************************************************************//**************************************************************************//Активация ПВП режимаif(pck[1]=#$57)thenbeginif PressCTRL thenbegin
PressCTRL:= False;
Say ('ПВП режим не активен');
endelsebegin
PressCTRL:= True;
Say ('ПВП режим активен');
end;
pck:='';
exit;
end;
//**************************************************************************//**************************************************************************//Уменьшеньки счетчика банок при использовании в игреif(pck[1]= #$14)thencase ReadD(2)of
OidGCP: Dec(NGCP);
OidGHP: Dec(NGHP);
OidSHP: Dec(NSHP);
end;
//**************************************************************************end;
//****************************************************************************//****************************************************************************//****************************************************************************//****************************************************************************//Условия начала востановления, запуск вотсановления//****************************************************************************If Res thenbegin//**************************************************************************//Активация востановления ЦПif PressCTRL thenbeginIf(((CurHP+CurCP)/(MaxHP+MaxCP)*100)<= ResCP)thenif(CurCP>0)and(NGCP>0)thenbeginifnot TimerCP.Enabledthenbegin
TimerCP.Enabled:= True;
UseItem (OidGCP);
Dec(NGCP);
end;
end;
If(CurCP>=(MaxCP-200))thenif TimerCP.Enabledthen TimerCP.Enabled:= False;
end;
//**************************************************************************//**************************************************************************//Активация востановления ХПif(CurHP <= HP)and(CurHP>0)thenbeginif(not TimerHP.Enabled)thenif Switch thenbeginif(NGHP>0)thenbegin
TimerHP.Enabled:= True;
UseItem (OidGHP);
Dec(NGHP);
end;
endelseif(NSHP>0)thenbegin
TimerHP.Enabled:= True;
UseItem (OidSHP);
Dec(NSHP);
end;
endelseIf TimerHP.Enabledthen TimerHP.Enabled:= False;
//**************************************************************************end;
//****************************************************************************//****************************************************************************//****************************************************************************End.
//******************************************************************************
Добавлено через 7 минут
А да чуть не забыл.
Управление:
123 в пати чат включение/выключение слежения за ЦП иХП
234 опять же в пати чат переключение между обычными НР и GHP банками (всё можно забить в макрос для удобства)
Клавиша B активация ПВП режима (не надо CTRL нажимать)
ну как и ожидалось не пашет, оно под с6 по твоему в интерлюде! коль с6 не существует
Последний раз редактировалось DashKAaa, 13.05.2008 в 20:12.