Fulqrum Publishing Home   |   Register   |   Today Posts   |   Members   |   UserCP   |   Calendar   |   Search   |   FAQ

Go Back   Official Fulqrum Publishing forum > Fulqrum Publishing > IL-2 Sturmovik: Cliffs of Dover > FMB, Mission & Campaign builder Discussions

Reply
 
Thread Tools Display Modes
  #1  
Old 04-09-2012, 11:07 AM
csThor csThor is offline
Approved Member
 
Join Date: Oct 2007
Location: somewhere in Germany
Posts: 1,213
Default

Quote:
Originally Posted by Osprey View Post
I see where you are coming from but I wouldn't want to sit out and direct anyone, and if you have a list of targets which the LW can hit then chances of even meeting in the sky are slim - which is the whole point.
Err ... no. The CO position is essentially a pre-flight position and is not meant to be RAF Fighter Command CO or commanding General of a german Fliegerkorps during the game. Once the planning is done the CO reverts to flying as usual. I don't know what number of players and squads you're planning with but given the obvious limitations on player numbers and ability to display a lot of aircraft I guess we're talking about maybe forty to fifty people at best so the target area and the target selection will always be within the confines of this limit. Going back to my example of an August 1940 mission I'd envision the german task to hit at least one of the primary targets (i.e. Biggin Hill, Kenley, Croydon) and also offers secondary targets such as radar stations, harbors and secondary airfields.

And just to make that absolutely clear I am not talking about using the whole width of the map if it doesn't reflect the number of players engaged. Right now that is simply not possible from the technical side as we don't see 128 player servers working and being filled to that point (plus a load of AI for the bombers which few people fly, anyway). The target zone would be limited to one of the areas assigned to the german Luftflotten (Luftflotte 3 = west of Seine, Luftflotte 2 = east of Seine). This way both RAF and LW would meet in one area and not play chicken with each other.

Quote:
Originally Posted by Osprey View Post
I don't care for tactics, winning or losing, I'm interested in experiencing the same as squadrons did in the BoB (minus the death).
The problem is you can't exclude tactics if you want that immersion. The Luftwaffe's bombers would be jubilant if they could fly unmolested.
Reply With Quote
  #2  
Old 04-09-2012, 11:13 AM
Osprey's Avatar
Osprey Osprey is offline
Approved Member
 
Join Date: Jan 2010
Location: Gloucestershire, England
Posts: 1,264
Default

Sort of reminds me of the USL in that there was a known mission and both sides planned for it plus if someone knew what was going to happen though then it sort of spoils it for them.

Although it would be nice, I wouldn't expect Farber to have to tail a bomber with flaps down lol I can live without that total repetition!
Reply With Quote
  #3  
Old 04-09-2012, 12:31 PM
csThor csThor is offline
Approved Member
 
Join Date: Oct 2007
Location: somewhere in Germany
Posts: 1,213
Default

Never heard anything about the USL so I can't compare but essentially I envision a system in which the RAF will not know what the LW will attack until the action is underway. It's not that I want the LW to announce its targets before flying ... that would make the whole system pointless (all that will be known in advance is the area of operations - ergo whether the west or the east of the Channel map will be used).
Tactically the squadrons should be given not more than a general task but not told "you must do close escort for the bombers". All these considerations should be up to the squad.
Reply With Quote
  #4  
Old 04-09-2012, 05:11 PM
5./JG27.Farber 5./JG27.Farber is offline
Approved Member
 
Join Date: Aug 2011
Posts: 1,958
Default

Quote:
Originally Posted by csThor View Post
I don't know what number of players and squads you're planning with but given the obvious limitations on player numbers and ability to display a lot of aircraft I guess we're talking about maybe forty to fifty people at best....
We had around 70 last time at the peak if I recall. Were hoping to fill the server.

Good Post Osprey. Heh 4 minutes hey? Good guess then. You guys can sit on the ground in readyness, no problem.
Reply With Quote
  #5  
Old 04-09-2012, 07:37 PM
FG28_Kodiak FG28_Kodiak is offline
Approved Member
 
Join Date: Dec 2009
Location: Swabia->Bavaria->Germany
Posts: 884
Default

Ok example for the mission menu:
Select red side then TAB->4 at moment the "radar" is not functional, menu at the moment is an example, so feel free to comment

for rest i must first read the posts above

Code:
using System;
using System.Collections;
using System.Collections.Generic;
using maddox.game;
using maddox.game.world;
using maddox.GP;


public class Mission : AMission
{
    #region class Menu
    
    internal class Menu
    {
        internal class MenuEntry
        {
            internal string MenuName { get; set; }
            internal bool active { get; set; }
        }

        internal List<MenuEntry> menuEntries = new List<MenuEntry>();

        public void AddMenuEntry(string description, bool active)
        {
            MenuEntry NewMenuEntry = new MenuEntry();

            NewMenuEntry.MenuName = description;
            NewMenuEntry.active = active;

            menuEntries.Add(NewMenuEntry);
        }

        public string[] GetMenuDescriptions()
        {
            List<string> Descriptions = new List<string>();

            menuEntries.ForEach(item =>
            {
                Descriptions.Add(item.MenuName);
            });

            return Descriptions.ToArray();
        }

        public bool[] GetActives()
        {
            List<bool> Actives = new List<bool>();

            menuEntries.ForEach(item =>
            {
                Actives.Add(item.active);
            });

            return Actives.ToArray();
        }

        public bool IsValid()
        {
            if (menuEntries == null || menuEntries.Count < 1)
                return false;
            else
                return true;

        }

    }

    #endregion


    internal class Pilot
    {
        public Player player { get; set; }
        public LocalHeadquarters connectedHeadquarter;

        public Pilot(Player player)
        {
            this.player = player;
        }
    }


    internal List<Pilot> PilotsInGame = new List<Pilot>();


    internal class LocalHeadquarters
    {
        public string Name { get; set; }
        public Point2d LocationCoords { get; set; }
        public List<string> AttachedRadarStations = new List<string>();

        public LocalHeadquarters(string name, double x, double y)
        {
            this.Name = name;
            this.LocationCoords = new Point2d(x, y);
        }
    }


    List<LocalHeadquarters> Headquarters = new List<LocalHeadquarters>{
        {new LocalHeadquarters("Alpha", 100.0, 100.0)},
        {new LocalHeadquarters("Beta", 200.0, 200.0)},
        {new LocalHeadquarters("Gamma", 300.0, 300.0)},
        {new LocalHeadquarters("Delta", 400.0, 400.0)}};



    public override void OnPlaceEnter(Player player, AiActor actor, int placeIndex)
    {
        base.OnPlaceEnter(player, actor, placeIndex);


        if (!PilotsInGame.Exists(item => item.player == player))
        {
            PilotsInGame.Add(new Pilot(player));
        }


        PilotsInGame.ForEach(item =>
            {
                GamePlay.gpLogServer(null, "Spieler: {0}", new[] {item.player.Name() });
            });

        SetMainMenu(player);
    }
    
    
    public void SetMainMenu(Player player)
    {
        if (player.Army() == 1) // red Side
            GamePlay.gpSetOrderMissionMenu(player, false, 0, new string[] { "Radaroperations" }, new bool[] { true });
        else
            GamePlay.gpSetOrderMissionMenu(player, false, 0, new string[] { "Not Available" }, new bool[] { true });
    }


    public void SetRadarMenu(Player player)
    {
        string headQuarter = "Select Headquarter";
        string connectedTo = "";

        if (PilotsInGame.Exists(item => item.player == player))
        {
            int i = PilotsInGame.FindIndex(item => item.player == player);

            if (PilotsInGame[i].connectedHeadquarter != null)
                connectedTo = string.Format(" (connected: {0})", PilotsInGame[i].connectedHeadquarter.Name);
        }
        headQuarter += connectedTo;

        GamePlay.gpSetOrderMissionMenu(player, true, 100, new string[] { headQuarter, "Get Radar Information" }, new bool[] { true, true });

    }


    public void SetConnectToHeadquarterMenu(Player player)
    {
        Menu NewMenu = new Menu();
        LocalHeadquarters headQuarter = null;

        if (PilotsInGame.Exists(item => item.player == player))
        {
            int i = PilotsInGame.FindIndex(item => item.player == player);
            headQuarter = PilotsInGame[i].connectedHeadquarter;
        }

        Headquarters.ForEach(item =>
        {
            if (headQuarter != null && item == headQuarter)
            {
                NewMenu.AddMenuEntry(item.Name + " *", true);
            }
            else
                NewMenu.AddMenuEntry(item.Name, true);
        });

        if (NewMenu.IsValid())
            GamePlay.gpSetOrderMissionMenu(player, true, 101, NewMenu.GetMenuDescriptions() , NewMenu.GetActives());
        else
            GamePlay.gpSetOrderMissionMenu(player, true, 101, new string[]{ "Not available" }, new bool[]{true});
    }


    public void SetHeadQuarter(Player player, int menuItemIndex)
    {
        if (PilotsInGame.Exists(item => item.player == player))
            PilotsInGame[PilotsInGame.FindIndex(item => item.player == player)].connectedHeadquarter = Headquarters[menuItemIndex-1];

    }


    public override void OnOrderMissionMenuSelected(Player player, int ID, int menuItemIndex)
    {


        if (ID == 0)
        { // main menu
            if (menuItemIndex == 1)
            {
                SetRadarMenu(player);
            }
            //if (menuItemIndex == 2)
            //{


            //}
            //if (menuItemIndex == 3)
            //{


            //}
        }


        if (ID == 100)
        {
            //Radar Menu
            if (menuItemIndex == 1)
            {
                SetConnectToHeadquarterMenu(player);
            }

            if (menuItemIndex == 2)
            {
                SetMainMenu(player);
            }


            if (menuItemIndex == 0)
                SetMainMenu(player);
        }

        if (ID == 101)
        {
            //Radar Menu
            if (menuItemIndex == 0)
                SetRadarMenu(player);
            else
            {
                SetHeadQuarter(player, menuItemIndex);
                SetRadarMenu(player);
            }
        }
    }
}

Last edited by FG28_Kodiak; 04-09-2012 at 07:45 PM.
Reply With Quote
  #6  
Old 04-09-2012, 09:50 PM
5./JG27.Farber 5./JG27.Farber is offline
Approved Member
 
Join Date: Aug 2011
Posts: 1,958
Default

The menu works. I can attach myself to one of the radaroperators, Alpha, Beta, Gamma and Delta.

I can also see the request option.
Reply With Quote
  #7  
Old 04-09-2012, 10:09 PM
FG28_Kodiak FG28_Kodiak is offline
Approved Member
 
Join Date: Dec 2009
Location: Swabia->Bavaria->Germany
Posts: 884
Default

Any wishes for the captions of the menus?
Reply With Quote
  #8  
Old 04-09-2012, 10:51 PM
_79_dev _79_dev is offline
Approved Member
 
Join Date: Sep 2010
Location: Dublin
Posts: 242
Default

I am trying my best but I can't get to work voice messages script invoked by time for some reason.
I persume that it will be adopted for this menu script... Is it correct?
__________________

Asus P6T V2 Deluxe, I7 930, 3x2 GB RAM XMS3 Corsair1333 Mhz, Nvidia Leadtek GTX 470, Acer 1260p screen projector, Track IR 4 OS ver5, Saitek Pro Flight Rudder, Saitek X52, Win 7 x64 ultimate
Reply With Quote
  #9  
Old 04-09-2012, 11:18 PM
5./JG27.Farber 5./JG27.Farber is offline
Approved Member
 
Join Date: Aug 2011
Posts: 1,958
Default

Quote:
Originally Posted by FG28_Kodiak View Post
Any wishes for the captions of the menus?
Select Ground Control Frequency? Or Select Frequency?

Channel 1,2,3,4?

Make Request?


Would be nice if when you asked for information the voice actor acknoledged and said, "Roger, Standby "players callsign letter""


What do the channels actually mean/do/will do?

Last edited by 5./JG27.Farber; 04-09-2012 at 11:22 PM.
Reply With Quote
  #10  
Old 04-10-2012, 05:40 AM
FG28_Kodiak FG28_Kodiak is offline
Approved Member
 
Join Date: Dec 2009
Location: Swabia->Bavaria->Germany
Posts: 884
Default

@_79_dev
Yes would be the better way, the first example was only for showing the possibilies.

@5./JG27.Farber
Quote:
..voice actor acknoledged and said, "Roger, Standby "players callsign letter"
If there are ogg files present it's possible, but i must first look for it. May be there is a way to create own ogg files for this, but not tested it at the moment.
Quote:
What do the channels actually mean/do/will do?
Plan is to attach sectors (channel 1: C1..D4 etc.) to be observed to a "channel or headquarter", if the player make a request, he get the information for each enemy Airgroup in these sectors. The number of available "channels" depens of the distance to them, if two in range the player can select one of the two, if none of them in range, no radar information is present etc. May be the player is transfered to an other "headquarter" when leaving the Area from another. There are many possibilities.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 04:32 PM.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright © 2007 Fulqrum Publishing. All rights reserved.