Skip to content

Commit

Permalink
'Xen' update (v1.0.2)
Browse files Browse the repository at this point in the history
The 'Xen' update (v1.0.2)

- Removed compiled plugins, they will be included in releases
- Maps from the 'Xen' chapter are now playable
- Tons of map-based fixes - preventing path blocks, door stuck, closed portals or too small changelevel areas

Plugin-based fixes

- fixed clientside camera jerking when being near teleport entities (disable trigger prediction)
- fixed npc_xenturret clientside effects - requires additional download
- fixed npc_houndeye* crash
- hooked into trigger_autosave so they don't get removed upon spawning
- fixed env_zoom for multiplayer
- fixed first person death camera not resetting client's view on remove, causing weird things to happen (especially on bm_c1a3c)
- flashlight's enabled state is now based on mp_flashlight convar
- fixed disabled features in edt being enabled
- ammo canisters now pass as pickupable items

New features

- Added restart map vote
- Added convar for optional reloading of votemap menu on mapchange
- trigger_autosaves can be automatically imported as checkpoints, and checkpoints can now be activated by touching, as well as saving the position and angles when first touched if not manually specified in edt file

Known issues

- Crystal suit chargers (prop_hev_charger) don't yet work
- Healing pools affect all players audiovisually
- Beneathticles allow clientside player to fire all weapons under water
  • Loading branch information
Alienmario committed Jan 26, 2021
1 parent 9be5aab commit 38f81f1
Show file tree
Hide file tree
Showing 47 changed files with 1,441 additions and 309 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ SourceCoop is a cooperative plugin for [Black Mesa](https://store.steampowered.c
__If you are someone who is looking to play on a server__, you are already completely set up and ready to play! Cooperative servers can be found on the server browser just like any other server.

__If you are a server operator who is looking to host your own cooperative server__, then follow the instructions below.
- Install the latest release version of [Metamod Source](https://www.sourcemm.net/downloads.php?branch=stable)
- Install the latest release version of [Metamod:Source](https://www.sourcemm.net/downloads.php?branch=stable)
- latest tested working build is __1143__
- Install a development version of [SourceMod](https://www.sourcemod.net/downloads.php?branch=dev)
- latest tested working build is __6645__
- Install the latest release version of [DHooks with Detours support](https://github.com/peace-maker/DHooks2/releases)
- latest tested working build is __dhooks-2.2.0-detours15-sm110__
- Download the latest release of SourceCoop and drop it into your sourcemod directory
- Install the latest release of SourceCoop from the [releases page](https://github.com/ampreeT/SourceCoop/releases)

A step-by-step guide is also available on [Steam](https://steamcommunity.com/sharedfiles/filedetails/?id=2200247356).

Expand Down
23 changes: 0 additions & 23 deletions data/srccoop/base/bm_sp_campaign.edt
Original file line number Diff line number Diff line change
Expand Up @@ -35,28 +35,5 @@
}
}
}
// make vital NPCs invulnerable
"create"
{
"targetname" "__srccoop_damage_filter"
"classname" "filter_damage_class"
}
"modify"
{
"GameEndAlly" "1"
"add"
{
"damagefilter" "__srccoop_damage_filter"
}
}
// prevent glitchy looping sounds (doors, rotating platforms)
"modify"
{
"loopmovesound" "1"
"set"
{
"loopmovesound" "0"
}
}
}
}
7 changes: 6 additions & 1 deletion data/srccoop/base/coop_base.edt
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,22 @@
{
"features"
{
"ALLOW_FLASHLIGHT" "1"
"FIRSTPERSON_DEATHCAM" "1"
"NO_TELEFRAGGING" "1"
"NO_FRIENDLYFIRE" "1"
"NOBLOCK" "1"
"SHOW_WELCOME_MESSAGE" "1"
"HEV_SOUNDS" "1"
"INSTANCE_ITEMS" "0"
"STRIP_DEFAULT_EQUIPMENT" "0"
"DISABLE_CANISTER_DROPS" "0"
}

"console"
{
// enable flashlight by default
"mp_flashlight" "1"

// fix for breakmodels not appearing
"breakable_multiplayer" "0"

Expand Down
91 changes: 72 additions & 19 deletions data/srccoop/base/coop_base_sp_conversion.edt
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
"viewcontrol_allplayers" "1"
"clientcommand_allplayers" "1"
"speedmod_allplayers" "1"
"vital_npcs_invulnerable" "1"
"never_close_areaportals" "1"
}
"entity_base_sp_conversion"
{
Expand All @@ -36,7 +38,7 @@
// !pvsplayer may search by visibility, activator, or use first index as fallback; although this depends on the entity
"modify"
{
"classname" "aiscripted_schedule"
"classname" "aiscripted_schedule"
"goalent" "!player"
"add"
{
Expand All @@ -52,6 +54,16 @@
"WaitPointName" ""
}
}
// todo: check if this works
"modify"
{
"classname" "env_mortar_launcher"
"target" "!player"
"add"
{
"target" "!pvsplayer"
}
}
"modify"
{
"outputs"
Expand All @@ -75,10 +87,10 @@
}
}
// point_viewcontrol normally accepts the activator. In maps made for SP, we want all players to be affected. New input EnableAll has been added for that purpose.
"#if"
#if
{
"viewcontrol_allplayers" "1"
"#then"
#then
{
"modify"
{
Expand All @@ -101,10 +113,10 @@
}
}
// player_speedmod normally accepts the activator. In maps made for SP, we want all players to be affected. New input ModifySpeedAll has been added for that purpose.
"#if"
#if
{
"speedmod_allplayers" "1"
"#then"
#then
{
"modify"
{
Expand All @@ -123,10 +135,10 @@
}
}
// point_clientcommand normally accepts the activator. In maps made for SP, we want all players to be affected. New input CommandAll has been added for that purpose.
"#if"
#if
{
"clientcommand_allplayers" "1"
"#then"
#then
{
"modify"
{
Expand All @@ -148,22 +160,12 @@
}
}
}
// todo: check if this works
"modify"
{
"classname" "env_mortar_launcher"
"target" "!player"
"add"
{
"target" "!pvsplayer"
}
}
// env_screenoverlay shows to all players once activated. Remove it until a solution is found.
// env_screenoverlay shows to all players once activated - remove it until a solution is found.
"delete"
{
"classname" "env_screenoverlay"
}
// We never want player_speedmod to suppress HUD in MP as this hides chat and even the main menu
// we never want player_speedmod to suppress HUD in MP as this hides chat and even the main menu
"modify"
{
"classname" "player_speedmod"
Expand All @@ -175,5 +177,56 @@
}
}
}
// make vital NPCs invulnerable
#if
{
"vital_npcs_invulnerable" "1"
#then
{
"create"
{
"targetname" "__srccoop_damage_filter"
"classname" "filter_damage_class"
}
"modify"
{
"GameEndAlly" "1"
"add"
{
"damagefilter" "__srccoop_damage_filter"
}
}
}
}
// prevent glitchy looping sounds (doors, rotating platforms)
"modify"
{
"loopmovesound" "1"
"set"
{
"loopmovesound" "0"
}
}
#if
{
"never_close_areaportals" "1"
#then
{
"modify"
{
"outputs"
{
"remove"
{
"input" "Close"
"target"
{
"classname" "func_areaportal"
}
}
}
}
}
}
}
}
43 changes: 29 additions & 14 deletions data/srccoop/bm_c1a3c.edt
Original file line number Diff line number Diff line change
Expand Up @@ -42,19 +42,48 @@
"delay_output" "OnMapSpawn"
}
}
// blocker
"delete"
{
"targetname" "block_player"
}
// global for return to c1a3a
"create"
{
"classname" "env_global"
"targetname" "c1a3c_c1a3a_global"
"globalstate" "c1a3c_c1a3a"
}
// block changelevel area
"add"
{
"classname" "func_brush"
"rendermode" "10" // dont render
"functions"
{
"copy_model"
{
"classname" "trigger_changelevel"
"map" "bm_c1a3a"
}
}
}
"modify"
{
"classname" "trigger_changelevel"
"map" "bm_c1a3a"
"functions"
{
// expand changelevel
"copy_model"
{
"classname" "trigger_transition"
"targetname" "bm_c1a3c-bm_c1a3a"
}
}
"outputs"
{
// turn on the global
"add"
{
"output" "OnChangeLevel"
Expand All @@ -64,20 +93,6 @@
}
}
}
// block going past changelevel
"add"
{
"classname" "func_brush"
"rendermode" "10" // dont render
"functions"
{
"copy_model"
{
"classname" "trigger_changelevel"
"map" "bm_c1a3a"
}
}
}
}
"checkpoint"
{
Expand Down
21 changes: 17 additions & 4 deletions data/srccoop/bm_c2a4b.edt
Original file line number Diff line number Diff line change
Expand Up @@ -61,17 +61,30 @@
}
}
}
// block going past changelevel
// setup changelevel
"modify"
{
"classname" "trigger_changelevel"
"map" "bm_c2a4c"
"functions"
{
"set_model"
{
"origin" "-1088 -2304 -600"
"size" "80 256 80"
}
}
}
"add"
{
"classname" "func_brush"
"rendermode" "10" // dont render
"functions"
{
"copy_model"
"set_model"
{
"classname" "trigger_changelevel"
"map" "bm_c2a4c"
"origin" "-1088 -2450 -584"
"size" "80 36 48"
}
}
}
Expand Down
5 changes: 5 additions & 0 deletions data/srccoop/bm_c2a5d.edt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@
"rendermode" "10" // dont render
}
}
// keep hatch open
"delete"
{
"targetname" "hatch_block"
}
// make road airlock button close first doors for consistency
"modify"
{
Expand Down
23 changes: 15 additions & 8 deletions data/srccoop/bm_c2a5f.edt
Original file line number Diff line number Diff line change
Expand Up @@ -64,16 +64,23 @@
}
}
}
"create"
// unlock armoury door if guard dies
"modify"
{
"classname" "trigger_once"
"targetname" "armory_cp_trig"
"spawnflags" "1"
"functions"
"targetname" "c2a5f_barney"
"outputs"
{
"copy_model"
"add"
{
"output" "OnDeath"
"target" "c2a5f_armoury_door_12b"
"input" "Unlock"
}
"add"
{
"hammerid" "3353372"
"output" "OnDeath"
"target" "c2a5f_armoury_door_12a"
"input" "Unlock"
}
}
}
Expand All @@ -89,7 +96,7 @@
{
"origin" "-480 -1468 420"
"angles" "0 0 0"
"triggerid" "armory_cp_trig"
"triggerid" "3353372"
"output" "OnTrigger"
}
"arena2"
Expand Down
5 changes: 5 additions & 0 deletions data/srccoop/bm_c2a5i.edt
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,11 @@
}
}
}
// blocker
"delete"
{
"targetname" "player_block_garga"
}
// triggers on top of the tower
"modify"
{
Expand Down
Loading

0 comments on commit 38f81f1

Please sign in to comment.