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

Редактирование движка X-Ray


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

а о геометрии ogf.

Смысл в том, что именно высокие деревья при спавне получались с плоскими вершинами...Потом стали спавнится как положено.

Хм...Могу ошибаться, но вроде он главную кость смещал вниз.

Изменено пользователем _Val_
  • Полезно 1
Ссылка на комментарий

@Дизель, ограничения не только по высоте, а по всем осям. Обойти ограничение можно так - разбить модель на несколько частей, к каждой из которых привязать кость и собрать назад в целое анимацией. Это если без всяких заморочек с ковырянием движка. Хотя было бы интересно узнать, где находится это ограничение в движке и как его увеличить.

  • Полезно 1
Ссылка на комментарий

О майн готт, сижу сутки исправляю косяк тасков, ищу где я накосячил, а оказывается это баг оригинала :facepalm:

 

Кстати кто на xp-dev сидит, вы арену никто не фиксил? А то я не знаю как пофиксить :(.


Как думаете, надо типы тасков на ТЧ вводить? Отличатся будут оформлением, и, возможно, приоритетами, но это уже и так можно указать в хмл. Если есть какие-то еще идеи по типам заданий то можете писать тут свои предложения.

 

И еще тут кто-то за четвертый стейт заданий говорил, вроде я так понял "Отмененные", я не вижу никаких проблем это реализовать, в стандартном ПДА вполне есть еще место под четвертый столбец для строки "Отмененные", если надо, то тоже могу сделать, управление будет точно такое же как с другими стейтами. 

Ссылка на комментарий

И еще тут кто-то за четвертый стейт заданий говорил, вроде я так понял "Отмененные", я не вижу никаких проблем это реализовать, в стандартном ПДА вполне есть еще место под четвертый столбец для строки "Отмененные", если надо, то тоже могу сделать, управление будет точно такое же как с другими стейтами.

Нужен не еще один стейт. Нужно именно удаление, чтобы от таска ни следа не оставалось. В том же ОГСЕ очень хорошо видно отсутсвие такой возможности.

Если есть какие-то еще идеи по типам заданий то можете писать тут свои предложения.

Этон н по типам заданий, но предложения :)

- cделать скрытие подзаданий, чтобы все этапы задания сразу не показывались;

- сделать ветвление подзаданий(в принципе это можно решить скрытием вроде)

А все это как раз можно криво решать удалением заданий.

Ссылка на комментарий

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


 

 

А все это как раз можно криво решать удалением заданий.

Можно сделать функцию удаления подзадания и все, она делается не сложно, вот удаление всего таска там вроде надо заморочиться.


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


Пока я только начал, пофиксил некоторые чудо-баги :facepalm:, и добавил дескриптор как в ЗП, добавил новую функцию set_description_static, и в описатель <game_task> добавил тег <description>, куда можно добавить айди дескрипции для отображения в статике. Выглядит как-то так:

 

 

 

 

И в целом получше разобрался в системе тасков, по моему она лучше чем в ЧН и ЗП, хоть и сложнее, надо дописать функционал только еще, ну и еще что требуется, по моему так и так все достаточно нормально сделано, беру свои слова обратно:)

Ссылка на комментарий

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

Для игрока задание не удаляется :) Удаляется для движка и создается новое с таким же названием.

Ситуация такая: делается некий сложный многоэтапный квест, типа:

- принести артефакт,

- поговорить с одним,

- разобраться со вторым

- сходить туда-то

...

 

Некоторые этапы и даже их наличие раскрывать сразу не хочется. Делить этот квест на несколько мелких тоже. Как вариант создаются несколько заданий с одинаковыми названиями. Игрок идентифицирует их как одно и то же задание, в каждом из них ровно та информация, которую хочется дать игроку на данном этапе - все хорошо. Единственное, что плохо - переполняется раздел выполненных заданий, ну или проваленных или будет отмененных.

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

 

И в целом получше разобрался в системе тасков, по моему она лучше чем в ЧН и ЗП, хоть и сложнее, надо дописать функционал только еще, ну и еще что требуется, по моему так и так все достаточно нормально сделано, беру свои слова обратно :)

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

 

 

Некоторые этапы и даже их наличие раскрывать сразу не хочется. Делить этот квест на несколько мелких тоже. Как вариант создаются несколько заданий с одинаковыми названиями. Игрок идентифицирует их как одно и то же задание, в каждом из них ровно та информация, которую хочется дать игроку на данном этапе - все хорошо. Единственное, что плохо - переполняется раздел выполненных заданий, ну или проваленных или будет отмененных. По-хорошему здесь надо просто скрывать подзадания, что-то похожее есть и в оригинале, но там до поры до времени скрывается цель задания на карте.

 

Вот я о том же и говорю, надо написать функционал динамического добавления и удаления SGameTaskObjective и все, такое я согласен, сделать можно. А полностью таски удалять и вместо них новые делать это действительно шляпошничество.

 

 

 

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

Их это, нет короче:). Кроме геймдизайнеров еще нужны другие, просто дизайнеры, которые будут рисовать, и тоже, желательно, не от балды.


В общем займусь.

Ссылка на комментарий

Вот я о том же и говорю, надо написать функционал динамического добавления и удаления SGameTaskObjective и все, такое я согласен, сделать можно. А полностью таски удалять и вместо них новые делать это действительно шляпошничество.

Ну мне именно добавление/удаление SGameTaskObjective не нравится. Я бы их скрывал.

 

Их это, нет короче :). Кроме геймдизайнеров еще нужны другие, просто дизайнеры, которые будут рисовать, и тоже, желательно, не от балды.

Я еще про ГСЦшных программеров и геймдизайнеров :)

 

Еще вроде в артиклах в приложении к заданиям мне чего-то не хватало, но сейчас не вспомню уже :(

Изменено пользователем abramcumner
Ссылка на комментарий

 

 

Ну мне именно добавление/удаление SGameTaskObjective не нравится. Я бы их скрывал.

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


Разобрался, действительно не трудно, в подзадания добавляем какую-нибудь функцию show для скриптов, это флаг в подзадании будет, и в функции формирования листа его просто проверяем, если он есть то добавляем, если нету то не добавляем. Даже удалять ничего не нужно :)


Все-таки для ТЧ SGameTaskObjective хорошая штука. А скрипты можно таки переписать под ЧН/ЗП, разрабы зажали показать методы в сопроводиловке :(.

Ссылка на комментарий

Удалять задачу может понадобиться, например для периодических заданий, навроде "Спрятаться от выброса" и т.п.

Изменено пользователем Shadows
Ссылка на комментарий

, даже у самих:

 

condlist_0 = {=surge_complete()} complete
condlist_1 = {!actor_alive()} fail
 

 

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

Если рассматривать высокоприоритетные временные цикличные задания, то их можно создавать без оформления к примеру. А в ТЧ и так куча одинаковых заданий светится, я бы их тоже переделал, на рандом хотя-бы. Изменено пользователем Карлан
Добавлено RayTwitty,

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

Ссылка на комментарий

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

Также, такие задание НЕ должны учитываться счетчиком статистики в ПДА. Кароче, работы там нормально и работа в первую очередь - поиск хвостов, реестров и других мест, где остаются висеть задания.

 

А динамическое изменение подзаданий - это уже другое и реализуется намного проще, чем удаление.

Изменено пользователем Shadows
Ссылка на комментарий

Ну раз тов. Карлан стол заказов объявил, то закину и я свои 5 коп.:

  - сделать поддержку в теге "game_task" параметра указания времени на выполнение задания. А то приходится использовать CGameTask, и через него загрузку xml-описания а затем выдачу загруженного задания на время.

 - довести до ума показ\удаление меток с объектов задания\подзаданий. Может это только у меня, но выявил такую гадость: к примеру имеем четыре подзадания, и во 2-м и 4-м должны быть метки на объектах, и требуется чтоб они появлялись по мере выполнения предыдущих подзаданий. После выдачи такого задания, метки появятся сразу на всех объектах. Чтоб это исправить можно использовать "map_location_hidden", но тогда происходит безобразие с меткой на последнем подзадании - она не удаляется при завершении и самого подзадания и соответственно всего задания в целом.

 - в классе CGameTask добавить поболее ф-ций типа get..., ну к примеру строку с подсказкой, story_id целевого объекта и тип метки можно установить, а вот получить ?

Ссылка на комментарий

Ребят, как вы думаете что надо исправить, добавить в сталкер Чистое Небо? :offtopic:

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

nikita_nz1986.gif
9JX0t72.jpg
XqgE6.png

Ссылка на комментарий

 

 

Удаление заданий можно интерпретировать как отмену. Бывают же случаи, когда задание физически не выполнено, но и не провалено, и в то же время это не зависит от действий игрока. Также, такие задание НЕ должны учитываться счетчиком статистики в ПДА. Кароче, работы там нормально и работа в первую очередь - поиск хвостов, реестров и других мест, где остаются висеть задания.

Отмена - есть отмена, я бы сделал четвертый стейт, и красил бы в желтый цвет, по моему так правильно, и если мне будет надо я так и сделаю. В удалении таком какое ты предлагаешь ничего осмысленного для себя не вижу, увы. Так делать не буду точно.

 

 

 

  - сделать поддержку в теге "game_task" параметра указания времени на выполнение задания. А то приходится использовать CGameTask, и через него загрузку xml-описания а затем выдачу загруженного задания на время.

Я ухожу от конфигов как-раз таки. На видео можешь смотреть таск сделанный 100% на скриптах, нет вообще никакого даже конфига-шаблона.

 

 

 - довести до ума показ\удаление меток с объектов задания\подзаданий. Может это только у меня, но выявил такую гадость: к примеру имеем четыре подзадания, и во 2-м и 4-м должны быть метки на объектах, и требуется чтоб они появлялись по мере выполнения предыдущих подзаданий. После выдачи такого задания, метки появятся сразу на всех объектах. Чтоб это исправить можно использовать "map_location_hidden", но тогда происходит безобразие с меткой на последнем подзадании - она не удаляется при завершении и самого подзадания и соответственно всего задания в целом.

С метками в движке вообще ахтунг, я переписывал долго и упорно, получилось только добавить функционала, стандартный стремно переписывать, но займусь на досуге, надо! :)

 

 

 - в классе CGameTask добавить поболее ф-ций типа get..., ну к примеру строку с подсказкой, story_id целевого объекта и тип метки можно установить, а вот получить ?

Да, это вообще без проблем, хочешь на каждый set сделаю свой get :).

 

 

 

Ну мне именно добавление/удаление SGameTaskObjective не нравится. Я бы их скрывал.

 

 

Если так то на вскидку даже проще, в само подзадание добавить флаг, релоад в пда у ивентов вроде есть, вроде работает, ну и на загрузке листа подзаданий проверять этот флаг, если есть то добавлять, если нет, то скрывать.

Смотрим результат (да, это еж и уж, сумрачный зенобиан + великолепный срп):

 

 

 

Для тех кто не понял - динамическое управление подзаданиями в заданиях, новая функция для SGameTaskObjective: set_show_subtask(bool)/get_show_subtask. 


Вообще я всем советую не шорить себя конфигами, а писать все задания на скриптах облегчив себе задач, к примеру, написанием своего менеджера (стандартный не годится я бы сказал совсем), хотя бы такой как в ЧН или ЗП, но там тоже далеко от максимума того что может игра. В скриптах куда больше возможностей оформить более красиво и продуктивно (в техническом плане), нежели в конфиге. Даже на чистом ТЧ :).


В ТЧ будет сложнее, так как в ЧН и ЗП, как было верно замечено, нет понятия ветвления.


 

 

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

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


Это и есть типа псевдоудаление, его нигде нет, и ничего чистить не надо, решается вопрос тоже элементарно. Хочешь - делай, но мне и такое не надо, разве что 100% динамический таск, где можно один граф юзать до бесконечности.

Ссылка на комментарий

 

 

Я ухожу от конфигов как-раз таки. На видео можешь смотреть таск сделанный 100% на скриптах, нет вообще никакого даже конфига-шаблона.

В чем смысл ? К примеру, простенькое сюжетное\квестовое задание, которое по определению "прибито гвоздями" - зачем его клепать скриптово, когда много проще описать в конфиге, выдать и-п и не париться.

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

Ссылка на комментарий

@UnLoaded, погляди менеджеры ЧН и ЗП ;). Там этот смысл прям сразу глаза режет. Как раз простенькие задания даже в ТЧ делаются скриптами, это так, к сведению :). Проще сделать как раз скриптом, одно простенькое задание описывается парой десятков явно понятных строк + располагаешь все нужные функции для сопровождения таска + рядом диалог тут же, это очень удобно, в одном файле целый квест, в хмл регаешь только айди диалога, и то это на чистом движке, у меня, к примеру, и диалог можно скриптом взвести, и его же добавить неписю так же скриптом. Я свободен от этих громоздких конфигов, это гораздо удобнее как мне показалось, и возвращаться к прежнему, и что-то там добавлять не вижу ни малейшего смысла, уж извини :).

Ссылка на комментарий

сделать как раз скриптом, одно простенькое задание описывается парой десятков явно понятных строк + располагаешь все нужные функции для сопровождения таска + рядом диалог тут же

ПЫС все это проходили, очевидно же. После, было принято решение перенести все настройки собственно в конфиг - там и ошибку сложнее сделать, и не надо особо знать синтаксиса для реализации. Единственное, чего не хватает при чтении из xml - различных распространенных действий, вроде работы с предметами в инвентаре, деньгами и прочим - это позволило бы в большинстве случаев вообще не лазить в скрипты и создавать таски не отходя от кассы, прямо в xml.

 

Хочешь - делай, но мне и такое не надо, разве что 100% динамический таск

Да я уже сделал, просто не уверен, что везде подчистил хвосты :) Изменено пользователем Shadows
  • Согласен 2
Ссылка на комментарий

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

 

 

upd:

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

 

upd2:

Вопрос со спавн_секшнс остается открытым.

Изменено пользователем Карлан
Ссылка на комментарий

upd:

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

Что-то ты пишешь загадками. Инклуды повсеместно встречаются и в ltx и в xml.
Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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