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

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


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

23 часа назад, DarkSnowder сказал:

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

Движок сделан для разработчиков в первую очередь, если он не понимает о чем ему говорит ошибка, то стоит задуматься - разработчик ли это?

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

@DarkSnowder у какой-то аномалии указал постпроцесс, у которого не прописаны ppe_file или pp_eff_name.

 

Попробуй запустить отладочный движок. Может он выдаст более подробную информацию.

 

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

@I am Dead ну не все же спецы во всех направлениях. Я больше по СДК - локации, компиляции, расстановка декора - это мое. Скрипты - тугая вещь для меня, но когда работаешь в одиночку, приходиться задавать глупые вопросы на поприщах, где ты не шаришь.

  • Согласен 1

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

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

Народ, кто может подсказать где я тут накосячил

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

   <game_task id="hand_zombie">
        <title>hand_zombie</title>
        <objective>
            <text>hand_zombie_start</text>
            <icon>ui_iconsTotal_mutant</icon>
            <infoportion_complete>chern_joe_hand_have</infoportion_complete>
            <article>tex_take_zombie</article>
        </objective>
        <objective>
            <text>hand_zombie_start</text>
            <function_complete>dialog_drda.chern_joe_hand_gave</function_complete>
            <infoportion_set_complete>chern_joe_hand_gave</infoportion_set_complete>
        </objective>
        <objective>
            <text>hand_zombie_done</text>
            <map_location_type hint="Айвар">blue_location</map_location_type>
            <object_story_id>chern_barman</object_story_id>
            <infoportion_complete>chern_joe_hand_have</infoportion_complete>
        </objective>
    </game_task>

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

--' проверим наличие 10 рук зомби для Айварыча
function chern_joe_hand_have() 
        return sak.have_item_namber("mutant_part_zombi_hand",10) ~= false
end

--' отдадим 10 рук зомби Айвару дабы получить зхабар и призвание
function chern_joe_hand_gave(first_speaker, second_speaker)
        dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "mutant_part_zombi_hand", 10)
        dialogs.relocate_money(second_speaker, 2000, "in")
        dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "wpn_ak74")
        second_speaker:set_relation(game_object.friend, first_speaker)
        db.actor:change_character_reputation(db.actor:character_reputation() + 10)
end

в итоге после диалога на взятие квеста вылетает вот с этим

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

[11.06.24 12:55:13.749] [123268] ! Unknown command: :*INFO*: npc='single_player' id='chern_joe_hand_start'
[11.06.24 12:55:13.772] [123268] *********************************************************************************
[11.06.24 12:55:13.772] [123268] [print_output([CScriptEngine::lua_pcall_failed])] SCRIPT RUNTIME ERROR:
d:\s.t.a.l.k.e.r\gamedata\scripts\dialogs.script:326: attempt to index local 'npc' (a number value)
stack traceback:
    [C]: in function '__index'
    d:\s.t.a.l.k.e.r\gamedata\scripts\dialogs.script:326: in function 'who_is_npc'
    d:\s.t.a.l.k.e.r\gamedata\scripts\dialogs.script:310: in function 'relocate_item_section_from_actor'
    d:\s.t.a.l.k.e.r\gamedata\scripts\dialog_drda.script:8: in function <d:\s.t.a.l.k.e.r\gamedata\scripts\dialog_drda.script:7>
[11.06.24 12:55:13.772] [123268] *********************************************************************************
[11.06.24 12:55:13.772] [123268] 
FATAL ERROR

[error]Expression    : FATAL ERROR
[error]Function      : CScriptEngine::lua_pcall_failed
[error]File          : D:\a\OGSR-Engine\OGSR-Engine\ogsr_engine\COMMON_AI\script_engine.cpp
[error]Line          : 60
[error]Description   : [CScriptEngine::lua_pcall_failed]: d:\s.t.a.l.k.e.r\gamedata\scripts\dialogs.script:326: attempt to index local 'npc' (a number value)


[11.06.24 12:55:13.772] [123268] ***************************[ScriptCrashHandler]**********************************
[11.06.24 12:55:13.772] [123268] stack traceback:
    [C]: in function '__index'
    d:\s.t.a.l.k.e.r\gamedata\scripts\dialogs.script:326: in function 'who_is_npc'
    d:\s.t.a.l.k.e.r\gamedata\scripts\dialogs.script:310: in function 'relocate_item_section_from_actor'
    d:\s.t.a.l.k.e.r\gamedata\scripts\dialog_drda.script:8: in function <d:\s.t.a.l.k.e.r\gamedata\scripts\dialog_drda.script:7>
[11.06.24 12:55:13.772] [123268]     Locals: 
[11.06.24 12:55:13.772] [123268]      string (*temporary) : d:\s.t.a.l.k.e.r\gamedata\scripts\dialogs.script:326: attempt to index local 'npc' (a number value)
[11.06.24 12:55:13.772] [123268]     End
[11.06.24 12:55:13.772] [123268]     Locals: 
[11.06.24 12:55:13.772] [123268]      string first_speaker : hand_zombie
[11.06.24 12:55:13.772] [123268]      number second_speaker : 1.000000
[11.06.24 12:55:13.772] [123268]      number npc : 1.000000
[11.06.24 12:55:13.772] [123268]      number (*temporary) : 0.000000
[11.06.24 12:55:13.772] [123268]      number (*temporary) : 0.000000
[11.06.24 12:55:13.772] [123268]      userdata (*temporary) : (class CScriptGameObject): 00000556F87C5CE0
[11.06.24 12:55:13.772] [123268]      number (*temporary) : 1.000000
[11.06.24 12:55:13.772] [123268]      string (*temporary) : attempt to index local 'npc' (a number value)
[11.06.24 12:55:13.772] [123268]     End
[11.06.24 12:55:13.772] [123268]     Locals: 
[11.06.24 12:55:13.772] [123268]      string first_speaker : hand_zombie
[11.06.24 12:55:13.772] [123268]      number second_speaker : 1.000000
[11.06.24 12:55:13.772] [123268]      string section : mutant_part_zombi_hand
[11.06.24 12:55:13.772] [123268]     End
[11.06.24 12:55:13.772] [123268]     Locals: 
[11.06.24 12:55:13.772] [123268]      string first_speaker : hand_zombie
[11.06.24 12:55:13.772] [123268]      number second_speaker : 1.000000
[11.06.24 12:55:13.772] [123268]     End
[11.06.24 12:55:13.772] [123268] *********************************************************************************
[11.06.24 12:55:13.772] [123268] ********************************************************************************
[11.06.24 12:55:13.772] [123268] !![LogStackTrace] Thread: [X-RAY Primary thread]
[11.06.24 12:55:14.018] [123268] !!stack trace:

ссылается на function chern_joe_hand_gave из  скрипт-файла dialog_drda (строка как раз 7)

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

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

<info_portion id="chern_joe_hand_start">
        <task>hand_zombie</task>
    </info_portion>
    <info_portion id="chern_joe_hand_gave"></info_portion>
    <info_portion id="chern_joe_hand_have"></info_portion>

 

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

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

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

@DarkSnowder не правильно вызываешь dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "mutant_part_zombi_hand", 10). У нее похоже другой порядок аргументов.

 

Найди эту функцию в dialogs.script и проверь какие аргументы ей надо передавать.

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

Функция dialogs.relocate_item_section_from_actor, куда транслируются параметры из функции dialog_drda.chern_joe_hand_gave, требует на входе передачи первого и второго собеседников. Но указываемая в свойстве квеста <function_complete> функция вызывается совсем не с этими параметрами (ведь там нет диалога), а с такими: (task, objective), где task - идентификатор квеста, а objective - число, предположительно показывающее статус задания. Вот и выходит, что в переменную second_speaker вместо второго собеседника попадает число 1,0 (см. лог), а в переменную first_speaker - id квеста вместо ожидаемого первого собеседника.

Да, и в ванильном ТЧ функций relocate_item_section_from_actor, relocate_item_section_to_actor и who_is_npc нет, ты их брал откуда-то ещё, например из ЧН (где они как раз присутствуют).

Изменено пользователем Kirgudu
  • Нравится 1
  • Полезно 1
Ссылка на комментарий

@Kirgudu @abramcumner  c ЧН да  - функцию добавлял, видимо она не подходит для диалога особо.

К сожалению в ванильном ТЧ нет ни одной функции передачи одних и тех-же предметов - везде предмет в единственном числе (решил взять функции что в Солянке 2010 использовались за авторством АМК и Сяка, но даже они вылет выдают, даже когда всё нужное переносишь). Как ж тут выкрутиться то?

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

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

Эти функции не подходят для использования в качестве завершающих в квесте, а вот как раз для диалога они прекрасно подходят, поскольку именно в диалоге движок формирует и передаёт в вызываемую функцию параметры first_speaker и second_speaker.

Соответственно, вызывать функцию chern_joe_hand_gave необходимо из диалога при нужном ответе, указав ссылку на неё в элементе <action>. Возможно, инфопорцию chern_joe_hand_gave тоже следует выдавать из диалога.

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

народ, вот кто может сказать в чём может быть связан баг с появлением огромного кол-ва патронов, даже если у НПС нету оружия, которое эти патроны использует

вот пример - 560 патронов, хотя у НПС даже оружия нужного не было

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

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[ammo_7.62х25_fmj]:ammo_base
GroupControlSection        = spawn_group
discovery_dependency     = 
$spawn            = "weapons\ammo\ammo_7.62х25_fmj" ; option for Level Editor
class            = AMMO
cform                   = skeleton
visual                  = equipments\trade\item_ammo.ogf
description    = enc_weapons1_ammo_ammo-7.62x25-p
$prefetch                 = 64

cost                    = 260
box_size        = 20
inv_name                = ammo-7.62x39-fmj
inv_name_short            = ammo-7.62x39-fmj_s

inv_weight            = .22
inv_grid_width            = 1
inv_grid_height            = 1
inv_grid_x                = 20
inv_grid_y                = 11

k_dist            = 1.0
k_disp            = 0.75
k_hit            = 1.54
k_impulse        = 0
k_pierce        = 1.09
impair            = 1.05 ; 1.0
buck_shot        = 1
tracer            = off        ;  off
wm_size         = 0.068

прописывал эти патроны в death_generic полностью по образцу патронов 9x18, но в итоге в игре постоянно такой вот баг.

  • Жуть! 1

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

Ссылка на комментарий
16.05.2014 в 21:52, Dennis_Chikin сказал:

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

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

А ведь он по прежнему актуален.

  • Нравится 3

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

прописывал эти патроны в death_generic полностью по образцу патронов 9x18

Возможно не добавил в [ammo_sections], например. В результате патроны отсчитываются пачками, а не поштучно.

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

@abramcumner вот все файлы типа death_generic - может твой глаз сможет разглядеть ошибку.  Прописал вроде везде как положено, патроны должны спавниться ток в случае, если НПС вооружён ТТ или ППШ, но на скрине ни того, ни другого на трупе нет, а патронов как в ящике на складе у прапора.

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

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

@DarkSnowder виндовый блокнот тебя подвел или каким редактором ты пользуешься. У тебя death_generic.ltx сохранен в utf8.

Поэтому спавнится без ТТ и ППШ и не считается патронами.

 

Ну и везде в ammo_7.62х25_fmj у тебя похоже буква х русская. Движку это не мешает, а людей и редакторы может фрустрировать.

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

@abramcumner у меня utf8 даже в ванильных файлах ТЧ и ЗП показывает (пользуюсь обычно Нотепадом, но проверка через базовый блокнот показала utf8)

Как тогда эту проблему лучше всего решить то (точнее в какую кодировку надо перевести, чтобы все правильно заработало)?

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

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

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

@abramcumner поменял в death_generic во всех секциях патронов x на английскую. Проверка с НИ результата не дала - всё так-же куча патронов спавниться.

@I am Dead вот так фалы выглядя в блокноте и в Нотпаде. Причём попытка изменить формат ни к чему не приводит. При новом открытии всё возвращается в utf8.

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

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

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

OGSR Engine

А колбек on_inv_box_item_drop вообще работает? У меня на экран должно выводиться сообщение, если предмет перемещён, однако такого не происходит.

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

Устал.

img.php?nick=Balavnik&sert=2&text=t6

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

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

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

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

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

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

Войти

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

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

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