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.)