![]() |
|
#4
|
|||
|
|||
|
Construct a pilot-specific mission menu using SetMainMenu & OnOrderMissionMenuSelected calls. Here's an example:
Code:
public override void OnOrderMissionMenuSelected(Player player, int ID, int menuItemIndex)
#region custom menu actions
{
if (ID == 0) // main menu
{
}
if (ID == 2) // blue army mission menu
{
switch (menuItemIndex)
{
case 0:
SetMainMenu(player);
break;
case 1: // Spawn Ju87 flight to Dover
BlueMissionTimer.Restart();
NextBlueMission = m_random.Next(20, 25 + 1);
// blue missions
switch (m_random.Next(1, 2 + 1))
{
case 1: // stuka staffel
#region stuka staffel
GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/aus3/blue/Ju87_a.mis");
sendScreenMessageTo(2, "Stuka staffel activated", null);
break;
#endregion
case 2: //stuka staffel
#region Stuka staffel
GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/aus3/blue/Ju87_c.mis");
sendScreenMessageTo(2, "Stuka staffel activated", null);
break;
#endregion
default: // stuka staffel
#region Stuka staffel
GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/aus3/blue/Ju87_c.mis");
sendScreenMessageTo(2, "Stuka staffel activated", null);
break;
#endregion
}
sayMessageTo(2, "Stukas");
sayMessageTo(2, "Takeoff");
Console.ForegroundColor = ConsoleColor.Green;
Console.Write(player.Name() + " ordered 'Spawn Ju87 flight to Dover' flight (OnOrderMissionMenuSelected)" + "\r\n");
Console.ResetColor();
Timeout(15 * 60, () => // reset menu in 15 minutes
{
SetMainMenu(player);
}
);
break;
case 2:
#region Heinkel staffel
GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/aus3/blue/Heinkels_c.mis");
sendScreenMessageTo(2, "Heinkel staffel activated", null);
sayMessageTo(2, "Heinkel");
sayMessageTo(2, "Takeoff");
Console.ForegroundColor = ConsoleColor.Green;
Console.Write(player.Name() + " ordered 'Heinkel staffel' flight (OnOrderMissionMenuSelected)" + "\r\n");
Console.ResetColor();
Timeout(15 * 60, () => // reset menu in 15 minutes
{
SetMainMenu(player);
}
);
break;
#endregion
case 3: // Spawn Ju87 flight to Hawkinge
#region Stuka staffel
GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/aus3/blue/Ju87_hawkinge.mis");
sendScreenMessageTo(2, "Stuka staffel activated", null);
sayMessageTo(2, "Stukas");
sayMessageTo(2, "Takeoff");
Console.ForegroundColor = ConsoleColor.Green;
Console.Write(player.Name() + " ordered 'Spawn Ju87 flight to Hawkinge' flight (OnOrderMissionMenuSelected)" + "\r\n");
Console.ResetColor();
Timeout(15 * 60, () => // reset menu in 15 minutes
{
SetMainMenu(player);
}
);
break;
#endregion
case 4: // FW200 recon Dover & Ramsgate
#region FW200 recon
GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/aus3/blue/FW200_recon.mis");
sendScreenMessageTo(2, "FW200 Condor reconnaissance flight activated", null);
sayMessageTo(2, "Condor");
sayMessageTo(2, "Takeoff");
Console.ForegroundColor = ConsoleColor.Green;
Console.Write(player.Name() + " ordered 'FW200 recon Dover & Ramsgate' flight (OnOrderMissionMenuSelected)" + "\r\n");
Console.ResetColor();
Timeout(15 * 60, () => // reset menu in 15 minutes
{
SetMainMenu(player);
}
);
break;
#endregion
case 5: // Dorniers bomb Manston airfield
#region Dorniers bomb Manston airfield
GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/aus3/blue/Do17_Manston.mis");
sendScreenMessageTo(2, "Dornier staffel activated", null);
sayMessageTo(2, "Dornier");
sayMessageTo(2, "Takeoff");
Console.ForegroundColor = ConsoleColor.Green;
Console.Write(player.Name() + " ordered 'Dorniers bomb Manston airfield' flight (OnOrderMissionMenuSelected)" + "\r\n");
Console.ResetColor();
Timeout(15 * 60, () => // reset menu in 15 minutes
{
SetMainMenu(player);
}
);
break;
#endregion
case 6:
PrintIndexAndKeysAndValues(KilledAircraft);
break;
default:
break;
}
}
if (ID == 1) // red army mission menu
{
switch (menuItemIndex)
{
case 1: // spawn hurricane squadron
RedMissionTimer.Restart();
NextRedMission = m_random.Next(20, 25 + 1);
switch (m_random.Next(1, 2 + 1))
{
case 1: // hurricane squadron
#region hurricane squadron
GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/aus3/red/hurricane_a.mis");
sendScreenMessageTo(1, "Hurricane squadron activated", null);
// sayMessageTo(1, "Prepare_For_Takeoff");
// //sayMessageTo(1, "Dover_Control_this_is_Villa_Leader_We_are_taking_off_to_intercept_now");
// Timeout(5, () => // wait 5 seconds
// {
// sayMessageTo(1, "Prepare_For_Takeoff");
// //sayMessageTo(1, "Understood_Villa_Leader_Hostiles_continue_approaching_your_sector");
// }
// );
break;
#endregion
case 2: // hurricane squadron
#region hurricane squadron
GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/aus3/red/hurricane_b.mis");
sendScreenMessageTo(1, "Hurricane squadron activated", null);
break;
#endregion
default: // hurricane squadron
#region hurricane squadron
GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/aus3/red/hurricane_b.mis");
sendScreenMessageTo(1, "Hurricane squadron activated", null);
break;
}
#endregion
//GamePlay.gpPostMissionLoad(CreateAIHurricaneFlight(player));
sayMessageTo(1, "Hurricane");
sayMessageTo(1, "Takeoff");
Console.ForegroundColor = ConsoleColor.Green;
Console.Write(player.Name() + " ordered 'hurricane squadron' flight (OnOrderMissionMenuSelected)" + "\r\n");
Console.ResetColor();
Timeout(15 * 60, () => // reset menu in 15 minutes
{
SetMainMenu(player);
}
);
break;
case 2: // send bombers to Calais France
#region Blenheim squadron
GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/aus3/red/Blenheim_Mk1.mis");
sendScreenMessageTo(1, "Blenheim squadron activated at Canterbury", null);
sayMessageTo(1, "Blenheims");
sayMessageTo(1, "Takeoff");
Console.ForegroundColor = ConsoleColor.Green;
Console.Write(player.Name() + " ordered 'send bombers to Calais France' flight (OnOrderMissionMenuSelected)" + "\r\n");
Console.ResetColor();
Timeout(15 * 60, () => // reset menu in 15 minutes
{
SetMainMenu(player);
}
);
break;
#endregion
case 3:
PrintIndexAndKeysAndValues(KilledAircraft);
break;
case 4:
PrintIndexAndKeysAndValues(KilledAircraft);
break;
case 5: // number of red AI planes in battle
{
AiAircraft a = player as AiAircraft;
if (a != null)
{
sendScreenMessageToPilot(a, " red aircraft in the battle", null);
}
break;
}
case 0:
SetMainMenu(player);
break;
default:
SetMainMenu(player);
break;
}
}
}
#endregion
public void SetMainMenu(Player player)
#region create custom menu for player
{
if (player.Army() == 2) // blue side
GamePlay.gpSetOrderMissionMenu(player, true, 2, new string[]
{
"Order Ju87 staffel to bomb Dover",
"Order Heinkel staffel to bomb Dover",
"Order Ju87 staffel to bomb Hawkinge airfield",
"Order FW200 to recon Dover & Ramsgate",
"Order Dorniers to bomb Marston airfield",
"."
}, new bool[] { true, true, true, true, true, true });
else // red side
GamePlay.gpSetOrderMissionMenu(player, true, 1, new string[]
{
"Order hurricane sqdn to patrol Dover",
"Order blenheim sqdn to bomb Calais",
"."
//"Show number of allied planes in battle"
},
new bool[] { true, true, true });
}
#endregion
__________________
When one engine fails on a two engine bomber, you will always have enough power left to get to the scene of the crash. Get the latest COD Team Fusion patch info HERE Last edited by salmo; 06-17-2012 at 01:17 AM. |
|
|