![]() |
|
#1
|
|||
|
|||
|
I'm tying to show a custom label on the mini-map to blue players once a recon plane has gone through a pass-through trigger over the target. I'm having difficulty coming to grips with the various userlabel methods.The code below has errors. Baby steps please, explaining each method's use.
Code:
public override void OnTrigger(int missionNumber, string shortName, bool active)
{
base.OnTrigger(missionNumber, shortName, active);
//RAF Dunkirk recon Do17
if (shortName == "RAF_Dunkirk" && active)
{ // Do17 recon'd RAF Dunkirk
Point2d p = new Point2d();
p.x = 221501.43;
p.y = 252603.72;
List<Player> BluePlayersList = new List<Player>();
foreach (Player player in GamePlay.gpRemotePlayers()) if (player.Army() == 2) BluePlayersList.Add(player);
Player[] BluePlayersArray = BluePlayersList.ToArray();
double t = GamePlay.gpTimeofDay();
GPUserLabel lbl = GamePlay.gpMakeUserLabel(p, BluePlayersArray, "RAF Dunkirk", t, GPUserIconType.Factory);
GamePlay.gpDrawUserLabel(lbl);
}
}
__________________
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; 11-03-2012 at 06:07 AM. |
|
#2
|
|||
|
|||
|
Your mistake:
Code:
GPUserLabel lbl = GamePlay.gpMakeUserLabel(p, BluePlayersArray, "RAF Dunkirk", t, GPUserIconType.Factory); to show the lable only to one side use you must use: Code:
GamePlay.gpDrawUserLabel(BluePlayersArray, lbl); |
|
#3
|
|||
|
|||
|
Thankyou again Kodiak, I'm using this in the dedi server context but MakeUserLabel fails with invalid arguement(s)
What's the purpose behind the method taking an arguement for the player who created the label? Surely there will be instances where the scripter wants to display a label at times when no actual player has 'created' the label?Code:
double t = GamePlay.gpTimeofDay(); GPUserLabel lbl = GamePlay.gpMakeUserLabel(p, GamePlay.gpPlayer(), "RAF Dunkirk", t, GPUserIconType.Factory); // compile error GamePlay.gpDrawUserLabel(BluePlayersArray, lbl);
__________________
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; 11-03-2012 at 07:17 AM. |
|
#4
|
|||
|
|||
|
GPUserIconType is an enum type the argument type is int so you must cast (int)
Code:
GPUserLabel lbl = GamePlay.gpMakeUserLabel(p, GamePlay.gpPlayer(), "RAF Dunkirk", t, (int)GPUserIconType.Factory); Last edited by FG28_Kodiak; 11-03-2012 at 07:24 AM. |
![]() |
|
|