Перейти к контенту

[SoC] Ковыряемся в файлах


Рекомендуемые сообщения

7 часов назад, _Val_ сказал:

В смысле что?

Скриптовый спавн, респавн или сама логика?

С логикой всё просто..

В смысле, чтоб работала конструкция из файла логики, вызываемая скриптово, а не из all.spawn:

[smart_terrains]

имя_смарта = true

Сталкер - наше всё!

-- прочитать секцию [smart_terrains]
-- вызывается объектами, которые могут ходить под smart terrain
function read_smart_terrain_conditions( obj )    -- непись или моб на входе !
 

    local ini = obj.ini
    local sect
    if ini:section_exist( "logic" ) and ini:line_exist( "logic", "cfg" ) then
        sect = ini:r_string( "logic", "cfg" )    -- способ оверрайда allspawn для amk
                            -- секция смарта пишется в файле "логики"
        local ltx_ini = sect and ini_file( sect )
        if ltx_ini and ltx_ini:section_exist( "smart_terrains" ) then
            ini, sect = ltx_ini, "smart_terrains"
        -- если во внешнем файле нет - читаем из spawn_ini
        elseif ini:section_exist( smart_section ) then sect = smart_section
        else return
        end

    elseif ini:section_exist( smart_section ) then sect = smart_section    -- или берем из custom data
    else return
    end

    local n = ini:line_count( sect )

...

И меть в виду, что в se_stalker.script зачем-то сделано:

function se_stalker:fill_exclusives()
  self:get_ini()
  self.smart_terrain_conditions             = smart_terrain.read_smart_terrain_conditions( self )

  if self.smart_terrain_conditions then
    for name, condlist in pairs(self.smart_terrain_conditions) do
      smart_terrain.exclusives[name] = (smart_terrain.exclusives[name] or 0) + 1
    end
  end
end

 

function se_stalker:on_before_register()
  self:fill_exclusives()
end

 

и "продолжателями" продолжено в том же стиле,  то есть, прописанное из se_respawn амк будет подхвачено ТОЛЬКО после s/l, а до того заспавненное имеет шанс быть тут же удаленным как "не нашли места в смарте".

 

  • Полезно 1
13 часов назад, Dennis_Chikin сказал:

 elseif ini:section_exist( smart_section ) then sect = smart_section

А разве не smart_terrains должно быть написано? И где сей кусок кода должен быть?

Сталкер - наше всё!

Очередной нубский вопрос.

===============

Если я спавню любой итем, пусть например ящик, через оллспавн, то там помимо строки

position = x, y, z есть и строка direction = ....

 

Если я использую скриптовый спавн, типа alife():create("item",vector():set(x,y,z),lv,gv), то существует ли способ, каким-то образом указать и здесь direction = .... ?

 

Спасибо.

 

"Кругом зомби.....у меня кончаются патроны...."

А кто знает: чтобы при убийстве у всех НПС в инвентаре появлялись КПК, куда их писать? Только в death_generic.ltx, секцию [keep_items] или еще куда?

Сталкер - наше всё!

@AndrewMor ,

в сами файлы описания персонажей, по типу character_desc_.....xml. Иначе не будет вещей, которые должны сгенироваться по настройкам из death_generic.ltx

  • Спасибо 1

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

51 минуту назад, ed_rez сказал:

@AndrewMor ,

в сами файлы описания персонажей, по типу character_desc_.....xml. Иначе не будет вещей, которые должны сгенироваться по настройкам из death_generic.ltx

Подозревал, что так и придется делать. Неохота кучу профилей редактировать, а придется... Да, но тогда КПК будут выпадать в трупе 100 %? А поменьше вероятность сделать возможно, скажем 50/50?

Изменено пользователем AndrewMor

Сталкер - наше всё!

@AndrewMor ,

я бы корявенько, наверно, но сделал бы в любом удобном редакторе текста так:

Копирую [spawn] \n и провожу операцию замены на:

[spawn] \n

секция ПДА \n


 

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

11 минут назад, ed_rez сказал:

я бы корявенько, наверно, но сделал бы в любом удобном редакторе текста так:

Да и я так буду делать, так быстрее. А насчет вероятности выпадения не подскажешь, а то что-то ничего в голову не идет?

Сталкер - наше всё!

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

Сохраняемые шмотки - это сохраняемые, генерируемые - это генерируемые.

 

И вообще ни разу не слышал про религию, в которой запрещено поправить скрипт так, как хочется, либо добавить вообще более другой.

Изменено пользователем Dennis_Chikin
  • Согласен 1
9 минут назад, AndrewMor сказал:

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

death_items_by_levels.ltx

Секция ПДА = 1

У нас ПДА не может быть больше 1. Значит и в death_items_count.ltx:

Секция ПДА = 1

Скриптами не умею.

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

15 минут назад, ed_rez сказал:

death_items_by_levels.ltx

Это не то. Я имел в виду выпадение не у всех НПС, а с какой-то определенной вероятностью. У одного есть, у другого нет. Случайным образом.

Сталкер - наше всё!

2 часа назад, ed_rez сказал:

в сами файлы описания персонажей, по типу character_desc_.....xml.

Вот точно не туда. Уж не знаю как сделано в Солянке, но пересмотрел в своё время кучу профилей НПСов по тем или иным причинам. Ни в одном не прописан ПДА. А они между тем с трупов как-то выпадают. Какой-то скрипт их туда доспавнивает с определённой степенью вероятности. Типа death_manager.script или что-то подобное.

Денис может появится и прояснит.

@AndrewMor Не правь пока профили НПСов, не делай лишнюю работу.

  • Спасибо 1
  • Нравится 1

"Кругом зомби.....у меня кончаются патроны...."

Хм.. 

 <supplies>
            [spawn] \n
            wpn_pb \n
            ammo_9x18_pbp = 1 \n
            wpn_ak74u \n
            ammo_5.45x39_ap = 1 \n
            device_torch \n
#include "gameplay\character_items.xml"
        </supplies>

    Тут ПДА явно нет))

А вот #include "gameplay\character_items.xml" вполне можно поправить.

В оригинале ТЧ - а мы ведь рассматриваем тему - ковыряние ТЧ - это выглядит так:

harmonica_a = 1, prob=0.7 \n
guitar_a = 1, prob=0.7 \n
device_torch = 1, prob=0.5 \n

Результат поиска ПДА по конфигам и скриптам ТЧ.

2c0653d4a54a7004be1f2cae65c707f5d5579330

Нет там ПДА ... В смысле - описанного доспавнивания.

А уж как сделано в модах - вы либо скажите, либо...

Изменено пользователем _Val_
  • Спасибо 1
  • Нравится 2
  • Согласен 1

   УРАГАН.png

                 Краткий гид по моду Тайные Тропы 2

                                      ПАРТИКЛЫ TERRA

 

 

 

Генерирование ПДА при спавне лута:

1. Файл "misc/death_items_count.ltx", секция "item_count_0" добавляем: наш_пда = 1

2. Файл "misc/death_items_by_levels.ltx", секция "default" добавляем: наш_пда = 1

3. Файл "misc/death_items_by_communities.ltx", секция "stalker" добавляем: наш_пда = вероятность_спавна_0-1

 

В файле "misc/death_items_by_communities.ltx" можно указать различную вероятность спавна для разных группировок.

  • Спасибо 1
  • Согласен 1

S.T.A.L.K.E.R. CoP Objects  >200 шт  (upd 21.05.26) - Скачать  (Яндекс-диск)

57 минут назад, _Val_ сказал:

include "gameplay\character_items.xml

Из академического интереса: А актору можно на такой манер за инклюдить в all.spawn? Ну что-то в роде include "gameplay\actor_items.xml" что-бы, допустим, избежать лишней возни с компиляцией all.spawna.

 Моя нычка, Нычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

51 минуту назад, WinCap сказал:

Генерирование ПДА при спавне лута:

Хм... А я приписывал пда в профилях неписей, файлов death_items*** вообще не касался и тем не менее пда выпадала после смерти, правда с 100% вероятностью.

 Моя нычка, Нычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...