I tak to samo się może stać, wszystkie pola klasy są wczytywane ponownie, dlatego są np. bugi z zmianą wyglądu głównego bohatera.
niestety potwierdzam, przy zapisaniu/wczytaniu zmienna weight dostaje wartość początkową. inne pomysły?
Gothic i bez znaczenia jest cz zmienisz weight czy atrybuty zbroi po wczytaniu z save i tak to szlag trafi i wrócą do artości startowych.
Widocznie nie serializuje danych z tej klasy, szkoda. Ale to dość dziwne, bo przynajmniej część danych z wielu klas MUSI być zapisywana (choćby punkty życia wrogów czy statusy misji). Wychodzi na to że jest to robione wybiórczo? Może Lehona by potrafił powiedzieć coś więcej na ten temat.
No w każdym razie jeśli jest tak jak piszecie to będzie trzeba zrobić osobną zmienną globalną dla każdej zbroi i do tego będzie działało to tylko dla bohatera.
@Gothic1210: źle dałem nawias, tak będzie ok:
print(IntToString(Npc_GetBodyState(hero)));
print(IntToString(Hlp_GetInstanceID(hero)));
print(ConcatStrings(ConcatStrings(IntToString(Hlp_GetInstanceID(other)), " : "), other.name[0]));
print(ConcatStrings(ConcatStrings(IntToString(Hlp_GetInstanceID(self)), " : "), self.name[0]));
I chodziło mi o "dla wszystkich zbroi o tym samym instance".
Tutaj sprawa trochę się komplikuje, do tego dochodzi zamęt wywołany złą terminologią. Otóż ponieważ w Daedalusie definicja obiektu zaczyna się od wyrazu "instance", modderzy nazywali to co jest po tym wyrazie właśnie instancją (przynajmniej zgaduję że to masz na myśli - np "grd_armor_i"). Technicznie rzecz biorąc jest to co innego, mianowicie identyfikator. Instancja to rzeczywiste wystąpienie obiektu w pamięci. Tak więc "grd_armor_i" jest identyfikatorem (na podstawie którego mogą być tworzone instancje), a instancją jest konkretna zawartość zmiennej c_item. Kiedy edytujesz jedną instancję, inne, nawet z tym samym identyfikatorem, nie zostaną zmodyfikowane.
Temu błędnemu nazewnictwu sprzyjało to że w przypadku npc jest zasada aby każda instancja miała unikatowy identyfikator (różniący się choćby cyferką), więc ludzie dochodzili do wniosku że to jedno i to samo. Ale w przypadku już choćby potworów czy itemów, mamy wiele instancji o tym samym identyfikatorze, będących odrębnymi bytami.
To że te niektóre wartości się resetują, jak zgaduję wynika z tego że Piranhie uznały że nikt ich nie będzie zmieniał, więc w celu przyspieszenia zapisu i zmniejszenia plików nie są one uwzględniane w save#msg1077790ach (serializowane).
tl;dr:
Kiedy atakujesz cieniostwora, czy wszystkie obiekty o identyfikatorze "shadowbeast" tracą daną ilość hp, czy tylko ten jeden?