From 32966fac0e6ab5ef8d3f65ec4c9fa7ba3d5ffce1 Mon Sep 17 00:00:00 2001 From: nomi-nonsz Date: Sat, 9 Aug 2025 19:13:16 +0700 Subject: [PATCH] for now --- lua/autorun/hostile_npcs_tocitizen.lua | 65 +++++++++++++++++++------- 1 file changed, 47 insertions(+), 18 deletions(-) diff --git a/lua/autorun/hostile_npcs_tocitizen.lua b/lua/autorun/hostile_npcs_tocitizen.lua index 49f01d3..8bb9d7e 100644 --- a/lua/autorun/hostile_npcs_tocitizen.lua +++ b/lua/autorun/hostile_npcs_tocitizen.lua @@ -5,28 +5,57 @@ local originalListSet = list.Set function list.Set(listType, class, npc) if listType == "NPC" then if npc["Class"] == "npc_combine_s" and npc["Category"] ~= "#spawnmenu.category.combine" then - npc["Class"] = citizenEnemy["Class"] - npc["KeyValues"] = { - Hostile = 1, - SquadName = "overwatch", - citizentype = 4 - } + if !npc["KeyValues"] then + npc["KeyValues"] = {} + end + npc["KeyValues"]["SquadName"] = "m_EnemyRebel" end end originalListSet(listType, class, npc) end --- Second stage. idk if one of these necessary -timer.Simple(0, function () - for class, npc in pairs(npcs) do - if npc["Class"] == "npc_combine_s" and npc["Category"] ~= "#spawnmenu.category.combine" then - npc["Class"] = citizenEnemy["Class"] - npc["KeyValues"] = { - Hostile = 1, - SquadName = "overwatch", - citizentype = 4 - } - originalListSet("NPC", class, npc) +hook.Add("OnEntityCreated", "ForceReplaceCombine", function(ent) + timer.Simple(0, function() + if !SERVER then return end + if not IsValid(ent) then return end + + if ent:GetClass() == "npc_citizen" then end - end + + if ent:GetKeyValues()["squadname"] == "m_EnemyRebel" then + local pos = ent:GetPos() + local ang = ent:GetAngles() + local mdl = ent:GetModel() + local weps = ent:GetWeapons() + local health = ent:GetMaxHealth() + local keyValues = ent:GetKeyValues() + + ent:Remove() + + local npc = ents.Create("npc_citizen") + if not IsValid(npc) then return end + + for key, value in pairs(keyValues) do + npc:SetKeyValue(key, tostring(value)) + -- if value ~= "" then + -- end + end + + npc:SetHealth(health) + npc:SetMaxHealth(health) + + npc:SetKeyValue("hostile", 1) + npc:SetKeyValue("squadname", "overwatch") + npc:SetKeyValue("citizentype", 4) + + for _, wep in ipairs(weps) do + npc:Give(wep:GetClass()) + end + + npc:SetPos(pos) + npc:SetAngles(ang) + npc:SetModel(mdl) + npc:Spawn() + end + end) end) \ No newline at end of file