Graveir
No dobry pomysł podsunąłeś, nie próbowałem tego chociaż wolał bym zmienić coś w istniejących już funkcjach, dodać jakiś nowy string czy coś, nie znam sie za bardzo na tym ale gdybym chociaż miał jakiś wzór to już bym sobie poradził.
Torwish
Tak, właśnie coś takiego chce zrobić. I w zależności od NPC, np. jeden brał by za nauke kamienne tabliczki, inny bryłki złota a w obozie płaciło by się złotem.
EDIT
Dobra już sobie poradziłem
Było to łatwiejsze niż myślałem. Wystarczyło zamiast PRINT_STR1 dać poprostu swój tekst i potem removeinvItems
Zastanawiam się tylko gdzie jest jeszcze przypisany dialog w przypadku gdy niemamy PN ?
Post połączony: 2017-04-02, 21:17
Hmm, mam jeszcze jeden problem
Wszystko działa ale gdy naciśniemy w dialogu by uczyć się 5-ciu bądz jednego punktu siły niemając punktów nauki to i tak pobiera mi z EQ bryłki złota. Chciałbym zrobić tak że gdy niemamy PN dialog się nie będzie wyświetlać. Bądź zmienić samą tą funkcje która odpowiada za wyświetlanie dialogu. Dałem warunek if (hero.lp
ale nie działa, niewiem dlaczego.
Wklejam cały skrypt, wg mnie wygląda dobrze, niewiem dlaczego to hero.lp nie działa..
INSTANCE DIA_Koffi_Teach(C_INFO)
{
npc = STRF_3105_Koffi;
nr = 150;
condition = DIA_Koffi_Teach_Condition;
information = DIA_Koffi_Teach_Info;
permanent = TRUE;
description = "Pomóż mi popracować nad moją siłą";
};
FUNC INT DIA_Koffi_Teach_Condition()
{
if (Npc_KnowsInfo (other, DIA_Koffi_nauczysz))
&& (MIS_Koffi_Gulasz == LOG_SUCCESS)
{
return TRUE;
};
};
FUNC VOID DIA_Koffi_Teach_Info()
{
AI_Output (other,self ,"DIA_Koffi_Teach_15_00"); //Pomóż mi popracować nad moją siłą
Koffi_Merke_STR = other.attribute[ATR_STRENGTH];
Info_ClearChoices (DIA_Koffi_Teach);
Info_AddChoice (DIA_Koffi_Teach, DIALOG_BACK, DIA_Koffi_Teach_Back);
if (hero.lp >= 1)
{
Info_AddChoice (DIA_Koffi_Teach, B_BuildLearnString("Siła + 1 (1 bryłka złota)" , B_GetLearnCostAttribute(other, ATR_STRENGTH)) ,DIA_Koffi_Teach_STR_1);
}
if (hero.lp >= 5)
{
Info_AddChoice (DIA_Koffi_Teach, B_BuildLearnString("Siła + 5 (5 bryłek złota)" , B_GetLearnCostAttribute(other, ATR_STRENGTH)*5) ,DIA_Koffi_Teach_STR_5);
};
};
FUNC VOID DIA_Koffi_Teach_Back ()
{
if (Koffi_Merke_STR < other.attribute[ATR_STRENGTH])
{
AI_Output (self, other, "DIA_Koffi_Teach_Back_01_00"); //Dobrze!
};
Info_ClearChoices (DIA_Koffi_Teach);
};
FUNC VOID DIA_Koffi_Teach_STR_1 ()
{
if (Npc_HasItems (other, ItMi_GoldNugget_Addon) >=1)
{
B_TeachAttributePoints (self, other, ATR_STRENGTH, 1, T_LOW);
Npc_RemoveInvItems (other, ItMi_GoldNugget_Addon,1);
Info_ClearChoices (DIA_Koffi_Teach);
Info_AddChoice (DIA_Koffi_Teach, DIALOG_BACK, DIA_Koffi_Teach_Back);
Info_AddChoice (DIA_Koffi_Teach, B_BuildLearnString("Siła + 1 (1 bryłka złota)" , B_GetLearnCostAttribute(other, ATR_STRENGTH)) ,DIA_Koffi_Teach_STR_1);
Info_AddChoice (DIA_Koffi_Teach, B_BuildLearnString("Siła + 5 (5 bryłek złota)" , B_GetLearnCostAttribute(other, ATR_STRENGTH)*5) ,DIA_Koffi_Teach_STR_5);
}
else
{
AI_Output (self, other ,"DIA_Koffi_Teach_STR_1_15_00"); //Nowy niemieć złota!
AI_Output (self, other ,"DIA_Koffi_Teach_STR_1_15_01"); //Wrócić gdy mieć złoto!
};
};
FUNC VOID DIA_Koffi_Teach_STR_5 ()
{
if (Npc_HasItems (other, ItMi_GoldNugget_Addon) >=5)
{
B_TeachAttributePoints (self, other, ATR_STRENGTH, 5, T_LOW);
Npc_RemoveInvItems (other, ItMi_GoldNugget_Addon,5);
Info_ClearChoices (DIA_Koffi_Teach);
Info_AddChoice (DIA_Koffi_Teach, DIALOG_BACK, DIA_Koffi_Teach_Back);
Info_AddChoice (DIA_Koffi_Teach, B_BuildLearnString("Siła + 1 (1 bryłka złota)" , B_GetLearnCostAttribute(other, ATR_STRENGTH)) ,DIA_Koffi_Teach_STR_1);
Info_AddChoice (DIA_Koffi_Teach, B_BuildLearnString("Siła + 5 (5 bryłek złota)" , B_GetLearnCostAttribute(other, ATR_STRENGTH)*5) ,DIA_Koffi_Teach_STR_5);
}
else
{
AI_Output (self, other ,"DIA_Koffi_Teach_STR_5_15_00"); //Nowy niemieć złota!
AI_Output (self, other ,"DIA_Koffi_Teach_STR_5_15_01"); //Wrócić gdy mieć złoto!
};
};