PDA

Просмотр полной версии : что не так в скрипте?


LaFiN
27.03.2008, 02:48
Проблемма которая возникла мне самому непонятно коре за основу был взят скрипт рыбалки NLObP вырезано все лишнее и добавлено что по малому количесву мп бот садится потом встает и дальше ловит так вот написано все. работает на ура. но вот как начил добавлять веши чтобы он мог стабильно работать с другими скриптами типа ( if (ConnectName=Name) and ... SendToClientEx(Name)) скрипт отказался работать и выдовал ошибку такую которая возникает когда нет этого чара среди пропатченых хлп. счем может быть это связано?
//Автоматизация ловли рыбы by NLObP редакция LaFiN
//Необходимо затариться удочкой и крючками
//выучить соответствующие скиллы
//Социальное действие YES - начать
//Социальное действие NO - остановиться
//Enjoy!

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';
sit='45 00 00 00 00 00 00 00 00 00';
name='bppppp';

var
CharID:String;
timer1: TTimer;
status:boolean;
SocialID, MaxHP, CurHP, MaxMP, CurMP, i: Integer;

procedure Init; //Вызывается при включении скрипта
begin
timer1:=TTimer.Create(nil);
timer1.OnTimer:=@OnTimer1;
timer1.enabled:=false;
timer1.interval:=1800; //время задержки
end;

procedure Free; //Вызывается при выключении скрипта
begin
timer1.Free;
end;

procedure SendMsg(msg:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(msg);
SendToClientEx(Name);
end;

procedure Siting;
begin
buf:=HStr(sit);
SendToServerEx(Name);
end;

procedure Fishing;
begin
buf:=HStr(fish);
SendToServerEx(Name);
end;

procedure Pumping;
begin
buf:=HStr(pump);
SendToServerEx(Name);
end;

procedure Reeling;
begin
buf:=HStr(reel);
SendToServerEx(Name);
end;

procedure OnTimer1(Sender: TObject);
begin
Fishing;
timer1.enabled:=false;
end;
procedure StUp;
begin
if (ConnectName=Name) and FromServer and (pck[1]=#$0e) and (pck[2] + pck[3] + pck[4] + pck[5] + pck[6] = CharID + #$02) then
begin
CurMP:=ReadD(14);
SendMsg(IntToStr(CurMP));
if (CurMP = MaxMP) and (Status = false) then
begin
Siting;
Status:=true;
Fishing;
end;
end;
end;

//************************************************** ****************************
// вызывается при приходе каждого пакета, если скрипт включен
//************************************************** ****************************
begin
if (ConnectName=Name) and FromServer then SendMsg('Run');
//не обрабатываем пустые пакеты
if pck='' then exit;
//************************************************** **************************

if (ConnectName=Name) and FromServer and (pck[1]=#$04) then
begin
CharID:=pck[18]+pck[19]+pck[20]+pck[21];
i:=22;
i:=i+(Length(Name)*2+2)+48;
MaxHP:=ReadD(i);
CurHP:=ReadD(i);
MaxMP:=readD(i);
CurMP:=readD(i);
if (CurMP < round(MaxMP*0.3)) then
begin
Status:=false;
timer1.enabled:=false;
Siting;
end;
end;
StUp;
if (ConnectName=Name) and FromClient and (pck[1]=#$1B) then
begin
SocialID:=ReadD(2);
case SocialID of
//социальное действие Yes для начала ловли
6:begin
Status:=true;
Fishing;
SendMsg('Run');
end;
//социальное действие No для окончания
5:begin
Status:=false;
timer1.enabled:=false;
SendMsg('Stop');
end;
end;
end;
if Status=true then begin
//FishinHPRegen
if (ConnectName=Name) and FromServer and (pck[1]+pck[2]=#$FE#$16) and (pck[16]=#$00) then Pumping;
if (ConnectName=Name) and FromServer and (pck[1]+pck[2]=#$FE#$16) and (pck[16]=#$01) then Reeling;
//FishingEnd
if (ConnectName=Name) and FromServer and (pck[1]+pck[2]=#$FE#$14) then timer1.enabled:=true;
end
else exit;
end.

dmitry501
27.03.2008, 08:41
Ничего не понял.
Напиши еще раз, но по-русски.

QaK
27.03.2008, 09:16
но вот как начил добавлять веши чтобы он мог стабильно работать с другими скриптами типа ( if (ConnectName=Name) and ... SendToClientEx(Name)) скрипт отказался работать и выдовал ошибку такую которая возникает когда нет этого чара среди пропатченых хлп.
По русски напиши действия, которые ты совершаешь, ожидаемый результат и рельный результат (как получается на самом деле), а то из этой белиберды ничего не понятно.

NLObP
27.03.2008, 19:20
Проблемма которая возникла мне самому непонятно коре за основу был взят скрипт рыбалки NLObP вырезано все лишнее и добавлено что по малому количесву мп бот садится потом встает и дальше ловит так вот написано все. работает на ура. но вот как начил добавлять веши чтобы он мог стабильно работать с другими скриптами типа ( if (ConnectName=Name) and ... SendToClientEx(Name)) скрипт отказался работать и выдовал ошибку такую которая возникает когда нет этого чара среди пропатченых хлп. счем может быть это связано?


Я правильно понял - в name='bot1', а ты играешь чаром bot2 и появляется ошибка?
Так и должно быть, по крайней мере в версии 3.1.8, если запустить скрипт не для того чара.
Это ( if (ConnectName=Name) and ... SendToClientEx(Name)) надо, чтобы скрипт был привязан к определенному чару с name='имя_чара_для _которого_скрипт'. В противном случае скрипт обрабатывает все пакеты от всех чаров которые запущены в других окнах и всех чаров рядом.