public void add(WorldObject worldObject) { lock (objects) { objects.Add(worldObject); } }
private void addObjectToList(ushort originalId, Location location) { WorldObject worldObject = new WorldObject(originalId, getSecondaryId(originalId), getFace(originalId, location), location, getRestore(originalId), getHealth(originalId)); worldObject.setType(getType(worldObject)); lock (objects) { objects.Add(worldObject); } }
private void changeObject(WorldObject worldObject) { if (worldObject != null) { worldObject.setSecondForm(true); foreach (Player p in Server.getPlayerList()) { if (p != null) { if (p.getLocation().withinDistance(worldObject.getLocation(), 60)) { if (!worldObject.isFire()) { p.getPackets().removeObject(worldObject.getLocation(), worldObject.getFace(), worldObject.getType()); p.getPackets().createObject(worldObject.getSecondaryId(), worldObject.getLocation(), worldObject.getFace(), worldObject.getType()); } else { p.getPackets().createObject(worldObject.getOriginalId(), worldObject.getLocation(), worldObject.getFace(), worldObject.getType()); } } } } int delay = worldObject.isFire() ? (60000 + Misc.random(90000)) : worldObject.getRestoreDelay(); Event restoreObjectEvent = new Event(delay); restoreObjectEvent.setAction(() => { restoreObject(worldObject); restoreObjectEvent.stop(); }); Server.registerEvent(restoreObjectEvent); } }
public void remove(WorldObject worldObject) { lock (objects) { objects.Remove(worldObject); } }
public void restoreObject(WorldObject worldObject) { if (worldObject != null) { foreach (Player p in Server.getPlayerList()) { if (p != null) { if (p.getLocation().withinDistance(worldObject.getLocation(), 60)) { if (!worldObject.isFire()) { p.getPackets().createObject(worldObject.getOriginalId(), worldObject.getLocation(), worldObject.getFace(), worldObject.getType()); } else { p.getPackets().removeObject(worldObject.getLocation(), worldObject.getFace(), worldObject.getType()); } } } } if (worldObject.isFire()) { GroundItem item = new GroundItem(592, 1, worldObject.getLocation(), worldObject.getOwner()); Server.getGroundItems().newWorldItem(item); } } lock (objects) { objects.Remove(worldObject); } }
public void newFire(Player p, ushort fireId, Location location) { WorldObject worldObject = new WorldObject(fireId, location, FIRE); lock (objects) { objects.Add(worldObject); } worldObject.setOwner(p); changeObject(worldObject); }
public void loadSpawnedObjects() { string line = ""; string token = ""; string token2 = ""; string token2_2 = ""; string[] token3 = new string[10]; if (!File.Exists(Misc.getServerPath() + @"\data\spawnedObjects.cfg")) { Misc.WriteError(@"Missing data\spawnedObjects.cfg"); return; } try { StreamReader sr = File.OpenText(Misc.getServerPath() + @"\data\spawnedObjects.cfg"); int amount = 0; while ((line = sr.ReadLine()) != null) { line = line.Trim(); int spot = line.IndexOf("="); if (spot > -1) { token = line.Substring(0, spot); token = token.Trim(); token2 = line.Substring(spot + 1); token2 = token2.Trim(); token2_2 = token2.Replace("\t\t", "\t"); token2_2 = token2.Replace("\t\t", "\t"); token2_2 = token2.Replace("\t\t", "\t"); token2_2 = token2.Replace("\t\t", "\t"); token2_2 = token2.Replace("\t\t", "\t"); token2_2 = token2.Replace("\t\t", "\t"); token2_2 = token2.Replace("\t\t", "\t"); token3 = token2_2.Split('\t'); if (token.Equals("object")) { amount++; ushort id = ushort.Parse(token3[0]); Location location = new Location(int.Parse(token3[1]), int.Parse(token3[2]), int.Parse(token3[3])); int face = int.Parse(token3[4]); int type = int.Parse(token3[5]); WorldObject worldObject = new WorldObject(id, location, face, type, true); // these 3 methods are to set variables for spawned rocks, trees etc. worldObject.setRestore(getRestore(id)); worldObject.setObjectHealth(getHealth(id)); worldObject.setSecondaryId(getSecondaryId(id)); objects.Add(worldObject); add(worldObject); // we KNOW this object is legit..since we spawned it. } } else { if (line.Equals("[ENDOFLIST]")) { Console.WriteLine("Loaded " + amount + " custom objects."); } } } } catch (Exception e) { Console.WriteLine("Error loading spawnedObjects.cfg msg=" + e.Message); Console.ReadLine(); } }
public void loadDeletedObjects() { string line = ""; string token = ""; string token2 = ""; string token2_2 = ""; string[] token3 = new string[10]; if (!File.Exists(Misc.getServerPath() + @"\data\deletedObjects.cfg")) { Misc.WriteError(@"Missing data\deletedObjects.cfg"); return; } try { StreamReader sr = File.OpenText(Misc.getServerPath() + @"\data\deletedObjects.cfg"); int amount = 0; while ((line = sr.ReadLine()) != null) { line = line.Trim(); int spot = line.IndexOf("="); if (spot > -1) { token = line.Substring(0, spot); token = token.Trim(); token2 = line.Substring(spot + 1); token2 = token2.Trim(); token2_2 = token2.Replace("\t\t", "\t"); token2_2 = token2.Replace("\t\t", "\t"); token2_2 = token2.Replace("\t\t", "\t"); token2_2 = token2.Replace("\t\t", "\t"); token2_2 = token2.Replace("\t\t", "\t"); token2_2 = token2.Replace("\t\t", "\t"); token2_2 = token2.Replace("\t\t", "\t"); token3 = token2_2.Split('\t'); if (token.Equals("object")) { amount++; Location loc = new Location(int.Parse(token3[0]), int.Parse(token3[1]), int.Parse(token3[2])); int face = int.Parse(token3[3]); int type = int.Parse(token3[4]); WorldObject deletedObject = new WorldObject(loc, face, type, true); objects.Add(deletedObject); } } else { if (line.Equals("[ENDOFLIST]")) { Console.WriteLine("Loaded " + amount + " deleted objects."); } } } } catch (Exception e) { Console.WriteLine("Error loading deletedObjects.cfg msg=" + e.Message); Console.ReadLine(); } }
private void loadObjects() { string line = ""; string token = ""; string token2 = ""; string token2_2 = ""; string[] token3 = new string[10]; if (!File.Exists(Misc.getServerPath() + @"\data\objectLocations.cfg")) { Misc.WriteError(@"Missing data\objectLocations.cfg"); return; } try { StreamReader sr = File.OpenText(Misc.getServerPath() + @"\data\objectLocations.cfg"); while ((line = sr.ReadLine()) != null) { line = line.Trim(); int spot = line.IndexOf("="); if (spot > -1) { token = line.Substring(0, spot); token = token.Trim(); token2 = line.Substring(spot + 1); token2 = token2.Trim(); token2_2 = token2.Replace("\t\t", "\t"); token2_2 = token2.Replace("\t\t", "\t"); token2_2 = token2.Replace("\t\t", "\t"); token2_2 = token2.Replace("\t\t", "\t"); token2_2 = token2.Replace("\t\t", "\t"); token2_2 = token2.Replace("\t\t", "\t"); token2_2 = token2.Replace("\t\t", "\t"); token3 = token2_2.Split('\t'); if (token.Equals("o")) { int x = int.Parse(token3[0]); int y = int.Parse(token3[1]); ushort id = ushort.Parse(token3[2]); int face = int.Parse(token3[3]); int type = 10; WorldObject worldObject = new WorldObject(id, new Location(x, y, 0), face, type); objects.Add(worldObject); } } else { if (line.Equals("[ENDOFLIST]")) { Console.WriteLine("Loaded " + objects.Count + " object definitions."); return; } } } } catch (Exception e) { Console.WriteLine("Error loading objectLocations.cfg msg=" + e.Message); Console.ReadLine(); } }
private int getType(WorldObject worldObject) { switch (worldObject.getOriginalId()) { case 733: // Wilderness web if (worldObject.getOriginalId() == 733) { Location web1Location = new Location(3092, 3957, 0); // Eastern mage bank web Location web2Location = new Location(3095, 3957, 0); // Western mage bank web if (worldObject.getLocation().Equals(web1Location) || worldObject.getLocation().Equals(web2Location)) { return 0; } } break; } return 10; }