Błąd NPC 18036 65

O temacie

Autor

Zaczęty 5.01.2010 roku

Wyświetleń 18036

Odpowiedzi 65

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Jesteś pewny, że w tych plikach jest błąd, a nie w innym. I w tym samym wierszu? Taki sam komunikat?

WonderiuS
  • Gość
Hmm... nie wiem czy w innych jest. Na początku tworzenia NPC, dałem mu id i wszystko 5000, ale że zauważyłem że ten numerek jest zajęty zmieniłem na 6000, nie wiem czy to może być przyczyną. Próbowałem tworzyć też na podstawie innego i też jest ten sam błąd, ogólnie nie wiem co może być błędem.
 

majaczek

majaczek

DreamVader
The Dreamer
posty404
Propsy191
Profesjabrak
  • DreamVader
  • The Dreamer

majaczek
DreamVader

Błąd NPC
#22 2010-01-07, 18:57(Ostatnia zmiana: 2010-01-07, 19:01)
wonderius, może nie jestem specem, ale mogę ci pomóc

jeśli stworzysz plik na podstawie innego i nie zmienisz identyfikatorów (nazw instancji, rutyn, funkcji)
to niezależnie na podstawie czego zrobisz i tak ci nie będzie działać
ponieważ próbujesz utworzyć dwie rzeczy o tej samej nazwie tam gdzie ma być unikalna
i musi być unikalna na skalę globalną, więc nie może wystąpić W ŻADNYM INNYM SKRYPCIE

dobrą praktyką jest oznaczanie własnych funkcji w nazwie - wtedy unikasz szansy zdublowania identyfikatora
spróbuj umieścić w nazwach funkcji np "_byWonderius_" (bez cudzysłowów) - w ten sposób unikniesz powtórki

problemem są miejsca gdzie musisz identyfikować numerem (tzn. przypisanie do pól typu int które określają unikalny numer czegoś), ale możesz podczas testów jak ci skryptowanie idzie zacząć od bardzo dużyych wartości np 18000, a jak już się nauczysz możesz zadbać by numery były po kolei
pamiętaj też że np. opcje dialogowe npc muszą mieć unikalne id liczbowe ale tylko w zakresie danego dialogu, tak więc póki ich nie będziesz używał ze starymi NPC a tylko ze swoim nowym możesz im przypisać ID z dowolnego zakresu

EDIT: jak widzę twój problem polega jednak głównie na nieunikalnym id liczbowym
więc nawet jeśli ci się skompiluje, to i tak gothic zgłupieje od dwóch NPC o tym samym ID liczbowym
spróbuj sztuczki z 18000 (lub którymś z innych tysięcy) albo spraw sobie program który poda ci największy użyty ID po przeskanowaniu skryptów NPC
 

WonderiuS
  • Gość
JA już z tego nic nie rozumiem! Nie może ktoś zrobić tego NPC jak to ma wyglądać? Bo ja już głupieję od tych NPC, ciągle coś jest źle. Ehh..
 

Levy

Levy

Użytkownicy
posty61
Propsy4
Profesjabrak
  • Użytkownicy
Zrobiłem od nowa oba skrypty ale nie wydaje mi się, aby się czymkolwiek rózniły, zmieniłem jedynie id... Najistotniejsze jest to że obaj NPC działaja bez żadnego problemu, nie pojawiają się żadne błędy. W razie czego umieszcze tu te skrypty, nie wiem może gdzieś w tych twoich skryptach jest jakiś trudno zauważalny błąd. Użyj tych skryptów które ci podam. Jeśli nadal pojawiać się będzie błąd, to znaczy że jest on zawarty w jakimś innym skrypcie.


Skrypt I :
Cytuj
instance EBR_8000_Lumbermil (Npc_Default)
{
   //-------- primary data --------
   
   name       =   "Lumbermil";
   npctype    =   NPCTYPE_MAIN;   
   guild       =   GIL_EBR;      
   level       =   30;
   voice       =   11;
   id          =   8000;

   //-------- abilities --------

        attribute[ATR_STRENGTH] = 150;
        attribute[ATR_DEXTERITY] = 130;
        attribute[ATR_MANA_MAX] = 0;
        attribute[ATR_MANA] = 0;
        attribute[ATR_HITPOINTS_MAX] = 1000;
        attribute[ATR_HITPOINTS] = 1000;
   
   //-------- visuals --------
   //             animations
   Mdl_SetVisual      (self,"HUMANS.MDS");
   Mdl_ApplyOverlayMds   (self,"Humans_Arrogance.mds");
   //         body mesh     ,bdytex,skin,head mesh     ,headtex,teethtex,ruestung   
   Mdl_SetVisualBody (self,"hum_body_naked0",0, 2,"Hum_Head_Pony",1, 2,EBR_ARMOR_H);
   B_Scale (self);
   Mdl_SetModelFatness(self,1);
   
   
   fight_tactic    =    FAI_HUMAN_Master;

   //-------- Talente --------                                    
   Npc_SetTalentSkill (self, NPC_TALENT_1H,2);
        Npc_SetTalentSkill (self, NPC_TALENT_2H,2);
   

   //-------- inventory --------                                    
       EquipItem        (self, ItMw_2H_Sword_Light_03);
        CreateInvItems  (self,ItFoLoaf,1);
        CreateInvItems  (self,ItForice,1);
        CreateInvItems  (self,ItFoCrawlersoup,1);
        CreateInvItems  (self,ItMijoint_3,1);
        CreateInvItems  (self,ItMiNugget,21);


      //-------------Daily Routine-------------
   daily_routine = Rtn_start_8000;
   
};

FUNC VOID Rtn_start_8000 ()
{
TA_Ebr_HangAround (7,00,22,00,"EBR_THRONE");
TA_Ebr_HangAround (22,00,7,00,"EBR_THRONE");
};


Skrypt II:
Cytuj
instance GRD_8001_Skrzypek (Npc_Default)
{
   //-------- primary data --------
   
   name       =   "Skrzypek";
   npctype    =   NPCTYPE_MAIN;   
   guild       =   GIL_GRD;      
   level       =   28;
   voice       =   7;
   id          =   8001;

   //-------- abilities --------


        attribute[ATR_STRENGTH] = 145;
        attribute[ATR_DEXTERITY] = 105;
        attribute[ATR_MANA_MAX] = 0;
        attribute[ATR_MANA] = 0;
        attribute[ATR_HITPOINTS_MAX] = 800;
        attribute[ATR_HITPOINTS] = 800;
   
//-------- visuals --------
   //             animations
   Mdl_SetVisual      (self,"HUMANS.MDS");
   Mdl_ApplyOverlayMds   (self,"Humans_Arrogance.mds");
   //         body mesh     ,bdytex,skin,head mesh     ,headtex,teethtex,ruestung   
        Mdl_SetVisualBody (self,"hum_body_naked0",0, 1,"Hum_Head_Fighter",81, 1,GRD_ARMOR_I);
   B_Scale (self);
   Mdl_SetModelFatness(self,1);
   
   fight_tactic   =   FAI_HUMAN_STRONG;

   //-------- Talente --------                                    
        Npc_SetTalentSkill (self, NPC_TALENT_1H,2);
   

   //-------- inventory --------                                    
      
   EquipItem        (self, ItMw_1H_Sword_Long_05);
        CreateInvItems  (self,ItFoLoaf,1);
        CreateInvItems  (self,ItForice,1);
        CreateInvItems  (self,ItFo_Potion_Health_03,3);
      
   //-------------Daily Routine-------------
   daily_routine = Rtn_start_8001;
   
};

FUNC VOID Rtn_start_8001 ()
{
TA_GuardPalisade (7,00,22,00,"OC_GUARD_PALISSADE");
TA_GuardPalisade (22,00,7,00,"OC_GUARD_PALISSADE");
};
 

WonderiuS
  • Gość

WonderiuS
Gość

Błąd NPC
#25 2010-01-07, 19:58(Ostatnia zmiana: 2010-01-08, 20:02)
I jeszcze jedno co dodać do paczki z modem? Bo ja dodaję świat i tych dwóch NPC, a świat jest umieszczony w TestLevel

Sorry, za duble ale ostatnie pytanie. Wszystko prawie działa tylko w świecie nie ma żadnych NPC! World jest umieszczony tam gdzie jest Stary czy Nowy Obóz itp. A do paczki z modem daję tylko zen i tych dwóch NPC, a odpalam Gothic Starterem Mod i zaznaczam opcję Reparse Scriptfiles i nie ma żadnych NPC, co robię źle? Bo w tutkach na tworzenie NPC pisze tak a w innych pisze inaczej.
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Odpalaj paczkę zwykłym starterem bez opcji parsowania skryptów. W paczce powinien się znajdować również plik gothic.dat.

WonderiuS
  • Gość
Dalej nie ma NPC w świecie :/ . Wrzuciłem do paczki z modem modyfikowany zen, tych dwóch NPC i gothic.dat i dalej nie ma tych NPC.
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
A możesz przywołać konsolą? Wpisałeś ich do startup.d?

Levy

Levy

Użytkownicy
posty61
Propsy4
Profesjabrak
  • Użytkownicy

Levy

Błąd NPC
#29 2010-01-08, 20:17(Ostatnia zmiana: 2010-01-08, 20:23)
A dodałeś ich do startupa?

EDIT: Sorki Adanos że dubluje twoje posty, ale mam strasznie wolny internet i w chwili kiedy pisze posta nie wiem czy ktoś juz odpowiedzial na dany problem.

Spoko, przecież cię nie zabiję :/ ,
Adanos
 

WonderiuS
  • Gość
Tak wpisałem ich do startup.d, usunąłem Neka i na jego miejsce ich dałem. Próbowałem przywołać konsolą ale nie pojawiają się.
 

Levy

Levy

Użytkownicy
posty61
Propsy4
Profesjabrak
  • Użytkownicy
Skoro się nie pojawiają to musi być coś nie tak. A masz zaznaczone w gothic starter mod "reprease scripts"?
 

WonderiuS
  • Gość
Tak. W ogóle nie wiem co może być nie tak.
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
W którym katalogu masz skrypty, z jaką nazwą i z jakim rozszerzeniem?

WonderiuS
  • Gość
NPC są w Story/NPC a rozszerzenie to .txt chyba. I może dla tego jest ten błąd? Że nie pojawiają się NPC. Albo jak wpisuję konsoli kod: insert ebr_8000_lumbermil i daję enter to piszę Not Found.
 

Levy

Levy

Użytkownicy
posty61
Propsy4
Profesjabrak
  • Użytkownicy

Levy

Błąd NPC
#35 2010-01-08, 20:30(Ostatnia zmiana: 2010-01-08, 20:31)
Pewnie masz źle umiejscowione skrypty... Tylko zastanawiające jest to że wcześniej zspy wykrywał ci błędy, a to jednak wskazuje na to że prawdopodobnie skrypty są w prawidłowym katalogu... Czy NAPEWNO masz tych npc w _work/data/skripts/content/story/npc ?
 

WonderiuS
  • Gość

WonderiuS
Gość

Błąd NPC
#36 2010-01-08, 20:32(Ostatnia zmiana: 2010-01-08, 20:32)
TAK, dobrze mam umiejscowione. Ale jak odpalałem Gothic Starter MOD, to jakieś błędy chyba się pokazywały.
 

Levy

Levy

Użytkownicy
posty61
Propsy4
Profesjabrak
  • Użytkownicy

Levy

Błąd NPC
#37 2010-01-08, 20:34(Ostatnia zmiana: 2010-01-08, 20:36)
Chyba? Co to za błędy? Odpal za pomoca gothic starter mod i wpisz tu treść błędu
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Błąd NPC
#38 2010-01-08, 20:40(Ostatnia zmiana: 2010-01-08, 20:49)
Problem rozwiązany przez gg, WonderiuS nie wiedział że plik ze skryptem trzeba dopisać w gothic.src :/
Musiałem też wytłumaczyć co to jest ścieżka dostępu do pliku :/
No i na dodatek okazało się że plik ze skryptem miał rozszerzenie .txt
Okazało się też że ma wyłączone pokazywanie typów plików i musiałem tłumaczyć jak to załączyć i co to jest Explorer.

WonderiuS
  • Gość
Sprawa jest nie do końca rozwiązana otóż: Avallach mówił żebym nie robił paczki z modem, więc tak odpalam zwykłego Gothic'a przez Gothic Starter MOD, ci dwaj NPC działają bo przyzwałem ich na kodach ale nie ma mojego obozu. Więc pytam trzeba robić paczkę z modem czy nie? Jak tak to co tam dać, żeby NPC ani potwory nie zniknęli?
 


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