Jump to content

Recommended Posts

Shennondoah    113
Posted (edited)

@mole venomous, Ну как точнее объяснить, как гаусс в Припяти в ЗП, она обязательно падает с проповедником, даже если его из рпг взорвать, не улетает никуда, а падает именно на доступное для игрока место)

Edited by Shennondoah

Оц тоц перевертоц, бабушка здорова,
Оц тоц перевертоц кушает компот.
Оц тоц перевертоц и мечтает снова
Оц тоц перевертоц пережить налет!

Share this post


Link to post
Share on other sites
Zander_driver    4,414
только что, Shennondoah сказал:

даже если его из рпг взорвать

В сталкере нпс живой и нпс-труп, это очень разные объекты с очень разными физическими свойствами.

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

  • Thanks 1

Тестеры о "Судьбе Зоны": Все это бегает, орет, гоняется друг за другом, попадает в аномалии. Я не знаю что там можно делать и в какой экипировке туда можно идти...

Имею мнение, что >90% модов на сталкер неиграбельны. Делаю свое, играбельное. Внимание: Если вы считаете что с модами на сталкер все ок, то в мое творение вам будет очень тяжко играть.

Share this post


Link to post
Share on other sites
Shennondoah    113

@Zander_driver, Спасибо, тогда по-той схеме сделаю) Мне простейшую схему просто надо, сцена похожая, но на другой локации, при других обстоятельствах)


Оц тоц перевертоц, бабушка здорова,
Оц тоц перевертоц кушает компот.
Оц тоц перевертоц и мечтает снова
Оц тоц перевертоц пережить налет!

Share this post


Link to post
Share on other sites
nasar75    2,504
Posted (edited)

Требуется помощь. Есть такой код:

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

    for i = 0, n - 1 do
        r, k, v = ini:r_line( sect, i, "", "" )
        v = string_gsub( v, "{\-aes_arrive_to}", "true" )    -- todo: давно пора снести
        t[k] = xr_logic.parse_condlist( obj, sect, k, v )
    end

Игра не запускается с логом 

smart_terrain.script)] SCRIPT SYNTAX ERROR:
..._installer new 555\gamedata\scripts\smart_terrain.script:905: invalid escape sequence near '"{'

чекер тоже ругается на знаки \-

Как правильно написать данную строку?

Edited by nasar75

AMD Athlon II X2 250, NVIDIA GTS 450, RAM 8.0 GB, WIN 7/64  Всяко-разное для Золотого Шара

Share this post


Link to post
Share on other sites

@nasar75 Скобки и дефис считаются модификаторами поиска – добавить к ним % для перевода в обычный текст: string.gsub(v, "%{\%-aes_arrive_to%}", "true")

  • Like 1

Share this post


Link to post
Share on other sites
naxac    1,506
12 часов назад, nasar75 сказал:

Как правильно написать данную строку?

Правильно будет убрать эту строку совсем, а в спавне, в секциях [smart_terrains] в custom_data неписей заменить {-aes_arrive_to} на true.

  • Согласен 1
  • Полезно 1

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

naxac.gif

Share this post


Link to post
Share on other sites

Делаю уведомление об открытом проходе под мостом на Кордоне: https://drive.google.com/open?id=1Ef-NJFJJ81tLlasRHkCOgLiK_VE0Lxoo

Проблема: уведомление скрывается при переходе на другую локацию, хотя инфо-поршень "esc_bridge_pass_on" и значения в pstor точно остаются. В чем может быть причина?

Spoiler

-- // actor_binder:info_callback(npc, info_id) // --
function set(info_id)
	if info_id == "esc_bridge_pass_on" then
		local time_hr = level.get_time_hours() + 1
			if time_hr == 24 then time_hr = 0 end
		local time_min = level.get_time_minutes()

		xr_logic.pstor_store(db.actor, "time_hr", time_hr)
		xr_logic.pstor_store(db.actor, "time_min", time_min)

		show()
	end
end

-- // actor_binder:info_callback(npc, info_id) // --
function clear(info_id)
	if info_id == "esc_bridge_pass_off" then
		local st = get_hud():GetCustomStatic("bridge_pass")
		if st then
			get_hud():RemoveCustomStatic("bridge_pass")
		end

		xr_logic.pstor_store(db.actor, "time_hr", false)
		xr_logic.pstor_store(db.actor, "time_min", false)
	end
end


-- // actor_binder:net_spawn(data) // --
function show()
	local t_hr = xr_logic.pstor_retrieve(db.actor, "time_hr")
	local t_min = xr_logic.pstor_retrieve(db.actor, "time_min")

	if t_hr and t_min then
		local st = get_hud():GetCustomStatic("bridge_pass")
		if not st then
			get_hud():AddCustomStatic("bridge_pass")
			caption()
		end
	end
end

function caption()
	local st = get_hud():GetCustomStatic("bridge_pass")

	local t_hr = xr_logic.pstor_retrieve(db.actor, "time_hr")
	local t_min = xr_logic.pstor_retrieve(db.actor, "time_min")

	local time_end = string.format("%02d:%02d", t_hr, t_min)
	local text = "Проход до " .. time_end
	st:wnd():SetText(text)
end

 

 

На всякий случай, файлы для чистой ТЧ: https://drive.google.com/open?id=1nJ7BeQSSaLx6EFGwWKhU2NYnOqvQShdg

Share this post


Link to post
Share on other sites
WinCap    135
1 час назад, Norman Eisenherz сказал:

уведомление скрывается при переходе на другую локацию

А при Save/Load'е?

Мне кажется, что info_callback срабатывает только один раз, при выдаче.

Share this post


Link to post
Share on other sites

@WinCap При перезагрузке на Кордоне уведомление остается. Вроде такая же последовательность net_destroy / net_spawn…

Share this post


Link to post
Share on other sites

Потестил еще: на Кордоне уведомление отображается всегда после 1-й загрузки, на Свалке или после перехода Кордон > Свалка > Кордон всегда после 2-й загрузки. В обоих случаях тестил с выходом из игры и с обычной перезагрузкой. Сделал add_call на прогрузку ГГ – уведомление отображается каждый раз.

(Инфо-поршень "esc_bridge_pass_off", как выяснилось, вообще не выдается до возврата на Кордон, но это уже другой вопрос).

 

@naxac "Первый апдейт" – привязаться к actor_binder:update(delta) и остановить выполнение после однократного выведения статика, или речь о чем-то другом?

Share this post


Link to post
Share on other sites
naxac    1,506

@Norman Eisenherz, да. В ТЧ со статиками всегда такая фигня: после перехода между локациями они не выводится из нет-спавна, где-то что-то, видимо, не успевает отработать как надо, потому что новый уровень грузится.

  • Согласен 1

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

naxac.gif

Share this post


Link to post
Share on other sites
WinCap    135

@Norman Eisenherz, осмелюсь предложить свой вариант.

Для разрешения прохода нужно выдать "esc_bridge_pass_on".

Когда ГГ воспользуется проходом, или его по каким-то причинам отменят, нужно удалить "esc_bridge_pass_on".

 

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

local need_update = true
local has_static = false

-- // actor_binder:info_callback(npc, info_id) // --
function info(info_id)
	if info_id == "esc_bridge_pass_on" then
		local time_hrs = level.get_time_hours() + 1
		local time_min = level.get_time_minutes()
		time_min = math.ceil(time_min/10)*10
		if time_min == 60 then
			time_min = 0
			time_hrs = time_hrs + 1
		end
		if time_hrs > 23 then time_hrs = time_hrs - 24 end
		xr_logic.pstor_store(db.actor, "time_hrs", time_hrs)
		xr_logic.pstor_store(db.actor, "time_min", time_min)
		need_update = true
	end
end

-- // actor_binder:update(delta) // --
function update()
	if not need_update then return end

	if not db.actor:has_info("esc_bridge_pass_on") then
		get_hud():RemoveCustomStatic("bridge_pass")
		need_update = false
		has_static = false
		return
	end
	
	local time_hrs = level.get_time_hours()
	local time_min = level.get_time_minutes()	
	local pstor_hrs = xr_logic.pstor_retrieve(db.actor, "time_hrs", 0)
	local pstor_min = xr_logic.pstor_retrieve(db.actor, "time_min", 0)
	if (time_hrs >= pstor_hrs) and (time_min > pstor_min) then
		db.actor:disable_info_portion("esc_bridge_pass_on")
		return
	end
	
	if has_static then return end
	local st = get_hud():AddCustomStatic("bridge_pass", true)
	st:wnd():SetTextST(string.format("Проход до %02d:%02d", pstor_hrs, pstor_min))
	has_static = true
end

 

 

Share this post


Link to post
Share on other sites

Здрасьте.

 

Попадалась информация о старой версии мода "Худ рук", в которой текстура рук подменялась за счет классов то ли оружия, то ли брони. Кто-нибудь помнит, как этот мод работал? Хочется назначить 3–4 вида перчаток без полной замены моделей рук и перехода на правозатворное оружие.

Share this post


Link to post
Share on other sites
_Sk8_AsTeR_    2

А нигде не встречали способы реализации голода у НПС?

Share this post


Link to post
Share on other sites
naxac    1,506
3 часа назад, Norman Eisenherz сказал:

о старой версии мода "Худ рук"

Там, емнип, была целая куча худовых моделей оружия: на каждую пушку под каждый костюм, и столько же секций оружия: на каждый худ по секции. И, в зависимости от одетой брони, в руки спавнилось оружие с нужным худом.


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

naxac.gif

Share this post


Link to post
Share on other sites

@naxac А новая версия правит движок, чтобы позволить прямую замену текстур… Тогда все, снимаю вопрос.

Share this post


Link to post
Share on other sites
Graff46    445

Подскажите по системе зон в которые НПС не могут ходить? Вроде это сделано рестрикторами. И какие есть методы ограничивать навигацию НПС в игре.


fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites
Zander_driver    4,414

Если про исходно-ТЧ-оригинальный механизм, то там у них в нетпакете хранится табличка in-рестрикторов и out-рестрикторов.

Хранятся там собственно id объектов. В шейп которых нельзя заходить / нельзя выходить. И там же дивные заморочки на тему того, что если рестриктор допустим удаляется, то его упоминания надо удалять из памяти все нпс и мутантов (а у них такая же система). Иначе непременный вылет, и конечно же, без лога. Как же иначе-то. Но так же не возбраняется в любой момент рестриктор создать-настроить, и записать в память всем кому надо.

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

  • Полезно 1

Тестеры о "Судьбе Зоны": Все это бегает, орет, гоняется друг за другом, попадает в аномалии. Я не знаю что там можно делать и в какой экипировке туда можно идти...

Имею мнение, что >90% модов на сталкер неиграбельны. Делаю свое, играбельное. Внимание: Если вы считаете что с модами на сталкер все ок, то в мое творение вам будет очень тяжко играть.

Share this post


Link to post
Share on other sites

Здрасьте.

 

ТЧ 1.0006, Армейские склады: сообщение "Сталкер, ты подходишь к барьеру" выдается дважды. В описании рестриктора только одно сообщение, в [xr_effects] такого сообщения нет. Где искать лишнюю копию?

 

Spoiler

[alife_l07_military.ltx]
name = mil_actor_blockpost					-- текст сообщения
type = tips							-- тип сообщения: "send_tip"
on_info = {=mil_actor_enemy_freedom} nil			-- проверка друг/враг
on_actor_inside = %+mil_blockpost_free_task%			-- инфо "mil_blockpost_free_task" (+ задание "mil_blockpost_job")
on_info2 = {+mil_blockpost_free_task} sr_sound_act		-- звуковое сообщение при получении инфо-поршня
sender = freedom						-- отправитель текстового сообщения
on_signal = tip_sended | sr_idle				-- ? (деактивация рестриктора)

 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

AMK-Team.ru

×
×
  • Create New...