1. Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, сыграть в увлекательные ФРПГ, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
    Скрыть объявление
  2. Форум аддона "Возвращение" 2.0:
    — Обсудить игру, почитать о прохождениях и/или разрешить свои вопросы по игре вы можете в одной из тем одноименного форума. Посетить...
    — Прочитать историю изменения и/или скачать последнюю версию аддона "Возвращение", вы можете на страницах наших ресурсов. Скачать...
    Скрыть объявление

Обсуждения

Тема в разделе "Уpоки AST", создана пользователем neromont, 28 янв 2015.

  1. ElderGamer

    ElderGamer
    Модостроитель

    Регистрация:
    16 апр 2008
    Сообщения:
    1.346
    Благодарности:
    828
    Баллы:
    260
    В кучу. Можно ли запретить продажу торговцам квестовых предметов? Или, если у моддеров всё таки встанет вопрос приобретения квестового предмета путём торговли, то придумать для таких предметов особый флаг, отличающий обычный квестовый предмет от продаваемых/покупаемых квестовых предметов.

    Кстати, о слоте. Есть ли в движке намёки на его планировавшееся предназначение? Любопытно. :)
     
  2. Saturas

    Saturas
    Модостроитель

    Регистрация:
    11 фев 2009
    Сообщения:
    1.842
    Благодарности:
    546
    Баллы:
    275
    Пол:
    Женский
    Запретить продажу квестовых предметов можно, но целесообразно только продажу, тоесть купить моно - продать нет.


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

    К слову, при торговле есть 2 функции собсно работы с торговцем и покупателем, так что это все вполне реализуемо, тк торговец и покупатель у нас разделены, и каждого моно настроить индивидуально.
     
    Последнее редактирование: 17 мар 2015
  3. MEG@VOLT

    MEG@VOLT ★★★★★★★
    Модератор

    Регистрация:
    24 мар 2006
    Сообщения:
    1.631
    Благодарности:
    665
    Баллы:
    290
    По поводу ограничения ресурсов торговцев, в каком-то моде(не помню в каком) каждый день появлялся новый монстр. Дык вот предложение такое, ограничить барыг, и каждый день у них исчезает один из дорогих предметов(100-500-1000-2000₽) рендомно и на эту же сумму у них появляется деньга. Т.е. определить предмет в инвентаре по стоимости и удалить его, при этом дать барыге денег
     
  4. Saturas

    Saturas
    Модостроитель

    Регистрация:
    11 фев 2009
    Сообщения:
    1.842
    Благодарности:
    546
    Баллы:
    275
    Пол:
    Женский
    Да, идея довольно годная, если подключать ограничение бабла.
     
    Последнее редактирование: 18 мар 2015
  5. Goth_Man

    Goth_Man Участник форума

    Регистрация:
    27 окт 2014
    Сообщения:
    53
    Благодарности:
    12
    Баллы:
    50
    Пол:
    Мужской
    Вот это супер всегда этого не хватало!

    Думаю достаточно будет возможности дёргать рычаг, нажать кнопку, открыть дверь (наверное нужны будут новые анимации) и крутить ворот (анимация и сухопутная пойдёт) другое не знаю даже

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

    Меня всегда больше раздражали куча шкур рогов и копыткогтей а один дорогой альмонах можно и оставить. По поводу крестовых предметов может всётавки оставить возможность их продать/заложить торговцу только предупреждение выводить типа "Этот меч я обещал отнести паладину Петрову" Хочу ли я его заложить "Да" "Нет" если нажал "Да" то в журнале появляется запись "Меч Петрова я заложил торговцу Иванову" в соответствующем месте.
     
  6. MEG@VOLT

    MEG@VOLT ★★★★★★★
    Модератор

    Регистрация:
    24 мар 2006
    Сообщения:
    1.631
    Благодарности:
    665
    Баллы:
    290
    :eek:как это не хватало? Всегда было.
     
  7. Dimus

    Dimus ★★★★★★★
    Модератор

    Регистрация:
    19 июл 2010
    Сообщения:
    3.057
    Благодарности:
    1.732
    Баллы:
    480
    Пол:
    Мужской
    Хмм... А может сделать как в G3 - предметы с флагом ITEM_MISSION когда открыто окно торговли не отображаются в инвентаре продавца и покупателя?
    Возможно, что он не может атаковать, когда находится в режиме плавания (BS_SWIM)?
    Зачем нужна такая скорость? А что делать, если этот предмет понадобится ГГ, но у него не будет нужного количества денег или в это время он будет гулять по другой локации?
    Это вполне реализуемо не через торговлю, а на уровне диалогов.
     
  8. redleha

    redleha
    Модостроитель

    Регистрация:
    26 фев 2008
    Сообщения:
    691
    Благодарности:
    648
    Баллы:
    245
    Пол:
    Мужской
    Инвентарь продавца - это всего-лишь контейнер, который на время продажи можно создать, подменить любым другим контейнером, хоть своп сделать между героем и продавцом. Можно инвентарь крысы подсунуть при начале торговли - здесь всё прозрачно и легко.

    По поводу атаки при плавании - можно при приближении пробовать проигрывать анимацию атаки, при этом сохраняя состояние BS_SWIM. PlayAni_BS. Правда, реалистичность может хромать.
     
  9. alex_draven

    alex_draven
    Модостроитель

    Регистрация:
    13 сен 2007
    Сообщения:
    1.273
    Благодарности:
    1.524
    Баллы:
    315
    Пол:
    Мужской
    Одной анимации мало. Нужен блок ивент-тегов для фиксирования момента попадания и задания атакующей части модели. Если открыть луркера, например, то можно найти блок:
    Код:
    ani            ("t_FistAtWater"        1    ""                    0.1 0.2 M.    "Lur_SwimAt_M01.asc"        F    40    55)
                {
                    *eventTag    (0    "DEF_OPT_FRAME"        "17")
                    *eventTag    ("DEF_HIT_LIMB"        "BIP01 L PONYTAIL1")
                }
    
    Это кулачная атака в воде. Не забываем, что монстры у нас принудительно все в режиме кулачного боя всегда.
    Но на практике ударить в воде запрещено вообще, т.к. в целом идеология движений такова, что боевка в воде отключается (блокируется). На хумансе это четко видно, когда мечи сразу убираются за пояс при попадании в воду.
    На мой взгляд, для монстров больше сгодилась бы анимация t_FistAttackMove. Она второго слоя, не мешала бы основному движения в режиме плавания. Хотя, t_FistAtWater тоже сгодилась бы, при условии ее разрешения в воде для звериных многолапых гильдий.
     
  10. Saturas

    Saturas
    Модостроитель

    Регистрация:
    11 фев 2009
    Сообщения:
    1.842
    Благодарности:
    546
    Баллы:
    275
    Пол:
    Женский
    Никогда не было, нырни в воду и по пробуй достать оттуда какойнить предмет.

    И вот еще, касательно анимаций, аттак в воде и тд, это давайте на самый самый конец, ибо слишком много гимора, а результат сомнителен.
     
    Последнее редактирование модератором: 19 мар 2015
  11. Saturas

    Saturas
    Модостроитель

    Регистрация:
    11 фев 2009
    Сообщения:
    1.842
    Благодарности:
    546
    Баллы:
    275
    Пол:
    Женский
    У меня вот тут появилась идея, расширить количество AI переменных для нпс, но столкнулся с бедой, это - невозможно, без перекомпиляции двига, так что нужно искать другие пути для этого. Один из таких путей, выглядит следующим образом, в классе C_NPC есть массив:
    PHP:
    var func    mission[MAX_MISSIONS];
    по скольку, этот массив не используется движком, и вообще устарел еще с до выхода г1, то можно изменить тип с func на int (это один и тот же тип, просто func в готике, это абстракция от базового int, так что размер что там 4 байта, что тут 4) и у нас получается 5 свободных мест под AI переменные, которые можно использовать в скриптах
    я у себя заменил строку var func mission[MAX_MISSIONS];
    на
    Код:
    var int        AIVAR0[5];                  //5 AI переменных
    + суть всего этого в том, что движок не использует AI переменные, они исключительно для скриптов.

    Так же очень важен тот факт, что эти переменные записываются в файл сохранения, и работают после сейв лоада.
     
    Последнее редактирование: 22 мар 2015
  12. ElderGamer

    ElderGamer
    Модостроитель

    Регистрация:
    16 апр 2008
    Сообщения:
    1.346
    Благодарности:
    828
    Баллы:
    260
    А можно ли с помощью дополнительной аиварины реализовать такую фишку? У непися есть массив имён. Но движок использует только первый элемент массива с индексом "0". Если занять одну аиварину под указатель индекса массива имён, используемый движком, то можно было бы легко менять имена неписям. Например, изначально непись - крестьянин (переменная == 0, имя == name[0]), поговорил ГГ с неписем,узнал его имя в диалоге - изменилась переменная, изменилось имя (переменная == 1, имя == name[1]).
     
  13. MEG@VOLT

    MEG@VOLT ★★★★★★★
    Модератор

    Регистрация:
    24 мар 2006
    Сообщения:
    1.631
    Благодарности:
    665
    Баллы:
    290
    Эм... дык этож обычными скриптами делается.
     
  14. Saturas

    Saturas
    Модостроитель

    Регистрация:
    11 фев 2009
    Сообщения:
    1.842
    Благодарности:
    546
    Баллы:
    275
    Пол:
    Женский
    Нет, нельзя, вообще эти 4 строки бессмысленные, тк в сохранение они не записываются, а значит и делать ими нефиг, да и вообще не трогать лучше их.
     
  15. ElderGamer

    ElderGamer
    Модостроитель

    Регистрация:
    16 апр 2008
    Сообщения:
    1.346
    Благодарности:
    828
    Баллы:
    260
    В случае одного-двух неписей - да легче сделать скриптами. В случае массового применения переименования всё уже не так однозначно. Если бы движок делал то, что я описал, было бы намного проще.

    Как я понял, ковыряясь с именами, сторчные переменые вообще не запоминаются в сохранении, только числовые. Но если какие-то строчные значения прописаны у непися в профиле, они обновляются при загрузке сохранения, читаются из профиля.
     
  16. Saturas

    Saturas
    Модостроитель

    Регистрация:
    11 фев 2009
    Сообщения:
    1.842
    Благодарности:
    546
    Баллы:
    275
    Пол:
    Женский
    Бред несешь, гражданин. Переменные сохраняются только глобальные, локальные же, и темболее поля классов, сохраняются только те, которые прописаны в движке в функции Class::Archive все остальные обнуляются при загрузке.
    В принципе, я бы мог добавить эти 4 строки в сохранение нпс, это не проблема.
     
    Последнее редактирование: 23 мар 2015
  17. redleha

    redleha
    Модостроитель

    Регистрация:
    26 фев 2008
    Сообщения:
    691
    Благодарности:
    648
    Баллы:
    245
    Пол:
    Мужской
    Так, коль пошла пьянка влезу я в огород.
    Так как я жду-не дождусь, когда выйдет AST, то у меня вопрос наперёд.
    Мне интересно как выглядит пакет в виде файлов.
    Просто тот табор функций, что будет идти с пакетом будет недостаточен. Или наоборот, не хочется иногда искать в пакете фукнции, которые уже сделаны мной, как мне кажется лучше или просто так хочется.

    Т.к. пакет будет компилить всё подряд (или нет?) теперь, поэтому и возникает вопрос. Либо пихать свои функции в набор AST, либо библиотека AST по сути должна быть редактируемой.
    Потому как куда девать всю икарусовско-леговскую базу, которую мы наваяли у себя (P.S. Комменты типа выкинь лучше не писать :D)
     
  18. Saturas

    Saturas
    Модостроитель

    Регистрация:
    11 фев 2009
    Сообщения:
    1.842
    Благодарности:
    546
    Баллы:
    275
    Пол:
    Женский
    Ну например выкинь:-*
    Пакет будет распространяться в виде 3х файлов:
    AST.dll - Основная библиотека
    AST.exe - Стартер готики с подключением либы, но БЕЗ модов.
    GothicStarterA - обычный готик стартер с возможностью загрузки нашей либы(и не только нашей)
    Ну и + набор скриптов с новыми классами и функциями вызываемыми игрой.
    -=========================================-
    Касательно лего/Икарусов и тд, гараздо проще, и надежнее перенести весь функционал легокарусов(который ты юзаешь) на AST, сейчас как закончу с адаптацией под В2, займусь переносом ваших фишек всех.

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

    И да, Gothic Sourcer V3.15 будет компилить как лего, и Икарусы, так и наш пакет(опции в меню будут).


    P.s. сильна нужны тестеры сейчас, ибо сейчас обновы делаю каждые 2-3 часа, и все это надо тестить.
     
  19. Saturas

    Saturas
    Модостроитель

    Регистрация:
    11 фев 2009
    Сообщения:
    1.842
    Благодарности:
    546
    Баллы:
    275
    Пол:
    Женский
    Кстати еще вот один момент, лишние 4 имени из массива C_NPC::name[5] удалены, и на их место вставлен массив из C_NPC::MyVar[20]; для своих нужд, можно использовать и как аивары, и как что угодно.
     
  20. ElderGamer

    ElderGamer
    Модостроитель

    Регистрация:
    16 апр 2008
    Сообщения:
    1.346
    Благодарности:
    828
    Баллы:
    260
    Гм, я, например, успел задействовать одно имечко. Поскольку в Г1 не работает оверлей распорядка, организовал состояние ожидания по таймингу, а имечко использую для сохранения названия распорядка, к которому непись должен возвратиться после истечения таймера. И как быть?
     

Поделиться этой страницей

Neverwinter