Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
AndrewMor 527 Опубликовано 15 Апреля 2018 Поделиться Опубликовано 15 Апреля 2018 (изменено) 22 часа назад, AndreySol сказал: Ну тогда уж проще будет использовать вариант create(...) с указанием номера секции из all.spawn, раз уж все равно используем all.spawn. Не совсем. Если спавн пересобирается и разбирается по новой, номера секций могут измениться. Проще аптечку спавнить обычным скриптом alife():create. 22 часа назад, dPlayer сказал: любая неживая табуретка, записанная в спавне, будет всегда онлайн. А заспавненная, а потом УДАЛЕННАЯ - тоже будет онлайн??? Изменено 15 Апреля 2018 пользователем AndrewMor Сталкер - наше всё! Ссылка на комментарий
AndrewMor 527 Опубликовано 15 Апреля 2018 Поделиться Опубликовано 15 Апреля 2018 Прошу помощи у знающих. Словил вылет Скрытый текст 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: ...shing\s.t.a.l.k.e.r\gamedata\scripts\xr_logic.script:891: bad argument #1 to 'gfind' (string expected, got nil) Кусок скрипта, начиная с нужной строки (выделена красным) Скрытый текст for fld in string.gfind(src, "%s*([^,]+)%s*") do -- Здесь fld это набор infoportions в {} и имя секции, на которую переключиться. lst[n] = {} --printf("_bp: iter %d: fld = %s", n, fld) -- Выделяем список infoportions для проверки: at, to, infop_check_lst = string.find(fld, "{%s*(.*)%s*}") if infop_check_lst then --printf("_bp: infop_check_lst: [%s]", infop_check_lst) В чем может быть причина вылета? Вылетает не на всех локациях, сразу скажу, что правилось много всего. В какую сторону начать копать? Сталкер - наше всё! Ссылка на комментарий
The ReapeR 72 Опубликовано 15 Апреля 2018 Поделиться Опубликовано 15 Апреля 2018 (изменено) @AndrewMor, так у тебя переменная src нил. Нужно выше по коду смотреть, где она инициализируется и места всех присвоений. UPD: так это ж ванильная parse_condlist(). Где-то ты ее вызываешь, передавая последним аргументом нил вместо строки. Можно в самом ее начале добавить дебаг-вывод всех входных аргументов, так проще будет найти проблемный вызов. Например: function parse_condlist(npc, section, field, src) + dbglog("xr_logic.parse_condlist: %s [%s] %s %s", npc and npc:name() or "<nil>", tostring(section), tostring(field), src or "<nil>") local lst = {} -- 1) Разбиваем на разделенные запятыми части: [...] где dbglog() -- любимый вариант выхлопа. Для уменьшения спама можно занести вывод под if not src или if src == nil (if src ~= "" etc.). Вообще, она предназначена для парсинга т.н. кондишен-листов, которые обитают, в основном, в config/scripts/, config/misc/task_manager.ltx, config/misc/treasure_manager.ltx и в оллспавне (поле cond, секция [logic] в custom_data). Так что проблема может быть и не скриптовой. По имени NPC и названию секции сможешь найти конкретное место. Изменено 15 Апреля 2018 пользователем The ReapeR 1 New Level Changer 5.08: Раритеты ReapeR build 3: Раритеты Я на YouTube: Vincent Vega Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 15 Апреля 2018 Поделиться Опубликовано 15 Апреля 2018 12 часов назад, dPlayer сказал: зачем тень Чернобыля и чистое небо создают вначале игры all.save Ну так это способ "поднять себя за волосы". Запуск игры происходит с сохранки. Чтобы с нее запуститься, надо сначала создать хоть какую-нибудь. 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
AndrewMor 527 Опубликовано 15 Апреля 2018 Поделиться Опубликовано 15 Апреля 2018 @The ReapeR , спасибо, но я уже нашел ошибку в логике рестриктора. Исправил и все взлетело. 1 Сталкер - наше всё! Ссылка на комментарий
HellRatz 2 814 Опубликовано 15 Апреля 2018 Поделиться Опубликовано 15 Апреля 2018 Кто-нибудь пробовал фиксить скрипт однотипных квестов на то, чтобы можно было набирать сразу несколько, а не по одному? И что нужно в нем исправить? То есть сейчас так: берешь квест у НПС из доступных (убить НПС, принести арт, тому подобное), и после этого остальные квесты закрываются (нельзя взять), пока не выполнишь текущий. А хотелось бы сразу набирать скопом все доступные квесты. Или какие-то ограничения есть на это? Почему-то до сих пор ни в одном моде (по-моему) это не реализовали. GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Раритетные моды на моем облаке — на память о былом. Ссылка на комментарий
dsh 3 824 Опубликовано 15 Апреля 2018 Поделиться Опубликовано 15 Апреля 2018 @HellRatz наверное никому не нужно, вот и не сделано. Мне например, не нужно. Найди у себя в task_manager.script похожее на вот такое: -- Проверка свойств таска function CRandomTask:check_task_props( task_id ) local t = self.task_info[ task_id ] -- Проверка по активным заданиям данного типа у вендора. if self.active_task_by_type[ t.complex_type ] ~= nil then t.enabled_props = false return end И убери этот блок if end. Вероятно еще понадобится убрать из CRandomTask:task_avail вот такое -- local priors = self.current_parent_type_prior -- if -- priors[ task_desc.complex_type ] -- and priors[ task_desc.complex_type ] < task_desc.prior -- then -- return false -- end Это у меня уже закомментировано, а у тебя, скорее всего, нет. 3 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 16 Апреля 2018 Поделиться Опубликовано 16 Апреля 2018 Там в куче мест выбор идет по тип+квестодатель. Поэтому запрещают брать однотипные. Надо просматривать руками везде, чтобы коллизий не было. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
dPlayer 445 Опубликовано 16 Апреля 2018 Поделиться Опубликовано 16 Апреля 2018 Как сделать проверку на наличие предмета хоть в одном из слотов? Если сравнивать с 0, будет вылет. function s_all_check() local item_in_slot_1 = db.actor:item_in_slot(1) local item_in_slot_2 = db.actor:item_in_slot(2) local item_in_slot_6 = db.actor:item_in_slot(6) if item_in_slot_1() ~= 0 or item_in_slot_2() ~= 0 or item_in_slot_6() ~= 0 then return true else return false end end Ссылка на комментарий
Graff46 598 Опубликовано 16 Апреля 2018 Поделиться Опубликовано 16 Апреля 2018 (изменено) Может нужно сравнивать с nil ? И скобки после переменных не ставить... Изменено 16 Апреля 2018 пользователем Graff46 1 1 Ссылка на комментарий
dsh 3 824 Опубликовано 16 Апреля 2018 Поделиться Опубликовано 16 Апреля 2018 @Graff46 item_in_slot() возвращает клиентский объект или nil, т.ч. достаточно проверять результат на истинность. 1 1 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
The ReapeR 72 Опубликовано 16 Апреля 2018 Поделиться Опубликовано 16 Апреля 2018 (изменено) @dPlayer, function have_any() return (db.actor:item_in_slot(1) or db.actor:item_in_slot(2) or db.actor:item_in_slot(6)) ~= nil end function have_any_opt() local act = db.actor -- сомнительный по выигрышу шоткат, после ZRP шарахаюсь от любого дублирования return (act:item_in_slot(1) or act:item_in_slot(2) or act:item_in_slot(6)) ~= nil end Просто пара примеров, с оптимизацией использования переменных и однотипных вызовов. Изменено 16 Апреля 2018 пользователем The ReapeR 1 1 New Level Changer 5.08: Раритеты ReapeR build 3: Раритеты Я на YouTube: Vincent Vega Ссылка на комментарий
Snowguard 1 Опубликовано 17 Апреля 2018 Поделиться Опубликовано 17 Апреля 2018 Все вопросы касаются Теней Чернобыля. 1) Где можно найти информацию по редактированию (изменению местоположения и интенсивности) "статических" источников звука, по примеру ЧН (например, завывание ветра на верхушке церкви, щёлканье сломанного электрощитка)? 2) Как изменить количество возможных проигрываемых звуков смерти ГГ (в папке actor'a находятся 4 дефолтных звука, их можно заменить, однако дополнительная нумерация, как в случае с гитарными мелодиями, не помогает, необходим файл, где прописаны эти звуки, в конфиге актора проверял, там только звуки повреждений). 3) Амбиент в Тенях Чернобыля играет только днём, ночью его включить, даже через конфиг музыки на локациях, не выходит. Каким образом можно сделать, чтобы амбиент в ТЧ делился на дневной и ночной, как в ЧН и ЗП? P.S. Перелопатил Stalker Inside и этот форум по этим вопросам, ничего не нашёл, заранее прошу прощения за возможную невнимательность. Ссылка на комментарий
Charsi 440 Опубликовано 17 Апреля 2018 Поделиться Опубликовано 17 Апреля 2018 @Snowguard, открываешь уровень в LevelEditor, ставишь куда хочешь Sound Source, настраиваешь его, делаешь Make Game и получаешь level.sound_static в папке с уровнем. 2. зашито в движке. Скрытый текст // actor_defs.h enum ESoundCcount { SND_DIE_COUNT=4 }; // Actor.cpp void CActor::Load (LPCSTR section) ::Sound->create (sndDie[0], strconcat(sizeof(buf),buf,*cName(),"\\die0"), st_Effect,SOUND_TYPE_MONSTER_DYING); ::Sound->create (sndDie[1], strconcat(sizeof(buf),buf,*cName(),"\\die1"), st_Effect,SOUND_TYPE_MONSTER_DYING); ::Sound->create (sndDie[2], strconcat(sizeof(buf),buf,*cName(),"\\die2"), st_Effect,SOUND_TYPE_MONSTER_DYING); ::Sound->create (sndDie[3], strconcat(sizeof(buf),buf,*cName(),"\\die3"), st_Effect,SOUND_TYPE_MONSTER_DYING); 2 Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
alexsimm 373 Опубликовано 17 Апреля 2018 Поделиться Опубликовано 17 Апреля 2018 Ребята, знает кто-нибудь, файл XR_3DA.exe для огсе с какими параметрами собран? в форуме огсе написал,а там по ходу всё умерло... "Народная солянка 2016 в UHD" - мод глобального ретекстура мира СТАЛКЕР ТЧ (мод вышел, качайте) Ссылка на комментарий
gam 117 Опубликовано 17 Апреля 2018 Поделиться Опубликовано 17 Апреля 2018 30 минут назад, alexsimm сказал: файл XR_3DA.exe для огсе с какими параметрами собран? Выкладывались вроде авторские исходники, вот если понадобиться: https://yadi.sk/d/3t-fnQzw3UVKuK 1 Ссылка на комментарий
alex5773 1 330 Опубликовано 17 Апреля 2018 Поделиться Опубликовано 17 Апреля 2018 Вопросик чисто ради интереса) Просто решил вот некоторым неписям нацепить аддоны на стволы(хотя они сами нацепляют потом себе), и сделал сразу это с запятыми. А потом в оригинале увидел что без запятых. Вот и интересно, а как будет правильней? wpn_lr300 = 1, scope silencer launcher\n wpn_lr300 = 1, scope, silencer, launcher\n С запятыми нормально работает, проверил сперва на Волке. В оригинале без запятых. На радаре много с двумя,тремя аданнами на оружии, но в игре не видел ни разу этого. Вот и интересно. Ссылка на комментарий
UriZzz 1 004 Опубликовано 17 Апреля 2018 Поделиться Опубликовано 17 Апреля 2018 @alex5773 думаю - как работает так и правельно 2 2 Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий
Это популярное сообщение. Charsi 440 Опубликовано 17 Апреля 2018 Это популярное сообщение. Поделиться Опубликовано 17 Апреля 2018 @alex5773 так как идет поиск подстроки в строке bScope = (NULL != strstr(V, "scope")); bSilencer = (NULL != strstr(V, "silencer")); bLauncher = (NULL != strstr(V, "launcher")); то можешь писать аддоны в любом порядке или через пробел или через запятую или вообще слитно. 5 Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
UriZzz 1 004 Опубликовано 17 Апреля 2018 Поделиться Опубликовано 17 Апреля 2018 (изменено) @alex5773 я помню только на ДТ наймы со стволами с установленой оптикой, как там в конфигах прописаны аддоны? @Charsi получается, в данной ситуации я прав))) Изменено 17 Апреля 2018 пользователем UriZzz 1 Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти