Вылетает варкрафт (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
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
}
0
37
4 года назад
0
В vJass есть большие массивы, главное, поток не порвать, но всегда можно перейти на lua)
0
28
4 года назад
0
ScorpioT1000, на самом деле уже нет, максимальный размер массива в vJass совпадает с максимальным размером массива с версии 1.29.
0
16
4 года назад
0
дай краш лог (не дамп)
0
25
4 года назад
Отредактирован Jack-of-shadow
0
DracoL1ch:
дай краш лог (не дамп)
Лог
Пример карта
Загруженные файлы
0
16
4 года назад
0
ничего интересного, аргумент передается супер-большой, который должен быть индексом (?) массива
0
25
4 года назад
Отредактирован Jack-of-shadow
0
ScorpioT1000:
В vJass есть большие массивы, главное, поток не порвать, но всегда можно перейти на lua)
Уже пофиксил тем там всего 1500-3000 вызовов TerrainDeformCrater было, так что массива вполне хватило.

А вот SetTerrainType у меня было 32 к вызовов. Так как я их на этапе генерации использую их как разметку, для быстрой проверки местности. Тут пришлось слегка пожертвовать визуалом при загрузке сохранения (ужал до 7 к) . После загрузки сохранения она немного отличается, но это незаметно.
1
24
4 года назад
1
Если карта рандомно генерится - почему не запоминать зерно рандома и не рескручивать рандом из него заново для генерации карты после загрузки? Тогда останется запоминать только изменения которые произошли после генерации, в результате действий игрока.
0
25
4 года назад
Отредактирован Jack-of-shadow
0
prog:
Да я это планирую сделать в дальнейшем, но пока просто исправлял баг обычных сохранений.
0
37
4 года назад
0
Можешь заполнять сначала по чанкам, потом уже детальнее)
1
25
4 года назад
Отредактирован Jack-of-shadow
1
Щас еще обнаружил, что инвентарь куда то пропал. Даже если после загрузки герою дать способность 'AInv' то инвентарь всеравно не появляется.

Починил, оказалось инвентарь пропадал из-за того что герой имел обе способности:
'Aien' (Носильщик) и 'Aher' (Предметы - Герой).

Карта пример

Столько проблем уже с загрузкой нашел, что хоть статью пиши.
Загруженные файлы
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.