Just set altImage variables in the image datablock to the image you want to switch to right right click, put disableDrop = 1 for images you dont want to drop then do a single package in server.cs like this (you might want to indent that code better)
package tbooguns
{
function Armor::onTrigger(%this, %player, %slot, %val)
{
if(%val && %slot == 4 && isObject(%image = %player.getMountedImage(0)))
if(isObject(%image.altImage))
%player.mountImage(%image.altImage, 0);
Parent::onTrigger(%this, %player, %slot, %val);
}
function servercmdDropTool(%client,%slot)
{
if(isObject(%player = %client.player) && isObject(%image = %player.getMountedImage(0)))
if(%image.disableDrop)
%player.unmountImage(0);
return Parent::servercmdDropTool(%client,%slot);
}
};
ActivatePackage(tbooguns);