Увидел в одной статье переменные где задавались
-Тип юнита
-Юнит
Это обе боевая единица?

Нет.
Есть юнит (unit) = боевая единица, это любые воины, маги, герои и здания (в том числе магазины, рудники, источники).
А есть тип юнита (unittype) = тип объекта, это по сути число в ASCII системе исчисления ('ugho','A000','chob'). Ты вместо них обычно выбираешь конкретного юнита из списка всех юнитов. Например когда ты триггерно создаёшь 1 пехотинца, то ты выбираешь как раз из этого списка. Посмотреть ASCII-коды объектов можно в РО нажав Ctrl+D (так же и отключается).

Одно это конкретный объект в на игровой карте, в данный момент. Стоит 5 футманов, и кот конкретный из них.
А второе это что конкретно из имеющихся вариантов... пехотинец, стрелок, рыцарь, целитель... и т.п.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
28
тип юнита (unittype) = тип объекта, это по сути число в ASCII системе исчисления
Смею сделать поправку. Есть юнит, тип юнита, ID типа юнита и классификация юнита. Юнит - это объект типа unit, свойства которого описывает тип юнита. Тип юнита - это описание в редакторе объектов во вкладке Units. Каждый тип имеет свой ID - число (integer) в ASCII системе счисления. Получить ID типа у конкретного юнита, можно функцией GetUnitTypeId. В редакторе объектов его можно узнать нажав Ctrl+D. Классификация юнита - это константа типа unittype. Узнать, имеет ли юнит какую-то классификацию, можно с помощью IsUnitType, передав юнита и классификацию. Также классификации можно удалять и добавлять, но это работает лишь на некоторые из них.
2
Нет.
Есть юнит (unit) = боевая единица, это любые воины, маги, герои и здания (в том числе магазины, рудники, источники).
А есть тип юнита (unittype) = тип объекта, это по сути число в ASCII системе исчисления ('ugho','A000','chob'). Ты вместо них обычно выбираешь конкретного юнита из списка всех юнитов. Например когда ты триггерно создаёшь 1 пехотинца, то ты выбираешь как раз из этого списка. Посмотреть ASCII-коды объектов можно в РО нажав Ctrl+D (так же и отключается).

Одно это конкретный объект в на игровой карте, в данный момент. Стоит 5 футманов, и кот конкретный из них.
А второе это что конкретно из имеющихся вариантов... пехотинец, стрелок, рыцарь, целитель... и т.п.
Спасибо, можно ещё вопрос а как поставить индекс к переменной, в наработках видел что к переменным ставится в [], как это сделать?
27
KKrey, в гуи массив включить. это в начальных статьях объясняется. смотри где урок про переменные. там со скринами
в гуи 1.26 ограничения индекса массива от -8192 до 8192. тип туда не вставить, тк 4-значный равкод имеет большие цифры. там приходиться бд по другому строить: мы забиваем бд равкодов. потом нужно сравнить какой тип, пробегаем по бд равкодов циклом, вытаскиваем. неудобно как-то
8
в гуи 1.26 ограничения индекса массива от -8192 до 8192. тип туда не вставить, тк 4-значный равкод имеет большие цифры. там приходиться бд по другому строить: мы забиваем бд равкодов. потом нужно сравнить какой тип, пробегаем по бд равкодов циклом, вытаскиваем. неудобно как-то
Для этого есть хэш-таблицы. Собственно, в памяти ишры данные о юнитах хранятся в них же. Таюлицы луа, кстати, также являются, во многом, именно ими.
А ограничения размера массива - логичны и понятны. Массивы нужны для другого. А чтобы сохранить с массиве значения, по индексам, соответствующим всем потенциальным равкодам понадобится около 16 гб памяти, только в виде указателей. В джасовских массивах это еще больше.
И ограничения нужны именно для того, чтобы никто не пытался таким образом индексировать большими числами и не валил игру.
38

мы забиваем бд равкодов. потом нужно сравнить какой тип, пробегаем по бд равкодов циклом, вытаскиваем. неудобно как-то
всегда можно вычитать из равкода 'A000' ну или с чего начинается отсчет, это же integer xgm.guru/p/wc3/w3datatypes
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.