Witam. Mój brat ma następujący problem (w wersji 2.02): Wziął misję z obiciem Monka i zabraniem mu Kamienia Ogniskującego, a później wziął również misję z dostawą od Przemytników dla Bandytów. Gadał z Angharem, Korthem i Servinem, obił także Monka. Okazało się jednak, że Thangor nie chce przyjąć do wiadomości, że mamy już wszystko i nie możemy kontynuować wykonywania misji. Postanowiłem sprawdzić przyczynę i okazało się, że zmienna proof nie ma wartości 5, tylko 4, ponieważ przy gadce z Monkiem w tym wypadku jej wartość nie wzrasta. Ściślej mówiąc, skrypt Monka wygląda tak:
KOD
//...
FUNC INT Info_Monk_Drugs_Condition()
{
if (ThangorProof==LOG_RUNNING)&&(Npc_KnowsInfo (other, Info_Thangor_Proof))&&(monk_thief == FALSE)
{
return 1;
};
};
FUNC VOID Info_Monk_Drugs_Info()
{
//...
proof = proof + 1;
};
//...
FUNC INT Info_Monk_Seks_Condition()
{
if (Npc_KnowsInfo (other, Info_Thangor_Focus))&&(monk_thief == TRUE)
{
return 1;
};
};
FUNC VOID Info_Monk_Seks_Info()
{
if (monk_problem == FALSE)
{
CreateInvItems (self, drugs, 1);
MonkHelp=LOG_SUCCESS;
proof = proof + 1;
};
//...
};
//...
Wszystko byłoby w porządku, gdyby w funkcji Info_Monk_Seks_Info() zamiast if (monk_problem == FALSE) byłoby if (monk_problem == TRUE) - wtedy zmienna proof osiągnęłaby odopwiednią wartość i można by było gadać z Thangorem. Z góry dzięki za zajęcie się tym problemem.