Monolog nie ma w tym nic do rzeczy. Analogicznie zrobiłem monolog wytwarzania łuków definiując przed tym nowe mobsi. Ale jeżeli aż tak chcesz wiedzieć:
func void COOKABIT_S1 ()
{
var C_NPC her; her = Hlp_GetNpc(PC_Hero);
var C_NPC rock; rock = Hlp_GetNpc(PC_Rockefeller);
//***ALT** if (Hlp_GetInstanceID (self)== Hlp_GetInstanceID (Hero)) // MH: geändert, damit kontrollierte NSCs nicht schlafen können!
if ( (Hlp_GetInstanceID(self)==Hlp_GetInstanceID(her))||(Hlp_GetInstanceID(self)==Hlp_GetInstanceID(rock)) )
{
self.aivar[AIV_INVINCIBLE]=TRUE;
PLAYER_MOBSI_PRODUCTION = MOBSI_COOKABIT;
Ai_ProcessInfos (her);
};
};
//--------------------------------------------------------------
INSTANCE PC_Cookabit_End (C_Info)
{
npc = PC_Hero;
nr = 999;
condition = PC_Cookabit_End_Condition;
information = PC_Cookabit_End_Info;
permanent = TRUE;
description = DIALOG_ENDE;
};
FUNC INT PC_Cookabit_End_Condition ()
{
if (PLAYER_MOBSI_PRODUCTION == MOBSI_COOKABIT)
&& (ZupyStart == FALSE)
{
return TRUE;
};
};
FUNC VOID PC_Cookabit_End_Info()
{
B_ENDPRODUCTIONDIALOG ();
};
//*******************************************************
//Schnaps brennen
//*******************************************************
var int ZupyStart;
//----------------------
INSTANCE PC_Zupy_Start (C_Info)
{
npc = PC_Hero;
nr = 10;
condition = PC_Zupy_Start_Condition;
information = PC_Zupy_Start_Info;
permanent = TRUE;
description = "Gotuj zupę";
};
FUNC INT PC_Zupy_Start_Condition ()
{
if (PLAYER_MOBSI_PRODUCTION == MOBSI_COOKABIT)
&& (ZupyStart == FALSE)
{
return TRUE;
};
};
FUNC VOID PC_Zupy_Start_Info()
{
ZupyStart = TRUE;
};
//*******************************************************
INSTANCE PC_Zupy_Stop (C_Info)
{
npc = PC_Hero;
nr = 99;
condition = PC_Zupy_Stop_Condition;
information = PC_Zupy_Stop_Info;
permanent = TRUE;
description = DIALOG_BACK;
};
FUNC INT PC_Zupy_Stop_Condition ()
{
if (PLAYER_MOBSI_PRODUCTION == MOBSI_COOKABIT)
&& (ZupyStart == TRUE)
{
return TRUE;
};
};
FUNC VOID PC_Zupy_Stop_Info()
{
ZupyStart = FALSE;
};
//*******************************************************
INSTANCE PC_Zupy_Rybna (C_Info)
{
npc = PC_Hero;
nr = 1;
condition = PC_Zupy_Rybna_Condition;
information = PC_Zupy_Rybna_Info;
permanent = TRUE;
description = "Ugotuj zupę rybną";
};
FUNC INT PC_Zupy_Rybna_Condition ()
{
if (PLAYER_MOBSI_PRODUCTION == MOBSI_COOKABIT)
&& (ZupyStart == TRUE)
{
return TRUE;
};
};
FUNC VOID PC_Zupy_Rybna_Info()
{
if (Npc_HasItems (self, ItFo_water) >= 2)
&& (Npc_HasItems (self, ItFo_Fish) >= 3)
{
Npc_RemoveInvItems (self, ItFo_Water,2);
Npc_RemoveInvItems (self, ItFo_Fish,3);
Print ("Ugotowałeś 4 talerze zupy rybnej!");
CreateInvItems (self, ItFo_FishSoup,4);
}
else
{
Print (PRINT_ProdItemsMissing);
};
B_ENDPRODUCTIONDIALOG ();
};
EDIT: A tak się zastanawiam czy dałoby radę zmienić voba z którym otrzymujemy smażone mięso mogła by pomóc?