Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • 0
dimquea

Настройка кастомного лута

Нашёл одну из немногих тему по кастомному луту

тыц

не очень понятна настройка вероятности.

как я понял, помимо настройки вероятности непосредственно айтимов (CfgLootSmall.hpp и CfgLoot.hpp, кстати в чём между ними разница):

        trash[] = {
                {"TrashTinCan",0.5}
                ,{"TrashJackDaniels",0.05}
                ,{"ItemSodaEmpty",0.25}
                ,{"ItemTrashToiletpaper",0.1}
                ,{"ItemTrashRazor",0.1}

есть ещё вероятность настраиваемая по зданиям (CfgBuildingLoot.hpp)

        class IndustrialFuel: Default {
                zombieChance = 0.4;
                zombieClass[] = {"z_worker1","z_worker2","z_worker3"};
                maxRoaming = 2;
                lootChance = 0.4;
                lootPos[] = {};
                lootType[] = {
                        {"ItemGenerator","magazine",0.01},
                        {"fuel_pump_kit","magazine",0.01},
                        {"","generic",0.18},
                        {"","trash",0.28},
                        {"","military",0.04},
                        {"PartGeneric","magazine",0.04},
                        {"PartWheel","magazine",0.05},
                        {"PartFueltank","magazine",0.02},
                        {"PartEngine","magazine",0.02},
                        {"PartGlass","magazine",0.04},
                        {"PartVRotor","magazine",0.01},
                        {"ItemJerrycan","magazine",0.04},
                        {"WeaponHolder_ItemHatchet_DZE","object",0.07},
                        {"ItemKnife","military",0.07},
                        {"ItemToolbox","weapon",0.06},
                        {"ItemWire","magazine",0.01},
                        {"ItemTankTrap","magazine",0.04},
                        {"ItemKeyKit","weapon",0.01}
                };
                lootTypeSmall[] = {
                        { "","generic",0.5 },
                        { "","trash",0.28 },
                        { "","military",0.14 },
                        { "ItemKnife","weapon",0.07 },
                        { "ItemKeyKit","weapon",0.01 }
                };
        };

как я понял lootChance = 0.4 определяет вероятность появления лута.

а следующие строки определяют что именно заспавнится.

я вот ни как не могу понять как складывается вероятность, какой параметр важнее, и как правильнее увеличить спавн лута?

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Есть 3 основных файла лута.

Ты их уже написал.

Есть файл лута в зданиях - cfgBuildingLoot.hpp

houses.jpg

 

Тут настраивается общий шанс лута в здании.

У здания есть точки лута, и точки "малого" лута

А так же список предметов и групп лута.

В точках лута спавнятся предметы из cfgLoot

В точках малого лута из cfgSmallLoot

У здания прописывается в луте, - группа или конкретный предмет.

К примеру, если прописана группа предметов, то открывается файл cfgLoot(или SmallLoot - смотря для какой точки), и уже оттуда берутся шансы спавна.

Заспавнится один предмет из группы, - соответственно шансам.

 

Для примера:

Изначально определяется общий шанс лута в здании.

Если шанс удачный - т.е. спавн будет, тогда(на примере куска) -

lootType[] = {
{"","generic",0.18},
{"","trash",0.28},
{"","military",0.04},
....
 

 

Спавн будет взят из файла cfgLoot, т.к. указан lootType, а не LootTypeSmall

С шансом 4% будет выбрана группа - military, или 18% для группы - Дженерик(основное), или 28% будет выбран мусор(треш).

После выбора группы спавна, по шансам в группе будет определен предмет.

т.е. открывается сам файл cfgLoot

Ищется выбранная группа.

И из нее по шансам в группе выбирается предмет который будет заспавнен.

Share this post


Link to post
Share on other sites



  • 0

 

И из нее по шансам в группе выбирается предмет который будет заспавнен.

доходчиво, спасибо.

примерно так и предполагал. значит вероятность надо повышать комплексно, а не только в cfgloot.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By paranoyk
      Делается это немного нудно,но сравнительно просто (когда есть точки спавна).
      При спавне Land_Wreck_Uaz с помощью оффлайнера получим строку следующего вида.
      SpawnObject( "Land_Wreck_Uaz", "14348.268555 4.133186 13191.887695", "0.000000 0.000000 0.000000" );
      Нам необходимо задать точку для спавна "сетки лута".
      Для этого мы в файл по mapgrouppos.xml прописываем координаты взятые из строчки для спавна объекта (выше).
      <group name="Land_Wreck_Uaz" pos="14348.268555 4.133186 13191.887695" rpy="0.000000 0.000000 0.000000" a="0.000000" />
       
      group name="Land_Wreck_Uaz" pos="14348.268555 4.133186 13191.887695 - координаты запавненого УАЗика.
      rpy="0.000000 0.000000 0.000000" - числовые значения Yaw,Pitch,Roll соответственно. Берём их из всё той же строчки, но важно помнить что они там записаны в обратном порядке.
      a="0.000000"- угол порота сетки относительно угла поворота......короче! (Yaw-90) х (-1) Уже писал,что можно играться с 360 градусами,но пишу всегда полученное значение,проблем нет.

      И главное "сетка лута". Изначально её УАЗик не имеет, пишем её сами в файл mapGroupProto.xml .
       
      <group name="Land_Wreck_Uaz" lootmax="11"> <usage name="...класс вещей для спавна" /> <usage name="...класс вещей для спавна" /> <container name="lootfloor" lootmax="5"> -"контейнер" для описания спавна, максимальное колличество в спавне. <category name="...категория вещей для спавна" /> (возможен тэг- <tag name="floor" /> или <tag name="shelves" /> ) <point pos="0.511211 -0.372110 0.0254000" range="0.244141" height="0.513353" />-левое сиденье <point pos="-0.320921 -0.387334 -0.400000" range="0.310141" height="0.610353" />-правое переднее седение полик <point pos="-0.000921 -0.383194 0.301000" range="0.400186" height="0.590424" />-место за кпп середина <point pos="-0.211211 0.228620 -0.698000" range="0.360231" height="0.520142" />-правая часть капота возле стекла <point pos="0.681211 0.216190 -1.358000" range="0.262781" height="0.621102" />левая часть капота впереди </container> <container name="lootshelves" lootmax="3"> -"контейнер" для описания спавна, максимальное колличество в спавне. <category name="...категория вещей для спавна" /> (возможен тэг- <tag name="floor" /> или <tag name="shelves" /> ) <point pos="-0.406211 -0.098190 -1.131250" range="0.246819" height="0.620459" />-правое переднее крыло <point pos="0.306211 -0.436570 -1.651250" range="0.424141" height="0.810353" />- центр переднего бампера <point pos="0.906211 -0.359570 -1.664250" range="0.124141" height="0.100353" />-слева на бампере </container> <container name="lootweapons" lootmax="3">-"контейнер" для спавна длинногоствольного оружия, максимальное колличество в спавне, патронов и гранат. <category name="weapons" /> <category name="explosives" /> (возможен тэг- <tag name="floor" /> или <tag name="shelves" /> ) <point pos="0.256211 -0.372050 1.264250" range="0.724141" height="1.313353" /> -центр багажника <point pos="0.868211 -0.138190 1.398000" range="0.293625" height="0.605487" />-заднее левое крыло <point pos="-0.506211 -0.108190 1.431250" range="0.250879" height="0.582143" />-заднее правое крыло </container> </group> Вставляем нужные категории,классы и тэги,это практически конструктор.
      К примеру у меня пока выглядит так -
       
      <group name="Land_Wreck_Uaz" lootmax="11"> <usage name="Military" /> <usage name="Industrial" /> <usage name="Office" /> <container name="lootfloor" lootmax="5"> <category name="food" /> <category name="clothes" /> <point pos="0.511211 -0.372110 0.0254000" range="0.244141" height="0.513353" /> <point pos="-0.320921 -0.387334 -0.400000" range="0.310141" height="0.610353" /> <point pos="-0.000921 -0.383194 0.301000" range="0.400186" height="0.590424" /> <point pos="-0.211211 0.228620 -0.698000" range="0.360231" height="0.520142" /> <point pos="0.681211 0.216190 -1.358000" range="0.262781" height="0.621102" /> </container> <container name="lootshelves" lootmax="3"> <category name="tools" /> <category name="vehiclesparts" /> <point pos="-0.406211 -0.098190 -1.131250" range="0.246819" height="0.620459" /> <point pos="0.306211 -0.436570 -1.651250" range="0.424141" height="0.810353" /> <point pos="0.906211 -0.359570 -1.664250" range="0.124141" height="0.100353" /> </container> <container name="lootweapons" lootmax="3"> <category name="weapons" /> <category name="explosives" /> <point pos="0.256211 -0.372050 1.264250" range="0.724141" height="1.313353" /> <point pos="0.868211 -0.138190 1.398000" range="0.293625" height="0.605487" /> <point pos="-0.506211 -0.108190 1.431250" range="0.250879" height="0.582143" /> </container> </group> Также можно даже исключить полностью строчку lootmax="...". Большой разницы я не заметил.
      Сразу скажу,баги стандартные -длинноствол в багажнике может пробить ствол,иногда возможна "левитация" предметов.
      Во общем как то так.
      (возможно позже вылож сетку и для обломков V3S и С130. Решение для "заброшенной колонны" на севере-тоже в процессе.Кому надо-пишите)
    • By AntonivkA
      Итак, господа. В 1.05 разрабы похоже сломали механику спавна лута. У меня предметы стали спавниться там, где их не должно быть. Заметил сразу, поскольку таблица лута у меня переделана основательно. Например, Песочный барьер у меня прописан только на Военках и Полиц.участке, и все работало корректно до 1.05. Теперь, песочный барьер я нахожу в гаражах, мастерских и жилых домах вокруг полиц. участка и в самом полиц. участке. Помимо этого, ребята стали замечать и скинули инфу, что на СЗ в гаражах и мастерских стал появлятся военный лут, хотя его там не должно быть.
      Кто-что скажет по этому поводу. Заметил ли кто-то подобное у себя?
       
    • By zra47
      Забыл где это настраивается спавн лута ? в домах в казарамах и тп
    • By BorizzK
      Не изучал эту тему, было не нужно
      Поглядел пару тем включая эту
      И пытаюсь понять
      А как мне увеличить спавн лута, например на базе Павлово + добавить туда спавн лута, который по умолчанию ТАМ не спавнится?
       
      Спасибо!
       
    • By DrTauren
      В этом гайде расскажу как сделать несколько комплектов стартового лута для игроков. При появлении будет случайно выбираться один из трёх комплектов.
      Всё практически одинаково: Топор, одежда, сумка. Разница только в оружии.
      Присутствует три комплекта: М4А1, SVD, UMP. Всё с прицелами, прикладами и т.д., плюс три магазина патронов.

      Инструкция:
      1) Открываем файл init.c и находим этот код:
      class CustomMission: MissionServer { ........ } Mission CreateCustomMission(string path) { return new CustomMission(); } 2) Весь первый класс (который CustomMission: MissionServer) заменяем на это:
      class CustomMission: MissionServer { void SetRandomHealth(EntityAI itemEnt) { int rndHlt = Math.RandomInt(40,100); itemEnt.SetHealth("","",rndHlt); } override PlayerBase CreateCharacter(PlayerIdentity identity, vector pos, ParamsReadContext ctx, string characterName) { Entity playerEnt; playerEnt = GetGame().CreatePlayer(identity, characterName, pos, 0, "NONE");//Creates random player Class.CastTo(m_player, playerEnt); GetGame().SelectPlayer(identity, m_player); return m_player; } void addMags(PlayerBase player, string mag_type, int count) { if (count < 1) return; EntityAI mag; for (int i = 0; i < count; i++) { mag = player.GetInventory().CreateInInventory(mag_type); } player.SetQuickBarEntityShortcut(mag, 1, true); } EntityAI assaultClass(PlayerBase player) { EntityAI gun = player.GetHumanInventory().CreateInHands("M4A1"); gun.GetInventory().CreateAttachment("M4_RISHndgrd_Black"); gun.GetInventory().CreateAttachment("M4_MPBttstck_Black"); gun.GetInventory().CreateAttachment("ACOGOptic"); addMags(player, "Mag_STANAG_30Rnd", 3); return gun; } EntityAI sniperClass(PlayerBase player) { EntityAI gun = player.GetHumanInventory().CreateInHands("SVD"); gun.GetInventory().CreateAttachment("PSO1Optic"); addMags(player, "Mag_SVD_10Rnd", 3); return gun; } EntityAI smgClass(PlayerBase player) { EntityAI gun = player.GetHumanInventory().CreateInHands("UMP45"); gun.GetInventory().CreateAttachment("PistolSuppressor"); addMags(player, "Mag_UMP_25Rnd", 3); return gun; } override void StartingEquipSetup(PlayerBase player, bool clothesChosen) { player.RemoveAllItems(); player.GetInventory().CreateInInventory("TTSKOPants"); player.GetInventory().CreateInInventory("TTsKOJacket_Camo"); player.GetInventory().CreateInInventory("CombatBoots_Black"); player.GetInventory().CreateInInventory("ImprovisedBag"); player.GetInventory().CreateInInventory("SodaCan_Pipsi"); player.GetInventory().CreateInInventory("SpaghettiCan"); player.GetInventory().CreateInInventory("HuntingKnife"); ItemBase rags = player.GetInventory().CreateInInventory("Rag"); rags.SetQuantity(4); EntityAI primary; EntityAI axe = player.GetInventory().CreateInInventory("FirefighterAxe"); switch (Math.RandomInt(0, 3)) { case 0: primary = assaultClass(player); break; case 1: primary = sniperClass(player); break; case 2: primary = smgClass(player); break; } player.LocalTakeEntityToHands(primary); player.SetQuickBarEntityShortcut(primary, 0, true); player.SetQuickBarEntityShortcut(rags, 2, true); player.SetQuickBarEntityShortcut(axe, 3, true); } };
      Вы также можете настроить оружие и всё остальное под себя при помощи статьи, где указаны ID всех предметов:

      Так же есть возможность выдавать лут конкретным людям через UID:
       
×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.