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

Labadal

Проверенные
  • Число публикаций

    236
  • Регистрация

  • Последнее посещение

  • Дней в топе

    1
  • AMKoin

    1,742 [Подарить AMKoin]

Весь контент пользователя Labadal

  1. Labadal

    Скриптование

    Мне тут посоветовали для поиска причины воспользоваться движком ОГСР, во время диалога произошёл вылет, ругался на следующую функцию: --[[ -- Диалоги помощи раненным function init_help_wounded_medkit_dialog(dlg) local phr = dlg:AddPhrase("dm_general_help_medkit",0,-1,-10000) local phrase_script = phr:GetPhraseScript() phrase_script:AddAction("dialogs.transfer_medkit") local k,v = 0,0 for k,v in pairs(phrase.help_thanks) do phr = dlg:AddPhrase(v.name,v.phr_id,0,-10000) if phr then phrase_script = phr:GetPhraseScript() phrase_script:AddPrecondition("dialog_manager.precondition_help_thanks") end end end --]] я её заккоментил, проблема пропала. Однако пропала только на огср, при возвращении на свой движок, опять безлоговый вылет. Есть идеи? разные вылеты (при препоследней фразе диалога, при последней фразе диалога, просто при попытке поговорить), ругается на разные функции из файла dialog_manager, но ругается на AddPhrase. local phr = dlg:AddPhrase("",0,-1,-10000) local phr = dlg:AddPhrase("dm_general_help_medkit",0,-1,-10000) и тд. что блин делать?
  2. Labadal

    Скриптование

    @ted.80 точно-точно, благодарю за уточнение) с помощью xrLuaFix от RvP как-то можно получить нормальный лог, причину? не понимаю в чем проблема, вылетает в диалогах, зачастую при последней фразе ГГ. (она может быть как и последней в самом диалоге, так и предпоследней, но для ГГ она точно последняя). При: function printf(fmt,...) log(string.format(fmt,...)) local con = get_console() con:execute(string.gsub(string.format(fmt,...), " ", "_")) con:execute("flush") end в лог файле последняя запись зачастую Unknown command: *INFO*:_npc='single_player'_id='ui_talk_hide' и всё, больше никаких зацепок. Бывает, что вылетает вообще при попытке поговорить, но это единичные случаи. понять бы в чем причина.
  3. Здравствуйте, подскажите - как на небо выводится солнце и луна? К примеру, я хочу, чтоб в небе вместо луны был, допустим, чайник?
  4. Labadal

    Скриптование

    @ted.80 @Капрал Хикс В любом случае, можешь попробовать данную функцию: в своём скриптовом файле, например: sms_pda.script пишешь: function use_pda(item) local sect = item:section() if sect == "тут имя секции твоего pda" then -- тут выдаёшь сам звук, например: local snd_obj = xr_sound.get_safe_sound_object([[affects\tinnitus3a]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) --не забываешь выдать предмет обратно, т.к. при использовании он пропадает alife():create("тут имя секции твоего pda", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end затем, в bind_stalker.script пишешь: в функции function actor_binder:reinit(): self.object:set_callback(callback.use_object, self.on_use_object, self) в функции: function actor_binder:net_destroy() p/s не знаю, насколько действительно это нужно, у меня работает и без прописывании калбека в этой функции: self.object:set_callback(callback.use_object, nil) ну а дальше, где-то в bind.stalker создаёшь функцию: function actor_binder:on_use_object(obj, who) sms_pda.use_pda(obj) end после этого при использовании твоего пда будет воспроизводиться звук, который ты укажешь (ну или любое действие, которое ты хочешь, чтобы делалось при использовании определенного предмета)
  5. Labadal

    Скриптование

    @Капрал Хикс Вообще не понятно зачем это нужно? Но даже если и так, в самом деле, задания просто так не выдаются, - поршнем зачастую. Вот и отслеживай этот поршень, если он у тебя есть, и выдавай другой, например. Можешь что-то типа этого: local function name(actor, info_pairs) for _, pair in ipairs(info_pairs) do if actor:has_info(pair.check) then actor:give_info_portion(pair.give) break end end end local info_pairs = { {check = "поршень, по которому выдаётся первый квест", give = "инфопоршень, который выдаётся, если он есть"}, {check = "поршень, по которому выдаётся второй квест", give = "инфопоршень, который выдаётся, если он есть"}, {check = "поршень, по которому выдаётся третий квест", give = "инфопоршень, который выдаётся, если он есть"} } check_and_give_info(db.actor, info_pairs) это лишь примерная конструкция, я бы даже сказал псевдокод. Ну, или стандартным: if db.actor:has_info("поршень, по которому выдаётся первый квест") then db.actor:give_info_portion("инфопоршень, который выдаётся, если он есть") elseif db.actor:has_info("поршень, по которому выдаётся второй квест") then db.actor:give_info_portion("инфопоршень, который выдаётся, если он есть") elseif db.actor:has_info("поршень, по которому выдаётся третий квест") then db.actor:give_info_portion("инфопоршень, который выдаётся, если он есть") @Капрал Хикс кстати, есть ещё такой вариант, он отлавливает состояние квеста, попробуй его: local task_status = db.actor:get_task_state("тут пишешь id квеста", 0) -- id квеста из <game_task id="id квеста"> if task_status == 0 then -- Действия, если задание провалено elseif task_status == 2 then -- Действия, если задание выполнено elseif task_status == 1 then -- Действия, если задание активно elseif task_status == -1 then -- Действия, если задания нет ни в проваленных, ни в выполненных, ни в активных end
  6. Labadal

    Скриптование

    @Купер оказалось, что это не моя проблема. в оригинале этот же нпс так же "подвисает" (в деревне новичков). Понимаю, что нужно разбираться с причиной, однако её бы найти сначала.
  7. как сделать свою погоду?
  8. Labadal

    Скриптование

    @naxac всё оказалось намного проще, нужно было просто скомпилировать локу с помощью xrLC а потом через xrAI графы и спавн собирать)) Такой еще вопросик: ловлю безлоговый вылет при разговоре с НПС, зачастую в момент когда отправлю неписю предпоследнюю фразу диалога, за которой он должен ответить последней. Первым делом тоже подумал, что отсутствует функция, которая выдаётся после этой фразы, но нет, вылетает даже в пустых от различных функций диалоги. Есть моменты, когда вылатает при попытке поговорить. Есть моменты, когда нпс тупо стоит на месте спавна и с ним не поговорить, однако вдупляется после сейвлоада. в логфайле последней записью почти всегда это: *INFO*:_npc='single_player'_id='ui_talk_hide' в некоторых случаях пишет это: *INFO*:_npc='single_player'_id='ид_нпс_с_которым_разговор'
  9. Labadal

    Скриптование

    @CiberZold В том-то и дело, что со сборщиком всё нормально. Раньше ведь всё было норм.
  10. Labadal

    Скриптование

    @CiberZold Unknown command - обычно пишет, когда ты записи в лог отправляешь. В данном случае "start_game_callback_called" отправляется функцией: function start_game_callback() printf ("start_game_callback called") ←←← вот эта вот строка task_manager.clear_task_manager() treasure_manager.clear_treasure_manager() xr_sound.clear_all_sound_object() dialog_manager.fill_phrase_table() end @Купер для ясности - распаковал ОРИГИНАЛЬНУЮ локацию, добавил на карту ОДИН ЭКЗОСКЕЛЕТ, сбилдил заново и собрал с помощью xrAI. После чего ловлю безлоговый вылет. Не думаю, что это правка как-то сильно повлияла на происходящее.
  11. Labadal

    [SoC] Вопросы по SDK

    при сборке графа выскакивает это: ! There is no graph for the level l01_escape! (level is not included into the game graph) в чем проблема? графы на локе есть
  12. Labadal

    Скриптование

    @CiberZold ой, я не такой извращенец, чтоб в блокноте кодить)) Саблайм 3)) Ну или нотпад на крайний случай) @naxac@CiberZold Смотрите, какая забавная вещь получается. Взял сейчас чистый ТЧ. Запустил - играбельно. Распаковал кордон, залез, внес кое-какие правки, для теста. сделал build (без ошибок), сделал xrAi с ключами -f -g -m -s, тоже без ошибок. Запускаю игру - опять получаю безлоговый вылет, сам лог файл так же заканчивается этим: Сервер: Старт... ! Unknown command: start_game_callback_called Так что дело вряд-ли в повиснутой логике (ну либо сдк её ломает). С чем может быть связано?
  13. Labadal

    Скриптование

    @CiberZold ну, я их даже закомментил, всё так же
  14. В общем столкнулся с безлоговым вылетом, последняя запись в лог файле: Сервер: Старт... ! Unknown command: start_game_callback_called товарищи подсказали, что проблема может быть с логикой нпс. Суть-то в чем, я в СДК ковырялся на локе, до этого работало. Откат изменений не помог, я даже взял абсолютно чистые локации, открыл кордон в СДК удалил всех нпс, собрал - получаю то же самое. Вылетает на моменте "создание новой игры", судя по логам оригинала, после Сервер: Старт... должна идти Сервер: Загрузка симуляции жизни..., но не идет. И это единственная зацепка.
  15. Labadal

    Скриптование

    @naxac Да в том то и дело, что ничего такого критического не делал. откатывал, тоже ничего. Буду копать дальше, благодарю upd: взял чистые локации, загрузил кордон в сдк, удалил там всех нпс, в итоге получаю: start_game_callback_called. Можно как-то определить, в чём именно проблема. Из-за чего логика виснет, и тд?
  16. Labadal

    [SoC] Вопросы по SDK

    как лечить ошибку error has occurred in builder routine. Editor aborted на стадии Merger Lod, при сборки локи?
  17. Labadal

    Скриптование

    с чем связан этот вылет? Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ...:\sdk\level_editor\gamedata\scripts\xr_walker.script:49: attempt to index field 'move_mgr' (a nil value) помню, что в СДК игрался. Если в xr_walker на 48 строке вписать: get_console():execute(self.object:name()) получаю в лог: Unknown command: esc_lager1 Что за esc_lager1? upd: esc_lager1 это имя секции нпс. Но как он связан со всем этим? тем более всё работало до того. Если удалить этого нпс, то в консоль кидает: Unknown command: start_game_callback_called
  18. Labadal

    [SoC] Вопросы по SDK

    Подскажите, пожалуйста, в чем проблема. Вот такая ошибка выскакивает, на моменте распаковки level.spawn, причем у любой локации. Если удалить файл level.spawn, оно, конечно, декомпилируется, но, понятное дело, без спавн элементов. В чем проблема? upd: ошибка как всегда в невнимательности, из-за неправильного коммента в weapons.ltx (надо ; А я, привык работать со скриптами и поставил --) @start bins\compilers\xrAI.exe -draft -f l01_escape Можно ли сюда вписать больше одной локации?
  19. Labadal

    Скриптование

    @Zander_driver А есть какая-то документация по этому поводу? Понять бы как работает И еще такой вопрос, я, к примеру создал некую переменную. С самого начала игры она равна 0, но в какой-то момент станет равна 1. Можно ли сделать так, чтобы это значение "1", сохранялось в переменной, даже если я начну новую игру?
  20. Labadal

    Скриптование

    У меня такой вопрос. Все мы знаем, что для различных уровней сложности прописаны свои значения в actor.ltx. Вопрос такой, можно ли как-то получить скриптово эти значения? Например: я хочу сделать некую систему достижений, и допустим там будет достижение "читер", которое выдастся, если эти параметры были изменены игроком. (то есть на сложности новичок у меня параметр burn_immunity = 0.3 [actor_immunities_gd_novice] burn_immunity = 0.3 но если игрок, играя на сложности новичок залет в файл и поставит значение, отличное от 0.3, то я хочу это отследить.) Вопрос в том - как и возможно ли вообще. Спасибо!
  21. Labadal

    Смена администратора (2024)

    @Murarius Спасибо за всю твою работу, удачи тебе в дальнейшем! @CyberR00T Успехов в администрировании форума!
  22. Labadal

    Обращение администратора AMK-Team

    Спасибо за всё, брат-администратор
  23. Labadal

    [SoC] Вопросы по SDK

    @imcrazyhoudini ну вот, валк, лук и сама секция: [walker@esc_lager_volk_walker5] path_walk = wolf_ugroza_walk path_look = wolf_ugroza_look meet = meet@wolf_ugroza on_info = {+esc_codedoor_sidor} walker@esc_lager_volk_walker2 danger = danger_condition@shustryi Переименовал поинты в esc_lager_wolf_walk2 и esc_lager_wolf_look2 - заработало. Странно, ну ладно.
  24. Labadal

    [SoC] Вопросы по SDK

    Здравствуйте! подскажите насчет way-поинтов. Сделал две штуки для волка Назвал esc_lager_wolf_ugroza_walk и esc_lager_wolf_ugroza_look, флаги тоже расставил, все правильно, как обычно. У волка в нужной секции прописываю: path_walk = wolf_ugroza_walk path_look = wolf_ugroza_look Но при переходе в эту секцию безлоговый вылет. Что я делаю не так? (проблема именно в новых путях, потому что если в новой секции поставить стандартные: path_walk = wolf_walk path_look = wolf_look то вылета не будет)
  25. Labadal

    Все о партиклах

    @Jekyll да, парочку докинул из другого мода, ещё немного из ориг зп. Но уже проблему решил, Спасибо!) Теперь осталось понять, как нужный мне партикл через сдк повесить на карту, и шоб работал до тех пор, пока поршень не выдам, Товарищи, подскажите - как можно уменьшить ширину партикла? (а то они у меня шире, чем дверной проём и не красиво)
×
×
  • Создать...