26

» WarCraft 3 / Ошибка при загрузке сохраненной игры из за [HashTable]

ScorpioT1000:
В vJass есть большие массивы, главное, поток не порвать, но всегда можно перейти на lua)
Уже пофиксил тем там всего 1500-3000 вызовов TerrainDeformCrater было, так что массива вполне хватило.

А вот SetTerrainType у меня было 32 к вызовов. Так как я их на этапе генерации использую их как разметку, для быстрой проверки местности. Тут пришлось слегка пожертвовать визуалом при загрузке сохранения (ужал до 7 к) . После загрузки сохранения она немного отличается, но это незаметно.
26

» WarCraft 3 / Ошибка при загрузке сохраненной игры из за [HashTable]

Vlod:
Jack-of-shadow, а восстанавливать рельеф из карты высот?
Попробую щас через массивы если индексов не хватит, то через хеш.
типо того
globals
 int TerrainDeformC   = 0
 float array TerrainDeformX
 float array TerrainDeformY
 float array TerrainDeformD
 float array TerrainDeformZ
 
endglobals

void TerrainDeformCraterJ (float x, float y, float d, float z){
 TerrainDeformC++
 TerrainDeformX[TerrainDeformC] = x
 TerrainDeformY[TerrainDeformC] = y
 TerrainDeformD[TerrainDeformC] = d
 TerrainDeformZ[TerrainDeformC] = z
 TerrainDeformCrater(x, y, d, z, 1, true)
}

//LoadTerrain
void LoadTerrainDeform (){
 Msg(StrY("LoadTerrain: ")+I2S(TerrainDeformC))
 for_c(TerrainDeformC)
  TerrainDeformCrater(TerrainDeformX[c], TerrainDeformY[c], TerrainDeformD[c], TerrainDeformZ[c], 1, true)
 end_c
}
26

» WarCraft 3 / Ошибка при загрузке сохраненной игры из за [HashTable]

Bergi_Bear:
Да, с длинными строками известная проблема, я ее обошел путем сложения. Но тут проблема именно при загрузке сохраненной игры.

Вроде все пофиксил, даже освещение и фейд фильтр, но столкнулся похоже с нерешаемой проблемой(


Видимо всетаки придется свою систему сохранений писать, не через загрузку, а через новую игру.

Тест карта


Хотя нет решение есть, это записывать все действия с рельефом и потом повторять их при загрузке через LoadGameEvent. Но в моем случае этих действий слишком много, наверно упрусь в лимиты. Буду пробовать.
Загруженные файлы
26

» WarCraft 3 / Ошибка при загрузке сохраненной игры из за [HashTable]

Кажется разобрался:
Как ни странно хеш оказался ни при чем.
Проблема была в слишком длинной строке на ~900 русских символов которую я использовал для описания квеста.
26

» WarCraft 3 / Ошибка при загрузке сохраненной игры из за [HashTable]

Проверил сохранение, сделанное сразу после старта (без генерации и "начала игры" ), вылазит аналогичная ошибка.
26

» WarCraft 3 / Бета версия Warcraft III Reforged 1.32

Proshel_Doty:
Писать в описании что данная карта создана по мотивам "Твоей не существующей игры")
26

» WarCraft 3 / Пределы поля зрения

Погоди, вроде лимит прорисовки и так можно было динамически менять... Или я что-то путаю и это работает только в редакторе?
Лимитов нет, если указывать дистанцию триггерно.

Но правильней все же установить серое небо, так как при далёкой прорисовке начнутся просадки ФПС.

А также дальность прорисовки не исправит проблему на краях карты.
26

» WarCraft 3 / Пределы поля зрения


Извлекли модель неба и подгони цвет под свой туман.
Если указанное в редакторе небо не отображается, используй функцию SetSky
26

» Hunter or Victim / Hunter or Victim

Обновление 0.90

Версия 0.90

Навыки:

Ахлимия больше не дает шанс на исцеление болезней, однако делает доступными для сбора некоторые растения и предметы.

Охота теперь дает дополнительный от урон прицельного выстрела, если вы стреляете в животных из кустов.

Предметы:

Новый предмет: Священный лотос.

Новый предмет: Кровоцвет.

Новый предмет: Эликсир Жизни.

Новый предмет: Свиток знаний.

Новый предмет: Сапоги рыбака.

Окружение:

Добавлены цветы Кровоцвета

Добавлены большие грибы.

Добавлены постройки морлоков.

Включены тени у юнитов.

Существа:

Урон и здоровье хищников увеличено на 15%.

Собака теперь полностью невидима для других игроков и существ в режиме скрытности.

Добавлена Пума.

Добавлены Лесные духи.

Добавлены Энты.

Добавлены Энты-Стражи.

Добавлен Морлок-вождь.

Змей можно встретить чаще.

AI:
Улучшен AI ботов и существ.

Оптимизация и Исправления:

Разбойники больше не могут случайно взорвать бочки.

Исправлен баг блокировавший появление нежити.

Собака больше не нападает на союзников, если они наносят урон сами себе.

Оптимизированы коллизии героя с объектами.

26

» WarCraft 3 / Симуляция бродячих Мобов.

Bergi_Bear
можно, каждую секунду или чаще кидаем кости например от 1 до 5, и если 1, то приказ идти в случайную точку, а так же проверять на не идёт ли юнит... как я писал выше
А лучше не в случайную, а оффсетом в направлении лица + угол
ModuloReal(GenUnitFacing(u)+ GetRandomReal(-50,50),360)
26

» WarCraft 3 / Как сделать "ОККЛЮЗИЯ" в WC3?

Можно, но очень жирная система получится. Понадобятся кастомные модели прозрачаемых объектов (либо делать декорации через юнитов). Придется таймером проверять объекты перед камерой и менять им анимации. В идеале еще и высоты объектов в БД записывать придется.
26

» WarCraft 3 / Мои мысли об устаревших механиках Warcraft 3 и....


А вот если дать игроку выбор из 10 различных пассивок дающих различные эффекты, выпадающие от шанса, то его стиль игры не изменится, что бы он не выбрал. Соответственно выбор игрока не будет иметь особого значения.
я не рассмтриваю комбинации с активными способностями и предметами.
26

» WarCraft 3 / Мои мысли об устаревших механиках Warcraft 3 и....

Proshel_Doty:
Ну к примеру пассивка Урсы в доте интересна тем, что чем больше ты вгрызаешься в противника, тем сильнее урон. Это даёт игроку возможностью "управлять" пассивной способностью. В отличие от простого рандома.
И это меняет поведение игрока.
26

» WarCraft 3 / Мои мысли об устаревших механиках Warcraft 3 и....

Proshel_Doty:
Я имею в виду, что качая обычные пассивки, ты продолжаеш играть по той же схеме. Не важно что ты вкачал: шанс на доп урон, оглушение или двойную атаку твой стиль игры не меняется, потому что все зависит лишь от удачи.
26

» WarCraft 3 / Мои мысли об устаревших механиках Warcraft 3 и....

Рандом чаще всего удел пассивных способностей. Как по мне пассивные способности это плохо, в обычном их понимании.
Представим что герой может качать только пассивки, которые идеально сбалансированы так, что делают их равноценными.
исключение, когда надо контрить конкретного героя-соперника.
Соответственно сам смысл выбора практически исчезает.
Что бы у игрока был реальный выбор, пассивки должны менять не статы, а стиль игры.
Простые примеры:

Срабатывание шанса (баш/Крит)
Только после 3 ей атаки.

Обнаружение невидимых в небольшом радиусе.

Невосприимчивость к магии пока герой полностью здоров.

26

» WarCraft 3 / Пустой handle для хештаблицы

Хмм возможно я что то не так понял, но разве key не подходит как пустой хендл?
globals
key MyHandle
endglobals
26

» WarCraft 3 / (Ev3nt)MpqLoader

Bergi_Bear:
Кароче если я правильно понял, то в WE не видны модельки, которые должны быть подгружены из MPQ(MIX). Раньше приходилось костылить временно перенося такие свои модели в оригинальный MPQ, чтобы увидеть их в редакторе
можно же было просто в папку с игрой засунуть без модификации архива.
26

» JackCraft / Hunter_or_Victim

Обновление 0.89

Версия 0.89

Новые животные: змея (яд-болезнь), королева пауков (призыватель).

Разбойники поджигают вышку, если не могут достать на ней игрока.

Дальность метания кинжала увеличена с 500 до 700 ед.

Сеть: Стоимость крафта снижена с 5 до 3, улов увеличен на 40%.

Шанс на крупный улов при рыбалке увеличен на 15%.

Дораг-Мора: броня увеличена в 2 раза.

Болотный монстр теперь может появиться только через 6 минут игры.

Собаки других игроков теперь отображаются более темными.

Цвет игрока теперь виден только самому игроку и союзникам.

Оптимизировано несколько тяжелых таймеров.

Обновлено превью.

Пища больше не отнимается, при неудачном выборе места для рыбалки.

Исправлено получение опыта за нейтральных существ.

Исправлены баги связанные с плавающим именем героя после выхода из группы.

Исправлен баг, при котором шейк камеры вызывал дисконект.

Исправлен баг, когда воскрешенный союзник телепортировался за пределы карты.

Собака больше не нападает на случайно атаковавшего вас союзника.

Добавлено ограничение по дистанции взаимодействия с союзниками.

Исправлена способность просьбы о помощи.
Страница проекта: HoV
26

» Hunter or Victim / Hunter or Victim

Обновление 0.89

Версия 0.89

Новые животные: змея (яд-болезнь), королева пауков (призыватель).

Разбойники поджигают вышку, если не могут достать на ней игрока.

Дальность метания кинжала увеличена с 500 до 700 ед.

Сеть: Стоимость крафта снижена с 5 до 3, улов увеличен на 40%.

Шанс на крупный улов при рыбалке увеличен на 15%.

Дораг-Мора: броня увеличена в 2 раза.

Болотный монстр теперь может появиться только через 6 минут игры.

Собаки других игроков теперь отображаются более темными.

Цвет игрока теперь виден только самому игроку и союзникам.

Оптимизировано несколько тяжелых таймеров.

Обновлено превью.

Пища больше не отнимается, при неудачном выборе места для рыбалки.

Исправлено получение опыта за нейтральных существ.

Исправлены баги связанные с плавающим именем героя после выхода из группы.

Исправлен баг, при котором шейк камеры вызывал дисконект.

Исправлен баг, когда воскрешенный союзник телепортировался за пределы карты.

Собака больше не нападает на случайно атаковавшего вас союзника.

Добавлено ограничение по дистанции взаимодействия с союзниками.

Исправлена способность просьбы о помощи.
26

» WarCraft 3 / Бета версия Warcraft III Reforged 1.32

Choperok:
А за что собственно отвечает текстура orm
Это пбр: Ambient Occlusion, Roughness, Metallic в красном, зеленом и синем канале

как ее можно сделать?

Амбиент запекается с хайполи модели, а блески материала.

Physically Based Materials

Если ты хочешь сделать ORM из обычной цветовой текстуры, то амбиент не нужен, так как он там уже присутствует. Этот канал можно оставить белым.
Второй канал отвечает за шероховатость поверхности: чем темнее тон, тем сильнее отражение.
В третьем наоборот, нужно будет раскрасить белым те места, которые должны быть металлическими.
26

» WarCraft 3 / Напомните, как вызывается функция из code?

Я так понимаю автору нужно что то вроде этого: CodeLib или Save_Function

Обе библиотеки позволяют сохранить функцию, а затем вызвать ее по имени. Без использования мемхака и ExecuteFunc.
26

» Hunter or Victim / Hunter or Victim

ScorpioT1000:
Спасибо! В начале года планировал что HoV станет для меня последней жирной точкой в модмейкинге,
но видимо никуда пока я от этого не денусь)
Еще остается много нереализованных идей и многое нужно доработать.

В приоритете сейчас наладить мультиплеер и сделать кастомное сохранение прогресса. (стандартные сохранения тут уже не тянут)
Далее, если все пойдет гладко, то можно будет грабить корованы буду прикручивать мини квесты и прочие фитчи.
26

» WarCraft 3 / Сохранение функции со списком аргументов

Можно еше фильтры использовать сохраняя их в хеш.
Единственное передача атрибутов там не встроена, для этого используются глобалки. Функции для передачи я расширяю по мере надобности, так как обычно хватает индекса игрока.
типо того
 define RunCodeI    (i,s)       = {CodeI = i; RunCode(s) }
 define RunCodeIU   (i,u,s)     = {CodeI = i; CodeU = u; RunCode(s) }
 define RunCodeD    (i,d,s)     = {CodeI = i; CodeD = d; RunCode(s) }
 define RunCodeXY   (i,x,y,s)   = {CodeI = i; CodeX = x; CodeY = y; RunCode(s) }
 define RunCodeUXY  (u,x,y,s)   = {CodeU = u; CodeX = x; CodeY = y; RunCode(s) }
 define RunCodeUXYD (u,x,y,d,s) = {CodeU = u; CodeX = x; CodeY = y; CodeD = d; RunCode(s) }

Vlod:
А, так у тебя тоже фильтры только не через хеш? Тогда это даже шустрее будет