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

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

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

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

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

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

    Цитата Сообщение от SlavikSG Посмотреть сообщение
    Да нет же! Там все не то. Там по событию OnActorCreated на каждого вновь созданного актора заводится свой личный таймер.
    Я же не говорил, что это нужно OnActorCreated делать. Можно и onTrigger. (В миссиях naryv зенитки по триггеру захвата маркера удаляются)

    А перебирать можно не только группы, но и акторов (поискать в примерах foreach actor in ... или типа того) емнип.
    ...зелёные горят.
    ----------------------

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

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

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

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

    Эх! Мне бы все тоже самое, только с небольшим примером. Номер миссии - это я понял. А какое имя запоминать? "Actor.Name()"? И потом, когда я запомню это самое строковое имя и номер миссии, как узнать, какой это будет потом "actor"? Ведь функция Destroy(), как я понял, работает только зная сам объект "actor", а не его строковое имя в миссии. Если я не прав, то очень бы хотел знать, как зная только строковое имя актора и номер мисси, можно применить функцию Destroy(). Ни в одном примере я не смог найти ничего, кроме такого написания:
    (actor as AiGroundActor).Destroy();
    Очень бы хотелось написать вот так: "Static4".Destroy(); Но это, естественно, работать не будет.

    Какой список имен создавать? Некий двумерный массив или может быть справочник "Dictionary". Или еще что-то, более удобное?

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    ...В твоем случае можно сделать что-то вроде класса Батарея...
    Ой, нет! Спасибо!
    Это точно не мой случай. В ООП я не секу совершенно. Не тот уровень подготовки. А с этим C# (с его невероятно сложным и малопонятным синтаксисом) вообще столкнулся впервые.

    Цитата Сообщение от -atas- Посмотреть сообщение
    ...А перебирать можно не только группы, но и акторов (поискать в примерах foreach actor in ... или типа того)...
    Неа! Бесполезно. Не смог найти. Похоже, что этого и нет вовсе.
    Крайний раз редактировалось SlavikSG; 25.11.2011 в 14:50.
    Нет в русском языке слова дешеГО. Есть слово дешеВО.

  3. #3

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

    Цитата Сообщение от SlavikSG Посмотреть сообщение
    Эх! Мне бы все тоже самое, только с небольшим примером. Номер миссии - это я понял. А какое имя запоминать? "Actor.Name()"? И потом, когда я запомню это самое строковое имя и номер миссии, как узнать, какой это будет потом "actor"? Ведь функция Destroy(), как я понял, работает только зная сам объект "actor", а не его строковое имя в миссии. Если я не прав, то очень бы хотел знать, как зная только строковое имя актора и номер мисси, можно применить функцию Destroy(). Ни в одном примере я не смог найти ничего, кроме такого написания:
    (actor as AiGroundActor).Destroy();
    Очень бы хотелось написать вот так: "Static4".Destroy(); Но это, естественно, работать не будет.

    Какой список имен создавать? Некий двумерный массив или может быть справочник "Dictionary". Или еще что-то, более удобное?


    Ой, нет! Спасибо!
    Это точно не мой случай. В ООП я не секу совершенно. Не тот уровень подготовки. А с этим C# (с его невероятно сложным и малопонятным синтаксисом) вообще столкнулся впервые.


    Неа! Бесполезно. Не смог найти. Похоже, что этого и нет вовсе.
    Если не ошибаюсь, есть метод GamePlay.gp(Get?)ActorByName(...), вроде так. Который позволяет получить актора по его полному имени, или вернет null, если актор не найден, соответственно после можно применить Destroy(). Напоминаю, полное имя актора выглядит как "номер миссии":"короткое имя". Для жонглирования именами используется стат. класс ActorName. Например, почти каждый метод возвращает номер миссии и короткое имя, можно с помощью ActorName получить из них правильно полное имя. AiActor.Name() возвращает полное имя.

    Список какой будет удобнее, конечно.
    Знаний ООП хватит и базовых, литературы масса. Синтаксис C# весьма несложный, тем более почти один в один с плюсов или PHP.

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

    Цитата Сообщение от -atas- Посмотреть сообщение
    А как его узнать и запомнить? Например, у меня в Степях может одновременно крутиться 3 одинаковых подмиссии с соответственно одинаковыми именами триггера. Мне нужно проверять триггер какой из подмиссии сработал, чтобы считать счет для каждой подмиссии (чтобы не путаться). OnTrigger я могу перебрать все активные миссии и проверить, if (missionnumber == x) но вот где получить х? Самому вручную считать при загрузке каждой подмиссии x = ++ ? Но возможно missionnumber, который присутствует в OnTrigger в каком-то своем внутреннем формате считается?

    Т.е. другими словами missionnumber из OnTrigger - это некая внутренняя вещь БзБ или я могу эти номера сам назначать перед загрузкой каждой подмиссии?
    Нет, назначать не можешь, но есть метод NextMissionNumber(), правда где именно (миссия, Battle или gamePlay) не помню. Опять же, отсылка к лёве, там это есть.

Ваши права

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