0
25
6 лет назад
Отредактирован Jack-of-shadow
0

» WarCraft 3 / Как копировать данные ландшфат?

Vlod:
Почему неизвестна? Она поднимает или опускает попавшие в радиус вершинки на указанную высоту. Если пройтись по рельефу и сохранить высоты, то рельеф можно воссоздать. Единственная проблема это скорость.
Но на небольшом террейне вполне можно попытаться.
0
25
6 лет назад
0

» WarCraft 3 / Как копировать данные ландшфат?

JMCode:
и генерирует которые есть данные и создает а не рандомный...
Даже в рандомном террейне можно по хорошему указать статичные ключевые точки: лагеря монстров, поселения людей и прочее.
К примеру реки и дороги в моем проекте хоть и рандомные но строятся между опорных точек, которые также спавняться рандомно, но учитывая нужные условия. Но ничего не мешает установить их фиксировано.
читать данные прямо в jass и генерировать например типо блокнотом
Ну теоретически можно пройтись по всей карте триггером, с проверками высоты и тайла, затем выгрузить это в текстовик. (получиться что то вроде карты высот)
Но для 100 процентной четкости нужно пройтись по каждому полику. Такая генерация займет много времени уже на средней карте. Но 32x32/64x64 можно попытаться.
0
25
6 лет назад
0

» WarCraft 3 / Как копировать данные ландшфат?

JMCode:
PT153, Это я уже понял просто если было jass возможно читать данные рельефа который есть в статьях и создавать было бы не плохо!
1
25
6 лет назад
Отредактирован Jack-of-shadow
1

» Crazy Dwarf Race / Главная страница

Atesla:
Аххах мда, я тот ещё грамматей, с обновлением поправлю)
0
25
6 лет назад
Отредактирован Jack-of-shadow
0

» Crazy Dwarf Race / Главная страница

0
25
6 лет назад
0

» WarCraft 3 / Конкурс ландшафтов - XGM [Halloween]

darkowlom:
Jack-of-shadow, свет буду печь я, только на отдельную карту теней,а то одних текстур будет мегабайт 200. Только я за созданием моделей засиделся, возможно с конкруса вылечу, отдельно выложу тогда
Второй ув сет mdx вроде как не держит, но можно конечно запечь текстуру теней низкого разрешения и заблендить в материале.
Но тогда нужно избегать повторение деталей на развертке
0
25
6 лет назад
0

» WarCraft 3 / Конкурс ландшафтов - XGM [Halloween]

psychosis:
Komkozavr:
psychosis, а ты успеешь к окончанию конкурса? Уже 23 число. Осталось 8 дней
Я не уверен, что успею к созданию атмосферы и разбить модель на несколько чтобы рендерилось в самом движке варе.
А так можно?) яб даже освещение запек, учитывая что тут все по 30+МБ на карту втапливают
0
25
6 лет назад
Отредактирован Jack-of-shadow
0

» Crazy Dwarf Race / Главная страница

Evilsizer:
RenderEdge? Второй вариант выглядит веселее.
Заморочился, портанул лоадскрин сцену в анриал, хотя, да ейджем получилось бы практически то же самое наверно.
4
25
6 лет назад
Отредактирован Jack-of-shadow
4

» Crazy Dwarf Race / Главная страница

Опрос: Так все таки какой шрифт лучше?
1. 
WarCraft_Font
2. 
Snap_ITC_Font
3. 
Другой

WarCraft_Font

Snap_ITC_Font


3
25
6 лет назад
3

» WarCraft 3 / Триггерный бафф

PT153
Немного поэкспериментировал с boolexpr, получилось создать массив функций для баффов через них, не используя даже кэш, раньше делал массив функций через массив триггеров с экзекутом + кеш, для прокачки и использования триггерных спеллов.

Есть конечно ограничение по кол-ву юнитов, но мне больше и не нужно.
BuffLibrary
library BuffLib uses TextLib
globals
constant integer BMax = 50 Макслимальное бафов, 8192/UntitMax = BMax
boolexpr array BCode Функция бафа
timer array BTimer Таймер бафа
integer array BUnitIdArray ид юнита прикрепояемый к тайммеру
integer array BBuffIdArray ид бафа прикрепояемый к бафу
integer array BEffectArray ид эффекта прикрепояемого к бафу
boolean BDestroy = true аттрибут_функции_Удаления бафа
integer BUnitId = 0 аттрибут_функции_Ид юнита
force BForce = CreateForce()
endglobals
nothing BuffEnd (){
timer t = GetExpiredTimer( )
integer i = R2I(TimerGetRemaining(t)+0.5)
BUnitId = BUnitIdArray[i]
BDestroy = true
ForceEnumPlayers(BForce, BCode[BBuffIdArray[i]])
DestroyTimer (t)
}
nothing BTimerEx (timer t, integer b, real d){
t = CreateTimer()
TimerStart(t, I2R(b), false, null)
PauseTimer(t)
TimerStart(t, d, false, function BuffEnd )
ForceEnumPlayers (BForce, BCode[BBuffIdArray[b]])
}
nothing AddBuff (integer unitid, integer buffid, real time){
integer id = unitid*BMax+buffid
BDestroy = false
BUnitId = unitid
BUnitIdArray [id] = unitid
BBuffIdArray [id] = buffid
BTimerEx(BTimer[id],id,time)
}
nothing BuffIni (integer i, code c){ BCode[i] = Condition (c) }
endlibrary
BuffData
library BuffData uses BuffLib
boolean Buff1 (){
if BDestroy {
Msg("Buff1_Destroy"+" for unit "+I2S(BUnitId))
}else{
Msg("Buff1"+" for unit "+I2S(BUnitId))
}
return false
}
boolean Buff2 (){
if BDestroy {
Msg("Buff2_Destroy"+" for unit "+I2S(BUnitId))
}else{
Msg("Buff2"+" for unit "+I2S(BUnitId))
}
return false
}
nothing BCodeIni(){
BuffIni(1,function Buff1)
BuffIni(2,function Buff2)
}
endlibrary
Загруженные файлы
1
25
6 лет назад
1

» WarCraft 3 / Триггерный бафф

Всем спасибо! По изучаю, что как работает.

Для непериодических баффов у меня были обычные жасовые функции с изменением нужных переменных героя, и аттач эфекта с таймером удаления.
Для остальных юзалась другая логика. В общем, не то что бы прям мешанина была, для большинства я тупо копировал шаблон и менял атрибуты.
Но столкнулся с проблемой что бафф может быть наложен дважды, и получался просто стак. Но минус в том что висели лишние эффекты.
А простая проверка на имеющийся бафф требовала нахождения таймера который уже мог быть запущен, то бишь нужно было хранить его хендл, а там еще всякие коллизии начинали возникать.
Поэтому захотелось все таки покурить структуры и придумать более изящный вариант.
3
25
6 лет назад
Отредактирован Jack-of-shadow
3

» WarCraft 3 / Как сделать чтобы триггер узнавал на кого действует способность?

Дык ты уже рассписал какраз все что тебе нужно. Юнит на которого применена способность - это GetSpellTargetUnit() или "Реакция на событие - Target unit of ability being cast" в триггерах.
1
25
6 лет назад
Отредактирован Jack-of-shadow
1

» Crazy Dwarf Race / Главная страница

NixEon:
Шрифт плохой, поменяйте
Имеется ввиду шрифт на лоадскрине? Если руки дойдут то я картинку другую запилю в 1.03.

Последнее время очень редко удается добраться до варика, по этому релиз слегка затянулся. Но все же работа над улучшением проекта не стоит на месте. ссылка
2
25
6 лет назад
2

» WarCraft 3 / Как повернуть кость Bone_Root

В проще всего в мдливсе создать новую рутовую кость, а старую привязать к ней. Далее создать глобальную и развернуть на сколько тебе надо.
2
25
6 лет назад
Отредактирован Jack-of-shadow
2

» WarCraft 3 / Вращение свечения героя

В мдливсе каждую глоу плашку крепишь к своей кости. В свойствах кости ставишь галочку "синфазность" (или билборд в War3ModelEditor'e ).
1
25
6 лет назад
1

» WarCraft 3 / Респаун разрушаемых декораций

Все с ними хорошо будет. Никуда не денутся, хоть сразу мертвыми создавай.
2
25
6 лет назад
Отредактирован Jack-of-shadow
2

» WarCraft 3 / Где можно найти хорошие предметы?

1.Качаеш спелы со всех конкурсов.
  1. Качаеш спелы с батлов.
  2. Качаеш заклинания на заказ.
    Profit!
0
25
6 лет назад
Отредактирован Jack-of-shadow
0

» WarCraft 3 / Удаление спецэффекта с null'евым путем к моделе

DracoL1ch:
да, игре похер, какой путь до модели, объект создается всегда
блин как то раньше об этом не задумывался, получается локальные спецефекты через пустую строку плодят утечки у остальных игроков..хмм

а хотя нет. эфект же всеравно будет удаляться потом (ну если по хорошему), тогда и у остальных удалиться как раз если не будет проблем с пустой строкой.
0
25
6 лет назад
0

» WarCraft 3 / Видимость через декорацию

Dezard:
Кривой перевод как всегда. Мне как раз кстати обратный эффект нужен был, что бы подходя к деревьям вплотную можно было видеть противника дабы устраивать засады.
1
25
6 лет назад
Отредактирован Jack-of-shadow
1

» WarCraft 3 / Оптимизация карты при большом количестве декораций

Dezard:
ну вот например тут на карте генерится 30 к декора и тормоза идут только от объектов в камере.
Кстати да, самый жесткий декор это тот по которому можно ходить, уже 100 объектов могут вызывать тормоза и ломать поиск путей у юнитов. Из-за этого пришлось целую систему проверки высот писать.

Кстати есть такая тема, что у декора анимации проигрываются только когда ты на них смотришь. Тобишь если ты хайдиш 12 к декора анимацией "death", и потом летаешь камерой по карте, то только в момент когда ты на них посмотришь анимация "death" и проиграется. По этому после сокрытия будут тормоза при первом попадении в камеру.
вот тут 22 к флагов насажал. И после сокрытия очень хорошо видно, что хайдится они начинают только при попадении в камеру.

С террейном тоже самое. Если сгенерировать терейн то будут черные дыры на каждом полике, пока один раз не попадут в камеру и не отрендерятся.
Загруженные файлы
0
25
6 лет назад
Отредактирован Jack-of-shadow
0

» WarCraft 3 / Оптимизация карты при большом количестве декораций


Dezard:
Разницы с видимым декором вообще никакой. Такие же просадки фпс начинаются.
По идее не должно. В примере 2 к флагов в одной точке вызывают жуткие лаги. После скрытия все тормоза пропадают. Возможно проблема в анимации твоих моделей. (например если в анимации объект скрывается только прозрачностью материала)

Я своем проекте как раз использую сокрытие мелкого декора и источников освещения, как настройку для занижения графики. Прирост производительности получается довольно ощутимый.
Загруженные файлы
0
25
6 лет назад
0

» WarCraft 3 / Оптимизация карты при большом количестве декораций

DracoL1ch:
Разве локальное проигрывание анимаций вызывает десник у декора? Всегдаж работало вроде, исключение декор с галочкой "можно пройти" при триггерной проверке высоты на нем.
9
25
6 лет назад
Отредактирован Jack-of-shadow
9

» WarCraft 3 / Карта размером в 2048х2048?

Нет, есть лимит. И даже если каким то волшебством его удастся превысить, то скорее всего у юнитов будут проблемы с поиском путей. В конце концов можно уменьшить модели в 2-3 раза. Но раз уж ты моделиш сам, с нуля, то не майся фигней, качай анриал, или уж юнити на крайняк, и радуйся жизни.
0
25
6 лет назад
Отредактирован Jack-of-shadow
0

» WarCraft 3 / Система спавна по ID юнита (Пример ID:hfoo(Пехотинец)

< 8gabriel8:
Каким условием проверить, что равкод принадлежит юниту?
Если для бд, без выставления юнитов на карту, то спавнить все подряд, все 14 лямов)) потом енум юнитов и сейв
1
25
6 лет назад
Отредактирован Jack-of-shadow
1

» WarCraft 3 / Система спавна по ID юнита (Пример ID:hfoo(Пехотинец)

поправочка, I2S забыл. теперь вроде должно сработать. Для сохранения нужно включить доступ к локальным файлам и указать переменные :
YourHash
YourBdHandle
YourFolderPath

vjass
nothing PreloadAddString (string unitname, string unitid, ){
Preload ("SaveInteger ("+YourHash+,+YourBdHandle+",StringHash("+unitname+"),"+unitid+")") 
}

nothing SaveUnitName (){
 unit u = GetFilterUnit()
 PreloadAddString (GetUnitName(u), I2S(GetUnitId(u)))
}

nothing SaveUnitsName () { 
  ForGroupBJ( GetUnitsInRectAll(GetPlayableMapRect()), function SaveUnitName ) 
  PreloadGenEnd (YourFolderPath)
  PreloadGenClear() 
}