• BuildBonePositions?
    10 replies, posted
Where is the alternative for this? The Entity.Manipulate* works only on entities serverside. Same with faceposing. If you do it once on the server though, you are able to it on client afterwards. But it won't work for clientside only entities.
[QUOTE=CapsAdmin;38192677]Where is the alternative for this? The Entity.Manipulate* works only on entities serverside. Same with faceposing. If you do it once on the server though, you are able to it on client afterwards. But it won't work for clientside only entities.[/QUOTE] I think garry decided, Oh BBP sucks, ill replace it with a better function, For now i shall remove BBP at the same time as working on the new function. Ill ignore all logic to keep BBP in while there isn't a substitute.
Yes but where is the alternative? I got the impression it was supposed to be added ASAP and before release (5 days ago) I thought maybe it was the ManipulateBone* functions but apparently not since they've been there for a while.
[QUOTE=CapsAdmin;38192835]Yes but where is the alternative? I got the impression it was supposed to be added ASAP and before release (5 days ago)[/QUOTE] I'm in the same boat. It's weird he removed the function right before release without making sure he could provide an alternative in time. Until that gets done, I can't fix my SWEP Construction Kit for the workshop. Well that and the fact that entity:EnableMatrix needs to be fixed so it scales all bones.
[QUOTE=CapsAdmin;38192835]Yes but where is the alternative? I got the impression it was supposed to be added ASAP and before release (5 days ago) I thought maybe it was the ManipulateBone* functions but apparently not since they've been there for a while.[/QUOTE] Well, like i said before garry ignored all logic to keep BBP while there isn't a substitute, And that is the same logic hes following up to this day until he finally decides to make/release one. Sadly.
If you do this stuff with SetBoneMatrix before the thing is drawn then it works with scaling... kind of.
[QUOTE=JetBoom;38193495]If you do this stuff with SetBoneMatrix before the thing is drawn then it works with scaling... kind of.[/QUOTE] I think set bone matrix lets you use X Y Z scaling, But it only works with models that have No more than 1 bone.
uh no.
Anyone come up with anything? This is an important function, with no real alternative if you ask me.
Garry posted this in the HAT thread: [QUOTE=garry;38260507]FYI the build bone positions stuff is going to use the same functions the bone manipulator/finger poser uses. [url]http://wiki.garrysmod.com/page/Classes/Entity/ManipulateBoneAngles[/url] [url]http://wiki.garrysmod.com/page/Classes/Entity/ManipulateBonePosition[/url] [url]http://wiki.garrysmod.com/page/Classes/Entity/ManipulateBoneScale[/url] I'm assuming these functions will do the job of what BuildBonePositions used to do?[/QUOTE] But these functions does not work on clientside entities. [editline]31st October 2012[/editline] [lua] if CLIENT then local ent = ClientsideModel(me:GetModel()) ent:SetPos(there) timer.Create("a", 0.1, 0, function() ent:ManipulateBoneScale(math.random(ent:GetBoneCount()), VectorRand()) end) end [/lua] [img]https://dl.dropbox.com/u/244444/ShareX/2012-10/2012-10-31_16-36-17.png[/img] [lua] if CLIENT then local ent = ents.CreateClientProp() ent:SetModel(me:GetModel()) ent:Spawn() ent:SetPos(there) timer.Create("b", 0.1, 0, function() ent:ManipulateBoneScale(math.random(ent:GetBoneCount()), VectorRand()) end) end [/lua] [img]https://dl.dropbox.com/u/244444/ShareX/2012-10/2012-10-31_16-37-02.png[/img] [lua]if SERVER then local ent = ents.Create("prop_dynamic") ent:SetPos(there) ent:SetModel(me:GetModel()) ent:Spawn() timer.Create("a", 0.1, 0, function() ent:ManipulateBoneScale(math.random(ent:GetBoneCount()), VectorRand()) end) end[/lua] [img]https://dl.dropbox.com/u/244444/ShareX/2012-10/2012-10-31_16-38-35.png[/img] [lua]if CLIENT then usermessage.Hook("test", function(umr) local ent = umr:ReadEntity() timer.Create("b", 0.1, 0, function() ent:ManipulateBoneScale(math.random(ent:GetBoneCount()), VectorRand()) end) end) end if SERVER then local ent = ents.Create("prop_dynamic") ent:SetModel(me:GetModel()) ent:Spawn() ent:SetPos(there) umsg.Start("test") umsg.Entity(ent) umsg.End() end[/lua] [img]https://dl.dropbox.com/u/244444/ShareX/2012-10/2012-10-31_16-43-32.png[/img] [b]However, if you call ManipulateBoneScale once on server, you are allowed to edit on client.[/b] [lua]if CLIENT then usermessage.Hook("test", function(umr) local ent = umr:ReadEntity() epoe.Print(ent) timer.Create("b", 0.1, 0, function() ent:ManipulateBoneScale(math.random(ent:GetBoneCount()), VectorRand()) end) end) end if SERVER then local ent = ents.Create("prop_dynamic") ent:SetModel(me:GetModel()) ent:Spawn() ent:SetPos(there) ent:ManipulateBoneScale(math.random(ent:GetBoneCount()), VectorRand()) umsg.Start("test") umsg.Entity(ent) umsg.End() end[/lua] [img]https://dl.dropbox.com/u/244444/ShareX/2012-10/2012-10-31_16-46-40.png[/img] But that's useless for clientside entities.
not pretty clear, but I think we have only one choice. waiting for alternative of BBP or BBP. garry approved about that in Gmod13 Release discussion thread. damn that was good function to play with.
Sorry, you need to Log In to post a reply to this thread.