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

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


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

@demon96,

через правки движка. Или тебя интересует конкретное место правки в движке?

Меня интересует конкретное место, потому что я уже везде лазил

Вопросы:

Как добавляются новые группы в энциклопедии?

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

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

Dennis_Chikin

Добавил несколько недостающих инфопоршней:

 

 

	<!-- Квест: Найти способ открыть дверь в лаборторию Х-8 (вызывается из рестриктора)-->		<info_portion id="lab_x8_open_door">	<task>lab_x8_open_door_task</task>	</info_portion>		<info_portion id="lab_x8_find_key_card_complite"></info_portion>	<info_portion id="lab_x8_door_open"></info_portion>		<!-- Квест: Ответить на призыв о помощи (вызывается из рестриктора)-->	<info_portion id="alex_squad_need_help">	<task>alex_squad_need_help_task</task>	</info_portion>		<info_portion id="alex_squad_sos_signal_start_quest_timer"></info_portion>	<info_portion id="alex_squad_need_help_complite"></info_portion>		<!-- Квест: Спасти Тауруса из плена монолитовцев (при условии взятия квеста у Алекса) -->	<info_portion id="save_taurus">	<task>save_taurus_task</task>	</info_portion>		<info_portion id="taurus_dead_talk_to_alex_complite"></info_portion>	<info_portion id="save_taurus_talk_to_alex_complite"></info_portion>	<info_portion id="save_taurus_complite"></info_portion>		<!-- Квест: Спасти Тауруса из плена монолитовцев (квест не был взят)-->		<info_portion id="save_taurus_alternative">	<task>save_taurus_alternative_task</task>	</info_portion>		<info_portion id="save_taurus_alternative_talk_to_alex_complite"></info_portion>	<info_portion id="save_taurus_alternative_complite"></info_portion>				<!-- Квест: Забрать ПДА Тауруса (в случае смерти персонажа) -->	<info_portion id="take_taurus_pda">	<task>take_taurus_pda_task</task>	</info_portion>	<info_portion id="take_taurus_pda_complite"></info_portion>			<!-- Квест: Поговорить с Алексом (в случае смерти персонажа. квест не был взят) -->	<info_portion id="taurus_dead_talk_to_alex">	<task>taurus_dead_talk_to_alex_task</task>	</info_portion>		<info_portion id="taurus_dead_talk_to_alex_alternative_complite"></info_portion>			<!-- Квест: Забрать ключ-карту из тайника Тауруса -->	<info_portion id="take_lab_x8_key_card">	<task>take_lab_x8_key_card_task</task>	</info_portion>		<info_portion id="take_lab_x8_key_card_complite"></info_portion>				<info_portion id="monolith_base_commander_dead"></info_portion>	<info_portion id="monolith_base_door_guard_dead"></info_portion>	<info_portion id="monolith_base_barrikada_guard_1_dead"></info_portion>	<info_portion id="monolith_base_barrikada_guard_2_dead"></info_portion>		<info_portion id="monolith_base_perimetr_guard_1_dead"></info_portion>		<info_portion id="monolith_base_perimetr_guard_2_dead"></info_portion>		<info_portion id="monolith_base_prisoner_guard_dead"></info_portion>	<info_portion id="monolith_base_sniper_1_dead"></info_portion>	<info_portion id="monolith_base_sniper_2_dead"></info_portion>		<info_portion id="monolith_base_sniper_3_dead"></info_portion>	<info_portion id="monolith_base_destroy"></info_portion>			<info_portion id="back_to_alex_squad"></info_portion>	<info_portion id="back_to_alex_squad_complite"></info_portion>			<info_portion id="alex_squad_dead"></info_portion>	<info_portion id="taurus_dead"></info_portion>

 

 

 

Инфо здесь сейчас не интересны.

 

С какой именно строки (id и текст) начинаются проблемы ? В чем выражаются ?

Если изменить текст этой строки - изменения на экране есть ?

Все проблемные диалоги помечены в комментах. Повторюсь: есть стартовый диалог у каждого из нпс и он, конечно, отображается адекватно. А также остальные диалоги с тегом <actor_dialog> и по идее они все должны начинаться с фраз гг. А так-как необходимо, чтобы все диалоги начинали произносить нпс, я пытался использовать затычку, которая не сработала. НО! Каким-то образом несколько диалогов (gen_alex_taurus_save_in_progress_dialog, gen_taurus_after_save_dialog) отображаются верно, без плясок с бубном и при этом не являясь стартовыми! Отсюда и вопросы: почему так и как повторить это для всех диалогов?

 

З.Ы. При изменении текстового массива, изменений в отображении самого диалога нет.

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

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Я на Gamer-Mods.ru

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

Инфо здесь сейчас не интересны.

 

С какой именно строки (id и текст) начинаются проблемы ? В чем выражаются ?

Если изменить текст этой строки - изменения на экране есть ?

 

 

"При изменении текстового массива, изменений в отображении самого диалога нет."

 

Отображаемый текст изменяется ? То есть, если к какой-либо проблемной строке добавить какой-нибудь символ - он выводится в этой проблемной строке ?

 

И еще раз: не надо общее описание и отсылку к комментариям.

Надо id и текст той строки, которая выводится не от того, кого надо. Одной. Любой.

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

"При изменении текстового массива, изменений в отображении самого диалога нет."

 

Отображаемый текст изменяется ? То есть, если к какой-либо проблемной строке добавить какой-нибудь символ - он выводится в этой проблемной строке ?

 

И еще раз: не надо общее описание и отсылку к комментариям.

Надо id и текст той строки, которая выводится не от того, кого надо. Одной. Любой.

Отображаемый на экране текст изменяется.

 

Вот, к примеру:

<dialog id="gen_alex_taurus_safety_dialog">  <has_info>back_to_alex_squad_complite</has_info>  <dont_has_info>save_taurus_task_talk_to_alex_complite</dont_has_info>     <dont_has_info>save_taurus_alternative_task_talk_to_alex_complite</dont_has_info>	 <phrase_list>    <phrase id="0"> 			    <text>gen_alex_taurus_safety_dialog_0</text>      <next>1</next>		    </phrase>

<string id="gen_alex_taurus_safety_dialog_0">        <text>Ну спасибо, мужик! Черт, я его уже и не надеялся живым увидить. Не уж-то всех подонков перебил?! Хотя ладно, не говори. Вот и моя скромная награда, извини, уж чем богат...</text>    </string>

И эту фразу произносит актор ?

А у непися что ?

Это фразу должен произносить непись.

 

Фраза актера:

<phrase id="1"> 	    <text>gen_alex_taurus_safety_dialog_1</text>           <action>alex_mod_tasks.alex_squad_taurus_safety_reward</action>        <next>2</next>	</phrase>

<string id="gen_alex_taurus_safety_dialog_1">        <text>Спасибо. Может с раненым помочь?</text>    </string>

Еще раз:

 

Кривизна в том, что "Ну спасибо, мужик! Черт, я его уже и не надеялся живым увидить" и т.д. - у актора. Так ?

Что при этом в окне непися ?

В окне непися дефолтный диалог вида: Привет! - До встречи ("До встречи" - в ответе актера, помимо вышеуказанной фразы)

 

Господа, я поц!

 

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

 

З.Ы. Всем, спасибо за помощь (особенно тов. Dennis Chikin), все свободны!

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

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Я на Gamer-Mods.ru

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

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


<dialog id="actor_dialog_1">
	<phrase id="0">
		<!-- Текст пустой, поэтому первая фраза актора в этом диалоге пропускается -->
		<text></text>
		<next>1</next>
	</phrase>
	<phrase id="1">
		<!-- А вот тут выдаём нужную фразу НПС, например, вопрос: -->
		<text>Ну что, согласен на моё предложение?</text>
		<next>11</next>
		<next>12</next>
	</phrase>
	<phrase id="11">
		<text>Да.</text>
	</phrase>
	<phrase id="12">
		<text>Нет.</text>
	</phrase>
</dialog>

 


Таким образом, при старте диалога ты получишь 2 фразы НПС: «Привет! Ну что, согласен на моё предложение?».

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

Здраствуйте, не получив ответа - спрошу ещё раз, а то мало ли затерялось:

 

подскажите пожалуйста способ лечения вот такого вылета:

 

FATAL ERROR

 

[error]Expression : motion_ID.valid()

[error]Function : CKinematicsAnimated::ID_Cycle

[error]File : E:\stalker\sources\trunk\xr_3da\SkeletonAnimated.cpp

[error]Line : 121

[error]Description : ! MODEL: can't find cycle:

[error]Arguments :

 

stack trace:

 

пытаюсь активировать аномалию через арт Тополиный пух / Ржавые волосы.

 

нужно править .ogf файл? Или же есть какой то другой способ корректного спавна таких вот аномалий?

 

@Charsi, о как, спасибо большое. Я наткнулся с утра на idle_animation и attack_animation, в алл.спавне, так и понял что дело в этом, да вот ток по не опытности не смог догнать как это дело в скрипт влепить вместе с create, да и щас пока не доходит.... Буду вопщем пробовать.

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

... А наше дело маленькое - с ружьём да по болотам. (с)

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

, тополиный пух и другие аномалии с анимированными визуалами спавнятся через all.spawn или скриптом. При этом следует указывать анимации idle_animation и attack_animation. Модель править не нужно.

Ссылка на комментарий
тополиный пух и другие аномалии с анимированными визуалами

А какие это другие аномалии? Все остальные или какие конкретно с анимацией? Ведь та же электра легко активируется любым артом, ею порождаемым. Или я чего-то не понимаю?

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

Сталкер - наше всё!

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

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

ТЧ 1.0004. SAP и Trans mod

github

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

Кроме пуха и хваталки есть ещё лиана и амёба (она же звезда).

С использованием модуля нетпакетов скриптовый спавн выглядит примерно так.

local sobj = alife():create("zone_rusty_hair",db.actor:position():add(db.actor:direction():mul(4):add(vector():set(0,3,0))),db.actor:level_vertex_id(), db.actor:game_vertex_id())

local pk = get_netpk(sobj,1)
local data = pk:get()
data.shapes:addSphere(4)
data.idle_animation = 'idle'
data.attack_animation = 'blast'
pk:set(data)
Ссылка на комментарий

Здравствуйте! Помогите с созданием диалога.

Не могу понять из-за чего происходит вылет...

Expression : error handler is invoked!

Function : invalid_parameter_handler

File : E:\stalker\sources\trunk\xrCore\xrDebugNew.cpp

Line : 804

Description :

 

 

Я создал новый диалог, прописал его Сидоровичу: <start_dialog>mod_glhistory_1_start</start_dialog>

<?xml version="1.0" encoding="windows-1251" ?><game_dialogs>    <dialog id="mod_glhistory_1_start">        <phrase_list>            <phrase id="0">                <text>Очухался, пришёл в себя?</text>		<next>1</next>            </phrase>            <phrase id="1">                <text>Вроде того. Сколько я тебе должен?</text>		<next>2</next>            </phrase>            <phrase id="2">                <text>А что с тебя можно взять... Да к тому же, ты ни черта не помнишь: ни кто ты, ни где ты... А вокруг, мой мальчик, Зона!</text>		<next>3</next>            </phrase>            <phrase id="3">                <text>Я не мальчик и не твой!</text>		<next>4</next>            </phrase>            <phrase id="4">                <text>Еще как мой – пока не отработаешь: и жратву и лекарства, да и вооружить тебя надо... хотя бы для начала...</text>		<next>5</next>            </phrase>            <phrase id="5">                <text>Какое оружие ты мне дашь?</text>		<next>6</next>            </phrase>            <phrase id="6">                <text>Ну парень, на первых порах обойдешься и ножом. Ну, и плащик дам, от радиации он не спасает, а от кислотных штучек и крысиных зубов будет полезен... А насчет мальчика – Зона рассудит! Хотя, если ты до сих пор еще жив... А кличка Стрелок, тебе ни о чем не говорит?</text>		<next>7</next>            </phrase>            <phrase id="7">                <text>Нет</text>		<next>8</next>            </phrase>            <phrase id="8">                <text>Неужели тебя не интересует что творится вокруг...</text>		<next>9</next>            </phrase>            <phrase id="9">                <text>Нет</text>		<next>10</next>            </phrase>            <phrase id="10">                <text>Ну и ладно... Для начала сгоняй-ка к блок посту... Отнесешь запаянный металлический ящичек, оставишь под колючей проволокой, место отмечено на карте, а оттуда заберешь другой... Солдатикам глаза не мозоль, они обязательно попробуют твою шкуру на крепость... Ну, что согласен?</text>		<next>11</next>            </phrase>            <phrase id="11">                <text>А у меня есть выбор?</text>		<next>12</next>            </phrase>            <phrase id="12">                <text>Пожалуй, что нет... </text>		<next>13</next>            </phrase>            <phrase id="13">                <text>Тогда давай свой ящик, и кончим эти терапевтические беседы...</text>		<next>14</next>            </phrase>            <phrase id="14">                <text>У меня остался лишь один вопрос...</text>		<next>15</next>            </phrase>            <phrase id="15">                <text>Ну?!</text>		<next>16</next>            </phrase>            <phrase id="16">                <text>Как мне тебя называть, а то сталкеров много...</text>		<next>17</next>            </phrase>            <phrase id="17">                <text>Ну, раз ты мне кроме ножа ничего лучшего пока дать не можешь - зови меня Мессер.</text>		<action>dialogs.break_dialog</action>            </phrase>        </phrase_list>    </dialog></game_dialogs> 

 

 

Вылет происходит после того, как я нажимаю в диалоге фразу "Какое оружие ты мне дашь?" (до этого диалог работает нормально).

 

@Kirgudu, спасибо большое, помогло)

 

@alex5773, это я читал. Только вот из предложенного "лечения" прийти к выводу о длине строки по фразе о "некорректно прописанной строке" было как-то затруднительно...

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

STRELOK-stalker.gif

 

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

@STRELOK-stalker, возможно, это из-за длины строки. Если это так, аналогичная ошибка будет на фразе 10.

Попробуй длинные фразы (>256 символов) не прямо в диалоге прописывать, а перенести их в xml с текстами.

  • Нравится 1
Ссылка на комментарий

Как сразу после загрузки сохранки вызвать UI меню,( пожалуйста помогите с кодом.)

и, собственно, как создать это UI на подобие инвентаря? (Дайте ссылку на обучающую статью Про UI )

За помощь благодарен буду!

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

вопрос: как вращать аномалии в пространстве? Допустим телепорт перевернуть на бок или верх тормашками. 

 

использую m_netpk.scrypt от Artos

 

обязательно нужно, чтобы шейп был Box для этого?

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

... А наше дело маленькое - с ружьём да по болотам. (с)

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

, при чем тут вообще шейп? Какая разница какой стороной у тебя телепорт то повернут? Он у тебя и так будет прекрасно перемещать. Подозреваю, что ты о партикле, менять надо direction партикла, он в стейт части. 

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

 

 

Подозреваю, что ты о партикле, менять надо direction партикла, он в стейт части.

Именно, я так жарки горизонтальные делал. Меняешь координату по оси X или Y и будет тебе счастье.

Сталкер - наше всё!

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

почему то не выходит повернуть "Ржавые волосы", вот им как будто бы пофигу что бы я не писал.

 

вот что пишу:

 

 



local pk = get_netpk(se_obj,1)
local data = pk:get()

data.shapes:addSphere(6)
data.idle_animation = 'idle'
data.attack_animation = 'blast'

pk:set(data)

local pk = get_netpk(se_obj,0)
local data = pk:get()

data.direction = vector():set(0, 3.14, 0)        -- в радианах 180 градусов - "вверх тормашками"

pk:set(data)

end

 

 

это особенность такая у неё или что то пишу не так?

... А наше дело маленькое - с ружьём да по болотам. (с)

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

Объясните, на кой ПЫСам в квестовые задания приоритеты расставлять было ?

К примеру для двух первых заданий на ТД, у одного прописано prio="420" у следующего prio="415". И откуда цифры такие, для ТД в файле заданий их всего не более десятка, а там 395, 403 и т.п.

Может есть какой-то смысл, мне не известный ?

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

, ты вертишь ее по игреку, вверх тормашками она у тебя так никогда не встанет, покури туторы про спавн объектов, там узнаешь что такое дирекция, оси кординат.

 

@AndreySol, я ответа на вопрос не знаю, поэтому подключусь к тебе, знатоки придут может просветлят нас с тобой. Пока могу тебе только посоветовать сделать несколько квестов с приоритетами в xml, и посмотреть как они будут выводится, сразу все или не сразу (так же смотри как строки выводятся). попробуй указывать эти теги в несторилайновых квестах, предварительно из них убрав приоритеты которые в секции у них написаны. Просто у меня подозрение, что это рудимент не работающий, иначе стали бы разрабы городить приоритеты в обработчике заданий? В 1935 их нету допустим, помнится я где-то читал, что это вообще приоритеты для вывода строки в диалоге, типа чем выше приоритет, тем выше строка поднимается, проверь тоже, в целом в этом есть рациональное зерно. Т.е. пока мои выводы таковы, приоритеты в секциях влияют на доступность, тем самым позволяя формировать цепочки квестов, а приоритеты в тасках влияют на вывод строки в древе диалогов, т.е. чем выше приоритет - тем выше строка.

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

Про приоритеты заданий все очевидно из task_manager.script

Ну вот для наглядности переписанный:

 

function CRandomTask:task_avail( actor, npc, p1, p2, p3, calc )    -- доступен ли текущий таск для выдачи    if calc == "reset" then self.current_parent_type_prior = {}; return end    local p = self.current_parent_type_prior    if not p then p = {}; self.current_parent_type_prior = p end    local id = self.task_id_by_init_phrase_id[p3]    local t = self.task_info[id]    if calc == true then    -- нужно проверять check_task_props        if t.enabled and self:check_task_props( id ) and not t.init_condition then            if t.prior < ( p[t.complex_type] or 65535 ) then                p[t.complex_type] = t.prior            end            return true        end        return false    end    if ( p[t.complex_type] or 65535 ) < t.prior then return false end    return t.enabled and t.enabled_props and t.init_condition == nilend

 

 

Мы говорим о ключе тега в xml файле таска,

Э-эээ... Тогда я совсем не понял, о каком именно ключе, и при чем здесь приоритет.

 

А что касается добавления новых заданий через tm - хранится очень много ненужных данных, и выполняется очень много ненужных операций. При никакой функциональности.

Плюс удобство перелопачивания десятка файлов - крайне сомнительно.

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

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

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

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

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

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

Войти

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

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

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