![]() |
|
|
|
#1
|
|||
|
|||
|
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:
|
|
#2
|
||||
|
||||
|
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! |
|
#3
|
|||
|
|||
|
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. |
|
#4
|
|||
|
|||
|
Quote:
Good Post Osprey. Heh 4 minutes hey? Good guess then. You guys can sit on the ground in readyness, no problem. |
|
#5
|
|||
|
|||
|
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. |
|
#6
|
|||
|
|||
|
The menu works. I can attach myself to one of the radaroperators, Alpha, Beta, Gamma and Delta.
I can also see the request option. |
|
#7
|
|||
|
|||
|
Any wishes for the captions of the menus?
|
|
#8
|
|||
|
|||
|
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 |
|
#9
|
|||
|
|||
|
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. |
|
#10
|
|||
|
|||
|
@_79_dev
Yes would be the better way, the first example was only for showing the possibilies. @5./JG27.Farber Quote:
Quote:
|
![]() |
|
|