![]() |
#41
|
|||
|
|||
![]()
Yes i get the english messages at my private testserver.
Btw the messages are to long for my screen resolution (19' 1280*1024), so i can't see the begin and the end of the message. I also get the OnTickGame Messages (with my latest version), good to know that GamePlay.gpPlayer() is the server so we can send testmessages to the LOG. ![]() But i ever think gpPlayer is for Singleplayer and gpRemotePlayer is for Multiplayer, so sorry for the inconvenience ![]() SO latest Version: Code:
using System; using System.Collections; using System.Collections.Generic; using maddox.game; using maddox.game.world; public class Mission : AMission { #region MessageSystem 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); } private void sendScreenMessageTo(int army, string playerlanguage, 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) && GamePlay.gpPlayer().LanguageName().Equals(playerlanguage)) 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) && p.LanguageName().Equals(playerlanguage)) Players.Add(p); } } if (Players != null && Players.Count > 0) GamePlay.gpHUDLogCenter(Players.ToArray(), msg, parms); } private void sendChatMessageTo(int army, string playerlanguage, 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) && GamePlay.gpPlayer().LanguageName().Equals(playerlanguage)) 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) && p.LanguageName().Equals(playerlanguage)) Players.Add(p); } } if (Players != null && Players.Count > 0) GamePlay.gpLogServer(Players.ToArray(), msg, parms); } private void sendChatMessageTo(int army, string[] exepttoplayerlanguages, 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); } } foreach (string st in exepttoplayerlanguages) { Players.RemoveAll(item => item.LanguageName().Equals(st)); } if (Players != null && Players.Count > 0) GamePlay.gpLogServer(Players.ToArray(), msg, parms); } private void sendScreenMessageTo(int army, string[] exepttoplayerlanguages, string msg, object[] parms) { List<Player> Players = new List<Player>(); foreach (string st in exepttoplayerlanguages) { //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); } } } foreach (string st in exepttoplayerlanguages) { Players.RemoveAll(item => item.LanguageName().Equals(st)); } if (Players != null && Players.Count > 0) GamePlay.gpHUDLogCenter(Players.ToArray(), msg, parms); } private void sendChatMessageTo(Player player, string msg, object[] parms) { if (player != null) GamePlay.gpLogServer(new Player[] { player }, msg, parms); } private void sendScreenMessageTo(Player player, string msg, object[] parms) { if (player != null) GamePlay.gpHUDLogCenter(new Player[] { player }, msg, parms); } private void sendChatMessageTo(Player player, string playerlanguage, string msg, object[] parms) { if (player != null) if (player.LanguageName().Equals(playerlanguage)) GamePlay.gpLogServer(new Player[] { player }, msg, parms); } private void sendScreenMessageTo(Player player, string playerlanguage, string msg, object[] parms) { if (player != null) if (player.LanguageName().Equals(playerlanguage)) GamePlay.gpHUDLogCenter(new Player[] { player }, msg, parms); } private void sendChatMessageTo(Player player, string[] exepttoplayerlanguages, string msg, object[] parms) { List<Player> Players = new List<Player>(); if (player != null) Players.Add(player); foreach (string st in exepttoplayerlanguages) { if(Players != null) Players.RemoveAll(item => item.LanguageName().Equals(st)); } if (Players != null && Players.Count > 0) GamePlay.gpLogServer(Players.ToArray(), msg, parms); } private void sendScreenMessageTo(Player player, string[] exepttoplayerlanguages, string msg, object[] parms) { List<Player> Players = new List<Player>(); if (player != null) Players.Add(player); foreach (string st in exepttoplayerlanguages) { if (Players != null) Players.RemoveAll(item => item.LanguageName().Equals(st)); } if (Players != null && Players.Count > 0) GamePlay.gpHUDLogCenter(Players.ToArray(), msg, parms); } #endregion } Last edited by FG28_Kodiak; 10-12-2011 at 11:26 AM. |
#42
|
|||
|
|||
![]()
Thank you very much! Will try to install it tonight.
|
#43
|
|||
|
|||
![]()
All messages work finally (in Russian at least)! Runs on Repka 2 now. Thank you very much!
|
#44
|
|||
|
|||
![]()
What these errors can be related? Just had server launcher crash some time after these errors.
Code:
[21:44:59] [21:44:59] ================================================= [21:44:59] System.NullReferenceException: Object reference not set to an instance of an object. [21:44:59] [21:44:59] Server stack trace: [21:44:59] at Mission.OnPlaceLeave(Player player, AiActor actor, Int32 placeIndex) [21:44:59] at maddox.game.ABattle.OnPlaceLeave(Player player, AiActor actor, Int32 placeIndex) [21:44:59] at maddox.game.ABattle.OnEventGame(GameEventId eventId, Object eventArg0, Object eventArg1, Int32 eventArgInt) [21:44:59] at maddox.game.world.Strategy.OnEventGame(GameEventId eventId, Object eventArg0, Object eventArg1, Int32 eventArgInt) [21:44:59] at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs) [21:44:59] at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext) [21:44:59] [21:44:59] Exception rethrown at [0]: [21:44:59] at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) [21:44:59] at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) [21:44:59] at maddox.game.IBattle.OnEventGame(GameEventId eventId, Object eventArg0, Object eventArg1, Int32 eventArgInt) [21:44:59] at maddox.game.GameDef.eventGame(GameEventId eventId, Object eventArg0, Object eventArg1, Int32 eventArgInt) [21:44:59] at dp8K7ffZC2JmTFxNtum.gkydOifm2sRXchrPjNC.eventGame(GameEventId , Object , Object , Int32 ) [21:44:59] at tpZkklAJjTISdGT144j.fBZFTNAMvsuuP0ewCS3.AY6A72gxK6R(GameEventId , Object , Object , Int32 ) [21:44:59] ================================================= [21:44:59] Server: vist is now with the Blue army. |
#45
|
|||
|
|||
![]()
Nothing to do with my part,
something in OnPlaceLeave going wrong. You should test actor for null value: if (actor != null) //missing { if ((actor as AiAircraft).InternalTypeName() == "bob:Aircraft.DH82A") ... } Last edited by FG28_Kodiak; 10-12-2011 at 06:08 PM. |
#46
|
|||
|
|||
![]()
Thank you very much! It's a hard science for me, ahh...
|
#47
|
|||
|
|||
![]()
You can declare a function as:
private void sendScreenMessageTo(int army, string msg, params object[] parms) then array for the parameters will be generated automatically, the call will be easier to look: sendScreenMessageTo(myarmy, "I am at grid {0}, {1}", xpos, ypos); Also, lowercase first letter in class or function name is Java style, not C#. Microsoft C# Code Design Guidelines. |
#48
|
|||
|
|||
![]()
I use lowercase first letters for private methods and uppercase for public, thats all. And i am not interested in "Style Guidlines" from Microsoft.
And i don't use the params parameter to avoid confusion between (GamePlay) void gpLogServer(Player[] to, string format, object[] args); and my methods. btw. Welcome to the forum! |
#49
|
|||
|
|||
![]()
Thank you.
As we say: our business - to offer, your - to refuse. In the end, everyone chooses his own way. ![]() |
#50
|
|||
|
|||
![]()
I am trying to use the \n within the " " of a sting to create a new line for long screen messages and it seems that I am not getting it right.
for example: SendScreenMessageTo(1, "Note\nPress TAB and 4 at ANY time\nLoad any submission available in the list"); Any idea what I might be missing? |
![]() |
|
|