Witam. Ostatnio zajmuję się tworzeniem dialogu dla pewnego, spragnionego, zmęczonego maga. Prosi on o coś do picia. I tutaj mamy wybór: albo dać mu wino, piwo albo wodę, ewentualnie nic. Wszystko, oczywiście, jako Choices. Przytoczę tutaj dany dialog, tj. jego część
instance Dia_Kalliach_rozmowa2 (C_INFO)
{
npc = kdw_200_Kalliach;
nr = 4;
condition = Dia_Kalliach_rozmowa2_condition;
information = Dia_Kalliach_rozmowa2_info;
permanent = TRUE; //jeśli nie mamy nic do picia, zawsze możemy wrócić później
important = FALSE;
description = "Daj coś o picia...";
};
FUNC int Dia_Kalliach_rozmowa2_condition()
{
IF (Npc_KnowsInfo(hero, dia_kalliach_rozmowa1))
{
return TRUE;
};
};
FUNC VOID DIA_Kalliach_rozmowa2_info()
{
FUNC int DIA_Kalliach_Rozmowa1_info()
{
IF (NpcHasItems(other,itfowine > 0))
|| (NpcKnowsInfo(hero, DIA_Kalliach_rozmowa2_piwo)
|| (NpcKnowsInfo(hero, DIA_Kalliach_rozmowa2_woda)
|| (NpcKnowsInfo(hero, DIA_Kalliach_rozmowa2_none)
};
Info_ClearChoices (DIA_Kalliach_rozmowa2);
Info_AddChoice (DIA_Kalliach_rozmowa2,"Wino",DIA_Kalliach_rozmowa2_wino);
FUNC int DIA_Kalliach_Rozmowa2_info()
{
IF (NpcHasItems(other,itfobeer > 0))
|| (NpcKnowsInfo(hero, DIA_Kalliach_rozmowa2_wino)
|| (NpcKnowsInfo(hero, DIA_Kalliach_rozmowa2_woda)
|| (NpcKnowsInfo(hero, DIA_Kalliach_rozmowa2_none)
};
Info_Addchoice (DIA_Kalliach_rozmowa2, "Piwo", DIA_Kalliach_rozmowa2_piwo);
FUNC int DIA_Kalliach_Rozmowa2_info()
{
IF (NpcHasItems(other,itfowater > 0))
|| (NpcKnowsInfo(hero, DIA_Kalliach_rozmowa2_wino)
|| (NpcKnowsInfo(hero, DIA_Kalliach_rozmowa2_piwo)
|| (NpcKnowsInfo(hero, DIA_Kalliach_rozmowa2_none)
};
Info_Addchoice (DIA_Kalliach_rozmowa2,"Woda",DIA_Kalliach_rozmowa2_woda);
FUNC int DIA_Kalliah_Rozmowa2_info()
{
|| (NpcKnowsInfo(hero, DIA_Kalliach_rozmowa2_wino)
|| (NpcKnowsInfo(hero, DIA_Kalliach_rozmowa2_piwo)
|| (NpcKnowsInfo(hero, DIA_Kalliach_rozmowa2_woda)
};
Info_Addchoice (DIA_Kalliach_rozmowa2,"Nie mam nic",DIA_Kalliach_rozmowa2_none);
};
func void DIA_Kalliach_rozmowa2_wino()
{
AI_Output (self, other,"DIA_Kalliach_rozmowa2_wino_1_01"); //Mam wino. Łyknij sobie
B_GiveInvItems (other, self, itfowine, 1);
AI_Output (other, self,"DIA_Kalliach_rozmowa2_wino_1_02"); //Dzięki, chłopcze, wielkie dzięki.
B_GivePlayerXP (100);
AI_useItem (self, itfowine);
AI_Output (self, other,"DIA_Kalliach_rozmowa2_wino_1_03"); //Nie ma to jak delikatne, rozgrzewające wino. To co chcesz wiedzieć?
B_LogEntry(CH1_Mag, "Dałem magowi butelkę wina. Od razu stał się rozmowniejszy.");
Info_ClearChoices (DIA_Kalliach_rozmowa2);
};
func void DIA_Kalliach_rozmowa2_piwo()
{
AI_Output (other,self,"DIA_Kalliach_rozmowa1piwo_1_01"); //Mam tu piwo. Łyknij sobie.
AI_Output (self, other,"DIA_Kalliach_rozmowa1piwo_1_02"); //Dzięki, chłopcze, wielkie dzięki.
B_GiveInvItems (other, self, itfobeer, 1);
B_GivePlayerXP (75);
AI_useItem (self, itfobeer);
AI_Output (self, other, "DIA_Kalliach_rozmowa1piwo_1_03"); //Gorzkie, zimne piwo. *wzdycha* O co chesz się spytać?
B_logentry (CH1_mag, "Dałem magowi butelkę piwa. Od razu stało się bardziej rozmowny."};
Info_ClearChoices (DIA_Kalliach_rozmowa2);
};
func void DIA_Kalliach_rozmowa2_woda()
{
AI_Output (other,self,"DIA_Kalliach_rozmowa1woda_1_01"); //Mam dla ciebie trochę wody.
AI_Output (self, other,"DIA_Kalliach_rozmowa1woda_1_02"); //Dziękuję.
B_GiveInvItems (other, self, itfowater, 1);
AI_useitem (self, itfo_water);
B_GivePlayerXP (50);
AI_Output (self, other, "DIA_KALLIACH_rozmowa1woda_1_03"); //Chłodna, smaczna woda... Co chciałeś?
B_logEntry (CH1_mag, "Dałem magowi butelkę wody. Nieco się ożywił. Mam nadzieję.");
Info_ClearChoices (DIA_Kalliach_rozmowa2);
};
func void DIA_Kalliach_rozmowa2_none()
{
AI_Output (other,self,"DIA_Kalliach_rozmowa1none_1_01"); //Niestety nic dla ciebie nie mam.
AI_Output (self, other,"DIA_Kalliach_rozmowa1none_1_02"); //Szkoda. Wróć, jak będziesz miał coś do picia.
Info_ClearChoices (DIA_Kalliach_rozmowa2);
};
to tak... najbardziej mnie interesuje, czy napisany jest prawidłowo ten fragment(fragmenty?):
FUNC int DIA_Kalliach_Rozmowa1_info()
{
IF (NpcHasItems(other,itfowine > 0))
|| (NpcKnowsInfo(hero, DIA_Kalliach_rozmowa2_piwo)
|| (NpcKnowsInfo(hero, DIA_Kalliach_rozmowa2_woda)
|| (NpcKnowsInfo(hero, DIA_Kalliach_rozmowa2_none)
};
Info_ClearChoices (DIA_Kalliach_rozmowa2);
Info_Addchoice (DIA_Kalliach_rozmowa2,"Wino",DIA_Kalliach_rozmowa2_wino);chciałem osiągnąć taki efekt, żeby jeśli postać posiada wino, to pokazuje się taka ocja wyboru na liście. Jeśli coś jest źle, powiedzcie, jak to zrobić, a nie piszcie za mnie
Dzięki.
PS Jeszcze jedno: co napisać, jeśli po danym dialogu (znaczy się tutaj, jak się nic nie ma) dialog się kończył?