Artos 99 Опубликовано 15 Октября 2012 (изменено) Clayman, вот как раз не 'просто'... ;-) Да, в чистой ЗП все на camp перевели, но как не было анекдотов (jokes) даже в ТЧ (их там вырезали), так и и тут - только "рассказы" (story). Реакции на рассказанный анекдот тоже нет (смех иль еще чего...). В ТЧ все давно уже вернули и, как говорил, по готовому несложно в ЗП добавить. Да и сам пишешь, сидеть приходится задавать самому во второй схеме (в путях), в отличии от kamp'а, в котором и сам сядет (где укажешь), да еще периодически меняет позу, пересаживается... В общем три варианта даны, а уж какой "проще" для TORR'а (иль для кого другого) - пусть сам выбирает. Изменено 15 Октября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 15 Октября 2012 (изменено) А мне и та и другая не по душе ;-). И kamp имеет изъяны: чтобы не горели неписи в кострах, приходя к ним в оффлайне - путей нужно два. Сам камп хоть и соответствует костру, но все же костер - отдельная точка (позиция объекта). Неписи конечно вольготно у костра себя ведут, но ... если у костра матрац иль подобное валяется - не видят разници сидеть на земле иль на матрасике. Про camp ты уже написал заморочки, которые вроде решают минусы kamp'а, но лишают вольности поведения неписей и сидят как прописано, т.е. никакого AI. По-хорошему, эти схемы срастить нужно, чтобы парой-тройкой доп.параметров можно было задавать иль вольное поведение иль усаживать в нужную точку. Примечание: Уже делал подобное (для ТЧ, но еще не публиковалось) и довольно неплохо получалось. Изменено 15 Октября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 15 Октября 2012 (изменено) Batment, поставить проверку условия (прекондишн) на "получения" инфопоршня... - это даже понять сложновато. Если тебя интересует, как в диалоге проверить имеет ли актор какой-то конкретный инфопоршень (проверка наличия инфопоршня), то очень странно, что в уже готовых диалогах игры ты не увидел кучу интуитивно понятных строк типа: <has_info>tutorial_wounded_help</has_info> ну а для скриптового диалога применяется метод AddHasInfo("tutorial_wounded_help") (читаем ФАКи!) Изменено 15 Октября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 17 Октября 2012 (изменено) Shredder, про упаковку файлов CoP уже было обсуждение, начало тут: #4069 , а тут #4074 указат рабочий вариант с xrCompress.exe. Желание запихнуть свои файлы в папку mods/ врядли реализуемо, т.к. в CoP для патчей (дополнений) уже определена patches/, а попытки прописать старую папку и положить в нее какой-либо архив приводит к вылетам на старте игры. Callisto, Как уже указал ColR_iT, интересующие тебя параметры считываются единожды на старте игры и далее запоминаются движком. "Частота применения" - собственно уже в большинстве самих параметрах заложена (читаем комменты к ним). Ведь в оновном это скорости изменения значения, и по определению имеют размерность 'ед/сек', В данном случае имеется ввиду игровая секунда, т.е. зависящая от тайм-фактора в игре. Т.о. "частота применения" будет синхронна с обновлениями актора (в среднем ~20...50 ms реального времени), но значения будут изменяться в соответствии с периодом в игровую секунду и по сути не зависят от флуктуаций периодов апдейтов самого актора. И, конечно же, различные внешние воздействия на актора, как то получение хитов, поедания аптечек и т.п. будут приводить к скачкообразным изменениям. Изменено 17 Октября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 18 Октября 2012 (изменено) Shredder, о проблемах говорилось не о конкретно именно к папке "mods/", а о проблемах для папки, которая определена с помошью переменной $mod_dir$. Архивы то из такой папки читаются (если подходящего формата), что говорит о том, что движек считывает эту переменную, но ... попробуй как перекить родные патчи (xpatch_0X.db) из patches/ в такую mods/. Если игра и запускается, то уже даже главное меню корежится. Так зачем тужится делать 'аля ТЧ', добавляя "чужеродную" папку(?), когда для ЗП есть своя аналогичная возможность, расчитанная именно на эту версию. Изменено 18 Октября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 19 Октября 2012 (изменено) Shredder, Программисты GSC уже определили правильное размещение патчей/модификаций в папке patches, заменив ею бывшую mods, а ты, делая мод "для других", заведомо обязываешь игрока в мод залезать в общий конфиг-файл fsgame.ltx и править его, добавляя туда рудиментарный параметр(папку), криво дублирующий уже имеющийся - вот это то как раз скорее приведет к печальному исходу... ИМХО. Ну да, дерзай, возможно позже сам поймешь допущенную оплошность, неочевидную на первый взгляд. Примечание: (для размышления) Реанимированная папка mods имеет приоритет ниже чем patches, что для создания мода уже проблема. Изменено 19 Октября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 31 Октября 2012 (изменено) Сталкер Лом, причина ошибки в том, что разработчики поленились сделать еще одну проверку на наличие поля 'job_link' в таблице непися. Доработай сам, добавив в 353-ю строку: if self.npc_info[obj.id].job_link then self.npc_info[obj.id].job_link.npc_id = nil end (или можно просто закомментировать эту 353-ю строку, т.к. следующей строкою все поле в таблице обниляется...) В тулбаре окна ответа имеется слева третья иконка "Специальные ВВ-коды (зеленоватый квадратик)" - вот из низпадающего списка при нажатии на эту иконку и выбирай нужное, в том числе и для спойлера. Можно и просто "ручками", вставляя нужные тэги в соотв.места текста: [spоiler]Твой скрытый текст[/spоiler] <- (все символы в тэгах латиницей!) Изменено 31 Октября 2012 пользователем Artos 1 "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 2 Ноября 2012 (изменено) Сталкер Лом, исходя из этих иль любых других вылетов, следует то, что в первую очередь нужно искать и устранять причину, а уж потом (не найдя или на скорую ругку) ставить "костыли" в виде доп.проверок. В твоем случае, вероятно, не все гладко с гулагами и их работами, поэтому и не происходит полная инициализация всех параметров в гулагах для неписей. Нужно искать конкретных "виновников" (гулаг/нпс) и причину и или исправлять ошибку или, если "так и задумано", вносить необхожимык доп.проверки. Тут единых рецептов нет, т.к. что конкретно ты (иль кто-то иной) надобавлял в коды только тебе и известно. Если в исходной игре нет вылетов, а у тебя появились - то или нужно исправлять свои доп.коды, или подстравивать исходные под свои. Ответ каким путем идти может дать только анализ добавлений и исправлений и твоя голова. Sektor1986, в первую очередь нужно научиться читать логи. Тебе движек соощает, что для используемого тобою объекта класса (вероятно для "карлика") нет метода 'smart_terrain_task_activate'. Или ищи ошибку с объектом, или меняй ему класс на более подходящий, или вноси доп.условие (if not IsStalker(obj) and obj.smart_terrain_task_activate then ...) P.S. Sektor1986, не нужно "размазывать сопли" в этом топике... Возникли проблемы/вопросы по моделям - велкам за помощью в топики Моделирование в Maya . Моделирование в 3DS MAX 8 . или [CoP] Вопросы по SDK . Однако не следует ждать помощи, а следует ее самому искать и использовать. Изменено 2 Ноября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 5 Ноября 2012 (изменено) stalkerok007, в level_tasks.script из ТЧ смотришь какими методами устанавливаются/удаляются метки (типа level.map_add_object_spot - они не менялись в ЗП), в топике Справочник по функциям и классам или кодах самой игры узнаешь как ими пользоваться и, или пишешь себе аналогичные функции для установки меток, или каждый раз используешь прямое указание методов (что и делают сами разработчики в ЗП). Заодно можно в lua_help.script узнать о добавленном в ЗП методе add_location_type для 'cse_alife_online_offline_group' Изменено 5 Ноября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 7 Ноября 2012 (изменено) Akella-96 aka SvD, гадать по твоим вылетам бесмыссленно, т.к. отсутствует какая-либо полезная информация и причин может быть великое множество. Засучивай рукава и научись выводить в лог-файл технологическую информацию (спавн и инициализация объектов, логики и т.п.) - только так сможешь найти причину и исправить ее. Или же откатывайся на прежние коды, когда не было ошибки и, постепенно добавляя, проверяй когда возникнет проблема - вот тогда с ней и разбирайся. А вот повторять свои вопросы не стОит, это нарушение правил и наоборот может затруднить получение дальнейших ответов. Если никто не может и/или не хочет отвечать - задумайся, может твой вопрос таков, что не хочется отвечать и стОит его изменить, добавив полезной информации, вместо "криков помогите!"?! Изменено 7 Ноября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 9 Ноября 2012 Sektor1986, твой вопрос более уместен и имеет шансы на ответ в тематическом топике: Сообщество Мапперов "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 10 Ноября 2012 Callisto, С одной стороны, в чистой игре неписи не подбирают одиночные предметы, а обыскивают только трупы... Так что не требуется "защищать". А с другой, если используется сторонняя схема собирательства, то достаточно в нести в нее желаемые предметы "не для подбора" в списки исключений, но это уже зависит от реазизации конкретной схемы (скрипта). "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 10 Ноября 2012 Callisto, и правильно, что не соглашаешься "в корне" , однако тогда все гораздо сложнее ... и, по началу не стал "заморачивать". 1. Все же некорректно делать сравнения специально выброшенного под нос неписю предмета с "валяющимся", о чем пишешь в вопросе... Конечно, если выбросить "под нос", то некоторое время ((мили)секунды) предмет "валяется", и НПС даже без схемы собирательства (т.е. в чистой игре) подберет, если оружие и если оно ему по рангу. Вот тут и есть частичные подсказки, если не хочешь чтобы оружие подбиралось: - делай его недоступным "по рангу" для непися (однако, не исключено, что может попасться тот кому по рангу оно подойдет); - "клади" оружие на такие дистанции или в такие места, где НПС не реагируют на него, т.е. не включается действие "подобрать предмет". 2. Ты совершенно логично предполагаешь, что неписям присуща некая схема, когда они все же подбирают валяющиеся предметы. И даже можно найти в кодах упоминание неких действий (action) типа stalker_ids.action_gather_items. Вот только они зашиты в движок... а значит недоступны для гибкого управления. т.е. невозможно указать конкретный предмет "чтобы не подбирали". Может быть кто-то еще подскажет как недопустить "подбора конкретного оружия", но пока, вероятно, имеются только два способа: а) оружие не должно быть доступно для НПС по рангу (т.е. оно ему "не интересно") или б) мониторить состояние интересующего оружия и, в случае его "подбора" (появляется владелец) - принудительно "отбирать" и возвращать на место. Оба способа имеют изъяны и ограничения и их требуется и учесть и преодолеть. Ну и из области "пофантазируем": если валяться будет "фейковое оружие", т.е. вроде как оружие (визуал, иконка, имя), но, например, сделанное на классе "не оружия" (например еды иль антирада), то ... НПС такой предмет не подберут (в чистой игре), а при подборе актором - тут же подменять фейковое на настоящее... klesov1407, Краткий ответ: невозможно к костюмам прикрутить автозахват целей 'как в бинокле или прицелах'. Сталкер Лом, приоритеты для работ "находятся" только в конфигах, где эти работы прописаны, а в смарт-тирейнах (гулагах) они только учитываются при выдаче. "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 10 Ноября 2012 (изменено) Callisto, как раз критерий "ствол хуже/лучше" для НПС и определяется настройками конфиг-файла mp_ranks.ltx.т.е. в зависимости от ранга. Точнее, критерий тут не "хуже/лучше", а "не по рангу" и, подобрать то могут и худшее (в инвентарь), но не подберут то, которое им не по рангу. Легко увидеть в игре, как новички игнорируют различное "крутое" оружие, предпочитая обрез иль ПМ... (не логично, но так разрабы реализовали элемент баланса в игре) Изменено 10 Ноября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 10 Ноября 2012 (изменено) _Призрак_, а можно хотя бы тезисно привести вариант реализации подобного?! Если ты имеешь ввиду типа amk_target.script по визуализации псевдо-активных рамок по сопровождению цели - то это никак не 'как в бинокле или прицелах', да и "костюм" тут если только "за уши" притянут. stalkerok007, учись в первую очередь самостоятельно искать ответы на свои вопросы, а уж потом, не найдя ответов, задавай их другим. Зная имя метки - легко простым поиском по имени найти в ресурсах игры все что связано с этим именем. Легко найти и увидеть где прописаны разработчиками игры различные метки, т.к. даже само имя конфиг-файла подсказывает: \gamedata\configs\ui\map_spots(_16).xml. В модах могут быть прописаны и в других файлах, где захотелось моддмейкерам. Изменено 10 Ноября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 10 Ноября 2012 (изменено) stalkerok007, подобных вопросов каждый начинающий может задавать великое множество... Вот только отвечать на них мало кому захочется, т.к. толковать уже написанное очень скоро надоедает. Уже ранее писал, чтобы заглянул в топик-справочник и посмотрел бы как используется метод. Неужели требуется пояснять, что 1-ым аргументом идет именно story_id и "вписывать" его в приведенных кодах уже не требуется, он уже "вписан" (self.current_target иль t_target). Ну а имя метки - идет вторым аргументом ("ui_storyline_task_blink"). Далее, плз, читай скрипты (это в переводе "сценарий"!) и сам толкуй их на базе полученный знаний из мануалов по Lua и из различных справочников. (для портянок кодов на форуме принято использовать тэги спойлера) P.S. Сорри, обшибся, поспешив с ответом, исправляюсь: Легко увидеть как ставится метка по story_id в ТЧ - т.о. делай в точности так как в тобою же упомянутом скрипте level_tasks.add_location(story_id, location, hint), т.е. получай игровой id по story_id и ставь метку. Или скопируй себе в удобное место (в свой скрипт) указанную функцию и используй ее в ЗП так же как в ТЧ. Изменено 10 Ноября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 10 Ноября 2012 (изменено) Priboj37, ты прочел вопрос и то, что ниже? Какая разница для НПС, квестовым-итемом является оружие иль нет? Подгребают все, что соответствует "оружие по рангу". И в какой такой файл нужно/можно секцию (иль что иное) прописать, чтобы встроенная в движок схема подбора не срабатывала? (речь не идет о сторонней AI-схеме подбора...) Изменено 10 Ноября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 11 Ноября 2012 (изменено) Viнt@rь, в движок вшита не столь 'функция', а весь алгоритм подбора предметов (не только оружия). Какав этот алгоритм - только можем гадать. ;-( Внешний скрипт xr_gather_items.script , который появился только в ЗП, дает возможность включать или отключать некий кусок алгоритма (подозреваю не только оружия), но ни коим образом не дает возможность исключить/запретить подбор именно какого-то конкретного предмета(ов). Упомянутая строка ( return self.object:is_there_items_to_pickup() ) всего лишь возвращает булево значение о том, включен ли вообще подбор или нет, т.е. то, что задано в конфиге логики. Т.е. можно неписю принудительно запретить что-то подбирать вообще, но не что-то конкретное (дефолтно все и всем разрешено). Изменено 11 Ноября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 11 Ноября 2012 (изменено) 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) запретив вообще подбор... Однако, запрет вообще подбирать - обеднит игру. Игрок даже не сможет (не по диалогам иль скриптам) передать оружие, броник и т.п. Да и глуповато будут безоружные НПС выглядеть, стОя перед валяющимся оружием и т.п. Еще раз обращаю внимание на исходный вопрос - в нем говорится о защите от подбора только нескольких конкретных предметов (оружия), а не всея и все. Изменено 11 Ноября 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 11 Ноября 2012 (изменено) Priboj37, прочти все же сам исходный вопрос: Имеется такой вопрос: как можно защитить валяющееся оружие от шустрых НПС?Т.е. необходимо сделать так, чтобы НПС не подбирали несколько определееных стволов. из дальнейних постов становится достаточно ясно, что это имеено оружие, которое заспавнено "на землю" (иль в иное открытое место), очевидно для квестов с актором. Т.е. собственно понятно, что нужно чтобы квестовое оружие долежало до того момента, когда именно актор смог бы его отыскать и взять. Именно это оружие "обезопасить" на 100% достаточно сложно, учитывая "шустрость" НПС по подбору оружия. В чистой игре это не очень заметно из-за малого "радиуса обнаружения" безхозно- валяющегося оружия, но все же "пропажа" не исключена. Вообще не понял это: НПС будeт выбрaсывaть ствол eсли он прописaн изнaчaльно... к чему и о чем сказано? Ну а "спавнить в рюкзаках" - и рюкзаков в чистом ЗП нету и... не нам решать о чем говорится в квестах... Одно дело потерянное или выроненное оружие - и специально запрятанное. Уронить в ящик иль рюкзачок - это оч.постараться нужно ;-) Изменено 11 Ноября 2012 пользователем Artos 1 "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение