I think that if you want the dagger to be visible on the body, you will have to make a copy of the dagger thats in the body and set it unactive.Also make sure the dagger copy has static physics. Then use this in combination with the script:
void OnStart()
{
AddUseItemCallback("", "ceremony_knife_1", "corpse_male_1", "UsedDaggerOnBody", true);
}
UsedDaggerOnBody(string &in asItem, string &in asEntity)
{
SetEntityActive("ceremony_knife_2", true);
SetSwingDoorLocked("castle_1", false, true);
}
You can later add a sound like a blade-piercing-flesh kind of sound.