4ªUbnutscripts/vscriptsdirector_base_addonG—õâÿ´jÿÿtxt addoninfo†iæÿ´ÿÿ"AddonInfo" { addonSteamAppID 550 addontitle "Grenade Launcher Staggers Everything V2" addonVersion "1.0" addonAuthor "Geebanger0" addonDescription "" } glstaggergeeb <- { survivor = 10 special_infected = 100 witch = 200 tank = 500 function CfgFileCheck(filename) { local files = FileToString(filename); if(!files) { return false; } return true; } function GenerateGLCustomiserFile() { local DefaultToggleFile = ""; local CfgToggleFile = [ "//Set the number to however much damage each entity type needs to take in order to be staggered", "survivor 10", "special_infected 100", "witch 200", "tank 500", ] foreach (line in CfgToggleFile) { DefaultToggleFile = DefaultToggleFile + line + "\n"; } if(!CfgFileCheck("gl_stagger/config.txt")) { StringToFile("gl_stagger/config.txt", DefaultToggleFile); printl("No config file found, generating new file"); } } function OnGameEvent_round_start_post_nav(event) { GenerateGLCustomiserFile(); LoadSpecificConfigFile("gl_stagger/config.txt"); } function LoadSpecificConfigFile(filename) { local trigger = 0; local files = FileToString(filename); if(!files) { return trigger; } local toggles = split(files, "\r\n"); foreach(toggle in toggles) { if(toggle && toggle != "") { toggle = strip(toggle); local idx = toggle.find(" "); if (idx != null) { local togglecommand = toggle.slice(0, idx); local togglevalue = toggle.slice(idx + 1); if(togglecommand == "survivor") { DirectorScript.glstaggergeeb.survivor = togglevalue.tointeger(); } if(togglecommand == "special_infected") { DirectorScript.glstaggergeeb.special_infected = togglevalue.tointeger(); } if(togglecommand == "witch") { DirectorScript.glstaggergeeb.witch = togglevalue.tointeger(); } if(togglecommand == "tank") { DirectorScript.glstaggergeeb.tank = togglevalue.tointeger(); } } } } } function OnGameEvent_player_hurt(event) { if(("weapon" in event)) { local weapon = event.weapon; if(weapon == "grenade_launcher_projectile") { local player = GetPlayerFromUserID(event.attacker); local damage = (event.dmg_health) local victim = GetPlayerFromUserID(event.userid); if(!victim.IsValid()) { victim = EntIndexToHScript(event.attackerentid); } if(!victim.IsIncapacitated()) { if(victim.IsSurvivor()) { if(damage > DirectorScript.glstaggergeeb.survivor) { victim.Stagger(player.GetOrigin()) return; } return; } if(!victim.IsSurvivor()) { if(victim.GetZombieType() == 8) { if(damage > DirectorScript.glstaggergeeb.tank) { victim.Stagger(player.GetOrigin()) return; } return; } if(damage > DirectorScript.glstaggergeeb.special_infected) { victim.Stagger(player.GetOrigin()) return; } return; } } } } } function OnGameEvent_infected_hurt(event) { if(event.attacker) { local player = GetPlayerFromUserID(event.attacker); local infected = EntIndexToHScript(event.entityid); local cn = infected.GetClassname() local type = (event.type) if(type == 16777280) { local damage = (event.amount) if(infected.GetClassname() == "witch") { if(damage > DirectorScript.glstaggergeeb.witch) { infected.TakeDamage(1, 64, player) return; } return; } } return; } } } __CollectGameEventCallbacks(glstaggergeeb);