???
Математика на уровне МГУ

Показано с 1 по 25 из 789

Тема: Вопросы.

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    hehehe 111 Аватар для podvoxx
    Регистрация
    25.08.2008
    Адрес
    Барнаул - Питер
    Возраст
    41
    Сообщений
    4,245

    Re: Вопросы.

    Вопрос по статистике.В "Битве за деревню" в ходе миссии нужно учитывать уничтоженные вражеские объекты:
    - зенитная артиллерия - AAGun
    - противотанковая артиллерия, стационарные танки из раздела "Артиллерия" - Artillery
    - самолеты
    - наземная техника("живая")

    Все будет довольно простенько силами самой миссии без всяких заморочек: убил зенитку - получай +20, убил бомбер +50 и т.п.
    Во время миссии стороны могут вызывать подкрепления, каждая миссия будет стоить определенное количество очков. Счет будет вестись для красных и синих. Сам подсчет я себе примерно представляю, а вот как хранить и/или передавать данные не очень. Если писать заработанные очки в файл, то может так получиться что к этому файлу будет несколько обращений одновременно.

    1. Можно хранить очки в переменной, но я не знаю как сделать эту переменную доступной в нескольких запущенных скриптах. Кто-нибудь может подсказать как это делается?

    2. И еще сопутствующий вопрос: как удобней и правильней задавать/читать параметры из конфиг-файла. Сейчас у меня в каждой строчке параметр в виде string, допустим "1" или текст какой-то. Хотелось бы(точнее это уже необходимость) что-то вроде этого:

    Код:
    maxNumberPlanes = 10
    RedPoints = 560
    И чтобы оно легко менялось неподготовленным человеком(не учитывались лишние пробелы и т.п.). Подробно не нужно, общее направление и/или хорошей ссылки будет достаточно. Заранее спасибо
    Крайний раз редактировалось podvoxx; 26.12.2011 в 13:48.

  2. #2
    Старший Офицер Форума
    Регистрация
    15.02.2002
    Адрес
    Moscow
    Возраст
    46
    Сообщений
    6,905
    Images
    51

    Re: Вопросы.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    1. Можно хранить очки в переменной, но я не знаю как сделать эту переменную доступной в нескольких запущенных скриптах. Кто-нибудь может подсказать как это делается?
    а зачем в нескольких скриптах? В стартовом скрипте можно считать всю статистику по OnActorDead и всё.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    2. И еще сопутствующий вопрос: как удобней и правильней задавать/читать параметры из конфиг-файла. Сейчас у меня в каждой строчке параметр в виде string, допустим "1" или текст какой-то. Хотелось бы(точнее это уже необходимость) что-то вроде этого:

    Код:
    maxNumberPlanes = 10
    RedPoints = 560
    И чтобы оно легко менялось неподготовленным человеком(не учитывались лишние пробелы и т.п.). Подробно не нужно, общее направление и/или хорошей ссылки будет достаточно. Заранее спасибо
    есть класс ISectionFile с помощью которого можно читать "секционные" файлы, в файле формат записи такой примерно :
    Код:
    [VARS]
    attackTime 30
    attackedMarkers 1
    frontMarkers 1
    attackCountsRed 3
    attackCountsBlue 3
    attackTanksNrRed 4
    attackTanksNrBlue 4
    где VARS - имя секции, "attackTime" - имя ключа и "30" - значение, "=" не надо писать. Обрабатывить так примерно:
    Код:
    public class Mission : AMission
    {
    
        // переменные из инишника
       
        internal double attackTime = 10;
        internal int attackedMarkers = 10;
        internal int frontMarkers = 10;
        internal int attackCountsRed = 30;
        internal int attackCountsBlue = 30;
        internal int attackTanksNrRed = 40;
        internal int attackTanksNrBlue = 40;
    
    public void iniFileRead()
        {
            ISectionFile iniFile = GamePlay.gpLoadSectionFile("missions\\Multi\\Dogfight\\SmallWar\\smallWar.ini");
            string section, key, value;
            section = "VARS";
            key = "attackTime";
            value = iniFile.get(section, key);
            if (value != null)
                double.TryParse(value, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture.NumberFormat, out attackTime); // в переменную attackTime записывается значение ключа key  = "attackTime"
    
            key = "attackedMarkers";
            value = iniFile.get(section, key);
            if (value != null)
                int.TryParse( value, out attackedMarkers);  // в переменную attackTime записывается значение ключа key  ="attackedMarkers"
    
            key = "frontMarkers";
            value = iniFile.get(section, key);
            if (value != null)
                int.TryParse( value, out frontMarkers);
    
            key = "attackCountsRed";
            value = iniFile.get(section, key);
            if (value != null)
                int.TryParse( value, out attackCountsRed);
            
            key = "attackCountsBlue";
            value = iniFile.get(section, key);
            if (value != null)
                int.TryParse( value, out attackCountsBlue);
    
            key = "attackTanksNrRed";
            value = iniFile.get(section, key);
            if (value != null)
                int.TryParse( value, out attackTanksNrRed);
    
            key = "attackTanksNrBlue";
            value = iniFile.get(section, key);
            if (value != null)
                int.TryParse( value, out attackTanksNrBlue);   
    
        }
    }
    Don't happy, be worry

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •