public static bool RestrictionCheckNone(Character __instance, string restriction) { Character p = __instance; // Are we in a zone? if so select that zone. if (ZoneHandler.Zones.Count() == 0) { return(false); } ZoneHandler.Zone z = new ZoneHandler.Zone(); ZoneHandler.ZoneTypes zt = new ZoneHandler.ZoneTypes(); List <ZoneHandler.Zone> zlist = ZoneHandler.ListOccupiedZones(p.transform.position); if (zlist.Count == 0) { zt = ZoneHandler.FindZoneType("wilderness"); } else { z = ZoneHandler.TopZone(zlist); zt = ZoneHandler.FindZoneType(z.Type); } string key = ""; // Lets set our admin list and keys... key = zt.Configurations; if (key.ToLower().Contains(restriction)) { return(true); } else { return(false); } }
public static float RestrictionCheckFloatReturnCharacter(Character __instance, string restriction) { Character p = __instance; string CharacterSteamID = (ZNet.instance.GetPeer(__instance.GetZDOID().m_userID)).m_socket.GetHostName(); // Are we in a zone? if so select that zone. ZoneHandler.Zone z = new ZoneHandler.Zone(); ZoneHandler.ZoneTypes zt = new ZoneHandler.ZoneTypes(); List <ZoneHandler.Zone> zlist = ZoneHandler.ListOccupiedZones(p.transform.position); if (zlist.Count == 0) { zt = ZoneHandler.FindZoneType("wilderness"); } else { z = ZoneHandler.TopZone(zlist); zt = ZoneHandler.FindZoneType(z.Type); } string key = ""; string admins = ""; // Lets set our admins and keys.. admins = zt.Admins; key = zt.Configurations; // Lets see if the user is actually an admin in the zone first.. if (admins.Contains(CharacterSteamID)) { // Ok they are an admin. Therefore, do not initialize the change... return(1); } if (key.ToLower().Contains(restriction)) { string s = key.ToLower(); string restrictioncheck = restriction + "("; int indexStart = s.IndexOf(restrictioncheck) + restrictioncheck.Length; string test = ""; for (int i = indexStart; i < indexStart + 20; i++) { if (s[i] == ')') { break; } test += s[i]; } float multiplier = 1; multiplier = Convert.ToSingle(test, new CultureInfo("en-US")); return(multiplier); } else { return(1); } }
public static bool RestrictionCheckCharacter(Character __instance, string restriction) { Character p = __instance; string CharacterSteamID = (ZNet.instance.GetPeer(__instance.GetZDOID().m_userID)).m_socket.GetHostName(); // Are we in a zone? if so select that zone. if (ZoneHandler.Zones.Count() == 0) { return(false); } ZoneHandler.Zone z = new ZoneHandler.Zone(); ZoneHandler.ZoneTypes zt = new ZoneHandler.ZoneTypes(); List <ZoneHandler.Zone> zlist = ZoneHandler.ListOccupiedZones(p.transform.position); if (zlist.Count == 0) { zt = ZoneHandler.FindZoneType("wilderness"); } else { z = ZoneHandler.TopZone(zlist); zt = ZoneHandler.FindZoneType(z.Type); } string key = ""; string admins = ""; // Lets set our admin list and keys... admins = zt.Admins; key = zt.Configurations; // Lets check and see if the user is actually an admin in the zone. if (admins.Contains(CharacterSteamID)) { return(false); } if (key.ToLower().Contains(restriction)) { return(true); } else { return(false); } }
public static bool RestrictionCheck(string restriction) { Player p = Player.m_localPlayer; // Are we in a zone? if so select that zone. if (ZoneHandler.Zones.Count() == 0) { return(false); } ZoneHandler.Zone z = new ZoneHandler.Zone(); ZoneHandler.ZoneTypes zt = new ZoneHandler.ZoneTypes(); List <ZoneHandler.Zone> zlist = ZoneHandler.ListOccupiedZones(p.transform.position); if (zlist.Count == 0) { zt = ZoneHandler.FindZoneType("wilderness"); } else { z = ZoneHandler.TopZone(zlist); zt = ZoneHandler.FindZoneType(z.Type); } string key = ""; string admins = ""; // Lets set our admin list and keys... admins = zt.Admins; key = zt.Configurations; // Lets check and see if the user is actually an admin in the zone. if (admins.Contains(WorldofValheimZones.MySteamID)) { return(false); } if (key.ToLower().Contains(restriction)) { return(true); } else { return(false); } }
/// <summary> /// FixedUpdate<> Patch /// Includes the following: /// PushAway (Do not enter zone) /// PeriodicDamage /// PeriodicHeal /// Last Updated: 4/24/2021 /// Status: 100% Working /// </summary> public static void FixedUpdatez() { if (WorldofValheimZones.EffectTick > 0) { WorldofValheimZones.EffectTick--; } if (WorldofValheimZones.HealTick > 0) { WorldofValheimZones.HealTick--; } if (WorldofValheimZones.DamageTick > 0) { WorldofValheimZones.DamageTick--; } Player p = Player.m_localPlayer; if (p != null) { // Are we in a zone? if so select that zone. ZoneHandler.Zone z = new ZoneHandler.Zone(); ZoneHandler.ZoneTypes zt = new ZoneHandler.ZoneTypes(); List <ZoneHandler.Zone> zlist = ZoneHandler.ListOccupiedZones(p.transform.position); if (zlist.Count == 0) { zt = ZoneHandler.FindZoneType("wilderness"); } else { z = ZoneHandler.TopZone(zlist); zt = ZoneHandler.FindZoneType(z.Type); } // Lets set our strings... string admins = zt.Admins; string key = zt.Configurations; // Lets see if the user is considered a Zone Admin! if (admins.Contains(WorldofValheimZones.MySteamID)) { return; } // Keep player out of an area. if (key.ToLower().Contains("pushaway")) { Vector3 zposition = new Vector3(z.Position.x, p.transform.position.y, z.Position.y); Vector3 newVector3 = p.transform.position + (p.transform.position - zposition).normalized * 0.15f; p.transform.position = new Vector3(newVector3.x, p.transform.position.y, newVector3.z); } // Deal damage to the player while they are in the area. if (key.ToLower().Contains("periodicdamage") && WorldofValheimZones.DamageTick <= 0) { WorldofValheimZones.DamageTick = 100; string s = key.ToLower(); int indexStart = s.IndexOf("periodicdamage(") + "periodicdamage(".Length; string test = ""; for (int i = indexStart; i < indexStart + 30; i++) { if (s[i] == ')') { break; } test += s[i]; } int damage = 0; HitData hit = new HitData(); string[] array = test.Split(','); if (array.Count() == 2) { int.TryParse(array[1], out damage); if (array[0].ToLower() == "fire") { hit.m_damage.m_fire = (float)damage; } else if (array[0].ToLower() == "frost") { hit.m_damage.m_frost = (float)damage; } else if (array[0].ToLower() == "poison") { hit.m_damage.m_poison = (float)damage; } else if (array[0].ToLower() == "lightning") { hit.m_damage.m_lightning = (float)damage; } else if (array[0].ToLower() == "pierce") { hit.m_damage.m_pierce = (float)damage; } else if (array[0].ToLower() == "blunt") { hit.m_damage.m_blunt = (float)damage; } else if (array[0].ToLower() == "slash") { hit.m_damage.m_slash = (float)damage; } else if (array[0].ToLower() == "damage") { hit.m_damage.m_damage = (float)damage; } else { hit.m_damage.m_fire = (float)damage; } } else { int.TryParse(test, out damage); hit.m_damage.m_fire = (float)damage; } p.Damage(hit); } // Heal the player while they are in the area if (key.ToLower().Contains("periodicheal") && WorldofValheimZones.HealTick <= 0) { WorldofValheimZones.HealTick = 50; string s = key.ToLower(); int indexStart = s.IndexOf("periodicheal(") + "periodicheal(".Length; string test = ""; for (int i = indexStart; i < indexStart + 20; i++) { if (s[i] == ')') { break; } test += s[i]; } int damage = 0; int.TryParse(test, out damage); p.Heal(damage, true); } } }