Цитата Сообщение от Small_Bee Посмотреть сообщение
2. Сделать по аналогии с Battle. Т.е. делаешь AMission -> LocMission, AMission -> StatMission, после еще делаешь AMission - > MyBattle. В MyBattle добавляешь приватным мембером List<AMission> myMissions. Там же переопределяешь каждый метод, и в методе, к примеру OnBattleStarted() пишешь foreach(AMission mis in myMissions) mis.OnBattleStarted(); Аналогично для остальных. Далее все легко и просто. На этапе инициализации надо просто сделать
AMission mission = new LocMission();
myMissions.Add(mission);
mission = new StatMission();
myMissions.Add(mission);
От кого наследоваться собственно в скрипте миссии - задача на сообразительность )
Этот вариант вроде подходит. Основная задача использовать различные набор dll по необходимости в миссиях. Имеем две dll с нэймспайсами - locaddin и stataddin.

Код:
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using maddox.game;
using maddox.game.world;
using maddox.GP;
using part;

namespace locaddin
{
    public class localization : AMission
    {
       
        public static int locText(int number1, int number2)
        {
            int result = number1 + number2;
            return result;
        }
    }
}
Код:
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using maddox.game;
using maddox.game.world;
using maddox.GP;
using part;

namespace stataddin
{
    public class statistic : AMission
    {
       
        public static int statText(int number1, int number2)
        {
            int result = number1 + number2;
            return result;
        }
    }
}
И сама миссия, которая использует обе dll в исходном состоянии:

Код:
//$reference "P11_folder\P11_localization.dll"
//$reference "P11_folder\P11_statistic.dll"
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using maddox.game;
using maddox.game.world;
using maddox.GP;
using locaddin;
using stataddin;

public class Mission : AMission
{
    public override void OnBattleStarted()
    {
        base.OnBattleStarted();
        MissionNumberListener = -1;        

        //LOAD MAIN MISSION MAP OBJEKTS
        //GamePlay.gpPostMissionLoad("missions\\SMP\\Friday on my mind\\submissions\\Map AAA\\Map AAA.mis");       
    }
Далее добавляем List<AMission> myMissions. В OnBattleStarted() или Inited? Или совсем в другое место?

Код:
//$reference "P11_folder\P11_localization.dll"
//$reference "P11_folder\P11_statistic.dll"
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using maddox.game;
using maddox.game.world;
using maddox.GP;
using locaddin;
using stataddin;

public class Mission : AMission
{
    public override void OnBattleStarted()
    {
        base.OnBattleStarted();
        MissionNumberListener = -1;        

        List<AMission> myMissions; //новый список переменных типа AMission
        AMission mission = new LocMission(); // заполняю список созданными миссиями, только не пойму чем если честно. Что это за миссии и как они связаны с dll?
        myMissions.Add(mission);
        mission = new StatMission();
        myMissions.Add(mission);
        //Как-то так? :
        StatMission : statistic;
        LocMission : localization;

        // "Там же переопределяешь каждый метод" - вот это не понял. Где там же и какие методы? У меня в неразумной голове это так пока выглядит:
       foreach(AMission mis in myMissions)
       {
             mis.OnBattleStarted(); //т.е. именно здесь переопределяю методы
        }


        //LOAD MAIN MISSION MAP OBJEKTS
        //GamePlay.gpPostMissionLoad("missions\\SMP\\Friday on my mind\\submissions\\Map AAA\\Map AAA.mis");       
    }
Вроде истина где-то рядом, но пока мозаика не собирается.

Цитата Сообщение от Small_Bee Посмотреть сообщение
3. Событийная модель. Долго объяснять, если интересно, покопай мою dll из коммандера.
А что значит покопай? Просто посмотреть методы или декомпилировать(что я не умею)? Или можно просмотреть исходник dll?