Wallerstein
Я чет не пойму вот этих двух строк:
EquipItem(self,ItMw_2H_Axe_L_01);
Первая понятно, для экипировки предмета.
B_UseItem(self,ItMw_2H_Axe_L_01);
А вот эта используется только, если для итема установлена scemeName ="ХХХХ"; НО, при этом экипировать предмет НЕ нужно.
У стандартной кирки никакой scemeName по умолчанию не установлено.
Попробуй сделать как это реализовано в моде "Жизнь пирата"
Сделать особую кирку и прописать в ней scemeName = "TREASURE";
INSTANCE ItMi_Spitzhacke (C_Item)
{
name = "Кирка";
mainflag = ITEM_KAT_NONE;
flags = ITEM_MULTI;
material = MAT_METAL;
value = Value_Spitzhacke;
scemeName = "TREASURE";
visual = "ItMw_020_2h_Pickaxe_01.3DS";
description = name;
TEXT[5] = NAME_Value;
COUNT[5] = value;
};
Затем в функции состояния вызывать ее в теле цикла через B_UseItem(self,ItMi_Spitzhacke); БЕЗ экипировки.
func void ZS_Rtn_TREASURE()
{
Perception_Set_Normal();
B_ResetAll(self);
AI_SetWalkMode(self,NPC_WALK);
AI_GotoWP(self,self.wp);
AI_AlignToWP(self);
AI_SetWalkMode(self,NPC_WALK);
if(Hlp_StrCmp(Npc_GetNearestWP(self),self.wp) == FALSE)
{
AI_GotoWP(self,self.wp);
};
func int ZS_Rtn_TREASURE_Loop()
{
if(Npc_HasItems(self,ItMi_Spitzhacke) == 0)
{
CreateInvItem(self,ItMi_Spitzhacke);
};
B_UseItem(self,ItMi_Spitzhacke);
};
return LOOP_CONTINUE;
};
func void ZS_Rtn_TREASURE_End()
{
};