![]() |
|
#51
|
|||
|
|||
|
It's not possible.
GamePlay.gpHUDLogCenter(..) doesn't support it, i've tried it too You can use the timeout command to show one message after another. Code:
SendScreenMessageTo(1, "Note");
Timeout(5, () => // Time in Seconds
{
SendScreenMessageTo(1, "Press TAB and 4 at ANY time");
});
Timeout(10, () =>
{
SendScreenMessageTo(1, "Load any submission available in the list");
});
|
|
#52
|
|||
|
|||
|
Thaaaaaaank you!!
I will do just that |
|
#53
|
|||
|
|||
|
to Kodiak
Hi! I use your script to send messages: Code:
sendChatMessageTo(-1, "blablabla", new object[] { }); //TEST
sendScreenMessageTo(-1, "blablabla", new object[] { }); //TEST
Code:
private void sendScreenMessageTo(int army, string msg, object[] parms)
{
List<Player> Players = new List<Player>();
//Singleplayer or Dedi Server
if (GamePlay.gpPlayer() != null)
{
if (GamePlay.gpPlayer().Army() == army || army == -1)
Players.Add(GamePlay.gpPlayer());
} // Multiplayer
if (GamePlay.gpRemotePlayers() != null || GamePlay.gpRemotePlayers().Length > 0)
{
foreach (Player p in GamePlay.gpRemotePlayers())
{
if (p.Army() == army || army == -1)
Players.Add(p);
}
}
if (Players != null && Players.Count > 0)
GamePlay.gpHUDLogCenter(Players.ToArray(), msg, parms);
}
private void sendChatMessageTo(int army, string msg, object[] parms)
{
List<Player> Players = new List<Player>();
//Singleplayer or Dedi Server
if (GamePlay.gpPlayer() != null)
{
if (GamePlay.gpPlayer().Army() == army || army == -1)
Players.Add(GamePlay.gpPlayer());
} // Multiplayer
if (GamePlay.gpRemotePlayers() != null || GamePlay.gpRemotePlayers().Length > 0)
{
foreach (Player p in GamePlay.gpRemotePlayers())
{
if (p.Army() == army || army == -1)
Players.Add(p);
}
}
if (Players != null && Players.Count > 0)
GamePlay.gpLogServer(Players.ToArray(), msg, parms);
}
Code:
[21:56:12] ================================================= [21:56:12] System.NullReferenceException: Object reference not set to an instance of an object. [21:56:12] [21:56:12] Server stack trace: [21:56:12] at 6UZP66dp5dKAdD5LMYr.F9pJL9dGtcbAt8r8Umh.JwjWWYN9w9(xnKDxkk8wATA33F3hpA , G7xPRi2e9fpuLtHG23a ) [21:56:12] at 5iyST5gABhh0WhImZtw.4W7PgSgvHpySuqonJno.sp1UnA9jmwb(Player[] , String , Object[] , Double ) [21:56:12] at 5iyST5gABhh0WhImZtw.4W7PgSgvHpySuqonJno.yEy1eAe2YPQxskLBZIku(Object , Object , Object , Double ) [21:56:12] at 5iyST5gABhh0WhImZtw.4W7PgSgvHpySuqonJno.d87UnNOmgnm(Player[] , String , Object[] ) [21:56:12] at pqlnUTF7gnMAoU4L9MP.lm1GgkFoiOOBGu1gmwf.ZnhKPrKgxsgJUIGtmgOK(Object , Object , Object ) [21:56:12] at pqlnUTF7gnMAoU4L9MP.lm1GgkFoiOOBGu1gmwf.HUDLogCenter(Player[] , String , Object[] ) [21:56:12] at maddox.game.GameDef.gpHUDLogCenter(Player[] to, String msg, Object[] parms) [21:56:12] at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs) [21:56:12] at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext) [21:56:12] [21:56:12] Exception rethrown at [0]: [21:56:12] at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) [21:56:12] at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) [21:56:12] at maddox.game.IGamePlay.gpHUDLogCenter(Player[] to, String msg, Object[] parms) [21:56:12] at Mission.sendScreenMessageTo(Int32 army, String msg, Object[] parms) [21:56:12] at Mission.OnActorDead(Int32 missionNumber, String shortName, AiActor actor, List`1 damages) [21:56:12] at maddox.game.world.Strategy.OnActorDead(Int32 missionNumber, String shortName, AiActor actor, AiDamageInitiator initiator) [21:56:12] at maddox.game.ABattle.OnEventGame(GameEventId eventId, Object eventArg0, Object eventArg1, Int32 eventArgInt) [21:56:12] at maddox.game.world.Strategy.OnEventGame(GameEventId eventId, Object eventArg0, Object eventArg1, Int32 eventArgInt) [21:56:12] at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs) [21:56:12] at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext) [21:56:12] [21:56:12] Exception rethrown at [1]: [21:56:12] at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) [21:56:12] at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) [21:56:12] at maddox.game.IBattle.OnEventGame(GameEventId eventId, Object eventArg0, Object eventArg1, Int32 eventArgInt) [21:56:12] at maddox.game.GameDef.eventGame(GameEventId eventId, Object eventArg0, Object eventArg1, Int32 eventArgInt) [21:56:12] at RoFTf9069W6jWRmA8PN.U2RoVL0OVdWjVQJ7319.eventGame(GameEventId , Object , Object , Int32 ) [21:56:12] at NTlYp6NdtgpnKt7wGgO.VvFELvNie2My3mOTesk.WPGBQuHHKI8(GameEventId , Object , Object , Int32 ) [21:56:12] ================================================= Code:
public void messageTaskComplite(int numberDeadUnit, int taskPrice, int armyTask, string msg)
{
sendChatMessageTo(-1, getLocalizedMessage(msg) + "[ {0} ]", new object[] { numberDeadUnit });
sendScreenMessageTo(-1, getLocalizedMessage(msg), new object[] { });
if (armyTask == 1)
{
sendChatMessageTo(-1, getLocalizedMessage("getPointsRED") + "[ {0} ]", new object[] { taskPrice });
}
else if (armyTask == 2)
{
sendChatMessageTo(-1, getLocalizedMessage("getPointsBLUE") + "[ {0} ]", new object[] { taskPrice });
}
}
Code:
public override void OnActorDead(int missionNumber, string shortName, AiActor actor, List<DamagerScore> damages)
{
base.OnActorDead(missionNumber, shortName, actor, damages);
//sendChatMessageTo(-1, actor.ToString(), new object[] { }); //TEST
if (actor != null)
{
//AiGroundActor STATISTIC
if (actor is AiGroundActor)
{
sendChatMessageTo(-1, "***Plane KILL - AiAircraft:....." + shortName, new object[] { }); //TEST
AiGroundActor groundActor = actor as AiGroundActor;
if (groundActor != null)
{
//sendChatMessageTo(-1, groundActor.ToString(), new object[] { }); //TEST
//tasks AiGroundActor DEAD stat
switch (missionNumber)
{
case 1:
if (actor.Army() == 2)
{
if (groundActor.Type() == AiGroundActorType.Artillery)
{
numberDeadUnit01_1++;
if (numberDeadUnit01_1 == numberCompliteTask01_1)
{
messageTaskComplite(numberDeadUnit01_1, taskPrice01_1, 1, "successMission01_1");
redScore = redScore + taskPrice01_1;
taskStatusArray.SetValue(true, 0);
}
}
else
{
numberDeadUnit01_2++;
if (numberDeadUnit01_2 == numberCompliteTask01_2)
{
messageTaskComplite(numberDeadUnit01_2, taskPrice01_2, 1, "successMission01_2");
redScore = redScore + taskPrice01_2;
taskStatusArray.SetValue(true, 1);
}
}
}
break;
} //switch
//AiAircraft STATISTIC
if (actor is AiAircraft)
{
sendChatMessageTo(-1, "***Plane KILL - AiAircraft:....." + shortName, new object[] { }); //TEST
AiAircraft aircraft = (actor as AiAircraft);
if (aircraft != null)
{
// Main AiAircraft plane stat
if (aircraft.Army() == 1)
{
numberDeadRedPlanes++;
blueScore = blueScore + unitPlanePrice;
}
else if (aircraft.Army() == 2 && aircraft != null)
{
numberDeadBluePlanes++;
redScore = redScore + unitPlanePrice;
}
}
}
}//null
}
What method do I need to use on the dedi server? getLocalizedMessage("getPointsRED") turn off(always "en") Last edited by podvoxx; 01-12-2012 at 10:42 AM. |
|
#54
|
|||
|
|||
|
Can you test these please, i ve made some rework meanwhile:
Code:
private void sendScreenMessageTo(int army, string msg, params object[] args)
{
List<Player> Consignees = new List<Player>();
if (GamePlay.gpPlayer() != null)
Consignees.Add(GamePlay.gpPlayer());
if (GamePlay.gpRemotePlayers() != null)
Consignees.AddRange(GamePlay.gpRemotePlayers());
if (army == -1)
GamePlay.gpHUDLogCenter(null, msg, args);
else if (Consignees.Exists(item => item.Army() == army))
GamePlay.gpHUDLogCenter(Consignees.FindAll(item => item.Army() == army).ToArray(), msg, args);
}
private void sendChatMessageTo(int army, string msg, params object[] args)
{
List<Player> Consignees = new List<Player>();
if (GamePlay.gpPlayer() != null)
Consignees.Add(GamePlay.gpPlayer());
if (GamePlay.gpRemotePlayers() != null)
Consignees.AddRange(GamePlay.gpRemotePlayers());
if (army == -1)
GamePlay.gpLogServer(null, msg, args);
else if (Consignees.Exists(item => item.Army() == army))
GamePlay.gpLogServer(Consignees.FindAll(item => item.Army() == army).ToArray(), msg, args);
}
example int redpoints =10; int bluepoints =20; sendScreenMessageTo(-1, "Red have {0} Points / Blue: {1} Points", redpoints, bluepoints); or use it without sendScreenMessageTo(-1, "Welcome to our Server"); Last edited by FG28_Kodiak; 01-12-2012 at 02:10 PM. |
|
#55
|
|||
|
|||
|
Thank you very much for your help! Msg system work fine.
Last edited by podvoxx; 01-12-2012 at 06:46 PM. |
![]() |
|
|