Пока ждал ответов порылся немного на hiveworkshop
по поводу Редактора объектов прочитал одну из версий "Check if Game Data-Set is set to "Standard (basing on map blabla)" and should not "Melee (Actual patch)",as that will attempt overriding map-data (afaik). May be wrong on that one, not sure.
Its the last option on where you can set global weather, own sound environment etc. for the map."
Так же рекомендовали и переустановить игру, так как вариант с версией в настройках не помог, занимаюсь переустановкой
По поводу импорта, узнал что такое случается если импортируешь какой то проблемный файл. и остальной импорт рушиться, многие подтвердили что лечиться удалением кривого файла и всё возвращается как надо после перезапуска редактора. Мне это не помогло. Поэтому опять же занимаюсь переустановкой варика.
Переустановил варик. Открыл карту, кликнул на способность "Сильный удар" он же Bash горного короля, CTR+C , CTRL + V, поменял шанс на стан на 0 , поменял бонус урон на 0 , сохранил карту на разных дисках, закрыл редактор. Открыл карту и на обоих картах значение вернулось шанса на стан и бонуса к урону к стандартному. Есть идеи что это за вакханалия?
Есть одна идея но я не особо понимаю как она могла повлиять.
Я копировал на свою карту способности из старых версий потому что было лень писать по новой описание и прочее. Но опять же , как это может относится к новым способностям которые я уже внутри карты создаю и форматирую?
Может я что то не понял, но я добавил постоянную невидимость волков фарсира. Всё работает. Враги не бьют.
Но в любом случае какой нибудь детект инвиза сломает эту схему. А так вот карта тут работает всё
// set Lgroup2=CreateGroup()
// call GroupEnumUnitsInRange(Lgroup2,LmissiletargetpointX,LmissiletargetpointY,150,null)
//loop
//set Picked=FirstOfGroup(Lgroup2)
//exitwhen Picked==null
//if IsUnitEnemy(Picked, GetOwningPlayer(Lcaster)) == true and GetWidgetLife(Picked)>0.405 and IsUnitType(Picked, UNIT_TYPE_STRUCTURE) == false then
// call UnitDamageTargetBJ( Lcaster, Picked, Ldmg, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
// call GroupRemoveUnit(Lgroup2,Picked)
//endif
- Если как раз таки мой герой (который не подходит условию попадал под абилку) я ничего не вырубал/не чистил в этот момент, из за этого начинались проблемы.
//endloop
В одно время с твоим постом я тоже нашёл проблему. Глянул твой код, поэтому любом случае оставляю твой ответ как правильный, потому что у тебя человеческий код в отличии от моего. Благодарю.
Это как танцы с бубном, если код нормальный, то логично что трабла не в нем...
Я там вон выше описал когда пропадает проблема, а код не факт что нормальный , мало ли где я там накосячить мог. и в сочетании с чем то или в какой то момент этот loop фризит варик.
Вопрос такой, может ли как то связано быть с этим то, что я открывал и запускал/ пытался запустить в редакторе разные карты с наработками/библиотеками и сделанные в разных версиях, в том числе поломанными картами которые крашились и прочее. При этом сам редактор не перезапуска после всего этого, а открыл свою карту и начал заниматься ей.
Поковырялся, поотключал различные этапы абилки. Проблема проподает если убрать часть кода где ищутся юниты в точке падения снаряда и перебираются для нанесения урона
(ВАЖНО, карта пустая никого враждебного на карте нет, это карта которая я выложил тут)
// set Lgroup2=CreateGroup()
// call GroupEnumUnitsInRange(Lgroup2,LmissiletargetpointX,LmissiletargetpointY,150,null)
//loop
//set Picked=FirstOfGroup(Lgroup2)
//exitwhen Picked==null
//if IsUnitEnemy(Picked, GetOwningPlayer(Lcaster)) == true and GetWidgetLife(Picked)>0.405 and IsUnitType(Picked, UNIT_TYPE_STRUCTURE) == false then
// call UnitDamageTargetBJ( Lcaster, Picked, Ldmg, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
// call GroupRemoveUnit(Lgroup2,Picked)
//endif
//endloop
Посмотрел,всё работает зависаний нет, спамил абилку и нарезал круги
Ну я щас после твоего комента зашёл ещё раз чекал, первые секунд 20 я думал что реально всё норм. Но потом опять.
И типо я к тому что на протяжении всего намёков на лаги от утечек нет, всё плавно (утечки конечно же там есть) Но в один момент всё полностью зависает резко.
P.S опять же отметая теорию утечек, при другой попытке я закастил побежал и сразу зависло.
Перенёс на пустую карту, это конечно не точно, но если стоять и не двигать героя то зависаний не было, но если пока идёт время действия абилки начать бегать то происходит зависание.
Прикрепляю карту. Reforged last vers.
Тут надо понять как деформируется рельеф по высоте. Проще брать сеточкой (карта состоит из клеток тайлов), как рассчитываете размер шага брать? мин шаг - 32 или 128?
1 берете заводите темп глобалку maxH, и координаты XH YH. в ней записываете высоту центра окружности и координаты XH YH
2 Можно взять квадрат, который вписан в окружность. или правильно сказать окружность вписанная в квадрат. путаю эти понятия. далее циклом пробегаете по каждой точке квадрата. и сравниваете размер высоты с maxH.
Цикл происходит так (описываю примерно): сначала от левого верхнего угла квадрата берем точку, и проверяем
2.1 лежит ли точка в окружности, это надо сравнить: расстояние этой точки от центра окружности <= radius круга. Если меньше значит попала точка, иначе если больше расстояние, значит точка не лежит в круге (значит лежит уголке квадрата), следовательно, высоту не имеет смысла проверять.
2.2 проверяем высоту. сравниваем высоту выбранной точки, если оно больше чем maxH, значит берем эту высоту и записываем в maxH и координаты этой точки в XH YH
А да не рассказал как цикл происходит. От левой границы квадрата смещаем точку справа шагом 32, короче смещается координата X - и расстояние и проверяем высоту. и так до сих пор пока не упрется в правую границу. Потом опускаем координату Y на 32, и снова двигаем от левой стороны до правой, и так до сих пор пока не упрется в нижнюю границу и цикл завершаем.
Cмысл я наверное понял - берём квадрат в который вписан мой круг, прогоняем по всем координатам квадрата, отсеиваем те места где круг не задевает квадрат, там где квадрат наложен на круг записываем высоту каждой "точки/(тут я как понял точки не будут каждая проверятся с шагом 1, а шаг типо 32 брать надо(ну если меньше можно то лучше). в глобалку, сверям меньше ли полученная высота которая записана в глобалке с новой высотой ,если появляется высота больше чем записано в глобалке ставим в глобалку новую более высокую высоту :) .
И тут самое интересное мои познания функций существующих для совершения некоторых действий которые описаны - очень скудные, да и правильность их использования что бы не через задний проход структурировался код и кучей лишних действий. Поэтому если не сложно и у кого то есть времени немного, сделайте на примере любой аое абилке.
Вообще мне кажется можно сделать функцию типо :
function GetTerrainMaxZinRadius takes "точка" , takes "радиус окружности от этой точки" return "МаксВысота в этом радиусе от точки"
И выложить её в статьях, кому то да пригодится возможно...Эх мечты.
Никак не соображу как сделать что бы если мой Ltargetpoint ( это центр этой АоЕ абилки во время применения) находится на нижней части, но кольцо задевает ту что выше, делать высоту всех эффектов в кольце относительно той которая выше.
Карта практически пустая, маловероятно что это какой то другой код. Может кто проверить у себя? Подойти к вражеским юнитам потом отойти от них, в этот момент начинаются фризы.
Я не упомянул , но в XML тоже не меняется выдаёт ошибку, сам тоже думал что баг. Но вопрос в том что если это общий баг то у всех сейчас кто постоянно обновляет и держит версию в актуале должны иметь такую же проблему ) Как быть то.
Ред. EviLInside
» WarCraft 3 / Глючат абилки(невозможность копировать, сброс измененных данных)
по поводу Редактора объектов прочитал одну из версий "Check if Game Data-Set is set to "Standard (basing on map blabla)" and should not "Melee (Actual patch)",as that will attempt overriding map-data (afaik). May be wrong on that one, not sure.
Its the last option on where you can set global weather, own sound environment etc. for the map."
Так же рекомендовали и переустановить игру, так как вариант с версией в настройках не помог, занимаюсь переустановкой
Есть одна идея но я не особо понимаю как она могла повлиять.
» WarCraft 3 / неуязвимость здания
Но в любом случае какой нибудь детект инвиза сломает эту схему. А так вот карта тут работает всё
» WarCraft 3 / Помогите найти проблемы в коде или "то после чего вы не уснёте"
» WarCraft 3 / Помогите найти проблемы в коде или "то после чего вы не уснёте"
Ред. EviLInside
» WarCraft 3 / Помогите найти проблемы в коде или "то после чего вы не уснёте"
(ВАЖНО, карта пустая никого враждебного на карте нет, это карта которая я выложил тут)
Ред. EviLInside
» WarCraft 3 / Помогите найти проблемы в коде или "то после чего вы не уснёте"
И типо я к тому что на протяжении всего намёков на лаги от утечек нет, всё плавно (утечки конечно же там есть) Но в один момент всё полностью зависает резко.
P.S опять же отметая теорию утечек, при другой попытке я закастил побежал и сразу зависло.
Ред. EviLInside
» WarCraft 3 / Помогите найти проблемы в коде или "то после чего вы не уснёте"
Прикрепляю карту. Reforged last vers.
» WarCraft 3 / Special Effect Height + рельеф (часть вторая)
И тут самое интересное мои познания функций существующих для совершения некоторых действий которые описаны - очень скудные, да и правильность их использования что бы не через задний проход структурировался код и кучей лишних действий. Поэтому если не сложно и у кого то есть времени немного, сделайте на примере любой аое абилке.
function GetTerrainMaxZinRadius takes "точка" , takes "радиус окружности от этой точки" return "МаксВысота в этом радиусе от точки"
И выложить её в статьях, кому то да пригодится возможно...Эх мечты.
» WarCraft 3 / Special Effect Height + рельеф
Ред. EviLInside
» WarCraft 3 / Special Effect Height + рельеф
» WarCraft 3 / Special Effect Height + рельеф
» WarCraft 3 / Тормозит код (или комп?)
call FlushChildHashtable(udg_hash,GetHandleId(f))
» WarCraft 3 / Тормозит код (или комп?)
» WarCraft 3 / Уменьшение урона от магии - есть ли такая способность в РО?
» StarCraft 2 / CUSTOM UNIT STATUS FRAME НЕ МЕНЯЕТСЯ.
» StarCraft 2 / Damage unit (from unit)
» World of WarCraft / WoW патч 4.3.2
» World of WarCraft / EPIC Frostmourne
» Murloc Expansion / Murloc Expansion
» WarCraft 3 / DotA 6.74c
» WarCraft 3 / DotA 6.74c