For those writing binary modules and not familiar with the lua c api Garry's "LUA->GetString()" method calls "lua_tolstring" which when iterating tables will modify the key or value in the table. This will royally fuck the next "LUA->Next()" call and make your head explode while trying to find what shit data you're passing.
i have been having fun
https://www.youtube.com/watch?v=lqekQUcACkw
It shouldn't modify the value in the table, but it will change the type of the value on the stack to a string - it needs to do that to keep the refcount of that string correct. If you call lua_tolstring on the table index being used for iteration with lua_next, and the type gets changed, your iteration will fuck up. The table should be fine though.
That's what I said. The "modify the key or value in the table" statement was silent.
Really basic commands that print entity information for me because the ent_ command set absolutely sucks.
lol
Damn it, I want to give you a "useful" but that's not a thing anymore.
cookie is close enough
Simple Star Wars-themed deathmatch gamemode I've been working on(sorry for the poor video quality, haha):
https://www.youtube.com/watch?v=LPhW685I3dI
https://www.youtube.com/watch?v=4CTqp1cV_uU
Some of that looks kind of familiar. Some criticism if you don't mind: Your first person code is immersive but make sure it accounts for aiming directly up. The aimlayers on the model don't account for vertical aiming, just angled ones. I ran into that issue myself.
Also be careful which of those blade symphony animations you use, as some of their frames move too fast for the trace to follow. If you're just lerping between positions you'll also have a little bit of a delay. Tick rate is also important too so try lowering it by half and see if you can keep it smooth
Small color bleeding experiment. The HTML material is rendered into a small RT, dumped into RGB data with CapturePixels and averaged down into a single color that is then used to light up the TV's surroundings.
https://www.youtube.com/watch?v=AnVgtEanXs4
did you figured out skybox problem?
I've made similar thing for the request and heck that was tedious and very hacky
https://www.youtube.com/watch?v=MKwoG4CCIFs
https://www.youtube.com/watch?v=qUE69CrolW8
This is actually so sick man, looks super pretty
That's actually why I made the post! Was hoping for some good criticism.
As for the first person, it does account for vertical aiming. And as you said, the traces have a tough time catching up to some of the animations(for example the forward overhead, left spin, right spin), which is why I'm currently not using traces anymore. I'm simply attaching a collision box to my hand and doing all my checks within StartTouch(http://prntscr.com/ivx0co), and then for the trace effect I'm storing the the box's position, angles, and obb's into a table inside of its Draw function and nil'ing the last value inside of the Think func. I found this method to be very reliable with hit registry and haven't had a problem with even the extremely quick animations. Some may laugh at the idea, but it works perfectly for me.
More work on the ragdoll mode!
Here's something that I wondered why no other ragdollize addon had:
https://streamable.com/gfvxv
Here it is with actual voice chat:
https://streamable.com/dufgc
And here's some bonus, I move the bones to match the current animation frame so it looks like he's getting up, sadly this is not perfect due to Source limitations:
https://streamable.com/d6z2a
Oh snap, any chance on releasing the code for traces? I've been meaning to get box traces like that working, but haven't found the time. I guess I'll wait for the keyframed movement to come through so I can use those too, they look real neat, but can I interrupt them and stuff?
https://files.facepunch.com/forum/upload/133206/0aadcc83-fb94-4375-a3ee-f007e6894d1b/2018-03-24 22-04-39.mkv
[https://streamable.com/bt1yc]
A friend and I have been working on an experience system and this is currently what we've got for our notifications when someone earns a medal.
Actually, technically zero stencils on this one
A friend of mine @ZakStone made an asynchronous bsp loader in pure lua, so I've been usin'/abusin' that. For every brush I want to take, I build a 'cover' mesh that fits over the brush and map with a super groovy refract shader. Then I render a 'void' world to a rendertarget and pass that in to the basetexture of the refract material. And of course gotta have the brush mesh itself detach and fall down into the void.
This video shows it a bit better:
http://host.foohy.net/public/Videos/yoink.mp4
Here's the a quote I posted above:
From what I've tested, creating a custom trigger with set collision bounds seems to be more reliable in terms of hit registry than using conventional traces.
You, and your friend are fucking mad men.
https://github.com/meepen/garrysmod_bsp_renderer
messing with mesh is very tedious
working on a dynamic fire addon that does firey things, keeping it optimized is a bitch
https://www.youtube.com/watch?v=tXwyMqYszy8
I thought my thing was cool
https://www.youtube.com/watch?v=zyH2KSIUAdw
Then I was @Foohy 's omg xd
Anyways, I'm making a bread cooking addon, my first one, having a lot of fun
https://files.facepunch.com/forum/upload/242260/1ef3ed5d-8a58-419d-96ca-4abd2cc2a269/Minimap.mp4
I setup a waypoint system! In the spirit of sharing knowledge, for those who don't know, if anybody ever needs to create a waypoint/pathfinding system, Dijstra's Algorithm is the way to go.
Changed up how I'm registering my lua wrappers. This is a ton cleaner and safer than the hokey shit I was doing..
Check out my socket client header. c:
namespace gm_socket_io {
class Client : public LuaObject<Client> {
public:
static const int type_ = 223;
static constexpr const char *name_ = "gm_socket_io::Client";
private:
sio::client impl_;
private:
EmptyEventEmitter error_emitter_;
EmptyEventEmitter connect_emitter_;
EmptyEventEmitter reconnecting_emitter_;
EventEmitter<sio::client::close_reason> disconnect_emitter_;
EventEmitter<unsigned int, unsigned int> reconnect_emitter_;
public:
Client(lua_State *state) : LuaObject(state) {
AddMethod("on", on);
AddMethod("off", off);
AddMethod("off_all", off_all);
AddMethod("socket", socket);
AddMethod("connect", connect);
AddMethod("disconnect", disconnect);
AddGetter("is_open", get_is_open);
AddSetter("reconnect_delay", set_reconnect_delay);
AddSetter("reconnect_attempts", set_reconnect_attempts);
AddSetter("reconnect_delay_max", set_reconnect_delay_max);
Register(state);
}
public:
void Think(lua_State *state);
void Dispose(lua_State *state);
void Register(lua_State *state);
public:
static int get_is_open(lua_State *state);
static int set_reconnect_delay(lua_State *state);
static int set_reconnect_attempts(lua_State *state);
static int set_reconnect_delay_max(lua_State *state);
public:
static int on(lua_State *state);
static int off(lua_State *state);
static int off_all(lua_State *state);
static int socket(lua_State *state);
static int connect(lua_State *state);
static int disconnect(lua_State *state);
};
}
I'm having the same problem with that in gm_bass3. I am currently working on an update that allows to add effects such as echos and equalizer filters to its BASS streams. BASS_ChannelSetFX
I decided to add a separate Lua object type for each supported effect with their own getter and setters for the FX parameters, but I couldn't come up to an elegant solution myself yet. You seem to have solved that problem for you, so could you show me/us the source of your LuaObject template class?
Yup yup. I didn't push it to github at that moment because my code is/was not as presentable as I wanted it to be.
https://github.com/marvincountryman/gm_socket.io/blob/dev/src/lua_object.hpp
Contains the LuaObjectBase vector that invokes a Think method. (Stole this idea from Bromvlieg)
https://github.com/marvincountryman/gm_socket.io/blob/dev/src/engine.hpp
Sorry, you need to Log In to post a reply to this thread.