Вы находитесь на странице: 1из 2

const

pos_x_pz=32335;
pos_y_pz=31786;
pos_z_pz=7;

Procedure MoveTo(X,Y,Z: Integer);


begin
if Z = Self.Z then
begin
Self.MoveTo(X,Y,Z);
end;
else Unreachable := True;
end;

procedure Event_Attacked(ID: integer)


var
contador:integer;
begin
for contador:=0 to Creatures.Count-1 do
begin
if ( Creatures.Creature[contador].ID=ID ) then
if ( not (Creatures.Creature[contador].NPC)) then
begin
self.chase:=false;
MoveTo(pos_x_pz,pos_y_pz,pos_z_pz)
end;
end;
end;

procedure Event_CreatureEnterScreen(ID,x,y,z: integer; name: String)


var
contador:integer;
begin
for contador:=0 to Creatures.Count-1 do
begin
if ( Creatures.Creature[contador].ID=ID ) then
if ( not (Creatures.Creature[contador].NPC)) then
begin
self.chase:=false;
MoveTo(pos_x_pz,pos_y_pz,pos_z_pz)
end;
end;
end;

procedure Event_Message(Channel: integer; Name, Text: String)


var fecha:string;
begin
if not (name=self.name) then
begin
fecha:=datetostr(date())+' '+timetostr(time());
writelog('c:\messages.txt',inttostr(channel)+' ('+fecha+') '+name+': '+text);
end;
end;

var my_pos_x,my_pos_y,my_pos_z:integer;
begin
updateworld;
my_pos_x:=self.X;
my_pos_y:=self.Y;
my_pos_z:=self.Z;
while not terminated do
begin
updateworld;
processevents;
if ( (my_pos_x<>self.X) or (my_pos_y<>self.Y) or (my_pos_z<>self.Z) )
then
begin
while not terminated do
begin
self.chase:=false;
MoveTo(pos_x_pz,pos_y_pz,pos_z_pz)
sleep(1000);
end;
end;
sleep(1000);
end;
end;

Вам также может понравиться