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

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


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

Я прямо из игры снимаю. Обе функции прописаны в одном скрипте _debag

Гы..

https://yadi.sk/d/k7oZm-_ovtzaG

Гы .2

Скрипт древний. Но как сказано выше и так пойдёт.

Гы .3

Там вообще дебаг из фотографа.  Спавн предметов и пара других фишек. Ну не такой крутяк как в СЗ, но с пивом потянет.

Изменено пользователем _Val_
  • Спасибо 1
Ссылка на комментарий

иорданец,

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

Несмотря на число моих сообщений, подвоха тут нет :)

 

.....

_Val_

Да ладно прибедняться-то : 7%
Расскажи кому другому. Может поверят :)

 

BFG

Слава Богу что не пятница 13-е. А то не удержался бы.
Начал бы вакханалить и заработал бы по заслугам. А так обошлось :)
Мне интересно другое. Как это я умудрился
Регистрация: 05.06.2009
И всего 666 ?
Изменено пользователем Nazgool
Добавлено BFG,

Да уж... знаковое число. И почему сегодня не пятница 13-ое ?

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

Есть гулаг, на 5 рыл. Сейчас ситуация такая - если убиваю любого из этого гулага, то остальные на это не реагируют(т.е. не начинают меня стрелять). Никаких комбат_игноров не прописано, логика - обычные волкеры да кампы. И шо я такого напортачил, что они так себя ведут? В СДК для всех 5-ти проставлены одинаковые команды, сквады, группы. То-же самое сделано в скрипте, в загрузке работ. Что не так?

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

Хех, касательно координат:

 

local pause_check = 100

-- 
function time_check()
	if pause_check >= 1 then pause_check = pause_check - 1
	elseif db.actor and device():is_paused() then	-- actor добавляется из bind_stalker
		if pause_check == 0 then
			pause_check = -1
			if dc_info then	-- вот сюда вещается вывод всякой полезной информации по паузе
				dc_info.info()
			end
			log( "log", "paused !" )
			return false
		end
	else pause_check = 100
	end
	global_time_ms = time_global()
	game_time_time = game.get_game_time()	-- полное игровое время
	game_time_sec = game_time_time:diffSec( game_time_base )	-- секунд от загрузки
	local _, _, _, _, _, _, ms = game_time_time:get()		-- y, m, d, hh, mm, ss, ms
	game_time_ms = game_time_sec * 1000 + ms			-- ms от загрузки
	return false
end


function init_time_check()	-- инициализация при загрузке смартов, до этого game.get_game_time() нет.
	game_time_time = game.get_game_time()
	game_time_base = game_time_time
	game_time_sec = game_time_time:diffSec( game_time_base )
	_, _, _, _, _, _, game_time_ms = game_time_time:get()
	level.add_call( time_check, dummy_action )
end

 

между делом так...

 

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

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

Мда, я этого не знал. Интересно конечно.

Сколько же разных фишек и костылей придумано за всё время.

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

Понятное дело, что для нас простяков это манна небесная. Только вот если хочется чего-то большего, то прийдется всё-таки изучать СРР.

 

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

Извиняюсь за то, что не в той теме, но так уж к слову получилось.

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

@иорданец, ну если тебя устроит отображение координат на экране, то держи скрипт от bardak'а. Классика модостроя-с Закинуть в папку с игрой.

Самый некомпетентный на форуме.

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

2 Nazgool: Очень сильно хочу порт под gcc. Чтоб make, и собралось.

 

Студию не воспринимаю от слова совсем.

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

Чем дальше в лес...

Есть такой диалог(тут упрощенный скелет):

<phrase id="0"><!--- эту фразу НПС выдает -->
     <text>фраза_0</text>
     <next>1</next>
     <next>2</next>
     <next>3</next>
</phrase>
<phrase id="1">
     <has_info>инфо-порция1</has_info>
     <text>фраза_1</text>
     <next>11</next>
</phrase>
..................


<phrase id="2">
     <dont_has_info>инфо-порция1</dont_has_info>
     <text>фраза_2</text>
     <next>21</next>
</phrase>
..................


<phrase id="3">
     <text>фраза_3</text>
     <action>dialogs.break_dialog</action>
</phrase>

Значится, непись говорит свою фразу, а затем у нас выбор - или одна из фраз №1 или №2 + однозначно фраза№3. Ан нет, оказывается, что такой расклад не прокатывает - фразы№3 не будет в диалоге. Поковырявшись, выяснил, что для того, чтоб появилась и фраза№3, надо и в ней вставить условие. Т.е. в таком виде:

<phrase id="3">
     <has_info>инфо-порция2</has_info>
     <text>фраза_3</text>
     <action>dialogs.break_dialog</action>
</phrase>

при выданной инфо-порции "инфо-порция2" фраза№3 отображается. Вопрос: или я чего-то недогоняю в структуре построения диалогов, или так специально сделано? Если специально - то зачем? Ведь не логично...

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

@UnLoaded, все у тебя, конкретно здесь, верно, за примерами обратись к диалогу с пулей, или с кругловым, или с шурупом, да масса примеров. Не надо вставлять никакой has_info в данном случая, любая проверка на фразу (тем более лишняя) приближает незадачливого модмейкера к No available phrase to say(с).

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

 

 

все у тебя, конкретно здесь, верно

Я и сам вижу, что вроде все верно - но тест в игре дает обратный результат! С тем, что видишь в игре - не поспоришь...

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

@UnLoaded, Всё верно. Сам с этим сталкивался когда ветвил диалоги. Условия надо ставить в каждой ветке.

Обычно использовал <has_info>...

 

Может есть конечно способ проще, но он работает, а мне более и не надо.

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

"Кругом зомби.....у меня кончаются патроны...."

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

@BFG, что значит в каждой ветке? У тебя из каждой фразы ветвится несколько вариантов, доступность каждого определяется набором условий, если условия какого-либо варианта выполняются, то он появляется в списке доступных фраз, если ни одно условие не выполнено для хоть какой-нибудь фразы, то происходит ошибка о которой я сказал выше.

 

Вот вам пример из оригинала:

 

 

    <dialog id="mil_screw_dialog">
        <phrase_list>
            <phrase id="0">
                <text />
                <next>1</next>
                <next>2</next>
                <next>3</next>
            </phrase>
            <phrase id="1000">
                <text>mil_screw_dialog_1000</text>
                <next>1001</next>
            </phrase>
            <phrase id="1001">
                <text>mil_screw_dialog_1001</text>
                <next>1002</next>
            </phrase>
            <phrase id="1002">
                <text>mil_screw_dialog_1002</text>
                <next>1003</next>
            </phrase>
            <phrase id="1003">
                <text>mil_screw_dialog_1003</text>
                <next>1004</next>
            </phrase>
            <phrase id="1004">
                <text>mil_screw_dialog_1004</text>
                <next>1005</next>
            </phrase>
            <phrase id="1005">
                <text>mil_screw_dialog_1005</text>
                <next>1006</next>
            </phrase>
            <phrase id="1006">
                <text>mil_screw_dialog_1006</text>
                <next>1100</next>
                <next>1200</next>
            </phrase>
            <phrase id="2">
                <text />
                <has_info>mil_screw_talk</has_info>
                <next>2000</next>
            </phrase>
            <phrase id="2000">
                <text>mil_screw_dialog_2000</text>
            </phrase>
            <phrase id="3">
                <text />
                <dont_has_info>mil_screw_talk</dont_has_info>
                <has_info>mil_screw_talk_short</has_info>
                <next>4</next>
            </phrase>
            <phrase id="4">
                <text>mil_screw_dialog_4</text>
                <next>1100</next>
                <next>1200</next>
            </phrase>
            <phrase id="1100">
                <text>mil_screw_dialog_1100</text>
                <give_info>mil_screw_talk_short</give_info>
                <next>1101</next>
            </phrase>
            <phrase id="1101">
                <text>mil_screw_dialog_1101</text>
                <next>1102</next>
            </phrase>
            <phrase id="1102">
                <text>mil_screw_dialog_1102</text>
                <action>m_talks.break_dialog</action>
            </phrase>
            <phrase id="1200">
                <text>mil_screw_dialog_1200</text>
                <precondition>m_talks.have_a_vodka</precondition>
                <give_info>mil_screw_talk</give_info>
                <give_info>mil_screw_talk_short</give_info>
                <next>1201</next>
            </phrase>
            <phrase id="1201">
                <text>mil_screw_dialog_1201</text>
                <action>m_talks.transfer_scope</action>
                <next>1202</next>
            </phrase>
            <phrase id="1202">
                <text>mil_screw_dialog_1202</text>
                <action>m_talks.break_dialog</action>
            </phrase>
            <phrase id="1">
                <text />
                <dont_has_info>mil_screw_talk</dont_has_info>
                <dont_has_info>mil_screw_talk_short</dont_has_info>
                <next>1000</next>
            </phrase>
        </phrase_list>
    </dialog>

 

 

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

BFG, с чего бы это? Сам уже сделал не один диалог, и никогда такого не видел все ветки появляются сразу и без условий и проверок.

UnLoaded, попробуй сделать без проверок, просто чистый диалог.

Добавлено BFG,

С того, что он хочет сделать "или-или-или", а не "и-и-и".

Самый некомпетентный на форуме.

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

С того, что он хочет сделать "или-или-или", а не "и-и-и".

Еще раз, что это значит? Я не понимаю. У тебя и в "или-или-или" и в "и-и-и" четыре вершины и три ребра, все зависит от того как ты выстраиваешь этот граф (приводишь его к одному из видов), @dPlayer сказал все совершенно верно. Не следует путать ошибочную ориентацию графа с какими-то мифическими условиями работы прекондишнов. Диалог в сталкере, если верно помню графы, всегда выступает ориентированным графом, соответственно никаких двусмысленностей там не может быть в принципе. Либо я не понимаю о чем вы тут говорите.

 

В конфиге script_sound.ltx, для звуковых тем суффиксы _rnd или _seq что означают ?

Это схема озвучки, смотри ее в sound_theme.script и xr_sound.script, там все держится на нескольких таблицах, рандом и секвенсор это хвосты, по которым определяются (и записываются в таблицу) настройки звука, есть еще _single хвост.

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

_rnd или _seq

В настоящее время - все, что угодно.

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

И одноразово, и циклично.

 

Примерно как-то вот так (переписано для более вменяемого формата конфига):

if tt.rnd then
	t2 = tt.rnd
	t3 = t2[sid] or t2[pname] or t2[comm] or t2.stalker
	if t3 then
		if t3[1] == 1 then tids.rnd_max = npc:add_sound( t3[2], nstl, snd_type.talk, 2, 1, v.rnd_id )
...

if tt.seq then
	t2 = tt.seq
	t3 = t2[sid] or t2[pname] or t2[comm] or t2.stalker
	if t3 then
		tids.into_cycled = true
		if t3[1] == 1 then tids.into_max = npc:add_sound( t3[2], nstl, snd_type.talk, 2, 1, v.into_id )


касательно условий в диалогах - да, судя по коду, создается единая таблица, из которой потом выбирается одна из секций. То есть, хоть какая-то проверка быть должна. Изменено пользователем Dennis_Chikin
Ссылка на комментарий
Либо я не понимаю о чем вы тут говорите.

Ну чего там не понятного? Смысл диалога, упрощенный скелет которого я привел:

 Фраза№1 - "Пойдешь на лево"

 Фраза№2 - "Пойдешь на право"

 Фраза№3 - "Отвали, никуда я не пойду".

Т.е. первые две фразы - взаимоисключающие друг-друга по условию(<has_info>инфо-порция1</has_info> и <dont_has_info>инфо-порция1</dont_has_info>), но одна из них будет присутствовать, а третья должна присутствовать всегда(без каких-либо условий), в ней, прерывание диалога стоит. Что тут не понятного? И логично было-бы, что фраза, не имеющая условий, должна отображаться всегда. Или у меня логика не та, что у ПЫСов?

 

В настоящее время - все, что угодно.

Т.е. движок\или скрипт какой-там назначен не обрабатывают этих окончаний?

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

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

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

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

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

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

Войти

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

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

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