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

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

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

3 часа назад, mole venomous сказал:

Однако, у меня одного исчезают артефакты, рождённые "электрой"? 

... И происходит это скорее всего в светлое время суток?

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

GSC-ное своеобразное решение: режим "день/ночь" именно для этих артефактов. Попробуй в se_artefact.script привести функцию к виду:


function se_artefact:__init (section) super (section)
--    if section == "af_electra_flash" or 
--       section == "af_electra_moonlight" or
--       section == "af_electra_sparkler" then
--       self.is_day_night = true
--    else
       self.is_day_night = false
--    end 
end

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

Если используется стандартный ТЧ all.spawn - в art_mgr.script можно посмотреть и удаление накиданных по локациях ПЫС-ами этих артефактов по аналогии с другими объектами

@Norazord, а попробовать "правильный путь" с game.translate_string("...") не возникало желания?

  • Спасибо 1
  • Согласен 1
Ссылка на комментарий

С каких цифирь отношений в чистом ТЧ группировка будет врагами/нейтралами/друзьями?

 

16 часов назад, Svobodovec_Arbuz сказал:

в какой программе можно создать например зомби-эколога?

В СДК прикрутить тушку эколога к костям зомбированного?

Ссылка на комментарий
1 час назад, dPlayer сказал:

врагами/нейтралами/друзьями?

−5000 — полная неприязнь и вражда;

0 — нейтралитет;

+5000 — дружеские отношения.

Свобода - лучшие сталкеры в зоне!

Ссылка на комментарий
21 час назад, Ivan____ сказал:

Попробуй кодировку в ANSI, мне так помогало

Не помогает,_мб думаю в скрипте что то не так чтоль?_Кодировку через notepad ++ несколько раз менял,_толку нету.

 

Все, решил свою проблему.

 

Добавлено  Опричник,

Следите за пунктуацией - https://pixelplus.ru/studio/stat/pravila-postanovki-probela-ryadom-so-znakami-prepinaniya/

Устное предупреждение.

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

Выбор НПС фразы тоже ведь подчиняется прекондишену/has_info и т.п? В смысле если у НПС есть несколько фраз на выбор.

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

@naxac, подскажи, почему не выходит:

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

function dolg_rel_neu (actor, npc)
    if relation_registry.community_goodwill ("dolg", actor:id ()) > -500 and relation_registry.community_goodwill ("dolg", actor:id ()) < 500 then
return true
else
return false
end
end

function dolg_rel_good (actor, npc)
    if relation_registry.community_goodwill ("dolg", actor:id ()) > 501 then
return true
else
return false
end
end

Но нпс упорно выбирает 1 вариант, даже если скриптом задать отношение +5000 (долг зеленый, в диалоге отмечено что друг и т.п). Если закомментить вариант с нейтралами то вылет из-за отсутствия фразы, даже если долг зеленые. В скриптах оригинала подобная функция, кстати, написана без else, я пробовал так же, нифига.

ЗЫ, диалог рабочий, без прекондишенов нпс исправно рандомом выбирает одно из 2х значений.

Изменено пользователем dPlayer
Ссылка на комментарий
2 часа назад, dPlayer сказал:

if relation_registry.community_goodwill ("dolg", actor:id ()) > -500 and relation_registry.community_goodwill ("dolg", actor:id ()) < 500 then

 

попробуй так:

if ((relation_registry.community_goodwill ("dolg", actor:id ()) > -500) and (relation_registry.community_goodwill ("dolg", actor:id ()) < 500)) then

  • Спасибо 1

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

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

@dPlayer, может, у тебя актер и нпс местами перепутаны, попробуй так:

function dolg_rel_neu (actor, npc)

    local rel = relation_registry.community_goodwill ("dolg", 0)

    return rel > -500 and rel =< 500

end

function dolg_rel_good (actor, npc)

    return relation_registry.community_goodwill ("dolg", 0) > 500

end

  • Спасибо 1
  • Нравится 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

Вопрос чисто ради любопытсва - все звуковые файлы игры (касаемые музыки в глав.меню, амбиента на уровнях и звуков в инрто-роликах) имеют две версии ( _r  и _l). Так вот - зачем это разделение и для чего оно вообще?

Лучше сделать мод с 0, чем пытаться залатать багованный.

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

@dPlayer, actor:id () -> db.actor:id() или 0. Если в диалоге не перепутано, то взлететь должно. И пределы отношений я бы уточнил на всякий случай: -400/500 в оригинале, если не ошибаюсь.

if relation_registry.community_goodwill ("dolg", db.actor:id ()) > -400 and relation_registry.community_goodwill ("dolg", db.actor:id ()) < 500 then return true end return false

if relation_registry.community_goodwill ("dolg", actor:id ()) >= 500 then return true end return false

 

 

  • Спасибо 1
Ссылка на комментарий

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

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

 

m


<!-----разговор с петренко по поводу цены----->
    <dialog id="bar_ham_petrenko">
		<has_info>bar_ham_start</has_info>
        <dont_has_info>bar_ham_petrenko</dont_has_info>
        <phrase_list>
            <phrase id="0">
                <text>bar_ham_petrenko_0</text>
				<next>1</next>
            </phrase>
			<phrase id="1">
                <text>bar_ham_petrenko_1</text>
				<next>2</next>
            </phrase>
			<phrase id="2">
                <text>bar_ham_petrenko_2</text>
				<next>3</next>
            </phrase>
			<phrase id="3">
                <text>bar_ham_petrenko_3</text>
				<next>4</next>
            </phrase>
			<phrase id="4">
                <text>bar_ham_petrenko_4</text>
				<next>bad_0</next> <!-- враг -->
				<next>neu_0</next> <!-- нейтрал -->
				<next>good_0</next> <!-- друг -->
            </phrase>
			<!-- плохая репутация -->
			<phrase id="bad_0">
              	<precondition>quest_function.dolg_rel_bad</precondition>
                <text>bar_ham_petrenko_bad_0</text>
				<next>bad_1</next>
            </phrase>
			<phrase id="bad_1">
                <text>bar_ham_petrenko_bad_1</text>
				<action>dialogs.break_dialog</action>
            </phrase>
			
			<!-- нейтральная репутация -->
			<phrase id="neu_0">
              	<precondition>quest_function.dolg_rel_neu</precondition>
                <text>bar_ham_petrenko_neu_0</text>
				<next>neu_1</next>
            </phrase>
			<phrase id="neu_1">
                <text>bar_ham_petrenko_neu_1</text>
				<next>neu_2</next>
            </phrase>
			<phrase id="neu_2">
                <text>bar_ham_petrenko_neu_2</text>
				<next>neu_21</next>
				<next>neu_22</next>
            </phrase>
			<phrase id="neu_21">
                <text>bar_ham_petrenko_neu_21</text>
				<next>neu_211</next>
            </phrase>
			<phrase id="neu_211">
                <text>bar_ham_petrenko_neu_211</text>
            </phrase>
			<phrase id="neu_22">
                <text>bar_ham_petrenko_neu_22</text> <!-- нет денег в наличии, прощаемся --> 
				<action>dialogs.break_dialog</action>
            </phrase>
			
			<!-- хорошая репутация -->
			<phrase id="good_0">
              	<precondition>quest_function.dolg_rel_good</precondition>
                <text>bar_ham_petrenko_good_0</text>
				<next>good_1</next>
				<next>good_2</next>
            </phrase>
			<phrase id="good_1">
                <text>bar_ham_petrenko_neu_22</text>
				<next>neu_211</next>
            </phrase>
			<phrase id="good_2">
                <text>bar_ham_petrenko_good_2</text>
				<action>dialogs.break_dialog</action>
            </phrase>
        </phrase_list>
    </dialog>

m

 

 

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

@dPlayer, а где прекондишены-то?

 

Есть функция для вывода в лог?

Модифицируй свои функции типа так:

function dolg_rel_good (actor, npc)
  local dolg_goodwill = relation_registry.community_goodwill ("dolg", 0)
  get_console():execute("load ~~~dolg_goodwill="..dolg_goodwill.."_actor_name="..actor:name()) -- или вызов твоей функции вывода в лог
  if dolg_goodwill > 501 then
    return true
  else
    return false
  end
end

При вызове функции в лог выведется отношение долга к тебе, ну и на всякий случай имя actor`а(мне кажется, действительно перепутаны actor и npc). Будет видно, почему срабатывает тот или иной прекондишен.

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

@abramcumner@abramcumner, неа,вылет с твоей функцией, даже с закоменченой строкой вывода в лог.

1 час назад, abramcumner сказал:

перепутаны actor и npc

Да не должно, с текстом и смысл совпадает 1к1

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

Слава Зоне, господин @abramcumner решил вопрос. Дело оказалось в том, что раз условие выдаётся для НПС, то в аргументах должно быть (npc, actor).

Ссылка на комментарий
20 минут назад, dPlayer сказал:

Дело оказалось в том, что раз условие выдаётся для НПС, то в аргументах должно быть (npc, actor).

 

@naxac это давно уже написал :)

https://www.amk-team.ru/forum/topic/5525-soc-kovyryaemsya-v-faylah/?do=findComment&amp;comment=1248667

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

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