Files
VnUtest/garrysmod/gamemodes/helix/plugins/act/sh_definitions.lua
2026-03-31 10:27:04 +03:00

167 lines
3.7 KiB
Lua

local function FacingWall(client)
local data = {}
data.start = client:EyePos()
data.endpos = data.start + client:GetForward() * 20
data.filter = client
if (!util.TraceLine(data).Hit) then
return "@faceWall"
end
end
local function FacingWallBack(client)
local data = {}
data.start = client:LocalToWorld(client:OBBCenter())
data.endpos = data.start - client:GetForward() * 20
data.filter = client
if (!util.TraceLine(data).Hit) then
return "@faceWallBack"
end
end
function PLUGIN:SetupActs()
-- sit
ix.act.Register("Sit", {"citizen_male", "citizen_female"}, {
start = {"idle_to_sit_ground", "idle_to_sit_chair"},
sequence = {"sit_ground", "sit_chair"},
finish = {
{"sit_ground_to_idle", duration = 2.1},
""
},
untimed = true,
idle = true
})
ix.act.Register("SitWall", {"citizen_male", "citizen_female"}, {
sequence = {
{"plazaidle4", check = FacingWallBack},
{"injured1", check = FacingWallBack, offset = function(client)
return client:GetForward() * 14
end}
},
untimed = true,
idle = true
})
ix.act.Register("Sit", "vortigaunt", {
sequence = "chess_wait",
untimed = true,
idle = true
})
-- stand
ix.act.Register("Stand", "citizen_male", {
sequence = {"lineidle01", "lineidle02", "lineidle03", "lineidle04"},
untimed = true,
idle = true
})
ix.act.Register("Stand", "citizen_female", {
sequence = {"lineidle01", "lineidle02", "lineidle03"},
untimed = true,
idle = true
})
ix.act.Register("Stand", "metrocop", {
sequence = "plazathreat2"
})
-- cheer
ix.act.Register("Cheer", "citizen_male", {
sequence = {{"cheer1", duration = 1.6}, "cheer2", "wave_smg1"}
})
ix.act.Register("Cheer", "citizen_female", {
sequence = {"cheer1", "wave_smg1"}
})
-- lean
ix.act.Register("Lean", {"citizen_male", "citizen_female"}, {
start = {"idle_to_lean_back", "", ""},
sequence = {
{"lean_back", check = FacingWallBack},
{"plazaidle1", check = FacingWallBack},
{"plazaidle2", check = FacingWallBack}
},
untimed = true,
idle = true
})
ix.act.Register("Lean", {"metrocop"}, {
sequence = {{"idle_baton", check = FacingWallBack}, "busyidle2"},
untimed = true,
idle = true
})
-- injured
ix.act.Register("Injured", "citizen_male", {
sequence = {"d1_town05_wounded_idle_1", "d1_town05_wounded_idle_2", "d1_town05_winston_down"},
untimed = true,
idle = true
})
ix.act.Register("Injured", "citizen_female", {
sequence = "d1_town05_wounded_idle_1",
untimed = true,
idle = true
})
-- arrest
ix.act.Register("ArrestWall", "citizen_male", {
sequence = {
{"apcarrestidle",
check = FacingWall,
offset = function(client)
return -client:GetForward() * 23
end},
"spreadwallidle"
},
untimed = true
})
ix.act.Register("Arrest", "citizen_male", {
sequence = "arrestidle",
untimed = true
})
-- threat
ix.act.Register("Threat", "metrocop", {
sequence = "plazathreat1",
})
-- deny
ix.act.Register("Deny", "metrocop", {
sequence = "harassfront2",
})
-- motion
ix.act.Register("Motion", "metrocop", {
sequence = {"motionleft", "motionright", "luggagewarn"}
})
-- wave
ix.act.Register("Wave", {"citizen_male", "citizen_female"}, {
sequence = {{"wave", duration = 2.75}, {"wave_close", duration = 1.75}}
})
-- pant
ix.act.Register("Pant", {"citizen_male", "citizen_female"}, {
start = {"d2_coast03_postbattle_idle02_entry", "d2_coast03_postbattle_idle01_entry"},
sequence = {"d2_coast03_postbattle_idle02", {"d2_coast03_postbattle_idle01", check = FacingWall}},
untimed = true
})
-- window
ix.act.Register("Window", "citizen_male", {
sequence = "d1_t03_tenements_look_out_window_idle",
untimed = true
})
ix.act.Register("Window", "citizen_female", {
sequence = "d1_t03_lookoutwindow",
untimed = true
})
end