Так же как уровень любой способности - Set Level Of Ability/Increase Level Of Ability.
Если спеллбук предметметный, уровень сбросится если выбросить книгу.
С одной стороны, потому что у них богатый опыт работы с Lua. С другой, Lua - язык с богатой историей и множеством уже готовых к использованию библиотек. С третьей, разработчики с большей готовностью возьмутся работать с небезызвестным языком, нежели с самопалом.
Китайцы - рак игровой индустрии, и они в очередной раз это подтвердили.
Ну китайцы не делают ничего, чего бы не практиковал остальной рынок. Просто в виду своей подавляющей численности они привлекают к себе большее внимание.
YDAPI предоставляется сторонним редактором YDWE, наследника JNGP с набором улучшений от китайских фанатов. Работает с версиями Wc3 до 1.27a
DzAPI предоставляется другим сторонним редактором DzWE - пиратской версией YDWE. Netease украла большую часть кода YDWE без какого-либо указания авторства.
Оба этих API поддерживают монетизацию карт и митротранзакции, которые уничтожили атмосферу на китайских форумах редактора карт. Поэтому я бы рекомендовал вам отнестись к этим новостям с осторожностью.
Если вам интересен потенциал китайского рынка Wc3
Здесь говорится о том, что Netease извлекла прибль за прошедший год в размере 100 000 000 юаней (примерно 15 000 000 долларов или 13 000 000 евро) посредством микротранзакций. До сих пор Blizzard закрывала на это глаза. Вероятно именно это и стало настоящей причиной работы над Reforge.
У них там такая сейчас ситуация, что я бы вообще ничего загадывать не стал
c
Сам по себе язык хороший. Библиотек на нем море, игровых движков с ним море. Если играешь в WoW, то даже на пиратках по сей день есть много людей, которые готовы заплатить конкретные деньги за вполне конкретные аддоны или скрипты. Так что если привозмогёшь свою лень и разберешься, лично я вижу только плюсы.
а во время выполнения карты, другой список значений
Скриншот
В итоге, система не работает. Вопрос, почему?
Из-за константы MY_ABILITY. Как сказано в статье, выражение
compiletime(ABIL_ID_GEN.next())
будет заменено компилятором результатом его работы, то есть во время загрузки карты, вызова метода ABIL_ID_GEN.next уже не будет по месту константы, там будет сгенерированное значение. То есть метод ABIL_ID_GEN.next вызывается меньшее количество раз во время загрузки карты, чем во время ее компиляции, отсюда несоответствие генерируемых значений. Решить эту проблему можно добавлением в функцию initArray кода
Код
@compiletime
function initArray()
if not compiletime
ABIL_ID_GEN.next() // Дополнительный вызов в счет константы MY_ABILITY
for i = 0 to 9
otherAbilities[i] = ABIL_ID_GEN.next()
init
initArray()
Так что если ты генерируешь идентичные значения и во время компиляции и во время выполнения (что в целом нежелательно, так как это делает код очень неструктурированным) держи этот момент в голове.
Да, конечно. Если нужна просто одна константа, то можно так
Код
import ObjectIdGenerator
import MagicFunctions
constant MY_HERO_ID = compiletime(HERO_ID_GEN.next())
// Или с массивами
constant MY_ABILITY_ID = [compiletime(ABIL_ID_GEN.next()), compiletime(ABIL_ID_GEN.next()), compiletime(ABIL_ID_GEN.next()), compiletime(ABIL_ID_GEN.next()), compiletime(ABIL_ID_GEN.next())]
Или можно разделить
Код
import ObjectIdGenerator
import MagicFunctions
int array myAbilities
// Выполнится во время компиляции
@compiletime function initArray()
for i=0 to 9
myAbilities[i] = HERO_ID_GEN.next()
// Вызовем ту же фкнкцию во время инициализации, генерируя те же данные
init
initArray()
Если у тебя есть необходимость в сотни пакетов, ты что-то явно делаешь не так.
Либо это будет вызывать ошибки, по типу всяких бесконечных компиляций и т.д.
Нет. Но если такая ошибка возникнет, это баг компилятора (если не твоя ошибка), о котором надо сообщить разработчику.
Ты можешь только упереться в ОП лимит, поскольку выполнение блоков init каждого пакета выполняется в пределах одной функции вызовом TriggerEvaluate. В остальном без ограничений.
В Jass размерность массива не задается, этого нет в его синтаксисе. Используется в vJass и Zinc и только для объяления типа-массива или двумерного массива. То есть запись
real array some_numbers[5]
будет переварена парсером но сама по себе не имеет смысла.
Parom_Harona, лучше так и сделать, потому что до сих пор просто не понятно, о чем идет речь. Не получается построить в голове картинку требуемой способности. Как там говорить принято, "Без внятного ТЗ, результат - хз".
Как написал PT153.
Единственная проблема, если ты используешь стандартный редактор карт, в таком случае придется использовать CustomScript вставку, поскольку функции получения локального игрока там нет
Но в этом случае ты можешь облегчить себе жизнь. Создай переменную в которой будет храниться локальный игрок и присвой ей значения в триггере инициализации, а дальше только через GUI
» WarCraft II: The Rebirth / Видео моделей (15.04.19)
» WarCraft 3 / Поднять лвл заклинания а спелбуке
Если спеллбук предметметный, уровень сбросится если выбросить книгу.
» WarCraft 3 / Способность феникса в старафт 2
» WarCraft 3 / wait течет или капает?
» WarCraft 3 / JNGP 1.30 - есть что-нибудь такое?
» WarCraft 3 / Патч 1.31, скоро?
quq_CCCP:
quq_CCCP:
» WarCraft 3 / Патч 1.31, скоро?
» WarCraft 3 / Патч 1.31, скоро?
Ред. GetLocalPlayer
» WarCraft 3 / Патч 1.31, скоро?
» Администрация XGM / А какой у вас размер футболки?
» Администрация XGM / А какой у вас размер футболки?
» WarCraft 3 / Какой патч лучше?
Ред. GetLocalPlayer
» WarCraft 3 / Найти неизвестную в уровнении
» WarCraft 3 / Lua
Ред. GetLocalPlayer
» WarCraft 3 / Wurst: Кол-во пакетов
Из-за константы MY_ABILITY. Как сказано в статье, выражение
» WarCraft 3 / Wurst: Кол-во пакетов
» WarCraft 3 / Wurst: Кол-во пакетов
Ты можешь только упереться в ОП лимит, поскольку выполнение блоков init каждого пакета выполняется в пределах одной функции вызовом TriggerEvaluate. В остальном без ограничений.
» WarCraft 3 / Баг через 6000 сек
» Мир безумного / WarCraft III Reforged - WE (что хотите увидеть?)
Ред. GetLocalPlayer
» WarCraft 3 / Введение в JASS новичка (меня)
pAxsIs:
Подробнее тут или тут, что больше нравится.
Ред. GetLocalPlayer
» WarCraft 3 / Введение в JASS новичка (меня)
Hate:
» WarCraft 3 / Камера с видоам сзади
» WarCraft 3 / Jass Сложный скилл
» WarCraft 3 / Можно ли проиграть спецэффект только для отдельного игрока?
» WarCraft 3 / Можно ли проиграть спецэффект только для отдельного игрока?
Единственная проблема, если ты используешь стандартный редактор карт, в таком случае придется использовать CustomScript вставку, поскольку функции получения локального игрока там нет