Esempio n. 1
0
		public static void BeginDesktopTarget(PlayerMobile pm)
		{
			if (pm != null && !pm.Deleted && pm.IsOnline())
			{
				pm.Target = new MobileSelectTarget<PlayerMobile>((m, t) => DisplayDesktop(pm, t), m => { });
			}
		}
Esempio n. 2
0
		private static void SpotCheck(PlayerMobile user)
		{
			if (user == null || user.Deleted || !user.IsOnline() || !user.Alive || CMOptions.Status != DataStoreStatus.Idle ||
				CMOptions.CurrencyType == null || CMOptions.ExchangeRate <= 0)
			{
				return;
			}

			DonationProfile profile = Find(user.Account);

			if (profile == null)
			{
				return;
			}

			if (profile.Any(trans => !trans.Hidden && trans.State == DonationTransactionState.Processed))
			{
				SuperGump.Send(
					new ConfirmDialogGump(
						user,
						null,
						title: "You Have Rewards!",
						html: "You have unclaimed donation rewards!\nWould you like to view them now?",
						onAccept: b => CheckDonate(user)));
			}
		}
Esempio n. 3
0
		public static void DisplayDesktop(PlayerMobile viewer, PlayerMobile viewed)
		{
			if (viewer == null || viewed == null)
			{
				return;
			}

			if (viewer == viewed)
			{
				viewer.SendMessage(0x22, "You can't view your own desktop!");
				return;
			}

			if (!viewed.IsOnline())
			{
				viewer.SendMessage(0x22, "You can't view desktop of an off-line player!");
				return;
			}

			if (!_RestoreStates.ContainsKey(viewer))
			{
				_RestoreStates.Add(viewer, new List<SuperGump>());
			}
			else if (_RestoreStates[viewer] == null)
			{
				_RestoreStates[viewer] = new List<SuperGump>();
			}
			else
			{
				return;
			}

			_RestoreStates[viewer].AddRange(
				EnumerateInstances<SuperGump>(viewer, true)
					.Where(g => g != null && !g.IsDisposed && g.IsOpen && !g.Hidden && !(g is DesktopGump) && g.Hide(true) == g));

			Send(new DesktopGump(viewer, viewed));
		}
Esempio n. 4
0
		public static bool CanView(PlayerMobile target)
		{
			return target != null && !target.Deleted // Sanity
				   && !IsCamera(target) // No Cams
				   && target.Map != null && target.Map != Map.Internal // No Invalid Maps
				   && target.IsOnline() // Online Only
				   && target.InCombat(TimeSpan.FromSeconds(60.0)) // Combat Heat Only
				   && (DateTime.UtcNow - target.LastMoveTime).TotalSeconds < 60.0 // Has Moved
				   && !target.InRegion<HouseRegion>() && !target.InRegion<Jail>() // No Houses or Jail
				   && !RegionBlackList.Any(target.InRegion); // No Blacklisted Regions (By Name)
		}