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

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


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

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

Вот рабочий вид. Зелёным текстом выделено что я хочу ещё вставить в квест, но оно отказывается работать.


[wolf_find_item_1]

type = find_item

community = actor

text = wolf_find_item_1_text

description = wolf_find_item_1_descr

parent = wolf

target = novice_outfit, wpn_aksu, novice_outfit, wpn_aksu

;reward_money = 8000

reward_reputation = 10

reward_rank = 4

reward_item = af_medusa 

time = 86400


Можно ли вставлять так нужные предметы через запятую? Или в ТЧ вообще невозможно создать квест на поиск нескольких предметов?

@fedorman, невозможно, есть переписанный менеджер заданий, там это возможно, автор добавил новый тип задания на поиск нескольких предметов. Так что либо сам делай, либо жди пока выйдет... либо проси.

 

@AndrewMor, путь напиши, и проверь существующие. И еще, мне не понятно нафига cond для уникального смарта на одного человека задавать, ну да ладно.

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

[meet@zoneguard1]
meet_state = 7|{-gar_free_passa} threat@gar_dolg_blokpost, guard@talk_hello
meet_state_wpn = 7|{-gar_free_passa} threat@gar_dolg_blokpost, guard@talk_hello
victim = 7|actor
victim_wpn = 7|actor
use	= true
use_wpn = true
zone = gar_dolg_blokpost_zone_warn|{-gar_free_passa}backoff@{-gar_free_passa}gar_dolg_blokpost|gar_dolg_blokpost_zone_guard|{-gar_free_passa}true@{-gar_free_passa}gar_dolg_blokpost
meet_dialog = gar_dolg_blokpost

вот родной код.

Вместо  meet_dialog = gar_dolg_blokpost пишу свой диалог называю просто meet_dialog = gar_dolg_blokpost_new, и ничего. Если пустить диалог от имена актора, все нормально. Не пойму почему не работает от имени Прапора.

Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g.

 

 

почему не работает от имени Прапора

В смысле? Чтобы прапор начинал диалог?

А ты прописал свой диалог в профиле прапора кстати?

   УРАГАН.png

                 Краткий гид по моду Тайные Тропы 2

                                      ПАРТИКЛЫ TERRA

 

 

 

@_Val_, ну конечно. Поэтому и спросил. Сделал от актора, но причину бы понять. Оригинал работает, пишу новый, начинаю НИ, не пашет.

Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g.

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

Хемуль36рус Если гадать дальше то возможно в профиле нпс:

<actor_dialog>ххх</actor_dialog>

А должно быть:

<start_dialog>ххх</start_dialog>

Ximera_1999 Возьми текстуру из дмх мода :)

Мой архив

Сталкером не занимаюсь.

@Хемуль36рус, ну вообще в случае, когда непись сам должен начать говорить с ГГ, ну то бишь первая фраза его(ибо кнопочку эФ то он нажать не может))) я вообще удаляю этот диалог из профиля.

Чтобы не быть голословным...

Логика

[meet@yan_nastya_mesto_exit_2]
meet_state = 20|guard|15| wait
victim = 20|actor
victim_wpn = 20|actor
use_wpn = false
use = true
meet_dialog = izolda_dialog_3 

Профиль

        <start_dialog>hello_dialog</start_dialog> 
        <actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog>
        <actor_dialog>izolda_dialog_0</actor_dialog>
        <actor_dialog>izolda_dialog_1</actor_dialog>
        <actor_dialog>izolda_dialog_2</actor_dialog>
#include "gameplay\character_criticals_4.xml"
</specific_character>

Как видишь - искомого диалога в профиле нет. Но он отлично работает)))

 

 


 

 

Возьми текстуру из дмх мода

Как-бы все химеры после этого призрачными не стали))

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

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

   УРАГАН.png

                 Краткий гид по моду Тайные Тропы 2

                                      ПАРТИКЛЫ TERRA

 

 

 

@_Val_, @amik, бесполезно, не хочет новый диалог читаться, и всё. Не пойму в чем дело. Может предусловие какое где. Всё перерыл, у других НПС которым менял, все нормально.

Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g.

Ну так предусловия все в родном диалоге должны быть...

Кстати, а зачем ты новый пишешь? Замени текст в старом.

   УРАГАН.png

                 Краткий гид по моду Тайные Тропы 2

                                      ПАРТИКЛЫ TERRA

 

 

 
use = true

use_wpn = true

попробуй вместо true поставить self

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

это с stalkerin.gameru.net из статьи "Настройка логики".

 

Вопрос по логике.

К примеру есть такая работа в гулаге:

[logic@gar_angar_drug3]
active = walker@gar_angar_drug3

[walker@gar_angar_drug3]
path_walk = drug3_walk
path_look = drug3_look
on_info = {+gar_breakthrough_rush} walker@gar_angar_rush_drug3
on_info2 = {+gar_breakthrough_complete} kamp@gar_angar_drug3
on_info3 = {+gar_breakthrough_on_point} walker@gar_angar_point_drug3

[и т.д...]

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

 

 

"local job_position_threshold = 120 --'50  -- расстояние до места работы при котором персонаж в онлайне считается достигшим места работы" - xr_gulag.script, внезапно. В офлайне - по вертексам. dc

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

@_Val_, можно конечно. Только вот почему всё-таки диалог не работает, вот что странно.

Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g.

попробуй вместо true поставить self

 

Ну совершенно по причине того, что как раз тусовался в тех местах(ну и проверки ради), сделал так тому персонажу, логику и профиль которого приводил выше. Диалог как ветром сдуло)))

Саня...Ты экспериментируй по разному, что тут еще скажешь. Например действительно удали свой диалог из профиля.

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

   УРАГАН.png

                 Краткий гид по моду Тайные Тропы 2

                                      ПАРТИКЛЫ TERRA

 

 

 

 

 

чтоб он сразу переключался в следующую секцию, не перемещаясь в начало path_walk ?

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

[logic@gar_angar_drug3]
active = {+gar_breakthrough_on_point} walker@gar_angar_point_drug3, {+gar_breakthrough_complete} kamp@gar_angar_drug3, {+gar_breakthrough_rush} walker@gar_angar_rush_drug3, walker@gar_angar_drug3
 

  • Согласен 1

Вообще-то я белая и пушистая...

 

 

ошибкой "Can't open section..."

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


 

 

почему не работает от имени Прапора

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

  • Спасибо 1
  • Полезно 2

Вообще-то я белая и пушистая...

 

 

Если движок ругается, значит у вас нет секции на которую вы хотите переключить логику нпс. Или же не читается ваш файл с логикой.
[logic@gar_angar_drug2]
active = walker@gar_angar_drug2
 
[walker@gar_angar_drug2]
..........
 
[kamp@gar_angar_drug2]
..........

в таком виде все прекрасно. Делаю так:

[logic@gar_angar_drug2]
active = {+gar_breakthrough_complete} kamp@gar_angar_drug2, walker@gar_angar_drug2

[walker@gar_angar_drug2]
..........

[kamp@gar_angar_drug2]
..........

при загрузке сохранения и при начале НИ вылет, с вышеописанной руганью. Тестю это на 1.0005, похоже что для тега active такой способ не поддерживается. Может в 1.0006 добавлено ? Вы на какой версии это проверяли ?

  • Не нравится 1
function gulag:get_job_path_name( job )
	local section = job.section

	if not self.ltx:line_exist( section, "active" ) then
		abort( "gulag: ltx=%s  no 'active' in section %s", self.ltx_name, section )
	end

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

	for i, v in ipairs( path_fields ) do
		if self.ltx:line_exist( active_section, v ) then
			path_field = v
			break
		end
	end

	if not path_field then
		abort( "gulag: ltx=%s, there is no path in section %s", self.ltx_name, active_section )
	end

	if path_field == "center_point" then --' TODO убрать затык
		local path_name = self.name .. "_" .. self.ltx:r_string( active_section, path_field )

		if level.patrol_path_exists( path_name .. "_task" ) then
			return path_name .. "_task"
		else
			return path_name
		end
	else
		return self.name .. "_" .. self.ltx:r_string( active_section, path_field )
	end
end

 

Имеющий да усмотрит.

Изменено пользователем Dennis_Chikin
  • Нравится 1

@AndreySol,  вообще такой метод работает и на четвертом.

Кстати из твоего описания я так и не понял, чего ты хочешь добиться. Чтобы при выдаче поршня непись переходил в другую секцию?

У тебя как-то так...

[logic@gar_angar_drug3]
active = walker@gar_angar_drug3

[walker@gar_angar_drug3]
path_walk = drug3_walk
path_look = drug3_look
on_info = {+gar_breakthrough_rush} walker@gar_angar_rush_drug3
on_info2 = {+gar_breakthrough_complete} kamp@gar_angar_drug3

А я бы сделал так...

[logic@gar_angar_drug3]
active = {-gar_breakthrough_rush}walker@gar_angar_drug3, {+gar_breakthrough_rush -gar_breakthrough_complete} walker@gar_angar_rush_drug3...

[walker@gar_angar_drug3]
path_walk = drug3_walk
path_look = drug3_look
on_info = {+gar_breakthrough_rush} walker@gar_angar_rush_drug3
on_info2 = {+gar_breakthrough_complete} kamp@gar_angar_drug3

Секции актив читаются слева направо с проверкой условий. Непись переходит в секцию, условие для которой будет выполнено первым.

И для четкого разграничения условий актив не бойся выдавать дополнительные поршни.

Откуда угодно. Из логики непися при переходе в другую секцию, по сигналу из точек пути.

   УРАГАН.png

                 Краткий гид по моду Тайные Тропы 2

                                      ПАРТИКЛЫ TERRA

 

 

 

 

 

с вышеописанной руганью

Оффтоп...

Вообще вылета быть не должно, если правильно написана секция, в которую нужно переходить. То бишь 

.......
on_info = {+info} walker@1 

[walker@1]
.........

Причем тут влияет всё. Например пробел перед скобкой, полученный в результате копипаста.

А я один раз, пока не изменил стиль и шрифт Нотепада++ не мог избавится от вылета из-за того, что было написано не look, а 1ook)))

   УРАГАН.png

                 Краткий гид по моду Тайные Тропы 2

                                      ПАРТИКЛЫ TERRA

 

 

 

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

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

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

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

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

Войти

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

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

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