ВНИМАНИЕ! Код приведенный здесь не работает, рабочая версия кода находится на несколько постов ниже.
Подвох, если все скрипты исполняются в одном процессе, то обмен данными можно организовать так:
Код:// требуемые пространства имен using System.Windows; using System.Collections.Generic; // при инициализации хост миссии создаем и регистрируем таблицу достижений пилотов var table = new Dictionary<Player, int>(); Application.Current.Properties.Add("PlayerScoreTable", table); // в процессе игры, в подмиссии, получаем количество очков пилота if (Application.Current.Properties.Contains("PlayerScoreTable")) { // получаем таблицу var tablex = (Dictionary<Player, int>)Application.Current.Properties["PlayerScoreTable"]; // блокируем таблицу на время использования lock (tablex) { // тут получаем, не важно откуда, объект нужного нам игрока Player player = GamePlay.gpPlayer(); // проверяем, есть ли в таблице запись для указанного игрока if (tablex.ContainsKey(player)) { // получаем количество очков int score = tablex[player]; // добавляем указанному игроку 25 очков tablex[player] += 25; } else { // добавляем в таблицу запись для указанного игрока tablex.Add(player, 0); } } }




Ответить с цитированием