Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Balavnik 117 Опубликовано 4 Февраля Поделиться Опубликовано 4 Февраля 59 минут назад, Prophet13 сказал: Покажи код Вот. Скрытый текст function spawn_medusa() create("af_medusa", xyz(-124.543, -26.33, -477.87), 127456, 11) end Осенний каламбур. Сентябрь - лето. Ссылка на комментарий
Prophet13 1 069 Опубликовано 4 Февраля Поделиться Опубликовано 4 Февраля @Balavnik Странно, я тут не вижу проблемы. У тебя точно xyz в _g находится? 1 OP OGSR Ссылка на комментарий
Balavnik 117 Опубликовано 4 Февраля Поделиться Опубликовано 4 Февраля @Prophet13 Точно. Скрин. Уж всё попробовал: амк переустанавливал с переносом моих скриптов, и перераспаковывал геймдату. Осенний каламбур. Сентябрь - лето. Ссылка на комментарий
Prophet13 1 069 Опубликовано 4 Февраля Поделиться Опубликовано 4 Февраля (изменено) @Balavnik Могу наверно только сказать, что проблема в 1.0004 версии, ибо оригиналы кривее некуда) Если в _G имеются какие-либо классы, то их стоит переместить в отдельные скрипты, Luabind перестаёт инитить код после кода класса. В мод. движках это всё пофикшено. Изменено 4 Февраля пользователем Prophet13 2 OP OGSR Ссылка на комментарий
imcrazyhoudini 208 Опубликовано 4 Февраля Поделиться Опубликовано 4 Февраля Пытаюсь избавиться от зависимости от db архивов. Настала очередь скриптов, застрял на таком вылете: Спойлер [04.02.24 20:02:17.294] [print_output([CScriptEngine::lua_pcall_failed])] SCRIPT RUNTIME ERROR: e:\hope for life\gamedata\scripts\se_stalker.script:76: attempt to call method 'alive' (a nil value) stack traceback: [C]: in function 'alive' e:\hope for life\gamedata\scripts\se_stalker.script:76: in function <e:\hope for life\gamedata\scripts\se_stalker.script:63> [04.02.24 20:02:17.295] ********************************************************************************* [04.02.24 20:02:17.295] FATAL ERROR [error]Expression : FATAL ERROR [error]Function : CScriptEngine::lua_pcall_failed [error]File : E:\OGSR-Engine-dev\Perimetr\ogsr_engine\COMMON_AI\script_engine.cpp [error]Line : 52 [error]Description : [CScriptEngine::lua_pcall_failed]: e:\hope for life\gamedata\scripts\se_stalker.script:76: attempt to call method 'alive' (a nil value) [04.02.24 20:02:17.295] ***************************[ScriptCrashHandler]********************************** [04.02.24 20:02:17.295] stack traceback: [C]: in function 'alive' e:\hope for life\gamedata\scripts\se_stalker.script:76: in function <e:\hope for life\gamedata\scripts\se_stalker.script:63> [04.02.24 20:02:17.295] Locals: [04.02.24 20:02:17.295] string (*temporary) : e:\hope for life\gamedata\scripts\se_stalker.script:76: attempt to call method 'alive' (a nil value) [04.02.24 20:02:17.295] End [04.02.24 20:02:17.295] Locals: [04.02.24 20:02:17.295] Userdata: self [04.02.24 20:02:17.295] boolean self.ini_initialized : true [04.02.24 20:02:17.295] boolean self.death_droped : false [04.02.24 20:02:17.295] boolean self.dont_spawn_online : false [04.02.24 20:02:17.295] Table: self.spawner [04.02.24 20:02:17.295] table self.spawner.1 : [...] [04.02.24 20:02:17.295] Can't dump script call stack - Engine corrupted Кидаю все скрипты с анпака db архивов - вылет остаётся, возвращаю db архивы - исчезает. Добавлял меши, конфиги, скрипты с db архивов не возвращая сами db архивы - вылет остаётся. Куда копать? ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
CiberZold 142 Опубликовано 5 Февраля Поделиться Опубликовано 5 Февраля 7 часов назад, imcrazyhoudini сказал: Пытаюсь избавиться от зависимости от db архивов а что за зависимость от db архивов? распаковываешь все архивы, убираешь полностью db файлы ,оставляешь только gamedata и уже от неё пляшешь ,что выкидывать ,а что оставлять. Ссылка на комментарий
imcrazyhoudini 208 Опубликовано 5 Февраля Поделиться Опубликовано 5 Февраля @CiberZold так и делал. С проблемкой разобрался - видать случайно когда-то лишнего закинул в распакаванную игру. В db.script было: actor = {}, вместо actor = nil. 1 ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
CiberZold 142 Опубликовано 5 Февраля Поделиться Опубликовано 5 Февраля @imcrazyhoudini ну да надо не забывать сначала распакованная игра, а потом уже сверху файлы мода копируешь в gamedata, а не в gamedata твоего мода кидать распакованную от оригинала, оригинальный файлы перепишут файлы твоего мода) Ссылка на комментарий
Zander_driver 10 333 Опубликовано 5 Февраля Поделиться Опубликовано 5 Февраля 22 часа назад, Balavnik сказал: pos_only = vector() function xyz(x,y,z) return pos_only:set(x,y,z) end Метод вектора set не возвращает сам вектор. А только записывает в него значения. Поэтому такая функция будучи расположенной в _g.script, (И в других скриптах тоже) вернет nil. А зачем тебе глобальный вектор? 23 часа назад, Balavnik сказал: Вылет при попытке создания объекта методом alife:create() Вылет с логом LUA error: scripts\_g.script:1331: attempt to index global 'alife' (a function value) Функция alife() возвращает объект алайфа. А глобальное пространство имен _g.script, если я верно помню, читается и выполняется до его создания. Так что заниматься спавном чего-то/кого-то непосредственно в _g.script очень глупая идея. Куда спавнить-то, если еще никакую локацию не загрузили. Но, функции для спавна в _g.script располагать можно. Надо только помнить о том, что вызывать их можно при уже загруженной локации, не раньше. Ты свой спавн когда вызываешь? 2 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
Balavnik 117 Опубликовано 5 Февраля Поделиться Опубликовано 5 Февраля @Zander_driver Вообще я вызываю в диалоге. А функция xyz прекрасно работала до определённого момента. Осенний каламбур. Сентябрь - лето. Ссылка на комментарий
Zander_driver 10 333 Опубликовано 5 Февраля Поделиться Опубликовано 5 Февраля 03.02.2024 в 16:39, Balavnik сказал: Например npc:id() прокатит? Или это метод клиента и не прокатит? Прокатит-непрокатит, покатит-непокатит... вам не надоело в асфальтовый каток играться? Можно же изначально писать функции устойчивые к нештатным ситуациям/готовые распознать что угодно в рамках разумно-ожидаемого. function get_id(obj) if obj ~= nil then if type(obj.id) == 'function' then return obj:id() end -- Если получен клиентский объект, возвращаем его ID if type(obj.id) == 'number' then return obj.id end -- Если получен серверный объект, возвращаем его ID end return nil -- Если объект не получен, или не имеет поля id в ожидаемом формате. Значит это не клиентский и не серверный объект, и возвращать нечего. end 1 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
mole venomous 3 393 Опубликовано 5 Февраля Поделиться Опубликовано 5 Февраля 2 минуты назад, Balavnik сказал: прекрасно работала Так чего перестала?? 1 Здесь могла быть ваша реклама. Ссылка на комментарий
Zander_driver 10 333 Опубликовано 5 Февраля Поделиться Опубликовано 5 Февраля 1 минуту назад, Balavnik сказал: в диалоге Ок. 2 минуты назад, Balavnik сказал: А функция xyz прекрасно работала И работает. Записывает координаты в глобальный вектор. Таки он тебе зачем? "До определенного момента" - именно потому что глобальный... 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
Balavnik 117 Опубликовано 5 Февраля Поделиться Опубликовано 5 Февраля (изменено) 4 минуты назад, mole venomous сказал: чего перестала Не удалось выяснить. 3 минуты назад, Zander_driver сказал: он тебе зачем Ну, я делал по образу и подобию солянок. Смотрел, какие конструкции там используются, и переносил в свои файлы. Проверял пару раз - работало. Изменено 5 Февраля пользователем Balavnik Осенний каламбур. Сентябрь - лето. Ссылка на комментарий
Zander_driver 10 333 Опубликовано 5 Февраля Поделиться Опубликовано 5 Февраля Только что, Balavnik сказал: я делал по образу и подобию солянок. Это очень плохой метод работы. Не рекомендую, так ты коллекционируешь чужие ошибки. Ну и вообще, писать свой сырой код в _g.script это не то что моветон, а категорически противопоказано до тех пор пока ты не чувствуешь себя в скриптах как рыба в воде. _g.script инициализируется до всех остальных скриптов, до вообще всего, и он должен быть идеально отлажен, т.к. любые косяки в нем могут обрушить очень много чего. Всякие тесты, пробы пера и т.д. и т.п. делай в своих сторонних файлах. Не в _g.script. 1 1 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. Ссылка на комментарий
Balavnik 117 Опубликовано 5 Февраля Поделиться Опубликовано 5 Февраля @Zander_driver Понял. А короткие имена делать или нет? Допустим я создал функцию create в balavnik_script, а в _g.script объявил переменную create = balavnik_script.create. Так можно делать? Иначе не очень удобно каждый раз обращаться. Осенний каламбур. Сентябрь - лето. Ссылка на комментарий
Zander_driver 10 333 Опубликовано 5 Февраля Поделиться Опубликовано 5 Февраля Так можно, но как правило не надо. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
Prophet13 1 069 Опубликовано 5 Февраля Поделиться Опубликовано 5 Февраля 5 часов назад, Zander_driver сказал: Метод вектора set не возвращает сам вектор. А это тут при чём? Значения запишутся в pos_only через set и потом вернётся. return же прописан. Имхо, хороший метод, при условии, что используется для разовой установки координат (для alife():create() тех же), в остальных случаях уже нужен свой vector(). 5 часов назад, Balavnik сказал: А короткие имена делать или нет? У нас лично используется для часто используемых функций, чтобы легче было к ним обращаться, но, как правильно @Zander_driver сказал, надо сначала чувствовать себя в скриптах как рыба в воде. OP OGSR Ссылка на комментарий
CiberZold 142 Опубликовано 6 Февраля Поделиться Опубликовано 6 Февраля 12 часов назад, Balavnik сказал: а в _g.script объявил переменную create = balavnik_script.create. Так можно делать? Иначе не очень удобно каждый раз обращаться. у тебя что миллион строк кода, что если ты будешь писать create вместо alife():create() или вместо balavnik_script.create? для текстового редактора при копи-пасте все равно в этом случае сколько символов копировать 1 1 Ссылка на комментарий
I am Dead 912 Опубликовано 6 Февраля Поделиться Опубликовано 6 Февраля 14 часов назад, Balavnik сказал: Ну, я делал по образу и подобию солянок. Не надо дядя, вот тебе для изучения репо где код нормально написанhttps://github.com/dsh2dsh/op2ogse 2 1 1 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти