public override void OnDoubleClick(Mobile from) { if (!IsChildOf(from.Backpack)) { from.SendLocalizedMessage(1042001); } else { GoGump.DisplayTo(from); } }
public override void OnDoubleClick(Mobile from) { if (!Safe) { from.SendMessage("Aguarde o acampamento ficar seguro"); return; } if (from.Skills[SkillName.Camping].Value < 50) { from.SendMessage("Voce precisa de pelo menos 50 camping para usar um acampamento"); return; } var timenow = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond; if (from is PlayerMobile && ((PlayerMobile)from).GetMillisSinceLastDamage() < 1000 * 10) // 10 segundos { from.SendMessage("Voce recebeu dano a pouco tempo e nao pode fazer isto"); return; } if (from.Warmode) { from.SendMessage("Voce esta em combate"); return; } if (from.Mounted) { from.Animate(AnimationType.Attack, 2); } else { from.Animate(AnimationType.Spell, 1); } GoGump.DisplayToCampfire(from); from.SendMessage("Para liberar locais, faca um acampamento na cidade ou na porta da masmorra, ou em lugares especificos."); }
private static void Go_OnCommand(CommandEventArgs e) { Mobile from = e.Mobile; if (e.Length == 0) { GoGump.DisplayTo(from); return; } if (e.Length == 1) { try { int ser = e.GetInt32(0); IEntity ent = World.FindEntity(ser); if (ent is Item) { Item item = (Item)ent; Map map = item.Map; Point3D loc = item.GetWorldLocation(); Mobile owner = item.RootParent as Mobile; if (owner != null && (owner.Map != null && owner.Map != Map.Internal) && !BaseCommand.IsAccessible(from, owner) /* !from.CanSee( owner )*/) { from.SendMessage("You can not go to what you can not see."); return; } else if (owner != null && (owner.Map == null || owner.Map == Map.Internal) && owner.Hidden && owner.AccessLevel >= from.AccessLevel) { from.SendMessage("You can not go to what you can not see."); return; } else if (!FixMap(ref map, ref loc, item)) { from.SendMessage("That is an internal item and you cannot go to it."); return; } from.MoveToWorld(loc, map); return; } else if (ent is Mobile) { Mobile m = (Mobile)ent; Map map = m.Map; Point3D loc = m.Location; Mobile owner = m; if (owner != null && (owner.Map != null && owner.Map != Map.Internal) && !BaseCommand.IsAccessible(from, owner) /* !from.CanSee( owner )*/) { from.SendMessage("You can not go to what you can not see."); return; } else if (owner != null && (owner.Map == null || owner.Map == Map.Internal) && owner.Hidden && owner.AccessLevel >= from.AccessLevel) { from.SendMessage("You can not go to what you can not see."); return; } else if (!FixMap(ref map, ref loc, m)) { from.SendMessage("That is an internal mobile and you cannot go to it."); return; } from.MoveToWorld(loc, map); return; } else { string name = e.GetString(0); Map map; for (int i = 0; i < Map.AllMaps.Count; ++i) { map = Map.AllMaps[i]; if (map.MapIndex == 0x7F || map.MapIndex == 0xFF) { continue; } if (Insensitive.Equals(name, map.Name)) { from.Map = map; return; } } Dictionary <string, Region> list = from.Map.Regions; foreach (KeyValuePair <string, Region> kvp in list) { Region r = kvp.Value; if (Insensitive.Equals(r.Name, name)) { from.Location = new Point3D(r.GoLocation); return; } } for (int i = 0; i < Map.AllMaps.Count; ++i) { Map m = Map.AllMaps[i]; if (m.MapIndex == 0x7F || m.MapIndex == 0xFF || from.Map == m) { continue; } foreach (Region r in m.Regions.Values) { if (Insensitive.Equals(r.Name, name)) { from.MoveToWorld(r.GoLocation, m); return; } } } if (ser != 0) { from.SendMessage("No object with that serial was found."); } else { from.SendMessage("No region with that name was found."); } return; } } catch { } from.SendMessage("Region name not found"); } else if (e.Length == 2 || e.Length == 3) { Map map = from.Map; if (map != null) { try { /* * This to avoid being teleported to (0,0) if trying to teleport * to a region with spaces in its name. */ int x = int.Parse(e.GetString(0)); int y = int.Parse(e.GetString(1)); int z = (e.Length == 3) ? int.Parse(e.GetString(2)) : map.GetAverageZ(x, y); from.Location = new Point3D(x, y, z); } catch { from.SendMessage("Region name not found."); } } } else if (e.Length == 6) { Map map = from.Map; if (map != null) { Point3D p = Sextant.ReverseLookup(map, e.GetInt32(3), e.GetInt32(0), e.GetInt32(4), e.GetInt32(1), Insensitive.Equals(e.GetString(5), "E"), Insensitive.Equals(e.GetString(2), "S")); if (p != Point3D.Zero) { from.Location = p; } else { from.SendMessage("Sextant reverse lookup failed."); } } } else { from.SendMessage("Format: Go [name | serial | (x y [z]) | (deg min (N | S) deg min (E | W)]"); } }
private void OnTick() { DateTime now = DateTime.UtcNow; TimeSpan age = now - this.Created; if (age >= TimeSpan.FromSeconds(100.0)) { this.Delete(); } else if (age >= TimeSpan.FromSeconds(90.0)) { this.Status = CampfireStatus.Off; } else if (age >= TimeSpan.FromSeconds(60.0)) { this.Status = CampfireStatus.Extinguishing; } if (this.Status == CampfireStatus.Off || this.Deleted) { return; } foreach (CampfireEntry entry in new ArrayList(this.m_Entries)) { if (!entry.Valid || entry.Player.NetState == null) { RemoveEntry(entry); } else if (!entry.Safe && now - entry.Start >= TimeSpan.FromSeconds(30.0)) { entry.Safe = true; this.Safe = true; entry.Player.SendMessage("O Acampamento esta seguro"); if (entry.Player.Skills[SkillName.Camping].Value > 50) { GoGump.GetDiscoveredLocation(entry.Player); } } } IPooledEnumerable eable = this.GetClientsInRange(SecureRange); foreach (NetState state in eable) { PlayerMobile pm = state.Mobile as PlayerMobile; if (regenera) { var timenow = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond; if (!pm.Warmode && pm.GetMillisSinceLastDamage() >= 1000 * 10) // 10 segundos { pm.FixedParticles(0x376A, 9, 32, 5005, EffectLayer.Waist); pm.Hits += 1; pm.Stam += 5; } } if (pm != null && GetEntry(pm) == null) { CampfireEntry entry = new CampfireEntry(pm, this); m_Table[pm] = entry; this.m_Entries.Add(entry); pm.SendMessage("Em alguns momentos seu acampamento ficara seguro"); } } eable.Free(); }