your code is illogical, mouseover is in wrobot API you don't need to write in memory manually, why do "o.Name == o.Name" ? Why blacklist corpse in blacklist for hostile unit? (and search corpse without check if corpse is in this blacklist).
It's nice to help, but this type of code can mislead users.
Code (not tested) with target should look like:
var revive = new Spell("Revive", false);
if (Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && !ObjectManager.Me.IsCast && revive.KnownSpell && revive.IsSpellUsable)
{
var corpse = ObjectManager.GetObjectWoWCorpse().Where(c => !wManager.wManagerSetting.IsBlackListed(c.Guid)).FirstOrDefault();
if (corpse != null && corpse.IsValid)
{
Interact.ClearTarget(); // or Interact.InteractGameObject(corpse.GetBaseAddress);
revive.Launch();
Interact.InteractGameObject(corpse.GetBaseAddress);
wManager.wManagerSetting.AddBlackList(corpse.Guid, 1000 * 60 * 10);
}
}
with focus should look like:
var revive = new Spell("Revive", false);
if (Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && !ObjectManager.Me.IsCast && revive.KnownSpell && revive.IsSpellUsable)
{
var corpse = ObjectManager.GetObjectWoWCorpse().Where(c => !wManager.wManagerSetting.IsBlackListed(c.Guid)).FirstOrDefault();
if (corpse != null && corpse.IsValid)
{
var old = ObjectManager.Me.FocusGuid;
ObjectManager.Me.FocusGuid = corpse.Guid;
revive.Launch(true, true, false, "focus");
ObjectManager.Me.FocusGuid = old;
wManager.wManagerSetting.AddBlackList(corpse.Guid, 1000 * 60 * 10);
}
}