Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Помогите...

тут можно задать вопрос по скриптингу
Post Reply
pr0Zak
Novice
Novice
Posts: 77
Joined: 15.09.2009 1:11
Location: Age of Power
Contact:

Помогите...

Post by pr0Zak »

написать нормальную процедуру ( суть процедуры- если реснулся моб чар срывается и бежит к нему убивать)

Пробовал так но сильно тупит и бежит только раз по указанным точкам, а моб зачастую отбегает в сторону и он его не убивает, потому на да чтобы именно догонял моба, убивал и только потом заканчивалась процедура.

Мой пример:

Code: Select all

procedure CheckMob; 
var
  mob: Cardinal;
  mobx: integer;
  moby: integer;
begin
  if FindType($0018, ground) > 0 then 
  begin 
    AddToSystemJournal('Обнаружен: '+GetName(finditem)); 
    SetGlobal('stealth', 'mobname', 'lich'); 
   mob := finditem;
   if (GetName(mob) = 'lich') or (GetName(mob) = 'Mutant lich') then     begin
   mobx:=GetX(mob);
   moby:=GetY(mob);
   Attack(mob); 
   MoveXY(mobx, moby, true, 0, true)
   CheckHeal;
  end;
  end;
end;
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Post by Vizit0r »

я бы перед
mobx:=GetX(mob)

всунул бы цикл типа while (abs (GetX(Self) - GetX(mob)) > 2) or (abs (GetY(Self) - GetY(mob)) > 2) do
begin
и твой кусок.

тогда он будет каждый раз брать изменившиеся координаты, и бежать по ним, пока не станет рядом с мобом. а там уже и атаковать.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Post Reply