Здравствуйте! Я триггерно воссоздал систему боя между двумя юнитами. Пример: две целочисленные переменные для каждого из юнитов - Здоровье1,2 и Урон 1,2 для юнитов 1 и 2 соответственно. Далее событием "Юнит атакует или юнит атакован", я произвожу вычисления между этими переменными. Внимание вопрос! Можно ли сделать так, чтобы не прописывать для каждого юнита бой отдельно вручную, а если юнит1 атакует неизвестного юнита, бой с которым я не прописывал, например юнит1 и юнит5? Поясню. Мне надо, чтобы брались данные из триггерных характеристик юнита автоматически для этого юнита при начале боя, а не были заранее прописаны мной. То есть была система боя между двумя юнитами, Юнитом А и Юнитом Б, а вот индексы, и соответственно Здоровье и Урон этих юнитов, брались динамически? Например создаётся новый юнит на карте. Он по счёту 118. Здоровье и Урон этого юнита находятся под индексом 118. Можно ли подставить этот индекс в триггер боя, чтобы брались характеристики по индексу, а не были прописаны мной вручную заранее?
Заранее спасибо всем кто поможет!

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

Чем вас не устраивает стандартная система здоровья и урона?
yep, зачем изобретать то что уже есть. Отнимай просто здоровье из реального здоровья, а считай урон из реального урона юнита. Все это сможешь настроить в РО, и легко использовать, не нужно никаких переменных и триггеров.

Тем не менее то что ты хочешь вполне легко сделать, создаешь массив такого вида:
UnitParams [ unitIndex ] [ paramName ]
в unitIndex будет число соответствующие id юнита на карте. Не помню, но вроде там даже функция есть что бы его получить. Если нет, то придется еще один массив делать, и вручную каталогизировать все юниты.
Units [ UniqueUnitLink ] = 001
Units [ UniqueUnitLink ] = 002
Пример:
Units [ __Морпех (25,19)__ ] = 1
Units [ __Гидралиск (4,25)__ ] = 2
..
Затем событие Юнит атакован или любое другое. Подставляешь Triggering Unit в твой массив Units и получаешь его id (согласно твоему каталогу), а уже используя этот id можешь из первого массива достать или изменить любой параметр. А если id не нужны, то просто храни ссылки на объекты в массиве параметров. Или используй custom value. Но лучше всего стандартные здоровье и атаку.
`
ОЖИДАНИЕ РЕКЛАМЫ...
2
24
9 лет назад
2
Чем вас не устраивает стандартная система здоровья и урона? В свое время я практически без триггеров, на одном редакторе объектов, реализовал систему пошагового боя.
Что касается вашей не совсем понятной мне реализации, то осмелюсь предположить, что вы не слышали про массивы и возможность назначать юниту custom value. Впрочем, с массивами придется по возиться т.к. у них есть ограничение по длине - нужно повторно использовать освободившиеся ячейки. Если не хватает знаний чтобы реализовать повторное использование ячеек массива, то можно использовать таблицы данных, в которые можно записывать данные по строковому ключу, а в качестве ключа использовать уникальный целочисленный айди юнита (unit tag), конвертированный в строку. Кроме того, простые данные можно хранить прямо в custom value юнита.
2
34
9 лет назад
2
Чем вас не устраивает стандартная система здоровья и урона?
yep, зачем изобретать то что уже есть. Отнимай просто здоровье из реального здоровья, а считай урон из реального урона юнита. Все это сможешь настроить в РО, и легко использовать, не нужно никаких переменных и триггеров.

Тем не менее то что ты хочешь вполне легко сделать, создаешь массив такого вида:
UnitParams [ unitIndex ] [ paramName ]
в unitIndex будет число соответствующие id юнита на карте. Не помню, но вроде там даже функция есть что бы его получить. Если нет, то придется еще один массив делать, и вручную каталогизировать все юниты.
Units [ UniqueUnitLink ] = 001
Units [ UniqueUnitLink ] = 002
Пример:
Units [ __Морпех (25,19)__ ] = 1
Units [ __Гидралиск (4,25)__ ] = 2
..
Затем событие Юнит атакован или любое другое. Подставляешь Triggering Unit в твой массив Units и получаешь его id (согласно твоему каталогу), а уже используя этот id можешь из первого массива достать или изменить любой параметр. А если id не нужны, то просто храни ссылки на объекты в массиве параметров. Или используй custom value. Но лучше всего стандартные здоровье и атаку.
Принятый ответ
0
11
9 лет назад
0
Спасибо парни за ваши ответы. Понял, что мне нужно побольше узнать о редакторе, прежде чем спрашивать :) Оба ответа хороши.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.