Artos 99 Опубликовано 25 Октября 2011 А стОит ли искать черную кошку в темной комнате? (тем более ее там скорее всего и нет!). На месте программиста, который писал бы интерфейс к поясу, я бы одним из первых фильтров по параметрам предметов в рюкзаке, отсеял бы все предметы не помещающиеся в одну клетку на которую расчитан исходный пояс. ... "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 27 Октября 2011 FLIKER У тебя что для твоего darkscape допускаются координаты [164110.468750][-107479056.000000][274200834650121210000000.000000]? Если да - то ты действительно 'космическую' локацию сваял ... вот игра и не понимает тебя. ;-) Перепроверяй корректность параметров. "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 27 Октября 2011 (изменено) Callisto Размышления действительно не совсем в ту сторону ... Файл fsgame.ltx определяет пути до различных папок для игры, и даже позволяет несколько вмешаться в порядок чтения файлов, но не задает порядок распаковки из пак-файлов. Первый параметр в каждой строке означает рекурсию чтения (перечтение, повторное прочтение) данной папки после распаковки основных пак-файлов игры, т.е. например: $game_data$ = true | false | $fs_root$| gamedata\ - тут 'true' - заставляет игру перечитать папку 'gamedata'. Однако что же получается ... 1. Игра изначально не предполагает наличие папки 'gamedata'. 2. При запуске приложения (игры) распаковываются из корня игры ($fs_root$) основные пак-файлы 'gamedata.dbN'. Порядок распаковки определяется наличием маски расширения 'db' и алфавитным порядком последующих за маской символов. 3. После распаковки в виртуальную папку основных игровых архивов рекурсивно перечитываются все файлы из папки $fs_root$\gamedata\, что позволяет вносить изменения прямой правкой нужных файлов в этой папке. 4. В последнюю очередь распаковываются в виртуальную папку пак-файлы из папки указанной переменной $mod_dir$ (\mods). Порядок распаковки аналогичен распаковке 'gamedata.dbN', но(!) тут маской является 'xdb' и имя пак-файлов также подчиняется алфавитному порядку. Можно заметить, что в данном случае какой-либо возможности поменят порядор распаковки в виртуальную папку с которой и работает игра - невозможно. Можно только удалить *.xdb* файлы (распаковав их при необходимости в папку 'gamedata') или же запаковать в последний по алфавиту *.xdb*-файл свои актуальные правки ... Добавлено через 8 мин.: Bobenich Покопаайся в '\gamedata\config\creatures\m_stalker.ltx'. Интересующие параметры смотри в статьях/ФАК'ах (коих немало в сети и на этом сайте). Изменено 27 Октября 2011 пользователем Artos 1 "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 28 Октября 2011 Callisto Для всех файлов игры действует одно ограничение на размер - его определяет возможность файловой системы твоего диска. Если игра для себя и имеешь NTFS - хоть все файлы в один db. можешь запаковать. Но если ты модмейкер и даешь свой мод для других - то не факт что у всех компы потянут большие размеры ... точнее просто на диск не поместятся/не распакуются. В общем, делать пак-файлы по 1 Gb - вполне можно для всех применений. "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 2 Ноября 2011 CRAZY_STALKER666 Для схемы 'walker' обязательными являются два параметра: path_walk и path_look (читаем туторы!) "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 11 Ноября 2011 (изменено) alex5773, и оригинальный amk_offline_alife.script из AMK и из НЛЦ 5.08 имеют менее 2000 строк. Что там у тебя надоковырено в нем - только по твоему коду можно сказать. Но скорее всего эта ошибка пока не из-за оружия. Скрипт ругается на отсутствие другого скрипта 'news_main.script' (или же в последнем есть синтаксическая ошибка). Изменено 11 Ноября 2011 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 11 Ноября 2011 (изменено) alex5773, если ты добавив новых стволов покорежил скрипт, то и при отключении торговли наделаешь еще больше ошибок. Возьми в топике инструментов для модмейкеров "script Syntax Checker" (by GUN12) и им проверь измененый тобою 'news_main.script'. Если его не исправишь - то и без торговли от вылетов не избавишься. foxbat21, костюмы, которые пригодны для ГГ, неписями не используются. У них 'костюмы' называются иначе - визуалами (все вместе и лицо и прикид и шнурки на ботинках). Т.о. все попытки правкой костюмов защитить неписей обречены на неудачу. Изменено 11 Ноября 2011 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 16 Ноября 2011 (изменено) Kopcap, не 'смарты' подконтрольны группировкам, а гулаги. В настройках смартов задаются возможные группировки, а в гулагах это все реализуется. Полтергейст, заблуждаешься,что "без модификации скрипта smart_terrain.script и customdata всех смартов в all.spawn - никак". Если гулаг не из 'general_lager', а из эксклюзивных (а именно такие в основном и интересны в модинге), то несложно для каждого такого гулага в его прекондишенах записывать не набор группировок, а функцию, которая бы разрешала ту или иную группировку в зависимости от доп.усовий. Хотя ... если делать по-серьезному, т.е. не для одиночных случаев, то ты прав, может и стОит озаботиться именно модификацией имеющейся 'штатной' логики. Полтергейст: Возможно ли добавить смарт в рестрикторы неписю? Не будет ли вылета? Добавить то можно и вылета не будет (в большинстве случаев), вот только ... толку то? Если у многих смартов радиус в 1 метр - толку то от твоего добавления? Для разрешения иль запрета для неписей того иль иного гулага есть немало штатных средств ... Ну а то, что вылет возможен - гулаги иногда 'распускаются' и если такой гулаг, будучи прописанным неписю будет удален прежде чем 'выпишется' непись - вылет вполне реален. Изменено 16 Ноября 2011 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 19 Ноября 2011 Max_Plohih, действительно очень глупый вопрос. Все файлы ты можешь изменять/удалять и т.п. Ни каких спец.возможностей тут нет, но ... нужны "спец.знания", т.е. просто знания и умение работать с файлами скриптов, абы не вносить глюков/ошибок. Ну а что "интересного" - это каждый решает в меру своего развития ... "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 20 Ноября 2011 Partisan, в конфигах строки параметров могут повторяться. Это конечно излишне (задавать дважды/трижды/...) и является оплошностью разработчиков, но тем не менее это не критично. Парсер игры, перечитывая строки, просто переприсваивает для одного и того же параметра вновь заданное значение. Т.о. дублировать не стОит и лишние строки можно поудалять, но и криминала в этом нет (просто 'мусор'). "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 21 Ноября 2011 (изменено) Partisan, ДА, в строке секции до ее окончания присутствуют символы, которые парсер пытается идентифицировать ... Движек игры, в подобных ситуациях, научен разрабами игнорировать, но по-хорошему, подобный мусор стОит или комментировать или стирать. Ты сам ответил на вопрос "пока не стрельнишь" ... Если периодически 'встряхивать' животинок тем или иным данджером - гребунов станет поменьше. Но это уже тема для тех, кто хочет заморачиваться на этом. Изменено 21 Ноября 2011 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 23 Ноября 2011 (изменено) Полтергейст Вообще то модмейкерам стОит различать: release - освобождение reject - отклонение destroy - уничтожение Т.е. то, что модмейкеры ставят в свои скрипты и считают "удалением" - это только(!) команда серверу освободить игровой объект, после чего (по прошествии некоторого времени) этот объет освобождается от 'родителя' (если таковой имеется) и еще через некоторое время - собственно уничтожается. Также, существует т.н. "сборщик мусора", который периодически или по команде очищает ресурсы игры от 'потеряных объектов' в которых отпала нужда ... То, что в скриптах имеется только два 'штатных' коллбэка - не препятствует тому, чтобы понаделать своих коллбэков в любом ином месте. Взяв некую пачку патронов, проверив их на наличие "владельца" и на то, что это мертвый гуманоид - получаем псевдо-коллбэк иного типа ... и т.п. Если в оружии имеются патроны (заряжено), то факт удаления собственно самого оружия не означает единомоментного удаления и патронов в нем. Сработает коллбэк движка, который должен будет очистить игру от объекта патронов бывших в стволе удаленного оружия (приписанных ему). Изменено 23 Ноября 2011 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 24 Ноября 2011 (изменено) Лёха_тц, декомпилируй нужную тебе локацию и там увидишь и названия и пр. То, о чем ты спрашиваешь, т.е. например вышки - это объекты карт, а не спавн-объекты. Названия этих объектов фигурируют только в SDK и в декомпилированных картах. Может быть кто-то и подскажет названия, но гораздо проще самому посмотреть ... Если же тебе для спавна скриптами иль в all.spawn'е - то ничего не выйдет и тебе эти названия ничего не дадут. Только брать готовое из модов иль моделить самому. Добавлено через 24 мин.: Полтергейст, я привел пример ЕЩЕ одного из возможных ... помимо упомянутых тобою: "По идее, в скриптах есть только 2 коллбека на смерть NPC". Ну а разумно иль расточительно - это уже по контексту ... Полтергейст: Так при смерти НПС оружие не удаляется. Или как? Или 'как'! Ребята, вы совсем уж заговорились ... Один отключает в death_manager лут и удаление - и пишет что у него все удаляется. Другой тоже поковыряв - находит и патроны и пр. Давайте говорить об исходной игре и о заложенных алгоритмах разработчиками, а не привнесенных еще кем-то/чем-то. Если отключить работу death_manager'а, то не будет ни лута ни удаления чего бы то ни было. И патроны будут на месте и оружие и пр. Т.е. все то, что было при НПС при его появлении в игре (точнее в момент смерти) - все при нем и останется. Примечание: За исключением тех патронов (пачки), которыми было заряжено оружие, заспавненное без патронов (вот она связка!). Если же работает death_manager - то оружие НЕ из слотов - удаляется, а то которое в слотах - разряжается и 'портится'. Изменено 24 Ноября 2011 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 24 Ноября 2011 Partisan, ищи причину битья твоих сэйвов в ином месте. Строка лога говорит всего лишь о том, что у некоего непися в списке его барахла имеется 'wpn_rg-6' и этот предмет не попадает под продаваемые в оффлфйн-алайф торговле категории (оружие/патроны/жратва/...). Просто напросто этот предмет не будет продан и останется у непися. "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 24 Ноября 2011 Partisan, тебе же достаточно ясно сказал - искать, а значит и лечить, нужно в ином месте! Толку от того, что ты избавишься от сообщения, что некий предмет не подпадает под категории продаваемых? На-ка-ко-го! Замазывать зеленкой некую стороннюю царапину врядли стОит. Разбирайся с битьем сэйва. Может быть именно то, что этот непись с гранатометом распродает свой хабар - и есь причина. Насколько помню, оффлайн-алайф торговля должна быть только в оффлайне, а у тебя получается что на самих складах торгует. В общем гадать далее не буду. Выводи в лог дополнительные инфы и ищи по ним. "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 24 Ноября 2011 (изменено) SEA_CAT, почитай про 'pstor' и в топиках форума и на вики. Посмотри как в нем сохраняют требуемые значения как в оригинале, так и в модах. Функции сохранения из оригинала: хr_logic.pstor_store , чтения - хr_logic. pstor_retrieve В АМК для актора есть аналоги : amk.save_variable / amk.load_variable Изменено 24 Ноября 2011 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 24 Ноября 2011 (изменено) Partisan (задумайся - стОит ли прыгать выше головы? Если ответ - да, то наверное подразумевается необходимость подтренироваться) Твоя непись УЖЕ имеет в своем барахле этот гранатомет, а не поднимает его. Лог говорит, что он распродает свое барахло и этот гранатомет НЕ будет продан. Так что он и оставит его себе и не будет продавать - будет болтаться в рюкзаке. Ну а то, что этот гранатомет не в продаже - банальное объяснение: класс для wpn_rg-6 ни в оригинальной игре, ни в АМК не прописан как класс оружия, (см. в _g.script) поэтому проверка isWeapon(obj) и не распознает в нем оружия. Рекомендовать вносить глобальную правку по добавления в эту проверку класса гранатомета - не рискну, т.к. может потянуть за собою иные проблемы/коллизии. Да и не даст это ничего, т.к. в 4-й раз повторяю - гранатомет НЕ продается. Сними шоры и не на эту строку обращай внимание, а ищи в ином месте, может быть связанном с этим НПС (ты даже его имя не узнал). Изменено 24 Ноября 2011 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 27 Ноября 2011 smeh, НЕТ, совершенно все НЕ правильно. Как уже выше сказал KD87, параметр custom_data обязан иметь 'штатные' начало и конец. Внутри этих отметок можно писать свои данные, но(!) и они должны соответствовать тому формату, который принят в игре. Помимо 'логики' в custom_data могут быть прописаны и др.параметры, как например встречающийся у тебя [smart_terrains]. Логика может быть прописана 'напрямую', т.е. теми же секциями и параметрами или вынесена в отдельный файл. Тогда этот файл прописывается в custom_data как: [logic] cfg = путь к твоему файлу ... Не вижу далее необходимости расписывать все то, что расписано и в немалом кол-ве статей на вики-сайтах и можно самому посмотреть в исходниках игры. "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 28 Ноября 2011 (изменено) boryan67, собственно ты сам же и дал ответ. Да, и не только в КПК, в подавляющем большинстве случаев возможно оперировать только заранее заготовленными фрагментами информации. Не удивляет же тебя, что и имена/описания предметам/объектам заданы заранее, и даже инфопоршни (в ТЧ) можно выдавать только из заранее заготовленного массива. Исключения составляют только динамические поля (типа журнала сообщений в КПК иль статистики), в которые разрабами было разрешено вставлять текущую информацию. И даже подмена/изменение файлов (*.ltx *.xml) тут не поможет, т.к. игра, считывая на старте все подобные конфиги уже оперирует с виртуальным кешем, а не в реальными файлами. Ну а доступ из скриптов в подобные кеши - отсутствует. Возможно после выхода продолжения NLC6 что-то можно будет делать по принципу "artmoney" (подменять в памяти игры), но я бы не стал на подобное сильно расчитывать ... Подмена (байтов) и свободное добавление далеко не равнозначны. Изменено 28 Ноября 2011 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 30 Ноября 2011 (изменено) panzyuza, собственно действительно строка лога: 19391 objects are successfully saved - говорит о том, сколько объектов попало в сэйв ... Ну а получить в скриптах кол-во объектов в игре можно, например, прямым перебором: local iCount = 1 --/ ID==0 это актор function HowManyObjects() local sim = alife() --/ кешируем функцию алайфа for i=1,65534 do if sim:object(i) then iCount = iCount +1 end end return iCount --/> кол-во объектов в игре end BFG, не существует такого параметра как "задержка на начало атаки сталкеров при боях на Арене". Хочешь попридержать - придется, например, после их (членов команд) спавна увести в оффлайн и там дожидаться "облета". Естественно это подразумевает изменение оригинальных скриптов/кодов. FANAT, чем отличается труп от раненого иль здорового? Ответ в общем-то очевиден - уровнем здоровья (health). В приведенном тобою куске кода, заспавненному НПС устанавливаются tbl.health = 0 (уровень здоровья в момент спавна) и tbl.updhealth = 0 (уровень здоровья при следующем апдейте объекта). Несложно самому догадаться, что поставив, например, обоим параметрам значения 0.3 - ты получишь заспавненного раненым НПС. Примечание: Следует помнить, что НПС имеет способность регенерации своего здоровья (или даже в модах работать схема самолечения) - так что, заспавненым раненым долго валяться не будет ... (если не принять спец.мер). Изменено 30 Ноября 2011 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение