public void SaveSettings() { Settings = new Settings(); Directory.CreateDirectory(@"scripts\SnipeMod"); using (var stream = new MemoryStream()) { using (var writer = XmlWriter.Create(stream)) { new XmlSerializer(Settings.GetType()).Serialize(writer, Settings); var xml = Encoding.UTF8.GetString(stream.ToArray()); File.WriteAllText(@"scripts\SnipeMod\settings.xml", xml); Log.Info(@"Saved settings to scripts\SnipeMod\settings.xml"); } } }
public SnipeMod() { try { LoadSettings(); } catch (Exception ex) { Log.Error("Something went wrong with reading the settings, using defaults."); Log.Write(LogLevel.Error, ex.ToString()); Settings = new Settings(); } PlayerConnected += entity => { entity.SpawnedPlayer += () => OnPlayerSpawn(entity); /*entity.OnInterval(2000, entity1 => { entity.Call("iprintlnbold", "Health: " + entity.Health.ToString() + " Maxhealth: " + entity.GetField<int>("maxhealth").ToString()); return true; });*/ Call("setdynamicdvar", "scr_player_maxhealth", Settings.PlayerMaxHealth); entity.SetField("maxhealth", Settings.PlayerMaxHealth); }; PlayerDisconnected += entity => PlayerStop.Add(entity.GetField<string>("name")); if (!Settings.DamageDirectionIndicator) Call("setdvar", "cg_drawdamagedirection", 0); if (!Settings.ShowEnemyNames) Call("setdvar", "cg_drawcrosshairnames", 0); if (!Settings.DrawCrosshair) Call("setdvar", "cg_drawcrosshair", 0); if (!Settings.EnableKillstreaks) Call("setdvar", "scr_game_hardpoints", 0); if (!Settings.EnableKillcam) Call("setdvar", "scr_game_allowkillcam", 0); if (Settings.AntiMelee) nf.DisableKnife(); Call(42, "lowAmmoWarningNoAmmoColor1", 0, 0, 0, 0); Call(42, "lowAmmoWarningNoAmmoColor2", 0, 0, 0, 0); Call(42, "lowAmmoWarningColor1", 0, 0, 0, 0); Call(42, "lowAmmoWarningColor2", 0, 0, 0, 0); Call(42, "lowAmmoWarningNoReloadColor1", 0, 0, 0, 0); Call(42, "lowAmmoWarningNoReloadColor1", 0, 0, 0, 0); Call(42, "perk_weapSpreadMultiplier", 0.45f); Call(42, "cg_drawbreathhint", 0); /*OnInterval(50, () => { Call("setdvar", "scr_player_maxhealth", (float)Settings.PlayerMaxHealth); Call("setdynamicdvar", "scr_player_maxhealth", new Parameter((float) Settings.PlayerMaxHealth)); Call("setdynamicdvar", "scr_player_maxhealth", (float)Settings.PlayerMaxHealth); return true; });*/ Tick += () => { foreach (var entity in Players) { entity.SetField("maxhealth", Settings.PlayerMaxHealth); if (entity.IsAlive) { entity.Call("stoplocalsound", "breathing_hurt"); } } }; }
public void LoadSettings() { if (!File.Exists(@"scripts\SnipeMod\settings.xml")) { SaveSettings(); return; } Settings = new Settings(); using (var stream = new FileStream(@"scripts\SnipeMod\settings.xml", FileMode.Open)) Settings = (Settings) (new XmlSerializer(Settings.GetType()).Deserialize(stream)); }