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


Фотография

Вопросы по скриптингу

Arma3 как плотформа для созда Скритпы

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

#1001 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 30 December 2017 - 23:28

 

...


  • 0

#1002 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 31 December 2017 - 18:44

 

в чем смысл создавать 10 к объектов и проверять фпс и говорить о каком то там алгоритме))))) если эти объекты это  один и тот же объект

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

 

А по поводу алгоритмов, и всего остального, мне не нужно видимо рассказывать что создавая объект в сети, не важно на клиенте или сервере, это действо нужно транслировать в сеть, это раз, а два это то, что даже инстанция объекта требует при создании определённых ресурсов системы, и если вы создаёте большое кол-во объектов имеет смысл построить алгоритм так что бы очередной объект создавался после того как будет создан и инициализирован предыдущий. Тогда спавн, не важно 100 или 100000 объектов будет идти мягко и не занимать весь вычислительный ресурс системы, и останется ресурс для ещё чего либо остального. То есть, если сделать спавн не лавинообразным, то он будет идти ровно параллельно остальным игровым процессам.

 

Не давний мой пример из юнити.

При старте игры инициализировался процесс процедурной генерации поверхности. Одномоментно в мире существовала матрица из 5х5 террейнов. Для генерации требуется для начала сгенерировать карту высот для каждого террейна из матрицы. Естественное решение это делать в не зависимых потоках от основного потока в котором работает алгоритм генерации. Но, отдельный поток это гут, но когда в меру, то есть если я инициализировал генерацию сразу для всех террейнов, то естественно создавалось 25 новых задач, который естественно сразу же оккупировали весь вычислительный ресурс, и такая ситуация естественно сразу сказывалась на всём обще игровом процессе, то есть, начиналась конкуренция между потоками за вычислительный ресурс, что ни есть хорошо. Можно выдать задачам низкий приоритет, но тем не менее задачи когда ни будь должны исполняться. Решилось просто, управляющий созданием поверхности алгоритм при инициализации определяет сколько потоков может исполнить процессор параллельно, то есть определяет сколько  виртуальных процессоров в системе, и делит это кол-во на 2, то есть, алгоритм работает так, что одномоментно может занять половину процессорной мощности, оставляя остальную половину остальным нужным делам.

 

Прямая аналогия с армой, бесконтрольный спавн большого кол-ва объектов, ни есть хорошее решение, и не важно в сингле или мультике.


  • 0

#1003 OFFLINE   lopster102

lopster102

    Ст.сержант

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

Отправлено 01 January 2018 - 01:43

 

 

в чем смысл создавать 10 к объектов и проверять фпс и говорить о каком то там алгоритме))))) если эти объекты это  один и тот же объект

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

 

А по поводу алгоритмов, и всего остального, мне не нужно видимо рассказывать что создавая объект в сети, не важно на клиенте или сервере, это действо нужно транслировать в сеть, это раз, а два это то, что даже инстанция объекта требует при создании определённых ресурсов системы, и если вы создаёте большое кол-во объектов имеет смысл построить алгоритм так что бы очередной объект создавался после того как будет создан и инициализирован предыдущий. Тогда спавн, не важно 100 или 100000 объектов будет идти мягко и не занимать весь вычислительный ресурс системы, и останется ресурс для ещё чего либо остального. То есть, если сделать спавн не лавинообразным, то он будет идти ровно параллельно остальным игровым процессам.

 

Не давний мой пример из юнити.

При старте игры инициализировался процесс процедурной генерации поверхности. Одномоментно в мире существовала матрица из 5х5 террейнов. Для генерации требуется для начала сгенерировать карту высот для каждого террейна из матрицы. Естественное решение это делать в не зависимых потоках от основного потока в котором работает алгоритм генерации. Но, отдельный поток это гут, но когда в меру, то есть если я инициализировал генерацию сразу для всех террейнов, то естественно создавалось 25 новых задач, который естественно сразу же оккупировали весь вычислительный ресурс, и такая ситуация естественно сразу сказывалась на всём обще игровом процессе, то есть, начиналась конкуренция между потоками за вычислительный ресурс, что ни есть хорошо. Можно выдать задачам низкий приоритет, но тем не менее задачи когда ни будь должны исполняться. Решилось просто, управляющий созданием поверхности алгоритм при инициализации определяет сколько потоков может исполнить процессор параллельно, то есть определяет сколько  виртуальных процессоров в системе, и делит это кол-во на 2, то есть, алгоритм работает так, что одномоментно может занять половину процессорной мощности, оставляя остальную половину остальным нужным делам.

 

Прямая аналогия с армой, бесконтрольный спавн большого кол-ва объектов, ни есть хорошее решение, и не важно в сингле или мультике.

 

С новым годом всех! всем спс И ВСЕХ с новыми мисками  В НОВОМ году и новыми идеями!


  • 0

#1004 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 02 January 2018 - 09:59

Кто нибудь знает используют ли AI sensors для обзора (будут ли они видеть что либо из техники без sensors (если да: как (работает,назначается (то чем видят))?

никто не изучал ? :)


Сообщение отредактировал Ilias: 02 January 2018 - 10:00

  • 0

#1005 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 03 January 2018 - 02:07

Полазил вокруг,:

После Jets DLC все связанное с sensors выступает в замену радару, AI в ситуации с 

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

 1 получают информацию от них так же как игроки, остальные CanSee контролируются 

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

, так же, я так понимаю, к canSee 4 от выбранного AI оружия добавляется 

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

,  

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

,

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

(интересно как эти работают с AI),
  в роли защиты: 

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

 и 

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

, для сенсоров: 

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

,

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

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

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

...;

1. Кто нибудь знает как изменить camouflage и |_|targetsize confgs во время миссии ? (только не говорите наделать классов одной техники с разными значениями :) ) (думаю задача очевидна, альтернативы принимаются)


Сообщение отредактировал Ilias: 04 January 2018 - 09:45

  • 0

#1006 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 03 January 2018 - 03:40

2. и ещё вопрос, нашёл hullDamageCauseExplosion в MRAP_01_base_F (честно сказать не уверен где, но точно в def. confgs), обрадовался, но не похоже что работает (отключить с результатом не получилось, и в 

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

 она не упоминается)


Сообщение отредактировал Ilias: 04 January 2018 - 10:03

  • 0

#1007 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 04 January 2018 - 09:36

*1. огромное спасибо 

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

, судя по инф. на странице с сенсорами работать не будет но camouflage y, и в принципе полезно знать.

3. И ещё :) , как я понял в arma 3 урон указывается снарядам (в cfgammo), на определённой скорости (при попадании с меньшей урон <, и нао.),
получается для реалистичного урона нужно указывать всем на одной скорости, в зависимости от диаметра (9x19>5.56x45),
чем быстрее пуля двигается тем больше урон при попадании в бронежилет (5.56x45>9x19),
но появляется проблема: в случае сквозного ранения, со скоростью урон должен не меняться (иначе 5.56x45 вблизи > 9x19);
(стандартно в арме и урон и скорость 9x19 < 5.56x45 (урон на скорости просто чтобы менялся))
У кого нибудь есть идеи как это залатать ? (должно работать с AI тоже (с как можно большим количеством AI :) ))


Сообщение отредактировал Ilias: 07 January 2018 - 04:47

  • 0

#1008 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 04 January 2018 - 12:44

4. Как найти где конфиги перезаписываются ? (цель MRAP_01_F )

и ещё,

5.

у отмеченного m-atv:

				visualTargetSize=0.01;

;, что очевидно не работает (учитывая sensor на a10 дальность обнаружения (на видео) должна быть пара десятков метров), (visualTarget=0; работает как предполагалось)


Сообщение отредактировал Ilias: 07 January 2018 - 05:33

  • 0

#1009 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 06 January 2018 - 05:04

все переборщили на новый год? :)


  • 0

#1010 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 07 January 2018 - 00:02

ауу, хоть с чем нибудь подскажите :) , пожааалуйста


Сообщение отредактировал Ilias: 07 January 2018 - 00:03

  • 0

#1011 OFFLINE   ReXcOr

ReXcOr

    Ст.сержант

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

Отправлено 07 January 2018 - 04:11

Ой, не туда зашёл кажись :D

Сообщение отредактировал ReXcOr: 07 January 2018 - 04:12

  • 1

#1012 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 07 January 2018 - 15:33

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


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


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


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


Сообщение отредактировал vlad333000: 07 January 2018 - 15:34

  • 1

#1013 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 08 January 2018 - 01:34

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


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


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


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

Шутите?, я уже всё это проштудировал раза 3, ответов на заданные вопросы там нет (или я не нашёл), если это я их не вижу, направьте плз.


  • 0

#1014 OFFLINE   lopster102

lopster102

    Ст.сержант

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

Отправлено 08 January 2018 - 23:30

кто знает алгоритм создания объектов в таком коде как игра будет ставить в очередь все объекты и с какими задержками и услвоиями потому что  очевидно что после исполнения у игры свой метод будет вызван чтобы создать все что просишь

PS все объекты создадутся  со своим таймингом и жестко сажает ФПС

 

у себя так для примера пробовал на сервере делать.........

fn_createLoot = {
_pos = _this;
_pos set [2,0];
_array = [
"Land_CerealsBox_F",
"Land_Can_V1_F",
"Land_Can_V2_F",
"Land_Can_V3_F",
"B_AssaultPack_khk",
"B_Kitbag_rgr",
"Land_Ricebox_F",
"Land_TacticalBacon_F",
"Land_Camping_Light_F",
"Land_BakedBeans_F",
"B_FieldPack_khk",
"Land_BottlePlastic_V2_F",
"Land_Canteen_F",
"B_OutdoorPack_blk",
"Land_Bandage_F",
"Land_Basketball_01_F",
"Land_CanisterFuel_F",
"Land_Football_01_F",
"Suitcase",
"B_TacticalPack_rgr",
"Land_GamingSet_01_console_F",
"Land_CarBattery_02_F",
"Land_GamingSet_01_camera_F",
"Land_FMradio_F",
"arifle_Katiba_F",
"arifle_Katiba_C_F",
"arifle_Mk20_F",
"arifle_Mk20C_F",
"Land_PowderedMilk_F",
"Land_CarBattery_01_F",
"Land_Laptop_F",
"Land_MobilePhone_old_F",
"Land_GamingSet_01_controller_F",
"Land_HandyCam_F",
"Land_MobilePhone_smart_F"
];


_buildings = nearestObjects [_pos, ["building"],300];
      {
       _done =  [_x,_array] spawn{
          uisleep 0.6;
        {
          _pos = _x;
          _classname = selectRandom (_this select 1);
          if(_classname isKindOf "Bag_Base" or _classname isKindOf ["Rifle", configFile >> "CfgWeapons"])then{
            _holder = createVehicle [ "GroundWeaponHolder_Scripted",_pos, [], 0, "CAN_COLLIDE"];

             if(_classname isKindOf ["Rifle", configFile >> "CfgWeapons"])exitWith{
               _ammo = getArray (configFile >> "CfgWeapons" >> _classname >> "magazines");
               _holder addMagazineCargoGlobal [ selectRandom _ammo,3];
               _holder  addWeaponCargoGlobal [_classname, 1];
            };
             _holder  addBackpackCargoGlobal [_classname, 1];
            }else{
            _classname createVehicle _pos
          }

         }foreach ((_this select 0) buildingpos -1)
       };
       waitUntil {scriptDone _done};
      }foreach _buildings

    };

Сообщение отредактировал lopster102: 08 January 2018 - 23:43

  • 0

#1015 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 09 January 2018 - 00:02

lopster102, ты видишь среди нас разработчиков движка? Надутся объекты (В каком порядке - никто не знает), после чего абсолютно линейно будут создаваться объекты (Примерно раз в 0.6+ секунды если судить по вашему коду) сразу пачкой для всех позиций в объекте...
По коду:
1. Нах*я задержка в начале spawn?
2. Нах*я в цикле ждать пока завершиться spawn? Чем эта странная конструкция, по вашему мнению, будет отличаться от ростого call?

Сообщение отредактировал vlad333000: 09 January 2018 - 00:02

  • 0

#1016 OFFLINE   lopster102

lopster102

    Ст.сержант

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

Отправлено 09 January 2018 - 00:42

lopster102, ты видишь среди нас разработчиков движка? Надутся объекты (В каком порядке - никто не знает), после чего абсолютно линейно будут создаваться объекты (Примерно раз в 0.6+ секунды если судить по вашему коду) сразу пачкой для всех позиций в объекте...
По коду:
1. Нах*я задержка в начале spawn?
2. Нах*я в цикле ждать пока завершиться spawn? Чем эта странная конструкция, по вашему мнению, будет отличаться от ростого call?

=)


  • 0

#1017 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 09 January 2018 - 03:58

 

чтож такое проблемное с моими вопросами?


Сообщение отредактировал Ilias: 09 January 2018 - 09:51

  • 0

#1018 OFFLINE   ReXcOr

ReXcOr

    Ст.сержант

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

Отправлено 09 January 2018 - 09:49

кто знает алгоритм создания объектов в таком коде как игра будет ставить в очередь все объекты и с какими задержками и услвоиями потому что очевидно что после исполнения у игры свой метод будет вызван чтобы создать все что просишь
PS все объекты создадутся со своим таймингом и жестко сажает ФПС

у себя так для примера пробовал на сервере делать.........

fn_createLoot = {
_pos = _this;
_pos set [2,0];
_array = [
"Land_CerealsBox_F",
"Land_Can_V1_F",
"Land_Can_V2_F",
"Land_Can_V3_F",
"B_AssaultPack_khk",
"B_Kitbag_rgr",
"Land_Ricebox_F",
"Land_TacticalBacon_F",
"Land_Camping_Light_F",
"Land_BakedBeans_F",
"B_FieldPack_khk",
"Land_BottlePlastic_V2_F",
"Land_Canteen_F",
"B_OutdoorPack_blk",
"Land_Bandage_F",
"Land_Basketball_01_F",
"Land_CanisterFuel_F",
"Land_Football_01_F",
"Suitcase",
"B_TacticalPack_rgr",
"Land_GamingSet_01_console_F",
"Land_CarBattery_02_F",
"Land_GamingSet_01_camera_F",
"Land_FMradio_F",
"arifle_Katiba_F",
"arifle_Katiba_C_F",
"arifle_Mk20_F",
"arifle_Mk20C_F",
"Land_PowderedMilk_F",
"Land_CarBattery_01_F",
"Land_Laptop_F",
"Land_MobilePhone_old_F",
"Land_GamingSet_01_controller_F",
"Land_HandyCam_F",
"Land_MobilePhone_smart_F"
];


_buildings = nearestObjects [_pos, ["building"],300];
	  {
	   _done =  [_x,_array] spawn{
		  uisleep 0.6;
	    {
		  _pos = _x;
		  _classname = selectRandom (_this select 1);
		  if(_classname isKindOf "Bag_Base" or _classname isKindOf ["Rifle", configFile >> "CfgWeapons"])then{
		    _holder = createVehicle [ "GroundWeaponHolder_Scripted",_pos, [], 0, "CAN_COLLIDE"];

			 if(_classname isKindOf ["Rifle", configFile >> "CfgWeapons"])exitWith{
			   _ammo = getArray (configFile >> "CfgWeapons" >> _classname >> "magazines");
			   _holder addMagazineCargoGlobal [ selectRandom _ammo,3];
			   _holder  addWeaponCargoGlobal [_classname, 1];
		    };
			 _holder  addBackpackCargoGlobal [_classname, 1];
		    }else{
		    _classname createVehicle _pos
		  }

		 }foreach ((_this select 0) buildingpos -1)
	   };
	   waitUntil {scriptDone _done};
	  }foreach _buildings

    };
Сильно сажает из-за за:
1. Ты запрашиваешь конфиг, а это нээбически большой массив и движок пердит, когда перебирает такие массивы (сам проверял)
2. CreateVehicle работает быстрее если спаунить технику на координатах [0,0,0], а потом уже сэтпосишь ее на нужные корды (хз почему так, но это я видел у бисов в статье код перформанс)
ПС - это 50/50 тк может сам не правильно понял
3. Собственно физика объектов, которая просчитывается (банки, бутылки... которые у тебя в списке)
4. Команда nearestObjects норм отжирает ресурсов
5. Ну и наконец, count работает немного легче и быстрее foreach

А вообще, 70проц твоего ФПС высасывает симуляция

И вообще, я бы убрал все sleep и waitUntil и как подметил Влад, кинул бы это все на Call, тк у тебя итак ФПС сажается, так пускай все это за раз просядет хорошенько и сразу отпустит, нежели чем растягивать это слипами

Сообщение отредактировал ReXcOr: 09 January 2018 - 09:59

  • 0

#1019 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1834 сообщений

Отправлено 09 January 2018 - 10:49

2. CreateVehicle работает быстрее если спаунить технику на координатах [0,0,0], а потом уже сэтпосишь ее на нужные корды (хз почему так, но это я видел у бисов в статье код перформанс)
ПС - это 50/50 тк может сам не правильно понял

Всё верно, причём, судя по цифрам, разница может достигать 200 раз.
 

5. Ну и наконец, count работает немного легче и быстрее foreach

Не думаю, что ради этого "немного" стоит жертвовать наглядностью.
 

И вообще, я бы убрал все sleep и waitUntil и как подметил Влад, кинул бы это все на Call, тк у тебя итак ФПС сажается, так пускай все это за раз просядет хорошенько и сразу отпустит, нежели чем растягивать это слипами

Там проблема в непонимании, зачем sleep, waitUntil, spawn..., а также где их следует использовать.
В том применении они действительно бессмысленны, особенно uiSleep.
Вот что имеет смысл, так это создание объекта и его заполнение в своём потоке, и ожидание его завершения, чтобы этот процесс был менее заметен для игрока -- уж очень хреново Arma "отпускает", если создавать объекты пачками.

 

P. S.

Также не вижу смысла в использовании GroundWeaponHolder_Scripted.


Сообщение отредактировал Schatten: 09 January 2018 - 10:51

  • 0

#1020 OFFLINE   lopster102

lopster102

    Ст.сержант

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

Отправлено 09 January 2018 - 19:18

 

кто знает алгоритм создания объектов в таком коде как игра будет ставить в очередь все объекты и с какими задержками и услвоиями потому что очевидно что после исполнения у игры свой метод будет вызван чтобы создать все что просишь
PS все объекты создадутся со своим таймингом и жестко сажает ФПС

у себя так для примера пробовал на сервере делать.........

fn_createLoot = {
_pos = _this;
_pos set [2,0];
_array = [
"Land_CerealsBox_F",
"Land_Can_V1_F",
"Land_Can_V2_F",
"Land_Can_V3_F",
"B_AssaultPack_khk",
"B_Kitbag_rgr",
"Land_Ricebox_F",
"Land_TacticalBacon_F",
"Land_Camping_Light_F",
"Land_BakedBeans_F",
"B_FieldPack_khk",
"Land_BottlePlastic_V2_F",
"Land_Canteen_F",
"B_OutdoorPack_blk",
"Land_Bandage_F",
"Land_Basketball_01_F",
"Land_CanisterFuel_F",
"Land_Football_01_F",
"Suitcase",
"B_TacticalPack_rgr",
"Land_GamingSet_01_console_F",
"Land_CarBattery_02_F",
"Land_GamingSet_01_camera_F",
"Land_FMradio_F",
"arifle_Katiba_F",
"arifle_Katiba_C_F",
"arifle_Mk20_F",
"arifle_Mk20C_F",
"Land_PowderedMilk_F",
"Land_CarBattery_01_F",
"Land_Laptop_F",
"Land_MobilePhone_old_F",
"Land_GamingSet_01_controller_F",
"Land_HandyCam_F",
"Land_MobilePhone_smart_F"
];


_buildings = nearestObjects [_pos, ["building"],300];
	  {
	   _done =  [_x,_array] spawn{
		  uisleep 0.6;
	    {
		  _pos = _x;
		  _classname = selectRandom (_this select 1);
		  if(_classname isKindOf "Bag_Base" or _classname isKindOf ["Rifle", configFile >> "CfgWeapons"])then{
		    _holder = createVehicle [ "GroundWeaponHolder_Scripted",_pos, [], 0, "CAN_COLLIDE"];

			 if(_classname isKindOf ["Rifle", configFile >> "CfgWeapons"])exitWith{
			   _ammo = getArray (configFile >> "CfgWeapons" >> _classname >> "magazines");
			   _holder addMagazineCargoGlobal [ selectRandom _ammo,3];
			   _holder  addWeaponCargoGlobal [_classname, 1];
		    };
			 _holder  addBackpackCargoGlobal [_classname, 1];
		    }else{
		    _classname createVehicle _pos
		  }

		 }foreach ((_this select 0) buildingpos -1)
	   };
	   waitUntil {scriptDone _done};
	  }foreach _buildings

    };
Сильно сажает из-за за:
1. Ты запрашиваешь конфиг, а это нээбически большой массив и движок пердит, когда перебирает такие массивы (сам проверял)
2. CreateVehicle работает быстрее если спаунить технику на координатах [0,0,0], а потом уже сэтпосишь ее на нужные корды (хз почему так, но это я видел у бисов в статье код перформанс)
ПС - это 50/50 тк может сам не правильно понял
3. Собственно физика объектов, которая просчитывается (банки, бутылки... которые у тебя в списке)
4. Команда nearestObjects норм отжирает ресурсов
5. Ну и наконец, count работает немного легче и быстрее foreach

А вообще, 70проц твоего ФПС высасывает симуляция

И вообще, я бы убрал все sleep и waitUntil и как подметил Влад, кинул бы это все на Call, тк у тебя итак ФПС сажается, так пускай все это за раз просядет хорошенько и сразу отпустит, нежели чем растягивать это слипами

 

спс но все же настаиваю чтобы вы сам попробовали этот код хоть через call хоть через spawn тут сути не делает просто чтобы вы поняли про что именно я говорю. ФПС падает оч странно то есть я могу заспавнить все да хоть 10 к лагать не будет! а потом только через мин 10 начинает падать фпс то есть чем дольше это все дело лежит тем больше фпс падает как то так чтоли


Сообщение отредактировал lopster102: 09 January 2018 - 19:18

  • 0




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