Gothic returning rebalance, dziwny błąd przy reparsowaniu 2862 3

O temacie

Autor majaczek

Zaczęty 5.01.2010 roku

Wyświetleń 2862

Odpowiedzi 3

majaczek

majaczek

DreamVader
The Dreamer
posty404
Propsy191
Profesjabrak
  • DreamVader
  • The Dreamer
mam problem!

po dekompilacji pojawia się tajemniczy identyfikator her (nie hero!), który w niektórych miejscach jest zdefiniowany i jest zmienną pomocniczą w teście czy dany npc jest playerem,
Cytuj
var C_Npc her;
   her = Hlp_GetNpc(PC_Hero);
   if(Hlp_GetInstanceID(self) == Hlp_GetInstanceID(her))

a w niektórych miejscach jest niezdefiniowany i nie wygląda aby mógł tam wystąpić npc
Cytuj
func void use_itpo_falldefence()
{
   Mdl_ApplyOverlayMdsTimed(self,"HUMANS_SKELETON_FLY.MDS",her);
   self.protection[PROT_FALL] += 10;
   PrintScreen("Çŕůčňŕ îň ďŕäĺíč˙ + 10",-1,-1,FONT_Screen,2);
};
Cytuj
func void pc_prayshrine_blessarmor_info()
{
   Info_ClearChoices(pc_prayshrine_blessarmor);
   Info_AddChoice(pc_prayshrine_blessarmor,Dialog_Back,pc_prayshrine_blessarmor_bac
k);
   if(Npc_HasItems(hero,itar_pal_m_v1) >= 1)
   {
      if(Npc_GetInvItem(other,itar_pal_m_v2))
      {
         AI_PrintScreen("Ó âŕń óćĺ ĺńňü îńâ˙ůĺííűĺ äîńďĺőč",-1,-1,FONT_Screen,5);
      }
      else
      {
         MIS_GOLDUPGRADE_PAL_M = (10000 + (INNOSCRIMECOUNT * 50)) - (INNOSPRAYCOUNT * 100);
         if(MIS_GOLDUPGRADE_PAL_M < 1000)
         {
            MIS_GOLDUPGRADE_PAL_M = 1000;
         };
         MIS_GOLDUPGRADE_PAL_M_TEXT = ConcatStrings("Îńâ˙ňčňü đóäíűĺ äîńďĺőč ďŕëŕäčíŕ. Öĺíŕ ďđčíîřĺíč˙: ",IntToString(MIS_GOLDUPGRADE_PAL_M));
         Info_AddChoice(pc_prayshrine_blessarmor,MIS_GOLDUPGRADE_PAL_M_TEXT,pc_prayshrine
_blessarmor_pal_m);
      };
   };
   if(Npc_HasItems(hero,itar_pal_h_v1) >= 1)
   {
      if(Npc_GetInvItem(other,itar_pal_h_v2))
      {
         AI_PrintScreen("Ó âŕń óćĺ ĺńňü îńâ˙ůĺííűĺ ň˙ćĺëűĺ äîńďĺőč",-1,-1,FONT_Screen,5);
      }
      else
      {
         MIS_GOLDUPGRADE_PAL_H = (her + (INNOSCRIMECOUNT * 50)) - (INNOSPRAYCOUNT * 100);
         if(MIS_GOLDUPGRADE_PAL_H < 2000)
         {
            MIS_GOLDUPGRADE_PAL_H = 2000;
         };
         MIS_GOLDUPGRADE_PAL_H_TEXT = ConcatStrings("Îńâ˙ňčňü ň˙ćĺëűĺ đóäíűĺ äîńďĺőč ďŕëŕäčíŕ. Öĺíŕ ďđčíîřĺíč˙: ",IntToString(MIS_GOLDUPGRADE_PAL_H));
         Info_AddChoice(pc_prayshrine_blessarmor,MIS_GOLDUPGRADE_PAL_H_TEXT,pc_prayshrine
_blessarmor_pal_h);
      };
   };
};

naprawdę nie wiem co z tym zrobić!!!
oczywiście taki skrypt jest niemożliwy do skompilowania gdyż w tamtym miejscu ten ID jest niezdefiniowany a na dodatek poprawienie go na tą górną definicję nie pomoże bo tam wymagane jest coś innego niż npc

EDIT: poprawiłem cytat w drugiej błędnej funkcji by zawierał całą funkcję
 

maciejG

maciejG

Użytkownicy
posty450
Propsy1
  • Użytkownicy
Poszukaj w plikach moda definicji her (funkcja znajdź w plikach).
Przeglądnij wyniki czy są jakieś inne niż te, co są hero lub c_npc her.
 
Spoiler


majaczek

majaczek

DreamVader
The Dreamer
posty404
Propsy191
Profesjabrak
  • DreamVader
  • The Dreamer
jest mnóstwo lokalnych (w funkcjach)
C_NPC her;
które wydają się działać (brak błędów)
ale są lokalne, a w tych dwóch kawałkach funkcji są niezdefiniowane
 (na początku funkcji nie ma deklaracji C_NPC her)
i nie wydaje mi się aby tam pasowała obiekt klasy C_NPC, a może się mylę?

więc nie jestem taki pewny co do tego czy tam miało być hero, zwłaszcza że hero jest zdefiniowane w classes.d a her jest zdefiniowane lokalnie w wielu funkcjach i jest to zmienna tymczasowa (też dotycząca gracza)

dzięki za pomoc....

pytanie 1) czy w tych dwóch fragmentach skryptów pasuje obiekt typu C_NPC ?
pytanie 2) czemu występuje taki dziwny błąd, skoro parsuję niezmienione pliki po zdekompilowaniu gothic.dat który działał bez zarzutu w grze?

EDIT: zajrzałem do listy funkcji wbudowanych, i widać ze powinien tam być obiekt typu int a nie C_NPC

EDIT2: wszystkie her w skryptach są typu C_NPC... przypuszczam że w tych miejscach powinno być użyte jakieś pole (instancji) klasy hero... ale nie mam pojęcia jakie...

czy aby na pewno gothic sourcer 3.10 jest zgodny z gothiciem 2.6?
bo to rosyjskie ustrójstwo działa tylko na exe z versją 2.6 (oryginalna, lub ztweakowana)

a w tych dwóch miejscach wygląda jakby wystąpił poważny błąd podczas dekompilacji

*BUMP*
są dwa wystąpienia niezidentyfikowanego  identyfikatora her w miejscu gdzie spodziewano się jakiejś wartości int

3 Posty z rzędu to przesada, następnym razem będzie warn.
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry