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() 
{ 
};