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

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


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

@Guidesun

Использовать персональную логику для НПСов в ТЧ - дело мутное и не всегда правильное. Проблема в том, что при переходе в офф-лайн собственная логика НПСа перестает работать, и какой нить гулаг может запросто затянуть к себе твоего моба. Лучше всего, определять всех НПСов на работы в гулаги - будет все стабильно и значительно меньше всяких непоняток...

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

затянуть

Простое 
[smart_terrains]
none = true
Решает эту проблему.

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

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

Есть глобальные моды - в которых вообще не используется система гулагов.

И в них никогда не было таких проблем. Конечно в логике у них было прописано:

[smart_terrains]
none = true

Но как тут раньше говорили гуру моддинга - это вроде-как и не работает в вынесенной из олл-спавн логике. А логика в этих модах вынесена.

Да и большинство персонажей скриптом спавнились...

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

Как перевести в офф а потом обратно в онлайн гулаг? Скажем ферма в ТД с продавцами гауссовки. Условия вида

online = "{+info1}"

работает, а вот

online = "{-info1}"

offline = "{+info1}"

offline = "{-info1}"

почему-то никакого действия не оказывают.

Выглядит так:

    -- простые сталкеры внутри фермы вокруг костра
    for i = 1, 5 do
        t = { section = "logic@" .. gname .. "_kamp",
            idle = 0,
            prior = 1, state = {0},
            squad = squad, group = groups[1],
            online = "{+info1}", --строка с условием
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
    end

 

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

@dPlayer, возможно, что такое там не предусмотрено. Скрипта под руками нет, не могу сказать точно. Попробуй сделать два разных состояния у лагеря, одно для онлайн и другое - для оффлайн, и их переключай. 

Изменено пользователем dsh
Ссылка на комментарий
В 21.09.2018 в 09:19, dPlayer сказал:

offline = "{+info1}"

offline - нет такого параметра для логики, и видимо вариант переключения состояний - единственное решение

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

@dPlayer,  может и из логики...если можно.

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

А так...по оригиналу...достаточно ГГ всех их убить вроде))

Ссылка на комментарий
20 часов назад, dPlayer сказал:

Эх, думал можно всё по быстрому сделать)

А что тут долгого - добавить в скрипт гулага пару строк с переключением состояний ?

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

@Змея, увести их в онлайн, разыграть сценку а потом обратно в онлайн))

@AndreySol, покажи пжлста на примере этого гулага?

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

--------------------------------------------------------------------------
-- Robbers (грабители на ферме)
--------------------------------------------------------------------------
-- Predicates ------------------------------------------------------------

-- Jobs ------------------------------------------------------------------
gulags.val_rob.job = function(sj, gname, type, squad, groups)
    local i = 0

    local ltx = "[meet@ignore_abuse]\n" ..
                "use             = false\n" ..
                "use_wpn         = false\n" ..
                "abuse           = false\n" ..
                
                "[meet@" .. gname .. "_warn]\n" ..
                --"meet_state     = 20| {+val_rob_buying} threat, guard@ {+val_rob_buying} val_rob_guard_jeer\n" .. --, weather
                "meet_state     = 1| threat@threat_back\n" .. --, weather
                "meet_state_wpn = 25| threat@{+val_rob_buying} val_rob_guard_jeer, threat_back\n" ..
                "victim         = 20| actor\n" ..
                "victim_wpn     = 25| actor\n" ..
                "use            = true\n" ..
                "use_wpn        = false\n" ..
                "zone           = val_rob_warn_zone| {+val_rob_buying} threat@ {+val_rob_buying} val_rob_guard_jeer | val_rob_kill_zone| {+val_rob_buying} true \n" ..

                "[kamp@" .. gname .. "_kamp]\n" ..
                "center_point    = kamp\n" ..
                "meet            = meet@" .. gname .. "_warn\n"

    -- главный грабителей, с которым разговариваем
    t = { section = "logic@" .. gname .. "_leader",
        idle = 0,
        prior = 3, state = {0},
        squad = squad, group = groups[1],
        in_rest = "", out_rest = ""
    }
    table.insert(sj, t)
    ltx = ltx.."#include \"scripts\\val_rob_leader.ltx\"\n"

    -- охранники на входах в здание фермы
    for i = 1, 2 do
        t = { section = "logic@" .. gname .. "_guard" .. i,
            idle = 0,
            prior = 2, state = {0},
            squad = squad, group = groups[1],
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)

        ltx = ltx.."[logic@" .. gname .. "_guard" .. i .. "]\n" ..
                   "active = walker@" .. gname .. "_guard" .. i .. "\n" ..

                   "[walker@" .. gname .. "_guard" .. i .. "]\n" ..
                   "path_walk = guard" .. i .. "_walk\n" ..
                   "path_look = guard" .. i .. "_look\n" ..
                   "meet      = meet@" .. gname .. "_warn\n"
    end

    -- простые сталкеры внутри фермы вокруг костра
    for i = 1, 5 do
        t = { section = "logic@" .. gname .. "_kamp",
            idle = 0,
            prior = 1, state = {0},
            squad = squad, group = groups[1],
			online = "{-find_dynamite}",
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
    end

    ltx = ltx.."[logic@" .. gname .. "_kamp]\n" ..
               "active = kamp@" .. gname .. "_kamp\n"

    gulags.val_rob.ltx = ltx
end

 

 

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

покажи пжлста на примере этого гулага?

Такие портянки под спойлер надо прятать, а то модератор ругаться будет.

Ты привел только загрузки работ, а переключение состояний гулагов происходит в ф-ции

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

 

function load_states(gname, type)

    if type == "val_rob" then
        return function(gulag)
            local actor = db.actor
            if not actor then
                return gulag.state
            end

 

            if has_alife_info("твоя_инфо_порция") then
                return 1 -- состояние 1, пусть это будет офф-лайн
            else
                return 0 -- состояние 0
            end
        end
    end

 

далее, соответственно в описании работ делаешь два набора работ для всех НПСов, типа так:

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



    -- простые сталкеры внутри фермы вокруг костра
    for i = 1, 5 do
        t = { section = "logic@" .. gname .. "_kamp",
            idle = 0,
            prior = 1, state = {0}, --<-- тут они в он-лайн
            squad = squad, group = groups[1],            online = true,
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
    end

    -- простые сталкеры внутри фермы вокруг костра
    for i = 1, 5 do
        t = { section = "logic@" .. gname .. "_kamp",
            idle = 0,
            prior = 1, state = {1},--<-- тут они в офф-лайн
            squad = squad, group = groups[1],
            online  = false,
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
    end


 

И читай СталкерВики, там много полезного.

  • Нравится 1
Ссылка на комментарий

Здравствуйте ВАМ. Добавил трупаку вещи через ал.спавн, по принципу солдата на Янтаре (у которого спекопскомбез), но у меня ни чего не появилось. В чем проблема? 

Одна голова хорошо, а две лучше. А вот три, это уже змей Горыныч.

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

Привет всем. Кто может показать функцию:
Если у ГГ в инвентаре определённый предмет, то он не может использовать основное оружие?

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

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

@nego, добавь свой предмет в секцию keep_items в death_generic.ltx, чтобы скрипт его не удалял. Если хочешь, чтобы вообще все вещи в трупаке сохранились, и делаешь спавн через acdc, то можешь дописать в конце секции непися death_dropped = 1 - это, правда, только на шестом патче работает

Изменено пользователем naxac
Дополнил
  • Нравится 1
  • Полезно 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

@Houdini_one, Попробуйте в файле bind_stalker.script\function actor_binder:update(delta) дописать условие таким образом:

 

	-- Апдейт прятание оружия игрока во время диалога
	if weapon_hide == true or self.object:is_talking() or self.object:object("секция предмета") ~= nil then
		if self.weapon_hide == false then
			self.object:hide_weapon()
			self.weapon_hide = true
		end
	else
		if self.weapon_hide == true then
			self.object:restore_weapon()
			self.weapon_hide = false
		end
	end

 

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

Здравствуйте. Решил поделать новых загрузочных экранов, но при тестировании выявилась проблемка: первые несколько з/э сжимаются до 512х256, причем фиксированы они в иных координатах, нежели все последующие (все последующие экраны загружаются уже в требуемом размере - 512х512, назначал в скрипте автопаузы, как и требуемые координаты). Нужно заставить игру загружать все экраны в размере 512х512. В каком(их) файле(ах) задано положение первоначальной загрузочной картинки и ее размер (512х256)?

 

Вот так оно выглядит с самого начала, а вот так оно выглядит позже (но должно выглядеть с самого начала).

 

  • Нравится 2

New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор

Русификатор для игры Vendetta: Curse of Raven's Cry

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

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

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

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

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

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

Войти

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

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

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