Сталкер Лом 357 Опубликовано 25 Декабря 2012 Поделиться Опубликовано 25 Декабря 2012 Отвечаю сам себе на один из вопросов: Почаще необходимо проверять грамматику: анимация для работы "patrool" прописана неверно (binicular вместо binocular), к тому же переход с последней точки был не на начальную, а на несуществующую (но, к счастью, это не смертельно, в отличие от грамматики). P.S. Просьба объединить данный пост с предыдущим, срок редактирования истёк. Работы на Artstation - https://www.artstation.com/artist/stalker_lom Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/232/#findComment-749219
Artos 99 Опубликовано 25 Декабря 2012 Поделиться Опубликовано 25 Декабря 2012 (изменено) Сталкер Лом, мог бы сам найти в форуме пост: "комплект функций для вывода в лог" (и тут поновее). Проблемы многих ковыряющихся в кодах игры в том, что делают это вслепую, т.е. не знают и/или не утруждают себя выводом в лог-файл полезной для разработки или отладки информации, и предпочитают заниматься постоянными погадалками. На твоем примере: 1. Разработчики компания-разработчик (признана нежелательной), дабы не иметь от игроков причитаний по поводу прерываний игры - закомментировали аварийный вывод в лог информации. Ты совершенно правильно восстановил этот вывод ( error_log(reason) ), что и дало тебе в лог именно то, что и задумано было разработчиками, т.е. при ошибке в аргументе наименования состояния (иль др.) - была вызвана функция прерывания (abort) и тебе в лог была дана информация, которая и помогла найти ошибку (binicular). Т.о. если есть желание или необходимость выловить ошибки в скриптах/конфигах - НЕ следует комментировать функцию abort! Именно она помогает вылавливать заведомые ошибки. 2. Т.к. функция прерывания была закомментирована, то ошибка в имени состояния не была обнаружена и выполнение сценария (скрипта) в state_manager:set_state было продолжено, что привело к получению нИлевого значения для state_lib.states[binicular] и соответственно 502-ая строка: if state_lib.states[state_name].special_danger_move == true then споткнулась на попытке получить поле 'special_danger_move' из несуществующей субтаблицы. Т.о. твой 1-ый вопрос по ошибке - это следствие, причину которого ты и обнаружил, найдя ответ/причину для 2-го вопроса/вылета. 3. В текстах скриптов можно видеть немало строк типа: --printf("Set State called: for %s State: %s", self.npc:name(), state_name) Как видно, это закомментированная строка. Если ее раскомментировать, то... к сожалению все одно в лог-файле ничего не будет, т.к. как функция printf, как и функция abort, отключена разработчиками... Вот для ее активизации и требуется упомянутый в начале "комплект функций для вывода в лог". Это позволяет отслеживать выполнение сценариев и получать информацию по мере выполнения. Ну а имея информацию и думалку - гораздо проще и быстрее находить и исправлять ошибки. ;-) Ну и собственно "грамматика" то тут ни при чем. Причина в банальной описке, которую никакой чекер кодов не обнаружит, т.к. имена переменным и их значения в таких случаях часто "в соответствии с синтаксисом и правилами" языка. Это как раз отлавливается контролем выполнения сценариев, для чего и существуют функции printf и abort, т.к. сам движок далеко не всегда предоставляет при фатальных ошибках достточную информацию о причине. Если всерьез занялся моддингом - советую дополнительно почитать на эту тему про debug в Lua (хотя для реализации потребуется вносить правки в библиотеки движка или внешние добавлять). Изменено 25 Декабря 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/232/#findComment-749251
Стрелоk 14 Опубликовано 26 Декабря 2012 Поделиться Опубликовано 26 Декабря 2012 Как перевести одного НПС из сквада в оффлайн? И как наоборот заспанить в оффлайне? К20 Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/232/#findComment-749436
Hanters 0 Опубликовано 30 Декабря 2012 Поделиться Опубликовано 30 Декабря 2012 Народ прошу не пинайте жестоко и очень прошу помощи. Проблема, после отравления Гавром вылет вот стаким логом" ...FATAL ERROR [error]Expression : e_entity [error]Function : xrServer::Process_event_reject [error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\xrServer_process_event_reject.cpp [error]Line : 12 [error]Description : entity not found. id_parent=0 id_entity=6030 frame=19460 stack trace:" Выручайте. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/232/#findComment-750107
Vano_Santuri 35 Опубликовано 30 Декабря 2012 Поделиться Опубликовано 30 Декабря 2012 (изменено) Походу тело разорвало, такой вылет говорит что дочерние объекты не найдены в инвентаре.... Вылет постоянен? Изменено 30 Декабря 2012 пользователем Vano_Santuri Что-то кончается, что-то начинается... Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/232/#findComment-750115
STALKER_Dragon 3 Опубликовано 30 Декабря 2012 Поделиться Опубликовано 30 Декабря 2012 (изменено) Доброго времени суток! Возникла вот такая проблема: FATAL ERROR [error]Expression : fatal error [error]Function : CBlender_default::Compile [error]File : D:\prog_repository\sources\trunk\Layers\xrRenderPC_R1\BlenderDefault.cpp [error]Line : 63 [error]Description : <no expression> [error]Arguments : Not enought textures for shader, base tex: act\act_arm_1_bump stack trace: Может, знает кто? Как устранять? ЗЫ. Вылетает только на статическом освещении. Заранее благодарен за ответ. Изменено 30 Декабря 2012 пользователем STALKER_Dragon Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/232/#findComment-750119
Hanters 0 Опубликовано 30 Декабря 2012 Поделиться Опубликовано 30 Декабря 2012 (изменено) Vano_Santuri Вылет постоянный, сейчас поробовал ещё раз. Изменено 31 Декабря 2012 пользователем ColR_iT Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/232/#findComment-750120
Hanters 0 Опубликовано 31 Декабря 2012 Поделиться Опубликовано 31 Декабря 2012 (изменено) Vano_Santuri Вы не подскажете как определить эти дочерние объекты? Большое спасибо, даже косвенная ссылка помогла, прошёл. Изменено 31 Декабря 2012 пользователем ColR_iT Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/232/#findComment-750197
Vano_Santuri 35 Опубликовано 31 Декабря 2012 Поделиться Опубликовано 31 Декабря 2012 Так как прошел? В чем именно была проблема? Что-то кончается, что-то начинается... Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/232/#findComment-750253
Hanters 0 Опубликовано 31 Декабря 2012 Поделиться Опубликовано 31 Декабря 2012 (изменено) Vano_Santuri Не стал ломать файлы, а просто подбором, раз 30 перезагружался, оказалось телепортеры Кости, каюсь чатерил и их было несколько штук в инвентаре, вот они и глючили. Но самое что интересное их не должно быть на локации, т.с. выложить в тайник не помогало, тайник был организован на другой локации. Так что ещё раз спасибо и сновым годом вас, здоровья и всего того что вы сами себе пожелаете. Цитировать предыдущие посты полностью вовсе не обязательно. ColR_iT Изменено 1 Января 2013 пользователем ColR_iT Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/232/#findComment-750397
Mihunchy 9 Опубликовано 2 Января 2013 Поделиться Опубликовано 2 Января 2013 Не могу разобраться, толи я что-то не понимаю, толи стимовская версия не слушается... В этом сообщении http://www.amk-team.ru/forum/index.php?showtopic=8230&st=2020#entry478281 написано как заставить всех говорить со мной. Сделал, но не работает. Я попытался удалить все проверки в Гулаг скрипте на командера {!is_squad_commander}, снова провал. Тогда я удалил вообще все проверки, на оружие, ранение, на то что я враг, все равно все работает :ny_huh: . Сможет кто-нибудь помочь? Очевидное и невероятное Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/232/#findComment-750645
паньчо 4 Опубликовано 5 Января 2013 Поделиться Опубликовано 5 Января 2013 Господа, где редактируется такой параметр, как состояние предмета, при котором техник его не ремонтирует? хочу сделать чтоб они всё ремонтировали. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/232/#findComment-751218
Shredder 49 Опубликовано 5 Января 2013 Поделиться Опубликовано 5 Января 2013 Кто-нибудь знает, как в инвентаре упорядочиваются иконки предметов? Очевидно, что в первую очередь выводятся иконки больших размеров. Дело в том, что при открытии инвентаря мне нужно удалять кое-какие предметы, которые находятся в рюкзаке, только когда окно инвентаря закрыто. Но при таком подходе получаются пустые ячейки: Если бы иконки этих предметов отрисовывались самыми нижними, то такой проблемы бы не было. Выяснил, что упорядочивание идёт точно не по названию секции, т.к. секции удаляемых предметов начинаются с "zz_". Если у кого есть мысли по этому вопросу, прошу поделиться. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/232/#findComment-751345
Charsi 441 Опубликовано 6 Января 2013 Поделиться Опубликовано 6 Января 2013 (изменено) Shredder, сделай размер иконок для удаляемых предметов 0х0. Странно, в ТЧ такого вылета не было. Выкидывание этих предметов из инвентаря перед удалением тоже не помогает? Изменено 6 Января 2013 пользователем Charsi 2 Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/232/#findComment-751503
Shredder 49 Опубликовано 6 Января 2013 Поделиться Опубликовано 6 Января 2013 Charsi, почему-то я был уверен, что вылетит, ну и собственно вот: FATAL ERROR [error]Expression : assertion failed [error]Function : CUICellContainer::GetItemPos [error]File : D:\prog_repository\sources\trunk\xrGame\ui\UIDragDropListEx.cpp [error]Line : 769 [error]Description : 0 Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/232/#findComment-751510
Outlaw 85 Опубликовано 7 Января 2013 Поделиться Опубликовано 7 Января 2013 (изменено) Когда то спрашивал про то как в пда включить метки переходов, сейчас при попытке сделать это ловлю вылет "бла-бла-бла? attempt to index 'obj' (a nill value)" Простите за офф-топик, как сделать чтобы в ЗП переходы отображались на карте? А также у меня при попытке заспавнить "метку на карте" (простите за мой простонародный слэнг) батник отказиваеться собирать алл спавн( Outlaw, привожу способ, когда-то, кем-то в этой теме описанный: Делаешь скрипт,например, lev_ch.script, в него пишешь: Clayman, конечно это "кому-то", кто написал процитированное тобою нужно бы адресовать:"А головою кто будет думать?", но и тебе стОит более критично цитировать ...Цитата Далее, в bind_stalker.script после function actor_binder:update(delta) надо написать lev_ch.level_changer() Это для того, чтобы один раз в самом начале игры поставить метки дается совет ставить проверку и выдачу каждые 20ms на потяжении все игры? Ну посмтотите тот саму функцию actor_binder:update(delta)! Ведь все уже есть готовое: if self.bCheckStart then printf("SET DEFAULT INFOS") if not has_alife_info("global_dialogs") then self.object:give_info_portion("global_dialogs") end if not has_alife_info("level_changer_icons") then self.object:give_info_portion("level_changer_icons") end self.bCheckStart = false end - и инфопоршень ("level_changer_icons") именно для отображения иконок переходов и именно только один раз при первом апдейте ... Всего то нужно вставить сюда (при выдаче инфопоршня) вызов lev_ch.put_spots() или даже саму функцию. Подскажите что за бабуйня и как с ней бороться? Код function level_changer() if not has_alife_info("info_new_level") then put_spots() db.actor:give_info_portion("info_new_level") end end function put_spots() for i=1,65534 do local obj = alife():object(i) if obj then if obj:name() == "Название 1-го левел чэнджера" then level.map_add_object_spot_ser(obj.id,"level_changer_up","Подпись 1") elseif obj:name() == "Название 2-го левел чэнджера" then level.map_add_object_spot_ser(obj.id,"level_changer_up","Подпись 2") elseif ..... end end end Название берётся из поля name level_changer'а в all.spawn; Подпись - например, "На Кордон". Далее, в bind_stalker.script после function actor_binder:update(delta) надо написать lev_ch.level_changer() и в файл info_portions.xml вставить строку <info_portion id="info_new_level"></info_portion> Изменено 7 Января 2013 пользователем Outlaw Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/232/#findComment-751829
Outlaw 85 Опубликовано 7 Января 2013 Поделиться Опубликовано 7 Января 2013 (изменено) Когда то спрашивал про то как в пда включить метки переходов, сейчас при попытке сделать это ловлю вылет "бла-бла-бла? attempt to index 'obj' (a nill value)" Простите за офф-топик, как сделать чтобы в ЗП переходы отображались на карте?А также у меня при попытке заспавнить "метку на карте" (простите за мой простонародный слэнг) батник отказиваеться собирать алл спавн( Outlaw, привожу способ, когда-то, кем-то в этой теме описанный: Делаешь скрипт,например, lev_ch.script, в него пишешь: Clayman, конечно это "кому-то", кто написал процитированное тобою нужно бы адресовать:"А головою кто будет думать?", но и тебе стОит более критично цитировать ...Цитата Далее, в bind_stalker.script после function actor_binder:update(delta) надо написать lev_ch.level_changer() Это для того, чтобы один раз в самом начале игры поставить метки дается совет ставить проверку и выдачу каждые 20ms на потяжении все игры? Ну посмтотите тот саму функцию actor_binder:update(delta)! Ведь все уже есть готовое: if self.bCheckStart then printf("SET DEFAULT INFOS") if not has_alife_info("global_dialogs") then self.object:give_info_portion("global_dialogs") end if not has_alife_info("level_changer_icons") then self.object:give_info_portion("level_changer_icons") end self.bCheckStart = false end - и инфопоршень ("level_changer_icons") именно для отображения иконок переходов и именно только один раз при первом апдейте ... Всего то нужно вставить сюда (при выдаче инфопоршня) вызов lev_ch.put_spots() или даже саму функцию. Подскажите что за "ерунда" и как с ней бороться? Поменьше "жаргона" в постах. ColR_iT Код function level_changer() if not has_alife_info("info_new_level") then put_spots() db.actor:give_info_portion("info_new_level") end end function put_spots() for i=1,65534 do local obj = alife():object(i) if obj then if obj:name() == "Название 1-го левел чэнджера" then level.map_add_object_spot_ser(obj.id,"level_changer_up","Подпись 1") elseif obj:name() == "Название 2-го левел чэнджера" then level.map_add_object_spot_ser(obj.id,"level_changer_up","Подпись 2") elseif ..... end end end Название берётся из поля name level_changer'а в all.spawn; Подпись - например, "На Кордон". Далее, в bind_stalker.script после function actor_binder:update(delta) надо написать lev_ch.level_changer() и в файл info_portions.xml вставить строку <info_portion id="info_new_level"></info_portion> Изменено 7 Января 2013 пользователем ColR_iT Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/232/#findComment-751830
Shredder 49 Опубликовано 8 Января 2013 Поделиться Опубликовано 8 Января 2013 Такой вопрос к знатокам. Давно заметил, что в ЗП выход НПС в онлайн и уход обратно в оффлайн сопровождается фризами. Процессор у меня далеко не самый мощный, но в ТЧ и ЧН я такого не замечал. Очень хорошо сие наболюдается при приближении к Скадовску. Так вот, кто-нибудь знает, от чего такие тормоза происходят и как (можно ли) с ними бороться? Может схемы какие сильно прожорливые на инициализацию? Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/232/#findComment-752177
Outlaw 85 Опубликовано 9 Января 2013 Поделиться Опубликовано 9 Января 2013 По поводу меток переходов. Помогло немного другое построение скрипта. Может кому пригодится. function upd_level_changer() for a=1,65534 do local obj = alife():object(a) if obj then if obj and obj:name() == "имя_перехода_в_allspawn_1" then level.map_add_object_spot_ser(obj.id,"level_changer_up","Название метки на карте 1") end end if obj then if obj and obj:name() == "имя_перехода_в_allspawn_2" then level.map_add_object_spot_ser(obj.id,"level_changer_up","Название метки на карте 2") end end ... end end В ЗП когда заспаунишь переход он действует сразу при попадании игрока в него, без вопросов. Никто не подскажет как этот "Вопрос типа вы действительно хотите перейти на другую локацию? Да/Нет" восстановить? А то даже проверить границы перехода проще будет) Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/232/#findComment-752288
botan 0 Опубликовано 9 Января 2013 Поделиться Опубликовано 9 Января 2013 Я точно не знаю, в ту ли тему я пишу, если нет, поправьте. Можно ли увеличить количество надписей, отображающихся при загрузке (лоадскринов)? Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/232/#findComment-752312
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти