Это популярное сообщение. Dennis_Chikin 3 665 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1083/#findComment-847221
_g.script 3 669 Опубликовано 18 Ноября 2020 Поделиться Опубликовано 18 Ноября 2020 8 минут назад, dsh сказал: в скриптах сделано, что бы волкеров в смарт не принимали, тогда не должен. А если нет, то что должно этому помешать? 8 минут назад, dsh сказал: Это кривые руки мододела. Вот здесь до меня доходит по тихой грусти. Заодно вопросик. Если гулагу потребовалось население, он дёргает непися. Если подходящих на этой локации нет, придут с другой. И вот вопрос - НПС выберет ближайший к себе переход из возможных, что бы добраться на локу с гулагом? Здесь могла быть ваша реклама. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1083/#findComment-1356717
AndrewMor 533 Опубликовано 18 Ноября 2020 Поделиться Опубликовано 18 Ноября 2020 11 минут назад, dsh сказал: Кому должен? Я может неправильно объяснил. Есть непись, у него в кастом-дате смарт_террейн = ноне, и логика - стоять на точке ( или идти по пути, если конечно, нет на этом пути рестров, в которые заходить нельзя). В таком разе он должен тупо выполнять свою работу и никуда от нее не убегать (тем более, на другую локацию). Или я что-то не так понимаю?. Коль так, проясни тонкости, плз. 1 Сталкер - наше всё! Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1083/#findComment-1356718
_g.script 3 669 Опубликовано 18 Ноября 2020 Поделиться Опубликовано 18 Ноября 2020 (изменено) 29 минут назад, AndrewMor сказал: в кастом-дате смарт_террейн = ноне Я уже склоняюсь к тому, что это не желательный, а обязательный пар-тр для чела с персональной логикой при работе с двиглом ОГСР. На ванили этот параметр работает, только если указан в оллспаун и в то же время я не замечал, что бы мобы, заспавненые скриптом с записью в кастомдату, дислоцировались в гулаги Изменено 18 Ноября 2020 пользователем mole venomous Здесь могла быть ваша реклама. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1083/#findComment-1356719
dsh 3 824 Опубликовано 18 Ноября 2020 Поделиться Опубликовано 18 Ноября 2020 38 minutes ago, mole venomous said: Если гулагу потребовалось население, он дёргает непися. Гулаг ничего не дергает. Движок периодически предлается каждого моба со smart_terrain_id == 65535 каждому смарту. Если смарт ответил согласием, движок меняет у этого моба smart_terrain_id на id этого смарта. На этом работа движка закончена. А дальше уже смарт и гулаг работаются с тем, что им предложено. 40 minutes ago, mole venomous said: НПС выберет ближайший к себе переход из возможных, что бы добраться на локу с гулагом? НПС ничего не выбирает. Как движок ему путь построит, так и пойдет. Эмпирически у меня сложилось мнение, что движок строит максимально короткий путь. 40 minutes ago, AndrewMor said: у него в кастом-дате смарт_террейн = ноне В этом случае смарты таких не принимают, поэтому и убегать ему некуда. Правда наличие в кастомной дате [smart_terrain] none = true этого не гарантирует, т.к. имеет значение, когда это появилось в кастомной дате. Если позже определенного момента, то не сработает. 29 minutes ago, mole venomous said: а обязательный пар-тр для чела с персональной логикой при работе с двиглом ОГСР Двигатель не имеет значение. Оригинальный движок работает точно так же. 30 minutes ago, mole venomous said: На ванили этот параметр работает, только если указан в оллспаун Это не так. Работает всегда. Но см. мое замечание выше. Никаких отличий между оригинальным движком и OGSR в этом плане нет. 2 2 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1083/#findComment-1356722
_g.script 3 669 Опубликовано 18 Ноября 2020 Поделиться Опубликовано 18 Ноября 2020 (изменено) @dsh, Благодарю, всё понятно расписал и три вопроса разом закрылись. А то часто много противоречивой инфы или размазано всё на сорок страниц... Изменено 18 Ноября 2020 пользователем mole venomous 1 Здесь могла быть ваша реклама. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1083/#findComment-1356723
Colder 12 Опубликовано 18 Ноября 2020 Поделиться Опубликовано 18 Ноября 2020 Скрытый текст ---Скрипт--- local kits = { [1] = "sewing_weaplinght_", [2] = "sewing_weapweight_", [4] = "sewing_weapnew_", [6] = "sewing_outfit_" } function patch_repair(obj) if obj then local sect = obj:section() local num for k,v in pairs(kits) do if string.find(sect,v) then num = k break end end if num then local cond = math.ceil(obj:condition()*10) start_repair_out(cond,num) end end end function start_repair_out(cond,num) local itm = db.actor:item_in_slot(num) local kit = kits[num] if itm ~= nil then --// проверта что в слоте есть ITEM alife():release(alife():object(slot:num()), true) --/ удаляем обьект libery_mod.actor_random_devices() --// тут спавним (Ран.кол.запчастей) end local snd_obj = xr_sound.get_safe_sound_object([[interface\inv_repair_kit]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) local s = cond-2 local tex_s = "" if s > 0 then tex_s = "Осталось использований: "..s/2 create_repkit(kit..s) else tex_s = "Комплект использован полностью." end local text = "[d_cyan]Разбор окончен!\\n%c[default]"..tex_s send_tip(text) else send_tip("[d_red]Разбор невозможен!\\nОтсутствует объект для разбора!") create_repkit(kit..cond) end end --// ---------------------------------------------- function send_tip(news_text) local snd = xr_sound.get_safe_sound_object([[device\pda\pda_news]]) snd:play(db.actor, 0, sound_object.s2d) local msg = "%c[white]Разбор\\n".."%c"..news_text db.actor:give_game_news(msg, "ui\\ui_iconsTotal", Frect():set(249,940,83,47), 0, 4000) end function create_repkit(section) if system_ini():section_exist(section) then alife():create(section,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id()) end end ----LTX---- [sewing_outfit_10]:conserva visual = new\repair\item_repair.ogf description = 1 inv_name = 1 inv_name_short = 1 inv_weight = 0 cost = 0 inv_grid_width = 1 inv_grid_height = 1 inv_grid_x = 25 inv_grid_y = 39 eat_health = 0 eat_satiety = 0 eat_power = 0 eat_radiation = 0 wounds_heal_perc = 0 eat_portions_num = 1 animation_slot = 4 hud = wpn_vodka_hud [sewing_outfit_8]:sewing_outfit_10 condition = 0.8 inv_name = 2 inv_name_short = 2 [sewing_outfit_6]:sewing_outfit_10 condition = 0.6 inv_name = 3 inv_name_short = 3 [sewing_outfit_4]:sewing_outfit_10 condition = 0.4 inv_name = 4 inv_name_short = 4 [sewing_outfit_2]:sewing_outfit_10 condition = 0.2 inv_name = 5 inv_name_short = 5 ----Вылет---- 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: ...ü ×åðíîáûëÿ\gamedata\scripts\bind_stalker_ext.script:32: attempt to index global 'axr_repair_out' (a nil value) Парни СОС помогите кто-нибудь. В чем ошибка? Пытаюсь реализовать разбор каждого слота по отдельности на запчасти. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1083/#findComment-1356728
naxac 2 586 Опубликовано 18 Ноября 2020 Поделиться Опубликовано 18 Ноября 2020 34 минуты назад, Colder сказал: attempt to index global 'axr_repair_out' (a nil value) Синтаксическая ошибка в скрипте. Проверь синтакс-чекером или луа-плагином в notepad++. Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1083/#findComment-1356729
Colder 12 Опубликовано 18 Ноября 2020 Поделиться Опубликовано 18 Ноября 2020 @naxac, да уже сделал. Все работает. Спасибо! @naxac, Хотя нет все равно не то. Теперь анимация перестала проигрываться и не приходит смс о том сколько применений осталось! Скрытый текст local kits = { [1] = "sewing_weaplinght_", [2] = "sewing_weapweight_", [4] = "sewing_weapsuper_", [6] = "sewing_outfit_" } function patch_repair(obj) if obj then local sect = obj:section() local num for k,v in pairs(kits) do if string.find(sect,v) then num = k break end end if num then local cond = math.ceil(obj:condition()*10) start_repair_out(cond,num) end end end function start_repair_out(cond,num) local itm = db.actor:item_in_slot(num) local kit = kits[num] if itm ~= nil then libery_mod.actor_random_devices() alife():release(alife():object(itm:id()), true) local snd_obj = xr_sound.get_safe_sound_object([[item_sounds\inv_repair_sewing]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) local s = cond-2 local tex_s = "" if s > 0 then tex_s = "Осталось использований: "..s/2 create_repkit(kit..s) else tex_s = "Комплект использован полностью." end else send_tip("[d_red]Разбор невозможен!\\nОтсутствует объект для разбора!") create_repkit(kit..cond) end end --// ---------------------------------------------- function send_tip(news_text) local snd = xr_sound.get_safe_sound_object([[device\pda\pda_news]]) snd:play(db.actor, 0, sound_object.s2d) local msg = "%c[white]Разбор\\n".."%c"..news_text db.actor:give_game_news(msg, "ui\\ui_iconstotal", Frect():set(332,423,83,47), 0, 4000) end А ческер пишет что все нормально Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1083/#findComment-1356730
AndrewMor 533 Опубликовано 19 Ноября 2020 Поделиться Опубликовано 19 Ноября 2020 11 часов назад, mole venomous сказал: На ванили этот параметр работает, только если указан в оллспаун и в то же время я не замечал, что бы мобы, заспавненые скриптом с записью в кастомдату, дислоцировались в гулаги Да-да-да, именно так. Выходит, и в ОГСР также скриптовая обвязка работает? 11 часов назад, dsh сказал: Если позже определенного момента, то не сработает. Позже какого момента? Если НПС уже назначена работа в гулаге? Сталкер - наше всё! Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1083/#findComment-1356735
Это популярное сообщение. dsh 3 824 Опубликовано 19 Ноября 2020 Это популярное сообщение. Поделиться Опубликовано 19 Ноября 2020 9 hours ago, AndrewMor said: Позже какого момента? Если НПС уже назначена работа в гулаге? Не, раньше. После alife():create() уже поздно. Когда мы выполняем alife():create(), прежде чем выполнится следующая строчка скрипта, движок создает объект и вызывает его on_before_register(), потом on_register() и т.д. Например, для сталкера - это se_stalker:on_before_register() и т.д. Далее я привожу цитаты из скриптов ОП-2 2.09, т.к. под рукой есть. function se_stalker:on_before_register() self:fill_exclusives() end function se_stalker:fill_exclusives() self:get_ini() self.smart_terrain_conditions = smart_terrain.read_smart_terrain_conditions( self ) if self.smart_terrain_conditions then for name, condlist in pairs(self.smart_terrain_conditions) do smart_terrain.exclusives[name] = (smart_terrain.exclusives[name] or 0) + 1 end end end function se_stalker:get_ini() if not self.ini_initialized then self.ini = self:spawn_ini () self.ini_initialized = true if self.ini:section_exist("spawner") then self.spawner = xr_logic.parse_condlist(db.actor, "spawner", "cond", self.ini:r_string("spawner", "cond")) end end end Как видно, из on_before_register() вызывается fill_exclusives(), из которого вызывается get_ini(), который сохраняет spawn_ini(), т.е. кастомную дату, в self.ini. Т.е. мало того, что тут вызывается обработка секции [smart_terrain], так и spawn_ini() запоминается. Вот поэтому, если кастомную дату поменять после alife():create(), записав туда [smart_terrain] none = true это вступит в силу только после следующей загрузки сейва. А в on_register() есть вот такой код if self:alive() and self:smart_terrain_id() == 65535 then self:brain():update() end Т.е. есть большая вероятность, что сразу же после возврата из alife():create(), моб уже будет в каком-то смарте и добавление none = true в кастомную дату вообще уже никакого влияния не окажет. Т.е. менять кастомную дату нужно до возврата из alife():create(), внутри on_before_register(). Вот например function se_stalker:on_before_register() ... event( "se_stalker:on_before_register" ):trigger({ sobj = self }) self:get_ini() smart_terrain.fill_exclusives( self ) end 1 5 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1083/#findComment-1356784
AndrewMor 533 Опубликовано 19 Ноября 2020 Поделиться Опубликовано 19 Ноября 2020 (изменено) @dsh, Круто!!! Гран мерси за столь подобное разъяснение! Резюмируя: alife():create() создает НПС, и до выполнения следующей строчки скрипта (например, привязка к смарту), НПС уже может быть назначена работа в свободном смарте. Так? Выходит, чтобы спавнить НПС с привязкой к смарту, нужно модифицировать скрипт, так? Это, так понимаю, единственное правильное решение. Или все-таки правка движка разумнее? Изменено 19 Ноября 2020 пользователем AndrewMor Сталкер - наше всё! Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1083/#findComment-1356786
Okichi 971 Опубликовано 19 Ноября 2020 Поделиться Опубликовано 19 Ноября 2020 (изменено) @AndrewMor, 1) да, только не работа - а может быть назначен любой смарт, согласившийся непися принять. И непись туда пойдет - а вот работу там он получит только тогда, когда дойдет. 2) не обязательно ничего модифицировать - можно просто создать для этого НПС отдельную секцию, там прописать путь к файлу кастомдаты ( именно она будет в таком случае использоваться в alife():create()), и уже в этой кастомдате указать либо конкретный смарт для НПС, либо none = true Именно это хотел донести @dsh, - чтобы уже в момент работы alife():create() была задана правильная ( нужная разработчику ) кастомдата 3) тем, про что написал ДиШ - движок не занимается. Это в скриптах. Изменено 19 Ноября 2020 пользователем Okichi 1 След от кругов на воде - это тоже след (с) Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1083/#findComment-1356789
AndrewMor 533 Опубликовано 19 Ноября 2020 Поделиться Опубликовано 19 Ноября 2020 (изменено) 22 минуты назад, Okichi сказал: да, только не работа - а может быть назначен любой смарт, согласившийся непися принять. Согласен. Я и имел в виду не саму работу, а смарт, который берет НПС к себе. 22 минуты назад, Okichi сказал: не обязательно ничего модифицировать - можно просто создать для этого НПС отдельную секцию, там прописать путь к файлу кастомдаты ( именно она будет в таком случае использоваться в alife():create()), и уже в этой кастомдате указать либо конкретный смарт для НПС, либо none = true Из-за того и весь этот разговор. Есть к примеру в АМК такой скрипт. Назначение логики скриптом, но присобачить принадлежность НПС к конкретному смарту не выходит. Вокруг этого не раз дискуссии велись на страницах форума, и многие спрашивали: как скриптом привязать НПС к конкретному смарту (или не привязывать вообще). Вот теперь dsh подробно расписал механизм, а именно этого и не хватало многим для понимания процесса. А в ванили, и похоже, в более продвинутых движках (типа ОГСР), скриптовая обвязка не менялась. Ведь человек-то не просто так спрашивал. В любом случае, теперь понятен механизм!!! Изменено 19 Ноября 2020 пользователем AndrewMor 1 Сталкер - наше всё! Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1083/#findComment-1356792
Muzafir 19 Опубликовано 19 Ноября 2020 Поделиться Опубликовано 19 Ноября 2020 Скажите, а может быть у НПС несколько секций meet? По типу для walker1 - meet1, walker2 - meet2. Пару дней уже мучаюсь с этим конструктором. Не хочет НПС отрабатывать свою логику и все тут... Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1083/#findComment-1356800
Купер 3 385 Опубликовано 20 Ноября 2020 Поделиться Опубликовано 20 Ноября 2020 @Muzafir, ничего не понятно, но жутко интересно Скрытый текст Условно: [walker@1] meet = meet@1 .... [walker@2] meet = meet@2 [meet@1] ... [meet@2] ... Посмотри как Крот на Агропроме сделан, например. 1 Сталкерский архив Петровича (BFG) Филиал Костра Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1083/#findComment-1356808
Ворон545 393 Опубликовано 20 Ноября 2020 Поделиться Опубликовано 20 Ноября 2020 Приветствую. В NLC7 есть такая интересная вещь: при сильном ранении ГГ "шатает". Не подскажете где ковырять, чтобы этот эффект добавить? Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1083/#findComment-1356836
Muzafir 19 Опубликовано 20 Ноября 2020 Поделиться Опубликовано 20 Ноября 2020 @Купер, ты абсолютно правильно меня понял, хотя ничего не и не было понятно . Об этом я спрашивал. По этой же схеме пытаюсь заставить НПС работать, но он отказывается. Поэтому и закралось сомнение. Спасибо, значит дело в другом. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1083/#findComment-1356851
_g.script 3 669 Опубликовано 20 Ноября 2020 Поделиться Опубликовано 20 Ноября 2020 (изменено) 1 час назад, Dens сказал: И какой из указанных расчетных показателей считается лучшим? Стало быть, где циферки больше. 1 час назад, Dens сказал: правка "циферок в инвентаре"? За NLC 7 не знаю, но почти везде цифры в инвентаре действительно работают на все показатели, кроме пулестойкости. Пулестойкость это damage.ltx. 1 час назад, Dens сказал: правка в секции иммунитета самого костюма Но это проверить же совсем несложно. Изменено 20 Ноября 2020 пользователем mole venomous Здесь могла быть ваша реклама. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1083/#findComment-1356875
Ворон545 393 Опубликовано 20 Ноября 2020 Поделиться Опубликовано 20 Ноября 2020 (изменено) @Dens, В NLC я играл, но параметры брони не правил, поэтому не знаю, повлияют ли правки именно конфигов брони. Зато точно знаю, что заданные авторами параметры работают честно. То есть броня в NLC не просто "шкурка", как в чистом ТЧ. Изменено 20 Ноября 2020 пользователем Ворон545 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1083/#findComment-1356882
Colder 12 Опубликовано 21 Ноября 2020 Поделиться Опубликовано 21 Ноября 2020 Скрытый текст local kits = { [1] = "sewing_weaplinght_", [2] = "sewing_weapweight_", [4] = "sewing_weapsuper_", [6] = "sewing_outfit_" } function patch_repair(obj) if obj then local sect = obj:section() local num for k,v in pairs(kits) do if string.find(sect,v) then num = k break end end if num then local cond = math.ceil(obj:condition()*10) start_repair_out(cond,num) end end end function start_repair_out(cond,num) local itm = db.actor:item_in_slot(num) local kit = kits[num] local s = cond-2 if itm ~= nil then alife():release(alife():object(itm:id()), true) libery_mod.actor_random_devices() local snd_obj = xr_sound.get_safe_sound_object([[item_sounds\inv_repair_sewing]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) create_repkit(kit..s) else send_tip("[d_red]Разбор невозможен!\\nОтсутствует объект для разбора!") create_repkit(kit..cond) end end --// ---------------------------------------------- function send_tip(news_text) local snd = xr_sound.get_safe_sound_object([[device\pda\pda_news]]) snd:play(db.actor, 0, sound_object.s2d) local msg = "%c[white]Разбор\\n".."%c"..news_text db.actor:give_game_news(msg, "ui\\ui_iconstotal", Frect():set(332,423,83,47), 0, 4000) end function create_repkit(section) if system_ini():section_exist(section) then alife():create(section,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id()) end end Всем привет. Парни может все таки кто-нибудь подскажет в чем проблема? Скрипт рабочий но проблема в том что перестали работать анимации и некоторые функции. Отключаю скрипт все нормально. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1083/#findComment-1356922
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти