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

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


Halford

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

@Dennis_Chikin, ну да, стоит из-за этого.

@AndrewMor, в принципе норм, только топчется на месте при смене цели, если совместить смену скажем с поворотом, то ничего?

Самый некомпетентный на форуме.

Поделиться этим сообщением


Ссылка на сообщение

Што-то я забуксовал. Как удалить предмет, ну скажем условный bread, из инвентаря гг в чистом поле?

Самый некомпетентный на форуме.

Поделиться этим сообщением


Ссылка на сообщение

@Dennis_Chikin, точно, спсибо!

А почему вот это:

if has_alife_info("info")
			then
				level_tasks.add_location(025, "green_location", "tutorial_secret_place1")
			else
				return false
		end

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

Самый некомпетентный на форуме.

Поделиться этим сообщением


Ссылка на сообщение

@Dennis_Chikin, это из оригинала.

function add_location(sid, location, hint)
	local sim = alife()
	if sim then
		local obj = sim:story_object(sid)
		
		if obj then
			if hint then
				level.map_add_object_spot(obj.id, location, hint)
			else
				level.map_add_object_spot(obj.id, location, "")
			end
		end
	end
end

 

Самый некомпетентный на форуме.

Поделиться этим сообщением


Ссылка на сообщение

@AndreySol, а, ну я его и использовал, но там было через одно место сделано, а не 3 строками)

Спасибо ОГСМ, допер как удалить предмет из инвентаря. По крайне мере там использован ещё вызов ф-ции из

db.actor:iterate_inventory(ф-ция,db.actor)

 

Самый некомпетентный на форуме.

Поделиться этим сообщением


Ссылка на сообщение

@_Val_, а толбица [monster_relations] не правится, по аналогии с [communities_relations]? Т..е туда не внести условного "актор_монолит" с его отношениями?

Самый некомпетентный на форуме.

Поделиться этим сообщением


Ссылка на сообщение

Помогите))

Покажите, кто могет, как перевести в оффлайн/онлайн сталкеров на ферме в тд (которые гаусс за 800 толкают) если получен поршень info.

Вот их гулаги из gulag_dark_valley.script

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

--------------------------------------------------------------------------
-- 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],
            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

 

Самому мне не получается сообразить - покажите конкретный код.:blush:

АПД: ГГ в этот момент находится на другой  локации, т.е. фактически нужно сделать так, чтобы при получении поршня вся ферма не выходила из офф, а при его удалении - могула выходить в онлайн.

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

Самый некомпетентный на форуме.

Поделиться этим сообщением


Ссылка на сообщение

@nego, есть еще плагин Compare для n++, зело удобная весчь. Навигационное окошко с подстветкой разницы имеется.

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

Самый некомпетентный на форуме.

Поделиться этим сообщением


Ссылка на сообщение
В 11.09.2018 в 23:03, EggIeRar(V.N.S.L) сказал:

А что дальше с этой ф-цией делать?

Вызови ее в диалоге/инфопоршне/другой функции

Самый некомпетентный на форуме.

Поделиться этим сообщением


Ссылка на сообщение

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

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

 

Самый некомпетентный на форуме.

Поделиться этим сообщением


Ссылка на сообщение

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

@Змея, прям из логики гулага?

Самый некомпетентный на форуме.

Поделиться этим сообщением


Ссылка на сообщение

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

@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

 

 

Самый некомпетентный на форуме.

Поделиться этим сообщением


Ссылка на сообщение

Можно ли как-то заставить НПС не валяться раненым, а отыгрывать анимацию из его пути (p0:name = wp00|a=guard_fire), если у него в алл.спавне стоит upd:health = 0.1? Нужен НПС, который сдохнет от чиха вороны))

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

Самый некомпетентный на форуме.

Поделиться этим сообщением


Ссылка на сообщение

@WinCap, тогда надо точно время высчитывать, а вдруг какой пёс мимо пробежит и тайминги собьёт:biggrin:

Почему НПС не реагирует на настройки в секции meet в этой схеме?

Т.е. стоит и смотрит в свою точку look не оборачиваясь на игрока и не выполняя параметры

meet_state
meet_state_wpn
victim
victim_wpn
[walker@start]
path_walk = esc_bandit_camp_talk_walk
path_look = esc_bandit_camp_talk_look
combat_ignore_cond = {=check_fighting(5485)}, {-esc_bandit_abuse =fighting_actor}
meet = meet@start
on_info = {+esc_bandit_weapon} kamp@esc_bandit_camp

[meet@start]
meet_state = 30|hello@hail|20|wait@wait
meet_state_wpn = 30|backoff@threat_weap
victim = 50| actor
victim_wpn = 50| actor
use = true
use_wpn = false
meet_dialog = val_sol1_cut

 

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

Самый некомпетентный на форуме.

Поделиться этим сообщением


Ссылка на сообщение

За что отвечает параметр distance в level changer'е? За размер и зону срабатывания ведь отвечает непосредственно сам размер шейпа.

  • Согласен 1

Самый некомпетентный на форуме.

Поделиться этим сообщением


Ссылка на сообщение

Как прописать диалог всем НПС на определённой локации или всем НПС определённой группировки без правки всех профилей? Типа диалога "Что можешь интересного рассказать" в оригинале.

Вообще не поииму эту систему. Вроде диалог-то один dm_cool_info_dialog  а как ответы на каждой локации свои?

И что за условие в диалоге <init_func>файл.функция</init_func>?

Залез куда-то и выбраться не могу:biggrin:

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

Самый некомпетентный на форуме.

Поделиться этим сообщением


Ссылка на сообщение

А, т.е. в dialog_manager.ltx  есть список фраз и их настройки (раненый/локация/группировка/категория)

[list]
dm_intro_help_9
dm_intro_help_8
...

[dm_action_info_0]
wounded = false
level = l01_escape
npc_community = stalker
category = cool_info

в dialogs.xml находится заголовки диалога со ссылкой на функций, которые выбирают фразу и запоминают нпс, с которыми поговорил и предусловия появления

<dialog id="dm_cool_info_dialog" priority="-2">
	<init_func>dialog_manager.init_cool_info_dialog</init_func>
	<precondition>dialog_manager.precondition_info_global</precondition>
</dialog>

а в dialog_manager.script собственно функции.

Во как:yes3:. Наверное.:russian_ru:

А можно сделать рандомный выбор фразы  без использования этой титанической схемы? Просто случайная фраза в ответ на вопрос ГГ. Без запоминания НПС.

52 минуты назад, dPlayer сказал:

А можно сделать рандомный выбор фразы

Можно. Просто предоставить НПС варианты выбора через <next></next>

 

Изменено пользователем dPlayer
  • Полезно 1

Самый некомпетентный на форуме.

Поделиться этим сообщением


Ссылка на сообщение

@Котошметик [YouTube], тебе лучше где-то вот здесь спросить. Но без крепкого знания 3Д пакета, СДК сталкера и сопутствующих утилит туды лучше не лезть:nea:

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

Самый некомпетентный на форуме.

Поделиться этим сообщением


Ссылка на сообщение

@IGOR™, <infoportion_complete>mil_fblockpost_quest_reward</infoportion_complete>.

Можно выдать через бинд_сталкер

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

Самый некомпетентный на форуме.

Поделиться этим сообщением


Ссылка на сообщение

@IGOR™, вставить две строчки в бинд_сталкер еще проще, не?

Самый некомпетентный на форуме.

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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