Code Monkey home page Code Monkey logo

lambda's Introduction

Lambda

Have you ever wanted to play the Half-Life 2 series with your friends online? Then Lambda is exactly what you are looking for. Lambda aims to provide seamless multiplayer support for the Half-Life 2 campaign maps, as well as user-created campaigns.

Features

  • Level scenes reworked with checkpoints to be multiplayer friendly, players won't be forcibly teleported
  • Full player and object transitioning between levels
  • Enemy scaling based on skill level and player count
  • Visual improvements
  • Legacy Half-Life 2 aspects such as view bob, view lag, sprinting, AUX power counter, and more
  • Survivor mode with respawn checkpoints
  • Ability to command friendly NPCs via the context menu
  • Medkits for players to heal eachother
  • Dynamic crosshair
  • Underwater bullets
  • Custom Gravity Gun including the mega version with glow color customization
  • Passenger seats
  • Voting system
  • Mapscripts for each campaign map for modifying logic and extra gameplay enhancements
  • Ability to create your own story
  • Some hidden and not so hidden easter eggs

Supported Games

Half-Life 2

  • Fully supported.

Half-Life 2: Episode 1

  • Fully supported.

Half-Life 2: Episode 2

  • Planned

Half-Life 2: Deathmatch

  • Fully supported.

Half-Life 1/Source

  • Experimental.

Campaign/Story Creation

This is currently a work-in-progress, but will be documented soon. Here are the current specifications:

  1. Whatever Half-Life 2 uses already works
  2. For transition support, your map must have an info_landmark, trigger_transition, and trigger_changelevel. Check out the Valve Developer Wiki for more information
  3. Information about round setup and other basic rules

This is the Lambda code repository, for more information you can use following links:

Steam Workshop
Discord

lambda's People

Contributors

dounai2333 avatar knoxed avatar krutonium avatar python1320 avatar zehmatt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lambda's Issues

d1_town_03 blocks level change if server starts directly on it

Not able to go towards the correct map as the changelevel is blocked by a red wall.
You can actually go back to d1_town_02 but it will lead to the player being stuck by a red wall and a trigger_hurt.

Observed on a dedicated server, without any other addons or modifications to the gamemode.

Probably not going to happen normally.

On d3_citadel_03, when you are supposed to get the Super Gravity Gun, it infinitly respawns it, crashing the game

It happens as soon as its converted from the normal gravity gun to the super gravity gun, before that happens, this code appears with the "lambda_log all" function

[SV(16.815 45.300):Trigger] Entity [46][trigger_multiple] Sending trigger update: false 0
[SV(16.815 45.300):Trigger] Entity [46][trigger_multiple] Sending trigger blocked: false
[SV(16.815 45.301):Pickup] PlayerCanPickupWeapon Player [1][Mynameislol] Weapon [167][weapon_physcannon]
[SV(16.815 45.301):Player] Respawning object Weapon [167][weapon_physcannon] in 1 seconds
[SV(16.815 45.305):Pickup] PlayerCanPickupWeapon Player [1][Mynameislol] Weapon [167][weapon_physcannon]
[SV(16.815 45.305):Player] Respawning object Weapon [167][weapon_physcannon] in 1 seconds
[CL(16.815 45.306):Trigger] Trigger(46) new player count: 0
[CL(16.815 45.306):Trigger] Received trigger block update
[CL(16.815 45.306):Trigger] Trigger(46) now unblocked
[SV(16.830 45.316):Pickup] PlayerCanPickupWeapon Player [1][Mynameislol] Weapon [167][weapon_physcannon]
[SV(16.830 45.316):Player] Respawning object Weapon [167][weapon_physcannon] in 1 seconds
[SV(16.830 45.316):Pickup] PlayerCanPickupWeapon Player [1][Mynameislol] Weapon [167][weapon_physcannon]
[SV(16.830 45.316):Player] Respawning object Weapon [167][weapon_physcannon] in 1 seconds
[SV(16.845 45.331):Pickup] PlayerCanPickupWeapon Player [1][Mynameislol] Weapon [167][weapon_physcannon]
[SV(16.845 45.331):Player] Respawning object Weapon [167][weapon_physcannon] in 1 seconds
[SV(16.845 45.331):Pickup] PlayerCanPickupWeapon Player [1][Mynameislol] Weapon [167][weapon_physcannon]
[SV(16.845 45.331):Player] Respawning object Weapon [167][weapon_physcannon] in 1 seconds
[SV(16.860 45.345):Pickup] PlayerCanPickupWeapon Player [1][Mynameislol] Weapon [167][weapon_physcannon]
[SV(16.860 45.345):Player] Respawning object Weapon [167][weapon_physcannon] in 1 seconds
[SV(16.860 45.345):Pickup] PlayerCanPickupWeapon Player [1][Mynameislol] Weapon [167][weapon_physcannon]
[SV(16.860 45.345):Player] Respawning object Weapon [167][weapon_physcannon] in 1 seconds
[SV(16.875 45.360):Pickup] PlayerCanPickupWeapon Player [1][Mynameislol] Weapon [167][weapon_physcannon]
[SV(16.875 45.360):Player] Respawning object Weapon [167][weapon_physcannon] in 1 seconds

I could avoid this by enabling sv_cheats, and noclipping away from the gravity gun as soon as it's dropped, and then come back after the conversion is completed, i'm pretty sure the game thinks the player can pick up the gravity gun, and tries to respawn it, but even though it can't, it respawns it anyway, and thus, looping

Add hints

When players start with the gamemode they should have a clientside setting for hints. Hints should popup periodically in the chat text to inform the player about possible things to do, some examples would be:
"Press <Bound_Key> to change your player appearance"
"Hold <Bound_Key> to show up the taunts menu"
"To disable the hints Press <Bound_Key> and disable it under Option"
etc.

Ability to kill other players

If you use explosives like nades, rpg or grenade laucher you can inflict dmg or kill other players. Tested on a locally hosted server with 4 friends with p2p and no other addons.
Also happens on a dedicated server.

No respawn setting

If this option is enabled clients will be not able to respawn after death, they have to wait for the next map. Perhaps we can use the existing timeout value and use -1 for never respawn.

Half-Life 2 movement

Some people have suggested we go back to the original Half-Life 2 movement and I generally like that idea.

Ammo 'management'

When you have full total ammo with a weapon you are still able to loot the ammo from dropped weapon, this overflow of ammo get lost into nothingness and wasted for other potential player since if you go over the max ammo, it set back to the max ammo value.

A good fix would be either to block the pickup of weapon's ammo if already at max ammo or something similar.

Too far from ChangeLevel

If you manage to jump into the trigger_changelevel and past it while there is other players and wait for the timeout, the entity wont be able to changelevel possibly since there is no players inside it.

ss 2017-01-07 at 02 47 38

Better kill notifications

If there is a large amount of enemies and players it will clutter the screen with lots of kill notifications. We should make one that shows the accumulator which resets after 5 to 10 seconds kill inactivity.

Map vote system

It'd be nice to have a map voting system so players can vote to skip the current level or restart it. Also a map rotation system for the upcoming DM gametype.

Documentation

We need to setup some basic documentation. It should include a few basic things such as:

  • Setting up a server
  • Selecting the gametype
  • Configuration.

We can document everything on the wiki and refer to it from the workshop entry.

Armed nade duplication

Hold grenade, unpin and wait a few seconds, kill self and you generates a dozen ticking nades on death. Tested on a locally hosted server with 4 players and p2p.
Also happens on a dedicated server.

Only happens as last player.

No other addons.

Make ammo limiter an option.

Users have been requesting this. We have two ways to solve this.

  1. We disable them globally via a single ConVar
  2. We have per ammo type a ConVar for the Half-Life 2 specific limits.

Admin panel will not function on dedicated servers.

Currently it only assigns the cvars which are server side only. This only works currently because most tests happen on listen server where the cvar is accessible. It requires some refactoring to send a message to the server setting the value. Same for those who issue concommands.

Refactor taunting

The menu is currently pretty bad and takes a lot of time to get where you want to be. Additionally the last choice should be stored across level transition. This needs some thought and suggestions for a better taunt menu. Left 4 Dead has something very simple but due to the amount we have this may be impractical, however we could maybe use groups that expand around the circle.

Remove unnecessary map checkpoints.

We should remove all checkpoints that are not required because the dynamic checkpoint system turned this obsolete. It is only required to place checkpoints that may disconnect the path to the goal, such as closing doors, elevators, etc.

Dynamic checkpoints must consider enemy state.

Checkpoint selection should consider if enemy are nearby and if they are aware of the players, the checkpoint should also avoid nearby npc makers so they are not visible from the location.

User never signaled connection

Unknown reason, dedicated server. First time joining create this error and stops the player from doing anything except being in a weird state of spectating. Until map restart, changelevel or just round restart.
ss 2017-01-03 at 08 29 43

Dedicated server, no other addons.

Edit: Happens every time after restarting the dedicated server.
Edit2: Seems to also happen randomly but it did on d3_c17_04

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.