aka_sektor 1 478 Опубликовано 23 Февраля 2024 Поделиться Опубликовано 23 Февраля 2024 Такой вопрос, как там движок дружит с квестами? Возможно такое, чтобы можно было добавлять новые квесты, скрипты, модели и прочее, а потом загружать сохранение? Может кто-то решил этот момент? Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/386/#findComment-1479800
Pavel_2000 6 Опубликовано 2 Марта 2024 Поделиться Опубликовано 2 Марта 2024 Подключил новую локацию к зп после запаковки а потом распаковки готового алл спавна заметил что много путей walk и look перешли в файл way новой локки Так вот вопрос. Это не критично или я что то сделал не так? Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/386/#findComment-1480158
SoP 130 Опубликовано 3 Марта 2024 Поделиться Опубликовано 3 Марта 2024 Ну если будешь использовать эти пути в своих работах в смартах и логике НПС - конечно нужно соответственно переименовывать, смотреть, что там в look и тестировать потом. Если планируешь все заново пути расставлять - просто удали этот файл путей в СДК. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/386/#findComment-1480184
WinCap 323 Опубликовано 31 Марта 2024 Поделиться Опубликовано 31 Марта 2024 Здравствуйте. Подскажите, пожалуйста, возможно ли из скриптов определить, как и в каком положении перемещается Actor? Спринтует он, бежит, идёт или прыгает? Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/386/#findComment-1481624
WinCap 323 Опубликовано 9 Апреля 2024 Поделиться Опубликовано 9 Апреля 2024 Здравствуйте. Подскажите, пожалуйста, как реализовать схему для зомби, когда они лежат на земле, как бы мёртвые, а при подходе ГГ встают и атакуют? Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/386/#findComment-1482032
h0N0r 383 Опубликовано 9 Апреля 2024 Поделиться Опубликовано 9 Апреля 2024 2 часа назад, WinCap сказал: как реализовать схему для зомби С ТЧ берёшь mob_fake_death.script, дополняешь modules.script, блок - Загрузка модулей монстров: load_scheme("mob_fake_death", "mob_fake_death", stype_mobile) В gulag_general.script находишь блок local job_type_by_scheme и добавляешь: ["mob_fake_death"] = "point_job", Логика: [mob_fake_death] on_info = {=dist_to_actor_le(4)} mob_home@zombie или mob_walker@zombie Ещё есть движ. правка, отключает их видимость (как врагов), когда они в этой схеме. https://bitbucket.org/sv3nk/la-code/commits/67b6d5ea63424d9bacee9e93e34a4e8be759d258 1 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/386/#findComment-1482036
WinCap 323 Опубликовано 26 Мая 2024 Поделиться Опубликовано 26 Мая 2024 Здравствуйте. Помогите разобраться с очередной аномалией Зоны. Я как-то вдруг заметил, что при переходе в секцию "walker" из любой другой, NPC идут не на первую точку пути, а на ближайшую к ним. Подскажите, пожалуйста, так всегда было, с оригинальной игры, или это я чего-то "накосячил"? Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/386/#findComment-1484412
Kirgudu 1 336 Опубликовано 26 Мая 2024 Поделиться Опубликовано 26 Мая 2024 @WinCap, судя по скриптам, так оно и в оригинале. Смотрим xr_walker.script: action_walker_activity:activate_scheme(loading, npc) --> action_walker_activity:reset_scheme(loading, npc) --> self.move_mgr:reset(...) Далее в move_mgr.script: move_mgr:reset(...) --> сброс self.current_point_index = nil (плюс self.can_use_get_current_point_index = false до окончания экстраполяции в extrapolate_callback) --> move_mgr:setup_movement_by_patrol_path() где видим такую развилочку: if self.current_point_index then self.object:set_start_point(self.current_point_index) self.object:set_patrol_path(self.path_walk, patrol.next, patrol.continue, true) else -- наш случай self.object:set_patrol_path(self.path_walk, patrol.nearest, patrol.continue, true) end 1 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/386/#findComment-1484418
WinCap 323 Опубликовано 26 Мая 2024 Поделиться Опубликовано 26 Мая 2024 (изменено) 56 минут назад, Kirgudu сказал: так оно и в оригинале. где видим такую развилочку: Я правильно понимаю, что это, скорее всего, сделано, чтобы находясь в середине пути NPC, после save/load’а, продолжил путь с ближайшей точки, а не топал на самое начало? Надо как-то выкручиваться. Придётся поставить в начале пути ещё один одноточечный путь и промежуточную секцию логики. Изменено 26 Мая 2024 пользователем WinCap 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/386/#findComment-1484421
Kirgudu 1 336 Опубликовано 26 Мая 2024 Поделиться Опубликовано 26 Мая 2024 26 минут назад, WinCap сказал: находясь в середине пути NPC, после save/load’а, продолжил путь с ближайшей точки Точную причину мы, не общаясь с разработчиками, не узнаем, но очень похоже на правду. Я бы тоже так сделал. 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/386/#findComment-1484423
bsanek628 1 Опубликовано 28 Мая 2024 Поделиться Опубликовано 28 Мая 2024 (изменено) Господа, подскажите гайд / инструкцию, который можно почитать, как добавить в игру, в данном случае в ЗП, новые боеприпасы? Ну, как новые, 12х76 "Дротик" вырезанный хочу в игру добавить, для начала. И улучшенный 7,62х54 7Н14 из ТЧ/ЧН. Для обучения, я думаю, пойдёт. ЗЫ. от А до Я, начиная от модели, иконки и описания, до настройки в конфиге, прописке этого патрона в нужных файлах, чтобы игра его читала и не вылетала, прописке торговцам, в тайники и т.д. Ибо полный нуб в этом. Изменено 28 Мая 2024 пользователем bsanek628 Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/386/#findComment-1484493
Norman Eisenherz 354 Опубликовано 28 Мая 2024 Поделиться Опубликовано 28 Мая 2024 По образу и подобию ТЧ: искать в [config\] и [meshes\] упоминания ammo_12x76_dart, делать так же. Для совместимости с ЗП можно скопировать все файлы и настройки обычной дроби, а после задать buck_shot = 1 (одна пуля) и поправить иконку/текст/текстуру. Это не даст точного понятия, что за что отвечает (надо читать справочник или выяснять методом тыка), но это позволит добавить патроны в игру. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/386/#findComment-1484496
bsanek628 1 Опубликовано 28 Мая 2024 Поделиться Опубликовано 28 Мая 2024 (изменено) С этим ладно. Меня также интересует как и куда добавить этот патрон, в какие файлы, чтобы игра видела обновку и не вылетала, а также добавление торговцам и в лут тайников. Плюс сделать "подсветку" патрона при наведении курсора на оружие. Изменено 28 Мая 2024 пользователем bsanek628 Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/386/#findComment-1484498
Zander_driver 10 348 Опубликовано 28 Мая 2024 Поделиться Опубликовано 28 Мая 2024 @bsanek628 Ну очевидно надо добавить секцию патрона в список боеприпасов соответствующих конфигов оружия. Подсветку оттуда же из этих списков сам подтянет движок. А по торговцам и тайникам надо спецов по ЗП дождаться, я им не являюсь. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/386/#findComment-1484503
Norman Eisenherz 354 Опубликовано 28 Мая 2024 Поделиться Опубликовано 28 Мая 2024 Искать упоминания похожих патронов в конфигах со словами trade и treasure (ЗП: secret) в названии. В этом плане игра не отличается от ТЧ: все данные введены вручную, без рандома и часто одинаковыми простынями "не продается / продается по одной цене для всех NPC" – ссылочные секции есть только в настройках лута в [death_generic.ltx] и входящих файлах. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/386/#findComment-1484504
Купер 3 368 Опубликовано 28 Мая 2024 Поделиться Опубликовано 28 Мая 2024 Там только один нюанс: CoP движок рассчитан на два типа боеприпасов на калибр. Баги полезут, емнип, "по мелочёвке". Вроде неправильной иконки на HUD-e etc. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/386/#findComment-1484506
Norman Eisenherz 354 Опубликовано 29 Мая 2024 Поделиться Опубликовано 29 Мая 2024 @bsanek628 В ЗП ввиду спавна тайников россыпью конфиг является текстовым описанием, хотя и не совсем отделен от объектов в игре: с одной стороны, новые предметы не учитываются без правок [all.spawn] и добавления секции [secret] в custom_data каждого объекта; с другой стороны, изменение количества предметов или удаление имеющихся секций конфига в текущей игре все же приводит к пересчету, хотя и по неизвестной логике – 4 предмета, если в конфиге один, два предмета при указании трех и т. п. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/386/#findComment-1484549
SWEAW 2 Опубликовано 30 Мая 2024 Поделиться Опубликовано 30 Мая 2024 Всем привет. Подскажите, пожалуйста, как изменить trade_manager.script, чтобы торговцы обновляли ассортимент не раз в реальные сутки, а раз в несколько игровых, и, не менее важно, чтобы обновление ассортимента не вызывалось сейв-лоадом (потому что это по сути своей абуз). Знаю, что то ли в ОП-2.2, то ли в ОГСР, в Аномали и ее производных есть такие фичи, но грамотно их оттуда выдернуть, даже покурив несколько гайдов и уроков, не получается, там несколько другие файлы и их структура. Сам пытался заменить упоминания time_global() в вышеописанном скрипте на game.time(): Скрытый текст local trade_manager = { } function trade_init(npc, cfg) --' printf("TRADE INIT[%s]", npc:name()) --' if trade_manager[npc:id()] == nil then trade_manager[npc:id()] = {} --' end trade_manager[npc:id()].cfg_ltx = cfg trade_manager[npc:id()].config = ini_file(cfg) -- коэфициенты покупки local str = utils.cfg_get_string(trade_manager[npc:id()].config, "trader", "buy_condition", npc, true, "") if str == nil then abort("Incorrect trader settings. Cannot find buy_condition. [%s]->[%s]", npc:name(), cfg) end trade_manager[npc:id()].buy_condition = xr_logic.parse_condlist(npc, "trade_manager", "buy_condition", str) -- коэфициенты продажи str = utils.cfg_get_string(trade_manager[npc:id()].config, "trader", "sell_condition", npc, true, "") if str == nil then abort("Incorrect trader settings. Cannot find sell_condition. [%s]->[%s]", npc:name(), cfg) end trade_manager[npc:id()].sell_condition = xr_logic.parse_condlist(npc, "trade_manager", "sell_condition", str) -- список закупки str = utils.cfg_get_string(trade_manager[npc:id()].config, "trader", "buy_supplies", npc, false, "") if str ~= nil then trade_manager[npc:id()].buy_supplies = xr_logic.parse_condlist(npc, "trade_manager", "buy_supplies", str) end -- buy_item_condition_factor str = utils.cfg_get_string(trade_manager[npc:id()].config, "trader", "buy_item_condition_factor", npc, false, "", "0.7") if str ~= nil then trade_manager[npc:id()].buy_item_condition_factor = xr_logic.parse_condlist(npc, "trade_manager", "buy_item_condition_factor", str) end end function update(npc) local tt = trade_manager[npc:id()] if tt == nil then printf("TRADE [%s]: tt is nil", npc:name()) return end if tt.update_time ~= nil and tt.update_time < game.time() then return end tt.update_time = game.time() + 3600000 local str = xr_logic.pick_section_from_condlist(db.actor, npc, tt.buy_condition) if(str=="" or str==nil) then abort("Wrong section in buy_condition condlist for npc [%s]!", npc:name()) end if tt.current_buy_condition ~= str then --'printf("TRADE [%s]: buy condition = %s", npc:name(), str) npc:buy_condition(tt.config, str) tt.current_buy_condition = str end str = xr_logic.pick_section_from_condlist(db.actor, npc, tt.sell_condition) if(str=="" or str==nil) then abort("Wrong section in buy_condition condlist for npc [%s]!", npc:name()) end if tt.current_sell_condition ~= str then printf("TRADE [%s]: sell condition = %s", npc:name(), str) npc:sell_condition(tt.config, str) tt.current_sell_condition = str else printf("TRADE [%s]: current = %s sell = %s", npc:name(), tostring(tt.current_sell_condition), tostring(str)) end str = tonumber(xr_logic.pick_section_from_condlist(db.actor, npc, tt.buy_item_condition_factor)) if tt.current_buy_item_condition_factor ~= str then npc:buy_item_condition_factor(str) tt.current_buy_item_condition_factor = str end if tt.buy_supplies == nil then return end str = xr_logic.pick_section_from_condlist(db.actor, npc, tt.buy_supplies) if(str=="" or str==nil) then abort("Wrong section in buy_condition condlist for npc [%s]!", npc:name()) end if tt.current_buy_supplies ~= str then if tt.resuply_time ~= nil and tt.resuply_time < game.time() then return end --'printf("TRADE [%s]: buy_supplies = %s", npc:name(), str) npc:buy_supplies(tt.config, str) tt.current_buy_supplies = str tt.resuply_time = game.time() + 24*3600000 end end function save(obj, packet) local tt = trade_manager[obj:id()] set_save_marker(packet, "save", false, "trade_manager") --' Сохраняем присутствует ли инициализированная торговля в принципе. if tt == nil then printf("TRADE SAVE [%s]: ignored", obj:name()) packet:w_bool(false) return else packet:w_bool(true) end packet:w_stringZ(tt.cfg_ltx) printf("TRADE SAVE [%s]: current_buy_condition = %s", obj:name(), tostring(tt.current_buy_condition)) if tt.current_buy_condition == nil then packet:w_stringZ("") else packet:w_stringZ(tt.current_buy_condition) end printf("TRADE SAVE [%s]: current_sell_condition = %s", obj:name(), tostring(tt.current_sell_condition)) if tt.current_sell_condition == nil then packet:w_stringZ("") else packet:w_stringZ(tt.current_sell_condition) end printf("TRADE SAVE [%s]: current_buy_supplies = %s", obj:name(), tostring(tt.current_buy_supplies)) if tt.current_buy_supplies == nil then packet:w_stringZ("") else packet:w_stringZ(tt.current_buy_supplies) end local cur_tm = game.time() if tt.update_time == nil then packet:w_s32(-1) else packet:w_s32(tt.update_time - cur_tm) end if tt.resuply_time == nil then packet:w_s32(-1) else packet:w_s32(tt.resuply_time - cur_tm) end set_save_marker(packet, "save", true, "trade_manager") end function load(obj, packet) set_save_marker(packet, "load", false, "trade_manager") local a = packet:r_bool() if a == false then printf("TRADE LOAD [%s]: ignored", obj:name()) return end trade_manager[obj:id()] = {} local tt = trade_manager[obj:id()] tt.cfg_ltx = packet:r_stringZ() printf("TRADE LOAD [%s]: cfg_ltx = %s", obj:name(), tostring(tt.cfg_ltx)) tt.config = ini_file(tt.cfg_ltx) a = packet:r_stringZ() printf("TRADE LOAD [%s]: current_buy_condition = %s", obj:name(), tostring(a)) if a ~= "" then tt.current_buy_condition = a obj:buy_condition(tt.config, a) end a = packet:r_stringZ() printf("TRADE LOAD [%s]: current_sell_condition = %s", obj:name(), tostring(a)) if a ~= "" then tt.current_sell_condition = a obj:sell_condition(tt.config, a) end a = packet:r_stringZ() printf("TRADE LOAD [%s]: current_buy_supplies = %s", obj:name(), tostring(a)) if a ~= "" then tt.current_buy_supplies = a end local cur_tm = game.time() a = packet:r_s32() if a ~= -1 then tt.update_time = cur_tm + a end a = packet:r_s32() if a ~= -1 then tt.resuply_time = cur_tm + a end set_save_marker(packet, "load", true, "trade_manager") end ----------- NOT TO DELETE!!!!!!!!! called from engine function get_buy_discount(npc_id) local str = utils.cfg_get_string(trade_manager[npc_id].config, "trader", "discounts", nil, false, "", "") if(str=="") then return 1 end local sect = xr_logic.pick_section_from_condlist(db.actor, nil, xr_logic.parse_condlist(nil, "trade_manager", "discounts", str)) str = utils.cfg_get_number(trade_manager[npc_id].config, sect, "buy", nil, false, 1) return str end ----------- NOT TO DELETE!!!!!!!!! called from engine function get_sell_discount(npc_id) local str = utils.cfg_get_string(trade_manager[npc_id].config, "trader", "discounts", nil, false, "", "") if(str=="") then return 1 end local sect = xr_logic.pick_section_from_condlist(db.actor, nil, xr_logic.parse_condlist(npc, "trade_manager", "discounts", str)) str = utils.cfg_get_number(trade_manager[npc_id].config, sect, "sell", nil, false, 1) return str end Cуть и размерность вроде одинаковая, только одна для времени ИРЛ, вторая для игрового. Но в игре обновление перестало происходить вообще, хотя и вылетов не было. Вторая проблема, с отвязкой от сейв-лоада, вообще с мертвой точки не двигается, не могу понять, почему даже оригинальные реальные сутки напрочь игрой игнорируются, сбиваясь сохранением-загрузкой. Два-три дня уже над этим сижу, близких референсов не нашел, сам пока не вывожу. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/386/#findComment-1484555
abramcumner 1 229 Опубликовано 30 Мая 2024 Поделиться Опубликовано 30 Мая 2024 5 часов назад, SWEAW сказал: Два-три дня уже над этим сижу Не вижу следов логирования в коде. Пока ты точно не установишь, что происходит, понимание может приходить годами и так и не прийти. Стырь откуда-нибудь функцию log/dbglog/... Добавь в найденные тобой места вывод в лог времени, чисел, записываемых/читаемых из нет-пакета, и прочего. Дополняй логирование до тех пор, пока не будешь точно знать, какие условия выполняются или не выполняются и почему. В принципе в этот момент, ты уже будешь знать решение. Если нет, возвращайся с логом. Ровно также и с заменой на игровое время. Не должно быть ситуации "но в игре обновление перестало происходить вообще, хотя и вылетов не было". С помощью логов ты легко увидишь, почему обновление перестало проиходить. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/386/#findComment-1484560
SWEAW 2 Опубликовано 30 Мая 2024 Поделиться Опубликовано 30 Мая 2024 2 часа назад, abramcumner сказал: Стырь откуда-нибудь функцию log/dbglog/... Добавь в найденные тобой места вывод в лог времени, чисел, записываемых/читаемых из нет-пакета, и прочего. Мне и этот дефолтный ЗПшный скрипт не поддается, потому что ни опыта в скриптинге, ни достаточного времени на изучения LuA, ни энтузиазма/понимания по отношению к любому виду программирования нет. Ресурсов хватает пока лишь на попытки адаптаций того, что уже в шаблонном или похожем виде где-то было или есть, собственно за этим я сюда и обратился, возможно, изначально некорректно обозначив просьбу: я ищу код или файлы скриптов из разных модов, где реализованы описанные механики (отвязка ассортимента торговли от сейв-лоада и его обновление по игровому времени). Скачивать целиком моды по 20-30-40 гигабайт ради поиска нескольких текстовых файлов - времязатратно и нерационально. Если ни у кого таких файлов под рукой нет, то ищу указания на ошибку в коде или его дополнения от тех, кто уже с подобным сталкивался/имеет достаточный опыт в этом деле, ведь, как мне кажется, для них это будет на несколько порядков проще, чем мне еще больше пытаться усложнять (добавлять функции) и так плохо воспринимаемую информацию без гарантии по итогу найти решение самостоятельно. Если такого рода помощь в этой теме не получить и она предназначена для другого, подскажите, пожалуйста, куда можно обратиться. Ссылка на комментарий https://www.amk-team.ru/forum/topic/14899-cop-kovyrjaemsja-v-fajlah/page/386/#findComment-1484571
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти