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

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


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

для Lanta87 по поводу не правильного отображения меток аномалий - я то-же с этой проблемой столкнулся, но решение нашел только начав ковыряться в исходниках движка. Т.е. поможет только движковая правка этого косяка...

  • Спасибо 1
Ссылка на комментарий
5 часов назад, Dennis_Chikin сказал:

Не забываем, что потрогав class_registrator, мы получаем смещение clsid после потроганного.

Ну вот я потрогал в своем моде, добавив два класса (правда, наследовав от уже прописанного). И вроде ничего не поменялось. А аномалии стали отображаться каждая своим значком.

 

А чем грозит смещение clsid? И с чем вообще сие едят, если попроще?

 

39 минут назад, AndreySol сказал:

для Lanta87 по поводу не правильного отображения меток аномалий - я то-же с этой проблемой столкнулся, но решение нашел только начав ковыряться в исходниках движка. Т.е. поможет только движковая правка этого косяка...

Думаю, что ковырять движок - крайний способ, если ничего другое не приносит результатов. Правда, копошение в двигле и самое результативное, ИМХО, но не всем сие дано, увы...

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

Ссылка на комментарий

В моде может быть проверка вида if obj:clsid() == n ...

Банально по причине, что нужные скриптоклассы были ни где не прописаны.

  • Спасибо 1
Ссылка на комментарий

Не знаю где писать, напишу здесь.

Привета всем.

Уж извиняюсь за нубизм, только недавно начал постигать сие конг фу.

На счёт респавна: вот я допустим, решил поселить на элеваторе три кошки, да так что бы они периодически респавнились, естественно, после зачистки. Скажите - одного респавнера прописанного в элл.спавне будет достаточно или нужно будет ещё этих кошек там же прописывать, по секции на каждую?

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

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

UriZzz.gif

Ссылка на комментарий
1 час назад, UriZzz сказал:

одного респавнера прописанного в элл.спавне будет достаточно

Конечно, нет. Нужен smart_terrain, "гулаг". Почитай здесь

Изменено пользователем Fagot.
  • Полезно 1
Ссылка на комментарий
35 минут назад, Fagot. сказал:

Конечно, нет. Нужен smart_terrain, "гулаг". Почитай здесь

Нет, нет, про гулаг я знаю, допустим он уже есть, меня интересуют секции котиков, требуются ли они для работы респавнера?

И ещё: если я хочу от вязать кошек от гулага

[smart_terrain]

none = true

Я так понимаю, приписывается прямо в секции респавнера?

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

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

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

UriZzz.gif

Ссылка на комментарий
1 минуту назад, UriZzz сказал:

[smart_terrain]

В таком случае прямо в логике зверушек.

Хм...Да и ни к чему забивать олл_спавн такой ерундой.

Ссылка на комментарий
45 минут назад, _Val_ сказал:

В таком случае прямо в логике зверушек.

Хм...Да и ни к чему забивать олл_спавн такой ерундой.

А разве секция [smart_terrain] читается из файла логики, если спавн скриптовый? Вроде я читал, что не читается.

Добавлено _Val_,

Ну может так и не читается. Но в модах со скриптовым спавном именно так и делается))

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

Ссылка на комментарий

 Добавлено _Val_, 1 час назад

Ну может так и не читается. Но в модах со скриптовым спавном именно так и делается))

 

_Val_, ткни носом, ежли не трудно. Просто охота посмотреть, как там сие реализовано.

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

Ссылка на комментарий
4 часа назад, AndrewMor сказал:

как там сие реализовано

В смысле что?

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

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

[smart_terrains]
none = true

[logic]
active =

 

Ссылка на комментарий

Во-первых, да, можно банально переопределить секцию. [cat_nosmart]:cat_*\ncustom_data=...

Но это-тоже извращение.

Гораздо лучше поправить ошибку в amk/nlc (и далее везде) в se_monster/smart_terrain.script, где spawn_ini зачем-то читается и запоминается сразу при создании, а не после перезаписи.

  • Полезно 1
Ссылка на комментарий

@_Val_ но чисто технически, допустимо ли сии строки прописывать в секции респавнера? Ну что бы респавневшийся монстр не был привязан к гулагу.

П.с. я так прикинул чисто логически: достаточно будет прописать в секции респавнера в respawn_section cat_weak три раза но тогда значит кошки заспавнятся не сразу то бишь с НИ, а со следующим респавном, то есть если max_count = 8 то где-то через часа полтора в оффлайне, поправок если ошибаюсь.

Изменено пользователем Dennis_Chikin
А чего размер шрифта такой скромный ? Есть же еще и 72.

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

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

UriZzz.gif

Ссылка на комментарий

@UriZzz 

Хм...Начнем того, что я даже не пытался разобраться с респавном через олл_спавн. Мне вполне хватает респавна АМК.

Итакс...В респавне АМК:

max_count = это количество попыток респавна в данном гулаге, которое гулаг будет повторять через время,

заданное в строке: idle_spawn =

 

Изменено пользователем _Val_
Ссылка на комментарий

@AndrewMor например вот так

 https://github.com/dsh2dsh/op2ogse/blob/121d85e49dc110bf67b59a066926ff0879feba62/gamedata/scripts/smart_terrain.script#L1508

Все это индивидуально. Как тебе нравится, так и сделай. Это же не священная корова, меняй под свои задачи все эти скрипты.

 

  • Спасибо 1
Ссылка на комментарий
42 минуты назад, _Val_ сказал:

вполне хватает респавна АМК.

Хм... Я не смотрел как там в АМК, там скриптовый?

Что конкретно указывается в idle_spawn, сухие цифры? В секции респавнера в алл.Спаун там:

Скрытый текст

idle_spawn = тип спавна. Известно три типа medium, often, seldom. Обычно, используется тип medium.

Что за типы спавна, ума не приложу:unknw: мож оно и есть? Это взято из статьи на http://stalkerin.gameru.net/wiki/index.php?title=SoC._Respawn, на компе я сейчас посмотреть не могу, он в 60и км. От меня.

Добавлено Dennis_Chikin,

Вы издеваетесь, да ?

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

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

UriZzz.gif

Ссылка на комментарий
4 минуты назад, UriZzz сказал:

Должно быть и там и там эти параметры совпадаю

В респавнерах АМК указывается время.

*Один игровой час = 3600

**43200 - будет означать,что переспавн мёртвых зверушек начнётся через 12 игровых часов.

  • Полезно 1
Ссылка на комментарий

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

 

Тем более, что есть тема: https://www.amk-team.ru/forum/topic/13078-prozektorskaya/

в которой и про респавн было, и про смарты.

Изменено пользователем Dennis_Chikin
Ссылка на комментарий
7 часов назад, _Val_ сказал:

В смысле что?

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

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

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

[smart_terrains]

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

Добавлено _Val_,

Я же выше уже написал - как это делается.

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

Ссылка на комментарий

-- прочитать секцию [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
Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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