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

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

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

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

Если отойти от нового НПС на приличное расстояние то он исчезает в мир иной.

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

Раньше не было такого, НПС не квестовые стоят голые без диалогов.

ЗЫ

Хотя нет один использует эти функции.

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

function has_item_af_medusa(task, objective) 
if db.actor ~= nil then
return db.actor:object("af_medusa") ~= nil
end
return false
end

function has_item_af_medusa_pes(first_speaker, second_speaker) 
dialogs.relocate_item_section(second_speaker, "af_medusa", "out")
end

function has_item_kanistra(first_speaker, second_speaker)
local n=2
local count=0
db.actor:iterate_inventory(function (dummy, item) if item:section()=="explosive_mobiltank" then count=count+1 end end, nil)
if count>=n then
return true
else
return false
end
end

function has_item_kanistra_pes(first_speaker, second_speaker)
flamethrower.relocate_n_items_section(second_speaker, "explosive_mobiltank", "out", 2)
dialogs.relocate_item_section(second_speaker, "wpn_pm", "in")
dialogs.relocate_item_section(second_speaker, "ammo_9x18_fmj", "in")
end

Когда беру канистры он в первую очередь пропадает, может что то не так с проверкой has_item_kanistra?

Изменено пользователем Guidesun
Ссылка на комментарий
3 минуты назад, Guidesun сказал:

Если отойти от нового НПС на приличное расстояние то он исчезает в мир иной.

Все неписи переходят в оффлайн, когда актор очень далеко (150+ метров). В ТЧ, вроде как, можно в работе гулага или как там ваша эта система называется, прописать флаг онлайн, чтобы непись не "исчезал в мир иной".

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

Ранее был известен под ником BoBaH_671.

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

Все неписи переходят в оффлайн, когда актор очень далеко (150+ метров). В ТЧ, вроде как, можно в работе гулага или как там ваша эта система называется, прописать флаг онлайн, чтобы непись не "исчезал в мир иной".

Никогда не сталкивался с подобным. На всякий случай секция НПС.

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

[870]
; cse_abstract properties
section_name = stalker
name = esc_pes
position = -199.870178222656,-19.8877372741699,-137.10905456543
direction = 0,0,0
 
; cse_alife_trader_abstract properties
money = 5000
character_profile = esc_pes
 
; cse_alife_object properties
game_vertex_id = 57
distance = 0
level_vertex_id = 52330
object_flags = 0xffffffbf
custom_data = <<END
 
[logic]
active = walker@stay_at_position
combat_ignore = combat_ignore
danger = danger_condition
 
[walker@stay_at_position]
path_walk = esc_lager_wolf_walk
path_look = esc_lager_wolf_look
 
[combat_ignore]
combat_ignore_cond = always
 
[danger_condition]
ignore_distance = 0
ignore_distance_corpse = 0
END
story_id = 10000
 
; cse_visual properties
visual_name = actors\soldier\soldier_beret_1
 
; cse_alife_creature_abstract properties
g_team = 0
g_squad = 1
g_group = 2
health = 1
dynamic_out_restrictions =
dynamic_in_restrictions =
 
upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd:position = -199.870178222656,-19.8877372741699,-137.10905456543
upd:o_model = 0
upd:o_torso = 0.028013030067086,0,0.9996075630188
upd:g_team = 0
upd:g_squad = 1
upd:g_group = 2
 
; cse_alife_monster_abstract properties
 
upd:next_game_vertex_id = 65535
upd:prev_game_vertex_id = 65535
upd:distance_from_point = 0
upd:distance_to_point = 0
 
; cse_alife_human_abstract properties
predicate5 = 1,2,2,1,2
predicate4 = 0,1,1,1
 
; cse_ph_skeleton properties
 
upd:start_dialog =
 
; se_stalker properties

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Даже представления не имею что прописать что бы он не уходил в мир иной.

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

Продолжения поста. Ошибочка, НПС не исчезает а бежит за мной будто старается попасть в мой радиус действия А-Лайф.

У меня слов нет. Что делать ума не приложу, что ему прописать в логике что бы он тупо стоял. Думал patch_walk и patch_look будет достаточно.

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

@Guidesun

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

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

затянуть

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

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

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

none = true

Вот мне не надо за это рассказывать - лучше бы @Guidesun рассказал... 

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

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

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

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

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

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

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

×
×
  • Создать...