Is there any particular feature that you feel has been left out of GLua that you think needs to be included? If so, what are the steps a developer needs to include it? If we can brainstorm some good ideas here, garry, Azu, and all the other module developers will be much more able to help.
This is not a thread for bugfixes, that's the Update thread. This thread is specifically for features that have not been implemented that could possibly be implemented through .dll modules or by garry/Azu.
It would be great if we had all bitwise operators by default. Not really a GMod specific thing, but it would be quite useful.
Vector:__unm ( if not already implemented )
Entity:SetDSP( dsp ) ( affects all sounds emitted from entity, different from Player:SetDSP )
Entity:EmitSound( path, vol, pitch, dsp )
surface.PlaySound( path, dsp )
surface.SetDSP( dsp )
CSoundPatch:SetDSP( dsp )
Player:SetVoiceVolume( float )
Player:SetChannelDSP( chan, dsp )
The only way I can think of to set the dsp of a specific sound being emitted requires an ambient_generic to be created to set the dsp property.
chan would be something like CHAN_EMIT, CHAN_VOICE, CHAN_SURFACE.
I'm really interested in the last one - the ability to apply dsp to the player's voice, and only their voice, would be awesome, for example.
It's honestly the feature I want the absolute most.
Client-side constraint library.
[QUOTE=ralle105;22848996]Client-side constraint library.[/QUOTE]
How would that help? :v:
[QUOTE=Gbps;22849016]How would that help? :v:[/QUOTE]
Welding client-side props?:v:
[QUOTE=ralle105;22849131]Welding client-side props?:v:[/QUOTE]
I don't think there's even clientside physics.
PhysObj.GetIntertia (That returns a number for use with queryphys)
PhysObj.GetRotationIntertia
[QUOTE=Gbps;22849195]I don't think there's even clientside physics.[/QUOTE]
There are, you can spawn prop_physics client-side.
[QUOTE=ralle105;22849934]There are, you can spawn prop_physics client-side.[/QUOTE]
Don't they have no physics? Or so I thought :ohdear:
[QUOTE=ralle105;22849934]There are, you can spawn prop_physics client-side.[/QUOTE]
It doesn't have physics though.
[QUOTE=Chrisaster;22850104]It doesn't have physics though.[/QUOTE]
Does too, what are you talking about?:saddowns: What about ragdolls when you die?
They do if you use :PhysicsInit() on them.
Of course clientside has physics, or prediction wouldn't work.
What I would like to see is an entity hook that controls to what players (if any) network messages should be sent to. So suppose I change the position of the entity every frame (ent.SetPos), I can use the hook to stop that being networked out.
[QUOTE=thomasfn;22851151]Of course clientside has physics, or prediction wouldn't work.
What I would like to see is an entity hook that controls to what players (if any) network messages should be sent to. So suppose I change the position of the entity every frame (ent.SetPos), I can use the hook to stop that being networked out.[/QUOTE]
What would you use that for? Wouldn't it cause massive prediction errors when players try to interact with it? The position is updated naturally whether you use SetPos on it or not.
[QUOTE=thomasfn;22851151]Of course clientside has physics, or prediction wouldn't work.
What I would like to see is an entity hook that controls to what players (if any) network messages should be sent to. So suppose I change the position of the entity every frame (ent.SetPos), I can use the hook to stop that being networked out.[/QUOTE]
Technically you can use gm_sourcenet and its SendNetMsg hook.
[QUOTE=Crazy Quebec;22851235]What would you use that for? Wouldn't it cause massive prediction errors when players try to interact with it? The position is updated naturally whether you use SetPos on it or not.[/QUOTE]
Suppose I wanted to predict position clientside, and I am 100% sure my code will get it right. Sending the position to the client every frame is very wasteful.
Yeah, clientside constraints. I desperately need clientside ballsockets for ragdoll pinning purposes. Freezing bones just doesn't look right. :saddowns:
A function for toggling IK on playermodels would really come in handy as well, because some of them just don't animate properly without it.
More specific purposes, but I'd appreciate an implementation of clientside scenes, so that they can be played on any entity (I personally need them for TF2 playermodels, but it would be quite useful for some kind of in-game scene selector).
Somehow TF2 related as well, a function for loading phonemes. CBaseFlex::FindSceneFile(const char *filename) seems to be it, although I'm not sure. It would fix TF2 models not moving their lips when talking.
Garry also told me a while ago that he would try to implement a hook for overriding what a material proxy should return depending on a given context. I really need that as well because TF2 cloaking and übercharging will never ever look right without them.
Also, some way to register activities which don't have a value by default would be useful, especially since Weapon:SendWeaponAnim only takes an activity, not a sequence. Looks like what ActivityList_RegisterPrivateActivity(const char *pszActivityName) does, it's from shared/activitylist.h, takes an activity name, registers it, returns an integer. That's already kind of possible with GetSequenceActivity, but rather hacky and not very reliable.
I guess that's what I get for wanting to remake Team Fortress 2 in Lua, I keep running into a bunch of dead ends because of engine functions that I need which aren't implemented. :ohdear:
Clientside constraints would be interesting.
[QUOTE=_Kilburn;22853098]A function for toggling IK on playermodels would really come in handy as well, because some of them just don't animate properly without it.[/QUOTE]
Do want.
A function to get the CRC of a file, because you can't read binary files with file.Read.
A function to get the map's size in the same way as doing Entity:WorldSpaceAABB().
Can't you use GetWorldEntity():WorldSpaceAABB()?
If I recall correctly, it returns 0,0,0.
[QUOTE=DarKSunrise;22896052]A function to get the CRC of a file, because you can't read binary files with file.Read.[/QUOTE]
Second this.
[QUOTE=DarKSunrise;22896052]A function to get the CRC of a file, because you can't read binary files with file.Read.[/QUOTE]
[b][url=http://wiki.garrysmod.com/?title=Util.CRC]Util.CRC [img]http://wiki.garrysmod.com/favicon.ico[/img][/url][/b]
Unless I'm missing something.
[QUOTE=Kogitsune;22898824][b][url=http://wiki.garrysmod.com/?title=Util.CRC]Util.CRC [img]http://wiki.garrysmod.com/favicon.ico[/img][/url][/b]
Unless I'm missing something.[/QUOTE]
[quote]because you can't read binary files with file.Read.[/quote]
:downs:
Oh, talking about file.Read. Some text files seem to start with a few bytes of random junk at the beginning, which makes them unreadable with file.Read (it reads only those first bytes and stop). Those bytes only appear in hex editors, they aren't even visible with Notepad, so it's hard to know whenever they are there or not.
Their not, its some windows bullshit that gets put there, notice how if you open a .mdl in notepad. then save with notepad without changing anything the file gets corrupt
They are on Source language files, and since I want to read language data from the TF2 GCF, that's quite annoying because I have to copy the whole thing and manually get rid of those bytes.
Sorry, you need to Log In to post a reply to this thread.