Jump to content
Sign in to follow this  
massasster

[Co-Op] Miller Time

Recommended Posts

millertime.jpg

You have played "The Longest Day", now the follow up: Miller Time!

Requirements: None

Features:

* Revive

* Vehicles re-spawn back at base

* Mobile HQ

* Random foot patrols in the towns

* Base location re-spawn on death

* Virtual Ammobox System (VAS)

* Ambient Radio Chatter

* Grenade stop (Prevent players from TKing in base)

* FHQ TaskTracker

* HelmetCam

Description: Alpha Team's Longest Day Has Ended, Welcome Bravo Team

12 player side based co-op.

Objective: Complete all assigned tasks.

Intel: A brutal dictator is attempting to take control of the island. Many people of the local population have created resistance groups to take on the OPFOR soldiers, in response to the uprising, chemical weapons have been used on the Island to eliminate many of the local population. A good majority of the island is still highly toxic, marked in RED where we believe it to be unsafe to enter. You will be updated via the SCRAM message system (TASKS) with your EVAC location once you have completed all of your mission tasks

7A117A68610A4497DA5A9E975E37202AE0AAC559

Download

http://steamcommunity.com/sharedfiles/filedetails/?id=179323455

Note: The expected game play time averages around 90-120 minutes, so plan for a long play session.

Please update this thread with any issues or suggestions as this is a work in progress -

A big thanks to Nomadd & all the scripting contributors

Edited by MassAsster

Share this post


Link to post
Share on other sites

Looking forward to another good mission :)

Would it be possible to change the BTC revive parameter into multiple ones? One for revive on/off, one for mobile spawn, one for Medic revive only.

We use medic-only revive and no mobile respawns but I can change those in the editor myself if it's not possible to add to params :)

Edited by Watarimono

Share this post


Link to post
Share on other sites

It should be quite easy to do that - I can set that up for the next dev version I do for it.

I MAY have a small performance issue around the 2nd objective at the moment, looking into that anyway :*)

---------- Post added at 10:55 ---------- Previous post was at 10:00 ----------

=BTC=_revive_init.sqf

/*
Created by =BTC= Giallustio
version 0.9
Visit us at: 
http://www.blacktemplars.altervista.org/
06/03/2012
*/

////////////////// EDITABLE \\\\\\\\\\\\\\\\\\\\\\\\\\
BTC_revive_time_min = 5;
BTC_revive_time_max = 600;
BTC_who_can_revive  = ["(paramsarray select 17)"];
BTC_loop_check      = 0;
BTC_disable_respawn = 0;
BTC_respawn_gear    = 1;
BTC_active_lifes    = 1;
BTC_lifes           = (paramsarray select 18);
BTC_black_screen    = 0;//Black screen + button while unconscious or action wheel and clear view
BTC_action_respawn  = 0;//if black screen is set to 0 you can choose if you want to use the action wheel or the 
button. Keep in mind that if you don't use the button, the injured player can use all the action, frag too....
BTC_respawn_time    = 0;
BTC_active_mobile   = (paramsarray select 19);//Active mobile respawn (You have to put in map the vehicle and 
give it a name. Then you have to add one object per side to move to the mobile 
(BTC_base_flag_west,BTC_base_flag_east) - (1 = yes, 0 = no))
BTC_mobile_respawn  = (paramsarray select 19);//Active the mobile respawn fnc (1 = yes, 0 = no)
BTC_mobile_respawn_time = 30;//Secs delay for mobile vehicle to respawn
BTC_need_first_aid = (paramsarray select 20);//You need a first aid kit to revive (1 = yes, 0 = no)
BTC_pvp = 0; //(disable the revive option for the enemy)
BTC_injured_marker = 1;
BTC_objects_actions_west = [bTC_base_flag_west];
BTC_objects_actions_east = [bTC_base_flag_east];
BTC_objects_actions_guer = [];
BTC_objects_actions_civ  = [];
if (isServer) then
{
BTC_vehs_mobile_west = [hunter_respawn];//Editable - define mobile west
BTC_vehs_mobile_east = [mobile_east_0];//Editable - define mobile east
BTC_vehs_mobile_guer = [];//Editable - define mobile independent
BTC_vehs_mobile_civ  = [];//Editable - define mobile civilian
};
////////////////// Don't edit below \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

//FNC
call compile preprocessFile "=BTC=_revive\=BTC=_functions.sqf";

if (isServer) then
{
//Mobile
BTC_vehs_mobile_west_str = [];BTC_vehs_mobile_east_str = [];BTC_vehs_mobile_guer_str = [];
if (BTC_active_mobile == 1 && count BTC_vehs_mobile_west != 0) then {for "_i" from 0 to ((count 
BTC_vehs_mobile_west) - 1) do {_veh = (BTC_vehs_mobile_west select _i);_var = str (_veh);BTC_vehs_mobile_west_str 
= BTC_vehs_mobile_west_str + [_var];_veh setVariable ["BTC_mobile_west",_var,true];if (BTC_mobile_respawn == 1) 
then {_resp = [_veh,_var,"BTC_mobile_west"] spawn BTC_vehicle_mobile_respawn;};};} else {{deleteVehicle _x} 
foreach BTC_vehs_mobile_west;};
if (BTC_active_mobile == 1 && count BTC_vehs_mobile_east != 0) then {for "_i" from 0 to ((count 
BTC_vehs_mobile_east) - 1) do {_veh = (BTC_vehs_mobile_east select _i);_var = str (_veh);BTC_vehs_mobile_east_str 
= BTC_vehs_mobile_east_str + [_var];_veh setVariable ["BTC_mobile_east",_var,true];if (BTC_mobile_respawn == 1) 
then {_resp = [_veh,_var,"BTC_mobile_east"] spawn BTC_vehicle_mobile_respawn;};};} else {{deleteVehicle _x} 
foreach BTC_vehs_mobile_east;};
if (BTC_active_mobile == 1 && count BTC_vehs_mobile_guer != 0) then {for "_i" from 0 to ((count 
BTC_vehs_mobile_guer) - 1) do {_veh = (BTC_vehs_mobile_guer select _i);_var = str (_veh);BTC_vehs_mobile_guer_str 
= BTC_vehs_mobile_guer_str + [_var];_veh setVariable ["BTC_mobile_guer",_var,true];if (BTC_mobile_respawn == 1) 
then {_resp = [_veh,_var,"BTC_mobile_guer"] spawn BTC_vehicle_mobile_respawn;};};} else {{deleteVehicle _x} 
foreach BTC_vehs_mobile_guer;};
if (BTC_active_mobile == 1 && count BTC_vehs_mobile_civ != 0) then {for "_i" from 0 to ((count 
BTC_vehs_mobile_civ) - 1) do {_veh = (BTC_vehs_mobile_civ select _i);_var = str (_veh);BTC_vehs_mobile_civ_str = 
BTC_vehs_mobile_civ_str + [_var];_veh setVariable ["BTC_mobile_civ",_var,true];if (BTC_mobile_respawn == 1) then 
{_resp = [_veh,_var,"BTC_mobile_civ"] spawn BTC_vehicle_mobile_respawn;};};} else {{deleteVehicle _x} foreach 
BTC_vehs_mobile_civ;};
if (BTC_active_mobile == 1) then {publicVariable "BTC_vehs_mobile_west_str";publicVariable 
"BTC_vehs_mobile_east_str";publicVariable "BTC_vehs_mobile_guer_str";publicVariable "BTC_vehs_mobile_civ_str";};
//
BTC_killed_pveh = [];publicVariable "BTC_killed_pveh";
BTC_drag_pveh = [];publicVariable "BTC_drag_pveh";
BTC_marker_pveh = [];publicVariable "BTC_marker_pveh";
BTC_load_pveh = [];publicVariable "BTC_load_pveh";
BTC_pullout_pveh = [];publicVariable "BTC_pullout_pveh";
};
if (isDedicated) exitWith {};

BTC_dragging = false;
BTC_respawn_cond = false;
//Init
[] spawn
{
waitUntil {!isNull player};
waitUntil {player == player};
"BTC_drag_pveh" addPublicVariableEventHandler BTC_fnc_PVEH;
"BTC_marker_pveh" addPublicVariableEventHandler BTC_fnc_PVEH;
"BTC_load_pveh" addPublicVariableEventHandler BTC_fnc_PVEH;
"BTC_pullout_pveh" addPublicVariableEventHandler BTC_fnc_PVEH;
"BTC_killed_pveh" addPublicVariableEventHandler BTC_fnc_PVEH;
player addRating 9999;
BTC_side = playerSide;
BTC_respawn_marker = format ["respawn_%1",side player];
if (BTC_respawn_marker == "respawn_guer") then {BTC_respawn_marker = "respawn_guerrila";};
if (BTC_respawn_marker == "respawn_civ") then {BTC_respawn_marker = "respawn_civilian";};
if (BTC_respawn_gear == 1) then {player addEventHandler ["HandleDamage", BTC_fnc_handledamage];};
player addEventHandler ["Killed", BTC_player_killed];
player setVariable ["BTC_need_revive",0,true];
if ([player] call BTC_is_class_can_revive) then {player addAction [("<t color=""#ED2744"">") + ("First 
aid") + "</t>","=BTC=_revive\=BTC=_addAction.sqf",[[],BTC_first_aid], 8, true, true, "", "[] call 
BTC_check_action_first_aid"];};
player addAction [("<t color=""#ED2744"">") + ("Drag") + "</t>","=BTC=_revive\=BTC=_addAction.sqf",
[[],BTC_drag], 8, true, true, "", "[] call BTC_check_action_drag"];
player addAction [("<t color=""#ED2744"">") + ("Pull out injured") + "</t>","=BTC=_revive
\=BTC=_addAction.sqf",[[],BTC_pull_out], 8, true, true, "", "[] call BTC_pull_out_check"];
if (BTC_active_mobile == 1) then 
{
	switch (true) do
	{
		case (side player == west) : {{private ["_veh"];_veh = _x;_spawn = [_x] spawn 
BTC_mobile_marker;{_x addAction [("<t color=""#ED2744"">") + ("Move to mobile " + _veh) + "</t>","=BTC=_revive
\=BTC=_addAction.sqf",[[_veh],BTC_move_to_mobile], 8, true, true, "", format ["[%1] call 
BTC_mobile_check",_veh]];} foreach BTC_objects_actions_west;} foreach BTC_vehs_mobile_west_str;};
		case (side player == east) : {{private ["_veh"];_veh = _x;_spawn = [_x] spawn 
BTC_mobile_marker;{_x addAction [("<t color=""#ED2744"">") + ("Move to mobile " + _veh) + "</t>","=BTC=_revive
\=BTC=_addAction.sqf",[[_veh],BTC_move_to_mobile], 8, true, true, "", format ["[%1] call 
BTC_mobile_check",_veh]];} foreach BTC_objects_actions_east;} foreach BTC_vehs_mobile_east_str;};
		case (side player == guer) : {{private ["_veh"];_veh = _x;_spawn = [_x] spawn 
BTC_mobile_marker;{_x addAction [("<t color=""#ED2744"">") + ("Move to mobile " + _veh) + "</t>","=BTC=_revive
\=BTC=_addAction.sqf",[[_veh],BTC_move_to_mobile], 8, true, true, "", format ["[%1] call 
BTC_mobile_check",_veh]];} foreach BTC_objects_actions_guer;} foreach BTC_vehs_mobile_guer_str;};
		case (side player == civ) : {{private ["_veh"];_veh = _x;_spawn = [_x] spawn 
BTC_mobile_marker;{_x addAction [("<t color=""#ED2744"">") + ("Move to mobile " + _veh) + "</t>","=BTC=_revive
\=BTC=_addAction.sqf",[[_veh],BTC_move_to_mobile], 8, true, true, "", format ["[%1] call 
BTC_mobile_check",_veh]];} foreach BTC_objects_actions_civ;} foreach BTC_vehs_mobile_civ_str;};
	};
};
BTC_gear = [] call BTC_get_gear;
if (BTC_loop_check == 1) then {[] spawn BTC_revive_loop;};
//[] spawn {while {true} do {sleep 0.5;hintSilent format ["%1",BTC_gear];};};
BTC_revive_started = true;
hint "REVIVE STARTED";
};

description.ext

#include "gear\common.hpp"
#include "gear\menu.hpp"
#include "=BTC=_revive\=BTC=_respawn.h"
#include "FOCKRecruitAI\RecruitMenu.hpp" //game settings for ingame GUI
author = MassAsster;
onLoadName = It's Miller Time V.1;
loadScreen = "massasster.jpg";
disabledAI = true;
onLoadMission="=BTC= REVIVE, =BTC= TK Punish, SLP Spawning script, Virtual Ammobox, FHQ TaskTracker, Ambient Radio Chatter, Grenade Stop, Helmetcam, Pilot Check, Transport and Urban Patrol Script";
class CfgSounds
{
// List of sounds (.ogg files without the .ogg extension)
sounds[] = {INTRO};

// Definition for each sound
class INTRO
{
// Name for mission editor
name = "INTRO"; 
//Path of the .ogg file. since it's in the same folder just use the filename
sound[] = {INTRO.ogg, db+2, 1.0}; 
titles[] = {};
};

};

class Header
{
gameType = Coop;
minPlayers = 1;
maxPlayers = 12;
};
respawn = "BASE";
respawndelay = 3;
respawnDialog = 0;
class Params
{

               class bombstop
       {
	// paramsArray[0]
               title = "Stop Bombs and Firing inside The Base";
               values[] = {0,1};
               texts[] = {"Disabled","Enabled"};
               default = 1;
       };
	class pilotchecker
       {
	// paramsArray[1]
               title = "Only Pilots Can Fly";
               values[] = {0,1};
               texts[] = {"No", "Yes"};
               default = 1;
       };
	class helmcam
       {
	// paramsArray[2]
               title = "Helmet Cam (requires glasses and helmet)";
               values[] = {0,1};
               texts[] = {"No", "Yes"};
               default = 1;
       };
	class punisher
       {
	// paramsArray[3]
               title = "=BTC= Team Kill Punishment";
               values[] = {0,1};
               texts[] = {"Off", "On"};
               default = 1;
       };
	class revive
       {
	// paramsArray[4]
               title = "=BTC= Revive and Mobile Respawn";
               values[] = {0,1};
               texts[] = {"Off", "On"};
               default = 1;
       };
	class toxiczone
       {
	// paramsArray[5]
               title = "Toxic Zones";
               values[] = {0,1};
               texts[] = {"Safe","Deadly"};
               default = 1;
       };
	class transport
       {
	// paramsArray[6]
               title = "Helicopters Can Lift Vehicles";
               values[] = {0,1};
               texts[] = {"No", "Yes"};
               default = 1;
       };
	class skill
       {
	// paramsArray[7]
               title = "AI Skill Level";
               values[] = {"0.01,0.20","0.30,0.50","0.50,1.0"};
               texts[] = {"Easy", "Med", "Hard"};
               default = "0.01,0.20";
       };
	class suppress
       {
	// paramsArray[8]
               title = "AI Suppression (requires CBA MOD)";
               values[] = {0,1};
               texts[] = {"No", "Yes"};
               default = 0;
       };
	class airtaxi
       {
	// paramsArray[9]
               title = "Air Taxi (AI Controlled EVAC)";
               values[] = {0,1};
               texts[] = {"No", "Yes"};
               default = 0;
       };
	//paramarray 10
	class EmptySpace 
      { 
	title="----[FOCK] AI Recruit Options------------------"; 
	values[]={0,0};
	texts[]={ "",""};
	default = 0;	
	};

//	
      //paramarray 11
	class FockMenuControl 
      { 
	title="    [FOCK] Group/Recruit Menu On/Off"; 
	values[]={ 1,0 }; 
	texts[]={ "Enabled","Disabled"}; 
	default=0; 
	code = ""; 
	};

	//paramarray 12
	class FockRecControl 
      { 
	title="    [FOCK] Recruit On/Off"; 
	values[]={ 1,0 }; 
	texts[]={ "Enabled","Disabled"}; 
	default=0; 
	code = ""; 
	};

//		
	//paramarray 13
	class FockRecAmount 
      { 
	title="    [FOCK] Recruit AI Amount"; 
	values[]={ 1,2,3,4,5,6,7,8,9,10 }; 
	texts[]={ "1","2","3","4","5","6","7","8","9","10"}; 
	default= 3; 
	code = ""; 
	};

	//paramarray 14	
	class FockDeleteAI 
      { 
	title="    [FOCK] Delete AI on Leaving Group"; 
	values[]={ 0,1 }; 
	texts[]={ "No","Yes"}; 
	default= 1; 
	code = ""; 
	};

	//paramarray 15		
	class FockEmptyGrpDelete 
      { 
	title="    [FOCK] Delete Empty Groups"; 
	values[]={ 0,1 }; 
	texts[]={ "No","Yes"}; 
	default= 1; 
	code = ""; 
	};

	//paramarray 16
	class EmptySpace2 
      { 
	title="----[bTC REVIVE] Options------------------"; 
	values[]={0,0};
	texts[]={ "",""};
	default = 0;	
	};

	class btcwhocan
       {
	// paramsArray[17]
               title = "Who Can Revive Downed Players";
               values[] = {"Man","B_medic_F"};
               texts[] = {"Everyone", "Medic"};
               default = "Man";
       };

	class btclives
       {
	// paramsArray[18]
               title = "Respawn Lives";
               values[] = {"5","10","15","20","25","30","35","40"};
               texts[] = {"5","10","15","20","25","30","35","40"};
               default = "20";
       };

	class btcmobilespawn
       {
	// paramsArray[19]
               title = "Mobile Hunter Respawn";
               values[] = {"0","1"};
               texts[] = {"Disabled", "Enabled"};
               default = "1";
       };

	class btcmedkit
       {
	// paramsArray[20]
               title = "First Aid Kit Needed To Revive";
               values[] = {"0","1"};
               texts[] = {"No", "Yes"};
               default = "1";
       };
};



these changes should do it

Edited by MassAsster

Share this post


Link to post
Share on other sites

Nice.

Will give it a go tonight, add some radios etc and then testrun it

Share this post


Link to post
Share on other sites

Using dev version.

Four testruns without BTC alterations:

- Insertion choppers Air 1 & 2 never landed, just circling the area until either I got killed or the pilot got killed and crashed.

The choppers are invincible but not the pilots

- Opfor were busy firing at the hovering Air2 NW of airfield and payed no attention to me at all, I could walk among them and pick them off one by one

With BTC alterations:

- Got a script error at start, haven't had time to investigate further

- Same behaviour with choppers, pilots and opfor as before.

Edited by Watarimono

Share this post


Link to post
Share on other sites

hummm

Uploaded a new DEV build -

not seeing a scripting error - on the one I just uploaded, I included the changes you requested with this dev build - let me know

Edited by MassAsster

Share this post


Link to post
Share on other sites

Fast Patch

Update V1a

*Added BTC Revive Options

*Changed Method of insertion from Helicopter to Boat to resolve an issue with AI Difficulty set above Easy.

Share this post


Link to post
Share on other sites

Gave it a SweBat overhaul and gonna run it on our next gamenight.

SweBat overhaul:

- Add ACRE, FHQ M4, MP7, R3F Armes.

- Change team layout to 2x 5man fireteams, 2man recongroup, 2man pilotgroup.

Will return with a debrief of the mission later on.

Share this post


Link to post
Share on other sites

Yeah please let me know, I'm showing a big hit on performance when I enter the city, but I generally do anyway. Hard to tell what is me, and what is the AI bogging down the area.

If need be that area will get tweaked a bunch.

A quick run through last night for me did not allow me to use the who can revive option - that seems to be broken at the moment - I will look into that- suggest you set that as you normally do and not rely on the parameters settings

Edited by MassAsster

Share this post


Link to post
Share on other sites

Ok, I BELIEVE I resolved the performance issues , Releasing version 1b

(will update the DEV version as well)

UPDATE

V1b

*Fixes performance on 2nd objective.

Share this post


Link to post
Share on other sites

UPDATE

*Updated to comply with the latest stable release (58.105348)

Share this post


Link to post
Share on other sites

Update 1e

*Fixes Ai difficulty settings

*Adds ability to set Everyone or Medic Only revive

*Updates the Virtual Ammo Box system to the latest release

Update 1d

*Fixes Ai difficulty settings

*Adds ability to set Everyone or Medic Only revive

*Updates the Virtual Ammo Box system to the latest release

I've been working on a couple of revisions of the AI and Revive settings, most have been rather buggy, This should fix these issues and allow the host (or admin) under the parameters setting to choose the CORRECT difficulty for the AI as well as fix the Who can Revive option to allow everyone to revive, or just medics. This map in particular was jacked up with some bad triggers because of several revisions and having to back and forth between DEV and stable - the DEV was years ahead of the stable release at the time. This should all be corrected.

Edited by MassAsster

Share this post


Link to post
Share on other sites

updated to comply with the newest patch (60)

Updated VAS to the latest release.

(hopefully fixed your lag issue inf25th)

Share this post


Link to post
Share on other sites

Is there really a need to inflate all the missions? 3-5 mb per mission? 1.5 mb tpw houselights?

Share this post


Link to post
Share on other sites

Honestly, nope, not really. I could have thinned out the scripts a bit, but a meg +/- here or there didn't seem to make a whole lot of difference in the greater picture... I guess it might hurt those on dial up, but who is left on dial up?

Share this post


Link to post
Share on other sites

Updated for the latest patch release - because BIS can't leave well enough alone with the static buildings...

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×