예제 #1
0
        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();
            }
        }
예제 #2
0
파일: Control.cs 프로젝트: Telm/RunUO_EME
        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();
            }
        }
예제 #3
0
		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();
			}
		}