Помогите с элементарным скриптом на определение профессии врага для HF5. Поиск нашел нерабочие скрипты для IL. Заранее спасибо!
Или же подскажите, будет ли этот скрипт работать на HF5? (у меня на HF5 скрипт запускается, но в Showtab никакая информация не появляется)
Код:
// автор ТАМБИК
// грация финал
const
name = ' х '; // Имя
var
Timer1: TTimer;
myID:integer;
mobID,mobX,mobY,mobZ:integer;
myX,myY,myZ:integer;
autoattacka,autoAction:boolean;
procedure SendMsg2(msg:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(msg);
SendToClientEx(name);
end;
procedure RequestSocialAction;
begin
CASE ReadD(2) OF
25:begin
autoattacka:=false;
autoAction:=false;
stopRadarControl;
SendMsg2(' О Т К Л');
pck:='';
exit;
end;
24:begin
autoattacka:=true;
SendMsg2(' В К Л');
pck:='';
exit;
end;
end;
end;
procedure OnTimer1(Sender: TObject);
begin
Action;
end;
procedure Action;
begin
buf:=#$1F;
WriteD(mobID);
WriteD(myX);
WriteD(myY);
WriteD(myZ);
WriteC(00);
SendToServerEx(name);
end;
procedure startPoisk;
begin
buf:=#$F1;
WriteD(0);
WriteD(1);
WriteD(mobX);
WriteD(mobY);
WriteD(mobZ);
SendToClientEx(name);
end;
procedure startAttacka;
begin
mobID:=ReadD(2);
Action;
startPoisk;
autoAction:=false;
if autoattacka then
Timer1.enabled:=true;
end;
procedure stopRadarControl;
begin
buf:=#$F1;
WriteD(0);
WriteD(1);
WriteD(myX);
WriteD(myY);
WriteD(myZ);
SendToClientEx(name);
end;
procedure ValidatePosition;
begin
myX:=ReadD(2);
myY:=ReadD(6);
myZ:=ReadD(10);
end;
procedure Init;
begin
autoAction:=true;
autoattacka:=false;
timer1:=TTimer.Create(nil);
timer1.OnTimer:=@OnTimer1;
timer1.enabled:=false;
timer1.interval:=1000;
buf:=#$14;
SendToServerEx(name);
SendMsg2(' ВКЛ соцдействие ДА');
SendMsg2('ОТКЛ соцдействие НЕТ');
SendMsg2('TAMBIK');
end;
procedure Free;
begin
timer1.free;
end;
begin
if fromserver and (pck[1]=#$32) then begin//Tип: 0x32 (UserInfo)
myID:=ReadD(18);
end;
if FromClient and (pck[1]=#$56) then RequestSocialAction;
if FromServer and autoAction and (pck[1]=#$33) and (ReadD(6)=myID) then startAttacka;
if FromServer and autoAction and (pck[1]=#$48)and(ReadD(2)<>myID)and(ReadD(6)=myID)then startAttacka;
if FromServer and (pck[1]=#$00) and (ReadD(2)=mobID) then begin
autoAction:=true;
stopRadarControl;
timer1.enabled:=false;
if FromClient and (pck[1]=#$59) then ValidatePosition;
end;
end.
Вот этот скрипт работает на моем HF5 определяет ХП и ЦП и пишет их в титуле врага. Как сделать тоже самое, только вместо ХП и ЦП выводилась вторая профессия врага в титуле или же в системный чат
Код:
Var
CurHP,MaxHP,CurCP,MaxCP,CurMP,MaxMP,objID: integer;
procedure Init;
begin
end;
procedure StatusUpdate;
var
i: integer;
begin
for i:=0 to ReadD(6)-1 do begin
case pck[i*8+10] of
#$09: CurHP:=ReadD(i*8+14);
#$0A: MaxHP:=ReadD(i*8+14);
#$0B: CurMP:=ReadD(i*8+14);
#$0C: MaxMP:=ReadD(i*8+14);
#$21: CurCP:=ReadD(i*8+14);
#$22: MaxCP:=ReadD(i*8+14);
end;
end;
end;
procedure Free;
begin
end;
procedure OnConnect(WithClient: Boolean);
begin
end;
procedure OnDisonnect(WithClient: Boolean);
begin
end;
begin
if fromserver and (pck[1]=#$18) then
begin
StatusUpdate;
objID:=ReadD(2);
buf:=#$CC;
WriteD(objID);
WriteS('CP:'+inttostr(CurCP)+' HP:'+inttostr(CurHP));
SendToClient;
end;
end.
Добавлено через 9 часов 57 минут
Может кто-то желает за деньги этот скрипт сделать (ну и всякие модификации обсудим)?