public static void BeginDesktopTarget(PlayerMobile pm) { if (pm != null && !pm.Deleted && pm.IsOnline()) { pm.Target = new MobileSelectTarget<PlayerMobile>((m, t) => DisplayDesktop(pm, t), m => { }); } }
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))); } }
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)); }
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) }