Как сделать так чтобы два юнита двигались вместе?
Лучше на Jass.

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

Сохранять координаты обоих юнитов
каждые 0.04 секунд:
сравнивать текущие координаты с сохраненными у обоих юнитов
находить разницу среднюю по x и среднюю по y и сдвигать обоих на это среднее от сохраненных
затем сохранять эти новые координаты
1
real x1 = GetUnitX(unit1)
real old_x1 = Load(...)
...
real dx = ((x1-old_x1)+(x2-old_x2))/2
real dy = ((y1-old_y1)+(y2-old_y2))/2
old_x1 += dx; old_y1 += dy; SetUnitPosition(unit1,old_x1,old_y1); Save(...)
old_x2 += dx; old_y2 += dy; SetUnitPosition(unit2,old_x2,old_y2); Save(...)
Если надо их просто держать впритык все время, то просто перемещать второго каждые 0.04 сек. в ту же точку, где сейчас первый
0
19
7 лет назад
0
Похожие вопросы:

ответ
  1. Думаю, что можно.
Берем основную модель, возможно, вообще без мяса, только с гусеницами, но с кучей точек крепления. Также берем кучу моделей-аттачметов, представляющих собой эти самые пушки, корпуса и все прочее. При выборе характеристик модели через диалог или интерфейс соответственно создаем на основной модели эффекты-аттачменты, будет собрана техника. Такие штуки, как двигатель и прочие невидные извне элементы будут скорее входить в математическую модель юнита, но это также можно запилить. Название танка - сразу не скажу, есть ли триггер на смену, но на таблице рекордов можно отобразить что угодно.

2.Тоже можно.
Создаем погодный в определенной местности и делаем два триггера для контроля входа-выхода юнитов из нее. На искомых юнитов применяем нужные способности - и все готово.

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

4.Это уже интереснее. Видел раньше подобное в играх. При каждой атаке юнита случайным образом наносим или не наносим доп. урон, эффект горения, кидаем спелл на цель в зависимости от теоретического места попадания атаки.

5.И это можно. Но нужно писать нестандартную систему Альянса. Но через триггеры и JASS все можно...

  1. Продажа техники - лучше через способность, что бы кидать ее на понравившегося юнита, не стоит покупать кота в мешке. Стоимость должна зависеть от технического уровня юнита, его текущего состояния (мертвый танк попадет вам бесплатно, сами чините!), если он был модернизован дополнительно, то это тоже входит в стоимость. Разрешение на продажу делаем аналогично.

  1. Это легко через Custom Value и переменние.

Как ты понял, все что ты предложил создать можно, но на это нужно потрать хороший кусок времени. Остается пожелать тебе удачи над созданием проекта - мне идея уже нравится.

1
20
7 лет назад
Отредактирован biridius
1
Сохранять координаты обоих юнитов
каждые 0.04 секунд:
сравнивать текущие координаты с сохраненными у обоих юнитов
находить разницу среднюю по x и среднюю по y и сдвигать обоих на это среднее от сохраненных
затем сохранять эти новые координаты
1
real x1 = GetUnitX(unit1)
real old_x1 = Load(...)
...
real dx = ((x1-old_x1)+(x2-old_x2))/2
real dy = ((y1-old_y1)+(y2-old_y2))/2
old_x1 += dx; old_y1 += dy; SetUnitPosition(unit1,old_x1,old_y1); Save(...)
old_x2 += dx; old_y2 += dy; SetUnitPosition(unit2,old_x2,old_y2); Save(...)
Если надо их просто держать впритык все время, то просто перемещать второго каждые 0.04 сек. в ту же точку, где сейчас первый
Принятый ответ
0
18
7 лет назад
0
Где-то здесь была такая карта.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.