inQizitOrКак сделать, чтобы герой- союзник бегал за главным героем как Ласло на второй карте кампании "Дилемма Фриды"?
Нашел в той же миссии: скрипт по которому он ходит за ней:
MustFollow = 1
OUR_HERO_FREYDA = "Freyda";
OUR_HERO_LASZLO = "Laszlo";
FOLLOWING_RADIUS = 5.5;
function Distance(Object1,Object2)
if IsObjectExists(Object1) == true then
Obj1_x,Obj1_y,Obj1_z = GetObjectPosition(Object1);
else
print("Object1 ",Object1," doesn't exist");
return -1;
end;
if IsObjectExists(Object2) == true then
Obj2_x,Obj2_y,Obj2_z = GetObjectPosition(Object2);
else
print("Object2 ",Object2," doesn't exist");
return -1;
end;
if Obj1_z == Obj2_z then
SQRT = sqrt((Obj1_x - Obj2_x)*(Obj1_x - Obj2_x) + (Obj1_y - Obj2_y)*(Obj1_y - Obj2_y));
return SQRT;
else
print("Error. Objects are not at same ground level.");
return -1;
end;
end;
function FollowHeroRealTime(Master, Slave, Radius)
while 1 do
sleep(5);
if IsHeroAlive(Master) == nil or IsHeroAlive(Slave) == nil or Distance(Master,Slave) == -1 then
print("hero alive master = ",IsHeroAlive(Master) );
print("hero alive slave = ",IsHeroAlive(Slave) );
print("Distance value = ", Distance(Master,Slave) );
print("One of heroes is dead. Thread FollowHeroRealTime terminated...");
return
end;
while Distance(Master,Slave) >= Radius and MustFollow == 1 and Distance(Master,Slave) ~=-1 do
MovePrice = CalcHeroMoveCost(Slave,GetObjectPosition(Master));
ChangeHeroStat(Slave,STAT_MOVE_POINTS,-2500);
ChangeHeroStat(Slave,STAT_MOVE_POINTS,MovePrice-300);
MoveHeroRealTime(Slave,GetObjectPosition(Master));
sleep(5);
end;
end;
end;
startThread(FollowHeroRealTime, OUR_HERO_FREYDA, OUR_HERO_LASZLO, FOLLOWING_RADIUS);