![]() |
#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 12:17 AM. |
|
|