Description
Sets custom bone angles.
When used repeatedly serverside, this method is strongly discouraged due to the huge network traffic produced.
Issue Tracker:
5148Arguments
1 number boneIDIndex of the bone you want to manipulate
2 Angle angAngle to apply.
The angle is relative to the original bone angle, not relative to the world or the entity.
3 boolean networking = trueboolean to network these changes (if called from server)
Example
This example shows the network usage impact of repeatedly using bone manipulation serverside.
To see the difference, type in client's console: net_graph 3
.
The rotation is not smooth when using Entity:SetNWFloat because it does not update the value on every frame.
local server_only
= true
if server_only
then
if SERVER
then
hook.
Add(
"Think",
"bone_manipulation_test",
function()
for _, ent
in ipairs(
ents.
FindByModel(
"models/buggy.mdl" ) )
do
ent:
ManipulateBoneAngles(
28,
Angle(
0,
0,
RealTime()
* 180 ) )
end
end )
else
hook.
Remove(
"Think",
"bone_manipulation_test" )
end
else
if SERVER
then
hook.
Add(
"Think",
"bone_manipulation_test",
function()
for _, ent
in ipairs(
ents.
FindByModel(
"models/buggy.mdl" ) )
do
ent:
SetNWFloat(
"bone_manipulation_test",
RealTime()
* 180 )
end
end )
else
hook.
Add(
"Think",
"bone_manipulation_test",
function()
for _, ent
in ipairs(
ents.
FindByModel(
"models/buggy.mdl" ) )
do
ent:
ManipulateBoneAngles(
28,
Angle(
0,
0,
ent:
GetNWFloat(
"bone_manipulation_test" ) ) )
end
end )
end
end Output: Rotation of the ammo box of all HL2 buggies.