Собсно здрасте!)
Я люблю рыбалку... (с) Не помню откуда
Так вот, использую скрипт на рыбалку в таком виде + к ниму скрипт на хилки
Код:
//Автоматизация ловли рыбы by NLObP
//Работа проверена на L2C4 Protocol 660 LocalServer "L2J FORTRESS"
//Необходимо затариться удочкой и крючками
//выучить соответствующие скиллы
//Социальное действие YES - начать
//Социальное действие NO - остановиться
//Enjoy!
// Disclaimer of Warranty. Unless required by applicable law or
// agreed to in writing, Licensor provides the Work (and each
// Contributor provides its Contributions) on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
// implied, including, without limitation, any warranties or conditions
// of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
// PARTICULAR PURPOSE. You are solely responsible for determining the
// appropriateness of using or redistributing the Work and assume any
// risks associated with Your exercise of permissions under this License.
const
fish='2F 20 05 00 00 00 00 00 00 00';
pump='2F 21 05 00 00 00 00 00 00 00';
reel='2F 22 05 00 00 00 00 00 00 00';
var
Cmd:String;
timer1: TTimer;
status:boolean;
Attacker, CharID, ObjectID, SocialID, ItemID, CoordX, CoordY, CoordZ: Integer;
procedure Init; //Вызывается при включении скрипта
begin
ItemID:=0;
timer1:=TTimer.Create(nil);
timer1.OnTimer:=@OnTimer1;
timer1.enabled:=false;
timer1.interval:=1800; //время задержки
//SendMsg('Начало ловли рыбы социальное действие Yes');
end;
procedure Free; //Вызывается при выключении скрипта
begin
timer1.Free;
end;
procedure SendMsg(msg:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(msg);
SendToClient;
end;
procedure TargetAttacker(Attacker: Integer);
begin
SendMsg('AttackerID='+IntToStr(Attacker)+' PlayerID='+IntToStr(CharID));
timer1.enabled:=false;
buf:=#$04;
WriteD(Attacker);
WriteD(CoordX);
WriteD(CoordY);
WriteD(CoordZ);
WriteC(00);
SendToServer;
end;
Procedure SaveCoord;
var
i: integer;
begin
//запоминаем свои координаты
i:=2;
CoordX:=ReadD(i);
CoordY:=ReadD(i);
CoordZ:=ReadD(i);
end;
procedure Fishing;
begin
buf:=HStr(fish);
SendToServer;
end;
procedure FishShot;
begin
buf:=#$14;
WriteD(ItemID);
WriteD(00);
SendToServer;
end;
procedure Pumping;
begin
FishShot;
buf:=HStr(pump);
SendToServer;
end;
procedure Reeling;
begin
FishShot;
buf:=HStr(reel);
SendToServer;
end;
procedure OnTimer1(Sender: TObject);
begin
Fishing;
timer1.enabled:=false;
//SendMsg('Fishing');
end;
//******************************************************************************
// вызывается при приходе каждого пакета, если скрипт включен
//******************************************************************************
begin
//не обрабатываем пустые пакеты
if pck='' then exit;
//****************************************************************************
//Первым делом включаем Fishing Shot
if FromServer and (pck[1]=#$27) and (ItemID=0) then begin //idItem'a который мы хотим юзать
ItemID:=ReadD(8);
end;
if FromServer and (pck[1]=#$04) then
CharID:=ReadD(18);
if FromClient and (pck[1]=#$1B) then
begin
SocialID:=ReadD(2);
case SocialID of
//социальное действие Yes для начала ловли
6:begin
Status:=true;
Fishing;
end;
//социальное действие No для окончания
5:begin
Status:=false;
timer1.enabled:=false;
end;
end;
end;
if Status=true then begin
//MagicSkillUse 48, Attack 05
if FromServer and ((pck[1]=#$48) or (pck[1]=#$05)) then begin
Attacker:=ReadD(2);
ObjectID:=ReadD(6);
end;
//пакет ValidatePosition с кординатами
if FromClient and (pck[1]=#$48) then SaveCoord;
//Если мы попали в таргет или атакуемся магией
//if (Attacker<>ObjectID) and (CharID=ObjectID) then TargetAttacker(Attacker);
//FishinHPRegen
if FromServer and (pck[1]+pck[2]=#$FE#$16) and (pck[16]=#$00) then Pumping;
if FromServer and (pck[1]+pck[2]=#$FE#$16) and (pck[16]=#$01) then Reeling;
//FishingEnd
if FromServer and (pck[1]+pck[2]=#$FE#$14) then timer1.enabled:=true;
end
else exit;
end.
Рыба ловится не взирая на вылезающих мобов, всё казалось бы зашибись, кроме одного, достаточно часто вылезают 2 моба под ряд (Одного моба протягивает простая хилка), и всёб хорошо, грейтер хилка их протягивает, но я ЖАДНЫЙ и мне не хочется трарить денюжки заработаные
не честным путём на то, чтоб заробатывать дальше)
Вопрос заключается в следующем: Возможно ли сделать так, чтобы когда значение ХП было ниже максимума, рыба ловиься переставала, и снова начинала при полном восстановлении?