U mnie to tak wygląda i to jest skrypt który jest w sp. Zmieniałem tutaj animacje na inne i również działały.
INSTANCE itsh_Shield (C_Item)
{
name		= "Tarcza";
mainflag	= ITEM_KAT_NF;
flags		= ITEM_SHIELD;
material	= MAT_WOOD;
on_equip	= Equip_Shield;
on_unequip	= UnEquip_Shield;
value		= 100;
protection[PROT_EDGE] = 200;
protection[PROT_BLUNT] = 200;
protection[PROT_POINT] = 200;
protection[PROT_FIRE] = 200;
protection[PROT_MAGIC] = 200;
visual		= "shield.3ds";
description	= name;
//TEXT[0]= "";			//COUNT[0] = 0;
TEXT[1] = NAME_Prot_Edge;	COUNT[1] = protection [2];
TEXT[2] = NAME_Prot_Point;	COUNT[2] = protection [6];
TEXT[3] = NAME_Prot_Fire;	COUNT[3] = protection [3];
TEXT[4] = NAME_Prot_Magic;	COUNT[4] = protection [5];
TEXT[5] = NAME_Value;		COUNT[5] = value;
};
func void Equip_Shield()
{
	
	if(self.HitChance[NPC_TALENT_1H] >= 60)
	{
	 Mdl_ApplyOverlayMds(self,"SHIELD.MDS");
	 PrintScreen("Teks1",-1,YPOS_LevelUp,FONT_Screen,2);
	}
	
    else
	{
	  PrintScreen("Tekst2",-1,YPOS_LevelUp,FONT_Screen,2);
	  AI_UnequipWeapons(self);
	};
};
EDIT: Twój skrypt cholernie się rózni od tego z sp i po co ci "munition = ItMi_StoneOfKnowlegde_MIS;" w tarczy.