![]() |
|
#1
|
||||
|
||||
![]()
Hi Kodiak, whilst Farber has done the vast majority of the work and it is a JG27 campaign, I am providing a large number of his enemy fighters for it (looking forward to that
![]() Quote:
Quote:
![]() Everyone else selects something else, therefore this means not everyone gets the menu option and have to be organised by the squadron leader. Only 3 or 4 people on RAF would even have this ability so their workload goes up and the pressure for their team to stay together in flight becomes very important. The information provided should be: 1. Location 2. Approximate numbers (30+??) 3. Height 4. Heading The flight lead has to then direct his crew to intercept. If this can be provided vocally then that is even better. Fighter Command had a WHOLE picture of the area via the plotting room bunker. This would receive all radar information from the RDF stations and observer corps, then scramble accordingly. @FARBER I imagine that for the purposes of campaign, that this event, ie "501 squadron scramble" could be handle by trigger. That way we start at the right time from the right place. I wouldn't want to be on some random patrol for ages because I don't know what's going on and then find ourselves 180 miles away with 1/2 tank of fuel left. Sorry to talk mission but I would suggest participating RAF squadrons being "At Readiness" with kites ready to scramble waiting for the off would be most realistic. 4 minutes delay This 4 minutes delay for response is interesting since information cannot be absolutely up to date. I'm trying to find out the delay between RDF station and reporting to the squadrons. 4 mins seems a long time, you could cross the Channel in that time. An alternative suggestion is that the flight leaders have a time delay between plot requests of a few minutes, so once they request and get feedback they cannot select again until that time has expired - this would add in the random factor for LW course changes and human error until visual confirmation, it would stop a flight leader from just hammering the button! This is why I love this stuff, because you learn so much about it all as you go ![]() Here's a nice overview http://www.radarpages.co.uk/mob/gci/gci.htm Quote:
Last edited by Osprey; 04-09-2012 at 09:51 AM. |
#2
|
|||
|
|||
![]() Quote:
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:
![]() |
#3
|
||||
|
||||
![]()
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! |
#4
|
|||
|
|||
![]()
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. |
#5
|
|||
|
|||
![]() Quote:
![]() Good Post Osprey. Heh 4 minutes hey? Good guess then. You guys can sit on the ground in readyness, no problem. |
#6
|
|||
|
|||
![]()
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 06:45 PM. |
#7
|
|||
|
|||
![]()
The menu works. I can attach myself to one of the radaroperators, Alpha, Beta, Gamma and Delta.
I can also see the request option. |
#8
|
|||
|
|||
![]()
Any wishes for the captions of the menus?
|
#9
|
|||
|
|||
![]()
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 |
#10
|
|||
|
|||
![]()
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 10:22 PM. |
![]() |
Thread Tools | |
Display Modes | |
|
|