[ALPHA] Cooperative Exits Alpha RC1 Hotfix4 (Update)

Maps, modifications, add-ons, projects, and other releases for Zandronum. Also includes announcers.
Post Reply
User avatar
BlushBerry
 
Posts: 90
Joined: Tue Apr 26, 2016 11:12 pm
Location: root
Clan: Nuclear Empire
Clan Tag: [NE]
Contact:

[ALPHA] Cooperative Exits Alpha RC1 Hotfix4 (Update)

#1

Post by BlushBerry » Fri Nov 24, 2017 10:46 pm

Cooperative Exits
An addon used to extend functionality of exit triggers in a more fair and balanced way with a time system.
WARNING THIS ADDON IS CURRENTLY IN ALPHA AND NOT EVERYTHING IS EXPECTED TO WORK AS INTENDED
If you've found a bug please reply to this thread with the steps to reproduce and we will get working on it asap.


Lead Developer: BlushBerry
Co-Developer: Michaelis

Special Thanks:
TB-303 -- for providing us with a testing mapset
Bloodhaven -- For fixing an annoying outstanding bug since release (Hotfix3)

Designed for: Zandronum

What is Cooperative Exits?

Simply put it's a server addon that is designed to dynamically handle the exit triggers in multiplayer sessions.
It also comes with some custom cvars to allow server administrators further customize how they want the addon to work.
This addon may come in handy for you if you do not want speed runners coming into your multiplayer session and completing each map in 30 seconds or less
or maybe you want to use it for a mod that rewards you with completion bonuses such as Death and Decay or D4T and you want to encourage players to spend more time on maps.
Maybe you just like exploring maps but you cant because people rush to the exit too quickly. Or maybe you just want to wipe all those demons off the face of the map before you are satisfied.

This addon replaces exit triggers to instead trigger a timer to start counting down which is defined at start by "ce_timelimit" in the form of seconds.
The addon will also divide the timer up fairly according to how many players are in the server. By the time there is only a set amount of people left
Which is defined by "ce_playerfinalnum" the timer will change to whatever "ce_finalcountdown" is in seconds but only if that amount of time has not been reach yet.

You can also change how many players are required to activate the exit button before the timer is initiated.

Other things we've kept track of is making sure that when players leave and they've activated the exit. The time that was taken from that exit activated by a player is added
back onto the timer as if they never activated the exit. When all players have activated the exit, The map is considered "Over" and the map successfully exits.
If the timer reaches "0:00" The map is also considered "Over" and the map changes as well.

TL; DR

The addon adds a timer instead of exiting you off the map and dynamically lowers to how many players have activated the exit, When the timer reaches 0 or when all players activate the exit the map ends.

List of CVAR's and their defaults.

Code: Select all

ce_timelimit -- Sets what time the timer should start at (In seconds). -- (Default: 600)
ce_playertimernum -- This is for how many players are required to activate the exit before the timer appears. -- (Default: 1)
ce_debug -- Debugging information (All players will see this) -- (Default: 0)
ce_playerfinalnum -- How many players before it starts the final countdown? -- (Default: 1)
ce_finalcountdown -- How many seconds will the timer countdown from when there is only <ce_playerfinalnum> left? (You define how many left with ce_playerfinalnum) -- (Default: 30) 
Things to Note:
  • This addon only works with BOOM and Vanilla maps. This is due to limitations with xlat, a map translator built into zdoom originally designed for compatibility purposes. It will not work for UDMF.
    There is already a case for this issue on the bug tracker if you would like to see UDMF support for xlat and in turn, support for the addon please show your support and voice your opinion here https://zandronum.com/tracker/view.php?id=1594
  • If you decide to change the CVARS please note they do not save if you shutdown your server. Make an additional .cfg file and have that .cfg file ran at the end of your main .cfg eg. "exec cfg/coopexit.cfg" with the custom cvars and your changes placed inside.
  • I would recommend not changing any of the cvars while a map is in session, This addon is not currently equipped to handle changes while a game is in progress. Most cvars are loaded when the map starts and some when a player triggers an exit.
  • I also recommend disabling any collision between players such as sv_unblockallies or sv_unblockplayers etc. For some reason telefragging can mess with the script and cause the map to exit prematurely. But who want's that on anyway? Tele-fragging in Co-op or Survival is annoying!
  • This addon is 100% open-source, You may use this directly for any mod you may be working on or even improve on it as long as you credit us, BlushBerry and Michaelis.
Download Latest: coopexit_alpha_rc1_hotfix4.pk3

Mirrors:
allfearthesentinel.net

Known Bugs:

Code: Select all

(Rare) Map exits randomly when the exit has not even been activated.
(Rare) Timer sometimes does not get set to how many seconds ce_finalcountdown is when there is only one person left to activate the exit.
Players can activate the exit and the map will just exit sometimes without initiating the script (Fixed)
In survival, Dead players do not decrease Required Presses (Fixed)
In survival, smashedExits does not decrease when a player dies after pressing the exit. (Fixed)
In survival, If there is only one player and the player loses all their lives, Map exits. (Fixed)
Changelog:

Code: Select all

03/24/2018
Fixed:
* (Survival) When there are 3 players in the server and 2 players hit the exit then one who has hit the exit spectates the final countdown is compensated for and raises the timer limit despite there being 1 person who has hit the exit and one who has yet to hit the exit.

03/17/2018 -- RC1 Hotfix3
Fixed:
* (Survival) When there are two players in game and one player dies and then goes into spectator the map immediately exits.

01/02/2018 -- RC1 Hotfix2
Fixed:
* (Survival) Dead players do not decrease the amount of required exit activations.
* (Survival) Activated exits does not decrease when a player dies after they activate the exit.
* (Survival) Map exits when there is only one player and that player loses all their lives.
* Players can activate the exit and the map will just exit sometimes without initiating the script.

11/26/2017 -- RC1 Hotfix
Fixed:
* Losing all your lives after activating the exit with multiple people can cause the required amount of exits to go into the negatives.
* Map has a possibility to advance several times over with multiple players.
* Timer resets when an exit was never activated and a player disconnects.
* Hud hints do not display sometimes when a player activates the exit.

Added:
* Improved Functionality in Survival

11/25/2017 -- RC1
Initial Release
Last edited by BlushBerry on Wed Sep 04, 2019 7:27 am, edited 30 times in total.

User avatar
Empyre
Zandrone
Posts: 1316
Joined: Sun Jul 08, 2012 6:41 am
Location: Garland, TX, USA

[ALPHA] Re: Cooperative Exits Alpha RC1

#2

Post by Empyre » Sun Nov 26, 2017 1:35 am

I like this idea. I might implement something similar in my UDMF maps. How are you handling multiple exit lines, like an exit teleport pad? What about a secret exit?
"For the world is hollow, and I have touched the sky."

User avatar
BlushBerry
 
Posts: 90
Joined: Tue Apr 26, 2016 11:12 pm
Location: root
Clan: Nuclear Empire
Clan Tag: [NE]
Contact:

[ALPHA] Re: Cooperative Exits Alpha RC1

#3

Post by BlushBerry » Sun Nov 26, 2017 3:12 am

Empyre wrote:
Sun Nov 26, 2017 1:35 am
I like this idea. I might implement something similar in my UDMF maps. How are you handling multiple exit lines, like an exit teleport pad? What about a secret exit?
I'm using something called xlat which is a map translator. It was originally made for compatibility purposes but I'm using it to modify existing action numbers within a map.
Keep in mind however xlat is not compatible with UDMF formats. If you wanted to do this you'll need to put it in your map directly.

Secret Exits are not entirely handled 100% with this version as of yet considering this is just an Alpha Release Candidate.

It's all open source so you can also look in the acs source itself.


The xlat code in the xlat folder and for your convinence I'll post it here.

Code: Select all

#include "xlat/doom.txt"
//Unavailable because xlat does not work with UDMF These can be uncommented if UDMF support is ever available for xlat.
//243 = USE|REP, ACS_ExecuteAlways(17293 , 0, 0, 0, 0) //Exit_Normal (0), Exit Level switch (UDMF)
//244 = USE|REP, ACS_ExecuteAlways(17293 , 0, 1, 0, 0) //Exit_Secret (0), Exit Level switch secret (UDMF)
//75 = USE|REP, ACS_ExecuteAlways(17293 , 0, 0, 0, 0) //Exit_EndGame (0), Exit Level Endgame (UDMF)
//75 = WALK|REP, ACS_ExecuteAlways(17293 , 0, 0, 0, 0) //Exit_EndGame (0), Exit Level walk Endgame (UDMF)
11 = USE|REP, ACS_ExecuteAlways(17293 , 0, 0, 0, 0) //Exit_Normal (0), Exit Level switch (Boom)
51 = USE|REP, ACS_ExecuteAlways(17293 , 0, 1, 0, 0) //Exit_Secret (0), Exit Level switch secret (Boom)
52 = WALK|REP, ACS_ExecuteAlways(17293 , 0, 0, 0, 0) //Exit_Normal (0) Exit Level walk (Boom)
124 = WALK|REP, ACS_ExecuteAlways(17293 , 0, 1, 0, 0) //Exit_Secret (0) Exit Level walk secret (Boom)
197 = SHOOT|REP, ACS_ExecuteAlways(17293 , 0, 1, 0, 0) //Exit_Normal (0), Exit Level Shoot (Boom)
198 = SHOOT|REP, ACS_ExecuteAlways(17293 , 0, 1, 0, 0) //Exit_Secret (0), Exit Level Shoot Secret (Boom)
The syntax is as follows:

<action number> = <USE|REP|WALK|SHOOT|MONST|MONWALK|FIRSTSIDE>, ACS_ExecuteAlways(<Script Number> , 0, 0, 0, 0)

Action number corresponds to the map formats action number so when this action number is activated it executes a script instead essentially overriding it.

The second are flags

Code: Select all

WALK -- When a player walks into the exit
USE -- When a player uses the exit
SHOOT -- When a player shoots the exit
MONST -- Not entirely sure but I think it's when you kill a monster that triggers an exit.
MONWALK -- When a monster walks into the exit
REP -- Is this action repeatable or not?
FIRSTSIDE -- Have no clue. 

Code: Select all

ACS_ExecuteAlways(<Script Number> , 0, 0, 0, 0)
I have no clue what the numbers at the end do to be completely honest with you. Sorry.

Also you need to include in a file called MAPINFO with something like this in it

Code: Select all

GameInfo
{
translator = "xlat/<translatorname>.txt"
}
Not sure if this is what you were asking but here you go anyway!

User avatar
BlushBerry
 
Posts: 90
Joined: Tue Apr 26, 2016 11:12 pm
Location: root
Clan: Nuclear Empire
Clan Tag: [NE]
Contact:

[ALPHA] Re: Cooperative Exits Alpha RC1

#4

Post by BlushBerry » Sun Nov 26, 2017 6:24 am

I've released a hotfixed version of Cooperative Exits mainly regarding survival functionality, Download and Mirrors have been updated! Check the changelogs to see a list of fixes and additions!

User avatar
Ivan
Addicted to Zandronum
Posts: 2219
Joined: Mon Jun 04, 2012 5:38 pm
Location: Omnipresent

[ALPHA] Re: Cooperative Exits Alpha RC1

#5

Post by Ivan » Sun Nov 26, 2017 10:07 am

What happens with death exits?
=== RAGNAROK DM ON ... uh... dead forever? ===
=== ALWAYS BET ON ... uh... dead forever? ===
=== Who wanta sum wang? ===
=== Death and Decay - A new Monster/Weapon replacer ===

User avatar
BlushBerry
 
Posts: 90
Joined: Tue Apr 26, 2016 11:12 pm
Location: root
Clan: Nuclear Empire
Clan Tag: [NE]
Contact:

[ALPHA] Re: Cooperative Exits Alpha RC1

#6

Post by BlushBerry » Sun Nov 26, 2017 10:16 am

Ivan wrote:
Sun Nov 26, 2017 10:07 am
What happens with death exits?
Nothing, The map just exits.

Same with killing monsters to trigger an exit, Killing Romero head, Monsters that walk on the exit, Etc. Anything that the player doesn't Directly interact with eg. Shooting, using, or walking. Reason behind this is because It's a bit hard to make the above repeatable and handle it properly.

Do you suggest I see if I can add a way to handle death exits? If so could you explain to me the benefits of adding that in? I guess I haven't seen enough maps with death exits to warrant any sort of intercept from this addon, But I'm not close-minded to the idea!

(Absolutely love your mod Death and Decay by the way, big fan <3)

mifu
Retired Staff / Community Team Member
Posts: 1075
Joined: Tue May 29, 2012 10:34 am
Location: Aussie Land
Clan: Demon RiderZ

[ALPHA] Re: Cooperative Exits Alpha RC1

#7

Post by mifu » Sun Nov 26, 2017 10:42 am

Scythe 2 has a few of them. So does a few other mapsets.

User avatar
Ivan
Addicted to Zandronum
Posts: 2219
Joined: Mon Jun 04, 2012 5:38 pm
Location: Omnipresent

[ALPHA] Re: Cooperative Exits Alpha RC1

#8

Post by Ivan » Sun Nov 26, 2017 11:28 am

Polygon wrote:
Sun Nov 26, 2017 10:16 am
Ivan wrote:
Sun Nov 26, 2017 10:07 am
What happens with death exits?
Nothing, The map just exits.
There are quite a few map packs that utilize a death exit to enforce player to start with a pistol. In such cases the guy could still rush in and exploit, at the expense of his weapons of course. I'm also curious to see if they can be detected at all, I tried doing so sometime ago for DnD with no success. Maybe you can find something :P
=== RAGNAROK DM ON ... uh... dead forever? ===
=== ALWAYS BET ON ... uh... dead forever? ===
=== Who wanta sum wang? ===
=== Death and Decay - A new Monster/Weapon replacer ===

User avatar
BlushBerry
 
Posts: 90
Joined: Tue Apr 26, 2016 11:12 pm
Location: root
Clan: Nuclear Empire
Clan Tag: [NE]
Contact:

[ALPHA] Re: Cooperative Exits Alpha RC1

#9

Post by BlushBerry » Sun Nov 26, 2017 11:48 am

Ivan wrote:
Sun Nov 26, 2017 11:28 am
Polygon wrote:
Sun Nov 26, 2017 10:16 am
Ivan wrote:
Sun Nov 26, 2017 10:07 am
What happens with death exits?
Nothing, The map just exits.
There are quite a few map packs that utilize a death exit to enforce player to start with a pistol. In such cases the guy could still rush in and exploit, at the expense of his weapons of course. I'm also curious to see if they can be detected at all, I tried doing so sometime ago for DnD with no success. Maybe you can find something :P
Thank you for your input, I can see now that death exits are important!
I will most certainly see what I can do and update if I am successful :o!

User avatar
Empyre
Zandrone
Posts: 1316
Joined: Sun Jul 08, 2012 6:41 am
Location: Garland, TX, USA

[ALPHA] Re: Cooperative Exits Alpha RC1

#10

Post by Empyre » Sun Nov 26, 2017 7:14 pm

I was talking about including some acs in my UDMF maps. I'll look at your acs to see if I can figure it out.

This explains what those numbers do: https://zdoom.org/wiki/ACS_ExecuteAlways
"For the world is hollow, and I have touched the sky."

User avatar
BlushBerry
 
Posts: 90
Joined: Tue Apr 26, 2016 11:12 pm
Location: root
Clan: Nuclear Empire
Clan Tag: [NE]
Contact:

[ALPHA] Re: Cooperative Exits Alpha RC1

#11

Post by BlushBerry » Sun Nov 26, 2017 10:25 pm

Ivan wrote:
Sun Nov 26, 2017 11:28 am
Polygon wrote:
Sun Nov 26, 2017 10:16 am
Ivan wrote:
Sun Nov 26, 2017 10:07 am
What happens with death exits?
Nothing, The map just exits.
There are quite a few map packs that utilize a death exit to enforce player to start with a pistol. In such cases the guy could still rush in and exploit, at the expense of his weapons of course. I'm also curious to see if they can be detected at all, I tried doing so sometime ago for DnD with no success. Maybe you can find something :P
It would be much easier to do if there was some sort of "DEATH" flag for xlat. However I am not finding any. I'm looking in here for available flags https://github.com/rheit/zdoom/blob/mas ... /defines.i However all I'm seeing is the ones I mentioned earlier...

If I were to pull this off to detect death exits it would look something like this

Code: Select all

11 = DEATH|REP, ACS_ExecuteAlways(17293 , 0, 0, 0, 0) //Exit_Normal (0), Exit Level switch (Boom/Vanilla)
Unfortunately... I don't believe this is possible :(... At least to my knowledge.

User avatar
Ivan
Addicted to Zandronum
Posts: 2219
Joined: Mon Jun 04, 2012 5:38 pm
Location: Omnipresent

[ALPHA] Re: Cooperative Exits Alpha RC1

#12

Post by Ivan » Sun Nov 26, 2017 11:25 pm

I really wish there was a "EXIT" event that triggered before a map was about to exit. That'd really help make things a lot easier for us. The script type would also put on hold the map transition until it was done so you could do fancy things like a custom intermission and such...
=== RAGNAROK DM ON ... uh... dead forever? ===
=== ALWAYS BET ON ... uh... dead forever? ===
=== Who wanta sum wang? ===
=== Death and Decay - A new Monster/Weapon replacer ===

User avatar
BlushBerry
 
Posts: 90
Joined: Tue Apr 26, 2016 11:12 pm
Location: root
Clan: Nuclear Empire
Clan Tag: [NE]
Contact:

[ALPHA] Re: Cooperative Exits Alpha RC1

#13

Post by BlushBerry » Tue Nov 28, 2017 9:47 pm

Ivan wrote:
Sun Nov 26, 2017 11:25 pm
I really wish there was a "EXIT" event that triggered before a map was about to exit. That'd really help make things a lot easier for us. The script type would also put on hold the map transition until it was done so you could do fancy things like a custom intermission and such...
You mean like an EXIT script type for ACS? Yeah that would be nice. I wonder if theres a tracker case for it :D?

User avatar
BlushBerry
 
Posts: 90
Joined: Tue Apr 26, 2016 11:12 pm
Location: root
Clan: Nuclear Empire
Clan Tag: [NE]
Contact:

[ALPHA] Re: Cooperative Exits Alpha RC1

#14

Post by BlushBerry » Sat Dec 23, 2017 1:59 am

Sorry for the lack of updates. Progress on getting this addon to work with survival 100% has been slow, I've been making changes and fixing things here and there but I haven't really been able to sit down and just spend an entire day to work on it. I have mainly been busy during the holidays. So development on this should pick back up and be a bit faster after the new year. Hopefully I'll be able to get things fixed and release another hotfix to fix issues relating to survival before then.

User avatar
BlushBerry
 
Posts: 90
Joined: Tue Apr 26, 2016 11:12 pm
Location: root
Clan: Nuclear Empire
Clan Tag: [NE]
Contact:

[ALPHA] Re: Cooperative Exits Alpha RC1 Hotfix2

#15

Post by BlushBerry » Wed Jan 03, 2018 3:47 am

Updated to Alpha_RC1_Hotfix2! Survival should work properly now. If it doesn't please let me know.

User avatar
BlushBerry
 
Posts: 90
Joined: Tue Apr 26, 2016 11:12 pm
Location: root
Clan: Nuclear Empire
Clan Tag: [NE]
Contact:

[ALPHA] Re: Cooperative Exits Alpha RC1 Hotfix3 (Update)

#16

Post by BlushBerry » Sat Mar 17, 2018 9:14 pm

Updated to Alpha_RC1_Hotfix3! An outstanding bug has been fixed regarding players dying and then going into spectator with 2 players and the map immediately exiting.

User avatar
BlushBerry
 
Posts: 90
Joined: Tue Apr 26, 2016 11:12 pm
Location: root
Clan: Nuclear Empire
Clan Tag: [NE]
Contact:

[ALPHA] Re: Cooperative Exits Alpha RC1 Hotfix4 (Update)

#17

Post by BlushBerry » Sun Mar 25, 2018 6:52 am

Updated to Alpha_RC1_Hotfix4! We are planning on reworking the entire code to work much better to prevent any further bugs in the future.

TaporGamingBugReport
 
Posts: 49
Joined: Mon Apr 30, 2018 9:00 am
Clan: DoomBreakerMadness
Clan Tag: doombreakermdnss

[ALPHA] Re: Cooperative Exits Alpha RC1 Hotfix4 (Update)

#18

Post by TaporGamingBugReport » Fri Aug 09, 2019 3:23 pm

It's.... Dead already?

User avatar
BlushBerry
 
Posts: 90
Joined: Tue Apr 26, 2016 11:12 pm
Location: root
Clan: Nuclear Empire
Clan Tag: [NE]
Contact:

[ALPHA] Re: Cooperative Exits Alpha RC1 Hotfix4 (Update)

#19

Post by BlushBerry » Wed Sep 04, 2019 7:25 am

TaporGamingBugReport wrote:
Fri Aug 09, 2019 3:23 pm
It's.... Dead already?
No, I've just been very busy with work, my relationship with my partner, and various things within Nuclear Empire.

Post Reply