PDA

Просмотр полной версии : АвтоТаргет.Радар.Атака


TAMBIK
09.08.2009, 19:54
При нападение на чара
Чар автоматом берет нападающего в таргет и атакует
Радар стрелка над чаром
показывает направление откуда чара атакуют

// автор ТАМБИК
// проверял на ХБ
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
5:begin
autoattacka:=false;
autoAction:=false;
stopRadarControl;
SendMsg2(' О Т К Л');
pck:='';
exit;
end;
6: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]=#$34) 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.

Scaem
10.08.2009, 06:44
расскажи как работает , как работает радар и что за атака? )

kopacb
10.08.2009, 20:45
2 TAMBIK: скажи пожалуста реально ли на ИТ это поменять?
Дело в том что все пакеты изменил кроме вот этого:
(pck[1]=#$48)
его содержание в пакетах T0(тоесть ИТ) просто нету.
А так все подоходит вродебы.

TAMBIK
10.08.2009, 21:15
kopacb,
есть он и там 48

TAMBIK
04.09.2009, 10:22
// автор ТАМБИК
// грация финал
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.