![]() |
#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 09: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 01:10 PM. |
#55
|
|||
|
|||
![]()
Thank you very much for your help! Msg system work fine.
Last edited by podvoxx; 01-12-2012 at 05:46 PM. |
![]() |
|
|