public Module(int id, string name, ModuleType moduleType, Level.Zone zone) { this.id = id; this.name = name; this.moduleType = moduleType; this.zone = zone; }
public Module() { id = 0; name = ""; moduleType = ModuleType.Clear; zone = Level.Zone.None; }
internal static void ZoneAll(Level lvl, string owner) { Level.Zone zn = default(Level.Zone); zn.bigX = (ushort)(lvl.Width - 1); zn.bigY = (ushort)(lvl.Height - 1); zn.bigZ = (ushort)(lvl.Length - 1); zn.Owner = owner; lvl.ZoneList.Add(zn); LevelDB.CreateZone(lvl.name, zn); }
protected internal override void OnBuyCommand(Player p, string message, string[] args) { if (args.Length < 3) { OnStoreCommand(p); return; } LevelPreset preset = FindPreset(args[1]); if (preset == null) { Player.Message(p, "%cThat isn't a level preset"); return; } if (p.money < preset.price) { Player.Message(p, "%cYou don't have enough %3" + Server.moneys + "%c to buy that map"); return; } string name = p.name + "_" + args[2]; try { Command.all.Find("newlvl").Use(null, name + " " + preset.x + " " + preset.y + " " + preset.z + " " + preset.type); Player.Message(p, "%aCreating level: '%f" + name + "%a' . . ."); CmdLoad.LoadLevel(null, name); Level level = LevelInfo.FindExact(name); if (level.permissionbuild > p.Rank) { level.permissionbuild = p.Rank; } if (level.permissionvisit > p.Rank) { level.permissionvisit = p.Rank; } PlayerActions.ChangeMap(p, name); Player.Message(p, "%aSuccessfully created your map: '%f" + name + "%a'"); try { Level.Zone zn = default(Level.Zone); zn.bigX = (ushort)(level.Width - 1); zn.bigY = (ushort)(level.Height - 1); zn.bigZ = (ushort)(level.Length - 1); zn.Owner = p.name; level.ZoneList.Add(zn); LevelDB.CreateZone(level.name, zn); Player.Message(p, "%aZoning Succesful"); } catch { Player.Message(p, "%cZoning Failed"); } } catch { Player.Message(p, "%cSomething went wrong, Money untouched"); return; } Economy.MakePurchase(p, preset.price, "%3Map: %f" + preset.name); }
bool DeleteZone(Player p, Vec3S32[] marks, object state, byte type, byte extType) { Level lvl = p.level; bool foundDel = false; Vec3S32 P = marks[0]; for (int i = 0; i < lvl.ZoneList.Count; i++) { Level.Zone zn = lvl.ZoneList[i]; if (P.X < zn.smallX || P.X > zn.bigX || P.Y < zn.smallY || P.Y > zn.bigY || P.Z < zn.smallZ || P.Z > zn.bigZ) { continue; } if (zn.Owner.Length >= 3 && zn.Owner.StartsWith("grp")) { string grpName = zn.Owner.Substring(3); if (p.Rank < Group.Find(grpName).Permission) { continue; } } else if (zn.Owner != "" && !zn.Owner.CaselessEq(p.name)) { Group group = Group.findPlayerGroup(zn.Owner); if (p.Rank < group.Permission) { continue; } } LevelDB.DeleteZone(lvl.name, zn); lvl.ZoneList.RemoveAt(i); i--; Player.Message(p, "Zone deleted for &b" + zn.Owner); foundDel = true; } if (!foundDel) { Player.Message(p, "No zones found to delete."); } return(false); }
internal static void DeleteWhere(Player p, Predicate <Level.Zone> filter) { int count = p.level.ZoneList.Count, removed = 0; for (int i = count - 1; i >= 0; i--) { Level.Zone zone = p.level.ZoneList[i]; if (!filter(zone)) { continue; } LevelDB.DeleteZone(p.level.name, zone); removed++; Player.Message(p, "Zone deleted for &b" + zone.Owner); p.level.ZoneList.Remove(p.level.ZoneList[i]); } Player.Message(p, "Removed {0} zone{1}.", removed, count == 1 ? "s" : ""); }
public void ChangeLevel() { Level.Zone nextZone = levels[currentLevel].nextZone; if (nextZone == Level.Zone.None) { Debug.Log("Victoria"); } else { currentLevel++; if (currentLevel >= levels.Count) { currentLevel = 0; while (levels[currentLevel].zone != nextZone) { currentLevel = Random.Range(0, levels.Count); } } } endLevel = false; LoadLevel(); }
public override void Use(Player p, string message) { if (message == "") { message = "list"; } string[] parameters = message.Split(' '); if (parameters[0].ToLower() == "list") { if (parameters.Length > 1) { int pageNum, currentNum; try { pageNum = int.Parse(parameters[1]) * 10; currentNum = pageNum - 10; } catch { Help(p); return; } if (currentNum < 0) { Player.SendMessage(p, "Must be greater than 0"); return; } if (pageNum > p.level.ZoneList.Count) { pageNum = p.level.ZoneList.Count; } if (currentNum > p.level.ZoneList.Count) { Player.SendMessage(p, "No Zones beyond number " + (p.level.ZoneList.Count - 1)); return; } Player.SendMessage(p, "Zones (" + currentNum + " to " + (pageNum - 1) + "):"); for (int i = currentNum; i < pageNum; i++) { Level.Zone zone = p.level.ZoneList[i]; Player.SendMessage(p, "&c" + i + " &b(" + zone.smallX + "-" + zone.bigX + ", " + zone.smallY + "-" + zone.bigY + ", " + zone.smallZ + "-" + zone.bigZ + ") &f" + zone.Owner); } } else { for (int i = 0; i < p.level.ZoneList.Count; i++) { Level.Zone zone = p.level.ZoneList[i]; Player.SendMessage(p, "&c" + i + " &b(" + zone.smallX + "-" + zone.bigX + ", " + zone.smallY + "-" + zone.bigY + ", " + zone.smallZ + "-" + zone.bigZ + ") &f" + zone.Owner); } Player.SendMessage(p, "For a more structured list, use /tpzone list <1/2/3/..>"); } } else { int zoneID; try { zoneID = int.Parse(message); } catch { Help(p); return; } if (zoneID < 0 || zoneID > p.level.ZoneList.Count) { Player.SendMessage(p, "This zone doesn't exist"); return; } Level.Zone zone = p.level.ZoneList[zoneID]; unchecked { p.SendPos((byte)-1, (ushort)(zone.bigX * 32 + 16), (ushort)(zone.bigY * 32 + 32), (ushort)(zone.bigZ * 32 + 16), p.rot[0], p.rot[1]); } Player.SendMessage(p, "Teleported to zone &c" + zoneID + " &b(" + zone.bigX + ", " + zone.bigY + ", " + zone.bigZ + ") &f" + zone.Owner); } }
public override void Use(Player p, string message) { CatchPos cpos; if (message == "") { p.ZoneCheck = true; Player.SendMessage(p, "Place a block where you would like to check for zones."); return; } else if (p.group.Permission < LevelPermission.Operator) { Player.SendMessage(p, "Reserved for OP+"); return; } if (message.IndexOf(' ') == -1) { switch (message.ToLower()) { case "del": p.zoneDel = true; Player.SendMessage(p, "Place a block where you would like to delete a zone."); return; default: Help(p); return; } } if (message.ToLower() == "del all") { if (p.group.Permission < LevelPermission.Admin) { Player.SendMessage(p, "Only a SuperOP may delete all zones at once"); return; } else { for (int i = 0; i < p.level.ZoneList.Count; i++) { Level.Zone Zn = p.level.ZoneList[i]; MySQL.executeQuery("DELETE FROM `Zone" + p.level.name + "` WHERE Owner='" + Zn.Owner + "' AND SmallX='" + Zn.smallX + "' AND SMALLY='" + Zn.smallY + "' AND SMALLZ='" + Zn.smallZ + "' AND BIGX='" + Zn.bigX + "' AND BIGY='" + Zn.bigY + "' AND BIGZ='" + Zn.bigZ + "'"); Player.SendMessage(p, "Zone deleted for &b" + Zn.Owner); p.level.ZoneList.Remove(p.level.ZoneList[i]); if (i == p.level.ZoneList.Count) { Player.SendMessage(p, "Finished removing all zones"); return; } i--; } } } if (p.group.Permission < LevelPermission.Operator) { Player.SendMessage(p, "Setting zones is reserved for OP+"); return; } if (Group.Find(message.Split(' ')[1]) != null) { message = message.Split(' ')[0] + " grp" + Group.Find(message.Split(' ')[1]).name; } if (message.Split(' ')[0].ToLower() == "add") { Player foundPlayer = Player.Find(message.Split(' ')[1]); if (foundPlayer == null) { cpos.Owner = message.Split(' ')[1].ToString(); } else { cpos.Owner = foundPlayer.name; } } else { Help(p); return; } if (!Player.ValidName(cpos.Owner)) { Player.SendMessage(p, "INVALID NAME."); return; } cpos.x = 0; cpos.y = 0; cpos.z = 0; p.blockchangeObject = cpos; Player.SendMessage(p, "Place two blocks to determine the edges."); Player.SendMessage(p, "Zone for: &b" + cpos.Owner + "."); p.ClearBlockchange(); p.Blockchange += new Player.BlockchangeEventHandler(Blockchange1); }
public override void Use(Player p, string message) { CatchPos cpos; if (message == "") { p.ZoneCheck = true; Player.SendMessage(p, "Place a block where you would like to check for zones."); return; } else if ((int)p.group.Permission < CommandOtherPerms.GetPerm(this, 1)) { Player.SendMessage(p, "Reserved for " + Group.findPermInt(CommandOtherPerms.GetPerm(this, 1)).name + "+"); return; } if (message.IndexOf(' ') == -1) { if (p.canBuild == true) //Checks if player can build there { switch (message.ToLower()) //If true - they can delete the zone { case "del": p.zoneDel = true; Player.SendMessage(p, "Place a block where you would like to delete a zone."); return; default: Help(p); return; } } else //if they cant, it warns them, the ops and logs it on the server! { Player.SendMessage(p, "You can't delete a zone which is above your rank!"); Player.GlobalMessageOps(p.name + " tried to delete a zone that is above their rank!"); Server.s.Log(p.name + " tried to delete a zone that is above their rank!"); return; } } if (message.ToLower() == "del all") { if ((int)p.group.Permission < CommandOtherPerms.GetPerm(this, 2)) { Player.SendMessage(p, "Only a " + Group.findPermInt(CommandOtherPerms.GetPerm(this, 2)).name + "+ may delete all zones at once"); return; } else { for (int i = 0; i < p.level.ZoneList.Count; i++) { Level.Zone Zn = p.level.ZoneList[i]; Database.AddParams("@Owner", Zn.Owner); Database.executeQuery("DELETE FROM `Zone" + p.level.name + "` WHERE Owner=@Owner AND SmallX='" + Zn.smallX + "' AND SMALLY='" + Zn.smallY + "' AND SMALLZ='" + Zn.smallZ + "' AND BIGX='" + Zn.bigX + "' AND BIGY='" + Zn.bigY + "' AND BIGZ='" + Zn.bigZ + "'"); Player.SendMessage(p, "Zone deleted for &b" + Zn.Owner); p.level.ZoneList.Remove(p.level.ZoneList[i]); if (i == p.level.ZoneList.Count) { Player.SendMessage(p, "Finished removing all zones"); return; } i--; } } } if ((int)p.group.Permission < CommandOtherPerms.GetPerm(this, 3)) { Player.SendMessage(p, "Setting zones is reserved for " + Group.findPermInt(CommandOtherPerms.GetPerm(this, 3)).name); return; } if (Group.Find(message.Split(' ')[1]) != null) { message = message.Split(' ')[0] + " grp" + Group.Find(message.Split(' ')[1]).name; } if (message.Split(' ')[0].ToLower() == "add") { Player foundPlayer = Player.Find(message.Split(' ')[1]); if (foundPlayer == null) { cpos.Owner = message.Split(' ')[1].ToString(); } else { cpos.Owner = foundPlayer.name; } } else { Help(p); return; } if (!Player.ValidName(cpos.Owner)) { Player.SendMessage(p, "INVALID NAME."); return; } cpos.x = 0; cpos.y = 0; cpos.z = 0; p.blockchangeObject = cpos; Player.SendMessage(p, "Place two blocks to determine the edges."); Player.SendMessage(p, "Zone for: &b" + cpos.Owner + "."); p.ClearBlockchange(); p.Blockchange += new Player.BlockchangeEventHandler(Blockchange1); }