Что значит без события "юнит погружен"? Возможно вы хотите зафиксировать, что юнит находится в транспорте, то без этого никак. Добавляете в группу. Эта группа нужна просто для проверки, что юнит в транспорте. Когда нужно узнать в транспорте ли он, в условием Boolean - "юнит в <группе>". Можно и по-другому чекать, но мне с группой проще
А выход из группы возможен с помощью приказа. Когда юнит дропается или вылезает из транспорта, он получается приказ "stop". Есть наработка на хгм.
Можно еще зафиксировать условием Boolean - "находится ли юнит в транспорте". Однако, это условие очень не подходящее, поскольку нужно указывать не только пассажира, но и транспорт. А так сложнее будет, поскольку транспортом может кто-угодно быть. Нужно пикать всех юнитов на карте, и чекать этой фукц
так что вы имели в виду не понятно. Возможно можно воздействовать и давать, самим то чего не проверить? Юниты по сути скрыты. Пример навык кодоя, который проглатывает жертву, и переваривает ее - это тоже транспорт.
KKrey, в гуи массив включить. это в начальных статьях объясняется. смотри где урок про переменные. там со скринами
в гуи 1.26 ограничения индекса массива от -8192 до 8192. тип туда не вставить, тк 4-значный равкод имеет большие цифры. там приходиться бд по другому строить: мы забиваем бд равкодов. потом нужно сравнить какой тип, пробегаем по бд равкодов циклом, вытаскиваем. неудобно как-то
тип юнита - число (равкод). или точнее номер в бд. В редакторе триггеров в гуи-меню у вас сразу высвечиваются иконки типов.
Если нужно создать пехотинца, указываем тип пехотинца (номер пример 'hfoo')
Если нужно заставить раба строить, указываем тип здания (пример ферма 'hhou')
Если нужно обучить в казармах стрелка, указываем тип стрелка ('hrif')
и др
юнит - это просто ссылка на боевую единицу. В триггерах в сравнении юнитов можно сравнивать юнитов, это помогает отсеивать одинаковых или одни и тех юнитов. есть ряд функции для работы с юнит. юнит в варкрафте это все.
ScorpioT1000, вы рофлите? какие эмодзи?
да никак он не ведет себя. нажатие одновременное Ctrl+буква или цифра = > ничего не происходит. работает только с буквами и цифрами.
Но если выделять текст мышкой, и нажать Ctrl+C => копирует текст в буфер
Ctrl+V => вставляет текст из буфера
Ctrl+A => никак не выделить текст
Insert => не знаю, что это за кнопка. Примерно понимаю, что на курсор ввода как-то влияет. Но по ощущениям ничего не происходит.
Может вылететь, у меня так и произошло.
я очень долго редактировал поле, и у меня вылетало.
помню писали об этом здесь, правда, там про десинки в мультиплеере. не знаю, мб это еще из-за дебага BlzFrameGetText (Editbox) или события FRAMEEVENT_EDITBOX_TEXT_CHANGED
прямоугольные ректы. Если там прямоугольная форма, то ее можно растянуть еще. Как у вас выше.
регионы, в которые добавляют/вычищают в себя все ректы. Тут есть у вас будут различные прямоугольные формы: Г, T итд. вспоминаем тетрис. тогда нужно разбивать области на прямоугольные области
Bergi,
Предмет: регенерация маны 'AIrm'/Предмет: регенерация маны (малый) 'AIrn' - каждую секунду процентно восстанавливает ману. Процент идет от базового регена + от регена интеллекта героя + другие бонусные регенерации типа чародейская ауры или аура фонтана магии. Эта регенерация работает только у героя, у обычных юнитов что-то не хочет идти.
формула
MANA_REGEN_SobiMask =((base_mana_regen + mana_regen_Intellect + другие бонусы типа чародейской ауры)*p) - реген от одной абилки. Если вообще нет никакого регена (реген != 0, главное чтоб был хотя бы один реген), то не будет работать реген и от маски. теперь даже отрицательный реген может получится, если указано отрицательное значение коэффициента. ВНИМАНИЕ: в этой формуле MANA_REGEN_SobiMask не учитывается реген от других соби масок, если у героя их несколько. Учитывают базовый реген, реген от инты +другие регены MANA_REGEN_Common = mana_regen_Intellect + MANA_REGEN_SobiMask + другие бонусы типа чародейской ауры - общий реген (так как у героя работает только реген от инты и от других бонусов, а вот базовый реген не учитывается. Так как базовый реген не работает на герое) MANA_REGEN_Common = mana_regen_Intellect + MANA_REGEN_SobiMask1 + MANA_REGEN_SobiMask2 + другие бонусы типа чародейской ауры - общий реген ((если абилок от маски соби несколько, они суммируются вот так)
Какие бонусы есть в игре? Это пассивки (чародейская аура, аура фонтана, маска соби не учитывается), активных заклинании с постепенным восстановлением не много (рев, леденящий крик, омоложение не учитывается, base_mana_regen - базовый реген, который указан в РО юнита "Характеристики - Восстановление маны". Работает только у обычных юнитов, тестировал этот момент у героя. У героя показывает реген от интеллекта (базовый не работает у героя), но когда он одевает маску соби учитывается базовый реген. Благодаря базовому регену, можно сделать героя с уникальным регеном. mana_regen_Intellect = Intellect * k - реген от интеллекта (где Intellect - кол-во интеллекта героя, k - константа "Характеристики героя: увеличение скорости восстановления за единицу разума", которая за каждую единицу маны восстанавливает заданное число) p - процент от абилки
бонус мана реген через абилку маски соби может не работать у не-героев, только у героев. тестил еще в мемхаке. так что лучше напрямую изменять базовый мана реген, а данных хранить в таблицах
--base regen mana/sec
function GetUnitBaseRegenMana(unit)
return BlzGetUnitRealField(unit, UNIT_RF_MANA_REGENERATION)
end
function SetUnitBaseRegenMana(unit, value)
return BlzSetUnitRealField( unit, UNIT_RF_MANA_REGENERATION, value )
end
повторяющие действие. пример бонус на макс хп можно изменить прямой нативкой. или реген тоже можно изменять.
а вот сила/ловкость/интеллект, защита/урон и др => им трудно добавить бонус, тк нативки изменяют только базовый или общий, т.е. белый параметр. нету подразделения четкого. это тогда нужно изменять сам интерфейс. в принципе не сложно добавить зеленку в интерфейс, а все данных в таблицах подразделять: бонус/базовый. Но это уже в след версии. Здесь бонусы добавляются через абилки степени двойки
можно триггером полностью отключить управление скриптом юнита. так и обратно подключить. а вот частичное, такое нельзя. не знаю точно, это надо в редактор ИИ смотреть. Но судя по всему нет (я еще ни разу не разобрался как работает это дрянь. примерно понял, что там есть определенный алгоритм атаки/защиты/стройки и пр) было бы интересно внутри капота заглянуть и стырить код. ИИ там рассчитан на сражения.
ты можешь отключать в нужный момент. И возвращать его ему, когда например, база атакована или какой момент в атаку идет. не знаю.
вот пример результата:
герой Блэйдмастер
cooldawn time = 1.770
базовый = 1.00
23 ловкости*0.02=0.046%
формула задержки: time = cooldawn / bonus
бонусов от перчаток нет (понятное дело, что скорость не уперлась в лимиты. боятся нечего. никаких изменении не будет в теории)
теоретическое время = 1.212329 сек (при общем бонусе 1.46%)
замеренное таймером задержка = 1.210938 сек
бонусы добавляем
4.00 бонуса от перчаток (тут без формулы урезания)
теоретическое время = 0.3241759 сек (при общем бонусе 5.46% - что вообще-то неправильно)
замеренное таймером задержка = 0.3515625 сек или 0.359375 сек
погрешность в сотых
теперь тоже самое, но с учетом бонуса ловкости в лимит
4.00 бонуса от перчаток (бонус от перчаток урезали до 354 из-за ловкости)
теоретическое время = 0.3547095 сек (при общем бонусе 5.00% - макс лимит)
замеренное таймером задержка = 0.3515625 сек или 0.359375 сек
к последнему эксперименту пробовал добавлять бонус ловкости. и изменения не происходят. явно уперлось в границы лимита
Vlod, ну прямой нативки в рефордже на attack speed нет. Есть лишь нативка BlzGetUnitAttackCooldown / BlzSetUnitAttackCooldown. Конечно, можно этим отследить базовую скорость, зная задержку.
ты решил добавить через способности степени двойки скорость атаки?
да. это только всего лишь бонусы. Но если использовать это, тогда все скиллы должны быть полностью кастомными, и итемы тоже.
можно вообще работать только с BAT (AttackSpeed). а бонусы просто в интерфейс через фреймы информировать зелеными циферками.
точно также с base damage, base armor.
код
native BlzGetUnitArmor takes unit whichUnit returns real --считывает базовый+бонус
native BlzSetUnitArmor takes unit whichUnit, real armorAmount returns nothing
native BlzGetUnitBaseDamage takes unit whichUnit, integer weaponIndex returns integer
native BlzGetUnitDiceNumber takes unit whichUnit, integer weaponIndex returns integer
native BlzGetUnitDiceSides takes unit whichUnit, integer weaponIndex returns integer
native BlzSetUnitBaseDamage takes unit whichUnit, integer baseDamage, integer weaponIndex returns nothing
native BlzSetUnitDiceNumber takes unit whichUnit, integer diceNumber, integer weaponIndex returns nothing
native BlzSetUnitDiceSides takes unit whichUnit, integer diceSides, integer weaponIndex returns nothing
Нет только нативок на бонусы (их можно сделать или использовать BonusMod). Бонусы можно просто отображать через фркеймы. Но это еще больше работы.
» Прочее / ВРЕМЯ ЖИВЫХ ИСТЕКЛО! — The Unliving DEMO (Рецензия)
» WarCraft 3 / Жизнь на Арене
» WarCraft 3 / Как можно воздействовать на юнита в транспорте?
Ред. MpW
» WarCraft 3 / Как можно воздействовать на юнита в транспорте?
https://www.xgm.guru/p/wc3/transporting
Ред. MpW
» WarCraft 3 / Aqua (300 Heroes)
Ред. MpW
» WarCraft 3 / Области спавна и радиусы вышек через ALT [готово]
» WarCraft 3 / Кодируем и декодируем строки и сейвкоды
Ред. MpW
» WarCraft 3 / Скорость поворота юнита
Ред. MpW
» WarCraft 3 / Вопрос по переменным
Ред. MpW
» WarCraft 3 / Вопрос по переменным
» WarCraft 3 / Подчинение
Ред. MpW
» WarCraft 3 / EditBox - User Text
да никак он не ведет себя. нажатие одновременное Ctrl+буква или цифра = > ничего не происходит. работает только с буквами и цифрами.
Ctrl+V => вставляет текст из буфера
Ctrl+A => никак не выделить текст
Insert => не знаю, что это за кнопка. Примерно понимаю, что на курсор ввода как-то влияет. Но по ощущениям ничего не происходит.
помню писали об этом здесь, правда, там про десинки в мультиплеере. не знаю, мб это еще из-за дебага BlzFrameGetText (Editbox) или события FRAMEEVENT_EDITBOX_TEXT_CHANGED
Ред. MpW
» WarCraft 3 / Вопрос по связи отрядов в областях по горизонтали и вертикали.
» WarCraft 3 / BonusMod v2.8
Ред. MpW
» WarCraft 3 / BonusMod v2.8
Предмет: регенерация маны 'AIrm'/Предмет: регенерация маны (малый) 'AIrn' - каждую секунду процентно восстанавливает ману. Процент идет от базового регена + от регена интеллекта героя + другие бонусные регенерации типа чародейская ауры или аура фонтана магии. Эта регенерация работает только у героя, у обычных юнитов что-то не хочет идти.
MANA_REGEN_Common = mana_regen_Intellect + MANA_REGEN_SobiMask + другие бонусы типа чародейской ауры - общий реген (так как у героя работает только реген от инты и от других бонусов, а вот базовый реген не учитывается. Так как базовый реген не работает на герое)
MANA_REGEN_Common = mana_regen_Intellect + MANA_REGEN_SobiMask1 + MANA_REGEN_SobiMask2 + другие бонусы типа чародейской ауры - общий реген ((если абилок от маски соби несколько, они суммируются вот так)
Какие бонусы есть в игре? Это пассивки (чародейская аура, аура фонтана, маска соби не учитывается), активных заклинании с постепенным восстановлением не много (рев, леденящий крик, омоложение не учитывается,
base_mana_regen - базовый реген, который указан в РО юнита "Характеристики - Восстановление маны". Работает только у обычных юнитов, тестировал этот момент у героя. У героя показывает реген от интеллекта (базовый не работает у героя), но когда он одевает маску соби учитывается базовый реген. Благодаря базовому регену, можно сделать героя с уникальным регеном.
mana_regen_Intellect = Intellect * k - реген от интеллекта (где Intellect - кол-во интеллекта героя, k - константа "Характеристики героя: увеличение скорости восстановления за единицу разума", которая за каждую единицу маны восстанавливает заданное число)
p - процент от абилки
Ред. MpW
» WarCraft 3 / BonusMod v2.8
Ред. MpW
» WarCraft 3 / BonusMod v2.8
а вот сила/ловкость/интеллект, защита/урон и др => им трудно добавить бонус, тк нативки изменяют только базовый или общий, т.е. белый параметр. нету подразделения четкого. это тогда нужно изменять сам интерфейс. в принципе не сложно добавить зеленку в интерфейс, а все данных в таблицах подразделять: бонус/базовый. Но это уже в след версии. Здесь бонусы добавляются через абилки степени двойки
Ред. MpW
» WarCraft 3 / Игра в кальмара для Warcraft 3
Ред. MpW
» WarCraft 3 / ИИ
ты можешь отключать в нужный момент. И возвращать его ему, когда например, база атакована или какой момент в атаку идет. не знаю.
Ред. MpW
» WarCraft 3 / бонусы скорости атаки от ловкости
герой Блэйдмастер
cooldawn time = 1.770
базовый = 1.00
23 ловкости*0.02=0.046%
теоретическое время = 1.212329 сек (при общем бонусе 1.46%)
замеренное таймером задержка = 1.210938 сек
4.00 бонуса от перчаток (тут без формулы урезания)
теоретическое время = 0.3241759 сек (при общем бонусе 5.46% - что вообще-то неправильно)
замеренное таймером задержка = 0.3515625 сек или 0.359375 сек
погрешность в сотых
4.00 бонуса от перчаток (бонус от перчаток урезали до 354 из-за ловкости)
теоретическое время = 0.3547095 сек (при общем бонусе 5.00% - макс лимит)
замеренное таймером задержка = 0.3515625 сек или 0.359375 сек
Ред. MpW
» WarCraft 3 / Список дефолтных фреймов-3. ConsoleUI и его потомки
Ред. MpW
» WarCraft 3 / Список дефолтных фреймов-3. ConsoleUI и его потомки
если кнопка подсвечивается, значит, реакция мыши и событие сфокусированы на кнопке, клики должны работать сложно сказать, возможно залипание. никаких. это просто невидимый фрейм. его убрать/скрыть можно.
» WarCraft 3 / Обучение jass
Ред. MpW
» WarCraft 3 / [lua] BonusMod
можно вообще работать только с BAT (AttackSpeed). а бонусы просто в интерфейс через фреймы информировать зелеными циферками.
» WarCraft 3 / Обучение jass