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

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


Halford

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

Все, что "отвечающие за загрузочный экран" - зашито в движок (RTFM). Редактированию доступны только сами картинки, которые соответствуют заведомо заданным в движке путям/именам.

Надписи типа: "Клиент: Синхронизация" - выводит движок по внутренним для него параметрам (нет никаких конфиг-файлов) ... т.о. расцветить иль шрифт подправить без редактирования самого движка - не получится.

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

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

Поделиться этим сообщением


Ссылка на сообщение

А вот с health есть сильное ощущение, что при значении, отличном от 1, результат получается странный. В онлайне - чем меньше стартовое значение, тем непись/зверушка более "бронированные", чем больше - тем, наоборот, уязвимее.

Это что же дает такие ощущения, которые приводят к таким "выводам"? Если у НПС иль монстра здоровье oNPC.health == 2, то как и за счет чего(?) при меньшем значении (например, oNPC.health == 0.5) объект будет более бронированным? :wacko2:

В офлайне - при текущем способе обсчета боя...
Нет никакого боя в оффлайне. Если речь о алайф-оффлайн-симуляторе (by AMK), то "бой" просто напросто сводится к "убит/ранен" без каких-либо оглядок на текущие health'ы, т.е. нужное значение здоровью директивно прописывается нет-пакетом для неписей без каких-либо вычислений.
Мораль: для получения вменяемых результатов онлайнового боя делайте health = 1,...
Для "вменяемого боя" - вероятно справедливо (1-ую полученную пулю может и не заметить), но ежели просто "защитить" квестового НПС от случайностей в Зоне - довольно сомнительная рекомендация (хотя все одно все по-любому сведется к =1).
В офлайне - см. выше, + защищайте нужных вам неписей sid'ами.
"Защита" с помощью sid'а - из области фантазий. :crazy: Изменено пользователем Artos

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

Поделиться этим сообщением


Ссылка на сообщение

Dennis_Chikin, взгляни на название топика(!) и не путай его с соляночным. ;-)

Нет в чистом ТЧ (SHoC) никакого оффлайнового боя и тем боле процитированных тобою строк кода.

Ну а то, как в каком-либо моде реализована симуляция подобного оффлайнового "боя" - тут только от конкретного контекста зависит и то, что приемлемо в одном случае боком может обернуться в другом.

Так что "морали" совершенно разные, есть "оригинальная", есть "соляночная", и есть множество других...

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

 

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

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

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

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

Поделиться этим сообщением


Ссылка на сообщение

stalkerok007, "вопросы: что нужно прописать и куда?" эквивалентны: "Дайте мне готовые скрипты" - что является моветоном в данном топике. Учись сам понимать, что же тебе конкретно требуется прописывать и куда конкретно.

Как ты правильно предполагаешь "свечение" является проигрывание партиклов. Костер иль аномалия имеют в своих свойствах такую особенность при попадании в них посторонних объектов. "Прописать" подобную особенность для ГГ тебе не удастся, т.к. ГГ все же не аномалия.

Если поизучаешь тему партиклов и методы их проигрывания (см. статьи на вики сайтах), то вскоре вероятно сможешь "прикрутить" проигрывание желаемых партиклов для того или иного объекта иль для ГГ (на кой это для ГГ(?) - оставим за скобками).

Ну а как проигрывать "всегда/при определенном инфопоршне" - тут почитай и потренируйся на общих материалах по Lua и моддингу.

 

Второй вопрос, про "чтобы НПС сам начинал разговор с ГГ?" - уже тут обсуждался и воспользуйся поиском.

Подсказка: смотри описание схемы meet и в частности значение self для параметра use.

 

Buusty, немаловажное дополнение к твоему посту по "stalker_inferno" - обязательное наличие кодов из АМК мода (в частности amk_particle.script и его обвязки) или аналогов.

Условное управление (и от(в)ключение в том числе) предусмотрено в amk_particle.script, и доработать не так и сложно.

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

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

Поделиться этим сообщением


Ссылка на сообщение

Dennis_Chikin, было бы логичнее не повторять в твоем #9851 (припознившемся на недельку) и в последнем то, о чем уже было сказано в #9793, и опять же подсовывая всем читателям топика по ТЧ соляночные рецепты. Неужели ты не понял, что то, что годится для солянки нередко бесполезно для других, и то, что в вопросе не указывается версия мода подразумевает по умолчанию то, что говорится об оригинальной игре или об общем с нею...

Не хочется острить на тему, но не нужно соляночную путаницу советовать и переносить на всех остальных. Ну где ты в исходном вопросе (#9787) увидел хоть что-то, относящееся к убойности оружия иль "защите" sid'ами? (или ты из "кашпировских"?)

 

Ну а по теме "из Lua" - вновь читаем "в огороде бузина, а в киеве дедька". Сорри, но связать то, что было сказано в исходных постах (#773, #775) с сегодняшними словами, открывающими америку - ну ни как не получается... Согласись, без применения китайской машинки (твоими словами), "использование чего-либо в апдейте актора" и "снижение частоты вызова функций" иль "вылизывание на предмет сокращения накладных расходов" также связаны между собою, как health'ы с sid'ами, и можно долго доказывать очевидное, но не имеющее к актуальному отношение...

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

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

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

Поделиться этим сообщением


Ссылка на сообщение

stalkerok007, будем считать что писать посты и читать слова в ответах - ты вроде как почти уже умеешь, хотя не советовал бы отождествлять: "конкретнее".и "подобие" или путать то, что относится к твоему 1-му вопросу, с "логикой" из 2-го.

Теперь остается немногое - начать понимать о чем же в ответах/комментах...

Ну что же, что ты хотел услышать - то считай и получил. Успехов по "прописыванию партиклов к костям нпс", и особенно "костям ГГ". :crazy:

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

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

Поделиться этим сообщением


Ссылка на сообщение

Comador, сорри, но не мог бы ты пояснить, как высота упомянутого тобою окна (фрейма) влияет на выборочное исчезновение/появление тех или иных сообщений, в особенности 'коротких' и именно в КПК? В вопросе SkyLoader'а было имено про исчезновение, а не о "видно все", но к сожалению, пока не замечал в игре подобного и не могу воспоизвести и (пере)проверить... Каким образом ты контролируешь, что при увеличении высоты окна (кстати до какого?) именно все сообщения становятся видны, и нет исчезнувших?

 

stalkerok007, судя по твоим постам, и в частности по последнему - то я бы поставил диагноз: "Занятие моддингом (а может даже вообще компом) противопоказано".

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

Если фраза:

Подсказка: смотри описание схемы meet и в частности значение self для параметра use.
- тебе также ничего не говорит, и не можешь по ссылке из шапки топика самостоятельно найти на вики-сайте это, то ... попроси маму, которая тебя кормила с ложечки, помочь и с компом и моддингом.

Право, удивляет подобный подход и полная беспомощность в самых простых вещах.

(просьба, далее не отвечать и не оправдываться, это мне (да и другим) не интересно, а только топик захламляет)

 

P.S. "Слона то я и не приметил" (с)Крылов

К сожалению этому:

Теперь остается немногое - начать понимать о чем же в ответах/комментах...
- никаким онлайном не научить... тут или "хороший подзатыльник" в реале помогает иль ждать, когда "дитя" повзрослеет.

(мысли в слух)

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

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

Поделиться этим сообщением


Ссылка на сообщение

VovanDolg, почитав, например это, посмотри чего не хватает у костров (партиклов, пламени, ...) и добавь.

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

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

Поделиться этим сообщением


Ссылка на сообщение

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

Хотя я и не бранился и не называл "чайником", но, цель все же достиг сам напрашиваешься на звание "чайник со свистком"

:crazy:

 

Задаешь вопрос о "как сделать автодиалог?", и получив ответы, начинаешь доказывать кому-то и зачем-то, что "сам сусам"...якобы. ;-)

1. У тебя цель была сделать именно без схемы meet? Так чего ты молчал об этом, и на кой такое извращение, если цель именно автодиалог?

2. На кой отказываться от готовой схемы, чтобы самописными скриптами делать по сути то же, что и готоваяя схема? Да еще и приплетать сюда (кстати, его то коды ты подзабыл привести тут) необходимость спавнить рестриктор, который тоже всою логику требует(!)

3. Когда ты поймешь, что чесать ухо проще рукою, а не пяткою - тогда вопрос о (не)чайнике можно будет вновь поднять. :-)

 

Ну и повторюсь, не стоит подобным засорять топик. Если невтерпеж - спамь в ЛС.

 

 

 

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

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

Поделиться этим сообщением


Ссылка на сообщение

Priboj37, хотя я и не Comador, но может и мой ответ сгодится:

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

 

Все же, (ИМХО) при нестандартных для игры разрешениях, сам движок ошибается при перерасчете "свободгного" места в окне для сообщений и ошибочно считает, что место закончилось, что и приводит к пропуску сообщения. А изменение размера окна, в ту или иную сторону, может влиять на вероятность возникновения ошибки...

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

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

Поделиться этим сообщением


Ссылка на сообщение

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", то ты увидишь правый край окна списка с визуалом скроллинга, положение которого и покажет тебе верх и низ окна. Именно по нижнему краю и появляются сообщения, а при появлении следующего - смещаются вверх.

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

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

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

Поделиться этим сообщением


Ссылка на сообщение

stillmozz,

1. По распаковке: Учи матчасть и тренируйся, все нормально распаковывается такою строкою:

converter.exe -unpack -2215 путь_к_ресурсу\gamedata.xp0 -dir путь_для_распаковки\my_dir

2. По спавну билдового пулемета: Зачем дублироваться? Листани топик тройку страничек назад (#9801 и далее) и почитай... Тебе уже дали ответ, иль ждешь, что движок кто под тебя подправит? ;-)

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

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

Поделиться этим сообщением


Ссылка на сообщение

Marafon6540, ты сам то разве не видишь, что в приведенном тобою моде "TiR" by РСФСР турель сделана на section_name = stationary_mgun, т.е. сделана на классе STMGUN'' (cse_alife_stationary_mgun) - какая же это 'машина'? И то, что при "юзании" вылезает надпись "открыть дверь" - это всего лишь отображение текста, который и для машин/вертолетов приписан. Есть желавние - измени на "Использовать".

И уже говорилось malandrinus'ом в выше указанному посту, про перипетии спавна. Данный объект не доделан разработчиками GSC, не имеет скелета(!), т.о. нет привязки визуала к заданным координатам спавна. Вот и выходит, что вроде как сам объект в точке спавна, но видишь ты его и юзаешь - совершенно в ином месте, которое неким жестким образом определено в движке.

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

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

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

Поделиться этим сообщением


Ссылка на сообщение

SkyLoader. если взглянуть на начинку объектов классов 'cse_alife_mounted_weapon' и 'cse_alife_stationary_mgun' с точки зрения содержимого их нет-пакетов (при чтении/записи), то скелетом ('cse_alife_ph_skeleton_object') там не пахнет.

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

И как раз и говорю, что жаждущим "восстановить" потребно доработать оригинальный движок ТЧ, так чтобы визуал можно было бы все же как-то привязать (к добавленному иль "найденному" скелету или как-то напрямую по задаваемым объекту координатам).

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

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

Поделиться этим сообщением


Ссылка на сообщение

 ... прямо возле точки спавна ГГ появляется нечто, имеющие визуал ящика с динамитом

Это работа скрипта менеджера оружия (by Bak aka Rulix) или скрипта на его основе.

Смотри/ищи по секции типа [inventory_box]... и подправь на прозрачный визуал (дабы не видеть в игре) и на пустую надпись (дабы не юзать его).

 

Поправка: В rx_wmgr.script эти ящики ("inventory_box") создаются функцией create_box() - вот и замаскируй их, создав отдельную секцию с невидимым визуалом и неюзабельную.

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

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

Поделиться этим сообщением


Ссылка на сообщение

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 (но не стОит злоупотреблять)

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

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

Поделиться этим сообщением


Ссылка на сообщение

Снайпер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

Еще одна подсказка: Если вызываешь это из диалога - то предмет(аргумент) в этом случае всегда отсутствует!

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

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

Поделиться этим сообщением


Ссылка на сообщение

скриптовая пророботка на большей части рандома.. Женя так сказал, чисто литературный лист....

Фраза более чем непонятная тем, кто не в теме...

Ну а насчет "чисто литературного" - позволь поспорить. ;-)

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

 

Transcend, чтобы понять как реализован оффлан-алайф, а тем более ковыряться в нем, нужно хорошенько разбираться в скриптах и алгоритмах игры. Если такие навыки есть - то вопрос излишен, т.е. бери скрипт и читай (script - сценарий!).

Кратко: Этот модуль периодически сканирует все локации и имеет базу различных игровых объектов: неписи, предметы, нычки и т.п. и их состояния. Соответственно определяются "жив-мертв", полон ящик иль пуст, лежит аптечка в ящике иль у кого в рюкзаке иль валяется на земле...

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

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

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

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

Поделиться этим сообщением


Ссылка на сообщение

@Malandrinus, то, что нет доступного скриптового метода сброса задания - согласен, но... (мысли вслух) объект(ы) таска  (SGameTaskObjective/SGameTask) в общем-то доступны в игре и сохраняются в сэйвы и можно попытаться помудрить с нет-пакетами иль даже с подменой на "чистый" таск. Но это конечно только предполагалка... и проверка возможности изменения требует и времени и навыков. ;-)

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

Поделиться этим сообщением


Ссылка на сообщение

Судя по алгоритмам выдачи и контроля заданий, факт выдачи хранится у актора. Как минимум индекс (иль иная метка) выданного таска движок где-то у него запоминает ( db.actor:give_task(obj_task, ms, false) ). Вот еще бы проверить назначение 3-го аргумента (boolean) - не позволит ли он анулировать...

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

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

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

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...