// ************************************************************
// Bring mir was bei.
// ************************************************************
//-----------------------
var int DiegoNW_Merke_DEX;
//-------------------------
INSTANCE DIA_DiegoNW_Teach(C_INFO)
{
npc = PC_Thief_NW;
nr = 995;
condition = DIA_DiegoNW_Teach_Condition;
information = DIA_DiegoNW_Teach_Info;
permanent = TRUE;
description = "Naucz mnie.";
};
FUNC INT DIA_DiegoNW_Teach_Condition()
{
if (Diego_IsOnBoard == FALSE)
&& (Diego_Teach == TRUE)
{
return TRUE;
};
};
FUNC VOID DIA_DiegoNW_Teach_Info()
{
AI_Output (other,self ,"DIA_DiegoNW_Teach_15_00"); //Naucz mnie.
AI_Output (self ,other,"DIA_DiegoNW_Teach_11_01"); //Mogę popracować trochę nad twoją zręcznością.
DiegoNW_Merke_Dex = other.attribute[ATR_DEXTERITY]; //<--W tej linijce mi wyskakuje. Unkown identyfire ( kod źródłowy nie rozpoznaje tej linijki)
Info_ClearChoices (DIA_DiegoNW_Teach);
Info_AddChoice (DIA_DiegoNW_Teach, DIALOG_BACK, DIA_DiegoNW_Teach_BACK);
Info_AddChoice (DIA_DiegoNW_Teach, B_BuildLearnString(PRINT_LearnDEX1, B_GetLearnCostAttribute(other, ATR_DEXTERITY)) ,DIA_DiegoNW_TeachDEX_1);
Info_AddChoice (DIA_DiegoNW_Teach, B_BuildLearnString(PRINT_LearnDEX5, B_GetLearnCostAttribute(other, ATR_DEXTERITY)*5) ,DIA_DiegoNW_TeachDEX_5);
};
func void DIA_DiegoNW_Teach_BACK()
{
if (DiegoNW_Merke_DEX < other.attribute[ATR_DEXTERITY]) ( no i w związku z powyższym tej linijki także nie rozpoznaje. Oczywiście zmieniłem tutaj imię na imie postaci.)
{
AI_Output (self, other, "DIA_DiegoNW_Teach_BACK_11_00"); //Już jesteś bardziej zręczny. Tak trzymać.
};
Info_ClearChoices (DIA_DiegoNW_Teach);
};
// ------ 1 Geschick -----
func void DIA_DiegoNW_TeachDEX_1()
{
B_TeachAttributePoints (self, other, ATR_DEXTERITY, 1, T_MAX);
Info_ClearChoices (DIA_DiegoNW_Teach);
Info_AddChoice (DIA_DiegoNW_Teach, DIALOG_BACK, DIA_DiegoNW_Teach_BACK);
Info_AddChoice (DIA_DiegoNW_Teach, B_BuildLearnString(PRINT_LearnDEX1, B_GetLearnCostAttribute(other, ATR_DEXTERITY)) ,DIA_DiegoNW_TeachDEX_1);
Info_AddChoice (DIA_DiegoNW_Teach, B_BuildLearnString(PRINT_LearnDEX5, B_GetLearnCostAttribute(other, ATR_DEXTERITY)*5) ,DIA_DiegoNW_TeachDEX_5);
};
// ------ 5 Geschick ------
func void DIA_DiegoNW_TeachDEX_5()
{
B_TeachAttributePoints (self, other, ATR_DEXTERITY, 5, T_MAX);
Info_ClearChoices (DIA_DiegoNW_Teach);
Info_AddChoice (DIA_DiegoNW_Teach, DIALOG_BACK, DIA_DiegoNW_Teach_BACK);
Info_AddChoice (DIA_DiegoNW_Teach, B_BuildLearnString(PRINT_LearnDEX1, B_GetLearnCostAttribute(other, ATR_DEXTERITY)) ,DIA_DiegoNW_TeachDEX_1);
Info_AddChoice (DIA_DiegoNW_Teach, B_BuildLearnString(PRINT_LearnDEX5, B_GetLearnCostAttribute(other, ATR_DEXTERITY)*5) ,DIA_DiegoNW_TeachDEX_5);
};
To jest kod Diega na naukę. Zmieniłem instance dialogu, nazwę npc, we wszystkich innych miejscach także zmieniłem instance i wyskakuje mi błąd w miejscu zaznaczonym powyżej w skrypcie. W dialogach na naukę w powyższych postach nie zauważyłem tej linijki nawet. Co to jest? Proszę o pomoc.
Już znalazłem. Nie dodałem na górze nad instance var int imie_merke_DEX. Jeśli ktoś by w przyszłości będzie miał ten problem to niech sobie zmieni. Dodam jeszcze jak zmienić maksymalną ilość punktów do nauczenia się. Trzeba zmienić wszędzie T_MAX na T_MEGA. Wtedy będzie można do 300 się uczyć. A jak będzie się chciało zwiększyć jeszcze bardziej to tu opiszę jak to zrobić:
Wchodzimy do pliku story Globals. Na samej górze mamy następujące linijki.
// ------ Teacher MAX Werte ------
const int T_MEGA = 300; //Pyrokar MANA
const int T_MAX = 200;
const int T_HIGH = 120;
const int T_MED = 90;
const int T_LOW = 60;
Możemy dodać kolejną np.
const int T_BIG = 500;
Teraz wchodzimy do dialogu postaci i w skrypcie nauki szukamy 2 linijek. One nie są umieszczone pod sobą.
B_TeachAttributePoints (self, other, ATR_DEXTERITY, 1, T_MAX);
B_TeachAttributePoints (self, other, ATR_DEXTERITY, 5, T_MAX);
Zmieniamy w nich końcówkę T_MAX na to, co wpisaliśmy w story globals, czyli T_BIG. Dzięki temu będziemy mogli się nauczyć danej umiejętności do 500. W tym przypadku zręczności