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

Страница 2 из 7 ПерваяПервая 123456 ... КрайняяКрайняя
Показано с 26 по 50 из 168

Тема: Полный редактор и скрипты.

  1. #26

    Re: Полный редактор и скрипты.

    Фигушки, не цепляет ... хотя я пока не сказать что особо пытался - к стыду своему я мало с WPF работал, видимо прийдется, так что много не пробовал, инетрес на будущее. Но вообще, как я понимаю все в GameObject.MsgToServer(byte[] msg);, никаких иных методов воздействия на игру из плагина я не вижу, вот только осталось вытрясти засамизнаетекого форматы этих команд/сообщений.
    Если ты веришь, что все можно испортить, поверь и в то, что все можно исправить. Раби Нахман из Браслава.

  2. #27

    Re: Полный редактор и скрипты.

    Цитата Сообщение от tahorg Посмотреть сообщение
    Фигушки, не цепляет ... хотя я пока не сказать что особо пытался - к стыду своему я мало с WPF работал, видимо прийдется, так что много не пробовал, инетрес на будущее. Но вообще, как я понимаю все в GameObject.MsgToServer(byte[] msg);, никаких иных методов воздействия на игру из плагина я не вижу, вот только осталось вытрясти засамизнаетекого форматы этих команд/сообщений.
    Вот и я о том же... Имхо, пока эта фича либо отключена совсем, либо игра как-то фильтрует аддоны.. Так что ждем-с...

  3. #28

    Re: Полный редактор и скрипты.

    С новым патчем появилась возможность отслеживать статики артиллерию. Как слушать миссии мы знаем. Уже лучше...
    Крайний раз редактировалось Small_Bee; 23.04.2011 в 11:48.

  4. #29
    Инспектор
    Регистрация
    12.08.2008
    Адрес
    Новосибирск
    Сообщений
    5,345

    Re: Полный редактор и скрипты.

    Цитата Сообщение от tahorg Посмотреть сообщение
    Фигушки, не цепляет ... хотя я пока не сказать что особо пытался - к стыду своему я мало с WPF работал, видимо прийдется, так что много не пробовал, инетрес на будущее. Но вообще, как я понимаю все в GameObject.MsgToServer(byte[] msg);, никаких иных методов воздействия на игру из плагина я не вижу, вот только осталось вытрясти засамизнаетекого форматы этих команд/сообщений.
    Мне удалось подцепить.
    С кучей оговорок
    1. пространство имён нужно задать maddox
    2. Класс назвать ClientAddIn
    3. длл-ку положить в папку DefaultAddIn
    Вобщем, всё это чтобы вместо ClientAddIn.dll из поставки игры подсунуть свою. Из других мест не подхватывает, с другим именем тоже.
    Но это не самое главное.
    Самое главное то, что цепляется она только в момент создания сервера из игры - на выделенном сервере не работает.
    Остаётся проверить можно ли в неё запихнуть что-то, что будет отслеживать события миссии и сервера, хотя без работы её на выделенном сервере смысла особого не вижу.

  5. #30

    Re: Полный редактор и скрипты.

    Цитата Сообщение от Mirnyi Посмотреть сообщение
    Мне удалось подцепить.
    С кучей оговорок
    1. пространство имён нужно задать maddox
    2. Класс назвать ClientAddIn
    3. длл-ку положить в папку DefaultAddIn
    Вобщем, всё это чтобы вместо ClientAddIn.dll из поставки игры подсунуть свою. Из других мест не подхватывает, с другим именем тоже.
    Но это не самое главное.
    Самое главное то, что цепляется она только в момент создания сервера из игры - на выделенном сервере не работает.
    Остаётся проверить можно ли в неё запихнуть что-то, что будет отслеживать события миссии и сервера, хотя без работы её на выделенном сервере смысла особого не вижу.
    Круто! По крайней мере можно начинать эксперименты. Сто пудово, игра просто фильтрует аддоны сейчас.

  6. #31
    Инспектор
    Регистрация
    12.08.2008
    Адрес
    Новосибирск
    Сообщений
    5,345

    Re: Полный редактор и скрипты.

    Да ничего крутого.
    Для меня это оказалось ещё одним тупиком. Мне нужно добраться до управления выделенным сервером и до информации от него.
    Клиентские аддины не грузятся в режиме выделенного сервера.
    Попытался зацепиться через launcher.exe.config - та же ботва - при запуске игры вроде подгружается длл-ка (но отладчик говорит что "машинных символов в файле нет"), при запуске сервера - нет. Остаётся ещё один путь - разобраться с тем как подключаются дополнительные части (parts), но тут вообще не пойму как подступиться - видимо, список частей зарыт где-то прямо в коде (как и путь, и "фамилия" ClientAddIn).
    Вобщем, чем дальше ковыряю, тем больше впечатление, что либо я - совсем дурак, либо по части расширяемости там всё ещё сырее, чем по остальному.
    Реально управлять сервером с миссиями, похоже, пока можно только через скрипты, а это только половина дела - вторую половину (старт сервера и запуск битвы) - пока только через консоль.
    А с учётом того, что скрипты ещё и отладке не поддаются - вообще ж..па.
    И тишина от разрабов, похоже, не из-за "режима секретности", а именно из-за того, что толком ещё не определились как это всё реализовывать - куча точек "входа"(скрипты, аддоны, аддины, part-ы, консоль...) и все ущербные.

  7. #32
    3GIAP.ru Аватар для -atas-
    Регистрация
    26.12.2001
    Адрес
    Москва
    Возраст
    53
    Сообщений
    2,992
    Записей в дневнике
    1

    Re: Полный редактор и скрипты.

    Вроде работает на сервере Repka
    Код:
    using System;
    using maddox.game;
    using maddox.game.world;
    using System.Collections.Generic;
    
    public class Mission : AMission
    {
    
        // loads my sub-missions
        public override void OnTickGame()
        {
    
                if (Time.tickCounter() % 72000 == 18000) // 40-10
                {
                GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/128BoF/128BoFsmGroundv1_0.mis");
                GamePlay.gpHUDLogCenter("Protect friendly shipping in the channel near France!");
                }
    
                if (Time.tickCounter() % 72000 == 71999) // 40-40 
                {
                    GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/128BoF/128BoFsmBombersv1_0.mis");
    				GamePlay.gpHUDLogCenter("Intel: Enemy bombers are heading to blue airfields!"); 
    			}
            
                if (Time.tickCounter() % 72000 == 45000) // 40-25
    			{
                    GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/128BoF/128BoFsmBombersv1_0a.mis");
                    GamePlay.gpHUDLogCenter("Intel: Enemy bombers are heading to red airfields in France!"); 
    			}
    
             
        }
    
        // destroys aircraft abandoned by a player
        public void _DespawnEmptyPlane(AiActor actor)
        {
            if (actor == null)
            { return; }
    
            Player[] Players = GamePlay.gpRemotePlayers();
    
            bool PlaneIsEmpty = true;
    
            foreach (Player i in Players)
            {
                if ((i.Place() as AiAircraft) == (actor as AiAircraft))
                {
                    PlaneIsEmpty = false;
                    break;
                }
            }
    
            if ((PlaneIsEmpty) && (actor as AiAircraft).IsAirborne())
            {
    
                (actor as AiAircraft).hitNamed(part.NamedDamageTypes.ControlsElevatorDisabled);
                (actor as AiAircraft).hitNamed(part.NamedDamageTypes.ControlsAileronsDisabled);
                (actor as AiAircraft).hitNamed(part.NamedDamageTypes.ControlsRudderDisabled);
                (actor as AiAircraft).hitNamed(part.NamedDamageTypes.Eng0TotalFailure);
                //for 2mots
                (actor as AiAircraft).hitNamed(part.NamedDamageTypes.Eng1TotalFailure);
    
                //then wait 10min
                Timeout(600.0, () =>
                {
                    (actor as AiAircraft).Destroy();
                });
    
            }
            else if (PlaneIsEmpty)
            {
                (actor as AiAircraft).Destroy();
            }
        }
    
        public override void OnPlaceLeave(Player player, AiActor actor, int placeIndex)
        {
            base.OnPlaceLeave(player, actor, placeIndex);
            _DespawnEmptyPlane(actor);
        }
        // destroys crushlanded aircraft in 10 minutes
        public override void OnAircraftCrashLanded(int missionNumber, string shortName, AiAircraft aircraft)
        {
            base.OnAircraftCrashLanded(missionNumber, shortName, aircraft);
            Timeout(600, () =>
            {
                aircraft.Destroy();
            });
        }
    }
    ...зелёные горят.
    ----------------------

    i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.

  8. #33
    3GIAP.ru Аватар для -atas-
    Регистрация
    26.12.2001
    Адрес
    Москва
    Возраст
    53
    Сообщений
    2,992
    Записей в дневнике
    1

    Re: Полный редактор и скрипты.

    Выкладывали на 1С исправленную версию, которая включает в скрипт сервер, т.к. изначально сервер не входит GamePlay.gpRemotePlayers() http://forum.1cpublishing.eu/showpos...1&postcount=83 см. 2ю половина сообщения (!)

    Не было времени тестировать. Это поможет решить проблему того, что скрипты работают на невыделенном сервере, но не работают на выделенном?

    Код:
    using System;
    using maddox.game;
    using maddox.game.world;
    using System.Collections.Generic;
    
    public class  Mission : AMission
    {
    	public void _DespawnEmptyPlane(AiActor actor)
    	{
    		if (actor == null)
    			return;
    		Player[] Players = GamePlay.gpRemotePlayers();
    		bool PlaneIsEmpty = true;
    		foreach (Player i in Players) {
    			if (((i.Place() as AiAircraft) == (actor as AiAircraft)) || ((GamePlay.gpPlayer().Place() as AiAircraft) == (actor as AiAircraft))) {
    				PlaneIsEmpty = false;
    				break;
    			}
    		}
    		if (PlaneIsEmpty) {
    			(actor as AiAircraft).Destroy();
    		}
    	}
    
        public override void OnPlaceLeave(Player player, AiActor actor, int placeIndex) {
    		base.OnPlaceLeave(player, actor, placeIndex);
    		Timeout(1, () => {
    			_DespawnEmptyPlane(actor);
    		});
        }
    }
    ...зелёные горят.
    ----------------------

    i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.

  9. #34
    3GIAP.ru Аватар для -atas-
    Регистрация
    26.12.2001
    Адрес
    Москва
    Возраст
    53
    Сообщений
    2,992
    Записей в дневнике
    1

    Re: Полный редактор и скрипты.

    Задача - вывести на экран 2 сообщения, через 10 минут после загрузки подмиссии BoF2_ground01.mis + еще через 5 минут (15 после подгрузки). Вот такое будет работать или как-то изменить?

    Код:
    public class Mission : AMission
    {
     
    // loads my sub-missions
    public override void OnTickGame()
    {
    
      if (Time.tickCounter() % 108000 == 6000) // 60-10
      {
          GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/BoF2/BoF2_ground01.mis");
          // GamePlay.gpHUDLogCenter("Attention! Enemy activity spotted at x!");
          Timeout(600, () =>
            {
                GamePlay.gpHUDLogCenter("1.Attention! Enemy activity spotted at x!");
            });
          Timeout(300, () =>
          {
              GamePlay.gpHUDLogCenter("2.Urgent help needed at x!");
          });
      }
    ...зелёные горят.
    ----------------------

    i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.

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

    Re: Полный редактор и скрипты.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Задача - вывести на экран 2 сообщения, через 10 минут после загрузки подмиссии BoF2_ground01.mis + еще через 5 минут (15 после подгрузки). Вот такое будет работать или как-то изменить?

    Код:
    public class Mission : AMission
    {
     
    // loads my sub-missions
    public override void OnTickGame()
    {
    
      if (Time.tickCounter() % 108000 == 6000) // 60-10
      {
          GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/BoF2/BoF2_ground01.mis");
          // GamePlay.gpHUDLogCenter("Attention! Enemy activity spotted at x!");
          Timeout(600, () =>
            {
                GamePlay.gpHUDLogCenter("1.Attention! Enemy activity spotted at x!");
            });
          Timeout(300, () =>
          {
              GamePlay.gpHUDLogCenter("2.Urgent help needed at x!");
          });
      }
    вот так :
    Код:
    public class Mission : AMission
    {
     
    // loads my sub-missions
    public override void OnTickGame()
    {
    
      if (Time.tickCounter() % 108000 == 6000) // 60-10
      {
          GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/BoF2/BoF2_ground01.mis");
          double initTime = 0.0;
          Timeout(initTime +=600, () =>
            {
                GamePlay.gpHUDLogCenter("1.Attention! Enemy activity spotted at x!");
            });
          Timeout(initTime +=300, () =>
          {
              GamePlay.gpHUDLogCenter("2.Urgent help needed at x!");
          });
      }
    Don't happy, be worry

  11. #36

    Re: Полный редактор и скрипты.

    Скажите, пожалуйста, есть ли возможность подключения в скриптах других сборок из gac, например System.Web.Services?

    Допустим я хочу сохранять логи на удаленную машину или "получать из космоса" команды на выполнение взамен на события?

  12. #37

    Re: Полный редактор и скрипты.

    Цитата Сообщение от 2GvShAD_Jah Посмотреть сообщение
    Скажите, пожалуйста, есть ли возможность подключения в скриптах других сборок из gac, например System.Web.Services?
    Допустим я хочу сохранять логи на удаленную машину или "получать из космоса" команды на выполнение взамен на события?
    По-моему все можно подключать.. WebClient по крайней мере работает.

  13. #38

    Re: Полный редактор и скрипты.

    Ок, буду пробовать.

  14. #39

    Re: Полный редактор и скрипты.

    Судя по всему объект "Локальная погода" не работает? Что-то я не увидел его результатов.
    Phenom II X6 1090T @3600Mhz, Corsair XMS3 16GB, Radeon HD7850 2Gb|1920 x 1080, ASUS Xonar D1|Microlab Solo 5C, Thrustmaster T.16000M, Win 7 X64 SP1.

  15. #40

    Re: Полный редактор и скрипты.

    Большая уборка.

    Пара примеров организации подмиссий с точки зрения борьбы с захламлением битвы.

    1. Dogfight_01. Хост загружает подмиссию только один раз. Все остальные задачи подмиссия выполняет сама. В данном случае подмиссия загружает сама себя каждые n-секунд, предварительно удалив "старые" объекты. ключевой момент - метод ClearOwnActors(int _MissionNumber). Именно он занимается удалением объектов перед загрузкой нового экземпляра миссии.
    2. Dogfight_02. Тот же самый сценарий, но подмиссии не имеют скриптов вообще. Удалением трупиков и старых объектов занимается исключительно хост. Ключевой момент - метод DestroyMissionActors(int _MissionNumber = -1). Это доработанный ClearOwnActors, вызвав его без параметров, мы уничтожим вообще все объекты в миссии.

    PS. В миссиях есть танки, артиллерия, самолеты и корабли. Всё удаляется как полагается.
    Вложения Вложения

  16. #41

    Re: Полный редактор и скрипты.

    Цитата Сообщение от andersbravers Посмотреть сообщение
    А самих игроков тоже удалит? Вот пробовал вчера по образу Dogfight_01, наземка удалялась, спасибо. Dogfight_02 буду посмотреть

    --- Добавлено ---

    Смотрю Dogdfight_02. Интересно, до этого думал, что MissionNumberListener = -1 это только для "прослушки" триггеров в подмиссиях...

    --- Добавлено ---

    Вот пробовал вчера к подмиссиям .cs приписывать, чтобы там указать подчистку объектов и делать перезагруз самой себя, ты как-то высказывал такую идею, что чистится лучше если и рождение, и чистка в одной подмиссии. К сожалению все постер, не могу привести, но в-общем не получилось с перезагрузкой миссии, хотя по одному разу загружались. Отталкивался в целом от Dogfight_01, только в подмиссиях делал еще перезагруз по тикам. Но оставил старый принцип, похожий как в Dogfight_02: т.е. миссия загружает по тикам подмиссии, а уже в .cs к ним указать подчистку объектов. Ну, в принципе, можно как у тебя сделать подчистку в .cs к основной миссии, а тогда .cs подмиссий вообще можно удалить за ненадобностью.
    Тики в подмиссиях имхо хреновая идея. попробуй в 01 убрать проверку в OnMissionLoaded на номер миссии, и посмотри что получится. Я сдуру включил ускорение, боб здох за 5 сек. От, имхо, то же самое будет.

    Грузить из хоста, а чистить из подмиссии - немного не понял. А как подмиссия узнает, что чистится пора?

  17. #42

    Re: Полный редактор и скрипты.

    Цитата Сообщение от andersbravers Посмотреть сообщение
    Да я тогда неправильно твою идею понял, думал, что возрождение и чистка должно быть в одной подмиссии. Ну и ничего из этого соответственно не вышло, кроме загрузки миссии по одному разу. А чистка вроде срабатывала, хотя долго не имел возможности погонять. А тики у тебя самого же вроде стоят? Вот кусок host_01 из Dogfight_02:
    Код:
    public override void OnTickGame()
        {
            base.OnTickGame();
            if (Time.tickCounter() % 3000 == 0)
            {
                LoadMission("missions/Multi/Dogfight/blue01.mis");
                Timeout(45, () => { LoadMission("missions/Multi/Dogfight/red01.mis"); });
    У меня такие же, первая ч-з 10 сек, вторая через кажется 30 сек., третья ч-з 1 мин и т.д.

    --- Добавлено ---

    Кстати, а // destroy all own air units
    AiAirGroup[] airGroups = GamePlay.gpAirGroups(army);
    if (airGroups != null) // required check!
    {
    не убивает случайно игроков?
    Мы похоже на разных языках разговариваем . Немного определимся в терминах и определениях.

    Хост - это миссия стартовая. Именно та, которая загружается самой первой - ее загружает сервер. Все остальные - это подмиссии. Даже если мы загрузим нашу стартовую миссию еще раз в процессе битвы, это тоже, уже будет подмиссия. Т.е. хост всегда имеет номер - 0.

    В первом примере подмиссия все делает сама, во втором все делает хост, подмиссия вообще без мозгов. А какой метод лучше использовать или как их сочетать - решать уже мисмейкеру. Т.е. можно и так и так. Идея фикс именно в "контроле рождаемости", а не в том, кто этим занимается.

    Каждый актор имеет два имени. Одно - короткое (уникальное в пределах своей миссии), второе - полное (уникальное в пределах битвы). Длинное имя состоит из номера миссии, загрузившей актора, а короткого имени. Метод Name() актора возвращает полное имя. Выделив из полного имени номер, мы сможем узнать, к какой миссии он принадлежит. ClearOwnActors() именно этим и занимается, т.е. никакие левые акторы затронуты не будут, в том числе и самолеты игроков. Аналог этого метода из догфайт_02 может, действительно, при вызове без параметров убить вообще все живое. Рестарт

    Загрузка миссии. То что мы написали в файле и скрипте, с точки зрения битвы миссией не является, как не являются автомобилем его чертежи. Скрипт - это начинка автомобиля, файл миссии - внешний обвес. Т.е. это по сути чертеж, схема будущей миссии. Загружая миссию, мы по сути собираем автомобиль по чертежам. Т.е. проделав это несколько раз, мы получим несколько одинаковых автомобилей а не один обновленный.

    А теперь что хотел этим сказать. Если в описании по нашему автомобилю сказано, что он самостоятельно, каждые 10 минут должен собрать такой же - представляем картину. Мы собрали первый автомобиль и забыли за него. Через 10 минут их будет уже двое. Через 20 минут - четверо. Через 30 - 8 штук. И так далее до бесконечности. Вот то же самое будет, если миссии дать возможность грузить саму себя по тикам.

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

  18. #43
    3GIAP.ru Аватар для -atas-
    Регистрация
    26.12.2001
    Адрес
    Москва
    Возраст
    53
    Сообщений
    2,992
    Записей в дневнике
    1

    Re: Полный редактор и скрипты.

    Цитата Сообщение от andersbravers Посмотреть сообщение
    Да, и можно ли чистить севшие боты-бомберы? А то их скапливается просто бешенное количество.
    Убирает после вынужденной и после посадки через 5 минут. Для твоей миссии таймаут можно уменьшить, если они садятся там, где их не видно.

    Код:
        public override void OnAircraftCrashLanded(int missionNumber, string shortName, AiAircraft aircraft)
        {
            base.OnAircraftCrashLanded(missionNumber, shortName, aircraft);
            Timeout(300, () =>
            { destroyPlane(aircraft); }
                );
        }
        public override void OnAircraftLanded(int missionNumber, string shortName, AiAircraft aircraft)
        {
            base.OnAircraftLanded(missionNumber, shortName, aircraft);
            Timeout(300, () =>
            { destroyPlane(aircraft); }
                );
        }
    ...зелёные горят.
    ----------------------

    i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.

  19. #44

    Re: Полный редактор и скрипты.

    Цитата Сообщение от andersbravers Посмотреть сообщение
    Это вот это:
    private void DestroyMissionActors(int _MissionNumber = -1)
    Т.е. если убрать -1 , то произойдет перезагруз миссии?
    Не надо ничего убирать. Просто вставить в нужном месте вот такую строку:

    Код:
    DestroyMissionActors();
    У мну такое чувство, что примеры вообще не смотрелись. Как только вы загрузите новую миссию с бобрами, все старые бобры, живые или мертвые, в воздухе или в ангаре, исчезнут.

    Кстати со статиками, за исключением рабочей артиллерии, мы вообще ничего сделать не можем. К огромному сожалению
    Крайний раз редактировалось Small_Bee; 06.09.2011 в 16:17.

  20. #45

    Re: Полный редактор и скрипты.

    Цитата Сообщение от andersbravers Посмотреть сообщение
    Точно, Dogfight_01 загрузился только брифинг (карта), зайти так и не удалось. Dogfight_02 еще не успел посмотреть, только скрипты.
    Если нет кнопки летать (это если в сингле или в редакторе запускаешь без назначенного игроку самолета) - нажми ескейп - там в меню будет "Летать". Вуаля.

  21. #46
    Курсант Аватар для SlavikSG
    Регистрация
    26.03.2004
    Адрес
    Новомосковск Тульская обл.
    Возраст
    59
    Сообщений
    441

    Re: Полный редактор и скрипты.

    В моем пробном тестовом сценарии миссии, одна зенитка гасит другую зенитку (спавнятся они умышленно рядышком).

    Имеем вот такую часть кода:
    Код:
    //---------------------------------------------------------------------------------
        public override void OnActorDead(int missionNumber, string shortName, AiActor actor, List<DamagerScore> damages)
        {
         base.OnActorDead(missionNumber, shortName, actor, damages);            
    
         if (actor is AiGroundActor)
            {
             Timeout(10, () =>
                {(
                actor as AiGroundActor).Destroy();
                Sss("Наземка была удалена с карты " + shortName);
                GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/Skript1.mis");
                });
            }
    
        }
    //---------------------------------------------------------------------------------
    Как именно в этой части кода можно определить какая именно зенитка была подбита? Красная или Синяя? Или как это сделать другим кодом? Я делал это создавая тригер на нужную зенитку. Получалось. Но мне это показалось слишком громоздким.
    Нет в русском языке слова дешеГО. Есть слово дешеВО.

  22. #47
    3GIAP.ru Аватар для -atas-
    Регистрация
    26.12.2001
    Адрес
    Москва
    Возраст
    53
    Сообщений
    2,992
    Записей в дневнике
    1

    Re: Полный редактор и скрипты.

    Можно попробовать if (actor.Army() == 1) - значит красные
    == 2 - значит синие

    Но я такое использовал только с player, но не с actor. В примерах naryv можно ".Army" поискать.
    Вот здесь все примеры в одном архиве http://forum.1cpublishing.eu/showthread.php?t=26523
    ...зелёные горят.
    ----------------------

    i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.

  23. #48
    Курсант Аватар для SlavikSG
    Регистрация
    26.03.2004
    Адрес
    Новомосковск Тульская обл.
    Возраст
    59
    Сообщений
    441

    Re: Полный редактор и скрипты.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Можно попробовать if (actor.Army() == 1) - значит красные
    == 2 - значит синие
    Большое спасибо! Это реально работает и реально сильно помогло. Но сразу возникает следующий вопрос...

    Имеем:"Actor"

    actor.Name()
    actor.Army()

    и так далее...

    Как продолжить этот список? Где народ берет эту инфу? Ну, чтобы в будущем не мучить народ вопросами, а искать самому.

    Кусок миссии:
    [Stationary]
    Static1 Artillery.Krupp_L2H43_Protze_Flak38 gb 17433.78 10644.86 -75.00 /timeout 0/radius_hide 0


    Смысл в том, что я могу узнать к какой армии принадлежит наземка, какое ее имя в миссии. Но мне нужно знать нее ее имя "Static1": А ее тип. Ну, или тоже имя, только другое. Это имя: "Krupp_L2H43_Protze_Flak38". Или это имя "Artillery.Krupp_L2H43_Protze_Flak38"
    Нет в русском языке слова дешеГО. Есть слово дешеВО.

  24. #49

    Re: Полный редактор и скрипты.

    Цитата Сообщение от SlavikSG Посмотреть сообщение
    Большое спасибо! Это реально работает и реально сильно помогло. Но сразу возникает следующий вопрос...

    Имеем:"Actor"

    actor.Name()
    actor.Army()

    и так далее...

    Как продолжить этот список? Где народ берет эту инфу? Ну, чтобы в будущем не мучить народ вопросами, а искать самому.

    Кусок миссии:
    [Stationary]
    Static1 Artillery.Krupp_L2H43_Protze_Flak38 gb 17433.78 10644.86 -75.00 /timeout 0/radius_hide 0


    Смысл в том, что я могу узнать к какой армии принадлежит наземка, какое ее имя в миссии. Но мне нужно знать нее ее имя "Static1": А ее тип. Ну, или тоже имя, только другое. Это имя: "Krupp_L2H43_Protze_Flak38". Или это имя "Artillery.Krupp_L2H43_Protze_Flak38"
    Из статиков в скрипте на сегодня можно "увидеть" только артиллерию и кораблики. Надеюсь, это дело расширят рано или поздно.
    Описание интерфейсов смотрим из Visual Studio (Подключаем сборки из parts), или юзаем рефлектор.
    Имя актора можно получить через Name(), тип получаем через InternalTypeName(). Опять же, посёрфив по сборкам, можем найти еще много интересного.

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

    Re: Полный редактор и скрипты.

    Цитата Сообщение от SlavikSG Посмотреть сообщение
    Большое спасибо! Это реально работает и реально сильно помогло. Но сразу возникает следующий вопрос...
    Как продолжить этот список? Где народ берет эту инфу? Ну, чтобы в будущем не мучить народ вопросами, а искать самому.
    Либо так (у меня с VS сплошные проблемы, утановился только 2008-й и работает только С++) подключив библиотеки боба, в которых есть все команды и методы:
    Настройка среды разработки Visual Studio для работы с библиотеками игры
    Либо там же в скриптах есть списки методов и др., впрочем все это взято из архива Атаса.

Страница 2 из 7 ПерваяПервая 123456 ... КрайняяКрайняя

Ваши права

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