Ил-2 Штурмовик: Битва за Британию. Скрипты. Сообщение на экран и в чат для оффлайна и онлайна на языке игрока — различия между версиями
Материал из АвиаВики
Podvoxx (обсуждение | вклад) |
Podvoxx (обсуждение | вклад) |
||
Строка 126: | Строка 126: | ||
Дополнительные сведения: | Дополнительные сведения: | ||
normally i use | normally i use | ||
− | const int ArmyAll = -1; | + | const int ArmyAll = -1; |
− | const int ArmyRed = 1; | + | const int ArmyRed = 1; |
− | const int ArmyBlue = 2; | + | const int ArmyBlue = 2; |
at the beginning of my scripts. | at the beginning of my scripts. | ||
have corrected the script so if you want send a Message to All you can use | have corrected the script so if you want send a Message to All you can use | ||
− | sendChatMessageTo(-1, "Test To All", null); | + | sendChatMessageTo(-1, "Test To All", null); |
− | sendScreenMessageTo(-1, "Test To All", null); | + | sendScreenMessageTo(-1, "Test To All", null); |
for your localized messages you can use | for your localized messages you can use | ||
− | sendChatMessageTo(-1, GetLocalizedMessage("ru", "Hello"), null); | + | sendChatMessageTo(-1, GetLocalizedMessage("ru", "Hello"), null); |
german is "de" (tested myself) | german is "de" (tested myself) |
Версия 23:45, 3 октября 2011
Сообщение на экран и в чат для оффлайна и онлайна на языке игрока
- Автор: FG28_Kodiak
- Ссылка: 1cpublishing.eu
- Архив для скачивания: hello.zip (1.3 KB) Скачать
- Действие скрипта: отправляет сообщения игрокам на их родном языке.
using System; using System.Collections; using System.Collections.Generic; using maddox.game; using maddox.game.world; public class Mission : AMission { private void sendScreenMessageTo(int army, string msg, object[] parms) { if (army != -1) { //Singleplayer (for Testing) if (GamePlay.gpRemotePlayers() == null || GamePlay.gpRemotePlayers().Length <= 0) { if (GamePlay.gpPlayer() != null && GamePlay.gpPlayer().Army() == army) GamePlay.gpHUDLogCenter(null, msg, parms); } else // Multiplayer { List<Player> Players = new List<Player>(); foreach (Player p in GamePlay.gpRemotePlayers()) { if (p.Army() == army) Players.Add(p); } GamePlay.gpHUDLogCenter(Players.ToArray(), msg, parms); } } else GamePlay.gpHUDLogCenter(null, msg, parms); } private void sendChatMessageTo(int army, string msg, object[] parms) { if (army != -1) { //Singleplayer (for Testing) if (GamePlay.gpRemotePlayers() == null || GamePlay.gpRemotePlayers().Length <= 0) { if (GamePlay.gpPlayer() != null && GamePlay.gpPlayer().Army() == army) GamePlay.gpLogServer(null, msg, parms); } else // Multiplayer { List<Player> Players = new List<Player>(); foreach (Player p in GamePlay.gpRemotePlayers()) { if (p.Army() == army) Players.Add(p); } GamePlay.gpLogServer(Players.ToArray(), msg, parms); } } else GamePlay.gpLogServer(null, msg, parms); } private void sendScreenMessageTo(int army, string playerlanguage, string msg, object[] parms) { if (army != -1) { //Singleplayer (for Testing) if (GamePlay.gpRemotePlayers() == null || GamePlay.gpRemotePlayers().Length <= 0) { if (GamePlay.gpPlayer() != null && GamePlay.gpPlayer().Army() == army && GamePlay.gpPlayer().LanguageName().Equals(playerlanguage)) GamePlay.gpHUDLogCenter(null, msg, parms); } else // Multiplayer { List<Player> Players = new List<Player>(); foreach (Player p in GamePlay.gpRemotePlayers()) { if (p.Army() == army && p.LanguageName().Equals(playerlanguage)) Players.Add(p); } GamePlay.gpHUDLogCenter(Players.ToArray(), msg, parms); } } else GamePlay.gpHUDLogCenter(null, msg, parms); } private void sendChatMessageTo(int army, string playerlanguage, string msg, object[] parms) { if (army != -1) { //Singleplayer (for Testing) if (GamePlay.gpRemotePlayers() == null || GamePlay.gpRemotePlayers().Length <= 0) { if (GamePlay.gpPlayer() != null && GamePlay.gpPlayer().Army() == army && GamePlay.gpPlayer().LanguageName().Equals(playerlanguage)) GamePlay.gpLogServer(null, msg, parms); } else // Multiplayer { List<Player> Players = new List<Player>(); foreach (Player p in GamePlay.gpRemotePlayers()) { if (p.Army() == army && p.LanguageName().Equals(playerlanguage)) Players.Add(p); } GamePlay.gpLogServer(Players.ToArray(), msg, parms); } } else GamePlay.gpLogServer(null, msg, parms); } public override void OnPlaceEnter(Player player, AiActor actor, int placeIndex) { base.OnPlaceEnter(player, actor, placeIndex); //test switch (player.LanguageName()) { case "de": sendScreenMessageTo(2, "de", "Hallo!", null); break; case "ru": sendScreenMessageTo(2, "ru", "Привет!", null); break; default: sendScreenMessageTo(2, "Hello!", null); break; } } }
Дополнительные сведения: normally i use
const int ArmyAll = -1; const int ArmyRed = 1; const int ArmyBlue = 2;
at the beginning of my scripts.
have corrected the script so if you want send a Message to All you can use
sendChatMessageTo(-1, "Test To All", null); sendScreenMessageTo(-1, "Test To All", null);
for your localized messages you can use
sendChatMessageTo(-1, GetLocalizedMessage("ru", "Hello"), null);
german is "de" (tested myself) english is "en" (not tested) russian is "ru" (not tested) so can anyone with this language version check this for me?
But i think the best is to add a option to private void sendChatMessageTo(int army, string playerlanguage, string msg, object[] parms) so it will be possible to use sendChatMessageTo(1, "en", "Hello", null); so it will send it only to the red players with english language version.