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

[CoP] Ковыряемся в файлах


Рекомендуемые сообщения

Artos,

закоментировав строку return self.object:is_there_items_to_pickup() и поставив перед ней

self.a.gather_items_enabled = nil

return false

неписи перестают подбирать оружие/предметы...

 

Я это говорю к тому, что если удастся узнать секцию/айди предмета который они хотят подобрать, можно таким образом(естественно добавив пару проверок) сделать "таблицу предметов-исключений"

Изменено пользователем Viнt@rь
Ссылка на комментарий

Viнt@rь, "если удастся узнать секцию/айди предмета который они хотят подобрать" заранее(!), то конечно можно что угодно скриптами изобразить. Но в том то и дело, что пока нам неизветно как этот момент поймать, т.е. что НПС собрался что-то конкретное взять, чтобы запретить ему запретное брать.

Нет смысла, как ты пишешь, издеваться над xr_gather_items.script, запретить можно или в секциях логики для конкретного НПС или чуть подправив одну строку в схеме

st.gather_items.gather_items_enabled = utils.cfg_get_bool(st.ini, section, "gather_items_enabled", npc, false,false)

- (true -> false) запретив вообще подбор...

Однако, запрет вообще подбирать - обеднит игру. Игрок даже не сможет (не по диалогам иль скриптам) передать оружие, броник и т.п. Да и глуповато будут безоружные НПС выглядеть, стОя перед валяющимся оружием и т.п.

Еще раз обращаю внимание на исходный вопрос - в нем говорится о защите от подбора только нескольких конкретных предметов (оружия), а не всея и все.

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Artos, в вопросe нeт уточнeния -что это, тaйник иль... НПС будeт выбрaсывaть ствол eсли он прописaн изнaчaльно... Cпaвнить кaк в ТЧ в рюкзaкaх.

Ссылка на комментарий

Priboj37, прочти все же сам исходный вопрос:

Имеется такой вопрос: как можно защитить валяющееся оружие от шустрых НПС?

Т.е. необходимо сделать так, чтобы НПС не подбирали несколько определееных стволов.

из дальнейних постов становится достаточно ясно, что это имеено оружие, которое заспавнено "на землю" (иль в иное открытое место), очевидно для квестов с актором. Т.е. собственно понятно, что нужно чтобы квестовое оружие долежало до того момента, когда именно актор смог бы его отыскать и взять. Именно это оружие "обезопасить" на 100% достаточно сложно, учитывая "шустрость" НПС по подбору оружия. В чистой игре это не очень заметно из-за малого "радиуса обнаружения" безхозно- валяющегося оружия, но все же "пропажа" не исключена.

 

Вообще не понял это:

НПС будeт выбрaсывaть ствол eсли он прописaн изнaчaльно...
к чему и о чем сказано?

 

Ну а "спавнить в рюкзаках" - и рюкзаков в чистом ЗП нету и... не нам решать о чем говорится в квестах... Одно дело потерянное или выроненное оружие - и специально запрятанное. Уронить в ящик иль рюкзачок - это оч.постараться нужно ;-)

Изменено пользователем Artos
  • Нравится 1

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Привет. При создании новой группировки в ЗП 1.6.02 получаю такой вылет:

Expression : fatal error
Function : CInifile::r_string
File : D:\prog_repository\sources\trunk\xrCore\Xr_ini.cpp
Line : 513
Description : <no expression>
Arguments : Can't find variable splash1_hits_count in [wpn_knife]

 

Пожалуйста, помогите с решением проблемы

Изменено пользователем User_X.A.R26
Ссылка на комментарий

User_X.A.R26, добавь в секцию [wpn_knife] строку splash1_hits_count (походу с числовым значением)

Изменено пользователем Viнt@rь
Ссылка на комментарий

Вопрос по свойствам артефактов(помню уже спрашивали подобное, но не смог найти где, юзал поиск, тоже безрезультатно), как их вычисляет(переводит), что с ними делает движок, но почему в конфиге написано например 0.001 а в игре показывает 1????

Изменено пользователем ColR_iT
Ссылка на комментарий

Приветствую!

Сколько не ковырялся в файлах игры, сколько не читал тем и туторов на этом форуме и на других, но так и не смог найти ответ на свой вопрос...

Как сделать так, чтобы оружие выпадающее с NPC или получаемое ГГ любым другим способом (т.е. всё оружие в игре без исключения) было на 100% исправно? Я уже убрал износ из файлов конфигурации оружия и апгрейдов оружия. Но эти параметры отвечают за износ оружия при использовании ГГ...

Помогите, пожалуйста, ответить на этот вопрос или ткните носом, если ответ уже где-то дан.

Спасибо!

 

PS^ Речь идёт о СТАЛКЕР Зов Припяти...

Изменено пользователем independent
Ссылка на комментарий

independent, совершенно непонятно как и каким ты пользовался поиском, т.к. только на этом форуме ответ на основной вопрос (порча оружия выпадающего с NPC) давался десятки раз. Неужели тебе не попадались(?) упоминания про death_manager.script, в котором сами разработчики игры оставили комментарии к соотв.строкам кода: "--' Тут надо уменьшить кондишн оружия".

В ЗП только чуток изменено и "поломку" для всего оружия, находящегося у НПС, выполняет вынесенная отдельная функция с названием говорящим само за себя: 'set_weapon_drop_condition'. Изменив или закомментировав эту функцию можно добиться, что все оружие у НПС будет или тем, каким оно ему досталось или "как от ремонтника".

Желать же: "всё оружие в игре без исключения было на 100% исправно" - чистой воды читерство, ИМХО, да и врядли тебе по силам отследить именно 100%, т.к. и оружие порою заведомо спавнится "поломаным", и в игре хиты, полученные объектами/предметами все же движек "считает", а не скрипты. Т.о. любое попадание пули/дроби/осколка/... в оружие - приводит к его порче.

В общем, хотя я и против тупого читерства, но ... все же дам совет, дабы не плодить в топике пустой флуд:

- по "выпадающему" оружию - ковыряй death_manager.script

- по оружию, которое "получает актор" - отслеживай коллбэк актора на получение предметов в свой инвентарь (on_item_take) и ... ремонтируй его "налету" своим скриптом, точнее простенькой строкою.

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Artos, Спасибо за попытку помочь.

 

independent, совершенно непонятно как и каким ты пользовался поиском, т.к. только на этом форуме ответ на основной вопрос (порча оружия выпадающего с NPC) давался десятки раз. Неужели тебе не попадались(?)

Я специально попытался ещё раз воспользоваться поиском по ключевым словам из вашего сообщения, но опять не нашёл в этой теме ничего полезного.

Файл death_manager.script отыскал, но отредактировать должным образом не смог, так как не являюсь ни скриптовиком, ни хотя бы программистом. Попробовал по наитию поменять пару значений, но в одном случае эффекта было 0, во всех остальных получил вылеты + 1 ресет компа. Правил вот эти строки:

item:set_condition((math.random(40)+40)/100) (их таких 2 шт.)

local condition = (math.random(40)+40)/100 (1 шт.)

Насколько я понял число после дроби означает максимальное здоровье вещи, поэтому пытался играться со значениями "40". Вообщем результат описал выше... Сохранёнка загрузилась всего один раз, да и то без эффекта...

 

- по оружию, которое "получает актор" - отслеживай коллбэк актора на получение предметов в свой инвентарь (on_item_take) и ... ремонтируй его "налету" своим скриптом, точнее простенькой строкою.

Такой вариант меня бы тоже вполне устроил. Чем то напоминает работу тренера, который я использовал до последнего времени. Но так как он использует слишком много нужных клавиш для своей работы, то его использование не совместимо с нормальной игрой...

И, кстати, раз строка эта настолько проста, то не проще было бы её написать? Тогда и мне бы не пришлось писать столь пространное сообщение в ответ...

 

Желать же: "всё оружие в игре без исключения было на 100% исправно" - чистой воды читерство, ИМХО

Что же касается моральной стороны вопроса, то и у меня есть свои мотивы для выкорчёвывания из игры износа оружия... Начиная от личной неприязни к этому аспекту многих РПГ-игр и заканчивания недоумением по поводу заклинивания "калаша" после 3-4-х рожков. И раз уж у неписей оружие не клинит, то и износ им не к чему, а мне какой-никакой доход от лута...

Ссылка на комментарий
И, кстати, раз строка эта настолько проста, то не проще было бы её написать? Тогда и мне бы не пришлось писать столь пространное сообщение в ответ...

Нередко "простота - хуже воровства"... Мы в разделе "Школа моддингу" и цель раздела - помочь самим начинающим модмейкерам научиться делать то, что им захотелось, а не делать за них и/или давать им готовое (нахаляву)!

 

Сам же сетуешь, на попытки поискать, и именно твои недостатки (отсутствие собственного опыта) в составлении запроса и служат тебе плохую службу, "украдывая" и время и недополученные знания/опыт.

Тупой копипаст "даденого" хорош только в какой-то одной конкретной ситуации, и хотя экономит порою время, но это только в сию минуту и тормозит работу своею головою, развращая на получение халявы. Через пару шагов или в чуть измененной ситуации - тебе потребуется опять писанина в форум и вопрошалки по простеньким вопросам. Однако, все меньше тех, кто может и хочет читать и давать ответы на подобные открытия америк...

 

Далее не собираюсь продолжать флуд и тем более - давать готовенькое. Не понимаешь в скриптах - все для возможности их начать понимать имеется (кроме твоих желаний). Хочешь только цифирьками в конфигах моддить - или приземлись в своих пожелалках, или жди тех, кто за тебя их тебе сделает. К моддингу, и тем более к обучению, это уже не имеет никакого отношения. ИМХО.

 

 

 

P.S. Было бы очень неплохо, если бы ты убрал свои "изыскания" под спойлер!

Так и модератору меньше мороки и другим не будет примера как НЕ нужно делать (хотя и твоя "цель" достигнута).

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Artos я вас понял.

Пока ждал ответа сам покумекал и перебрал ещё несколько вариантов правки файла death_manager.script и нашёл таки рецепт решения :

 


local item_id = item:id()
local item_in_slot = npc:item_in_slot(2)
if item_in_slot ~= nil and item_in_slot:id() == item_id then
--' Тут надо уменьшить кондишн оружия
item:set_condition(100)
return
end
item_in_slot = npc:item_in_slot(3)
if item_in_slot ~= nil and item_in_slot:id() == item_id then
--' Тут надо уменьшить кондишн оружия
item:set_condition(100)
return
end
-- npc:mark_item_dropped(item)
local item_in_slot = npc:item_in_slot(4)
if item_in_slot ~= nil and item_in_slot:id() == item_id then
return
end
if not npc:marked_dropped(item) then
-- printf("releasing object ["..item:name().."]")
alife():release(alife():object(item:id()), true)
end
]]
end
function set_weapon_drop_condition(item)
local condition = 100
--printf("condition [%s]", tostring(condition))
item:set_condition(condition)
end

 

 

Задача решена. Artos спасибо вам огромное за помощь! Не знаю сколько бы ещё я тыкался по углам как слепой котёнок. Удачи вам!

Изменено пользователем independent
  • Нравится 1
Ссылка на комментарий

Предыдущее сообщение уже не возможно отредактировать (да простят меня модераторы за мультипост).

 

Решил продолжить ковыряние в конфигах игры. На этот раз пытаюсь поиграться с балансом группировок на локации Юпитер. Решил дать одной из группировок глобальное преимущество, то есть сделать так, чтобы за неё спавнились только NPC с рангом Master с "характерами" из файла /gamedata/configs/gameplay/character_desc_general.xml Первое ,что я попытался сделать это тупо скопировать профили NPC из раздела "Master" во все остальные, но при таком раскладе игра даже не запустила начальное меню. Можно менять rank, оружие, деньги как угодно, но нельзя трогать названия объектов (это я выяснил опытным путём). Вооружил всех NPC группировки начиная от новичков и кончая ветеранами крутыми стволами, повысив всем rank до 100. Но искомого результата это не дало. Всё равно спавнится весь зоопарк, только теперь разьве что у новичков можно встретить крутые стволы. Задачу спавнить за группировку только NPC одетых в тяжёлую броню (в идеале только в экзу) никак не получается решить. Смотрел и редактировал файлы spawn_sections_general, spawn_sections_jupiter - результата не дало. Помнится мне в ТЧ был файлик se_respawn.script, который отвечал за процентное соотношение спавна членов группировки... в ЗП не нашёл даже похожего...

Прочитал много туторов по созданиям группировок, но не нашёл ни одного по редактированию и ребалансированию уже существующей...

Прошу помощи у коммьюнити. Какой файл ковырять?

Спасибо

Ссылка на комментарий

independent, неплохо было бы изучить механизм спавна в ЗП, он отличается от ТЧ и сделан довольно просто - об этом куча статей везде уже есть.

В файлах gamedata\configs\scripts\jupiter\smart ищи конфиги смартов, в которых прописан респавн (respawn_params ) с соответствующими секциями спавна отрядов. Ну и меняй все отряды на duty_sim_squad_veteran. В т.ч. смотри файл gamedata\configs\misc\simulation.ltx - там прописаны отряды, спавнящиеся в начале игры.

Ссылка на комментарий

Здравствуйте, мужики.

Не первую неделю забиваю себе голову вопросом: секция [stalker_terrain] в конфиге сталкера (да и во всех конфигах монстров) за что отвечает? За доступные для посещения граф-поинты в offline? Если так, то для чего у каждого смарта (в оригинале) прописывается код тиррейна (255,255,255,135), или NPC в offline в ЗП бродят так же по смартам, либо исключительно по ним?

P.S. Голову этим забиваю по причине того, что после того, как посплю (часов 5) на новой локации на смарте появляются собаки\кабаны\коты\крысы\бандосы, хотя в симуляции они не прописаны...

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

Ссылка на комментарий

Привет,подскажите пожалуйста какой xml в configs\ui в CoP отвечает за изменение интерфейса инвентаря (в SoCh проблем не составляет,это inventory_new.xml) Конкретно интересуют - слоты пистолета и автомата,хотелось бы изменить их ширину,в противном случае-наблюдаю такое http://i-fotki.info/11/789a35d5078533f53d19534e80e57b2259b308136169422.jpg.html

Кому-то не критично,но хотелось бы узнать,где менять эти координаты.

maxgorod.gif

Ссылка на комментарий

@independent поставь ранг в 900

@сталкер лом,собаки, кабаны, и тп. в симуяции прописанны по любому, пусть даже не совсем в том месте где ты их видишь. Про маску доступных графов подождем ответа Artos'а, надеюсь он сможет разложить по полкам что к чему :)

Изменено пользователем Andrey07071977
Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   1 пользователь

×
×
  • Создать...