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

Страница 21 из 32 ПерваяПервая ... 1117181920212223242531 ... КрайняяКрайняя
Показано с 501 по 525 из 789

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

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

    Re: Вопросы.

    Цитата Сообщение от -atas- Посмотреть сообщение
    2 игры на одной машине не запустишь (когда ты уже в миссии), а игру и твой редактор можно, т.е. в любой момент переключился в редактор, посмотрел разведку нужного района, переключился в игру. Даже на 2м компьютере чтобы игру запустить нужно ее 2й раз купить сначала, а с твоей программой не нужно будет, т.е. на ноутбуке или планшете всегда будет открыта разведанная карта.
    Так это замечательно, в чем проблема-то? Карта-планшет, еще и на втором мониторе. К тому же видно будет только то, что скрипт не грузит. Это больше для оффлайна пригодится, видеть или не видеть цель игрок сам решит, выбрав фильтр - самого себя обманывать это как в шахматы против себя любимого играть. Плюс для отладки пригодится, например чтобы в брифинге правильные координаты целей написать, а не грузить каждую подмиссию. Да много полезного можно сделать. И вообще это все в планах, мне крутому программеру сейчас с аддинами хотя бы разобраться А программку на выходных поучу человечков включать))

  2. #502
    Старший Офицер Форума Аватар для Charger
    Регистрация
    08.04.2002
    Адрес
    Москва
    Возраст
    57
    Сообщений
    11,713
    Images
    16

    Re: Вопросы.

    Цитата Сообщение от -atas- Посмотреть сообщение
    2 игры на одной машине не запустишь (когда ты уже в миссии), а игру и твой редактор можно, т.е. в любой момент переключился в редактор, посмотрел разведку нужного района, переключился в игру. Даже на 2м компьютере чтобы игру запустить нужно ее 2й раз купить сначала, а с твоей программой не нужно будет, т.е. на ноутбуке или планшете всегда будет открыта разведанная карта.

    Если есть желание программировать можно веб интерфейс для кооп-скрипта сделать (выбор самолетов, настройка топлива, вооружения, запуск игры). 41sqn_Banks будет это делать как побочный продукт своего проекта, но не скоро.
    Проблема в другом. У меня, к примеру, в сети две машины. И вторая вполне тянет БзБ на самом предельном минимуме настроек... Перекинуть файло и посмотреть, ни разу не проблема. Но это практически ранняя-меловая тема, если геологическими категориями думать.
    Крайний раз редактировалось Charger; 18.05.2012 в 17:14.
    Мля, идите на дуэльный сервер - там ваши кони, сэры рыцари (c)mamali
    Я дрался с асами WarBirds(c)Varga
    Основная проблема русского витуального сообщества - избыток лыцарелизателей и рыцаререзателей и нехватка наевропуболтоположителей... (с)CoValent
    БоБ прямее руганью не станет. (с) Harh
    Oculos habent non viclebunt.(c) Псалом 134
    Q9650+8GbRAM+560Ti/2Gb i7-4790k+32Gb+2060/6Gb

  3. #503

    Re: Вопросы.

    кто - то уже нашел где клиент сохраняет этот файл и читать его пробовал?

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

    Re: Вопросы.

    свои dll добавляются в папку стима? Они не затираются оф. патчем?

  5. #505

    Re: Вопросы.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    свои dll добавляются в папку стима? Они не затираются оф. патчем?
    В папке игры - нет.

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

    Re: Вопросы.

    Объясните, в чем заблуждаюсь)

    1. Есть dll, находится в игровой папке стима P11_folder. dll называется P11_localization.dll.
    Наследую класс localization от AMission
    Ее содержание ниже - просто складывает два числа в статическом методе locText(int number1, int number2). Компилирую в VS и копирую в вышеназванную папку.

    Код:
    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;
            }
        }
    }
    Далее прописываю референсом созданную библиотеку и добавляю в namespace.
    Наследую от localization
    Пробую сложить два числа и вывести в чат - выдает ошибку. Ошибку не записал, но что-то вроде Exception - только вечером смогу посмотреть, но явно что-то не так делаю
    Код:
    //$reference "P11_folder\P11_localization.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;
    
    
    public class Mission : localization
    {
        public override void OnBattleStarted()
        {
            base.OnBattleStarted();
            MissionNumberListener = -1;
    
            int xxx = localization.locText(1, 2);
            SendMessageToAll("Расчет из DLL = " + xxx.ToString(), "Chat"); //метод вырезан для краткости
    
            //LOAD MAIN MISSION MAP OBJEKTS
            //GamePlay.gpPostMissionLoad("missions\\SMP\\Friday on my mind\\submissions\\Map AAA\\Map AAA.mis");       
        }
    Хотелось бы уточнить пошагово - что я вообще сделал, так как в основном методом тыка и копированием и просмотром чужих скриптов, особого понятия пока не обрел - слишком много на это времени уходит, а его сейчас нет.

    2. Я так понимаю нужно всегда в dll наследовать от AMission? Так как сначала было без наследования и мне игра написала в ошибках что-то про пенальти, даже испугался - за читера может принять по глупости моей...

    3. Как организовать наследования, если у меня допустим две dll - статистика и локализация и нужно чтобы они могли работать отдельно. Т.е. локализация мне к примеру нужна во всех миссиях, а статистика только в некоторых.
    Я в обеих dll наследую от AMission, а в скрипте миссии от чего наследовать? Или вообще в нем можно тоже наследовать от AMission также?

  7. #507

    Re: Вопросы.

    1. Напиши сначала что за ошибка. Дело в том, что конструкция //$reference не родная для С#, и там может быть все что угодно.
    2. Всегда
    3. Ну тут вопрос на миллион. Множественное наследование есть в плюсах, но от него зачастую больше проблем, чем пользы. )
    В твоем случае можно
    1. Наследоваться AMission -> LocMission - > StatMission
    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);

    От кого наследоваться собственно в скрипте миссии - задача на сообразительность )

    3. Событийная модель. Долго объяснять, если интересно, покопай мою dll из коммандера.

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

    Re: Вопросы.

    Цитата Сообщение от 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?

  9. #509

    Re: Вопросы.

    Если ты хочешь просто добавлять длл-ки без перекомпиляции основного кода, тогда надо юзать рефлексию - Assembly, Activator и т.п. Смотри в MSDN. Опять же долго объяснять, но подсказка вполне прозрачная. Тут же в теме я вроде выкладывал пример такого подхода.
    Блеск и нищета NET в том, что исходный код из сборок можно просматривать практически в первозданном виде, если его специально перед этим не обработать. Гугли .Net Reflector (shareware) и ILSpy (бесплатный аналог)

    И еще. К Addin то что ты предлагаешь, не имеет никакого отношения, лучше переименуй, что бы не путаться. А вот оно - курим конвейер дополнений

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

    Re: Вопросы.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    Если ты хочешь просто добавлять длл-ки без перекомпиляции основного кода, тогда надо юзать рефлексию - Assembly, Activator и т.п. Смотри в MSDN. Опять же долго объяснять, но подсказка вполне прозрачная. Тут же в теме я вроде выкладывал пример такого подхода.
    Блеск и нищета NET в том, что исходный код из сборок можно просматривать практически в первозданном виде, если его специально перед этим не обработать. Гугли .Net Reflector (shareware) и ILSpy (бесплатный аналог)

    И еще. К Addin то что ты предлагаешь, не имеет никакого отношения, лучше переименуй, что бы не путаться. А вот оно - курим конвейер дополнений
    Спасибо, хотя мало что понятно. Конкретно, что мне нужно для начала - это отправлять сообщения через свою сборку, чтобы в каждом скрипте не прописывать много кода по локализации. Достаточно dll для этого?
    Рефлексия - это миссия-бридж, которую ты выкладывал?

    Второе назначение - хранение глобальных переменных, для статистики например, чтобы их могли использовать(читать/менять) скрипты хост-миссии и подмиссии. Достаточно dll для этого?
    Крайний раз редактировалось podvoxx; 21.05.2012 в 13:03.

  11. #511

    Re: Вопросы.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Спасибо, хотя мало что понятно. Конкретно, что мне нужно для начала - это отправлять сообщения через свою сборку, чтобы в каждом скрипте не прописывать много кода по локализации. Достаточно dll для этого?
    Рефлексия - это миссия-бридж, которую ты выкладывал?

    Второе назначение - хранение глобальных переменных, для статистики например, чтобы их могли использовать(читать/менять) скрипты хост-миссии и подмиссии. Достаточно dll для этого?
    Если ты не задумываешь действительно чего то глобального с пол-сотней классов и тысячами строк кода, делать отдельную dll не стоит. Да и засорять папку игры dll-ками я бы не стал, имхо стоит подумать как сделать проще (например загружать пустые миссии со скриптом)
    Bridge это не совсем рефлексия, там она используется для загрузки сборки и извлечению из нее класса и его методов.
    Переменные можешь смело хранить в файле. Код скриптов миссии вызывается последовательно, так что о проблемах многопоточности можно не беспокоится.

    А вообще, скажу по секрету, будет встроенный локалайзер и общее хранилище для миссий в RSTMission, это что бы не делал лишнюю работу, если что.

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

    Re: Вопросы.

    Вот такой вариант использует Кодиак
    http://forum.1cpublishing.eu/showpos...74&postcount=2

    For example i use this in my dll:
    Код:
    using System.Collections.Generic;
    using System.Globalization;
    using maddox.game;
    using maddox.game.world;
    
    namespace COD
    {
        public static class Message
        {
            static readonly IGamePlay GamePlay = Strategy.THIS.GamePlay;
    
    
            public static void ToChatbar(string msg, params object[] args)
            {
                GamePlay.gpLogServer(null, msg, args);
            }
    
    
            public static void ToChatbar(Player player, string msg, params object[] args)
            {
                if (player != null)
                    GamePlay.gpLogServer(new[] { player }, msg, args);
            }
    
    
            public static void ToChatbar(int army, string msg, params object[] args)
            {
                var consignees = new List<Player>();
    
                if (GamePlay.gpPlayer() != null)
                    consignees.Add(GamePlay.gpPlayer());
                if (GamePlay.gpRemotePlayers() != null)
                    consignees.AddRange(GamePlay.gpRemotePlayers());
    
                if (army == -1)
                    GamePlay.gpLogServer(null, msg, args);
                else if (consignees.Exists(item => item.Army() == army))
                    GamePlay.gpLogServer(consignees.FindAll(item => item.Army() == army).ToArray(), msg, args);
            }
    
    
            public static void ToScreen(string msg, params object[] args)
            {
                GamePlay.gpHUDLogCenter(null, msg, args);
            }
    
    
            public static void ToScreen(Player player, string msg, params object[] args)
            {
                if (player != null)
                    GamePlay.gpHUDLogCenter(new[] { player }, msg, args);
            }
    
    
            public static void ToScreen(int army, string msg, params object[] args)
            {
                var consignees = new List<Player>();
    
                if (GamePlay.gpPlayer() != null)
                    consignees.Add(GamePlay.gpPlayer());
                if (GamePlay.gpRemotePlayers() != null)
                    consignees.AddRange(GamePlay.gpRemotePlayers());
    
                if (army == -1)
                    GamePlay.gpHUDLogCenter(null, msg, args);
                else if (consignees.Exists(item => item.Army() == army))
                    GamePlay.gpHUDLogCenter(consignees.FindAll(item => item.Army() == army).ToArray(), msg, args);
            }
            
    
            public static void ToScreenCountDown(string message, string endMessage, int seconds)
            {
                string tmpMessage = message + " ";
                int count = 0;
    
                while (count < seconds)
                {
                    Strategy.THIS.Timeout(count++, () =>
                    {
                        ToScreen(tmpMessage + seconds--.ToString(CultureInfo.InvariantCulture));
                    });
                }
                Strategy.THIS.Timeout(count, () => ToScreen(endMessage));
            }
    
    
            public static void ToScreenCountDown(Player player, string message, string endMessage, int seconds)
            {
                string tmpMessage = message + " ";
                int count = 0;
    
                while (count < seconds)
                {
                    Strategy.THIS.Timeout(count++, () =>
                    {
                        ToScreen(player, tmpMessage + seconds--.ToString(CultureInfo.InvariantCulture));
                    });
                }
                Strategy.THIS.Timeout(count, () => ToScreen(player, endMessage));
            }
    
    
            public static void ToScreenCountDown(int army, string message, string endMessage, int seconds)
            {
                string tmpMessage = message + " ";
                int count = 0;
    
                while (count < seconds)
                {
                    Strategy.THIS.Timeout(count++, () =>
                        {
                            ToScreen(army, tmpMessage + seconds--.ToString(CultureInfo.InvariantCulture));
                        });
                    
                }
                Strategy.THIS.Timeout(count, () => ToScreen(army, endMessage));
            }
    
        }
    }
    In the script file i use

    Код:
    //$reference parts/core/COD.dll  //reference to my dll (Assembly)
    using System;
    using maddox.game;
    using maddox.game.world;
    using COD;  //My namespace
    
    public class Mission : AMission
    {
    
        public override void OnPlaceEnter(Player player, AiActor actor, int placeIndex)
        {
            base.OnPlaceEnter(player, actor, placeIndex);
    
           Message.ToChatbar(player, "Welcome {0}", player);
           
            
        }
    }
    Это то, что нужно, кажется. Что вот эта строчка значит:
    Код:
    static readonly IGamePlay GamePlay = Strategy.THIS.GamePlay;

  13. #513

    Re: Вопросы.

    1. Точно так же dll подключает коммандер.
    2. тоже самое, что ты делаешь в скрипте миссии this.Gameplay.SomeMethod()

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

    Re: Вопросы.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    1. Точно так же dll подключает коммандер.
    2. тоже самое, что ты делаешь в скрипте миссии this.Gameplay.SomeMethod()
    Спасибо, до вечера наверное хватит информации

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

    Re: Вопросы.

    Код:
    [22:50:10]	=================================================
    [22:50:10]	System.IO.FileNotFoundException: Could not load file or assembly 'SMPlocalization, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Не удается найти указанный файл.
    [22:50:10]	File name: 'SMPlocalization, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
    [22:50:10]	
    [22:50:10]	Server stack trace: 
    [22:50:10]	   at Mission.OnTickGame()
    [22:50:10]	   at maddox.game.ABattle.OnTickGame()
    [22:50:10]	   at maddox.game.world.Strategy.OnTickGame()
    [22:50:10]	   at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
    [22:50:10]	   at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)
    [22:50:10]	
    [22:50:10]	Exception rethrown at [0]: 
    [22:50:10]	   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
    [22:50:10]	   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
    [22:50:10]	   at maddox.game.IBattle.OnTickGame()
    [22:50:10]	   at maddox.game.GameDef.tickGame()
    [22:50:10]	   at Rnn9R0HNW1FFeT2aIDs.ltiVH2HK9YyK7SdiCrk.8IDxVdt1dPyeHPkw7Ndf(Object )
    [22:50:10]	   at Rnn9R0HNW1FFeT2aIDs.ltiVH2HK9YyK7SdiCrk.NaqwoOS5Joc()
    [22:50:10]	   at JHVeKKyORf15WCVE1pL.eE20r2yPeQB95WctiCJ.ZRMSPQBwmiC(Boolean , Boolean )
    [22:50:10]	
    [22:50:10]	WRN: Assembly binding logging is turned OFF.
    [22:50:10]	To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
    [22:50:10]	Note: There is some performance penalty associated with assembly bind failure logging.
    [22:50:10]	To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
    [22:50:10]	
    [22:50:10]	=================================================
    Вот такую ошибку получаю, подключив библиотеку Кодиака. Да и с моими также.

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

    Re: Вопросы.

    Цитата Сообщение от FG28_Kodiak Посмотреть сообщение
    Where do you store the file?
    For multiplayer it must (should maybe there is another location too) be in "..\Steam\SteamApps\common\il-2 sturmovik cliffs of dover\parts\core" at the moment, until we can create Addins and specify the path of the User Dlls in the xml-file.
    Как написал Кодиак еще должен быть путь в xml файле, в кампании Desester видел такой файл.
    Small_Bee, библиотеки командера работают без xml? И чем отличается в таком случае твой вариант?

  17. #517

    Re: Вопросы.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Как написал Кодиак еще должен быть путь в xml файле, в кампании Desester видел такой файл.
    Small_Bee, библиотеки командера работают без xml? И чем отличается в таком случае твой вариант?
    Нет, у меня никакого xml не используется.

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

    Re: Вопросы.

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

  19. #519

    Re: Вопросы.

    Можно, для этого используется в скрипте конструкция
    //$reference

    Единственное, лончер должен знать, где дллку искать. Как эта конструкция точно работает я не знаю, но в корневой папке лончера находит точно.
    Разница с оффом в том, что тут ничего нового не напишешь такого, чего нельзя было бы сделать просто из скрипта.

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

    Re: Вопросы.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    Можно, для этого используется в скрипте конструкция
    //$reference

    Единственное, лончер должен знать, где дллку искать. Как эта конструкция точно работает я не знаю, но в корневой папке лончера находит точно.
    Разница с оффом в том, что тут ничего нового не напишешь такого, чего нельзя было бы сделать просто из скрипта.
    Спасибо, только я перепутал опять аддины с длл , надо отвлечься). Аддины только для оффа работают, насколько я смог понять.

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

    Re: Вопросы.

    Вчера все-таки подключил dll, вот этот вариант Кодиака можно использовать как пример - http://forum.1cpublishing.eu/showpos...74&postcount=2
    Оказалось сборка должна обязательно быть в папке "parts/core", хотя может я опять что-нибудь напутал(может и в корневой лаунчера будет работать, не проверял)

  22. #522

    Re: Вопросы.

    Смотри файл ...exe.config, там пути, где надо искать dll-ки указаны. В корневой папке по умолчанию ищет

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

    Re: Вопросы.

    http://forum.1cpublishing.eu/showthread.php?t=32329
    Вариант от Кодиака использования глобальных переменных в скриптах хост-миссии и подмиссий с использованием собственной сборки dll

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    Смотри файл ...exe.config, там пути, где надо искать dll-ки указаны. В корневой папке по умолчанию ищет
    Спасибо, посмотрю сегодня

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

    Re: Вопросы.

    Что-то я запутался.
    Есть подмиссия с методом OnActorDead(), она слушает все миссии(MissionNumberListener = -1;).
    Какой в ней будет missionNumber при уничтожении юнита из подмиссии и хост-миссии?
    Задача в методе OnActorDead() отделить юниты самой подмисии(missionNumber=0 ??) от юнитов подмиссий загруженных в хост-миссии(какие у них тогда получаются missionNumber?
    (проверить сейчас не могу, хотелось бы заранее написать код и дома проверить)

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

    Re: Вопросы.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Что-то я запутался.
    Есть подмиссия с методом OnActorDead(), она слушает все миссии(MissionNumberListener = -1;).
    Какой в ней будет missionNumber при уничтожении юнита из подмиссии и хост-миссии?
    хост миссия- та которая загружается первой имеет номер 0, в OnActorDead(int missionNumber, string shortName, AiActor actor, System.Collections.Generic.List<DamagerScore> damages) missionNumber - номер миссии убитого актора. Ну и лучше скрипт весь в начальной миссии делать.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Задача в методе OnActorDead() отделить юниты самой подмисии(missionNumber=0 ??)
    нет, у подмиссии свой порядковый номер, 0 - у самой первой.
    Don't happy, be worry

Страница 21 из 32 ПерваяПервая ... 1117181920212223242531 ... КрайняяКрайняя

Ваши права

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