Jump to content
Sign in to follow this  
caeden

Custom Zeus MP Gamemode Spawn Menu

Recommended Posts

So I've looked everywhere and I can't find it. What I'm trying to do is have the start of my mission identical to that of the default ZGM missions, with the Respawn UI and that Zeus has to create a respawn point for the units to actually spawn. Any ideas how this is done in the editor?

Failing that, how can I open a ZGM mission in the editor and look how BI have done it? That would make it a LOT easier.

Thanks.

*Update*

I seem to have found the menu, now to actually get it to work.

respawnTemplatesWest[] = {"MenuInventory","MenuPosition"};

respawndelay = 1;

No luck with that yet.

respawn = "BASE";

respawndelay = 1;

respawnDialog = 1;

respawnTemplates[] = {"MenuPosition","MenuInventory"};

respawnOnStart = 1;

So this works, there is still a default spawn location though. Also, The inventory menu is empty.

*Update*

Success! With the scripts below, I have managed to get the respawn to work! The initial spawn is still there though, that is my next hurdle.

Description.exe

//-------------------------------------------RESPAWN SETTINGS----------------------------------------------------------------

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

respawn = "BASE";

respawndelay = 1;

respawnDialog = 1;

respawnTemplates[] = {"MenuPosition","MenuInventory"};

respawnOnStart = 1;

class CfgRespawnInventory

{

class WEST1

{

vehicle = "B_soldier_SL_F"

};

class WEST2

{

vehicle = "B_soldier_AR_F"

};

class WEST3

{

vehicle = "B_soldier_LAT_F"

};

class WEST4

{

vehicle = "B_medic_F"

};

class WEST5

{

vehicle = "B_soldier_exp_F"

};

class WEST6

{

vehicle = "B_soldier_M_F"

};

};

Init.sqf

//-------------------------------------------Loadout---------------------------------------------------------------------

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

[west, "WEST1"] call BIS_fnc_addRespawnInventory;

[west, "WEST2"] call BIS_fnc_addRespawnInventory;

[west, "WEST3"] call BIS_fnc_addRespawnInventory;

[west, "WEST4"] call BIS_fnc_addRespawnInventory;

[west, "WEST5"] call BIS_fnc_addRespawnInventory;

[west, "WEST6"] call BIS_fnc_addRespawnInventory;

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

I hope this helps someone!

Final update, this works perfectly!

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//-------------------------------------------LOADING INFO--------------------------------------------------------------------

author = "Caeden";

onLoadName = "Operation Vigilance v1.";

onLoadMission = "Beg that Zeus looks favourably on you today.";

loadScreen = "pictures\sw_ed.jpg";

//-------------------------------------------RESPAWN SETTINGS----------------------------------------------------------------

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

respawn = "BASE";

respawndelay = 1;

respawnDialog = 1;

respawnTemplates[] = {"MenuPosition","MenuInventory"};

respawnOnStart = 1;

disabledAI = 1;

joinUnassigned = 1;

aiKills = 1;

class CfgRespawnInventory

{

class WEST1

{

vehicle = "B_soldier_SL_F" ///Squad Leader

};

class WEST2

{

vehicle = "B_medic_F" ///Combat Life Saver

};

class WEST3

{

vehicle = "B_soldier_LAT_F" ///AT

};

class WEST4

{

vehicle = "B_soldier_AR_F" ///Autorifleman

};

class WEST5

{

vehicle = "B_Soldier_F" ///Rifleman

};

class WEST6

{

vehicle = "B_soldier_repair_F" ///Repair Specialist

};

class WEST7

{

vehicle = "B_sniper_F" ///Marksman

};

class WEST8

{

vehicle = "B_Helipilot_F" ///Heli Pilot

};

};

//-------------------------------------------GAMETYPE-----------------------------------------------------------------------

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

class Header

{

gameType = ZGM;

minPlayers = 1;

maxPlayers = 32;

};

class Params

{

class CuratorUnlock

{

title = "God mode (Zeus starts with everything unlocked)"; //--- ToDo: Localize

values[] = {0,1};

texts[] = {$STR_DISABLED,$STR_ENABLED}; //--- ToDo: Localize

default = 1;

};

class CuratorModeratorRights

{

title = "Game Moderator rights"; //--- ToDo: Localize

values[] = {0,1,2};

texts[] = {"Cannot create objects (only editing is allowed)","Can create all objects","Can create only modules"}; //--- ToDo: Localize

default = 1;

};

};

Edited by Caeden

Share this post


Link to post
Share on other sites

I've tried that one with no such luck. It seems Zeus generates a spawn in a random location before you can get access to the seat.

Share this post


Link to post
Share on other sites

Amazing job Caeden. Tried to imitate what you did there and pretty much works as expected. Even customized the classes that are available, but now when I start the game Zeus can't enter the game and gets stuck in the window that states that Zeus has not made a respawn point yet :j:

In preview with the editor everything works just fine.

Any idea what I could be missing?

Edit: Well got around the problem by changing the virtual entity owning zeus-module into an immortal civilian. Kinda like the idea of an immortal surfer dude checking out the puny spawning mortals.

Edited by despi

Share this post


Link to post
Share on other sites

Been trying to add custom loadouts but this is the error I get when trying to load the file in the editor:

Fugis_Zeus_Remix.Altis\description.ext, line88: '/CfgRespawnInventory.Class':'W' encountered instead of '='

I found the solution to this. After trying a bunch of different options to allow 17 different classes I had to settle for 10 (WEST0-WEST9).

Now what I'm running into is that the Repair Specialist can't repair vehicles. (Don't know if this is because the class system is basically creating a Rifleman with Repair Spec Gear or if it's something wrong with the Repair Specialist.) Every solution I found on the net required using object init lines which you can't input into vehicles spawned by Zeus. Any solutions?

I found this and it works pretty good and is really easy. http://www.armaholic.com/page.php?id=23532 If anyone can help me figure out how to remove the code that "deletes" the toolkit after a repair though I'd be happy.

Now I'm looking into adding the ability to disarm, mines and explosives. Any Suggestions? (If the pattern follows I'll have it found before anyone responds. lol.)

From what I'm seeing is that the actual class of the player is determined by the editor not by the respawn. the respawn just seems to kit you that gear. I believe. I'm going to try changing their class in the editor from Rifleman to Explosive specialist and see how that works out.

That seems to work pretty well. They still need a toolkit but they don't have to spawn as Exp. Specialist or Engineer. And now everyone can repair as long as they have a tool kit.

Edited by Fugis

Share this post


Link to post
Share on other sites

Was running my mission last night no major problems. Seems the update this morning has skewed the respawn classes. The classes don't show up and it pops up with the line error concerning respawn classes. Anyone know a work around?

Share this post


Link to post
Share on other sites

I've taken this out of the description,

class CfgRespawnInventory

{

class WEST1

{

vehicle = "B_soldier_SL_F" ///Squad Leader

};

class WEST2

{

vehicle = "B_medic_F" ///Combat Life Saver

};

class WEST3

{

vehicle = "B_soldier_LAT_F" ///AT

};

class WEST4

{

vehicle = "B_soldier_AR_F" ///Autorifleman

};

class WEST5

{

vehicle = "B_Soldier_F" ///Rifleman

};

class WEST6

{

vehicle = "B_soldier_repair_F" ///Repair Specialist

};

class WEST7

{

vehicle = "B_sniper_F" ///Marksman

};

class WEST8

{

vehicle = "B_Helipilot_F" ///Heli Pilot

};

};

..and just used this in the init.sqf instead.

//-------------------------------------------Respawn inventory Loadout-----------------------------------------------------

[west, "B_soldier_SL_F"] call BIS_fnc_addRespawnInventory; ///Squad Leader

[west, "B_medic_F"] call BIS_fnc_addRespawnInventory; ///Combat Life Saver

[west, "B_soldier_LAT_F"] call BIS_fnc_addRespawnInventory; ///AT

[west, "B_soldier_AR_F"] call BIS_fnc_addRespawnInventory; ///Autorifleman

[west, "B_Soldier_F"] call BIS_fnc_addRespawnInventory; ///Rifleman

[west, "B_engineer_F"] call BIS_fnc_addRespawnInventory; ///Engineer

[west, "B_sniper_F"] call BIS_fnc_addRespawnInventory; ///Marksman

[west, "B_Helipilot_F"] call BIS_fnc_addRespawnInventory; ///Heli Pilot

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Share this post


Link to post
Share on other sites

I beg your pardon, all, but I'm not a clever man. I can see lots of lovely looking lines of code, but I can't see how it would answer my question:

How would I script in custom loadouts for my mission. Fr example, I have units with bergens and CTRG uniforms, carrying different rifles with Nightstalkers attached. Could anyone show me how one would actually go about creating a class for a player to respawn into with gear that I choose rather than the default BIS vanilla gear that the soldiers get (as a basic example, simple respawn a rifleman with a camo helmet (with the foliage sticking out of it) rather than the regular one).

Many thanks in advance.

Share this post


Link to post
Share on other sites

How would I script in custom loadouts for my mission. Fr example, I have units with bergens and CTRG uniforms, carrying different rifles with Nightstalkers attached. Could anyone show me how one would actually go about creating a class for a player to respawn into with gear that I choose rather than the default BIS vanilla gear that the soldiers get (as a basic example, simple respawn a rifleman with a camo helmet (with the foliage sticking out of it) rather than the regular one).

Somehow I had hoped that that was the way the loadout functionality was supposed to work. I never use the standard BI loadouts on my missions and the loadout functionality is practically useless for me...

Share this post


Link to post
Share on other sites

As of right now I don't believe this is possible, but you do have two options. The first option would be to place the gear down in ammo boxes for you troops, but you'd have to do this each time they respawn. That would be time consuming and not very efficient. The other more viable option would be to add Virtual Ammo Box to your mission and allow the troops to kit themselves. The problem is that the Zeus doesn't have direct control over their gear with the VAS. But the respawn issue isn't a factor as long as the soldiers save their loadout and select load on respawn in the VAS menu.

Just thought of this option though I'm not exactly sure how to implement it. You could add the gear you want on each soldier's init line in the editor and remove the respawn class menu script from the mission file. Not even sure if this would work. I am still new to mission editing. I'm not sure if you respawn if you are the same soldier entity that was in the editor and would therefore have the same init line.

Edited by Fugis

Share this post


Link to post
Share on other sites
I beg your pardon, all, but I'm not a clever man. I can see lots of lovely looking lines of code, but I can't see how it would answer my question:

How would I script in custom loadouts for my mission. Fr example, I have units with bergens and CTRG uniforms, carrying different rifles with Nightstalkers attached. Could anyone show me how one would actually go about creating a class for a player to respawn into with gear that I choose rather than the default BIS vanilla gear that the soldiers get (as a basic example, simple respawn a rifleman with a camo helmet (with the foliage sticking out of it) rather than the regular one).

Many thanks in advance.

Making custom loadouts is possible indeed by introducing new classes in the description.ext like so...

class CfgRespawnInventory
{
class CIV1
{
	vehicle = "C_man_polo_1_F";
}
class WEST1
{
	displayName = "Grenadier"; // Name visible in the menu
	icon = "\A3\ui_f\data\igui\cfg\weaponicons\GL_ca.paa"; // Icon displayed next to the name
	// Condition must return true in order for the loadout to be displayed in the menu.
	// Evaluated when the menu is opened.
	show = "side group _this == west";

	// Loadout definition, uses same entries as CfgVehicles classes
	weapons[] = {
		"arifle_MX_GL_F",
		"hgun_P07_F"
	};
	magazines[] = {
		"30Rnd_65x39_caseless_mag",
		"30Rnd_65x39_caseless_mag",
		"30Rnd_65x39_caseless_mag",
		"30Rnd_65x39_caseless_mag",
		"30Rnd_65x39_caseless_mag",
		"30Rnd_65x39_caseless_mag",
		"30Rnd_65x39_caseless_mag",
		"SmokeShell",
		"HandGrenade",
		"HandGrenade",
		"HandGrenade",
		"1Rnd_HE_Grenade_shell",
		"1Rnd_HE_Grenade_shell",
		"1Rnd_HE_Grenade_shell",
		"1Rnd_HE_Grenade_shell",
		"1Rnd_HE_Grenade_shell",
		"1Rnd_HE_Grenade_shell",
		"1Rnd_HE_Grenade_shell",
		"1Rnd_HE_Grenade_shell",
		"16Rnd_9x21_Mag",
		"16Rnd_9x21_Mag"
	};
	items[] = {
		"FirstAidKit",
		"FirstAidKit",
		"FirstAidKit",
		"FirstAidKit"
	};
	linkedItems[] = {
		"V_Chestrig_khk",
		"H_HelmetB",
		"optic_aco",
		"acc_flashlight",
		"ItemWatch"
	};
	uniformClass = "U_B_CombatUniform_mcam_tshirt";
};

class WEST2
{
	displayName = "Automatic Rifleman"; // Name visible in the menu
	icon = "\A3\ui_f\data\igui\cfg\weaponicons\MG_ca.paa"; // Icon displayed next to the name
	// Condition must return true in order for the loadout to be displayed in the menu.
	// Evaluated when the menu is opened.
	show = "side group _this == west";

	// Loadout definition, uses same entries as CfgVehicles classes
	weapons[] = {
		"LMG_Mk200_F",
		"hgun_P07_F",
	};
	magazines[] = {
		"200Rnd_65x39_cased_Box_Tracer",
		"200Rnd_65x39_cased_Box_Tracer",
		"200Rnd_65x39_cased_Box_Tracer ",
		"200Rnd_65x39_cased_Box_Tracer ",
		"SmokeShell",
		"SmokeShell",
		"SmokeShell",
		"HandGrenade",
		"HandGrenade",
		"16Rnd_9x21_Mag",
		"16Rnd_9x21_Mag"
	};
	items[] = {
		"FirstAidKit",
		"FirstAidKit",
		"FirstAidKit",
		"FirstAidKit"
	};
	linkedItems[] = {
		"V_PlateCarrier2_rgr",
		"H_HelmetB",
		"acc_flashlight",
		"ItemWatch"
	};
	uniformClass = "U_B_CombatUniform_mcam_tshirt";
	backpack = "B_AssaultPack_mcamo";
};
};

And as stated before, these lines according to the init.sqf

[civilian, "CIV1"] call BIS_fnc_addRespawnInventory;
[west, "WEST1"] call BIS_fnc_addRespawnInventory;
[west, "WEST2"] call BIS_fnc_addRespawnInventory;

Share this post


Link to post
Share on other sites
Making custom loadouts is possible indeed by introducing new classes in the description.ext like so...

You're a gentleman and a scholar!

I have one question though: Do you happen to know a list of all those weapon icons like \A3\ui_f\data\igui\cfg\weaponicons\GL_ca.paa? I have no idea how many there are, how they look like and what they're named...

Share this post


Link to post
Share on other sites
You're a gentleman and a scholar!

I have one question though: Do you happen to know a list of all those weapon icons like \A3\ui_f\data\igui\cfg\weaponicons\GL_ca.paa? I have no idea how many there are, how they look like and what they're named...

Unfortunately I don't, and can't even take the credit for the custom loadouts. Just something I found out few days ago :D

Edit: Actually did manage to dig them out. Apparently there only exists 6 of them:

aa_ca.pp (antiair)

at_ca.pp (antitank)

gl_ca.pp (grenade launcher)

mg_ca.pp (autorifle)

scuba_ca.pp (didn't check this one but I have a pretty good idea about it)

srifle_ca.pp (marksman/sniper)

Edited by despi

Share this post


Link to post
Share on other sites

what are the steps required to create the Zeus Player selection at the start of the mission?

I dropped a Zeus Game Master module down and tried to link a player. I'm guessing there are other steps to this process?

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  

×