I'm not sure you can call that event from an item.
There is a long discussion about calling events in the ship rotation thread:
http://forums.kronosaur.com/viewtopic.php?f=25&t=7564
You can create a virtual ship or station to use to call events as one way to accomplish it.
Here is the gem of sacrifice code from usefulitems.xml that shane suggested trying:
<!-- Gem of Sacrificce -->
<ItemType UNID="&itGemOfSacrifice;"
name= "gem(s) of sacrifice"
level= "12"
value= "10000"
mass= "1"
frequency= "veryrare"
unknownType= "&itUnknownHaloGem;"
attributes= "HaloGem; MinorItem; CannotOrder"
description= "These gems are used by the Halo Races, though their exact purpose is unknown. The dark-energies embedded in the gem have an influence over spacetime that is not yet fully understood."
>
<Image imageID="&rsItems1;" imageX="0" imageY="576" imageWidth="96" imageHeight="96"/>
<Invoke key="F">
(block (sacrificeEffect)
; Function to lower shields and armor
(setq sacrificeEffect (lambda (theObj)
(block Nil
(objDepleteShields theObj)
(for i 0 (subtract (shpGetArmorCount theObj) 1)
(if (leq (itmGetLevel (shpGetArmor theObj i)) 12)
(block (theDamage)
(setq theDamage (divide (multiply (shpGetArmorMaxHitPoints theObj i) (random 96 99)) 100))
(shpDamageArmor theObj i 12 theDamage)
)
)
)
(objSetProperty theObj 'interiorHP (random 1 10))
(sysCreateEffect &efGemOfSacrifice; theObj (objGetPos theObj))
)
))
; All ships in range have their shields lowered
(objSendMessage gSource Nil "\"May your sacrifice prove true...\"")
(enum (sysFindObject gSource "sN:30;") theObj
(sacrificeEffect theObj)
)
; Invoker also gets effect
(sacrificeEffect gSource)
; Remove the item from the player's list
(objRemoveItem gSource gItem 1)
; Identify the item
(itmSetKnown gItem)
)
</Invoke>
</ItemType>