Добавлен
Всем привет! Делаю РПГ. Решил, что мобы не должны быть просто разбросаны по карте и тупо спауниться в рандомных местах. Поэтому думаю, надо сделать лагеря. Ну наляпал я несколько по карте. Каждому лагерю я как бы присвоил номер, начиная с 0. А мобы спаунятся небольшими группами. Затем, после спауна, моя система высчитывает, где сколько юнитов зарегистрировано (юнитам, принадлежащим определённому номеру лагеря я присвоил соответствующий номер в SetUnitUserData). Ну и эта группа решает, куда им направиться, кого они смогут победить, ну или там просто свободный лагерь, перебитый игроком. Так вот. Я решил сделать систему наподобие той, что представлена в игре Сталкер, где используется система гулагов (кто понял, тот поймёт :В). Итак, лагерь любезно пригласил к себе отряд новозаспауненных крипов. Вот они пришли в лагерь. Теперь это их дом.
А вот и суть вопроса: у меня есть идея расставить в каждом лагере невидимые юниты-флаги, к каждому из которых бы "приклеивался" один из пришедших юнитов. Но как лучше всего это реализовать? Была идея с помощью абилок-пустышек, но пока не слишком удачно.

Принятый ответ

Zahanc:
Почему не массив точек или регионов?
Как вариант, такой невидимый юнит с помощью пустышек отдаёт разные приказы, симулирующие определенную работу юнита-цели (например, в 22.00 юнит идёт спать в палатку, а в 6.00 просыпается и идёт работать, естественно, если в лагере не объявлена тревога).

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
20
6 лет назад
0
ставь невидимые варды и заноси в группу
0
22
6 лет назад
0
Почему не массив точек или регионов?
0
6
6 лет назад
Отредактирован MrGROX
0
Zahanc:
Почему не массив точек или регионов?
Как вариант, такой невидимый юнит с помощью пустышек отдаёт разные приказы, симулирующие определенную работу юнита-цели (например, в 22.00 юнит идёт спать в палатку, а в 6.00 просыпается и идёт работать, естественно, если в лагере не объявлена тревога).
Принятый ответ
0
22
6 лет назад
Отредактирован Zahanc
0
Не понимаю зачем нужны какие-то пустышки. Kакие-либо приказы так или иначе придется отдавать с помощью скрипта.
Используйте регионы. (Я подразумеваю что каждый "флаг" может относится к одному и только к одному лагерю). Единственное что неудобно это двумерный массив для регионов, чтобы соотнести регионы ("флаги") и лагерь.
Я бы сделал что-то в духе (псевдокод):
struct Camp
  public location array locs
 // Define locs post instantiation.
endstruct
function SpreadUnitsOnCamp takes Camp targetCamp, group monsters returns nothing
  local integer i = 0
  local unit f = null
  local group g = CopyGroup(monsters)
  loop
  set f = FirstOfGroup(g)
  exitwhen null == f
  call IssueOrderMoveToLoc(f, targetCamp.locs[i])
  set i = i + 1
  call GroupRemoveUnit(g, f)
  endloop
endfunction
0
26
6 лет назад
0
^ Тут и обычного массива хватит
0
22
6 лет назад
Отредактирован Zahanc
0
Как соотнести один лагерь ко множеству локаций без переборов циклом? Я могу вымыслить только поделив массив локаций. В примере я использовал vJass для ясности.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.