Umiejętności w Gothicu 3959 2

O temacie

Autor Kdm2

Zaczęty 18.08.2020 roku

Wyświetleń 3959

Odpowiedzi 2

Kdm2

Kdm2

Użytkownicy
posty4
Profesjabrak
  • Użytkownicy

Kdm2

Umiejętności w Gothicu
2020-08-18, 15:10(Ostatnia zmiana: 2020-08-19, 08:52)
Mam problem. Chcę zrobić funkcje, które dają HERO jakąś umiejętność, ale zabiera inną ilość Punktów Nauki. Na razie próbowałem robić to tak:


if B_TeachThiefTalent (self, other, NPC_TALENT_PICKPOCKET)

Zamieniłem na

if B_TeachThiefTalent (self, other, NPC_TALENT_PICKPOCKET_MASTER)

W pliku B_TeachThieftTalent.d zrobiłem tak:

Spoiler
if (talent == NPC_TALENT_PICKPOCKET)
   {
      Npc_SetTalentSkill    (oth, NPC_TALENT_PICKPOCKET, 1);   
      PrintScreen   (PRINT_LearnPickpocket, -1, -1, FONT_Screen, 2);
      return TRUE;
   };
   if (talent == NPC_TALENT_PICKPOCKET_ADVENCED)
   {
      Npc_SetTalentSkill    (oth, NPC_TALENT_PICKPOCKET, 1);   
      PrintScreen   (PRINT_LearnPickpocket, -1, -1, FONT_Screen, 2);
      return TRUE;
   };
      if (talent == NPC_TALENT_PICKPOCKET_MASTER)
   {
      Npc_SetTalentSkill    (oth, NPC_TALENT_PICKPOCKET, 1);   
      PrintScreen   (PRINT_LearnPickpocket, -1, -1, FONT_Screen, 2);
      return TRUE;
   };
A w pliku B_GetLearnCostTalent.d tak:
Spoiler

   if (talent == NPC_TALENT_PICKLOCK)
   || (talent == NPC_TALENT_PICKPOCKET)
   {
      kosten = (15);
   };
   if (talent == NPC_TALENT_SNEAK)
   || (talent == NPC_TALENT_ACROBAT)
   || (talent == NPC_TALENT_PICKLOCK_ADVENCED)
   || (talent == NPC_TALENT_PICKPOCKET_ADVENCED)
   {
      kosten = (10);
   };
   if (talent == NPC_TALENT_SNEAK_ADVENCED)
   || (talent == NPC_TALENT_ACROBAT_ADVENCED)
   || (talent == NPC_TALENT_PICKLOCK_MASTER)
   || (talent == NPC_TALENT_PICKPOCKET_MASTER)
   {
      kosten = (5);
   };
   if (talent == NPC_TALENT_SNEAK_MASTER)
   || (talent == NPC_TALENT_ACROBAT_MASTER)
   {
      kosten = (2);
   };

Tutaj jeszcze dorzucam część 1 pliku:

Spoiler
var int kosten;
   kosten = B_GetLearnCostTalent(oth, talent, 1);
   
   
   //EXIT IF...
   
   // ------ falscher Parameter ------
   if (talent!=NPC_TALENT_PICKLOCK)
   && (talent!=NPC_TALENT_PICKLOCK_ADVENCED)
   && (talent!=NPC_TALENT_PICKLOCK_MASTER)
   && (talent!=NPC_TALENT_SNEAK)
   && (talent!=NPC_TALENT_SNEAK_ADVENCED)
   && (talent!=NPC_TALENT_SNEAK_MASTER)    
   && (talent!=NPC_TALENT_ACROBAT_ADVENCED)
   && (talent!=NPC_TALENT_ACROBAT_MASTER)
   && (talent!=NPC_TALENT_PICKPOCKET)
   && (talent!=NPC_TALENT_PICKPOCKET_ADVENCED)
   && (talent!=NPC_TALENT_PICKPOCKET_MASTER)
   {
      Print ("*** Błąd: Zły parametr ***");
      return FALSE;
   };
   
   // ------ Player hat zu wenig Lernpunkte ------
   if (oth.lp < kosten)
   {
      PrintScreen   (PRINT_NotEnoughLearnPoints, -1,-1, FONT_ScreenSmall, 2);
      B_Say (slf, oth, "$NOLEARNNOPOINTS");
      
      return FALSE;
   };


Ktoś wie co jest źle? Proszę o pomoc.



Błąd wywala w drugim pliku jakby co

Oczywiście z innymi umiejętnościami które widzieliście zrobiłem tak samo (otwieraniem zamków, skradaniem się itp.)



 

TheKetrab

TheKetrab

Użytkownicy
posty334
Propsy217
ProfesjaProducent
  • Użytkownicy
Nie wiemy, jaki błąd wywala... Co mówi parser Gothica?
Najprawdopodobniej błąd pojawia się, ponieważ wprowadziłeś nowe umiejętności.

Musisz zadeklarować nowe stałe:
// plik Constants.d
const int NPC_TALENT_PICKPOCKET_ADVANCED = 100;
...

Btw. Błąd wywala w drugim pliku, bo jest on pierwszy czytany.
Kolejność 'czytania' plików przez Gothica znajdziesz w pliku gothic.src.

Pamiętaj, bez podania komunikatu błędu, często nie jesteśmy w stanie pomóc.
 

Kdm2

Kdm2

Użytkownicy
posty4
Profesjabrak
  • Użytkownicy

Kdm2

Umiejętności w Gothicu
#2 2020-08-18, 21:35(Ostatnia zmiana: 2020-08-18, 21:52)
Spróbuję. To mój pierwszy post, więc na następny raz będę pamiętał.


Teraz się kompiluje :D Wielkie dzięki!
 


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