Thread: Mission menu
View Single Post
  #4  
Old 06-17-2012, 12:13 AM
salmo salmo is offline
Approved Member
 
Join Date: Mar 2011
Posts: 632
Default

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.
Reply With Quote