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

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


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

21 час назад, Ivan____ сказал:

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

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

 

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

 

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

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

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

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

@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, чем пытаться залатать багованный.

DarkSnowder.gif

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

@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

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

@F.Constantine, хосподе! Ну не та тема, вам сюда:https://www.amk-team.ru/forum/topic/6138-cs-kovyryaemsya-v-faylah/?page=56:russian_ru:

 

Вот же блин! В какой ковырялке бОльшая активность, туда и пишут не думая о том - по теме ли, не по теме:punish:

Изменено пользователем UriZzz
  • Спасибо 1

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

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

Назрел такой вопрос: можно ли осуществлять смену картинки в главном меню, опираясь на время суток в последнем сейве игры без редактирования движка?

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

@fastle, в крайнем огсе, если память не изменяет, идёт проверка на текущее время в игре и соответствующую картинку подгружает дневную или ночную. Реализовано там в ui_main_menu.script

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

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

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

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

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

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

Войти

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

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

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