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

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


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

ВСЕМ ПРИВЕТ НУЖНА РЕАЛЬНАЯ ПОМОЩЬ В СОЗДАНИИ ХОРОШЕГО МОДА, ДЕЛАЮ Я ЕГО САМ И ВОТ САМ ВОПРОС КАК ОТЧИСТИТЬ ЛОКАЦИИ ОТ ВСЕХ НПЦ, МОНСТРОВ, ВЕЩЕЙ, КОРОЧЕ ЧТОБ БЫЛА ПУСТАЯ НУЛЬЦОВАЯ ЛОКАЦИЯ И ВОЗМОЖНО ЛИ СОЕДИНИТЬ ИХ. ЕЩЕ ВОПРОС О ТОМ КАК СДЕЛАТЬ ТАК ЧТОБ СКАДОВСК И ЯНОВ ПЕРЕСТАЛИ БЫТЬ УБЕЖИЩАМИ А ПРОСТО ЛОКАЦИЯМИ БЕЗ ТОРГОВЦЕВ И СТАЛКЕРОВ ПО ТИПУ ВНЗ КРУГ И ДРУГИХ ОБЪЕКТОВ НА ЛОКАЦИИ ЗАРАНЕЕ БЛАГОДАРЮ ЕСЛИ ПОДРОБНО ОПИШИТЕ ИЛИ ДАДИТЕ ССЫЛКУ К ИМЕННО ТАКОГО ТИПА ИНСТРУКЦИИ ПРОШУ ОТВЕТИТЬ КОНКРЕТНО НА ПОСТАВЛЕННЫЙ ВОПРОС.

Всем привет. Нужна реальная помощь в создании хорошего мода, делаю я его сам и вот, сам вопрос: как отчистить локации от всех нпц, монстров, вещей, короче чтоб была пустая нульцовая локация и возможно ли соединить их. Еще вопрос о том, как сделать так, чтоб Скадовск и Янов перестали быть убежищами, а просто локациями без торговцев и сталкеров, по типу ВНЗ "Круг" и других объектов на локации. Заранее благодарю, если подробно опишите или дадите ссылку к именно такого типа инструкции. Прошу ответить конкретно на поставленный вопрос.

 

 

Если ты продолжишь писать в таком духе - тебя ждёт "купальня" в виде бани. Когда регистрируешься - правила нужно читать, а не просто пропускать мимо глаз/ушей/головы.

Пункты 2.4, 2.5 действующих правил форума - +10 баллов предупреждений.

ColR_iT

Изменено пользователем ColR_iT
Ссылка на комментарий

Я там моло что понимаю, уж простите за тупость...

Нельзя ли поподробнее?

Спасибо!

 

В документе по настройке логики см. "Настройка реакции NPC, meet_manager", там расписано.

 

Блжад, где тут кнопка "Ник"?

Поподробнее нельзя?

Спасибо!

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

vasa007, вот вырезка из статьи на stalker wiki:

use/use_wpn = true/false/self - настройки юзабельности персонажа.

При установки значения self NPC сам юзнет игрока, как только сможет дотянуться.

 

И еще посмотри файл zat_b33_stalker_snag.ltx

Изменено пользователем ColR_iT
Ссылка на комментарий

Кто-нибудь посмотрите:

 

 

 

[logic@levsha]
prior = 200
active = animpoint@levsha

[animpoint@levsha]
cover_name = l11pri_test_1_animpoint_1
avail_animations = ward
use_camp = false
meet = meet
on_info = {+l11_pri_levsha_start} walker@start_levsha
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = true
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false

[walker@start_levsha]
path_walk = l11pri_test_1_levsha_walk
path_look = l11pri_test_1_levsha_look
def_state_moving = assault
meet = no_meet
combat_ignore_cond = false
danger = danger		
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false


[meet]
close_anim = nil
close_victim = nil
far_anim = nil
far_victim = nil
close_distance = 0
far_distance = 0
use = {=actor_enemy} false, {-zat_b33_stalker_snag_setup =dist_to_actor_le(2) =see_actor} self, {=see_actor} true, false
allow_break = false
trade_enable = false
meet_on_talking = false

 

 

Вроде все правильно, но после перехода на схему walker@start_levsha игра вылетает с таким логом:

 

stack trace:

 

0023:083BE8B3 xrGame.dll, CDialogHolder::CDialogHolder()

0023:083BFB45 xrGame.dll, CDialogHolder::CDialogHolder()

0023:06552EA3 lua.JIT.1.1.4.dll, luaopen_io()

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

Привет. Подскажите, как в ЗП сделать лоад-скрины локаций (интро) на весь экран? Если у кого-то уже есть готовое решение, то поделитесь пожалуйста.

Изменено пользователем Scarabay
Ссылка на комментарий

 

Подскажите пожалуйста, почему он игнорирует только Альфу?

Я в этом вообще ещё мало что понимаю.

Заранее благодарю!

 

[logic]

 

active = bodyguard@wait_job

 

on_death = death

 

 

 

[death]

 

on_info = {=killed_by_actor} %+jup_army_bodyguard_death =bodyguard_death%,%+jup_army_bodyguard_death =respawn_jup_army_bodyguard =bodyguard_death%

 

 

 

[bodyguard@wait_job]

 

use_command = wait_job

 

bodyguard_pos = 343419

 

bodyguard_state = guard

 

bodyguard_look = 350784

 

home_teleport = true

 

meet = meet

 

combat_ignore_cond = {!check_enemy_name(actor)} true

 

on_info = {+jup_army_bodyguard_pursue} bodyguard@changer %=bodyguard_init%

 

 

 

[bodyguard@changer]

 

use_command = guard

 

meet = meet

 

combat_ignore_cond = {=bodyguard_ignore_precond} true

 

on_info = {+jup_army_bodyguard_nofire} bodyguard@command_nofire %=bodyguard_command_1%

 

on_info2 = {+jup_army_bodyguard_stop} bodyguard@command_stop %=bodyguard_command_2%

 

on_info3 = {+jup_army_bodyguard_stand_and_fire} bodyguard@command_stand_and_fire %=bodyguard_command_3%

 

on_info4 = {+jup_army_bodyguard_release} nil %=bodyguard_command_4%

 

 

 

[bodyguard@command_nofire]

 

use_command = nofire

 

meet = meet

 

combat_ignore_cond = true

 

combat_ignore_keep_when_attacked = true

 

on_info = {-jup_army_bodyguard_nofire} bodyguard@changer %=bodyguard_command_0%

 

on_info2 = {+jup_army_bodyguard_release} nil %=bodyguard_command_4%

 

 

 

[bodyguard@command_stop]

 

use_command = stop

 

meet = meet

 

combat_ignore_cond = true

 

combat_ignore_keep_when_attacked = true

 

on_info = {-jup_army_bodyguard_stop} bodyguard@changer %=bodyguard_command_0%

 

on_info2 = {+jup_army_bodyguard_release} nil %=bodyguard_command_4%

 

 

 

[bodyguard@command_stand_and_fire]

 

use_command = stand_and_fire

 

meet = meet

 

combat_ignore_cond = true

 

combat_ignore_keep_when_attacked = true

 

on_info = {-jup_army_bodyguard_stand_and_fire} bodyguard@changer %=bodyguard_command_0%

 

on_info2 = {+jup_army_bodyguard_release} nil %=bodyguard_command_4%

 

 

 

[meet]

 

abuse = false

 

use = true

 

allow_break = true

 

meet_on_talking = false

 

trade_enable = false

 

 

 

 

 

 

 

 

Подскажите пожалуйста, почему он игнорирует только Альфу?

Я в этом вообще ещё мало что понимаю.

Заранее благодарю!

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

vasa007

Во-первых, то, что ты "запихнул" под спойлер, не то, чтобы сложно читается, а вообще сложно воспринимается. Поэтому в следующий раз изволь удосужится привести свой же вопрос в читабельный вид.

Во-вторых, в чистом ЗП схема bodyguard отсутствует.

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

Есть такая задача. Нужно заспавнить на локации БТР и чтобы она стреляла в ГГ.

Взял логику из ТЧ, для БТР на ЧАЭС. То есть:

 

 

active = ph_car
[ph_car]
path_walk = mil_btr_walk
target = actor

 

Модельку взял ту, что есть в ресурсах Зова Припяти, ltx'шный файл для этой модели из мода автокоп. Также зарегил схему ph_car в modules.script, скинул скрипты ph_car.script и car.script из тч в папку со скриптами.

В результате вылет

 

FATAL ERROR

[error]Expression : !m_error_code
[error]Function : raii_guard::~raii_guard
[error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
[error]Line : 748
[error]Description : ...l.k.e.r. - cop shoker\gamedata\scripts\ph_car.script:87: attempt to index field 'car' (a nil value)

stack trace:

 

Что может быть причиной? 87-строка в скрипте ph_car выглядит так (выделена жирным):

 

if self.usable == nil then
[b]self.car:SetExplodeTime(0) -- (-1)[/b]

if self.car:HasWeapon() then
printf("car <fire>: car has weapon.")
self.car:Action(CCar.eWpnActivate,1)
self.hasWeapon = true
else
printf("car <fire>: car hasn't weapon.")
self.hasWeapon = false
end

 

 

Кто-нибудь адаптировал скрипты car и ph_car под ЗП? Поделитесь опытом, пожалуйста...

Изменено пользователем karonbaron
Ссылка на комментарий

Кто-нибудь посмотрите:

....

[walker@start_levsha]

path_walk = l11pri_test_1_levsha_walk

path_look = l11pri_test_1_levsha_look

...

 

Судя по коду - Это эксклюзивная логика смарта "l11pri_test_1". Если это действительно так, то path_walk и path_look нужно писать сокращенно, без имени смарта. Т.е. для данного случая: levsha_walk и levsha_look

Изменено пользователем ХОВАН
Ссылка на комментарий

karonbaron, ищи в этой теме, обсуждали уже, как прикрутить БТР-ы, я делал, все работает.

 

Скриптовики, подскажите плз, как грамотно таймер (ограничение) на сон сделать? Ну что-бы поспал, и какое-то время спать не хочется. Я примерно так эту схему представляю - поспал, в ui_sleep_dialog.script выдаем инфо, что "поспал", запускаем таймер на N-часов, пока есть инфо "поспал", в в ui_sleep_dialog.script окошко что не хотим спать, после того как таймер отработал - убираем инфо "поспал". В принципе я со всем разобрался как делать, кроме таймера - где его грамотно цеплять, чтобы не работал лишнего, а запусался и стопил когда надо. В схеме sr_sleep можно, но как-то громоздко получается, наверное все-таки лучше в скрипте?

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

ХОВАН

 

Все правильно, вылет это не исправило, даже с такой логикой вылет:

 

[logic@levsha]
active = walker@start_levsha
suitable = {=check_npc_name(levsha)}
meet = meet

[walker@start_levsha]
path_walk = start_levsha_hole_walk
path_look = start_levsha_hole_look

 

Хотя на ЗПшных локациях все квесты с подобной логикой работают и вылетов нет. Есть идеи ?

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

Batment, судя по логу, у тебя ошибка связана с диалогом... (см. CDialogHolder::CDialogHolder() ) т.о. не в схеме walker нужно копаться, а в meet или с стороннем...

У тебя в meet прописано:

use = {=actor_enemy} false, {-zat_b33_stalker_snag_setup =dist_to_actor_le(2) =see_actor} self, {=see_actor} true, false

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

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

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

Artos, нет вылет не в meet-схеме:

1. Первый вылет был при переходе с animpoint'a (где и использовалась схема meet) на walker, где meet-схема отключена (meet = no_meet)

2. Упустил "use = {=actor_enemy} false, {-zat_b33_stalker_snag_setup =dist_to_actor_le(2) =see_actor} self, {=see_actor} true, false"

3. Ну и CDialogHolder не связан с диалогами, скорее с интерфейсом\GUI

 

Batment, вот, почитай урок по эксклюзивной логике от denis2000, может поможет чем

Я слышал о проблемах с логикой\симуляцией на подключенных локациях, но сам лично не сталкивался... Перепроверь локацию в скриптах

Изменено пользователем ХОВАН
Ссылка на комментарий

На самом деле, вылет CDialogHolder::CDialogHolder() может быть по очень многим причинам, совершенно не относящимся к диалогам. Во-первых, проверяйте корректность way-поинтов, особенно прописанные в точках look параметры, соответствие точки walk аи-ноду (если walk не на ноде, будет вылет).

Во-вторых, я подобные вылеты ловил из-за партиклов и еще из-за чего-то, уже не помню.

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

ХОВАН, где ты увидел в моем посте про "виновность" самой схемы? Она может провоцировать, т.к. именно она отвечает за диалоги и соответственно их окна.

Неужели не понятно, что лог ругается именно на GUI и именно на CDialogHolder - т.е. на попытку движка обработать объект диалогового окна. И нужно разбираться что за диалог пытается движек обработать.

И как же это CDialogHolder - "не связан с диалогами"??? :shok: Иль для тебя интерфейс диалогового окна - это не часть диалога? :crazy:

Улыбают такие вот комменты в "советах":

Я слышал о проблемах с логикой\симуляцией на подключенных локациях, но сам лично не сталкивался...
:crazy:

 

Clayman, вы хоть читаете(?) написанное:

нужно копаться ... в meet или стороннем...
Это означает, что или в схеме заданы параметры, которые приводят к ошибке, но не в самой схеме, а с неким вызываемом диалоге или переход на указанную секцию walker@start_levsha активирует иные схемы, которые и вызывают ошибку.

Нужно трассировать в лог работу скриптов/схем на этом участке и анализировать, а не гадать в темную... "а вот у меня встречалось..."

 

P.S. Как вариант, хотя бы временно отключить в этой проблемной секции: meet = no_meet - и далее уже разбираться, в чем же проблема.

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

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

Artos

 

Даже с такой схемой вылетает, с таким же логом:

 

[logic@levsha]

active = walker@start_levsha

suitable = {=check_npc_name(levsha)}

meet = meet

 

[walker@start_levsha]

path_walk = start_levsha_hole_walk

path_look = start_levsha_hole_look

 

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

Ссылка на комментарий
Artos, я же не просто так привожу пример, чтобы светскую беседу поддержать, а делюсь именно личным опытом. В одном случае, у меня был вылет с логом CDialogHolder::CDialogHolder() именно из-за попыток использовать некорректные оригинальные вей-поинты на подключенном Кордоне. В другом - на Болотах добавлял новые аномалии и статик-партиклы к ним и ловил вылет почему-то именно с подобным логом. Но дело хозяйское, ищите в диалогах.
Ссылка на комментарий

Batment, ты ждешь чтобы тебе и ошибку растолковали и где она и как ее исправить? И все по твоей куцей информации...

 

Пишу (повторяю) в последний раз:

1. Во-первых, судя по твоей "даже с такой схемой" - схема meet не отключена, она же у тебя в корневой секции прописана(!).

Если отключение (чего у тебя НЕ сделано) не исправляет ошибку - искать в сторонних алгоритмах,

2. Если у тебя пути не имеют флагов (сигналов), то проверка в другом месте валидна, если же флаги в наличии - то проверять нужно именно "по месту", т.к. флаги и могут вызывать проблемны.

3. Нужно трассировать в лог работу скриптов/схем на этом участке и анализировать, а не гадать в темную...

 

(комментировать не нужно, гадания на кофейной гуще закончил).

 

Clayman, если начать поминать кто и сколь раз встречал ту иль иную ошибку - всех разделов форума не хватит.

Вот ты, уже не раз встретил упомянутую ошибку и что(?) нашел причину или тупо обошел методом тыка, поставив какую-нить заплатку иль кострировав коды? Личный опыт - это не сколько раз наступил на одни грабли, а сколько нашел способов НЕ наступать на одни и те же грабли! ИМХО.

Нужно не гадать(!), а искать причину и устранять ее, заодно намотав на ус, как не нужно делать, чтобы не наступать на грабли!

И версия о причастности некоего "диалога", точнее попытке вызова диалога из-за наличия в схеме значения параметра "self" - всего лишь предположение, хотя это может быть уже последствия фатальной ошибки совсем иного рода.

 

Clayman, по твоему вопросу о таймерах:

Уже десятки раз приводились и готовые примеры и немало пояснений/статей понаписано. Воспользуйся поиском. Таймеры для ЗП ничем не отличаются от таймеров для ТЧ/ЧН. В конце концов, каждый второй мод содержит "сон" для актора, почему там не посмотреть?!

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

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

С БТР'ом разобрался, оказывается еще нужно было класс CCar зарегистрировать.

 

Вопрос следующий. В логике вертолета можно прописать параметр enemy. На вики говорится, что enemy может быть равно actor, sid непися, или nil. В логике ЧН'овского верталя я видел еще параметр all. А если нужно, чтобы вертолет атаковал не какого-то одного противника, а например, группировку. То есть прилетает поддержка во время атаки на базу бандитов и вертушка атакует только врагов, а друзей и ГГ не трогает, даже если они в поле зрения вертолета. Есть у кого какие идеи?

Может, так?

enemy = {=check_enemy_name(sim_default_bandit)} all, nil

Изменено пользователем karonbaron
Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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