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

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

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

2 hours ago, imcrazyhoudini said:

кривовато выходит

При правильных координатах новое окно должно полностью перекрываться движковыми иконками.

 

Для иконок ГГ в движке есть проверка "группировка / actor" с отметкой "не равно", хотя именно сам код должен вернуть true при совпадении значений – здесь без лога неясно, как выглядит первое значение и почему проверка открывает все иконки, кроме actor_:

Spoiler
	if ( CUICharacterInfo::get_actor_community( &our_comm, &enemy ) )
	{
		if ( xr_strcmp( our_comm, "actor" ) ) // !=
		{
			strcpy_s( community1, sizeof(community1), our_comm.c_str() );
			strcat_s( community1, sizeof(community1), "_icon" );

 

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

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

@Norman Eisenherz есть варик как на движковом уровне поправить это?
Или хотя бы куда копать - я бы передал это своему человеку.

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

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

В движке надо заткнуть эту проверку и сразу переходить к выводу иконок.

 

Попроси человека сначала вывести в лог значения our_comm и xr_strcmp для пустой группировки и любой другой: по коду получается "вывести иконку, если our_comm совпадает с actor" (xr_strcmp = true), а по результату работы как раз наоборот – я не вижу, где делается инверсия.

 

Почитал чуть выше: можно сократить проверку "если объект не ГГ и не требуется исключать группировку", а весь код ниже убрать – иконки будут выведены одним способом для всех сталкеров.

    if ( Actor()->ID() != m_ownerID && !ignore_community( comm_id ) )

    if ( !ignore_community( comm_id ) )

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

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий
20 часов назад, Norman Eisenherz сказал:

Почитал чуть выше: можно сократить проверку "если объект не ГГ и не требуется исключать группировку", а весь код ниже убрать – иконки будут выведены одним способом для всех сталкеров.

    if ( Actor()->ID() != m_ownerID && !ignore_community( comm_id ) )

    if ( !ignore_community( comm_id ) )

Оказывается, всё намного проще. Достаточно было удалить/закомментировать эту проверку.image.png
Ну, и через Msg отлавливается название иконки актора, которая будет использоваться.image.png
В итоге, мы видим иконку группировки actor(которая не принадлежит ни к какой другой группировке, но ей по дефолту прописана иконка вольных). Можно для остальных группировок actor_*community_name* назначать свои иконки.image.png
Если кто упустил, как вообще включить показ иконки без правок движка, то в ноде actor_ch_info и/или partner_ch_info прописываем строку:

<commumity_icon      x="13" y="73" width="40" height="48" stretch="1"/>

Координаты и размеры задаём произвольные. Удачи!)

Изменено пользователем Hrust
Уменьшил цитату.
Ссылка на комментарий
4 hours ago, Hrust said:

всё намного проще

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

Spoiler
	if ( Actor()->ID() != m_ownerID && !ignore_community( comm_id ) )
	{
		if ( m_icons[eCommunityIcon   ] ) { m_icons[eCommunityIcon   ]->InitTexture( community1 ); }
		if ( m_icons[eCommunityBigIcon] ) { m_icons[eCommunityBigIcon]->InitTexture( community2 ); }
		return;
	}

не прочитает иконки сразу для всех сталкеров, включая ГГ, если удалить проверку Actor()->ID() != m_ownerID? По-моему, при комментировании проверки if ( xr_strcmp( our_comm, "actor" ) ) получается повторное чтение иконок: сначала только для NPC, потом только для ГГ.

 

4 hours ago, Hrust said:

включить показ иконки без правок движка

Скопировал <community_big_icon>, переименовал в <community_icon> при тех же координатах – пустое место по умолчанию как в инвентаре, так и в статистике.

В диалоге иконка как раз квадратная и один шаблон окна на двоих – там такой способ не годится, хотя именно в диалоге добавление второй иконки через блок <community_big_icon> работает.

 

 

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

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

@Norman Eisenherz, ну, без правки движка возможно лишь для партнёра оформить показ иконки группировки, а для актора, к сожалению, нет. Насчёт комментирования одной строки - будет полезно для врезчиков.

Цитата

получается повторное чтение иконок: сначала только для NPC, потом только для ГГ.

Тут не чтение происходит, а установка соответствующей текстуры, и с мною предложенным вариантом, будет для обоих участников разговора ставится, а не для одного партнёра, как это было ранее. Всё же, ещё подумаем насчёт этого при проблемах с производительностью. Хотя, UI изменения зачастую не дают каких-либо проблем с этим.
Делал как-то рофло-аддон, где апдейт всех параметров актора происходил постоянно, три кадра потерял всего лишь.:biggrin:

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

Каким образом можно назначить квесты принеси-подай обычному НПС или как каким должен быть НПС чтобы у него появились такие квесты?
В ЧН они были например у лидеров отряда - принести каменный цветок, ПМ наградной, и подобное.

Я прописал в tm_yantar.ltx такое:
 

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

[yan_recover_item_1]   ;глаз плоти
type = recover_item
task_type = additional
name = yan_recover_item_1_name
text = yan_recover_item_1_text
distanse = 100
prior = 2
faction = ecolog
target_cond = {=actor_on_level(l01_yantar) -yan_recover_item_1_done} true, false
on_init = %+yan_recover_item_1_done%
requested_items = mutant_flesh_eye
community_relation_delta_complete = 300
reward_money = {~20} 1500, {~50} 1250, 1000
auto_faction = true

Но квест не появился.

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

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

• название карты yantar (в ТЧ был формат l#_name, но даже так номер не тот);
• нет записи target_npc_or_box_name = … (любой контейнер, можно повторить уже задействованный);
• со сталкерами после исправлений работает, с Сахаровым нет (у него в целом нет диалога о подработке)

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий
8 часов назад, Norman Eisenherz сказал:

• название карты yantar (в ТЧ был формат l#_name, но даже так номер не тот);

У меня такой же формат карт, и название локации верное.

 

8 часов назад, Norman Eisenherz сказал:

нет записи target_npc_or_box_name = … (любой контейнер, можно повторить уже задействованный);

С этим соглашусь, нужно указывать цель как выяснилось.
Для этого типа более подойдёт bring_item, но в таком случае нет уникального описания диалога.

8 часов назад, Norman Eisenherz сказал:

с Сахаровым нет (у него в целом нет диалога о подработке)

В ЧН выдают такие квесты лишь командиры отрядов.

Научился спавнить НПС в смартах, Сахаров стал лидером, квест уникальный появился, но потом выяснилось что НПС может выдать квест лишь один раз, что не подходит.
Уровень циклических квестов с ТЧ здесь не повторить как понимаю.

То сделал подобие цикличек через диалоги.

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий
12 hours ago, imcrazyhoudini said:

У меня такой же формат карт, и название локации верное.

Или я не понял, о чем речь, или неверное утверждение: в оригинале ЧН карты не пронумерованы.

Spoiler
[game_maps_single.ltx]
-- ТЧ
[level_maps_single]
L01_escape
L02_garbage
L03_agroprom
L03u_agr_underground
l04_darkvalley
l04u_LabX18
L05_bar
L06_rostok
l07_military
l08_yantar
l10_radar
l11_pripyat
l12_stancia
l12_stancia_2
l12u_control_monolith
l12u_sarcofag
l08u_brainlab

-- ЧН
[level_maps_single]
        agroprom                         =
;       agroprom_underground             =
        darkvalley                       =
        escape                           =
        garbage                          =
        limansk                          =
        marsh                            =
        military                         =
        red_forest                       =
        stancia_2                        =
        yantar                           =

 

 

По поводу циклических квестов: как раз тип bring_item имеет явный отсчет времени до повторной выдачи (по умолчанию один день).

Spoiler
[task_objects.script]
function CBringItemTask:check_target(obj, faction)
	
				if math.floor(time:diffSec(inited_time)) < 86400 then

 

 

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий
41 минуту назад, Norman Eisenherz сказал:

в оригинале ЧН карты не пронумерованы.

У меня не оригинал ведь, свои версии локаций.
 

41 минуту назад, Norman Eisenherz сказал:

По поводу циклических квестов: как раз тип bring_item имеет явный отсчет времени до повторной выдачи (по умолчанию один день).

Допустим с этой проблемой решено, но как быть с тем, что у таких квестов нет уникального описания во время диалога с НПС?

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий
1 hour ago, imcrazyhoudini said:

У меня не оригинал ведь, свои версии локаций

Вот это надо обязательно указывать при оформлении вопроса.

 

Вводные фразы для типовых заданий см. в [task_dialogs.script].

  • Спасибо 1

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий
23 часа назад, Norman Eisenherz сказал:

• нет записи target_npc_or_box_name = … (любой контейнер, можно повторить уже задействованный);

Пустой строку оставить нельзя?

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

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

[task_objects.script]

function CRecoverItemTask:spawn_recoveritem()

В указанный контейнер с началом задания спавнится предмет (отдельный вопрос о совместимости такого подхода со свободным исследованием) – думаю, будет вылет.

 

В целом, тот случай, когда проще попробовать, чем спрашивать.

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

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

Вопросы:

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

Так же интересует почему не работает
[spawner]
cond = {+info}
у мутантов (в ТЧ работало, в ЗП вроде как то же).

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

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

2. В ЧН тот же подход – видимо, есть ошибка в новой секции [all.spawn].

Вот, например, спавн квестового трупа в ж/д тоннеле:

[alife_escape.ltx]

[spawner]
cond = {+esc_driver_friend_1}

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

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

@Norman Eisenherz это трупы людей.

 

С ними всё нормально, а вот с мутантами - нет.

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

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

Пару вопросов:

- каким образом можно восстановить билдовский прицел (кружочек)? (думал с огср дёрнуть, но не нашёл ничего понятного для меня, а как по истории искать - понятия не имею, то же не нашёл);

- почему сытость в чн не работает? каким образом можно восстановить? (если это в движке то где указано?) а то видел лишь скриптовую реализацию голода;

- паузу при загрузке перенести реально в движок с зп/огср? (если да, то не подскажите где указано) Ибо скриптовая её реализация работает коряво.

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

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

Подскажите пожалуйста название в конфигах аномалии в виде пузыря как в Лиманске. Там вроде не zone_teleport?

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

@imcrazyhoudini

[textures\ui\cursor.dds]

• сытость закомментирована во всей трилогии: в ТЧ/ЧН всегда nil, в ЗП всегда 1 даже при красном индикаторе голода

• есть мод "Pause CoP to ShoC" – возможно, и для ЧН подойдет

  • Спасибо 1

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

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