Перейти к содержимому


Фотография

createSite


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 12

#1 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 07 May 2014 - 20:18

Господа! Кто нибудь юзал в арме 3 эту команду с успехом?

Если да, поделитесь опытом. Мне эта команда уже весь плешь проела. А мне надо данный тип объектов спавнить кодом, а не из редактора.


  • 0

#2 OFFLINE   Avi

Avi

    Капитан

  • Репортеры
  • 1816 сообщений
  • Откуда:Москва

Отправлено 07 May 2014 - 21:24

Команда устарела. Она не нужна.

 

пользуйтесь фреймворком модулей 

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

 

P.S. А чем не устраивает способ помещения модуля в редакторе?


Сообщение отредактировал Avi: 07 May 2014 - 21:30

  • 0

#3 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 07 May 2014 - 21:53


P.S. А чем не устраивает способ помещения модуля в редакторе?

 

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


  • 0

#4 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 07 May 2014 - 22:04


пользуйтесь фреймворком модулей https://community.bi...o.com/wiki/Arma_3_Module_Framework

 

Да и тут я уже был, и модуль "Site_Civilian" BISовский уже привёл во вполне рабочее состояние для мультика. А теперь внимание! И как мне это дело инициализировать кодом, отспавнив сам модуль.


  • 0

#5 OFFLINE   Avi

Avi

    Капитан

  • Репортеры
  • 1816 сообщений
  • Откуда:Москва

Отправлено 07 May 2014 - 22:32

На первый взгляд вот эта ересь: 

_lg = "Site_BLUFOR" createVehicle (position player);

сработала. Только пока не придумал как это проверить. Заспавню-ка минное поле...


  • 0

#6 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 07 May 2014 - 22:53

Avi,

 

Дело в том что в моём случае результатом должно быть вот что, после спавна модуля он должен попадать в результат команды allSites, и тут просто спавном не отделаешься, нужна ещё правильная инициализация.

А без инициализации его , модуля, как бы и нет. А если забить на это, то придётся менять BISовский код более радикально, А вот это меня совсем не греет. Я то точу тему именно под то что будет когда то в арме по дефолту.  


  • 0

#7 OFFLINE   Avi

Avi

    Капитан

  • Репортеры
  • 1816 сообщений
  • Откуда:Москва

Отправлено 07 May 2014 - 22:56

Ну я не представляю, как его инициализировать, если не в отдоне...

А с отдонами я вообще не связывался. Не люблю их ещё больше, чем переводы, LOL : )


  • 0

#8 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 07 May 2014 - 23:02


_lg = "Site_BLUFOR" createVehicle (position player);

 

И это тоже не будет иметь эффекта) Я уже пробовал. Нужна инициализация модуля, потому что все модули инициализируются оптом


class Eventhandlers {
init = "if (isNil 'BIS_initSitesRunning') then {BIS_initSitesRunning = TRUE; ['[SITES] Modules config init'] call BIS_fnc_logFormat; if (isServer) then {execVM '\A3\modules_f\sites\init_core.sqf'} else {execVM '\A3\modules_f\sites\init_client.sqf'}}";
};

Ну я не представляю, как его инициализировать, если не в отдоне...

А с отдонами я вообще не связывался. Не люблю их ещё больше, чем переводы, LOL : )

 

Да вот и думаю как), папку modules в функциях уже почти наизусть выучил)

Да и аддон тут не в помощь.


Сообщение отредактировал SteelRat: 07 May 2014 - 23:03

  • 0

#9 OFFLINE   Avi

Avi

    Капитан

  • Репортеры
  • 1816 сообщений
  • Откуда:Москва

Отправлено 08 May 2014 - 11:15

И это тоже не будет иметь эффекта) Я уже пробовал.

 

Было бы удивительно, если бы оно имело эффект. Я вообще удивился, что оно выполнило эту команду.

 

Скорее всего, как и все модули, оно выполняет скрипт типа такого:

init = "if (isNil 'BIS_initSitesRunning') then {BIS_initSitesRunning = TRUE; ['[SITES] Modules config init'] call BIS_fnc_logFormat; if (isServer) then {execVM '\A3\modules_f\sites\init_core.sqf'} else {execVM '\A3\modules_f\sites\init_client.sqf'}}";

И сайты  - это логика, логика отличается тем, что это специальная "сущность", которая позволяет выполнять код, который находится в её строке инициализации.

И этот инит запускается у каждого игрока, который джойнится. Запуск логики и создание "сущности" LOGIC можешь глянуть в уроках про добавление неполного магазина.

 

Я не знаю как получше изучить модули или конкретно сайты, кроме как изучить определение их конфига и скрипты ,которые они вызывают.

 

Кью посоветовал в качестве примера поизучать как эти вещи сделаны в отдоне AllInArma

 

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

 

Для загрузки требуется регистрация и ожидание в течение нескольких минут.

 

allInOne.cpp - Полный дамп конфигов из памяти
cfgAmmoMagWepVeh.cpp - классы (модули и сайты в cfgVehicles)
 
Только файлы большие. Открывай редактором с нормальным поиском и поддержкой форматирования (посейдон, ноутпад плюс плюс, эдитпадпро и т.п.)

Сообщение отредактировал Avi: 08 May 2014 - 11:17

  • 0

#10 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 08 May 2014 - 17:49


Скорее всего, как и все модули, оно выполняет скрипт типа такого: init = "if (isNil 'BIS_initSitesRunning') then {BIS_initSitesRunning = TRUE; ['[SITES] Modules config init'] call BIS_fnc_logFormat; if (isServer) then {execVM '\A3\modules_f\sites\init_core.sqf'} else {execVM '\A3\modules_f\sites\init_client.sqf'}}";

 

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


  • 0

#11 OFFLINE   Avi

Avi

    Капитан

  • Репортеры
  • 1816 сообщений
  • Откуда:Москва

Отправлено 08 May 2014 - 23:26

Вот эта байда у меня пока и не получается.

 

 А какой, конкретно, модуль нужен? может на него забить большой и толстый (как у меня)? и сделать эту задачу в лоб?


  • 0

#12 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 09 May 2014 - 01:31


А какой, конкретно, модуль нужен? может на него забить большой и толстый (как у меня)? и сделать эту задачу в лоб?

 

Да в принципе у меня появилась идея как вставить этой теме по самые гланды), и радикально ни чего не меняя. Буду пробовать.

 

При спавне сайтов в процессе миссии проблема возникает из за того что вся логика в коде этого типа модулей завязана на команду allSites. В принципе это и есть тот самый гемморой, если эти модули спавнить а не ставить в редакторе. То есть если в процессе исполнения миссии отспавнить сайт, то этот модуль активирует определённую для этого типа логику, и это сразу же вызовет ошибку. И вот по чему, движку собственно до лампочки на то что мы только что отспавнили модуль Site, он просто не в танке, а логика модуля во первых же строках своего письма вызывает команду allSites, а в возвращенном результате естественно фиг с маслом), в результате ошибка.

 

И что мы в результате имеем:

 

Вариант первый: Как то изъе...ся, и инициализировать модуль как положено

 

Вариант второй, который я и попытаюсь провернуть:   Просто нае..ать весь код в этих модулях. Единственное придётся заменить команду allSites на другой вариант, но это проще). Суть вот в чём, подсунуть коду в модулях не ссылки на сайты, а дать ссылки на сами объeкты Logic, к которым я и прикручу необходимые параметры для функционирования логики. И это похоже самый дешёвый способ). Просто заменив команду на выражение которое соберёт все объекты Logic в переменную в которой должны находиться сайты. Минимум редактирования BISовщины и радужные перспективы)


  • 0

#13 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 09 May 2014 - 04:14


Да в принципе у меня появилась идея как вставить этой теме по самые гланды)

 

О да! Сунул) по самые помидоры) Получился второй вариант.


  • 0




Яндекс.Метрика