Skocz do zawartości

Problem


Gość Diegtiariow

Rekomendowane odpowiedzi

Gość Diegtiariow

Występuje mi problem z wczytywaniem, wywala mnie do pulpitu. Pomoże mi ktoś? SGM 2.0 Geonezis Addon

Ps.Nie potrzebnie wcisnąłem spację i teraz jest pod tym postem.


 

FATAL ERROR [error]Expression : 0 [error]Function : ErrorLog [error]File : D:prog_repositorysourcestrunkxrServerEntitiesscript_engine_script.cpp [error]Line : 49 [error]Description : INCORRECT LOAD [_CTreasureManager].[0][37941] stack trace:
Edytowane przez kamil190
Odnośnik do komentarza
Udostępnij na innych stronach

Niestety nie posiadam na dysku tego moda, więc mogę jedynie udzielić Ci info. na podstawie zasobów www. Nie napisałeś jaką masz wersję moda oraz czy były instalowane wszystkie patche, ale przejdę do sedna. W tym temacie jeden z forumowiczów spotkał się z podobnym problemem - link, temat odsyła do innego wątku, w którym możemy przeczytać (link), że problem spowodowany jest nadmiarem znalezionych przedmiotów:

[error]Description : INCORRECT LOAD

w linku znajdziemy plik do pobrania : Fix.

Inna z porad udzielona przez usera - John'a (post nr. 8805) proponuje dwa sposoby rozwiązania:

  • Sposób 1: znaleźć plik skryptu xr_statistic.script a w nim następującą funkcję:

    function inc_founded_artefacts_counter(art_id)

    znajduje się tam wpis:

    actor_statistic.artefacts_founded + 1

    zmieniamy końcową wartość z 1 na 0 - zapisując zmiany i wczytując poprzedni save.

  • Sposób 2: odszukajmy plik xr_statistic.script a w nim funkcję :

    function inc_founded_artefacts_counter(art_id)

    zapisać funkcję do postaci - dopisujemy pod w/w funkcją:

    if(taken_artefacts[art_id]==nil) thenif actor_statistic.artefacts_founded<255 thenactor_statistic.artefacts_founded = actor_statistic.artefacts_founded + 1endtaken_artefacts[art_id] = art_idlocal s_art = alife():object(art_id)if(s_art and s_art:section_name()) thenartefacts_table[s_art:section_name()] = trueendend

    i zapisujemy zmiany. Z opinii forumowiczów widzę, że sposób działa.

 

Inny z kolei temat podaje szereg alternatywnych sposobów - post nr. 7908 (autor: Клепаныч )

Pisze on następujące wprowadzenie w temat:

Każdy z artefaktów w grze posiada unikatowy numer stanowiący jego identyfikator. Podczas podnoszenia, skrypt sprawdza czy identyfikator znajduje się w tabeli (wykazie), jeśli jednak dojdzie do błędu - uruchamia się licznik artefaktów (+1) i identyfikator jest umieszczany w tabeli. Jeśli licznik nie działa, wówczas przedmioty o błędnym identyfikatorze są określane poprzez taken_artefacts = {}

Faktem jest, że długość tabeli przy zapisywaniu i ładowaniu jest zdefiniowana jako 8-bitowa, zatem unikatowy numer który może być poprawnie zapisany i wczytany to 256. Artefakt o ID = 257 zostanie umieszczony w wykazie, jednakże nie zostanie poprawnie załadowany i pojawi się błąd:

FATAL ERROR[error]Expression : 0[error]Function : ErrorLog[error]File : D:prog_repositorysourcestrunkxrServerEntitiesscript_engine_script.cpp[error]Line : 49[error]Description : INCORRECT LOAD [_CTreasureManager].[0][314437] 

Aby rozwiązać ten problem należy zapisać długość wczytywania i zapisywania tabeli na 16-bitową.

  • Jeśli nie rozpocząłeś nowej gry...

    otwórz plik xr_statistic.script [gamedatascripts]

    znajdź funkcję: function save(package) zmieniamy z postaci:

    package:w_u8(i)for k,v in pairs(taken_artefacts) dopackage:w_u32(k)end

    na postać następującą:

    package:w_u16(i)for k,v in pairs(taken_artefacts) dopackage:w_u32(k)end 

    znajdź kolejną funkcję: function load(package) - zmieniając

    taken_artefacts = {}n = package:r_u8()for i = 1,n dolocal k = package:r_u32()taken_artefacts[k] = kend 

    na postać następującą:

    taken_artefacts = {}n = package:r_u16()for i = 1,n dolocal k = package:r_u32()taken_artefacts[k] = kend

    Zapisując wprowadzone zmiany.

  • Jeśli jesteś w trakcie rozgrywki...

    otwórz plik xr_statistic.script [gamedatascripts]

    znajdź funkcję: function save(package) zmieniamy z postaci:

    package:w_u8(i)for k,v in pairs(taken_artefacts) dopackage:w_u32(k)end

    na postać poniższą:

    package:w_u16(i)for k,v in pairs(taken_artefacts) dopackage:w_u32(k)end 

    zapisz plik.

    uruchom grę i wczytaj save - jednak nie toczymy rozgrywki. Załaduje się wersja 16-bit tabeli.

    otwieramy ponownie plik xr_statistic.script

    przechodzimy do funkcji function load(package) - zmieniając funkcję:

    taken_artefacts = {}n = package:r_u8()for i = 1,n dolocal k = package:r_u32()taken_artefacts[k] = kend

    na postać następującą:

    taken_artefacts = {}n = package:r_u16()for i = 1,n dolocal k = package:r_u32()taken_artefacts[k] = kend 

    zapisujemy zmiany

 

Teraz możemy zbierać kolejne artefakty! - koniec cytatu

Osobiście nie testowałem w/w porad - dlatego sugeruję każdemu kto będzie zmieniał jakiekolwiek pliki  - zrobienie kopii zapasowej plików modyfikowanych. Logi różnią się nieco wpisami, posiadają jednak tę samą sygnaturę błędu: INCORRECT LOAD [_CTreasureManager, dlatego decyzję o doborze sposobu na ominięcie CTD pozostawiam czytającym ów post.

Odnośnik do komentarza
Udostępnij na innych stronach

Gość Diegtiariow

Teraz jeszcze lepiej: :dry:

 

FATAL ERROR [error]Expression    : 0[error]Function	  : ErrorLog[error]File		  : D:prog_repositorysourcestrunkxrServerEntitiesscript_engine_script.cpp[error]Line		  : 49[error]Description   : INCORRECT LOAD [_CTreasureManager].[0][2405] stack trace:
 
Odnośnik do komentarza
Udostępnij na innych stronach

Innych rad bez moda na dysku nie jestem w stanie wymyślić, pozostaje próbować wczytać poprzedni save lub zrobić restart ostatniego questu - wczytując zapis przed pobraniem ostatniego z zadań. W ostateczności - reinstalowałbym grę.

Edit:

Ten sam sposób opisany na GSC - link (napisany przez playdough). Na końcu wpisu znajdziesz Fix'a. Jeśli będziesz coś podmieniał - zrób kopię plików.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Meta zablokował(a) ten temat
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystając z tej strony, zgadzasz się na nasze Warunki użytkowania.