Перейти к содержанию

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

 

b27b2a4837.png

Тема посвящена моддингу на платформе Чистое Небо.

 

Правила темы:

  • Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть.
  • Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
  • Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
  • Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться.
  • Лайк 5
  • Мастер! 3

image.png

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


Ссылка на сообщение
Поделиться на другие сайты
 

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

Как это запретить?

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


Ссылка на сообщение
Поделиться на другие сайты
 

imcrazyhoudini попробуй указать их собственный смарт в таргет.

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


Ссылка на сообщение
Поделиться на другие сайты
 

Всем привет. 
Подскажите, пожалуйста, можно ли как-то добавить апгрейд квестовому АКМ? Перенес строки, отвечающие за улучшение из файла с обычным АК-74, но чёт ничего не получается. Заранее спасибо. 

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


Ссылка на сообщение
Поделиться на другие сайты
 

Возьмём ситуацию, есть локация Радар, на ней есть смарты монолита и смарты мутантов.
И вот зачем-то монолиту надо захватить эти смарты мутантов, хотя в targets напрямую это не указано.

Как запретить НПС покидать свои территории? Да и мутантам в общем-то так же.
Смарты такой пример все имеют:

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

[smart_terrain]
targets = rad_monolith_perehod, rad_monolith_centr
sim_type = default
important_point = false
squad_capacity = 1
mutant_lair = false
group_id = 4
spawn_point = rad_monolith_x14_spawn_point
att_restr = rad_monolith_x14_space
def_restr = rad_monolith_x14_space
sim_avail = true
respawn_sector = monolith
no_mutant = false
respawn = 
actor_hides =
surge_hide_avaliable = false

 

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


Ссылка на сообщение
Поделиться на другие сайты
 

всем привет, все чаще стали появляться в модах конфиги db0 в какой токодировке , не возможно редактировать, можно как то это переделать?2026-01-04_220606.jpg.0c418849f97a0fc19802ee1b3f4e3983.jpg.2109f5f74514f89cb459246ae65748f8.jpg хотелось бы как на втором скрине, все ясно и понятно

2026-01-04_220726.jpg.03734f6212625169e111e10df55fe15a.jpg

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


Ссылка на сообщение
Поделиться на другие сайты
   
29 минут назад, sprint22 сказал:

конфиги db0 в какой токодировке , не возможно редактировать

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


"Нет лучше утверждения , чем неоспоримый факт"® 


Хобби: ->«open sighting reticles»<-

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


Ссылка на сообщение
Поделиться на другие сайты
 
5 часов назад, imcrazyhoudini сказал:

[smart_terrain]

Попробуй добавить: forbidden_point = true

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


Ссылка на сообщение
Поделиться на другие сайты
 

Yara а что вообще строка делает?
Добавил во все смарты, не помогло, снорки всё равно идут к плотям, а монолит стремится весь Радар захватить.

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


Ссылка на сообщение
Поделиться на другие сайты
 

Yara поковырялся, оказывается надо название группировки писать, вроде как работает, буду дальше наблюдать.

  • Хабар 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

imcrazyhoudini 

Ага, только запрет для одной группы. Параметр не поддерживает перечисление, типа monster, zombied

В sim_board.script есть строка:

if point.forbidden_point ~= nil and point.forbidden_point == squad.player_id then

заменяешь на:

if point.forbidden_point ~= nil then

И больше никто на смарт не нападёт.

 

Есть альт. вариант, отключить работу "attack_point" для сквадов в gulag_general.script, в блоках:

        local stalker_attack_jobs = {   _prior = 60, jobs = {},
            local stalker_attack_smart_jobs = { _prior = 60, jobs = {},
    
    
        local monster_attack_jobs = {   _prior = 50, jobs = {},
            local monster_attack_smart_jobs = { _prior = 50, jobs = {},

Поменять _prior = -1

  • Мастер! 1
  • Спасибо 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

Пачка вопросов:
1. Заметил не раз, что зомби приходят к сталкерам и могут просто стоять, надо аж в упор как-то им заметить их, чтобы началась стрельба, в чём проблема может быть?

Спойлер

ss-imcrazyhoudini-01-07-26-20-42-06-l01-

2. Вот даже с оригинала помню, на сталкеров на Янтаре нападают зомби, приходит задание защитить лагерь, а вот награду никто не даёт. Награду может выдасть только торговец группировки, нельзя сделать чтобы Сахаров давал? Тоже самое с заданиями "принести предметы".
3. Что необходимо сделать, дабы работали кондлисты в логике? Пример:
active = {+esc_propusk_end} kamp@esc_baza_military_2, {-esc_propusk_end} walker@esc_baza_military_fake1

Для того чтобы НПС не возвращался в первую логику и не кружлял десятки маршрутов в моём случае.
А то фикс с ОГСР на ЧН касательно сейва логики не работает, под смартами НПС так же возвращается назад, а кондлисты просто так не пашут.

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


Ссылка на сообщение
Поделиться на другие сайты
 

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

[task_manager]
reward = ecolog

Изменено пользователем khyor
  • Спасибо 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

imcrazyhoudini 

3. В smart_terrain.script находишь строку:

local active_section = ltx:r_string(section, "active")

поменять на:

local active_section_cond = xr_logic.cfg_get_condlist(self.ltx, section, "active", self)
local active_section = xr_logic.pick_section_from_condlist(db.actor, self, active_section_cond.condlist)



Не для ЧН, но для понимания, как это сделано в ТЧ ЕЕ:

	if self.ltx:line_exist( section, "active" ) then
		active_section = self.ltx:r_string( section, "active" )
	elseif self.ltx:line_exist( section, "selective" ) then
		local active_section_cond = gulag_cfg_get_condlist(self.ltx, section, "selective")
		if not active_section_cond then
			abort("xr_gulag: job '%s': unable to find section(s) for 'selective'",section)
			return nil
		else
			active_section = xr_logic.pick_section_from_condlist(actor, npc, active_section_cond.condlist)
			if not active_section then
				abort("xr_gulag: job section '%s': section 'selective' has no conditionless else clause", section)
				return nil
			end
		end
	else
		abort( "gulag: ltx=%s  no 'active' or 'selective' in section %s", self.ltx_name, section )
		return nil
	end


В xr_logic.script, function determine_section_to_activate
  
  local active_section_cond = cfg_get_condlist(ini, section_logic, "active", npc) or cfg_get_condlist(ini, section_logic, "selective", npc)
  
В конфиге логики, если одна секция:
  active = walker@sect_1
много:
  selective = {+info} walker@sect_2, walker@sect_1

 

 

  • Мастер! 1
  • Спасибо 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

Как понимаю всего лишь ворнинги, но поправить можно ли?
 

Спойлер

! [LUA] attempt to kill dead object rad_stalker_0010
! [LUA]  0 : [C  ] kill
! [LUA]  1 : [Lua] ....a.l.k.e.r. clear sky\gamedata\scripts\xr_effects.script(2659) : 
! [LUA]  2 : [Lua] ....t.a.l.k.e.r. clear sky\gamedata\scripts\xr_logic.script(654) : pick_section_from_condlist
! [LUA]  3 : [Lua] ....t.a.l.k.e.r. clear sky\gamedata\scripts\xr_logic.script(764) : try_switch_to_another_section
! [LUA]  4 : [Lua] e:\s.t.a.l.k.e.r. clear sky\gamedata\scripts\xr_hit.script(22) : 
! [LUA]  5 : [Lua] ....t.a.l.k.e.r. clear sky\gamedata\scripts\xr_logic.script(539) : issue_event
! [LUA]  6 : [Lua] ....l.k.e.r. clear sky\gamedata\scripts\xr_motivator.script(225) : 

Вызываю функцию через логику hit:
 

Спойлер

function dead_monolit(actor, npc)
 local obj = level_object_by_sid(70)
    if obj:alive() then
        obj:kill(npc)
    end
end

function dead_gorbun(actor, npc)
local npc = level_object_by_sid(71)
    npc:kill(npc)
end

Обе не нравятся игре.
Ещё такое есть:
 

Спойлер

! [LUA] bolt cannot apply GetRelationType method for non-alive object!
! [LUA]  0 : [C  ] relation
! [LUA]  1 : [Lua] ....a.l.k.e.r. clear sky\gamedata\scripts\xr_effects.script(2669) : 
! [LUA]  2 : [C  ] give_info_portion
! [LUA]  3 : [Lua] ....t.a.l.k.e.r. clear sky\gamedata\scripts\xr_logic.script(658) : pick_section_from_condlist
! [LUA]  4 : [Lua] ....t.a.l.k.e.r. clear sky\gamedata\scripts\xr_logic.script(760) : try_switch_to_another_section
! [LUA]  5 : [Lua] ....l.k.e.r. clear sky\gamedata\scripts\xr_motivator.script(346) : 
! [LUA] meshes\brkbl#0.ogf cannot apply GetRelationType method for non-alive object!
! [LUA]  0 : [C  ] relation
! [LUA]  1 : [Lua] ....a.l.k.e.r. clear sky\gamedata\scripts\xr_effects.script(2669) : 
! [LUA]  2 : [C  ] give_info_portion
! [LUA]  3 : [Lua] ....t.a.l.k.e.r. clear sky\gamedata\scripts\xr_logic.script(658) : pick_section_from_condlist
! [LUA]  4 : [Lua] ....t.a.l.k.e.r. clear sky\gamedata\scripts\xr_logic.script(760) : try_switch_to_another_section
! [LUA]  5 : [Lua] ....l.k.e.r. clear sky\gamedata\scripts\xr_motivator.script(346) : 
! [LUA] meshes\brkbl#1.ogf cannot apply GetRelationType method for non-alive object!
! [LUA]  0 : [C  ] relation
! [LUA]  1 : [Lua] ....a.l.k.e.r. clear sky\gamedata\scripts\xr_effects.script(2669) : 
! [LUA]  2 : [C  ] give_info_portion
! [LUA]  3 : [Lua] ....t.a.l.k.e.r. clear sky\gamedata\scripts\xr_logic.script(658) : pick_section_from_condlist
! [LUA]  4 : [Lua] ....t.a.l.k.e.r. clear sky\gamedata\scripts\xr_logic.script(760) : try_switch_to_another_section
! [LUA]  5 : [Lua] ....l.k.e.r. clear sky\gamedata\scripts\xr_motivator.script(346) : 

Триггера обнаружить не могу.

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


Ссылка на сообщение
Поделиться на другие сайты
 
11 минут назад, imcrazyhoudini сказал:

Вызываю функцию через логику hit:

Не хватает проверки, что объект живой. Или можешь отсечь поршнем. Только поршень должен быть в секции death, а в хит проверка.

14 минут назад, imcrazyhoudini сказал:

обнаружить не могу

Тут явно сказано что у объекта отсутствует метод relation. Решение нужна проверка на то что объект является сталкером clsid.scrpt_stalker

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


Ссылка на сообщение
Поделиться на другие сайты
 
1 час назад, Mass сказал:

а в хит проверка.

Спойлер

function dead_monolit(actor, npc)
 local obj = level_object_by_sid(70)
    if obj:alive() then
        obj:kill(npc)
    end
end

А тут разве её нет?


Дополнено 26 минуты спустя
1 час назад, Mass сказал:

Решение нужна проверка на то что объект является сталкером clsid.scrpt_stalker

Хммм, а может это быть из-за того что перевожу в оффлайн сталкера через спавнер?
В оригинале ЧН такой функции не было, с ЧН удалили её зачем-то, мне добавили поверх.

Почему на это подумал - просто на мини-мапе остаётся отметка НПС, хотя его нет.

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


Ссылка на сообщение
Поделиться на другие сайты
 
12 часов назад, Mass сказал:

Не хватает проверки, что объект живой. Или можешь отсечь поршнем. Только поршень должен быть в секции death, а в хит проверка.

Это не исправит проблемы.

12 часов назад, imcrazyhoudini сказал:

Вызываю функцию через логику hit:

 Посмотрел как я исправлял эту ошибку раньше в своей сборной солянке когда-то. Решение - не вызывать функцию напрямую из секции hit, а добавлять инфопоршень. И уже в активной секции логики через проверку по on_info. 

Спойлер

on_info = {+info_kill_dead_monilith} %=kill_npc%

 

10 часов назад, imcrazyhoudini сказал:

может это быть

Код покажите!

10 часов назад, imcrazyhoudini сказал:

просто на мини-мапе остаётся отметка НПС, хотя его нет

Могла повиснуть функция. Без кода не разобраться

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


Ссылка на сообщение
Поделиться на другие сайты
 

Mass https://www.filemail.com/d/cfhejjxvltsbobq

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

imcrazyhoudini По стеку проблема же в xr_effects.script! Зачем мне ваш se_stalker.script?

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


Ссылка на сообщение
Поделиться на другие сайты
 

Mass упс, извиняюсь:
 

Спойлер

function reset_enemy_lusuy()
    local o = level_object_by_sid(69)
    if o and o:alive() then

        for id = 1, 65535 do
            local obj = level.object_by_id(id)

            if obj and o:relation(obj) == game_object.enemy then
                o:enable_memory_object(obj, false)
                db.storage[o:id()].enemy = nil
            end
            
        end
    end
end

Такая функция там.

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


Ссылка на сообщение
Поделиться на другие сайты
 

imcrazyhoudini Странная и глупая функция! Я так думаю автор этого кода хотел удалить из памяти нпс врага?! А что  Кондлист combat_ignore_cond не работает? Это все делается внутри xr_combat_ignore.script см колбек enemy_callback

  • Спасибо 1

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


Ссылка на сообщение
Поделиться на другие сайты
 
2 часа назад, Mass сказал:

Кондлист combat_ignore_cond не работает?

Бывает надо удалить врага чтобы перейти в другую секцию логику, а без удаления врага это не выйдет ибо он переходит под движковую логику.

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


Ссылка на сообщение
Поделиться на другие сайты
 

Удалено. Ошибся темой.

 

Изменено пользователем antreg
Ошибка темы

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


Ссылка на сообщение
Поделиться на другие сайты
 
12 часов назад, imcrazyhoudini сказал:

Бывает надо удалить врага

Удалите пожалуйста этот кошмар и возьмите из ЗП xr_effects.script функцию disable_memory_object и функцию из xr_conditions.script has_enemy

Спойлер

function disable_memory_object (actor, npc) --' xr_effects
    local best_enemy = npc:best_enemy()
    if best_enemy then
        npc:enable_memory_object(best_enemy, false)
    end
end

function has_enemy(actor, npc) --' xr_conditions
    return npc:best_enemy() ~= nil
end

И в логике on_info = {=has_enemy} Ваша секция %=disable_memory_object%

  • Спасибо 1

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


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу