где я тупонул?
Const
Код:
Name='DeVolf'; //??? ????
mp='8A CC F3 00 10';
hp='8A AA B7 00 10';
cp='8A A8 B7 00 10';
var
CharObjID,MyCorX,MyCorY,MyCorZ: integer;
MaxHP,CurHP,MaxMP,CurMP,MaxCP,CurCP: integer;
CharName: string;
TimerHP, TimerCP, TimerMP: TTimer;
procedure Init; //?????????? ??? ????????? ???????
begin
timerHP:=TTimer.Create(nil);
timerHP.OnTimer:=@OnTimerHP;
timerHP.enabled:=False;
timerHP.interval:=100;
timerCP:=TTimer.Create(nil);
timerCP.OnTimer:=@OnTimerCP;
timerCP.enabled:=False;
timerCP.interval:=100;
timerMP:=TTimer.Create(nil);
timerMP.OnTimer:=@OnTimerMP;
timerMP.enabled:=False;
timerMP.interval:=100;
end;
procedure OnTimerHP(Sender: TObject);
begin
buf:=hstr(hp);
SendToServerEx(Name);
end;
procedure OnTimerCP(Sender: TObject);
begin
buf:=hstr(cp);
SendToServerEx(Name);
end;
procedure OnTimerMP(Sender: TObject);
begin
buf:=hstr(mp);
SendToServerEx(Name);
end;
procedure InitStats;
var
i: integer;
begin
CharObjID:=ReadD(18);
MyCorX:=ReadD(2);
MyCorY:=ReadD(6);
MyCorZ:=ReadD(10);
i:=22;
CharName:=ReadS(i);
i:=i+44;
MaxHP:=ReadD(i);
CurHP:=ReadD(i);
MaxMP:=ReadD(i);
CurMP:=ReadD(i);
i:=i+363;
MaxCP:=ReadD(i);
CurCP:=ReadD(i);
//????????? ???????? ?? ?????
if (CurHP<=MaxHP-500) then TimerHP.enabled:=true else TimerHP.enabled:=false;
if (CurCP<=MaxCP-500) then TimerCP.enabled:=true else TimerCP.enabled:=false;
if (CurMP<=MaxMP-500) then TimerMP.enabled:=true else TimerMP.enabled:=false;
end;
procedure StatsUpdate;
var
i: integer;
begin
for i:=0 to ReadD(6)-1 do
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;
//????????? ???????? ?? ?????
if (CurHP<=MaxHP-500) then TimerHP.enabled:=true else TimerHP.enabled:=false;
if (CurCP<=MaxCP-500) then TimerCP.enabled:=true else TimerCP.enabled:=false;
if (CurMP<=MaxMP-500) then TimerMP.enabled:=true else TimerMP.enabled:=false;
end;
procedure CorsUpdate;
begin
MyCorX:=ReadD(2);
MyCorY:=ReadD(6);
MyCorZ:=ReadD(10);
end;
BEGIN
//--- STATS BEGIN ---//
if FromServer and (ConnectName=Name) and (pck[1]=#$04) then InitStats;
if FromServer and (ConnectName=Name) and (pck[1]=#$0E) and (CharObjID=ReadD(2)) then StatsUpdate;
if FromClient and (ConnectName=Name) and (pck[1]=#$48) then CorsUpdate;
//--- STATS END ---//
END.