Тут нужно оптимизировать код, много вижу лишних функций с группами. Если я правильно понял, твой скил мгновенный, создает в точке каста вокруг ведьмаков, которые станят вокруг себя в радиусе 100.
Более оптимизированная версия, попробуй проверить ее на уточки.
globals
group TempGroup = CreateGroup()
endglobals
function Trig_R_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A006'
endfunction
function Stun_R takes unit enemy, unit u returns nothing
local real ux = GetUnitX(u)
local real uy = GetUnitY(u)
local real x = GetUnitX(enemy)
local real y = GetUnitY(enemy)
local real a = Atan2(y-uy, x-ux)
// стан
local unit dummy = CreateUnit(GetOwningPlayer(u), 'u000', x, y, 0.) // Создадим дамми в координатах цели
call UnitApplyTimedLife(dummy, 'BTLF', 1) // Укажем время жизни дамми
call UnitAddAbility(dummy, 'A007')
call IssueTargetOrder(dummy, "thunderbolt", enemy)
// двигаем
call SetUnitX(enemy, x + 40*Cos(a))
call SetUnitY(enemy, y + 40*Sin(a))
// визуал
call SetUnitAnimation(u, "spell")
call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Other\\Incinerate\\IncinerateBuff.mdl", ux, uy))
set dummy = null
endfunction
function Trig_R_Actions takes nothing returns nothing
local unit caster = GetTriggerUnit()
local integer i = 0
local real a
local real ux
local real uy
local unit witchers
local unit enemy
local real rx = GetSpellTargetX()
local real ry = GetSpellTargetY()
loop
exitwhen i >= 15 // Создаёт 8 стен, образуя круг
set a = i * 24 * bj_DEGTORAD
set ux = rx + 400 * Cos(a)
set uy = ry + 400 * Sin(a)
set a = Atan2(ry-uy, rx-ux) * bj_RADTODEG
set witchers = CreateUnit(GetOwningPlayer(caster), 'h006', ux, uy, a)
call SetUnitAnimation(witchers, "stand defend")
call UnitApplyTimedLife(witchers, 'BFig', 3) // Исчезает через 10 сек sum i +14
call GroupEnumUnitsInRange(TempGroup, ux, uy, 100, null)
loop
set enemy = FirstOfGroup(TempGroup)
exitwhen enemy == null
if IsPlayerEnemy( GetOwningPlayer(caster), GetOwningPlayer(enemy)) and UnitAlive(enemy) and not IsUnitIdType(GetUnitTypeId(enemy), UNIT_TYPE_STRUCTURE) then
call Stun_R(enemy, witchers)
endif
call GroupRemoveUnit(TempGroup, enemy)
set enemy = null
endloop
set witchers = null
set i = i + 1
endloop
call GroupClear(TempGroup)
set caster = null
endfunction
function InitTrig_R takes nothing returns nothing
local trigger trg = CreateTrigger()
local integer index = 0
loop
call TriggerRegisterPlayerUnitEvent(trg, Player(index), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
set index = index + 1
exitwhen index == bj_MAX_PLAYER_SLOTS
endloop
call TriggerAddCondition(trg, Condition(function Trig_R_Conditions))
call TriggerAddAction(trg, function Trig_R_Actions)
set trg = null
endfunction
Altrrik_derff34, сыграл, там много есть ошибок
у гая, первые три скила норм, 4 скил врата, после каста пропадает возможность их юзать и кроме быстрого перемещения ничего не дают, 5 скил так не активировался
рок ли в основном лотусе использует скил даже на мертвых, врата опять одноразовые, пропадают после каста
у неджи при активации бьякугана выходит модель шарингана и не тратится мана, в том числе не сжигает ману у юнитов, непонятно для чего он
нету 64 и 128 ударов небес
у мей два водяных дракона скила и оба с одним ID приказа и хоткеем
у тсунаде печать бьякуи ничего не дает
это вот пример
исправлению скилов это важно, но в карте толку от них если нет какой либо истории, сюжета или цели игры, было бы не плохо разнообразить квестами карту, вот выбрал игрок героя и что ему делать дальше, игра пока что на пару минут, потом уже надоедает бить крипов, а после этого еще можно записать видео гайд как в этой карте проходить. Думаю стоит начать с этого.
Рад увидеть новую карту про Наруто, но в игре много чего нужно исправить.
Из того что понравилось
Много разных героев на выбор и много моделей героев как NPC
Большое количество локаций
Триггерные способности
Ландшафт местами хорош, но и местами ужасен( об этом в минусах)
Музыка из Наруто
Динамичное движение NPC и происходит какая то динамика сражений
Озвучка способностей
Теперь минусы и баги:
Из минусов выделю сначала самые жирные
Лаги... Периодически карта начинает подвисать
Карта на самых невостребованных патчах, 1.29 и 1.31
Нет описания что нужно делать собственно или в чем заключается цель карты
Строки в описаниях почему то сломаны, что непонятно становится что собирать из предметов или прочитать описание чего либо
Аниме ландшафт лучше не сочетать с дефолтом варкрафта, как и с юнитами(аколиты, кузницы, водные элементали и т.д) это все стоит убрать.
Дефолт иконки тоже стоит убрать и заменить по тематике
Некоторые здания, декорации, юниты слишком замаштабированы по сравнению с другими
Способности конечно есть и даже триггерные, но их мало у некоторых и некоторые с багами( можно как вариант было бы сделать героев по чуть чуть, но с большим количеством спелов)
Некоторые модели уже устарели, стоит обновить.
При увеличении камеры видны куски закрытых территорий
Непонятно почему однохвостый и девятихвостый делают на базе акатсуки
У крипов слишком занижен радиус агра, то есть если пикнуть дальнего героя, Гаару например и бить крипов, они просто стоят и не нападают даже
Огненный расенган Джирайии ничего не дает при активации.
У Наруто клоны вечные!?
При пике Орочимару, герой завис и камера переместилась в закрытую темную территорию
Если Саске наводит чидори на себя он зависает
Текстура пола слишком увеличена и в некоторых местах можно проходить сквозь декор
При касте Саске 3 и 4 катона, происходят сильные лаги, а при 4 катоне еще и зависает герой в паузе
При касте проклятой печати Саске пропали все скилы в спелбуке чидори и огненных техник
Почему то только в Конохе и в деревне Дождя есть магазины для закупа. Героям из других деревень придется бежать туда.
При касте каварими стоит убрать иконку бафа стремительности и добавить бревно на место каста что ли.
Предложения: Если карта жанра рпг, было бы не плохо добавить квесты. Желательно с инструкцией. Ее тут не хватает.
Итог: Работы над картой довольно много, я еще не сыграл за всех героев, если сыграю отпишу по багам еще, но в первую очередь стоит исправить ошибки, в первую очередь критические. Удачи тебе в проекте, интересно всегда поиграть в карты по Наруто, коих становится все меньше в наше время.
Попробуй удалить при открытии редактора способность которая не удаляется, если она удалится, скорее всего у тебя баг с редактором, а не в способности, как у меня был, в таком случае я удалял их условно по 5-10 потом сохранялся и так каждый раз. Это касается любых объектов в редакторе объектов.
Вот так должны быть твои первые три действия вместо твоих четырех, устанавливаешь координаты, затем создаешь и удаляешь эффект таким путем
лучше это конечно писать через код
local real xRandom = GetRandomReal(GetRectMinX(bj_mapInitialPlayableArea), GetRectMaxX(bj_mapInitialPlayableArea))
local real yRandom = GetRandomReal(GetRectMinY(bj_mapInitialPlayableArea), GetRectMaxY(bj_mapInitialPlayableArea))
call DestroyEffect(AddSpecialEffect("Abilities\\Spells\Human\\Blizzard\\BlizzardTarget.mdl", xRandom, yRandom))
Перенести конверт гуймуи на джассе будет геморнее, чем написать с нуля. Там в коде много гуи конверта. Скорее лучше делать с нуля. Пока что получилось добавить пик героев ботами и направить в мид, но кажется сломалась таблица.
Emercy, Если есть знания jass ты их найдешь, если нет, попробуй прикрепить карты, может кто сделает
если решишь найти сам, открой war3map.j файл текстовым редактором(блокнот, vscode и т.п)
тебе нужно найти функции отвечающие за пик героя ботом, за движение по линии, изучение и применение скилов и закуп предметов
ищи по ключевым словам, например как такие
Затем тебе надо их перенести или написать самому и адаптировать к другой версии карты(что самое сложное) тут нужно учесть все факторы игры, мультиборды, системы воскрешения и т.д
открываем статьи на сайте по написанию ИИ
и опять же нужны знания jass что бы проделать все это.
Так что сложного. Есть событие герой повышает уровень, если уровень героя == такому то, блокируем опыт функцией
call SuspendHeroXP(Unit, true)
Далее есть два варианта
Создаем второго героя который будет получать опыт и после покупки предмета переносим его опыт первому герою.
Получить опыт героя можно через функцию
GetHeroXP(Hero)
2.Делаем кастомное получение опыта: Создаем целочисленную. При событии юнит умирает пикаем юнитов в радиусе и прибавляем к этой целочисленной опыт либо записываем в хэштаблицу на хэндл героя. Создаем триггер с событием получения предмета и выдаем опыт с сохраненной целочисленной или с ХТ.
перед выдачей опыта разблокируем получение.
Эти карты я так понимаю запротекчены, нужно снять защиту, взять war3map.j файл и добавить свой код ИИ(естественно все будет на жасс, никакого гуи), потом положить обратно
LastUchiha, нет, основная задача структур это удобство. Что бы ты понимал Структуры это массив, тоже самое что и в GUI MUI. Само MUI это мультиплрименяемость, когда заклинание могут использовать несколько юнитов.
Можешь делать через Хештаблицу, можешь через Структуры. Тут уже сам выбираешь способ. Оба варианта MUI.
Вот тебе пример, хочешь сделать спел, который прожав на вражеского героя нанесет урон спустя время. В данном случае структура не нужна, можно обойтись простой хэштаблицей, всего лишь записать нужно две переменные и выгрузить.
О, ты тоже Наруто фан, как и я делаешь Наруто карты, интересно.
» WarCraft 3 / Столкновение юнитов
» WarCraft 3 / Столкновение юнитов
Ред. SoulRazor
» WarCraft 3 / Где утечки
Более оптимизированная версия, попробуй проверить ее на уточки.
» WarCraft 3 / Где утечки
» WarCraft 3 / Где утечки
» WarCraft 3 / Где утечки
» New Naruto Ultimate / New Naruto Ultimate
у гая, первые три скила норм, 4 скил врата, после каста пропадает возможность их юзать и кроме быстрого перемещения ничего не дают, 5 скил так не активировался
рок ли в основном лотусе использует скил даже на мертвых, врата опять одноразовые, пропадают после каста
у неджи при активации бьякугана выходит модель шарингана и не тратится мана, в том числе не сжигает ману у юнитов, непонятно для чего он
нету 64 и 128 ударов небес
у мей два водяных дракона скила и оба с одним ID приказа и хоткеем
у тсунаде печать бьякуи ничего не дает
это вот пример
исправлению скилов это важно, но в карте толку от них если нет какой либо истории, сюжета или цели игры, было бы не плохо разнообразить квестами карту, вот выбрал игрок героя и что ему делать дальше, игра пока что на пару минут, потом уже надоедает бить крипов, а после этого еще можно записать видео гайд как в этой карте проходить. Думаю стоит начать с этого.
» New Naruto Ultimate / New Naruto Ultimate
» New Naruto Ultimate / New Naruto Ultimate
» WarCraft 3 / Автовоскрешение героя (через здание)
Ред. SoulRazor
» New Naruto Ultimate / New Naruto Ultimate
Из того что понравилось
Из минусов выделю сначала самые жирные
У Наруто клоны вечные!?
При пике Орочимару, герой завис и камера переместилась в закрытую темную территорию
Если Саске наводит чидори на себя он зависает
Текстура пола слишком увеличена и в некоторых местах можно проходить сквозь декор
При касте проклятой печати Саске пропали все скилы в спелбуке чидори и огненных техник
Почему то только в Конохе и в деревне Дождя есть магазины для закупа. Героям из других деревень придется бежать туда.
При касте каварими стоит убрать иконку бафа стремительности и добавить бревно на место каста что ли.
Предложения: Если карта жанра рпг, было бы не плохо добавить квесты. Желательно с инструкцией. Ее тут не хватает.
Ред. SoulRazor
» WarCraft 3 / Юниты стоят на месте. Что делать?
» WarCraft 3 / При удалении способности из РО, выходит ошибка
Ред. SoulRazor
» WarCraft 3 / Как удалять локальные переменные типа location?
лучше это конечно писать через код
Ред. SoulRazor
» WarCraft 3 / Как удалять локальные переменные типа location?
Ред. SoulRazor
» WarCraft 3 / Почему Jass код не работает?
» WarCraft 3 / Игральный кубик
» WarCraft 3 / Как правильно юзать локации? Jass.
» WarCraft 3 / Нет звука в Варике
» WarCraft 3 / Нужен профи по jass
Ред. SoulRazor
» WarCraft 3 / Помогите добавить ботов в карту naruto ninpou 9.7
если решишь найти сам, открой war3map.j файл текстовым редактором(блокнот, vscode и т.п)
тебе нужно найти функции отвечающие за пик героя ботом, за движение по линии, изучение и применение скилов и закуп предметов
ищи по ключевым словам, например как такие
открываем статьи на сайте по написанию ИИ
и опять же нужны знания jass что бы проделать все это.
Ред. SoulRazor
» WarCraft 3 / Сохранить и записать получаемый опыт
перед выдачей опыта разблокируем получение.
» WarCraft 3 / Помогите добавить ботов в карту naruto ninpou 9.7
» WarCraft 3 / Имеет ли смысл писать на структурах, если спелл на карте один? Jass.
Можешь делать через Хештаблицу, можешь через Структуры. Тут уже сам выбираешь способ. Оба варианта MUI.
Вот тебе пример, хочешь сделать спел, который прожав на вражеского героя нанесет урон спустя время. В данном случае структура не нужна, можно обойтись простой хэштаблицей, всего лишь записать нужно две переменные и выгрузить.
» WarCraft 3 / Имеет ли смысл писать на структурах, если спелл на карте один? Jass.