Artos 99 Опубликовано 23 Декабря 2012 (изменено) Все, что "отвечающие за загрузочный экран" - зашито в движок (RTFM). Редактированию доступны только сами картинки, которые соответствуют заведомо заданным в движке путям/именам. Надписи типа: "Клиент: Синхронизация" - выводит движок по внутренним для него параметрам (нет никаких конфиг-файлов) ... т.о. расцветить иль шрифт подправить без редактирования самого движка - не получится. Изменено 23 Декабря 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 23 Декабря 2012 (изменено) А вот с health есть сильное ощущение, что при значении, отличном от 1, результат получается странный. В онлайне - чем меньше стартовое значение, тем непись/зверушка более "бронированные", чем больше - тем, наоборот, уязвимее. Это что же дает такие ощущения, которые приводят к таким "выводам"? Если у НПС иль монстра здоровье oNPC.health == 2, то как и за счет чего(?) при меньшем значении (например, oNPC.health == 0.5) объект будет более бронированным? В офлайне - при текущем способе обсчета боя...Нет никакого боя в оффлайне. Если речь о алайф-оффлайн-симуляторе (by AMK), то "бой" просто напросто сводится к "убит/ранен" без каких-либо оглядок на текущие health'ы, т.е. нужное значение здоровью директивно прописывается нет-пакетом для неписей без каких-либо вычислений.Мораль: для получения вменяемых результатов онлайнового боя делайте health = 1,...Для "вменяемого боя" - вероятно справедливо (1-ую полученную пулю может и не заметить), но ежели просто "защитить" квестового НПС от случайностей в Зоне - довольно сомнительная рекомендация (хотя все одно все по-любому сведется к =1).В офлайне - см. выше, + защищайте нужных вам неписей sid'ами."Защита" с помощью sid'а - из области фантазий. Изменено 23 Декабря 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 23 Декабря 2012 (изменено) Dennis_Chikin, взгляни на название топика(!) и не путай его с соляночным. ;-) Нет в чистом ТЧ (SHoC) никакого оффлайнового боя и тем боле процитированных тобою строк кода. Ну а то, как в каком-либо моде реализована симуляция подобного оффлайнового "боя" - тут только от конкретного контекста зависит и то, что приемлемо в одном случае боком может обернуться в другом. Так что "морали" совершенно разные, есть "оригинальная", есть "соляночная", и есть множество других... Суть же приведенного тобою куска "амк-оффлайн-боевки" - как раз подтверждает то, что в зависимости от внешних факторов просто напросто расчитываются - убить подвернувшегося скрипту субъекта иль только подранить. Текущее здоровье воюющих хотя в начале якобы учитывается, но если учесть что фаз боевки несколько в одном цикле - то в итоге все одно галиматься выходит. И уж как раз чем больше исходное здоровье - тем меньше вероятность убить с 1-го раза. Приводить пример "крыс" в качестве самых бронированных - си-и-ильная натяжка. Крыс в чистом ТЧ вообще нет, в реанимированном виде они на классе тушканов сделаны, да и вся подобная "бронированность" в первую и основную очередь зависит от конфигов, а не от уровня заданного при спавне здоровья. При желании самого "дохлого" можно сделать хоть бессмертным. Если хочешь экспериментировать иль иметь экспериментальные подтверждения - то и возьми один и тот же объект (секцию) и проверяй именно с разными значениями установленного здоровья - вот тогда и можно делать выводы о хеалтах... Изменено 23 Декабря 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 23 Декабря 2012 (изменено) stalkerok007, "вопросы: что нужно прописать и куда?" эквивалентны: "Дайте мне готовые скрипты" - что является моветоном в данном топике. Учись сам понимать, что же тебе конкретно требуется прописывать и куда конкретно. Как ты правильно предполагаешь "свечение" является проигрывание партиклов. Костер иль аномалия имеют в своих свойствах такую особенность при попадании в них посторонних объектов. "Прописать" подобную особенность для ГГ тебе не удастся, т.к. ГГ все же не аномалия. Если поизучаешь тему партиклов и методы их проигрывания (см. статьи на вики сайтах), то вскоре вероятно сможешь "прикрутить" проигрывание желаемых партиклов для того или иного объекта иль для ГГ (на кой это для ГГ(?) - оставим за скобками). Ну а как проигрывать "всегда/при определенном инфопоршне" - тут почитай и потренируйся на общих материалах по Lua и моддингу. Второй вопрос, про "чтобы НПС сам начинал разговор с ГГ?" - уже тут обсуждался и воспользуйся поиском. Подсказка: смотри описание схемы meet и в частности значение self для параметра use. Buusty, немаловажное дополнение к твоему посту по "stalker_inferno" - обязательное наличие кодов из АМК мода (в частности amk_particle.script и его обвязки) или аналогов. Условное управление (и от(в)ключение в том числе) предусмотрено в amk_particle.script, и доработать не так и сложно. Изменено 23 Декабря 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 24 Декабря 2012 (изменено) Dennis_Chikin, было бы логичнее не повторять в твоем #9851 (припознившемся на недельку) и в последнем то, о чем уже было сказано в #9793, и опять же подсовывая всем читателям топика по ТЧ соляночные рецепты. Неужели ты не понял, что то, что годится для солянки нередко бесполезно для других, и то, что в вопросе не указывается версия мода подразумевает по умолчанию то, что говорится об оригинальной игре или об общем с нею... Не хочется острить на тему, но не нужно соляночную путаницу советовать и переносить на всех остальных. Ну где ты в исходном вопросе (#9787) увидел хоть что-то, относящееся к убойности оружия иль "защите" sid'ами? (или ты из "кашпировских"?) Ну а по теме "из Lua" - вновь читаем "в огороде бузина, а в киеве дедька". Сорри, но связать то, что было сказано в исходных постах (#773, #775) с сегодняшними словами, открывающими америку - ну ни как не получается... Согласись, без применения китайской машинки (твоими словами), "использование чего-либо в апдейте актора" и "снижение частоты вызова функций" иль "вылизывание на предмет сокращения накладных расходов" также связаны между собою, как health'ы с sid'ами, и можно долго доказывать очевидное, но не имеющее к актуальному отношение... Если есть желание поговорить - обозначай рамки темы/вопроса, а не вали (как в самой солянке) все в одну кучу. Эта особенность тоже путает и вас самих (соляночников) и запутает всех в темах форума. Изменено 24 Декабря 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 24 Декабря 2012 (изменено) stalkerok007, будем считать что писать посты и читать слова в ответах - ты вроде как почти уже умеешь, хотя не советовал бы отождествлять: "конкретнее".и "подобие" или путать то, что относится к твоему 1-му вопросу, с "логикой" из 2-го. Теперь остается немногое - начать понимать о чем же в ответах/комментах... Ну что же, что ты хотел услышать - то считай и получил. Успехов по "прописыванию партиклов к костям нпс", и особенно "костям ГГ". Изменено 24 Декабря 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 26 Декабря 2012 (изменено) Comador, сорри, но не мог бы ты пояснить, как высота упомянутого тобою окна (фрейма) влияет на выборочное исчезновение/появление тех или иных сообщений, в особенности 'коротких' и именно в КПК? В вопросе SkyLoader'а было имено про исчезновение, а не о "видно все", но к сожалению, пока не замечал в игре подобного и не могу воспоизвести и (пере)проверить... Каким образом ты контролируешь, что при увеличении высоты окна (кстати до какого?) именно все сообщения становятся видны, и нет исчезнувших? stalkerok007, судя по твоим постам, и в частности по последнему - то я бы поставил диагноз: "Занятие моддингом (а может даже вообще компом) противопоказано". Ты даже не в состоянии сформулировать запрос для поиска. Уж чего проще, вбить свой же вопрос "НПС сам начинал разговор с ГГ" в строку поиска и получить кучку ссылок, из которых и выбрать подходящую... например эту (начало отсюда). Если фраза: Подсказка: смотри описание схемы meet и в частности значение self для параметра use. - тебе также ничего не говорит, и не можешь по ссылке из шапки топика самостоятельно найти на вики-сайте это, то ... попроси маму, которая тебя кормила с ложечки, помочь и с компом и моддингом.Право, удивляет подобный подход и полная беспомощность в самых простых вещах. (просьба, далее не отвечать и не оправдываться, это мне (да и другим) не интересно, а только топик захламляет) P.S. "Слона то я и не приметил" (с)Крылов К сожалению этому: Теперь остается немногое - начать понимать о чем же в ответах/комментах... - никаким онлайном не научить... тут или "хороший подзатыльник" в реале помогает иль ждать, когда "дитя" повзрослеет.(мысли в слух) Изменено 26 Декабря 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 27 Декабря 2012 (изменено) VovanDolg, почитав, например это, посмотри чего не хватает у костров (партиклов, пламени, ...) и добавь. Изменено 27 Декабря 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 27 Декабря 2012 (изменено) Comador, вот со скринов бы и SkyLoader'у нужно было начинать, теперь хоть на одном языке можно говорить. Из вопроса и пояснения SkyLoader'а, у меня скорее именно с окном в КПК (вкладка "Журнал") были ассоциации, т.к. там также отображаются сообщения с основного экрана и именно там они отображаются будучи сохраненными в сэйвах. Ну а если ограничиться строками только на основном игровом худе, то: 1. Давным давно известно, что игра/движок заточены под два типа режиов разрешения 4:3 и 16:10. Все остальные (5:4, 16:9, ...) приводят к тем или иным искажениям или артефактам. И, следует помнить, что для корректного отображения в режимах 16:10 желательно применять "свои" файлы, т.е. xml-ки с суффиксом '_16' ! Т.о. если уж понадобились широкоформатные режимы (вместе с обычными), то и следует в данном случае файлы messages_window.xml и maingame_pda_msg.xml сдублировать под именами messages_window_16.xml и maingame_pda_msg_16.xml и внести в них нужные адаптации! Это конечно не гарантирует, что для "нестандартных" разрешений тоже исчезнут проблемы, но все же... 2. Ты так и не привел свои значения по "увеличений" окон для нестандартных режимов, так что пока не готов ничего сказать про 1366х768 иль др. подобные. Однако именно причина непоказа строк не в высоте окна sp_log_list, она то как раз по расчетам более чем достаточна. Причина в движке, а конкретные размеры окон просто тем или иным образом искажают иль выправляют (не)отображение строк. Посуди сам: - Окно (фрейм) sp_log_list имеет высоту 270, и предназначено именно для вывода нескольких новостных сообщений, которые могут состоять из нескольких строк. Высота 270 - более чем досточна на практике, а если сообщение не поместится - будет фатальный движковый вылет. - В это окно, по мере поступления проецируются субокна, описанные в maingame_pda_msg.xml, причем таким образом, что идет заполнение не сверзу вниз, а снизу вверх (см. inverse_dir="1"). - Строка же самого сообщения выводится уже с "переносами на новую строку", так что явно окно из maingame_pda_msg.xml не может быть ступором, т.е. считай оно "резиновое". Т.о. теоретически новое сообщение может не отображаться в случае, если основное окно с сообщениями уже заполнено почти "под завязку" и для нового недостаточно свободного места. В твоих примерах хорошо видно, что основной фрейм (h=270) ну никак не заполнен под завязку. А, т.к. при поступлении нового сообщения верхнее должно сместиться вверх, для чего явно есть место - то неотображение некоего сообщения никак не завязанно именно на высоту основного окна, что мол не вмещается... Но, что-то все же мешает движку, и этот вопрос пока открыт. Ну а изменение размеров - тут не все просто. Во во-первых нужно бы менять совместно с y="365", чтобы при увеличении высоты сообщения не залезали бы на окно "с человечком". А с другой стороны задирать выше тоже не просто так, т.к. там миникарта с ее причиндалами. В общем, я бы пока создал бы дубли файлов именно под широкоформатники, а далее именно с ними бы повозился для нестандартных разрешений. stalkerok007 Хотя я и не бранился и не называл "чайником", но, цель все же достиг сам напрашиваешься на звание "чайник со свистком" Задаешь вопрос о "как сделать автодиалог?", и получив ответы, начинаешь доказывать кому-то и зачем-то, что "сам сусам"...якобы. ;-) 1. У тебя цель была сделать именно без схемы meet? Так чего ты молчал об этом, и на кой такое извращение, если цель именно автодиалог? 2. На кой отказываться от готовой схемы, чтобы самописными скриптами делать по сути то же, что и готоваяя схема? Да еще и приплетать сюда (кстати, его то коды ты подзабыл привести тут) необходимость спавнить рестриктор, который тоже всою логику требует(!) 3. Когда ты поймешь, что чесать ухо проще рукою, а не пяткою - тогда вопрос о (не)чайнике можно будет вновь поднять. :-) Ну и повторюсь, не стоит подобным засорять топик. Если невтерпеж - спамь в ЛС. Изменено 27 Декабря 2012 пользователем Artos 1 "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 27 Декабря 2012 (изменено) Priboj37, хотя я и не Comador, но может и мой ответ сгодится: Вывод часов (индикатор текущего игрового времени) производится в своем кастом-статике и этот кастом-статик может закрыть собою какой-то участок, но не препятствовать отображению того, что НЕ под ним. Фреймы для сообщений и кастом-статика никак не связаны между собою (не имеют взаимо-зависимостей) и могут только накладываться друг на друга (куски большого сообщения по-любому будут выглядывать из под часов). Все же, (ИМХО) при нестандартных для игры разрешениях, сам движок ошибается при перерасчете "свободгного" места в окне для сообщений и ошибочно считает, что место закончилось, что и приводит к пропуску сообщения. А изменение размера окна, в ту или иную сторону, может влиять на вероятность возникновения ошибки... Изменено 27 Декабря 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 28 Декабря 2012 (изменено) Marafon6540, извини, но не могу подсказать где/что почитать про разрешениям для игры, подобное мало где описывается. 'Родное' (с чем игра и была порождена - попала к игрокам) - конечно 4х3, но уже при 'рождении' новорожденная игра и wide-режимы распознавала, т.е. движек с рождения был заточен под 4х3 и под 16х10. Собственно все вытекает из железа, на котором и для которого была написано игра. В период разработки игры мониторы разработчиков имели именно 4х3, а широкоформатники были дОроги, относительно редки и для десктопов были только 16х10. Тогдашние ноуты, от которых и пошли экзотические 5х4,16x9 - не рассматривались как платформа для игры. К тому же 16x9 - это уже телевизионное-расширение, которое вошло в моду считай уже после выхода игры. Т.о. естественно, готовые худы (текстуры, конфиги) и пр. были выполнены именно под 4x3. Но в движек была заложена (полу)автоматическая подстройка под широкоформатные разрешения (wide) и суффикс ('_16') как раз и говорит о разрешениях 16х... В дальнейшем в ЧН уже появились и конфиги, заточенные именно под 16x10 (см. например scopes_16.xml). Ну а если взять все дальнейшие наработки моддмейкеров по адаптациям широкоформатников, то можно просто просчитать, что, например те же текстуры прицелов делались именно под 16х10, а в финалке ТЧ - и сами разработчики в scopes_16.xml задают для прицелов именно это разрешение (попробуй переведи width="854" из 16х10 в 4х3 и получишь именно 1024). Comador, твои скрины (с нумерацией ты перепутал) говорят о том, что вначале было выведено "длинное сообщение", за ним - короткое, сдвинув 1-ое вверх(!), ну и позже, короткое исчезло, т.к. предполагаю время отображения было меньше чем для первого, и оставшееся 1-ое "доинное" сообщение сместилось опять вниз (на начальную позицию окна-списка). Т.о. заполнение идет именно снизу вверх, а не наоборот. Ну а при очистке - могут вновь опускаться на освободившееся место. То, что сообщения заполняются снизу легко увидеть, если сообщения идут с небольшим интервалом друг за другом (например, сделать циклом раз в секунду) . Ну а если в том же messages_window.xml изменить always_show_scroll="0" =>"1", то ты увидишь правый край окна списка с визуалом скроллинга, положение которого и покажет тебе верх и низ окна. Именно по нижнему краю и появляются сообщения, а при появлении следующего - смещаются вверх. Кстати, посмотри для твоего случая, когда сообщение "обрезается" - по скролингу можно скорее всего будет увидеть, что основное окно для списков как раз сверху имеет достаточно места для отображения не только "обрезанного", но и еще немало влезет. Т.е. все же скорее движок некорректно просчитывает высоту для фрейма выводимой строки, занижая его позицию, что приводит к тому, что строка отображается так, что ее нижний край уже "вылезает" за область видимости, которая задана окном списка. Меняя эту высоту (может даже и на пару пикселей) - ты просто меняешь данные для расчета и ... движек в измененной ситуации уже не выдает ошибку, размещая строку на нужной высоте. Изменено 28 Декабря 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 29 Декабря 2012 (изменено) stillmozz, 1. По распаковке: Учи матчасть и тренируйся, все нормально распаковывается такою строкою: converter.exe -unpack -2215 путь_к_ресурсу\gamedata.xp0 -dir путь_для_распаковки\my_dir 2. По спавну билдового пулемета: Зачем дублироваться? Листани топик тройку страничек назад (#9801 и далее) и почитай... Тебе уже дали ответ, иль ждешь, что движок кто под тебя подправит? ;-) Изменено 29 Декабря 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 31 Декабря 2012 (изменено) Marafon6540, ты сам то разве не видишь, что в приведенном тобою моде "TiR" by РСФСР турель сделана на section_name = stationary_mgun, т.е. сделана на классе STMGUN'' (cse_alife_stationary_mgun) - какая же это 'машина'? И то, что при "юзании" вылезает надпись "открыть дверь" - это всего лишь отображение текста, который и для машин/вертолетов приписан. Есть желавние - измени на "Использовать". И уже говорилось malandrinus'ом в выше указанному посту, про перипетии спавна. Данный объект не доделан разработчиками GSC, не имеет скелета(!), т.о. нет привязки визуала к заданным координатам спавна. Вот и выходит, что вроде как сам объект в точке спавна, но видишь ты его и юзаешь - совершенно в ином месте, которое неким жестким образом определено в движке. Предполагаю, что исправить можно только правкой движка, чтобы или скелет добавить и иметь возможность привязывать визуал к костям, иль визуалу задавать потребные коордиаты. Изменено 31 Декабря 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 31 Декабря 2012 (изменено) SkyLoader. если взглянуть на начинку объектов классов 'cse_alife_mounted_weapon' и 'cse_alife_stationary_mgun' с точки зрения содержимого их нет-пакетов (при чтении/записи), то скелетом ('cse_alife_ph_skeleton_object') там не пахнет. Если ты проверял по доступныи тебе исходникам, то сделай поправку на то, что смотришь уже не оригинальный класс... И как раз и говорю, что жаждущим "восстановить" потребно доработать оригинальный движок ТЧ, так чтобы визуал можно было бы все же как-то привязать (к добавленному иль "найденному" скелету или как-то напрямую по задаваемым объекту координатам). Изменено 31 Декабря 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 2 Апреля 2013 (изменено) ... прямо возле точки спавна ГГ появляется нечто, имеющие визуал ящика с динамитом Это работа скрипта менеджера оружия (by Bak aka Rulix) или скрипта на его основе. Смотри/ищи по секции типа [inventory_box]... и подправь на прозрачный визуал (дабы не видеть в игре) и на пустую надпись (дабы не юзать его). Поправка: В rx_wmgr.script эти ящики ("inventory_box") создаются функцией create_box() - вот и замаскируй их, создав отдельную секцию с невидимым визуалом и неюзабельную. Изменено 2 Апреля 2013 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 2 Апреля 2013 (изменено) Stalker_AleX333, ( привет! :-) ) К твоему сожалению, могу сказать, что rx_wmgr.script достаточно сырой (ИМХО) и в свое время, взяв его за основу, мне пришлось значительно его переработать. Может кто-то еще вставлял в него костыли, но имея нормальный вариант я уже не интересовался... То, что этот модуль не так часто встречается в сторонних модах, которые пытаются вставлять AI-паки говорит о том, что простенько его подправить не удастся. Поэтому могу посоветовать или самому глубоко погрузиться в его разборку и правку или найти мод, который включает этот или аналогичный модуль и стабильно работает. Брать из SIMBION'а не советую, т.к. там значительно переработан и переувязан со всей связкой доп. AI-схем (т.е. или пакетом или ничего). Снайпер56, странно создавать объект по одной секцией ("m_teleport_esc_kastet1"), а потом пытаться проверять и удалять по другой (obj:section()=="quest_case_kastet"). Хотя вероятно ты не все пояснил. Ты бы определился бы и правильно используя синтаксис Lua, т.е. головою, а не методом "тыка", написал бы нужное тебе и использовал. Если тобою действительно создан телепорт и он присутствует в игре, то функцией delete_teleport_kastet (без каких-либо аргументов "с потолка") удалить его из игры непосредственно из диалога иль иного подходящего места. Подсказка: из скриптов функция вызывается так: delete_teleport_kastet() и используй Lua-чекеры, дабы свои простейшие ошибки выявлять и исправлять самостоятельно, а не ждать по неделям помощи со стороны. story_id - имеет формат s32 и может быть < 4294967295 (но не стОит злоупотреблять) Изменено 2 Апреля 2013 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 2 Апреля 2013 (изменено) Снайпер56, если есть чем думать и это "чем" не пустое - додуматься любой и всегда может. ;-) Вот тебе function checking_taken_item45(obj) --/ имя функции сам меняй/додумывай if obj and obj:section() == "kluch_dell_teleport" then --/< тут вставляй свою секцию local se_obj = alife():story_object(97128) --/< твой story_id! if se_obj then news_manager.send_tip(db.actor, "Телепорт на входе в базу отключается", nil, nil, 30000) alife():release(se_obj) end else news_manager.send_tip(db.actor, "Нет у актора нужного предмета!", nil, nil, 8000) end end и далее сам додумывай, предварительно все же почитав мануалы по Lua Еще одна подсказка: Если вызываешь это из диалога - то предмет(аргумент) в этом случае всегда отсутствует! Изменено 2 Апреля 2013 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 3 Мая 2013 (изменено) скриптовая пророботка на большей части рандома.. Женя так сказал, чисто литературный лист....Фраза более чем непонятная тем, кто не в теме... Ну а насчет "чисто литературного" - позволь поспорить. ;-) Для любителей демагогии замечу, что "жизнь" в игре все равно есть "жизнь" битов и байтов, и т.н. "жизнь" в онлайне отличается от оффлайновой только тем, что движок в оффлайне почти ничем не рулит, в отличии от насыщенной "жизни" в онлайне, да и то, в основном в пределах switch_distance. Transcend, чтобы понять как реализован оффлан-алайф, а тем более ковыряться в нем, нужно хорошенько разбираться в скриптах и алгоритмах игры. Если такие навыки есть - то вопрос излишен, т.е. бери скрипт и читай (script - сценарий!). Кратко: Этот модуль периодически сканирует все локации и имеет базу различных игровых объектов: неписи, предметы, нычки и т.п. и их состояния. Соответственно определяются "жив-мертв", полон ящик иль пуст, лежит аптечка в ящике иль у кого в рюкзаке иль валяется на земле... Ну а далее, имея нужную информацию, скриптом же организуются стычки неписей/монстров (если такое допустимо), обыск неписями ящиков/трупов, поиск артефактов и т.п. Т.е. почти все как в онлайн "жизни", только актор (игрок) этого все одно не видит на экране монитора (локации то другие!). Зато динамические новости действительно становятся интерактивными и соответствовать тому, что происходит в игре. Ну а то, что этот модуль требует особой проработки и внимания, т.к. без отладки способен поломать любой сюжет/баланс (не говоря о вылетах и лагах), и есть проблема для многих модмейкеров. Изменено 3 Мая 2013 пользователем ColR_iT 2 "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 12 Сентября 2013 @Malandrinus, то, что нет доступного скриптового метода сброса задания - согласен, но... (мысли вслух) объект(ы) таска (SGameTaskObjective/SGameTask) в общем-то доступны в игре и сохраняются в сэйвы и можно попытаться помудрить с нет-пакетами иль даже с подменой на "чистый" таск. Но это конечно только предполагалка... и проверка возможности изменения требует и времени и навыков. ;-) "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 12 Сентября 2013 (изменено) Судя по алгоритмам выдачи и контроля заданий, факт выдачи хранится у актора. Как минимум индекс (иль иная метка) выданного таска движок где-то у него запоминает ( db.actor:give_task(obj_task, ms, false) ). Вот еще бы проверить назначение 3-го аргумента (boolean) - не позволит ли он анулировать... Сами объекты тасков и их составляющие (SGameTaskObjective) как минимум должны сохраняться в сэйвах, а значит от этих клиентских объектов сервер получает некие нет-пакеты при записи сэйва и восстанавливает при загрузке игры. Если получить доступ к этим передачам - то может и можно будет подменять на некое подобие заглушек иль даже удалять... Но, конечно же, это все умозаключения и, если будет время и настроение, попробую копнуть в эту сторону. Изменено 12 Сентября 2013 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение