PDA

Просмотр полной версии : Определение профессии врага


kristalik
17.03.2014, 14:08
Помогите с элементарным скриптом на определение профессии врага для 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 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.

[I]Добавлено через 9 часов 57 минут
Может кто-то желает за деньги этот скрипт сделать (ну и всякие модификации обсудим)?

kpa9pt
17.03.2014, 16:05
Помогите с элементарным скриптом на определение профессии врага для 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 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.

[I]Добавлено через 9 часов 57 минут
Может кто-то желает за деньги этот скрипт сделать (ну и всякие модификации обсудим)?

тебе для олимпа или дэйли?

kristalik
17.03.2014, 17:12
тебе для олимпа или дэйли?



Мне исключительно для олимпа

kpa9pt
17.03.2014, 22:20
Мне исключительно для олимпа

Есть очень много интересного для олимпа для ХФ хроник, сервер рпг где писалось всё это

kristalik
18.03.2014, 22:47
Есть очень много интересного для олимпа для ХФ хроник, сервер рпг где писалось всё это

Где это можно найти или у тебя лично?

kpa9pt
19.03.2014, 17:59
Где это можно найти или у тебя лично?

Конкретно у меня, если интересно пиши в ЛС