STEAM GROUP
Left 4 Dead 2 Workshop Beta L4D2WSB
STEAM GROUP
Left 4 Dead 2 Workshop Beta L4D2WSB
5
IN-GAME
31
ONLINE
Founded
15 October, 2012
Showing 71-80 of 197 entries
1
Mutation: Tiny TERROR
29
5/29 Update
21
5/21 Update
3
EMS - Things that worked, things that didn't.
I thought maybe it would maybe be a useful discussion to mention some things I've tried in the Beta that were difficult, or impossible given what parts of the game are exposed via script.

Tank Slayer
Pretty much managed to work around most of the issues (or they were fixed in subsequent releases).

There really should be a way to reset incap counts, and un-incap players. Rayman1103 pointed me to a workaround but it seems like it should be easier.

Really should be some sort of session id for games for data that is only to persist for that particular game.

Hooking/manipulating spawns should be easier. Preferably like the suggestion in this thread. https://steamhost.cn/steamcommunity_com/groups/L4D2WSVB/discussions/0/846944689784657718/

Or alternatively (and easier), just make ConvertZombieClass always called if present instead of cm_var dependent. Better than nothing. Also, a flow oriented spawn, something like GetSpawnPosition, mentioned in that thread.

It would be nice if there was some way to do something before map_transition. Any twiddling you do with players on that event is lost when they are restored on the next map. And if you hook player spawns on the next map, you need to deal with the fact that these events are called multiple times for each player.

Uneven Versus games. Really would be nice if I could have a 4 on 1 for this. Perhaps there is and I just don't know how to do it.


SI Plus
Things that didn't work out.
Hanging Hunters. Wanted to have hunters be able to hang when they can bounce off a wall mid-pounce, but no event for that. Hard to detect with tracing.
Steering Chargers. The is no way to unset the player frozen flag, so there's no input, even with a game_ui activated, so no way to steer.


Left4Derby
A competitive racing mutation where survivors compete on different custom maps in a variety of game types.

While prop_vehicle_drivable and prop_vehicle are not in the shipped version of vbsp, they exist in the server, so you can spawn them in the Beta.

Proof of concept.
http://www.youtube.com/watch?v=Cf0llXrQVgQ

Problems:
I ran into quite a few that I was able to work around, but in the end, just not feasable, as is, which is too bad because I think it could be a lot of fun, and totally unlike any existing game type.

First off, when mounting a vehicle, you can't change your collision group and players collide with the vehicle, so you never finish transitioning to vehicle_driver_eyes, so m_bExitAnimOn is never cleared, and player input is lost. You're stuck indefinitely. Killing the vehicle frees you but your player is now broken and cannot be attacked.

Tried everything under the sun with no luck. Then I decided to use a prop_vehicle_drivable or prop_vehicle and drive them remotely using a game_ui and parenting the player. This mostly works, except no vehicle sounds, I actually started to code gear sounds, but not as good. Also steering with -1/1 is kind of lousy so I basically had to emulate the client.dll controls to get proportional control. That part, not so bad, by upping the think interval to 30fps, I found I could get decent control.

The car's point_viewcontrol breaks everyone's view. This was pretty easy to work around, I used point_viewcontrol_survivor parented to the car (or player) and manipulate that.

So now I have a decently working car I can drive around in with freelook.

But then I hit the real wall where I realized it just wasn't going to work reliably. Again, collisiongroups, you don't collide with commons. I tried using trigger_'s etc, but just way too wonky.

And the final deal breaker, after a couple minutes, the server deems you stuck and kills you.

Still cool to drive the HL2 vehicles in l4d maps, even if you can't make it too far.


Things I'd still like to see
CTerrorPlayer.IsDead() // instead of checking for incaps or debouncing infected health while ragdolling
CDirector::HowAngy () // returns a value between 0-1
HUD fonts resize
Showing 71-80 of 197 entries