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

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

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

@karavan, По конкретней? Могу направить на каллбэк, function actor_binder:use_inventory_item(obj)

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


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

 

 

Вообще хотелось бы конкретную функцию на "надевание шлема". 

"Хотеть не вредно, вредно не хотеть" :) ... (автор неизвестен)

С ЗП не ковырялся(не интересно), по-этому могу ошибаться, но все-же: посмотрел lua_help от ЗП, перечисление доступных коллбэков - ничего, напоминающего снятие\одевание\смену шлемов не увидел. Следовательно, наиболее реальный вариант отследить движняк со шлемами - проверять содержимое соответствующего слота на каком-либо апдейте.

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


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

 

 

Если "надеваешь шлем" то
Не знаю как в ЗП, а в тч работает.
local slot_1 = db.actor:item_in_slot(номер_слота) 

if slot_1:section() == "killer_outfit" then 
...
end

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


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

О, блин, тут-то еще интереснее.

 

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

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


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

В чистом ЗП нет колбэка на помещение предмета в слот. Только в апдейте проверять, если в слоте ничего не было, а на следующем апдейте уже есть - значит в слот что-то поместили.
Или можно взять обновлённую версию движка, где такой колбэк есть.

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


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

Подскажите пожалуйста, как вЗП сделать НПС бессмертным, а именно интересует лейтенант Роговец.

volkodav37.gif

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


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

Ищешь в каком скваде этот НПС и в конфиге сквада (misc\squad_descr_) указываешь: invulnerable = true. Еще можно такое-же прописывать в секциях логики НПС-а, тогда, если я не ошибаюсь, он будет бессмертным даже к ГГ.

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

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


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

Что написать в логике НПС, чтобы он переместился на другую локацию, например, с Затона на Юпитер. Прокатит ли просто прописать новый смарт террейн в другой локации и перейдет ли он туда?

Да где же этот артефакт, едрить его в корень!

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


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

Ищешь в каком скваде этот НПС и в конфиге сквада (misc\squad_descr_) указываешь: invulnerable = true. Еще можно такое-же прописывать в секциях логики НПС-а, тогда, если я не ошибаюсь, он будет бессмертным даже к ГГ.

А есть возможность  более подробно и на примере объяснить как это сделать?

Clayman

Большое спасибо, все получилось.

volkodav37.gif

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


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

MrGROX ,если НПС один в скваде, то напиши в конфиге сквада нужный смарт target_smart = , можно с условием:

target_smart = {нужные проверки} смарт.

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

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

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


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

Товарищи скриптописатели! Нужна ваша помощь!

Проблема вот в чём. Пытаюсь сделать себе солянку на базе UnP 0.8

Игра - лицензия, патч 1.6.0.2

При подключении нескольких модов, с определённого момента, игра начинает вылетать с логом

Expression : !m_error_code
Function : raii_guard::~raii_guard
File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line : 748
Description : ....l.k.e.r. - cop\gamedata\scripts\bind_stalker.script:478: attempt to concatenate field '?' (a nil value)

Это

function actor_binder:load(reader)

оператор 

get_console():execute("g_game_difficulty "..game_difficulty_by_num[game_difficulty])

То есть, сбрасывается в сохранении, или не сохраняется уровень сложности. Возможно, ещё что-то.

если подставить костыль в виде

local game_difficulty = 1

то сохранение может загрузиться нормально (с виду), или вылететь за отсутствием ещё какой-либо переменной, идентификатора погоды, например.

Моды, в основном, инициализируются через различные функции bind_stalker.script

Моды сами по себе не затрагивают ни погоду, ни уровень сложности.

Моды, подключенные по-отдельности к UnP 0.8, никаких проблем не вызывают, сохраняются/загружаются нормально.

Отключение модов без начала НИ сохранение не спасает, т.е. переменные обнуляются либо сбрасываются до/во время сохранения.

Если один из модов отключить, а потом начать НИ, проблема, обычно, пропадает.

 

Список модов:

  • ___Up_CoP_v0.8\
Моды, подключаемые через bind_stalker:
  • ammo_fix_v100002\
  • Artefact_respawner_COP\
  • Detector_Fenix\
  • exchanging items mod COP 0.1\
  • Телевизор_у_Зулуса\
Моды без скриптов:
  • Morda_MOD_031\
  • NPCvisual\
  • Анекдоты из ЧН и ТЧ дзя ЗП\
  • retekstura-kurtki-novichka.zip

В логе ничего толкового нет больше. Нельзя ли получить более развёрнутый лог?

Любая помощь в совмещении и советы приветствуются...

Я, вообще, понимаю, что это, видимо, какой-то буфер/таблица/переменная переполняется, но как это победить - не знаю, к сожалению...

 

P. S. Я с этой фигнёй уже с неделю ковыряюсь, пробую всякие варианты. Сел поиграть в СТАЛКЕРа называется  :crazy:

 

Шаман - СисАдмин

Всяко-разно: для ЧН

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


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

@Clayman, Спасибо, а насчёт некрасивости - это абсолютно неважно.
А можно прописать как условие день/ночь? Помнится, в ТЧ такой вариант не прокатил.

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

Да где же этот артефакт, едрить его в корень!

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


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

Да, можно проверять день, дождь и любые проверки из xr_conditions:

target_smart = {=is_day} смарт1, смарт 2 - при таком раскладе днем идем в смарт1, ночью в смарт2.

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


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

Добрый день, форумчане!

Я не знаю, обсуждалась здесь эта тема или нет, но ответ на свой вопрос я во всём интернете так и не нашёл.

 

В общем, поставил в SDK на Кордоне два лагеря (смарт-террейна), один лагерь новичков со сталкерами, другой - с бандитами.

К примеру, отрядам бандитов прописал target_smart = esc_novice, то есть чтобы они штурмовали базу новичков.

Всё вроде бы нормально, они идут, штурмуют, только вот... слишком издалека начинают вести огонь. Зачастую когда бандиты начинают стрелять, сталкеры ловят пули, но совершенно не обращают на это внимание и продолжают заниматься своими делами. Так работает с любыми нападениями на лагерь, НПС не хотят близко подходить и палят, как снайперы, даже если у них ПМ.

Как вариант, пробовал снизить поле зрения неписям на такой, какой был в ЧН, но это совершенно ничего не поменяло.

Также ещё пробовал воспользоваться конфигами для смарта из ЧН: att_restr и def_restr. Последний работал замечательно, а вот att_restr не работает, атакующие продолжают стрелять, как снайперы, даже не заходя в зону att_restr.

 

Скажите пожалуйста, кто с этим сталкивался? И есть ли решение?

Ах да, в файлах игры ничего не менял, разве что добавлял конфиги для своих созданных смартов.

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


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

@xrSleepy,  проверяй параметр отрядов sim_avail в файле simulation_objects_props.ltx

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


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

Это не то. Параметр sim_avail отвечает за доступность лагеря для симуляционных сквадов. К примеру, если на локации есть сквады со значением target_smart = nil (или вообще без этого значения), то в этот лагерь они в любом случае идти не будут.

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


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

 

 

Параметр sim_avail отвечает за доступность лагеря для симуляционных сквадов

 

Да, ладно!!!

Тогда зачем вот это безобразие написано в файле xr_combat_ignore.script ????

 

if se_obj.group_id ~= 65535 and sim_obj_registry.objects[se_obj.group_id] ~= nil and
se_enemy.group_id ~= 65535 and sim_obj_registry.objects[se_enemy.group_id] == nil and
se_obj.position:distance_to_sqr(se_enemy.position) > 900 then
return false
end

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


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

В скриптах я не особо разбираюсь, однако я говорю о том, что видел своими глазами. И, решая свою проблему, параметр sim_avail - первое, что я попробовал поменять.

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


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

 

 

параметр sim_avail - первое, что я попробовал поменять.

Как вы их меняли?

Нпс под эксклюзивом?

Секции логики?

Секции отрядов?

Без всего этого вряд ли кто-то, что - то сможет понять в вашей проблеме.

Нужны хоть какие-то данные.

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


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

По пунктам.

sim_avail - ставил true и false, проблему это не решило, так что это не тот параметр.

В лагере сталкеров 5 эксклюзивных НПС.

Сквады бандитов, которые на них нападают - дефолтовые.

;Логика смарта, который в лагере новичков


[smart_terrain]
squad_id = 1
max_population = 4
;att_restr = esc_space_restrictors_novice_camp_sr_attack
;def_restr = esc_space_restrictors_novice_camp_sr_defense

 

[smart_terrain]
squad_id = 2
max_population = 2

 

[esc_novice_camp_squad_1]:online_offline_group
faction = stalker
npc = sim_default_stalker_0, sim_default_stalker_0, sim_default_stalker_0
target_smart = esc_novice_camp
story_id = esc_novice_camp_squad_1

[esc_novice_camp_squad_2]:online_offline_group
faction = stalker
npc = sim_default_stalker_0, sim_default_stalker_0, sim_default_stalker_0
target_smart = esc_novice_camp
story_id = esc_novice_camp_squad_2

[esc_novice_camp_squad_3]:online_offline_group
faction = stalker
npc = sim_default_stalker_0, sim_default_stalker_0, sim_default_stalker_0
target_smart = esc_novice_camp
story_id = esc_novice_camp_squad_3

[esc_novice_camp_squad_4]:online_offline_group
faction = stalker
npc = sim_default_stalker_0, sim_default_stalker_0
target_smart = esc_novice_camp
story_id = esc_novice_camp_squad_4

 

[esc_halt_2_squad_1]:online_offline_group
faction = bandit
npc = sim_default_bandit_4, sim_default_bandit_4, sim_default_bandit_4, sim_default_bandit_4
target_smart = esc_novice_camp
story_id = esc_halt_2_squad_1

[esc_halt_2_squad_2]:online_offline_group
faction = bandit
npc = sim_default_bandit_4, sim_default_bandit_4, sim_default_bandit_4, sim_default_bandit_4
target_smart = esc_novice_camp
story_id = esc_halt_2_squad_2

 


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

Ссылка на скрин: http://www.screencapture.ru/uploaded/74/60/97/74609794.jpg

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

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


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

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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

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

AMK-Team.ru

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