Dobra, wygląda na to, że zmiana kodowania i przeinstalowanie notepada pomogło. Jednakże mam jeszcze pewien problem. A mianowicie, jaka powinna być składnia skryptu, który po osiągnięciu określonego progu zdolności bojowej i wyuczeniu się odpowiedniego poziomu języka budowniczych daje expa(zamiast % do walki) i zmienia się napis w menu statystyk? Zrobiłem takie coś:
else if (StoneplateItem == OneHStonePlate)
{
concatText = PRINT_Learn1H;
if (StoneplateLevel == 1)
&& (other.HitChance[NPC_TALENT_1H] <= 98)
{
B_RaiseFightTalent (self, NPC_TALENT_1H, OneH_StPlLevel1);
concatText = ConcatStrings (concatText, " + ");
concatText = ConcatStrings (concatText, IntToString(OneH_StPlLevel1));
B_Say (self, self, "STONEPLATE_1");
}
else if (StoneplateLevel == 2)
&& (other.HitChance[NPC_TALENT_1H] <= 96)
{
B_RaiseFightTalent (self, NPC_TALENT_1H, OneH_StPlLevel2);
concatText = ConcatStrings (concatText, " + ");
concatText = ConcatStrings (concatText, IntToString(OneH_StPlLevel2));
B_Say (self, self, "STONEPLATE_2");
}
else if (StoneplateLevel == 3)
&& (other.HitChance[NPC_TALENT_1H] <= 94)
{
B_RaiseFightTalent (self, NPC_TALENT_1H, OneH_StPlLevel3);
concatText = ConcatStrings (concatText, " + ");
concatText = ConcatStrings (concatText, IntToString(OneH_StPlLevel3));
B_Say (self, self, "STONEPLATE_3");
}
else if (StoneplateLevel == 1)
&& (other.HitChance[NPC_TALENT_1H] >= 99)
{
B_GivePlayerXP (100);
}
else if (StoneplateLevel == 2)
&& (other.HitChance[NPC_TALENT_1H] >= 97)
{
B_GivePlayerXP (200);
}
else if (StoneplateLevel == 3)
&& (other.HitChance[NPC_TALENT_1H] >= 95)
{
B_GivePlayerXP (300);
};
ale nadal daje % do walki, zamiast expa(mimo, że mam 100% ustawione w pliku PC_Hero). Natomiast do napisu to zrobiłem takie coś:
"Brak|Farmerzy|Wojownicy|Kapłani", //NPC_TALENT_FOREIGNLANGUAGE = 17; //ADDON
I jeśli użyję przykładowo Npc_SetTalentSkill (self, NPC_TALENT_FOREIGNLANGUAGE , 3); to w menu statystyk mam napis Kapłani, ale po rozmowie z Myxirem i nauczeniu się talentu wraca do Farmerów.