mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-16 13:23:46 +03:00
113 lines
5.7 KiB
Lua
113 lines
5.7 KiB
Lua
--[[
|
|
| This file was obtained through the combined efforts
|
|
| of Madbluntz & Plymouth Antiquarian Society.
|
|
|
|
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
|
| Maloy, DrPepper10 @ RIP, Atle!
|
|
|
|
|
| Visit for more: https://plymouth.thetwilightzone.ru/
|
|
--]]
|
|
|
|
/*--------------------------------------------------
|
|
=============== Autorun File ===============
|
|
*** Copyright (c) 2012-2021 by Mayhem, All rights reserved. ***
|
|
No parts of this code or any of its contents may be reproduced, copied, modified or adapted,
|
|
without the prior written consent of the author, unless otherwise indicated for stand-alone materials.
|
|
--------------------------------------------------*/
|
|
------------------ Addon Information ------------------
|
|
local PublicAddonName = "Half-Life: Alyx - Antlion"
|
|
local AddonName = "Half-Life: Alyx - Antlion"
|
|
local AddonType = "SNPC"
|
|
local AutorunFile = "autorun/hla_antlion_autorun.lua"
|
|
-------------------------------------------------------
|
|
local VJExists = file.Exists("lua/autorun/vj_base_autorun.lua","GAME")
|
|
---------------------------------------------------------------------------------------------------------------------------
|
|
sound.AddSoundOverrides("lua/sound/hla_antlions.lua")
|
|
---------------------------------------------------------------------------------------------------------------------------
|
|
if VJExists == true then
|
|
include('autorun/vj_controls.lua')
|
|
|
|
local vCat = "Half-Life: Alyx"
|
|
VJ.AddNPC("Antlion","npc_vj_hla_antlion",vCat)
|
|
VJ.AddNPC("Antlion Spitter","npc_vj_hla_antlion_spitter",vCat)
|
|
--VJ.AddNPC("Antlion AI Director","sent_vj_antlion_director",vCat,true) -- Currently broken
|
|
|
|
-- Menu --
|
|
VJ.AddConVar("vj_antlion_director_enabled",1)
|
|
VJ.AddConVar("vj_antlion_director_max",80)
|
|
VJ.AddConVar("vj_antlion_director_hordecount",35)
|
|
VJ.AddConVar("vj_antlion_director_spawnmax",300)
|
|
VJ.AddConVar("vj_antlion_director_spawnmin",100)
|
|
VJ.AddConVar("vj_antlion_director_hordechance",100)
|
|
VJ.AddConVar("vj_antlion_director_hordecooldownmin",120)
|
|
VJ.AddConVar("vj_antlion_director_hordecooldownmax",180)
|
|
VJ.AddConVar("vj_antlion_director_delaymin",0.85)
|
|
VJ.AddConVar("vj_antlion_director_delaymax",3)
|
|
|
|
if CLIENT then
|
|
hook.Add("PopulateToolMenu", "VJ_ADDTOMENU_HLA", function()
|
|
spawnmenu.AddToolMenuOption("DrVrej", "SNPC Configures", "Half-Life: Alyx - Antlion Director", "Half-Life: Alyx - Antlion Director", "", "", function(Panel)
|
|
if !game.SinglePlayer() then
|
|
if !LocalPlayer():IsAdmin() or !LocalPlayer():IsSuperAdmin() then
|
|
Panel:AddControl( "Label", {Text = "You are not an admin!"})
|
|
Panel:ControlHelp("Notice: Only admins can change rest of the settings.")
|
|
return
|
|
end
|
|
end
|
|
Panel:AddControl("Label", {Text = "Notice: Only admins can change this settings."})
|
|
Panel:AddControl("Checkbox", {Label = "Enable AI Director processing?", Command = "vj_antlion_director_enabled"})
|
|
Panel:AddControl("Slider", { Label = "Max Antlions", Command = "vj_antlion_director_max", Type = "Float", Min = "5", Max = "400"})
|
|
Panel:AddControl("Slider", { Label = "Min Distance they can spawn from players", Command = "vj_antlion_director_spawnmin", Type = "Float", Min = "150", Max = "30000"})
|
|
Panel:AddControl("Slider", { Label = "Max Distance they can spawn from players", Command = "vj_antlion_director_spawnmax", Type = "Float", Min = "150", Max = "30000"})
|
|
Panel:AddControl("Slider", { Label = "Min time between spawns", Command = "vj_antlion_director_delaymin", Type = "Float", Min = "0.1", Max = "15"})
|
|
Panel:AddControl("Slider", { Label = "Max time between spawns", Command = "vj_antlion_director_delaymax", Type = "Float", Min = "0.2", Max = "15"})
|
|
Panel:AddControl("Slider", { Label = "Max Horde Antlions", Command = "vj_antlion_director_hordecount", Type = "Float", Min = "5", Max = "400"})
|
|
Panel:AddControl("Slider", { Label = "Chance that a horde will appear", Command = "vj_antlion_director_hordechance", Type = "Float", Min = "1", Max = "500"})
|
|
Panel:AddControl("Slider", { Label = "Min cooldown time for horde spawns", Command = "vj_antlion_director_hordecooldownmin", Type = "Float", Min = "1", Max = "800"})
|
|
Panel:AddControl("Slider", { Label = "Max cooldown time for horde spawns", Command = "vj_antlion_director_hordecooldownmax", Type = "Float", Min = "1", Max = "800"})
|
|
end, {})
|
|
end)
|
|
end
|
|
|
|
VJ_ANT_NODEPOS = {}
|
|
hook.Add("EntityRemoved","VJ_AddNodes_Antlion",function(ent)
|
|
if ent:GetClass() == "info_node" then
|
|
table.insert(VJ_ANT_NODEPOS,ent:GetPos())
|
|
end
|
|
end)
|
|
|
|
VJ.AddCategoryInfo(vCat,{Icon = "vj_icons/AntlionLogoHLA.png"})
|
|
-- !!!!!! DON'T TOUCH ANYTHING BELOW THIS !!!!!! -------------------------------------------------------------------------------------------------------------------------
|
|
AddCSLuaFile(AutorunFile)
|
|
VJ.AddAddonProperty(AddonName,AddonType)
|
|
else
|
|
if (CLIENT) then
|
|
chat.AddText(Color(0,200,200),PublicAddonName,
|
|
Color(0,255,0)," was unable to install, you are missing ",
|
|
Color(255,100,0),"VJ Base!")
|
|
end
|
|
timer.Simple(1,function()
|
|
if not VJF then
|
|
if (CLIENT) then
|
|
VJF = vgui.Create("DFrame")
|
|
VJF:SetTitle("VJ Base is not installed")
|
|
VJF:SetSize(900,800)
|
|
VJF:SetPos((ScrW()-VJF:GetWide())/2,(ScrH()-VJF:GetTall())/2)
|
|
VJF:MakePopup()
|
|
VJF.Paint = function()
|
|
draw.RoundedBox(8,0,0,VJF:GetWide(),VJF:GetTall(),Color(200,0,0,150))
|
|
end
|
|
local VJURL = vgui.Create("DHTML")
|
|
VJURL:SetParent(VJF)
|
|
VJURL:SetPos(VJF:GetWide()*0.005, VJF:GetTall()*0.03)
|
|
local x,y = VJF:GetSize()
|
|
VJURL:SetSize(x*0.99,y*0.96)
|
|
VJURL:SetAllowLua(true)
|
|
VJURL:OpenURL("https://sites.google.com/site/vrejgaming/vjbasemissing")
|
|
elseif (SERVER) then
|
|
timer.Create("VJBASEMissing",5,0,function() print("VJ Base is Missing! Download it from the workshop!") end)
|
|
end
|
|
end
|
|
end)
|
|
end
|