
Сообщение от
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);
}
}