private static void ChangeControl(Mobile target, ControlItem controlItem, bool stats, bool skills, bool items) { Mobile from = controlItem.Owner; PlayerMobile oldPlayer = controlItem.Player; Mobile oldNPC = controlItem.NPC; if (oldNPC != null) { //NPC Wiederherstellen if (!oldNPC.Deleted) { //Props immer übernehmen bei der Rückverwandlung? //ja, weil sich hits etc ändern //Props from -> oldNPC new CloneTarget().SimulateTarget(oldNPC, from, true); } else { from.SendMessage("Votre corps d'origine a été détruit."); oldNPC.Delete(); } } //Neuen Mobile übernehmen oder Control abbrechen if (target != oldPlayer && target != null && !target.Deleted) //Neues Mobile übernehmen { from.SendMessage("You Control {0}, {1}", target.Name, target.Title); //"You Control {0}, {1}" //Update ControlItem controlItem.NPC = target; controlItem.Stats = stats; controlItem.Skills = skills; controlItem.Items = items; new CloneTarget().SimulateTarget(from, target, true); target.Internalize(); } else if (target == oldPlayer && !target.Deleted) { controlItem.Delete(); } }
private static void ChangeControl( Mobile target, ControlItem controlItem, bool stats, bool skills, bool items ) { Mobile from = controlItem.Owner; PlayerMobile oldPlayer = controlItem.Player; Mobile oldNPC = controlItem.NPC; if ( oldNPC != null ) { //NPC Wiederherstellen if ( !oldNPC.Deleted ) { //Props immer übernehmen bei der Rückverwandlung? //ja, weil sich hits etc ändern //Props from -> oldNPC CopyProps( oldNPC, from, stats, skills ); //nicht nur zurück holen //if ( oldNPC.Map == Map.Internal ) // oldNPC.MoveToWorld(from.Location, from.Map); //Equip: from -> oldNPC MoveEquip(from, oldNPC, items); } else { from.SendMessage("Ten NPC nie istnieje i niemozesz go wiecej kontrolowac, najpewniej ktos usunal jego respawn"); oldNPC.Delete(); } } //Neuen Mobile übernehmen oder Control abbrechen if ( target != oldPlayer && target != null && !target.Deleted ) //Neues Mobile übernehmen { from.SendMessage("Kontrolujesz {0}, {1}", target.Name, target.Title); //"You Control {0}, {1}" //Update ControlItem controlItem.NPC = target; controlItem.Stats = stats; controlItem.Skills = skills; controlItem.Items = items; //Props: target -> player CopyProps( from, target, stats, skills ); //Equip: target -> player MoveEquip(target, from, items); target.Internalize(); } else if ( target == oldPlayer && !target.Deleted ) { controlItem.Delete(); } }
private static void ChangeControl( Mobile target, ControlItem controlItem, bool stats, bool skills, bool items ) { Mobile from = controlItem.Owner; PlayerMobile oldPlayer = controlItem.Player; Mobile oldNPC = controlItem.NPC; if ( oldNPC != null ) { //NPC Wiederherstellen if ( !oldNPC.Deleted ) { //Props immer übernehmen bei der Rückverwandlung? //ja, weil sich hits etc ändern //Props from -> oldNPC CopyProps( oldNPC, from, stats, skills ); //nicht nur zurück holen //if ( oldNPC.Map == Map.Internal ) // oldNPC.MoveToWorld(from.Location, from.Map); //Equip: from -> oldNPC MoveEquip(from, oldNPC, items); } else { from.SendMessage("Der originale NPC wurde gelöscht und wird nicht wiederhergestellt. Grund könnte ein manueller Respawn gewesen sein"); oldNPC.Delete(); } } //Neuen Mobile übernehmen oder Control abbrechen if ( target != oldPlayer && target != null && !target.Deleted ) //Neues Mobile übernehmen { from.SendMessage("You Control {0}, {1}", target.Name, target.Title); //"You Control {0}, {1}" //Update ControlItem controlItem.NPC = target; controlItem.Stats = stats; controlItem.Skills = skills; controlItem.Items = items; //Props: target -> player CopyProps( from, target, stats, skills ); //Equip: target -> player MoveEquip(target, from, items); target.Internalize(); } else if ( target == oldPlayer && !target.Deleted ) { controlItem.Delete(); } }