Вылетает варкрафт (1.26) при загрузке сохраненной игры из за HashTable:
Not enough memory resources are avalible to process this command
Object: GamehashTableIntegerReg
(.?AUGameHashTableIntegerReg@@)


Да, у меня тяжелая генерация, но хеш она не юзает.
А памяти для загрузки hashtable почему то не хватает.

Зато реплеи работают.

Принятый ответ

Кажется разобрался:
Как ни странно хеш оказался ни при чем.
Проблема была в слишком длинной строке на ~900 русских символов которую я использовал для описания квеста.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
25
4 года назад
Отредактирован Jack-of-shadow
0
Проверил сохранение, сделанное сразу после старта (без генерации и "начала игры" ), вылазит аналогичная ошибка.
0
26
4 года назад
0
Это универсальное описание ошибки, когда варик не может конкретно описать причину. Либо смотри код всех интеджеров в хэше, так как где-то может быть опечатка, либо отключением и включением компонентов находи дефектный. А также стоит поискать информацию о сейвах и хэше, может быть решение уже находили.

Вот в этих проектах похожие ошибки, кстати: xgm.guru/p/wc3/tomm xgm.guru/p/d2outatime
1
25
4 года назад
1
Кажется разобрался:
Как ни странно хеш оказался ни при чем.
Проблема была в слишком длинной строке на ~900 русских символов которую я использовал для описания квеста.
Принятый ответ
0
32
4 года назад
0
Jack-of-shadow, кстати тоже замечал такое, делал огромное описание, ошибку не получал, но просто карта переставала грузиться на середине загрузки, 5 дней искал проблему, отключая триггеры по 1
0
26
4 года назад
0
По идее это может быть связано с каким-то хэшем, ведь количество символов в строке интеджер и ошибка указывает на интеджер.
0
25
4 года назад
Отредактирован Jack-of-shadow
0
Bergi_Bear:
Да, с длинными строками известная проблема, я ее обошел путем сложения. Но тут проблема именно при загрузке сохраненной игры.

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


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

Тест карта


Хотя нет решение есть, это записывать все действия с рельефом и потом повторять их при загрузке через LoadGameEvent. Но в моем случае этих действий слишком много, наверно упрусь в лимиты. Буду пробовать.
Загруженные файлы
0
18
4 года назад
Отредактирован Vlod
0
Jack-of-shadow, а восстанавливать рельеф из карты высот?
Даже подтягивая из файла, все равно придется с ней работать
0
25
4 года назад
Отредактирован Jack-of-shadow
0
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
}
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.