radekmie / h3mapgen

An attempt to build a comprehensive map generator for Heroes of Might and Magic III
6 stars 2 forks source link

Feature/mlml upgrade #102

Closed PiotrPytlik closed 6 years ago

radekmie commented 6 years ago

Odpalałeś to? Za każdym razem mam błąd:

lua: components/mlml/LogicMapLayout/MLMLHelper.lua:50: attempt to index a nil value (field '?')
stack traceback:
    components/mlml/LogicMapLayout/MLMLHelper.lua:50: in function 'LogicMapLayout/MLMLHelper.GenerateImage'
    generate.lua:488: in local 'step'
    generate.lua:28: in local 'generate'
    generate.lua:742: in main chunk
    [C]: in ?

Dodatkowo, mógłbyś wyjść z mastera? Mamy nowego MDSa.

PiotrPytlik commented 6 years ago

Tak, odpalałem, ale nie generate, tylko test_mlml, bo tam jest za duzo zaleznosci a już jakies pol roku temu zgubiliscie mnie z tym jak sie to uruchamia i nikt nie chciał wspierać windowsa. Leci null dlatego że zmienilem postać grafu jak zwracam. nie jestem pewien czy jest w ogole potrzebne to co uzywasz w metodzie GenerateImage, jesli wyłączysz te funkcje to pewnie bedzie dzialalo... Nie ustawiam w tej chwili niestety grafu w mlml więc iteracja po pairs(mlml) niczego nie da, bo nie w taki sposob zwracam graf. Nie ustawiam też "players" bo było mi niepotrzebne a zapomnialem po co to bylo (z tego co pamietam to bylo absurdalnie ustawiane tak że kazdy gracz ktory ma bezposredni dostep do danej zony ten jest w "players". Nie pisałem funkcji GenerateImage, wiec nie wiem do czego sluzy i nie wczytywalem sie. Jesli bedzie strasznie potrzebna to zrobmy tak że podczas merge'a się wylaczy chwilogo GenerateImage, i pozniej naprawi?

PiotrPytlik commented 6 years ago

z tego co wiem potrzebne tak naprawde do calosci jest tylko Interface oraz PrintToMDS, a te rzeczy powinne działać bez problemu

radekmie commented 6 years ago

a już jakies pol roku temu zgubiliscie mnie z tym jak sie to uruchamia

Wszystko jest w README.md. I w sumie to nic się nie zmieniło od na prawdę bardzo dawna. Dobra, nie wszystko: jak chcesz losowy seed to robisz lua generate.lua '?' i tyle.

nikt nie chciał wspierać windowsa

W kodzie są osobne branche na Windowsa i byłem święcie przekonany, że wystarczają. Jeżeli masz jakiekolwiek błędy to daj znać.


Podsumowując, mamy nowy MLML, którego nie możemy użyć. Po wykomentowaniu GenerateImage mam różne błędy, najczęściej te:

lua: generate.lua:642: table index is nil
stack traceback:
    generate.lua:642: in local 'step'
    generate.lua:28: in local 'generate'
    generate.lua:742: in main chunk
    [C]: in ?

I

lua: components/mlml/LogicMapLayout/MultiLogicMapLayout.lua:120: attempt to perform arithmetic on a nil value (field '?')
stack traceback:
    components/mlml/LogicMapLayout/MultiLogicMapLayout.lua:120: in function 'LogicMapLayout/MultiLogicMapLayout.CreateRing'
    components/mlml/LogicMapLayout/MultiLogicMapLayout.lua:317: in function 'LogicMapLayout/MultiLogicMapLayout.ConnectOutersWithoutMixingLevels'
    components/mlml/LogicMapLayout/MultiLogicMapLayout.lua:563: in function 'LogicMapLayout/MultiLogicMapLayout.Generate'
    generate.lua:480: in local 'step'
    generate.lua:28: in local 'generate'
    generate.lua:742: in main chunk
    [C]: in ?
PiotrPytlik commented 6 years ago

odnosnie "attempt to perform arithemtic on a nil value" - zaraz wrzuce poprawke, wina modulo polaczonego z indeksowaniem od 1 w Lua

PiotrPytlik commented 6 years ago

Widze teraz że błąd w generate jest też spowodowany tym że nie zrobilem tej samej struktury w mlml jak wczesniej... i widze od razu że w 3 innych miejscach pierdyknie z tego samego powodu... Bede musial w takim razie poprawić to, bo bez tego nie wygeneruje sie wszystko

PiotrPytlik commented 6 years ago

@radekmie Powinno teraz już działać, być może z wyjątkiem tego co pisałem na slacku (wydaje mi się wstepnie ze to nie bedzie kłopotem, ale zaraz sprobuje to też poprawić)

PiotrPytlik commented 6 years ago

Przypominam o PR. Tak jak pisalem na slacku, Jest tutaj potencjalnie kilka rzeczy ktore mozna w przyszlosci poprawic, ale algorytm w tej chwili sam w sobie dziala, mimo ze nie idealnie. W moich testach lokalnych wychodzilo że zawsze dosyc dobrze merguje bufory, i jesli na ten jednej przykladowej mapie nie merguje wszystkich buforów, to musi byc dlatego że nie ma pojedynczego bufora ktory ma 2+ outerów o tym samym poziomie. Są inne przypadki dla ktorych i tak zostałoby coś zmergowane, ale najłatwiejszy warunek gwarantujący to powinno byc bufor z 2+ outerami tego samego poziomu.

Jesli kod dziala, zlepia, nie wysypuje sie i zazwyczaj merguje poprawnie, to optowałbym za tym żeby zmergować i jesli bedzie niewystarczająco ładnie, to bedziemy robili kolejne feature pozniej. Ten sam argument użyje, że lepiej aby ten PR nie wisiał za długo, bo pozniej moze wyjsc jakis problem z mergowaniem starej galezi, a wtedy juz nawet ja czesciowo zapomne co tutaj bylo :)

radekmie commented 6 years ago

Byłem przekonany, że właśnie nad tym pracowałeś. Z tego co rozumiem, nie jest to dużo, więc już bym poczekał. O konflikty tutaj się nie martwię, bo raz, nawet teraz było prosto, dwa, nikt tutaj nie grzebie.

radekmie commented 6 years ago

OK, wrzućmy to. Zakładam jednak, że masz pomysł i plan, kiedy i jak to naprawić/poprawić.